diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -220,30 +220,34 @@ static const int CTMN_SPECTATOR = -4; * @param grey A bitbask of which items to mark as disabled. * @param include_spectator If true, a spectator option is included in the list. */ -static void PopupMainCompanyToolbMenu(Window *w, int widget, int grey = 0, bool include_spectator = false) +static void PopupMainCompanyToolbMenu(Window *w, int widget, int grey = 0) { DropDownList *list = new DropDownList(); + switch (widget) { + case WID_TN_COMPANIES: #ifdef ENABLE_NETWORK - if (_networking) { - if (widget == WID_TN_COMPANIES) { + if (!_networking) break; + /* Add the client list button for the companies menu */ *list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_CLIENT_LIST, CTMN_CLIENT_LIST, false); - } + + if (_local_company == COMPANY_SPECTATOR) { + *list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_NEW_COMPANY, CTMN_NEW_COMPANY, NetworkMaxCompaniesReached()); + } else { + *list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_SPECTATE, CTMN_SPECTATE, NetworkMaxSpectatorsReached()); + } +#endif /* ENABLE_NETWORK */ + break; - if (include_spectator) { - if (widget == WID_TN_COMPANIES) { - if (_local_company == COMPANY_SPECTATOR) { - *list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_NEW_COMPANY, CTMN_NEW_COMPANY, NetworkMaxCompaniesReached()); - } else { - *list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_SPECTATE, CTMN_SPECTATE, NetworkMaxSpectatorsReached()); - } - } else { - *list->Append() = new DropDownListStringItem(STR_NETWORK_TOOLBAR_LIST_SPECTATOR, CTMN_SPECTATOR, false); - } - } + case WID_TN_STORY: + *list->Append() = new DropDownListStringItem(STR_STORY_BOOK_SPECTATOR, CTMN_SPECTATOR, false); + break; + + case WID_TN_GOAL: + *list->Append() = new DropDownListStringItem(STR_GOALS_SPECTATOR, CTMN_SPECTATOR, false); + break; } -#endif /* ENABLE_NETWORK */ for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) { if (!Company::IsValidID(c)) continue; @@ -597,7 +601,7 @@ static CallBackFunction MenuClickFinance static CallBackFunction ToolbarCompaniesClick(Window *w) { - PopupMainCompanyToolbMenu(w, WID_TN_COMPANIES, 0, true); + PopupMainCompanyToolbMenu(w, WID_TN_COMPANIES, 0); return CBF_NONE; } @@ -643,7 +647,7 @@ static CallBackFunction MenuClickCompany static CallBackFunction ToolbarStoryClick(Window *w) { - PopupMainCompanyToolbMenu(w, WID_TN_STORY, 0, true); + PopupMainCompanyToolbMenu(w, WID_TN_STORY, 0); return CBF_NONE; } @@ -663,7 +667,7 @@ static CallBackFunction MenuClickStory(i static CallBackFunction ToolbarGoalClick(Window *w) { - PopupMainCompanyToolbMenu(w, WID_TN_GOAL, 0, true); + PopupMainCompanyToolbMenu(w, WID_TN_GOAL, 0); return CBF_NONE; }