diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index d9296b6e60..0d34def9fc 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -101,7 +101,7 @@ static rct_widget window_map_widgets[] = { // used in transforming viewport view coordinates to minimap coordinates // rct2: 0x00981BBC -static constexpr const LocationXY16 MiniMapOffsets[] = { +static constexpr const ScreenCoordsXY MiniMapOffsets[] = { { MAXIMUM_MAP_SIZE_TECHNICAL - 8, 0 }, { 2 * MAXIMUM_MAP_SIZE_TECHNICAL - 8, MAXIMUM_MAP_SIZE_TECHNICAL }, { MAXIMUM_MAP_SIZE_TECHNICAL - 8, 2 * MAXIMUM_MAP_SIZE_TECHNICAL }, @@ -922,7 +922,7 @@ static void window_map_centre_on_view_point() if (w_map == nullptr) return; - LocationXY16 offset = MiniMapOffsets[get_current_rotation()]; + auto offset = MiniMapOffsets[get_current_rotation()]; // calculate centre view point of viewport and transform it to minimap coordinates @@ -1131,7 +1131,7 @@ static void window_map_paint_hud_rectangle(rct_drawpixelinfo* dpi) if (viewport == nullptr) return; - LocationXY16 offset = MiniMapOffsets[get_current_rotation()]; + auto offset = MiniMapOffsets[get_current_rotation()]; int16_t left = (viewport->view_x >> 5) + offset.x; int16_t right = ((viewport->view_x + viewport->view_width) >> 5) + offset.x; int16_t top = (viewport->view_y >> 4) + offset.y; @@ -1629,8 +1629,7 @@ static void map_window_set_pixels(rct_window* w) int32_t x = 0, y = 0, dx = 0, dy = 0; int32_t pos = (_currentLine * (MAP_WINDOW_MAP_SIZE - 1)) + MAXIMUM_MAP_SIZE_TECHNICAL - 1; - LocationXY16 destinationPosition = { static_cast(pos % MAP_WINDOW_MAP_SIZE), - static_cast(pos / MAP_WINDOW_MAP_SIZE) }; + auto destinationPosition = ScreenCoordsXY{ pos % MAP_WINDOW_MAP_SIZE, pos / MAP_WINDOW_MAP_SIZE }; auto destination = _mapImageData.data() + (destinationPosition.y * MAP_WINDOW_MAP_SIZE) + destinationPosition.x; switch (get_current_rotation()) { diff --git a/src/openrct2-ui/windows/Multiplayer.cpp b/src/openrct2-ui/windows/Multiplayer.cpp index 5bcaa2fdc1..c1e4e4db2e 100644 --- a/src/openrct2-ui/windows/Multiplayer.cpp +++ b/src/openrct2-ui/windows/Multiplayer.cpp @@ -300,7 +300,7 @@ static void window_multiplayer_draw_tab_images(rct_window* w, rct_drawpixelinfo* static void window_multiplayer_set_page(rct_window* w, int32_t page); static bool _windowInformationSizeDirty; -static LocationXY16 _windowInformationSize; +static ScreenCoordsXY _windowInformationSize; rct_window* window_multiplayer_open() { @@ -406,7 +406,7 @@ static void window_multiplayer_information_mouseup(rct_window* w, rct_widgetinde } } -static LocationXY16 window_multiplayer_information_get_size() +static ScreenCoordsXY window_multiplayer_information_get_size() { if (!_windowInformationSizeDirty) { @@ -462,7 +462,7 @@ static LocationXY16 window_multiplayer_information_get_size() static void window_multiplayer_information_resize(rct_window* w) { - LocationXY16 size = window_multiplayer_information_get_size(); + auto size = window_multiplayer_information_get_size(); window_set_resize(w, size.x, size.y, size.x, size.y); } diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index 370bc29801..c2263273b5 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -127,9 +127,9 @@ static void window_track_place_draw_mini_preview_track( TrackDesign* td6, int32_t pass, CoordsXY origin, CoordsXY min, CoordsXY max); static void window_track_place_draw_mini_preview_maze( TrackDesign* td6, int32_t pass, const CoordsXY& origin, CoordsXY min, CoordsXY max); -static LocationXY16 draw_mini_preview_get_pixel_position(int16_t x, int16_t y); -static bool draw_mini_preview_is_pixel_in_bounds(LocationXY16 pixel); -static uint8_t* draw_mini_preview_get_pixel_ptr(LocationXY16 pixel); +static ScreenCoordsXY draw_mini_preview_get_pixel_position(CoordsXY location); +static bool draw_mini_preview_is_pixel_in_bounds(const ScreenCoordsXY& pixel); +static uint8_t* draw_mini_preview_get_pixel_ptr(const ScreenCoordsXY& pixel); /** * @@ -586,8 +586,7 @@ static void window_track_place_draw_mini_preview_track( } else { - LocationXY16 pixelPosition = draw_mini_preview_get_pixel_position( - rotatedAndOffsetTrackBlock.x, rotatedAndOffsetTrackBlock.y); + auto pixelPosition = draw_mini_preview_get_pixel_position(rotatedAndOffsetTrackBlock); if (draw_mini_preview_is_pixel_in_bounds(pixelPosition)) { uint8_t* pixel = draw_mini_preview_get_pixel_ptr(pixelPosition); @@ -647,8 +646,7 @@ static void window_track_place_draw_mini_preview_track( } else { - LocationXY16 pixelPosition = draw_mini_preview_get_pixel_position( - rotatedAndOffsetEntrance.x, rotatedAndOffsetEntrance.y); + auto pixelPosition = draw_mini_preview_get_pixel_position(rotatedAndOffsetEntrance); if (draw_mini_preview_is_pixel_in_bounds(pixelPosition)) { uint8_t* pixel = draw_mini_preview_get_pixel_ptr(pixelPosition); @@ -682,7 +680,7 @@ static void window_track_place_draw_mini_preview_maze( } else { - LocationXY16 pixelPosition = draw_mini_preview_get_pixel_position(rotatedMazeCoords.x, rotatedMazeCoords.y); + auto pixelPosition = draw_mini_preview_get_pixel_position(rotatedMazeCoords); if (draw_mini_preview_is_pixel_in_bounds(pixelPosition)) { uint8_t* pixel = draw_mini_preview_get_pixel_ptr(pixelPosition); @@ -707,17 +705,18 @@ static void window_track_place_draw_mini_preview_maze( } } -static LocationXY16 draw_mini_preview_get_pixel_position(int16_t x, int16_t y) +static ScreenCoordsXY draw_mini_preview_get_pixel_position(CoordsXY location) { - return { (int16_t)(80 + ((y / 32) - (x / 32)) * 4), (int16_t)(38 + ((y / 32) + (x / 32)) * 2) }; + auto tilePos = TileCoordsXY(location); + return { (80 + (tilePos.y - tilePos.x) * 4), (38 + (tilePos.y + tilePos.x) * 2) }; } -static bool draw_mini_preview_is_pixel_in_bounds(LocationXY16 pixel) +static bool draw_mini_preview_is_pixel_in_bounds(const ScreenCoordsXY& pixel) { return pixel.x >= 0 && pixel.y >= 0 && pixel.x <= 160 && pixel.y <= 75; } -static uint8_t* draw_mini_preview_get_pixel_ptr(LocationXY16 pixel) +static uint8_t* draw_mini_preview_get_pixel_ptr(const ScreenCoordsXY& pixel) { return &_window_track_place_mini_preview[pixel.y * TRACK_MINI_PREVIEW_WIDTH + pixel.x]; } diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index 6c8810280e..8e85c9cc53 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -48,8 +48,8 @@ const rct_string_id litterNames[12] = { STR_LITTER_VOMIT, STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE }; -static LocationXYZ16 _spritelocations1[MAX_SPRITES]; -static LocationXYZ16 _spritelocations2[MAX_SPRITES]; +static CoordsXYZ _spritelocations1[MAX_SPRITES]; +static CoordsXYZ _spritelocations2[MAX_SPRITES]; static size_t GetSpatialIndexOffset(int32_t x, int32_t y); @@ -829,7 +829,7 @@ static bool sprite_should_tween(rct_sprite* sprite) return false; } -static void store_sprite_locations(LocationXYZ16* sprite_locations) +static void store_sprite_locations(CoordsXYZ* sprite_locations) { for (uint16_t i = 0; i < MAX_SPRITES; i++) { @@ -861,9 +861,9 @@ void sprite_position_tween_all(float alpha) rct_sprite* sprite = get_sprite(i); if (sprite_should_tween(sprite)) { - LocationXYZ16 posA = _spritelocations1[i]; - LocationXYZ16 posB = _spritelocations2[i]; - if (posA.x == posB.x && posA.y == posB.y && posA.z == posB.z) + auto posA = _spritelocations1[i]; + auto posB = _spritelocations2[i]; + if (posA == posB) { continue; } @@ -887,7 +887,7 @@ void sprite_position_tween_restore() { invalidate_sprite_2(&sprite->generic); - LocationXYZ16 pos = _spritelocations2[i]; + auto pos = _spritelocations2[i]; sprite_set_coordinates(pos.x, pos.y, pos.z, &sprite->generic); } }