From 5aa8ae5c6ef3a36d08f7858e1be1437a56dcd68d Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Thu, 5 Oct 2017 00:23:46 +0200 Subject: [PATCH] Fix viewport coordinates being set too late. Fix headless always sending 0,0 viewport coordinates. --- src/openrct2/game.c | 4 ++++ src/openrct2/interface/viewport.c | 22 +++++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/openrct2/game.c b/src/openrct2/game.c index f2d9705829..fc42c04b36 100644 --- a/src/openrct2/game.c +++ b/src/openrct2/game.c @@ -1165,6 +1165,10 @@ void game_load_init() } mainWindow->saved_view_x -= mainWindow->viewport->view_width >> 1; mainWindow->saved_view_y -= mainWindow->viewport->view_height >> 1; + + // Make sure the viewport has correct coordinates set. + viewport_update_position(mainWindow); + window_invalidate(mainWindow); } diff --git a/src/openrct2/interface/viewport.c b/src/openrct2/interface/viewport.c index cb86449f73..ab348d3988 100644 --- a/src/openrct2/interface/viewport.c +++ b/src/openrct2/interface/viewport.c @@ -1614,23 +1614,15 @@ sint16 get_height_marker_offset() void viewport_set_saved_view() { - sint16 viewX = 0; - sint16 viewY = 0; - uint8 viewZoom = 0; - uint8 viewRotation = 0; - rct_window * w = window_get_main(); - if (w != NULL) { + if (w != NULL) + { rct_viewport *viewport = w->viewport; - viewX = viewport->view_width / 2 + viewport->view_x; - viewY = viewport->view_height / 2 + viewport->view_y; - viewZoom = viewport->zoom; - viewRotation = get_current_rotation(); - } + gSavedViewX = viewport->view_width / 2 + viewport->view_x; + gSavedViewY = viewport->view_height / 2 + viewport->view_y; - gSavedViewX = viewX; - gSavedViewY = viewY; - gSavedViewZoom = viewZoom; - gSavedViewRotation = viewRotation; + gSavedViewZoom = viewport->zoom; + gSavedViewRotation = get_current_rotation(); + } }