From fe4494ec11fc36f50e18ef336c205dab97e2a105 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 3 Feb 2024 08:09:55 +0100 Subject: [PATCH] Change: only open story-book in center when a GS does it (#11916) --- src/gui.h | 2 +- src/story.cpp | 2 +- src/story_gui.cpp | 14 +++++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/gui.h b/src/gui.h index 772a53ddb0..a55978c54a 100644 --- a/src/gui.h +++ b/src/gui.h @@ -65,7 +65,7 @@ void ShowGoalsList(CompanyID company); void ShowGoalQuestion(uint16_t id, byte type, uint32_t button_mask, const std::string &question); /* 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 */ void ShowExtraViewportWindow(TileIndex tile = INVALID_TILE); diff --git a/src/story.cpp b/src/story.cpp index 0b7f0f920b..5a4f224410 100644 --- a/src/story.cpp +++ b/src/story.cpp @@ -368,7 +368,7 @@ CommandCost CmdShowStoryPage(DoCommandFlag flags, StoryPageID page_id) if (flags & DC_EXEC) { 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(); diff --git a/src/story_gui.cpp b/src/story_gui.cpp index c986042cb7..5324aaad41 100644 --- a/src/story_gui.cpp +++ b/src/story_gui.cpp @@ -969,7 +969,14 @@ static constexpr NWidgetPart _nested_story_book_widgets[] = { }; 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, 0, 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. * @param company 'Owner' of the story book, may be #INVALID_COMPANY. * @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; - StoryBookWindow *w = AllocateWindowDescFront(&_story_book_desc, company, true); + StoryBookWindow *w = AllocateWindowDescFront(centered ? &_story_book_gs_desc : &_story_book_desc, company, true); if (page_id != INVALID_STORY_PAGE) w->SetSelectedPage(page_id); }