From 8b7322ad6eb16ccc741acf91ae521b43eb9d02aa Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Wed, 15 Nov 2017 02:11:25 +0100 Subject: [PATCH] Move bottom toolbar to UI module --- OpenRCT2.xcodeproj/project.pbxproj | 10 +++--- src/openrct2-ui/WindowManager.cpp | 6 ++++ src/openrct2-ui/input/KeyboardShortcut.cpp | 2 +- .../windows/GameBottomToolbar.cpp | 33 ++++++++++--------- src/openrct2-ui/windows/Window.h | 3 ++ src/openrct2/game.c | 2 +- src/openrct2/interface/window.h | 2 -- src/openrct2/management/NewsItem.cpp | 12 ++++--- src/openrct2/windows/Intent.h | 1 + 9 files changed, 42 insertions(+), 29 deletions(-) rename src/{openrct2 => openrct2-ui}/windows/GameBottomToolbar.cpp (97%) diff --git a/OpenRCT2.xcodeproj/project.pbxproj b/OpenRCT2.xcodeproj/project.pbxproj index 9d9404ad3e..56f9a2865a 100644 --- a/OpenRCT2.xcodeproj/project.pbxproj +++ b/OpenRCT2.xcodeproj/project.pbxproj @@ -141,6 +141,7 @@ C6136C551E21893500F3ED2B /* view_clipping.c in Sources */ = {isa = PBXBuildFile; fileRef = C6136C541E21893500F3ED2B /* view_clipping.c */; }; C61ADB1F1FB6A0A70024F2EF /* TopToolbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61ADB1E1FB6A0A60024F2EF /* TopToolbar.cpp */; }; C61ADB211FB7DC060024F2EF /* Scenery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61ADB201FB7DC060024F2EF /* Scenery.cpp */; }; + C61ADB231FBBCB8B0024F2EF /* GameBottomToolbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61ADB221FBBCB8A0024F2EF /* GameBottomToolbar.cpp */; }; C61FB2721FA3E25D0095FB9D /* ObjectLoadError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61FB2701FA3E25C0095FB9D /* ObjectLoadError.cpp */; }; C61FB2731FA3E25D0095FB9D /* TextInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61FB2711FA3E25C0095FB9D /* TextInput.cpp */; }; C61FB7241CF86356004CE991 /* NetworkUser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C61FB7221CF86356004CE991 /* NetworkUser.cpp */; }; @@ -210,7 +211,6 @@ C666EE161F33E3800061AA04 /* EditorBottomToolbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666ED831F33E3520061AA04 /* EditorBottomToolbar.cpp */; }; C666EE181F33E3800061AA04 /* EditorMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666ED851F33E3520061AA04 /* EditorMain.cpp */; }; C666EE1A1F33E3800061AA04 /* EditorObjectSelection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666ED871F33E3520061AA04 /* EditorObjectSelection.cpp */; }; - C666EE1F1F33E3800061AA04 /* GameBottomToolbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666ED8C1F33E3520061AA04 /* GameBottomToolbar.cpp */; }; C666EE451F33E3800061AA04 /* TileInspector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666EDB21F33E3520061AA04 /* TileInspector.cpp */; }; C666EE4D1F33E3800061AA04 /* Tooltip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666EDBA1F33E3520061AA04 /* Tooltip.cpp */; }; C666EE6B1F37ACB10061AA04 /* About.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C666EE551F37ACB10061AA04 /* About.cpp */; }; @@ -767,6 +767,7 @@ C6136C541E21893500F3ED2B /* view_clipping.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = view_clipping.c; sourceTree = ""; }; C61ADB1E1FB6A0A60024F2EF /* TopToolbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TopToolbar.cpp; sourceTree = ""; }; C61ADB201FB7DC060024F2EF /* Scenery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Scenery.cpp; sourceTree = ""; }; + C61ADB221FBBCB8A0024F2EF /* GameBottomToolbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GameBottomToolbar.cpp; sourceTree = ""; }; C61FB2701FA3E25C0095FB9D /* ObjectLoadError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ObjectLoadError.cpp; sourceTree = ""; }; C61FB2711FA3E25C0095FB9D /* TextInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextInput.cpp; sourceTree = ""; }; C61FB7221CF86356004CE991 /* NetworkUser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkUser.cpp; sourceTree = ""; usesTabs = 0; }; @@ -826,8 +827,6 @@ C666ED831F33E3520061AA04 /* EditorBottomToolbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorBottomToolbar.cpp; sourceTree = ""; }; C666ED851F33E3520061AA04 /* EditorMain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorMain.cpp; sourceTree = ""; }; C666ED871F33E3520061AA04 /* EditorObjectSelection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorObjectSelection.cpp; sourceTree = ""; }; - C666ED8C1F33E3520061AA04 /* GameBottomToolbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GameBottomToolbar.cpp; sourceTree = ""; }; - C666EDA61F33E3520061AA04 /* RideConstruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RideConstruction.cpp; sourceTree = ""; }; C666EDB21F33E3520061AA04 /* TileInspector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileInspector.cpp; sourceTree = ""; }; C666EDBA1F33E3520061AA04 /* Tooltip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tooltip.cpp; sourceTree = ""; }; C666EE551F37ACB10061AA04 /* About.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = About.cpp; sourceTree = ""; }; @@ -2525,10 +2524,8 @@ C666ED831F33E3520061AA04 /* EditorBottomToolbar.cpp */, C666ED851F33E3520061AA04 /* EditorMain.cpp */, C666ED871F33E3520061AA04 /* EditorObjectSelection.cpp */, - C666ED8C1F33E3520061AA04 /* GameBottomToolbar.cpp */, C654DF3E1F69C18C0040F43D /* Intent.cpp */, C654DF3F1F69C18C0040F43D /* Intent.h */, - C666EDA61F33E3520061AA04 /* RideConstruction.cpp */, F76C854A1EC4E7CD00FA49E2 /* tile_inspector.h */, C666EDB21F33E3520061AA04 /* TileInspector.cpp */, C666EDBA1F33E3520061AA04 /* Tooltip.cpp */, @@ -2695,6 +2692,7 @@ C654DF1E1F69C0430040F43D /* Error.cpp */, C654DF1F1F69C0430040F43D /* Finances.cpp */, C64644F21F3FA4120026AC2D /* Footpath.cpp */, + C61ADB221FBBCB8A0024F2EF /* GameBottomToolbar.cpp */, C685E5161F8907840090598F /* Guest.cpp */, C654DF201F69C0430040F43D /* GuestList.cpp */, C654DF211F69C0430040F43D /* InstallTrack.cpp */, @@ -3165,6 +3163,7 @@ 4C93F1411F8B744400A9330D /* HeartlineTwisterCoaster.cpp in Sources */, 4C93F1BC1F8E185600A9330D /* Marketing.cpp in Sources */, C666EE791F37ACB10061AA04 /* ServerStart.cpp in Sources */, + C61ADB231FBBCB8B0024F2EF /* GameBottomToolbar.cpp in Sources */, C666EE7E1F37ACB10061AA04 /* TitleOptions.cpp in Sources */, 4C8B42721EEB1AE400F015CA /* HardwareDisplayDrawingEngine.cpp in Sources */, 4C93F1BA1F8E185600A9330D /* Award.cpp in Sources */, @@ -3387,7 +3386,6 @@ F76C860B1EC4E88300FA49E2 /* Imaging.cpp in Sources */, F76C860D1EC4E88300FA49E2 /* input.c in Sources */, F76C860F1EC4E88300FA49E2 /* chat.c in Sources */, - C666EE1F1F33E3800061AA04 /* GameBottomToolbar.cpp in Sources */, F76C86111EC4E88300FA49E2 /* colour.c in Sources */, F76C86131EC4E88300FA49E2 /* console.c in Sources */, F76C86161EC4E88300FA49E2 /* Fonts.cpp in Sources */, diff --git a/src/openrct2-ui/WindowManager.cpp b/src/openrct2-ui/WindowManager.cpp index d66d3d2d29..552ff15620 100644 --- a/src/openrct2-ui/WindowManager.cpp +++ b/src/openrct2-ui/WindowManager.cpp @@ -39,6 +39,8 @@ public: { case WC_ABOUT: return window_about_open(); + case WC_BOTTOM_TOOLBAR: + return window_game_bottom_toolbar_open(); case WC_CHANGELOG: return window_changelog_open(); case WC_CHEATS: @@ -307,6 +309,10 @@ public: case INTENT_ACTION_REFRESH_SCENERY: window_scenery_reset_selected_scenery_items(); break; + + case INTENT_ACTION_INVALIDATE_TICKER_NEWS: + window_game_bottom_toolbar_invalidate_news_item(); + break; } } diff --git a/src/openrct2-ui/input/KeyboardShortcut.cpp b/src/openrct2-ui/input/KeyboardShortcut.cpp index c816fcf440..c168ac6073 100644 --- a/src/openrct2-ui/input/KeyboardShortcut.cpp +++ b/src/openrct2-ui/input/KeyboardShortcut.cpp @@ -259,7 +259,7 @@ static void shortcut_remove_top_bottom_toolbar_toggle() if (gScreenFlags == 0) { context_open_window(WC_TOP_TOOLBAR); - window_game_bottom_toolbar_open(); + context_open_window(WC_BOTTOM_TOOLBAR); } else { diff --git a/src/openrct2/windows/GameBottomToolbar.cpp b/src/openrct2-ui/windows/GameBottomToolbar.cpp similarity index 97% rename from src/openrct2/windows/GameBottomToolbar.cpp rename to src/openrct2-ui/windows/GameBottomToolbar.cpp index cc906a881e..82f29faaca 100644 --- a/src/openrct2/windows/GameBottomToolbar.cpp +++ b/src/openrct2-ui/windows/GameBottomToolbar.cpp @@ -14,21 +14,22 @@ *****************************************************************************/ #pragma endregion -#include "../config/Config.h" -#include "../Context.h" -#include "../OpenRCT2.h" -#include "../world/Climate.h" -#include "../core/Math.hpp" +#include -#include "../game.h" -#include "../input.h" -#include "../interface/themes.h" -#include "../interface/widget.h" -#include "../localisation/date.h" -#include "../localisation/localisation.h" -#include "../management/NewsItem.h" -#include "../peep/Staff.h" -#include "../sprites.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include enum WINDOW_GAME_BOTTOM_TOOLBAR_WIDGET_IDX { WIDX_LEFT_OUTSET, @@ -125,7 +126,7 @@ static void window_game_bottom_toolbar_invalidate_dirty_widgets(rct_window *w); * Creates the main game bottom toolbar window. * rct2: 0x0066B52F (part of 0x0066B3E8) */ -void window_game_bottom_toolbar_open() +rct_window * window_game_bottom_toolbar_open() { sint32 screenWidth = context_get_width(); sint32 screenHeight = context_get_height(); @@ -155,6 +156,8 @@ void window_game_bottom_toolbar_open() // Reset the middle widget to not show by default. // If it is required to be shown news_update will reshow it. window_game_bottom_toolbar_widgets[WIDX_MIDDLE_OUTSET].type = WWT_EMPTY; + + return window; } /** diff --git a/src/openrct2-ui/windows/Window.h b/src/openrct2-ui/windows/Window.h index 3bba2082e5..ed64c8de9b 100644 --- a/src/openrct2-ui/windows/Window.h +++ b/src/openrct2-ui/windows/Window.h @@ -146,3 +146,6 @@ bool window_scenery_set_selected_item(sint32 sceneryId); void window_scenery_set_default_placement_configuration(); void window_scenery_init(); void window_scenery_reset_selected_scenery_items(); + +rct_window * window_game_bottom_toolbar_open(); +void window_game_bottom_toolbar_invalidate_news_item(); diff --git a/src/openrct2/game.c b/src/openrct2/game.c index 32b79cec7d..01ef68fb45 100644 --- a/src/openrct2/game.c +++ b/src/openrct2/game.c @@ -146,7 +146,7 @@ void game_create_windows() { context_open_window(WC_MAIN_WINDOW); context_open_window(WC_TOP_TOOLBAR); - window_game_bottom_toolbar_open(); + context_open_window(WC_BOTTOM_TOOLBAR); window_resize_gui(context_get_width(), context_get_height()); } diff --git a/src/openrct2/interface/window.h b/src/openrct2/interface/window.h index 6c10e79abb..986d840e4f 100644 --- a/src/openrct2/interface/window.h +++ b/src/openrct2/interface/window.h @@ -713,8 +713,6 @@ void window_update_viewport_ride_music(); void window_relocate_windows(sint32 width, sint32 height); void window_resize_gui(sint32 width, sint32 height); void window_resize_gui_scenario_editor(sint32 width, sint32 height); -void window_game_bottom_toolbar_open(); -void window_game_bottom_toolbar_invalidate_news_item(); void window_ride_construct(rct_window *w); void ride_construction_toolupdate_entrance_exit(sint32 screenX, sint32 screenY); void ride_construction_toolupdate_construct(sint32 screenX, sint32 screenY); diff --git a/src/openrct2/management/NewsItem.cpp b/src/openrct2/management/NewsItem.cpp index 8302467a0f..118525ec5a 100644 --- a/src/openrct2/management/NewsItem.cpp +++ b/src/openrct2/management/NewsItem.cpp @@ -95,7 +95,8 @@ void news_item_init_queue() gPeepWarningThrottle[i] = 0; } - window_game_bottom_toolbar_invalidate_news_item(); + auto intent = Intent(INTENT_ACTION_INVALIDATE_TICKER_NEWS); + context_broadcast_intent(&intent); } static void news_item_tick_current() @@ -139,7 +140,8 @@ void news_item_update_current() if (news_item_is_queue_empty()) return; - window_game_bottom_toolbar_invalidate_news_item(); + auto intent = Intent(INTENT_ACTION_INVALIDATE_TICKER_NEWS); + context_broadcast_intent(&intent); // Update the current news item news_item_tick_current(); @@ -183,7 +185,8 @@ void news_item_close_current() newsItems[10].Type = NEWS_ITEM_NULL; // Invalidate current news item bar - window_game_bottom_toolbar_invalidate_news_item(); + auto intent = Intent(INTENT_ACTION_INVALIDATE_TICKER_NEWS); + context_broadcast_intent(&intent); } static void news_item_shift_history_up() @@ -436,7 +439,8 @@ void news_item_disable_news(uint8 type, uint32 assoc) newsItem->Flags |= NEWS_FLAG_HAS_BUTTON; if (i == 0) { - window_game_bottom_toolbar_invalidate_news_item(); + auto intent = Intent(INTENT_ACTION_INVALIDATE_TICKER_NEWS); + context_broadcast_intent(&intent); } } } diff --git a/src/openrct2/windows/Intent.h b/src/openrct2/windows/Intent.h index 58d8f2243d..df9bd5feda 100644 --- a/src/openrct2/windows/Intent.h +++ b/src/openrct2/windows/Intent.h @@ -81,6 +81,7 @@ extern "C" { INTENT_ACTION_INIT_SCENERY, INTENT_ACTION_SET_DEFAULT_SCENERY_CONFIG, INTENT_ACTION_REFRESH_SCENERY, + INTENT_ACTION_INVALIDATE_TICKER_NEWS, }; Intent *intent_create(rct_windowclass clss);