1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-24 23:34:37 +01:00

Fix #7462: Guest window goes beyond the map edge on a spiral slide. (#7752)

This commit is contained in:
moTechPlz
2018-08-07 16:20:51 +02:00
committed by Aaron van Geffen
parent e87e9f1b2e
commit 8784dfbf41
3 changed files with 7 additions and 3 deletions

View File

@@ -762,7 +762,8 @@ void window_guest_viewport_init(rct_window* w)
if (w->viewport)
{
// Check all combos, for now skipping y and rot
if (focus.coordinate.x == w->viewport_focus_coordinates.x && focus.coordinate.y == w->viewport_focus_coordinates.y
if (focus.coordinate.x == w->viewport_focus_coordinates.x
&& (focus.coordinate.y & VIEWPORT_FOCUS_Y_MASK) == w->viewport_focus_coordinates.y
&& focus.coordinate.z == w->viewport_focus_coordinates.z
&& focus.coordinate.rotation == w->viewport_focus_coordinates.rotation)
return;
@@ -799,8 +800,9 @@ void window_guest_viewport_init(rct_window* w)
int32_t height = view_widget->bottom - view_widget->top - 1;
viewport_create(
w, x, y, width, height, 0, focus.coordinate.x, focus.coordinate.y, focus.coordinate.z,
w, x, y, width, height, 0, focus.coordinate.x, focus.coordinate.y & VIEWPORT_FOCUS_Y_MASK, focus.coordinate.z,
focus.sprite.type & VIEWPORT_FOCUS_TYPE_MASK, focus.sprite.sprite_id);
w->flags |= WF_NO_SCROLLING;
window_invalidate(w);
}

View File

@@ -1887,7 +1887,8 @@ static void window_ride_init_viewport(rct_window* w)
if (w->viewport != nullptr)
{
if (focus.coordinate.x == w->viewport_focus_coordinates.x && focus.coordinate.y == w->viewport_focus_coordinates.y
if (focus.coordinate.x == w->viewport_focus_coordinates.x
&& (focus.coordinate.y & VIEWPORT_FOCUS_Y_MASK) == w->viewport_focus_coordinates.y
&& focus.coordinate.z == w->viewport_focus_coordinates.z
&& focus.coordinate.rotation == w->viewport_focus_coordinates.rotation
&& focus.coordinate.zoom == w->viewport_focus_coordinates.zoom && focus.coordinate.width == w->width