fix MakeServerButtons
This commit is contained in:
@@ -209,12 +209,11 @@ enum LastServerWidgets {
|
||||
};
|
||||
|
||||
enum ServerButtonsWidgets {
|
||||
AC_SERVERS,
|
||||
AC_SERVERS1,
|
||||
WID_SB_SELECT_NICE,
|
||||
WID_SB_SELECT_BTPRO,
|
||||
WID_SB_SELECT_CITYMANIA,
|
||||
WID_SB_SELECT_NONE,
|
||||
AC_SERVERS,
|
||||
};
|
||||
|
||||
enum ServerButtonsQueryWidgets {};
|
||||
@@ -1307,9 +1306,9 @@ struct ServerButtonsWindow : Window {
|
||||
//GetCommunityServerListText();
|
||||
break;
|
||||
default:
|
||||
if (widget >= AC_SERVERS1) {
|
||||
if (widget >= AC_SERVERS) {
|
||||
/*get info of server from network.cpp and join*/
|
||||
if (GetCommunityServer(widget - AC_SERVERS1 + 1,false)) {
|
||||
if (GetCommunityServer(widget - AC_SERVERS + 1,false)) {
|
||||
if (_ctrl_pressed) {
|
||||
NetworkClientConnectGame(fmt::format("{}:{}", _cc_address, _cc_porti), COMPANY_NEW_COMPANY);
|
||||
} else {
|
||||
@@ -1354,17 +1353,13 @@ struct ServerButtonsWindow : Window {
|
||||
std::string name;
|
||||
|
||||
switch (widget) {
|
||||
case AC_SERVERS:
|
||||
// do nothing
|
||||
break;
|
||||
/*
|
||||
default:
|
||||
if(widget >= AC_SERVERS1){
|
||||
if(widget - AC_SERVERS1 + 1 < 10){
|
||||
name = fmt::format("NAME0{}",widget - AC_SERVERS1 +1);
|
||||
if(widget >= AC_SERVERS){
|
||||
if(widget - AC_SERVERS + 1 < 10){
|
||||
name = fmt::format("NAME0{}",widget - AC_SERVERS +1);
|
||||
}
|
||||
else {
|
||||
name = fmt::format("NAME{}",widget - AC_SERVERS1 +1);
|
||||
name = fmt::format("NAME{}",widget - AC_SERVERS +1);
|
||||
}
|
||||
size_t posname = _server_list_text.find(name);
|
||||
std::string sname = _server_list_text.substr(posname + 8, _server_list_text.find(";", posname + 8) - posname - 8);
|
||||
@@ -1374,20 +1369,19 @@ struct ServerButtonsWindow : Window {
|
||||
DrawString(r.left, r.right, r.top + 3, CM_STR_SB_NETWORK_DIRECT_JOIN_GAME, TC_FROMSTRING, SA_CENTER);
|
||||
}
|
||||
break;
|
||||
*/
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* fix me */
|
||||
NWidgetBase *MakeServerButtons(int *biggest_index)
|
||||
std::unique_ptr<NWidgetBase> MakeServerButtons()
|
||||
{
|
||||
std::int8_t _community = stoi(GetServerItem(COMMUNITY));
|
||||
NWidgetVertical *ver = new NWidgetVertical;
|
||||
std::int8_t _community = stoi(GetServerItem(COMMUNITY));
|
||||
auto ver = std::make_unique<NWidgetVertical>();
|
||||
|
||||
if(_community == 0 || _server_list_text.empty()){
|
||||
NWidgetBackground *leaf = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, AC_SERVERS, NULL);
|
||||
//ver->Add(leaf);
|
||||
auto leaf = std::make_unique<NWidgetBackground>(WWT_PANEL, COLOUR_GREY, AC_SERVERS);
|
||||
ver->Add(std::move(leaf));
|
||||
return ver;
|
||||
}
|
||||
|
||||
@@ -1400,30 +1394,30 @@ NWidgetBase *MakeServerButtons(int *biggest_index)
|
||||
active++;
|
||||
}
|
||||
|
||||
NWidgetHorizontal *hor = new NWidgetHorizontal;
|
||||
auto hor = std::make_unique<NWidgetHorizontal>();
|
||||
int i1 = 0, i2 = 0;
|
||||
for (int i = 0; i < s_max; i++) {
|
||||
if ((aactive[i] == 0) && (_community == 1)) continue; //hide button if disabled - for n-ice only
|
||||
i2++;
|
||||
if ((i1 == 5) || (i1 == 10) || (i1 == 15) || (i1 == 20) || (i1 == 25) || (i1 == 30) || (i1 == 35) || (i1 == 40) || (i1 == 45) || (i1 == 50)) {
|
||||
i2=0;
|
||||
NWidgetSpacer *spce = new NWidgetSpacer(3, 0);
|
||||
auto spce = std::make_unique<NWidgetSpacer>(3, 0);
|
||||
spce->SetFill(1, 0);
|
||||
//hor->Add(spce);
|
||||
//ver->Add(hor);
|
||||
NWidgetSpacer *spc = new NWidgetSpacer(0, 4);
|
||||
hor->Add(std::move(spce));
|
||||
ver->Add(std::move(hor));
|
||||
auto spc = std::make_unique<NWidgetSpacer>(0, 4);
|
||||
spc->SetFill(1, 0);
|
||||
//ver->Add(spc);
|
||||
//hor = new NWidgetHorizontal();
|
||||
ver->Add(std::move(spc));
|
||||
hor = std::make_unique<NWidgetHorizontal>();
|
||||
}
|
||||
NWidgetSpacer *spce = new NWidgetSpacer(3, 0);
|
||||
auto spce = std::make_unique<NWidgetSpacer>(3, 0);
|
||||
spce->SetFill(1, 0);
|
||||
//hor->Add(spce);
|
||||
NWidgetBackground *leaf = new NWidgetBackground(WWT_PANEL, COLOUR_ORANGE, AC_SERVERS1 + i, NULL);
|
||||
hor->Add(std::move(spce));
|
||||
auto leaf = std::make_unique<NWidgetBackground>(WWT_PANEL, COLOUR_ORANGE, AC_SERVERS + i);
|
||||
if(aactive[i] == 0) leaf->SetDisabled(true);
|
||||
leaf->SetDataTip(CM_STR_SB_NETWORK_DIRECT_JOIN_GAME, CM_STR_SB_NETWORK_DIRECT_JOIN_GAME_TOOLTIP);
|
||||
leaf->SetMinimalSize(90, 15);
|
||||
//hor->Add(leaf);
|
||||
hor->Add(std::move(leaf));
|
||||
i1++;
|
||||
}
|
||||
|
||||
@@ -1433,11 +1427,10 @@ NWidgetBase *MakeServerButtons(int *biggest_index)
|
||||
if (i2==2) i2=189;
|
||||
if (i2==3) i2=96;
|
||||
if (i2==4) i2=3;
|
||||
NWidgetSpacer *spce = new NWidgetSpacer(i2, 0);
|
||||
auto spce = std::make_unique<NWidgetSpacer>(i2, 0);
|
||||
spce->SetFill(1, 0);
|
||||
//hor->Add(spce);
|
||||
//ver->Add(hor);
|
||||
*biggest_index = AC_SERVERS1 - 1 + active;
|
||||
hor->Add(std::move(spce));
|
||||
ver->Add(std::move(hor));
|
||||
return ver;
|
||||
}
|
||||
|
||||
@@ -1601,10 +1594,9 @@ static const NWidgetPart _nested_server_buttons_window_widgets[] = {
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SB_SELECT_CITYMANIA), SetMinimalSize(134, 13), SetDataTip(CM_STR_SB_SELECT_CITYMANIA, 0),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
|
||||
/* fix me */
|
||||
//NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
//NWidgetFunction(MakeServerButtons),
|
||||
//EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
NWidgetFunction(MakeServerButtons),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user