fix MakeServerButtons

This commit is contained in:
2024-06-05 22:28:58 +01:00
committed by chucky-n-ice
parent 991440009a
commit 24b93febeb

View File

@@ -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(),
};