1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-06 06:32:56 +01:00

Merge pull request #10857 from Gymnasiast/refactor/locationxy16-be-gone

Remove more usages of LocationXY(Z)16
This commit is contained in:
Michael Steenbeek
2020-03-02 15:22:24 +01:00
committed by GitHub
5 changed files with 25 additions and 31 deletions

View File

@@ -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<int16_t>(pos % MAP_WINDOW_MAP_SIZE),
static_cast<int16_t>(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())
{

View File

@@ -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);
}

View File

@@ -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(const 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(const 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];
}

View File

@@ -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);
}
}

View File

@@ -22,10 +22,7 @@
#define gRideEntries RCT2_ADDRESS(0x009ACFA4, rct_ride_entry*)
#define gSupportSegments RCT2_ADDRESS(0x0141E9B4, support_height)
#define gWoodenSupportsPrependTo RCT2_GLOBAL(0x009DEA58, paint_struct*)
#define gPaintStructs RCT2_ADDRESS(0x00EE788C, paint_entry)
#define g_currently_drawn_item RCT2_GLOBAL(0x009DE578, void*)
#define gEndOfPaintStructArray RCT2_GLOBAL(0x00EE7880, paint_entry*)
#define gPaintSpritePosition RCT2_GLOBAL(0x009DE568, LocationXY16)
#define gPaintInteractionType RCT2_GLOBAL(0x009DE570, uint8_t)
#define gSupportSegments RCT2_ADDRESS(0x0141E9B4, support_height)
#define gSupport RCT2_GLOBAL(0x0141E9D8, support_height)
@@ -39,7 +36,6 @@
#define gSurfaceElement RCT2_GLOBAL(0x009E3250, TileElement*)
#define gDidPassSurface RCT2_GLOBAL(0x009DE57C, bool)
#define g141E9DB RCT2_GLOBAL(0x0141E9DB, uint8_t)
#define gUnk141E9DC RCT2_GLOBAL(0x0141E9DC, uint16_t)
#define gTrackColours RCT2_ADDRESS(0x00F44198, uint32_t)
#define RCT2_CurrentViewportFlags RCT2_GLOBAL(0x0141E9E4, uint32_t)
#define RCT2_CurrentRotation RCT2_GLOBAL(0x0141E9E0, uint8_t)