diff --git a/src/openrct2-ui/title/TitleSequencePlayer.cpp b/src/openrct2-ui/title/TitleSequencePlayer.cpp index 3e6117ada0..cff6a9a05d 100644 --- a/src/openrct2-ui/title/TitleSequencePlayer.cpp +++ b/src/openrct2-ui/title/TitleSequencePlayer.cpp @@ -529,7 +529,7 @@ private: // Prevent scroll adjustment due to window placement when in-game auto oldScreenFlags = gScreenFlags; gScreenFlags = SCREEN_FLAGS_TITLE_DEMO; - window_set_location(w, x, y, z); + w->SetLocation(x, y, z); gScreenFlags = oldScreenFlags; viewport_update_position(w); diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index a476fef707..bf8c11c0ad 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -20,6 +20,7 @@ #include "actions/LandSetRightsAction.hpp" #include "audio/audio.h" #include "interface/Viewport.h" +#include "interface/Window_internal.h" #include "localisation/Localisation.h" #include "localisation/LocalisationService.h" #include "management/NewsItem.h" @@ -86,7 +87,7 @@ namespace Editor gS6Info.category = SCENARIO_CATEGORY_OTHER; viewport_init_all(); rct_window* mainWindow = context_open_window_view(WV_EDITOR_MAIN); - window_set_location(mainWindow, 2400, 2400, 112); + mainWindow->SetLocation(2400, 2400, 112); load_palette(); gScreenAge = 0; gScenarioName = language_get_string(STR_MY_NEW_SCENARIO); @@ -162,7 +163,7 @@ namespace Editor gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; viewport_init_all(); rct_window* mainWindow = context_open_window_view(WV_EDITOR_MAIN); - window_set_location(mainWindow, 2400, 2400, 112); + mainWindow->SetLocation(2400, 2400, 112); load_palette(); } @@ -183,7 +184,7 @@ namespace Editor gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; viewport_init_all(); rct_window* mainWindow = context_open_window_view(WV_EDITOR_MAIN); - window_set_location(mainWindow, 2400, 2400, 112); + mainWindow->SetLocation(2400, 2400, 112); load_palette(); } diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 0371295ecc..89b93ec466 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -27,6 +27,7 @@ #include "../drawing/Font.h" #include "../interface/Chat.h" #include "../interface/Colour.h" +#include "../interface/Window_internal.h" #include "../localisation/Localisation.h" #include "../management/Finance.h" #include "../management/Research.h" @@ -907,7 +908,7 @@ static int32_t cc_set(InteractiveConsole& console, const arguments_t& argv) int32_t x = (int16_t)(int_val[0] * 32 + 16); int32_t y = (int16_t)(int_val[1] * 32 + 16); int32_t z = tile_element_height(x, y); - window_set_location(w, x, y, z); + w->SetLocation(x, y, z); viewport_update_position(w); console.Execute("get location"); } diff --git a/src/openrct2/interface/Window.cpp b/src/openrct2/interface/Window.cpp index 302d920dd8..b8f7ff24e3 100644 --- a/src/openrct2/interface/Window.cpp +++ b/src/openrct2/interface/Window.cpp @@ -836,12 +836,6 @@ void window_scroll_to_viewport(rct_window* w) window_scroll_to_location(mainWindow, x, y, z); } -void window_set_location(rct_window* w, int32_t x, int32_t y, int32_t z) -{ - window_scroll_to_location(w, x, y, z); - w->flags &= ~WF_SCROLLING_TO_LOCATION; -} - /** * * rct2: 0x006E7C9C diff --git a/src/openrct2/interface/Window.h b/src/openrct2/interface/Window.h index a9f9f96126..ad366dbf4e 100644 --- a/src/openrct2/interface/Window.h +++ b/src/openrct2/interface/Window.h @@ -631,7 +631,6 @@ void window_push_others_below(rct_window* w1); rct_window* window_get_main(); -void window_set_location(rct_window* w, int32_t x, int32_t y, int32_t z); void window_scroll_to_viewport(rct_window* w); void window_scroll_to_location(rct_window* w, int32_t x, int32_t y, int32_t z); void window_rotate_camera(rct_window* w, int32_t direction); diff --git a/src/openrct2/interface/Window_internal.cpp b/src/openrct2/interface/Window_internal.cpp new file mode 100644 index 0000000000..244ff56e1f --- /dev/null +++ b/src/openrct2/interface/Window_internal.cpp @@ -0,0 +1,7 @@ +#include "Window_internal.h" + +void rct_window::SetLocation(int32_t newX, int32_t newY, int32_t newZ) +{ + window_scroll_to_location(this, newX, newY, newZ); + flags &= ~WF_SCROLLING_TO_LOCATION; +} diff --git a/src/openrct2/interface/Window_internal.h b/src/openrct2/interface/Window_internal.h index edd3c7799d..5337e03d1c 100644 --- a/src/openrct2/interface/Window_internal.h +++ b/src/openrct2/interface/Window_internal.h @@ -101,6 +101,8 @@ struct rct_window uint8_t colours[6]; // 0x4BA uint8_t visibility; // VISIBILITY_CACHE uint16_t viewport_smart_follow_sprite; // Smart following of sprites. Handles setting viewport target sprite etc + + void SetLocation(int32_t x, int32_t y, int32_t z); }; // rct2: 0x01420078