Changeset - r20363:fc98c8bcc9ac
[Not reviewed]
master
0 4 0
zuu - 11 years ago 2013-06-09 13:37:04
zuu@openttd.org
(svn r25376) -Feature: Allow access to goal list and story book of other companies than your own
4 files changed with 97 insertions and 36 deletions:
0 comments (0 inline, 0 general)
src/script/api/game/game_window.hpp.sq
Show inline comments
 
@@ -495,6 +495,7 @@ void SQGSWindow_Register(Squirrel *engin
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_PROGRESS_BAR,                       "WID_GP_PROGRESS_BAR");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_PROGRESS_TEXT,                      "WID_GP_PROGRESS_TEXT");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_ABORT,                              "WID_GP_ABORT");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GOAL_CAPTION,                          "WID_GOAL_CAPTION");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GOAL_GOAL,                             "WID_GOAL_GOAL");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GOAL_PROGRESS,                         "WID_GOAL_PROGRESS");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GOAL_SCROLLBAR,                        "WID_GOAL_SCROLLBAR");
 
@@ -1150,6 +1151,8 @@ void SQGSWindow_Register(Squirrel *engin
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_STATIONS,                           "WID_TN_STATIONS");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_FINANCES,                           "WID_TN_FINANCES");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_COMPANIES,                          "WID_TN_COMPANIES");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_STORY,                              "WID_TN_STORY");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_GOAL,                               "WID_TN_GOAL");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_GRAPHS,                             "WID_TN_GRAPHS");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_LEAGUE,                             "WID_TN_LEAGUE");
 
	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_INDUSTRIES,                         "WID_TN_INDUSTRIES");
src/script/api/script_window.hpp
Show inline comments
 
@@ -2341,6 +2341,8 @@ public:
 
		WID_TN_STATIONS                              = ::WID_TN_STATIONS,                              ///< Station menu.
 
		WID_TN_FINANCES                              = ::WID_TN_FINANCES,                              ///< Finance menu.
 
		WID_TN_COMPANIES                             = ::WID_TN_COMPANIES,                             ///< Company menu.
 
		WID_TN_STORY                                 = ::WID_TN_STORY,                                 ///< Story menu.
 
		WID_TN_GOAL                                  = ::WID_TN_GOAL,                                  ///< Goal menu.
 
		WID_TN_GRAPHS                                = ::WID_TN_GRAPHS,                                ///< Graph menu.
 
		WID_TN_LEAGUE                                = ::WID_TN_LEAGUE,                                ///< Company league menu.
 
		WID_TN_INDUSTRIES                            = ::WID_TN_INDUSTRIES,                            ///< Industry menu.
src/toolbar_gui.cpp
Show inline comments
 
@@ -608,6 +608,46 @@ static CallBackFunction MenuClickCompany
 
	return CBF_NONE;
 
}
 

	
 
/* --- Story button menu --- */
 

	
 
static CallBackFunction ToolbarStoryClick(Window *w)
 
{
 
	PopupMainCompanyToolbMenu(w, WID_TN_STORY);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Story menu
 
 *
 
 * @param index CompanyID to show story book for
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickStory(int index)
 
{
 
	ShowStoryBook((CompanyID)index);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Goal button menu --- */
 

	
 
static CallBackFunction ToolbarGoalClick(Window *w)
 
{
 
	PopupMainCompanyToolbMenu(w, WID_TN_GOAL);
 
	return CBF_NONE;
 
}
 

	
 
/**
 
 * Handle click on the entry in the Goal menu
 
 *
 
 * @param index CompanyID to show story book for
 
 * @return #CBF_NONE
 
 */
 
static CallBackFunction MenuClickGoal(int index)
 
{
 
	ShowGoalsList((CompanyID)index);
 
	return CBF_NONE;
 
}
 

	
 
/* --- Graphs button menu --- */
 

	
 
static CallBackFunction ToolbarGraphsClick(Window *w)
 
@@ -1213,23 +1253,25 @@ static MenuClickedProc * const _menu_cli
 
	MenuClickStations,    // 7
 
	MenuClickFinances,    // 8
 
	MenuClickCompany,     // 9
 
	MenuClickGraphs,      // 10
 
	MenuClickLeague,      // 11
 
	MenuClickIndustry,    // 12
 
	MenuClickShowTrains,  // 13
 
	MenuClickShowRoad,    // 14
 
	MenuClickShowShips,   // 15
 
	MenuClickShowAir,     // 16
 
	MenuClickMap,         // 17
 
	NULL,                 // 18
 
	MenuClickBuildRail,   // 19
 
	MenuClickBuildRoad,   // 20
 
	MenuClickBuildWater,  // 21
 
	MenuClickBuildAir,    // 22
 
	MenuClickForest,      // 23
 
	MenuClickMusicWindow, // 24
 
	MenuClickNewspaper,   // 25
 
	MenuClickHelp,        // 26
 
	MenuClickStory,       // 10
 
	MenuClickGoal,        // 11
 
	MenuClickGraphs,      // 12
 
	MenuClickLeague,      // 13
 
	MenuClickIndustry,    // 14
 
	MenuClickShowTrains,  // 15
 
	MenuClickShowRoad,    // 16
 
	MenuClickShowShips,   // 17
 
	MenuClickShowAir,     // 18
 
	MenuClickMap,         // 19
 
	NULL,                 // 20
 
	MenuClickBuildRail,   // 21
 
	MenuClickBuildRoad,   // 22
 
	MenuClickBuildWater,  // 23
 
	MenuClickBuildAir,    // 24
 
	MenuClickForest,      // 25
 
	MenuClickMusicWindow, // 26
 
	MenuClickNewspaper,   // 27
 
	MenuClickHelp,        // 28
 
};
 

	
 
/** Full blown container to make it behave exactly as we want :) */
 
@@ -1396,31 +1438,31 @@ class NWidgetMainToolbarContainer : publ
 
		static const uint SMALLEST_ARRANGEMENT = 14;
 
		static const uint BIGGEST_ARRANGEMENT  = 19;
 
		static const byte arrange14[] = {
 
			0,  1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27,
 
			2,  3,  4,  5,  6,  7,  8,  9, 10, 12, 24, 25, 26, 27,
 
			0,  1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 29,
 
			2,  3,  4,  5,  6,  7,  8,  9, 12, 14, 26, 27, 28, 29,
 
		};
 
		static const byte arrange15[] = {
 
			0,  1,  4, 13, 14, 15, 16, 19, 20, 21, 22, 23, 17, 18, 27,
 
			0,  2,  4,  3,  5,  6,  7,  8,  9, 10, 12, 24, 25, 26, 27,
 
			0,  1,  4, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29,
 
			0,  2,  4,  3,  5,  6,  7,  8,  9, 12, 14, 26, 27, 28, 29,
 
		};
 
		static const byte arrange16[] = {
 
			0,  1,  2,  4, 13, 14, 15, 16, 19, 20, 21, 22, 23, 17, 18, 27,
 
			0,  1,  3,  5,  6,  7,  8,  9, 10, 12, 24, 25, 26, 17, 18, 27,
 
			0,  1,  2,  4, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29,
 
			0,  1,  3,  5,  6,  7,  8,  9, 12, 14, 26, 27, 28, 19, 20, 29,
 
		};
 
		static const byte arrange17[] = {
 
			0,  1,  2,  4,  6, 13, 14, 15, 16, 19, 20, 21, 22, 23, 17, 18, 27,
 
			0,  1,  3,  4,  6,  5,  7,  8,  9, 10, 12, 24, 25, 26, 17, 18, 27,
 
			0,  1,  2,  4,  6, 15, 16, 17, 18, 21, 22, 23, 24, 25, 19, 20, 29,
 
			0,  1,  3,  4,  6,  5,  7,  8,  9, 12, 14, 26, 27, 28, 19, 20, 29,
 
		};
 
		static const byte arrange18[] = {
 
			0,  1,  2,  4,  5,  6,  7,  8,  9, 12, 19, 20, 21, 22, 23, 17, 18, 27,
 
			0,  1,  3,  4,  5,  6,  7, 10, 13, 14, 15, 16, 24, 25, 26, 17, 18, 27,
 
			0,  1,  2,  4,  5,  6,  7,  8,  9, 14, 21, 22, 23, 24, 25, 19, 20, 29,
 
			0,  1,  3,  4,  5,  6,  7, 12, 15, 16, 17, 18, 26, 27, 28, 19, 20, 29,
 
		};
 
		static const byte arrange19[] = {
 
			0,  1,  2,  4,  5,  6, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 27,
 
			0,  1,  3,  4,  7,  8,  9, 10, 12, 25, 19, 20, 21, 22, 23, 26, 17, 18, 27,
 
			0,  1,  2,  4,  5,  6, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 19, 20, 29,
 
			0,  1,  3,  4,  7,  8,  9, 12, 14, 27, 21, 22, 23, 24, 25, 28, 19, 20, 29,
 
		};
 
		static const byte arrange_all[] = {
 
			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
 
			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
 
		};
 

	
 
		/* If at least BIGGEST_ARRANGEMENT fit, just spread all the buttons nicely */
 
@@ -1462,14 +1504,14 @@ class NWidgetScenarioToolbarContainer : 
 
	/* virtual */ const byte *GetButtonArrangement(uint &width, uint &arrangable_count, uint &button_count, uint &spacer_count) const
 
	{
 
		static const byte arrange_all[] = {
 
			0, 1, 2, 3, 4, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 24, 26,
 
			0, 1, 2, 3, 4, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 26, 28,
 
		};
 
		static const byte arrange_nopanel[] = {
 
			0, 1, 2, 3, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 24, 26,
 
			0, 1, 2, 3, 18, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 26, 28,
 
		};
 
		static const byte arrange_switch[] = {
 
			18,  8, 11, 12, 13, 14, 15, 16, 17, 27,
 
			 0,  1,  2,  3, 18,  9, 10, 24, 26, 27,
 
			18,  8, 11, 12, 13, 14, 15, 16, 17, 29,
 
			 0,  1,  2,  3, 18,  9, 10, 26, 28, 29,
 
		};
 

	
 
		/* If we can place all buttons *and* the panels, show them. */
 
@@ -1516,6 +1558,8 @@ static ToolbarButtonProc * const _toolba
 
	ToolbarStationsClick,
 
	ToolbarFinancesClick,
 
	ToolbarCompaniesClick,
 
	ToolbarStoryClick,
 
	ToolbarGoalClick,
 
	ToolbarGraphsClick,
 
	ToolbarLeagueClick,
 
	ToolbarIndustryClick,
 
@@ -1548,6 +1592,8 @@ enum MainToolbarHotkeys {
 
	MTHK_STATIONS,
 
	MTHK_FINANCES,
 
	MTHK_COMPANIES,
 
	MTHK_STORY,
 
	MTHK_GOAL,
 
	MTHK_GRAPHS,
 
	MTHK_LEAGUE,
 
	MTHK_INDUSTRIES,
 
@@ -1598,7 +1644,7 @@ struct MainToolbarWindow : Window {
 
		 * Since enabled state is the default, just disable when needed */
 
		this->SetWidgetsDisabledState(_local_company == COMPANY_SPECTATOR, WID_TN_RAILS, WID_TN_ROADS, WID_TN_WATER, WID_TN_AIR, WID_TN_LANDSCAPE, WIDGET_LIST_END);
 
		/* disable company list drop downs, if there are no companies */
 
		this->SetWidgetsDisabledState(Company::GetNumItems() == 0, WID_TN_STATIONS, WID_TN_FINANCES, WID_TN_TRAINS, WID_TN_ROADVEHS, WID_TN_SHIPS, WID_TN_AIRCRAFTS, WIDGET_LIST_END);
 
		this->SetWidgetsDisabledState(Company::GetNumItems() == 0, WID_TN_STATIONS, WID_TN_FINANCES, WID_TN_TRAINS, WID_TN_ROADVEHS, WID_TN_SHIPS, WID_TN_AIRCRAFTS, WID_TN_STORY, WID_TN_GOAL, WIDGET_LIST_END);
 

	
 
		this->SetWidgetDisabledState(WID_TN_RAILS, !CanBuildVehicleInfrastructure(VEH_TRAIN));
 
		this->SetWidgetDisabledState(WID_TN_AIR, !CanBuildVehicleInfrastructure(VEH_AIRCRAFT));
 
@@ -1631,6 +1677,8 @@ struct MainToolbarWindow : Window {
 
			case MTHK_STATIONS: ShowCompanyStations(_local_company); break;
 
			case MTHK_FINANCES: ShowCompanyFinances(_local_company); break;
 
			case MTHK_COMPANIES: ShowCompany(_local_company); break;
 
			case MTHK_STORY: ShowStoryBook(_local_company); break;
 
			case MTHK_GOAL: ShowGoalsList(_local_company); break;
 
			case MTHK_GRAPHS: ShowOperatingProfitGraph(); break;
 
			case MTHK_LEAGUE: ShowCompanyLeagueTable(); break;
 
			case MTHK_INDUSTRIES: ShowBuildIndustryWindow(); break;
 
@@ -1734,6 +1782,8 @@ Hotkey<MainToolbarWindow> MainToolbarWin
 
	Hotkey<MainToolbarWindow>(WKC_F7, "station_list", MTHK_STATIONS),
 
	Hotkey<MainToolbarWindow>(WKC_F8, "finances", MTHK_FINANCES),
 
	Hotkey<MainToolbarWindow>(WKC_F9, "companies", MTHK_COMPANIES),
 
	Hotkey<MainToolbarWindow>((uint16)0, "story_book", MTHK_STORY),
 
	Hotkey<MainToolbarWindow>((uint16)0, "goal_list", MTHK_GOAL),
 
	Hotkey<MainToolbarWindow>(WKC_F10, "graphs", MTHK_GRAPHS),
 
	Hotkey<MainToolbarWindow>(WKC_F11, "league", MTHK_LEAGUE),
 
	Hotkey<MainToolbarWindow>(WKC_F12, "industry_list", MTHK_INDUSTRIES),
 
@@ -1779,6 +1829,8 @@ static NWidgetBase *MakeMainToolbar(int 
 
		SPR_IMG_COMPANY_LIST,    // WID_TN_STATIONS
 
		SPR_IMG_COMPANY_FINANCE, // WID_TN_FINANCES
 
		SPR_IMG_COMPANY_GENERAL, // WID_TN_COMPANIES
 
		SPR_IMG_STORY_BOOK,      // WID_TN_STORY
 
		SPR_IMG_GOAL,            // WID_TN_GOAL
 
		SPR_IMG_GRAPHS,          // WID_TN_GRAPHS
 
		SPR_IMG_COMPANY_LEAGUE,  // WID_TN_LEAGUE
 
		SPR_IMG_INDUSTRY,        // WID_TN_INDUSTRIES
 
@@ -1802,7 +1854,7 @@ static NWidgetBase *MakeMainToolbar(int 
 
	NWidgetMainToolbarContainer *hor = new NWidgetMainToolbarContainer();
 
	for (uint i = 0; i < WID_TN_END; i++) {
 
		switch (i) {
 
			case 4: case 8: case 13: case 17: case 19: case 24: hor->Add(new NWidgetSpacer(0, 0)); break;
 
			case 4: case 8: case 15: case 19: case 21: case 26: hor->Add(new NWidgetSpacer(0, 0)); break;
 
		}
 
		hor->Add(new NWidgetLeaf(i == WID_TN_SAVE ? WWT_IMGBTN_2 : WWT_IMGBTN, COLOUR_GREY, i, toolbar_button_sprites[i], STR_TOOLBAR_TOOLTIP_PAUSE_GAME + i));
 
	}
 
@@ -1850,6 +1902,8 @@ static ToolbarButtonProc * const _scen_t
 
	NULL,
 
	NULL,
 
	NULL,
 
	NULL,
 
	NULL,
 
	ToolbarMusicClick,
 
	NULL,
 
	ToolbarHelpClick,
src/widgets/toolbar_widget.h
Show inline comments
 
@@ -24,6 +24,8 @@ enum ToolbarNormalWidgets {
 
	WID_TN_STATIONS,      ///< Station menu.
 
	WID_TN_FINANCES,      ///< Finance menu.
 
	WID_TN_COMPANIES,     ///< Company menu.
 
	WID_TN_STORY,         ///< Story menu.
 
	WID_TN_GOAL,          ///< Goal menu.
 
	WID_TN_GRAPHS,        ///< Graph menu.
 
	WID_TN_LEAGUE,        ///< Company league menu.
 
	WID_TN_INDUSTRIES,    ///< Industry menu.
0 comments (0 inline, 0 general)