Changeset - r20356:2fbb54644e80
[Not reviewed]
master
0 5 0
zuu - 11 years ago 2013-06-09 13:13:47
zuu@openttd.org
(svn r25369) -Add: allow opening a story window specific to a company
5 files changed with 29 insertions and 13 deletions:
0 comments (0 inline, 0 general)
src/gui.h
Show inline comments
 
@@ -17,6 +17,7 @@
 
#include "tile_type.h"
 
#include "transport_type.h"
 
#include "story_type.h"
 
#include "company_type.h"
 

	
 
struct Window;
 

	
 
@@ -52,7 +53,7 @@ void ShowIndustryCargoesWindow();
 
void ShowSubsidiesList();
 
void ShowGoalsList();
 
void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const char *question);
 
void ShowStoryBook(uint16 page_id = INVALID_STORY_PAGE);
 
void ShowStoryBook(CompanyID company, uint16 page_id = INVALID_STORY_PAGE);
 

	
 
void ShowEstimatedCostOrIncome(Money cost, int x, int y);
 

	
src/lang/english.txt
Show inline comments
 
@@ -2975,7 +2975,8 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO        
 
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER                :{BLACK}Click on service to centre main view on industry/town. Ctrl+Click opens a new viewport on industry/town location
 

	
 
# Story book window
 
STR_STORY_BOOK_CAPTION                                          :{WHITE}Story Book
 
STR_STORY_BOOK_CAPTION                                          :{WHITE}{COMPANY} Story Book
 
STR_STORY_BOOK_SPECTATOR_CAPTION                                :{WHITE}Global Story Book
 
STR_STORY_BOOK_TITLE                                            :{YELLOW}{RAW_STRING}
 
STR_STORY_BOOK_GENERIC_PAGE_ITEM                                :Page {NUM}
 
STR_STORY_BOOK_SEL_PAGE_TOOLTIP                                 :{BLACK}Jump to a specific page by selecting it in this drop down list.
src/story.cpp
Show inline comments
 
@@ -264,7 +264,7 @@ CommandCost CmdShowStoryPage(TileIndex t
 

	
 
	if (flags & DC_EXEC) {
 
		StoryPage *g = StoryPage::Get(p1);
 
		if ((g->company != INVALID_COMPANY && g->company == _local_company) || (g->company == INVALID_COMPANY && Company::IsValidID(_local_company))) ShowStoryBook(p1);
 
		if ((g->company != INVALID_COMPANY && g->company == _local_company) || (g->company == INVALID_COMPANY && Company::IsValidID(_local_company))) ShowStoryBook(_local_company, p1);
 
	}
 

	
 
	return CommandCost();
src/story_gui.cpp
Show inline comments
 
@@ -24,6 +24,7 @@
 
#include "goal_base.h"
 
#include "viewport_func.h"
 
#include "window_func.h"
 
#include "company_base.h"
 

	
 
#include "widgets/story_widget.h"
 

	
 
@@ -107,7 +108,7 @@ protected:
 
	 */
 
	bool IsPageAvailable(const StoryPage *page) const
 
	{
 
		return page->company == INVALID_COMPANY || page->company == _local_company;
 
		return page->company == INVALID_COMPANY || page->company == this->window_number;
 
	}
 

	
 
	/**
 
@@ -460,10 +461,21 @@ public:
 

	
 
	virtual void SetStringParameters(int widget) const
 
	{
 
		if (widget != WID_SB_SEL_PAGE) return;
 

	
 
		StoryPage *page = this->GetSelPage();
 
		SetDParamStr(0, page != NULL && page->title != NULL ? page->title : this->selected_generic_title);
 
		switch (widget) {
 
			case WID_SB_SEL_PAGE: {
 
				StoryPage *page = this->GetSelPage();
 
				SetDParamStr(0, page != NULL && page->title != NULL ? page->title : this->selected_generic_title);
 
				break;
 
			}
 
			case WID_SB_CAPTION:
 
				if (this->window_number == INVALID_COMPANY) {
 
					SetDParam(0, STR_STORY_BOOK_SPECTATOR_CAPTION);
 
				} else {
 
					SetDParam(0, STR_STORY_BOOK_CAPTION);
 
					SetDParam(1, this->window_number);
 
				}
 
				break;
 
		}
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
@@ -697,7 +709,7 @@ GUIStoryPageElementList::SortFunction * 
 
static const NWidgetPart _nested_story_book_widgets[] = {
 
	NWidget(NWID_HORIZONTAL),
 
		NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
 
		NWidget(WWT_CAPTION, COLOUR_BROWN, WID_SB_CAPTION), SetDataTip(STR_STORY_BOOK_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
 
		NWidget(WWT_CAPTION, COLOUR_BROWN, WID_SB_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
 
		NWidget(WWT_SHADEBOX, COLOUR_BROWN),
 
		NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
 
		NWidget(WWT_STICKYBOX, COLOUR_BROWN),
 
@@ -726,11 +738,13 @@ static WindowDesc _story_book_desc(
 
	_nested_story_book_widgets, lengthof(_nested_story_book_widgets)
 
);
 

	
 
void ShowStoryBook(uint16 page_id)
 
void ShowStoryBook(CompanyID company, uint16 page_id)
 
{
 
	StoryBookWindow *w = AllocateWindowDescFront<StoryBookWindow>(&_story_book_desc, 0);
 
	if (!Company::IsValidID(company)) company = (CompanyID)INVALID_COMPANY;
 

	
 
	StoryBookWindow *w = AllocateWindowDescFront<StoryBookWindow>(&_story_book_desc, company);
 
	if (page_id != INVALID_STORY_PAGE) {
 
		if (w == NULL) w = (StoryBookWindow *)FindWindowById(WC_STORY_BOOK, 0);
 
		if (w == NULL) w = (StoryBookWindow *)FindWindowById(WC_STORY_BOOK, company);
 
		w->SetSelectedPage(page_id);
 
	}
 
}
src/toolbar_gui.cpp
Show inline comments
 
@@ -656,7 +656,7 @@ static CallBackFunction MenuClickLeague(
 
{
 
	switch (index) {
 
		case 0: ShowGoalsList();               break;
 
		case 1: ShowStoryBook();               break;
 
		case 1: ShowStoryBook(_local_company); break;
 
		case 2: ShowCompanyLeagueTable();      break;
 
		case 3: ShowPerformanceRatingDetail(); break;
 
		case 4: ShowHighscoreTable();          break;
0 comments (0 inline, 0 general)