|
|
|
@ -220,30 +220,34 @@ static const int CTMN_SPECTATOR = -4; ///< Show a company window as spectator
|
|
|
|
|
* @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 (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());
|
|
|
|
|
}
|
|
|
|
|
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_TOOLBAR_LIST_SPECTATOR, CTMN_SPECTATOR, false);
|
|
|
|
|
*list->Append() = new DropDownListStringItem(STR_NETWORK_COMPANY_LIST_SPECTATE, CTMN_SPECTATE, NetworkMaxSpectatorsReached());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif /* ENABLE_NETWORK */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
|
|
|
|
|
if (!Company::IsValidID(c)) continue;
|
|
|
|
@ -597,7 +601,7 @@ static CallBackFunction MenuClickFinances(int index)
|
|
|
|
|
|
|
|
|
|
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(int index)
|
|
|
|
|
|
|
|
|
|
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(int index)
|
|
|
|
|
|
|
|
|
|
static CallBackFunction ToolbarGoalClick(Window *w)
|
|
|
|
|
{
|
|
|
|
|
PopupMainCompanyToolbMenu(w, WID_TN_GOAL, 0, true);
|
|
|
|
|
PopupMainCompanyToolbMenu(w, WID_TN_GOAL, 0);
|
|
|
|
|
return CBF_NONE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|