From 826478a8efa9493acadaf9301e45b85d9c41bf81 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Fri, 21 Feb 2020 20:27:09 -0300 Subject: [PATCH 1/4] Use ScreenCoordsXY on UiContext.cpp --- src/openrct2-ui/UiContext.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/openrct2-ui/UiContext.cpp b/src/openrct2-ui/UiContext.cpp index b2a4558e1b..8ebb176874 100644 --- a/src/openrct2-ui/UiContext.cpp +++ b/src/openrct2-ui/UiContext.cpp @@ -557,10 +557,10 @@ public: // Set window position to default display int32_t defaultDisplay = std::clamp(gConfigGeneral.default_display, 0, 0xFFFF); - int32_t x = SDL_WINDOWPOS_UNDEFINED_DISPLAY(defaultDisplay); - int32_t y = SDL_WINDOWPOS_UNDEFINED_DISPLAY(defaultDisplay); + auto windowPos = ScreenCoordsXY{ static_cast(SDL_WINDOWPOS_UNDEFINED_DISPLAY(defaultDisplay)), + static_cast(SDL_WINDOWPOS_UNDEFINED_DISPLAY(defaultDisplay)) }; - CreateWindow(x, y); + CreateWindow(windowPos); // Check if steam overlay renderer is loaded into the process _steamOverlayActive = _platformUiContext->IsSteamOverlayAttached(); @@ -579,12 +579,12 @@ public: void RecreateWindow() override { // Use the position of the current window for the new window - int32_t x, y; + ScreenCoordsXY windowPos; SDL_SetWindowFullscreen(_window, 0); - SDL_GetWindowPosition(_window, &x, &y); + SDL_GetWindowPosition(_window, &windowPos.x, &windowPos.y); CloseWindow(); - CreateWindow(x, y); + CreateWindow(windowPos); } void ShowMessageBox(const std::string& message) override @@ -629,7 +629,7 @@ public: } private: - void CreateWindow(int32_t x, int32_t y) + void CreateWindow(const ScreenCoordsXY& windowPos) { // Get saved window size int32_t width = gConfigGeneral.window_width; @@ -646,7 +646,7 @@ private: flags |= SDL_WINDOW_OPENGL; } - _window = SDL_CreateWindow(OPENRCT2_NAME, x, y, width, height, flags); + _window = SDL_CreateWindow(OPENRCT2_NAME, windowPos.x, windowPos.y, width, height, flags); if (_window == nullptr) { SDLException::Throw("SDL_CreateWindow(...)"); From 47025c45b4d136a2cb7353c57db1545286adae0a Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Fri, 21 Feb 2020 20:27:26 -0300 Subject: [PATCH 2/4] Make setMainView() use ScreenCoordsXY --- src/openrct2-ui/WindowManager.cpp | 6 +++--- src/openrct2-ui/title/TitleSequencePlayer.cpp | 2 +- src/openrct2/Editor.cpp | 2 +- src/openrct2/Game.cpp | 2 +- src/openrct2/ui/DummyWindowManager.cpp | 2 +- src/openrct2/ui/WindowManager.h | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/openrct2-ui/WindowManager.cpp b/src/openrct2-ui/WindowManager.cpp index 7cdf60b6d6..a842c01cf1 100644 --- a/src/openrct2-ui/WindowManager.cpp +++ b/src/openrct2-ui/WindowManager.cpp @@ -488,7 +488,7 @@ public: return std::string(buffer); } - void SetMainView(int32_t x, int32_t y, int32_t zoom, int32_t rotation) override + void SetMainView(const ScreenCoordsXY& viewPos, int32_t zoom, int32_t rotation) override { auto mainWindow = window_get_main(); if (mainWindow != nullptr) @@ -497,8 +497,8 @@ public: auto zoomDifference = zoom - viewport->zoom; mainWindow->viewport_target_sprite = SPRITE_INDEX_NULL; - mainWindow->saved_view_x = x; - mainWindow->saved_view_y = y; + mainWindow->saved_view_x = viewPos.x; + mainWindow->saved_view_y = viewPos.y; viewport->zoom = zoom; gCurrentRotation = rotation; diff --git a/src/openrct2-ui/title/TitleSequencePlayer.cpp b/src/openrct2-ui/title/TitleSequencePlayer.cpp index 49c6e366cd..71dab6674e 100644 --- a/src/openrct2-ui/title/TitleSequencePlayer.cpp +++ b/src/openrct2-ui/title/TitleSequencePlayer.cpp @@ -452,7 +452,7 @@ private: void PrepareParkForPlayback() { auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView(gSavedViewX, gSavedViewY, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); reset_sprite_spatial_index(); reset_all_sprite_quadrant_placements(); auto intent = Intent(INTENT_ACTION_REFRESH_NEW_RIDES); diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index f12392ec04..fe1cc1cfe3 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -425,7 +425,7 @@ namespace Editor static void FinaliseMainView() { auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView(gSavedViewX, gSavedViewY, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); reset_all_sprite_quadrant_placements(); scenery_set_default_placement_configuration(); diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 37adbefce9..f07157b62e 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -553,7 +553,7 @@ void game_load_init() } auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView(gSavedViewX, gSavedViewY, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); if (network_get_mode() != NETWORK_MODE_CLIENT) { diff --git a/src/openrct2/ui/DummyWindowManager.cpp b/src/openrct2/ui/DummyWindowManager.cpp index 3550c864e8..2ad857c880 100644 --- a/src/openrct2/ui/DummyWindowManager.cpp +++ b/src/openrct2/ui/DummyWindowManager.cpp @@ -53,7 +53,7 @@ namespace OpenRCT2::Ui { return std::string(); } - void SetMainView(int32_t x, int32_t y, int32_t zoom, int32_t rotation) override + void SetMainView(const ScreenCoordsXY& viewPos, int32_t zoom, int32_t rotation) override { } void UpdateMouseWheel() override diff --git a/src/openrct2/ui/WindowManager.h b/src/openrct2/ui/WindowManager.h index 2556d9a8c5..17afce589a 100644 --- a/src/openrct2/ui/WindowManager.h +++ b/src/openrct2/ui/WindowManager.h @@ -35,7 +35,7 @@ namespace OpenRCT2::Ui virtual void HandleInput() abstract; virtual void HandleKeyboard(bool isTitle) abstract; virtual std::string GetKeyboardShortcutString(int32_t shortcut) abstract; - virtual void SetMainView(int32_t x, int32_t y, int32_t zoom, int32_t rotation) abstract; + virtual void SetMainView(const ScreenCoordsXY& viewPos, int32_t zoom, int32_t rotation) abstract; virtual void UpdateMouseWheel() abstract; virtual rct_window* GetOwner(const rct_viewport* viewport) abstract; }; From 1b3f0e9a4458918ebe6640026ea91bef916c2c26 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Fri, 21 Feb 2020 20:32:51 -0300 Subject: [PATCH 3/4] Create ScreenCoordsXY gSavedView from separate x,y variables --- src/openrct2-ui/title/TitleSequencePlayer.cpp | 2 +- src/openrct2/Editor.cpp | 2 +- src/openrct2/Game.cpp | 2 +- src/openrct2/interface/Screenshot.cpp | 4 ++-- src/openrct2/interface/Viewport.cpp | 9 ++++----- src/openrct2/interface/Viewport.h | 3 +-- src/openrct2/rct1/S4Importer.cpp | 3 +-- src/openrct2/rct2/S6Exporter.cpp | 4 ++-- src/openrct2/rct2/S6Importer.cpp | 3 +-- 9 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/openrct2-ui/title/TitleSequencePlayer.cpp b/src/openrct2-ui/title/TitleSequencePlayer.cpp index 71dab6674e..e244b73a73 100644 --- a/src/openrct2-ui/title/TitleSequencePlayer.cpp +++ b/src/openrct2-ui/title/TitleSequencePlayer.cpp @@ -452,7 +452,7 @@ private: void PrepareParkForPlayback() { auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); reset_sprite_spatial_index(); reset_all_sprite_quadrant_placements(); auto intent = Intent(INTENT_ACTION_REFRESH_NEW_RIDES); diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index fe1cc1cfe3..a83f4bf990 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -425,7 +425,7 @@ namespace Editor static void FinaliseMainView() { auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); reset_all_sprite_quadrant_placements(); scenery_set_default_placement_configuration(); diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index f07157b62e..8e9fb13844 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -553,7 +553,7 @@ void game_load_init() } auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); - windowManager->SetMainView({ gSavedViewX, gSavedViewY }, gSavedViewZoom, gSavedViewRotation); + windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); if (network_get_mode() != NETWORK_MODE_CLIENT) { diff --git a/src/openrct2/interface/Screenshot.cpp b/src/openrct2/interface/Screenshot.cpp index c3691f6bd3..9e279deb8d 100644 --- a/src/openrct2/interface/Screenshot.cpp +++ b/src/openrct2/interface/Screenshot.cpp @@ -733,8 +733,8 @@ int32_t cmdline_for_screenshot(const char** argv, int32_t argc, ScreenshotOption } else { - viewport.view_x = gSavedViewX - (viewport.view_width / 2); - viewport.view_y = gSavedViewY - (viewport.view_height / 2); + viewport.view_x = gSavedView.x - (viewport.view_width / 2); + viewport.view_y = gSavedView.y - (viewport.view_height / 2); viewport.zoom = gSavedViewZoom; gCurrentRotation = gSavedViewRotation; } diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 0005f8dbb1..432d095409 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -1,4 +1,4 @@ -/***************************************************************************** +/***************************************************************************** * Copyright (c) 2014-2019 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md @@ -45,8 +45,7 @@ rct_viewport* g_music_tracking_viewport; static std::unique_ptr _paintJobs; -int16_t gSavedViewX; -int16_t gSavedViewY; +ScreenCoordsXY gSavedView; uint8_t gSavedViewZoom; uint8_t gSavedViewRotation; @@ -1922,8 +1921,8 @@ void viewport_set_saved_view() { rct_viewport* viewport = w->viewport; - gSavedViewX = viewport->view_width / 2 + viewport->view_x; - gSavedViewY = viewport->view_height / 2 + viewport->view_y; + gSavedView = ScreenCoordsXY{ viewport->view_width / 2 + viewport->view_x, + viewport->view_height / 2 + viewport->view_y }; gSavedViewZoom = viewport->zoom; gSavedViewRotation = get_current_rotation(); diff --git a/src/openrct2/interface/Viewport.h b/src/openrct2/interface/Viewport.h index 4577e4a1f6..ac5d438d22 100644 --- a/src/openrct2/interface/Viewport.h +++ b/src/openrct2/interface/Viewport.h @@ -121,8 +121,7 @@ extern uint8_t gShowConstuctionRightsRefCount; // rct2: 0x014234BC extern rct_viewport g_viewport_list[MAX_VIEWPORT_COUNT]; extern rct_viewport* g_music_tracking_viewport; -extern int16_t gSavedViewX; -extern int16_t gSavedViewY; +extern ScreenCoordsXY gSavedView; extern uint8_t gSavedViewZoom; extern uint8_t gSavedViewRotation; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index f65540f1a1..10ee725f87 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -2680,8 +2680,7 @@ private: void ImportSavedView() { - gSavedViewX = _s4.view_x; - gSavedViewY = _s4.view_y; + gSavedView = ScreenCoordsXY{ _s4.view_x, _s4.view_y }; gSavedViewZoom = _s4.view_zoom; gSavedViewRotation = _s4.view_rotation; } diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index 29a75a4031..5d36db52ba 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -360,8 +360,8 @@ void S6Exporter::Export() this->ExportRides(); _s6.saved_age = gSavedAge; - _s6.saved_view_x = gSavedViewX; - _s6.saved_view_y = gSavedViewY; + _s6.saved_view_x = gSavedView.x; + _s6.saved_view_y = gSavedView.y; _s6.saved_view_zoom = gSavedViewZoom; _s6.saved_view_rotation = gSavedViewRotation; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index f91926322a..dfd6996d85 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -383,8 +383,7 @@ public: ImportRides(); gSavedAge = _s6.saved_age; - gSavedViewX = _s6.saved_view_x; - gSavedViewY = _s6.saved_view_y; + gSavedView = ScreenCoordsXY{ _s6.saved_view_x, _s6.saved_view_y }; gSavedViewZoom = _s6.saved_view_zoom; gSavedViewRotation = _s6.saved_view_rotation; From 98781e75962558d786a8a80fe94e6d4e45924d54 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 23 Feb 2020 09:19:45 -0300 Subject: [PATCH 4/4] Revert change to commented line --- src/openrct2/interface/Viewport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 432d095409..80b4ef4a23 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -1,4 +1,4 @@ -/***************************************************************************** +/***************************************************************************** * Copyright (c) 2014-2019 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md