From 0b84c7bb43262c6da63d862cd12e18e1c94e1c9b Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 5 Jan 2018 23:35:44 +0000 Subject: [PATCH] Refactor viewport_interaction.c to C++ --- ...iewport_interaction.c => ViewportInteraction.cpp} | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) rename src/openrct2/interface/{viewport_interaction.c => ViewportInteraction.cpp} (98%) diff --git a/src/openrct2/interface/viewport_interaction.c b/src/openrct2/interface/ViewportInteraction.cpp similarity index 98% rename from src/openrct2/interface/viewport_interaction.c rename to src/openrct2/interface/ViewportInteraction.cpp index 0b5ae6c953..e8a2019bea 100644 --- a/src/openrct2/interface/viewport_interaction.c +++ b/src/openrct2/interface/ViewportInteraction.cpp @@ -15,6 +15,7 @@ #pragma endregion #include "../Cheats.h" +#include "../core/Math.hpp" #include "../Editor.h" #include "../Game.h" #include "../Input.h" @@ -34,6 +35,9 @@ #include "viewport.h" #include "../Context.h" +extern "C" +{ + static void viewport_interaction_remove_scenery(rct_tile_element *tileElement, sint32 x, sint32 y); static void viewport_interaction_remove_footpath(rct_tile_element *tileElement, sint32 x, sint32 y); static void viewport_interaction_remove_footpath_item(rct_tile_element *tileElement, sint32 x, sint32 y); @@ -615,7 +619,7 @@ void sub_68A15E(sint32 screenX, sint32 screenY, sint16 *x, sint16 *y, sint32 *di } LocationXY16 start_vp_pos = screen_coord_to_viewport_coord(viewport, screenX, screenY); - LocationXY16 map_pos = { my_x + 16, my_y + 16 }; + LocationXY16 map_pos = { (sint16)(my_x + 16), (sint16)(my_y + 16) }; for (sint32 i = 0; i < 5; i++) { sint16 z = originalZ; @@ -623,8 +627,8 @@ void sub_68A15E(sint32 screenX, sint32 screenY, sint16 *x, sint16 *y, sint32 *di z = tile_element_height(map_pos.x, map_pos.y); } map_pos = viewport_coord_to_map_coord(start_vp_pos.x, start_vp_pos.y, z); - map_pos.x = clamp(my_x, map_pos.x, my_x + 31); - map_pos.y = clamp(my_y, map_pos.y, my_y + 31); + map_pos.x = Math::Clamp(map_pos.x, my_x, my_x + 31); + map_pos.y = Math::Clamp(map_pos.y, my_y, my_y + 31); } // Determine to which edge the cursor is closest @@ -650,3 +654,5 @@ void sub_68A15E(sint32 screenX, sint32 screenY, sint16 *x, sint16 *y, sint32 *di if (direction != NULL) *direction = myDirection; if (tileElement != NULL) *tileElement = myTileElement; } + +}