mirror of https://github.com/OpenTTD/OpenTTD
Change: only open story-book in center when a GS does it (#11916)
parent
59a046de9c
commit
fe4494ec11
|
@ -65,7 +65,7 @@ void ShowGoalsList(CompanyID company);
|
||||||
void ShowGoalQuestion(uint16_t id, byte type, uint32_t button_mask, const std::string &question);
|
void ShowGoalQuestion(uint16_t id, byte type, uint32_t button_mask, const std::string &question);
|
||||||
|
|
||||||
/* story_gui.cpp */
|
/* story_gui.cpp */
|
||||||
void ShowStoryBook(CompanyID company, uint16_t page_id = INVALID_STORY_PAGE);
|
void ShowStoryBook(CompanyID company, uint16_t page_id = INVALID_STORY_PAGE, bool centered = false);
|
||||||
|
|
||||||
/* viewport_gui.cpp */
|
/* viewport_gui.cpp */
|
||||||
void ShowExtraViewportWindow(TileIndex tile = INVALID_TILE);
|
void ShowExtraViewportWindow(TileIndex tile = INVALID_TILE);
|
||||||
|
|
|
@ -368,7 +368,7 @@ CommandCost CmdShowStoryPage(DoCommandFlag flags, StoryPageID page_id)
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
StoryPage *g = StoryPage::Get(page_id);
|
StoryPage *g = StoryPage::Get(page_id);
|
||||||
if ((g->company != INVALID_COMPANY && g->company == _local_company) || (g->company == INVALID_COMPANY && Company::IsValidID(_local_company))) ShowStoryBook(_local_company, page_id);
|
if ((g->company != INVALID_COMPANY && g->company == _local_company) || (g->company == INVALID_COMPANY && Company::IsValidID(_local_company))) ShowStoryBook(_local_company, page_id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CommandCost();
|
return CommandCost();
|
||||||
|
|
|
@ -969,7 +969,14 @@ static constexpr NWidgetPart _nested_story_book_widgets[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static WindowDesc _story_book_desc(__FILE__, __LINE__,
|
static WindowDesc _story_book_desc(__FILE__, __LINE__,
|
||||||
WDP_CENTER, "view_story", 400, 300,
|
WDP_AUTO, "view_story", 400, 300,
|
||||||
|
WC_STORY_BOOK, WC_NONE,
|
||||||
|
0,
|
||||||
|
std::begin(_nested_story_book_widgets), std::end(_nested_story_book_widgets)
|
||||||
|
);
|
||||||
|
|
||||||
|
static WindowDesc _story_book_gs_desc(__FILE__, __LINE__,
|
||||||
|
WDP_CENTER, "view_story_gs", 400, 300,
|
||||||
WC_STORY_BOOK, WC_NONE,
|
WC_STORY_BOOK, WC_NONE,
|
||||||
0,
|
0,
|
||||||
std::begin(_nested_story_book_widgets), std::end(_nested_story_book_widgets)
|
std::begin(_nested_story_book_widgets), std::end(_nested_story_book_widgets)
|
||||||
|
@ -1041,11 +1048,12 @@ static CursorID TranslateStoryPageButtonCursor(StoryPageButtonCursor cursor)
|
||||||
* Raise or create the story book window for \a company, at page \a page_id.
|
* Raise or create the story book window for \a company, at page \a page_id.
|
||||||
* @param company 'Owner' of the story book, may be #INVALID_COMPANY.
|
* @param company 'Owner' of the story book, may be #INVALID_COMPANY.
|
||||||
* @param page_id Page to open, may be #INVALID_STORY_PAGE.
|
* @param page_id Page to open, may be #INVALID_STORY_PAGE.
|
||||||
|
* @param centered Whether to open the window centered.
|
||||||
*/
|
*/
|
||||||
void ShowStoryBook(CompanyID company, uint16_t page_id)
|
void ShowStoryBook(CompanyID company, uint16_t page_id, bool centered)
|
||||||
{
|
{
|
||||||
if (!Company::IsValidID(company)) company = (CompanyID)INVALID_COMPANY;
|
if (!Company::IsValidID(company)) company = (CompanyID)INVALID_COMPANY;
|
||||||
|
|
||||||
StoryBookWindow *w = AllocateWindowDescFront<StoryBookWindow>(&_story_book_desc, company, true);
|
StoryBookWindow *w = AllocateWindowDescFront<StoryBookWindow>(centered ? &_story_book_gs_desc : &_story_book_desc, company, true);
|
||||||
if (page_id != INVALID_STORY_PAGE) w->SetSelectedPage(page_id);
|
if (page_id != INVALID_STORY_PAGE) w->SetSelectedPage(page_id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue