diff --git a/src/openrct2-ui/windows/ViewClipping.cpp b/src/openrct2-ui/windows/ViewClipping.cpp index bc58ca2533..f16891a3d9 100644 --- a/src/openrct2-ui/windows/ViewClipping.cpp +++ b/src/openrct2-ui/windows/ViewClipping.cpp @@ -66,9 +66,9 @@ static rct_widget window_view_clipping_widgets[] = { #pragma region Members -static LocationXY16 _selectionStart; -static LocationXY8 _previousClipSelectionA; -static LocationXY8 _previousClipSelectionB; +static CoordsXY _selectionStart; +static TileCoordsXY _previousClipSelectionA; +static TileCoordsXY _previousClipSelectionB; static bool _toolActive; static bool _dragging; @@ -239,8 +239,8 @@ static void window_view_clipping_mouseup(rct_window* w, rct_widgetindex widgetIn _dragging = false; // Reset clip selection to show all tiles - _previousClipSelectionA = gClipSelectionA; - _previousClipSelectionB = gClipSelectionB; + _previousClipSelectionA = TileCoordsXY{ gClipSelectionA.x, gClipSelectionA.y }; + _previousClipSelectionB = TileCoordsXY{ gClipSelectionB.x, gClipSelectionB.y }; gClipSelectionA = { 0, 0 }; gClipSelectionB = { MAXIMUM_MAP_SIZE_TECHNICAL - 1, MAXIMUM_MAP_SIZE_TECHNICAL - 1 }; gfx_invalidate_screen(); @@ -303,8 +303,8 @@ static void window_view_clipping_update(rct_window* w) if (_toolActive && !window_view_clipping_tool_is_active()) { _toolActive = false; - gClipSelectionA = _previousClipSelectionA; - gClipSelectionB = _previousClipSelectionB; + gClipSelectionA = { static_cast(_previousClipSelectionA.x), static_cast(_previousClipSelectionA.y) }; + gClipSelectionB = { static_cast(_previousClipSelectionB.x), static_cast(_previousClipSelectionB.y) }; } widget_invalidate(w, WIDX_CLIP_HEIGHT_SLIDER); @@ -336,7 +336,7 @@ static void window_view_clipping_tool_down(rct_window* w, rct_widgetindex widget if (mapCoords) { _dragging = true; - _selectionStart = { static_cast(mapCoords->x), static_cast(mapCoords->y) }; + _selectionStart = *mapCoords; } } @@ -353,10 +353,10 @@ static void window_view_clipping_tool_drag(rct_window* w, rct_widgetindex widget { map_invalidate_selection_rect(); gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE; - gMapSelectPositionA.x = std::min(_selectionStart.x, static_cast(mapCoords->x)); - gMapSelectPositionB.x = std::max(_selectionStart.x, static_cast(mapCoords->x)); - gMapSelectPositionA.y = std::min(_selectionStart.y, static_cast(mapCoords->y)); - gMapSelectPositionB.y = std::max(_selectionStart.y, static_cast(mapCoords->y)); + gMapSelectPositionA.x = std::min(_selectionStart.x, mapCoords->x); + gMapSelectPositionB.x = std::max(_selectionStart.x, mapCoords->x); + gMapSelectPositionA.y = std::min(_selectionStart.y, mapCoords->y); + gMapSelectPositionB.y = std::max(_selectionStart.y, mapCoords->y); gMapSelectType = MAP_SELECT_TYPE_FULL; map_invalidate_selection_rect(); }