From 290b39ade2d70835b001621ac616311b5889abb0 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Wed, 20 Nov 2024 16:25:59 +0900 Subject: [PATCH] Refactor CarEntrySetImageMaxSizes to use constants (#23234) * Use designated initialisers in CarEntrySetImageMaxSizes * Add named constants to CarEntrySetImageMaxSizes --- src/openrct2/ride/CarEntry.cpp | 48 ++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/openrct2/ride/CarEntry.cpp b/src/openrct2/ride/CarEntry.cpp index 460c385491..0a23c5ce10 100644 --- a/src/openrct2/ride/CarEntry.cpp +++ b/src/openrct2/ride/CarEntry.cpp @@ -46,28 +46,34 @@ uint32_t CarEntry::SpriteOffset(SpriteGroupType spriteGroup, int32_t imageDirect */ void CarEntrySetImageMaxSizes(CarEntry& carEntry, int32_t numImages) { - uint8_t bitmap[200][200] = { 0 }; + constexpr uint8_t kWidth = 200; + constexpr uint8_t kHeight = 200; + constexpr uint8_t kCentreX = kWidth / 2; + constexpr uint8_t kCentreY = kHeight / 2; + + uint8_t bitmap[kHeight][kWidth] = { 0 }; DrawPixelInfo dpi = { - /*.bits = */ reinterpret_cast(bitmap), - /*.x = */ -100, - /*.y = */ -100, - /*.width = */ 200, - /*.height = */ 200, - /*.pitch = */ 0, - /*.zoom_level = */ ZoomLevel{ 0 }, + .bits = reinterpret_cast(bitmap), + .x = -(kWidth / 2), + .y = -(kHeight / 2), + .width = kWidth, + .height = kHeight, + .pitch = 0, + .zoom_level = ZoomLevel{ 0 }, }; for (int32_t i = 0; i < numImages; ++i) { GfxDrawSpriteSoftware(dpi, ImageId(carEntry.base_image_id + i), { 0, 0 }); } + int32_t spriteWidth = -1; - for (int32_t i = 99; i != 0; --i) + for (int32_t i = kCentreX - 1; i != 0; --i) { - for (int32_t j = 0; j < 200; j++) + for (int32_t j = 0; j < kWidth; j++) { - if (bitmap[j][100 - i] != 0) + if (bitmap[j][kCentreX - i] != 0) { spriteWidth = i; break; @@ -77,9 +83,9 @@ void CarEntrySetImageMaxSizes(CarEntry& carEntry, int32_t numImages) if (spriteWidth != -1) break; - for (int32_t j = 0; j < 200; j++) + for (int32_t j = 0; j < kWidth; j++) { - if (bitmap[j][100 + i] != 0) + if (bitmap[j][kCentreX + i] != 0) { spriteWidth = i; break; @@ -89,15 +95,14 @@ void CarEntrySetImageMaxSizes(CarEntry& carEntry, int32_t numImages) if (spriteWidth != -1) break; } - spriteWidth++; - int32_t spriteHeightNegative = -1; - for (int32_t i = 99; i != 0; --i) + int32_t spriteHeightNegative = -1; + for (int32_t i = kCentreY - 1; i != 0; --i) { - for (int32_t j = 0; j < 200; j++) + for (int32_t j = 0; j < kWidth; j++) { - if (bitmap[100 - i][j] != 0) + if (bitmap[kCentreY - i][j] != 0) { spriteHeightNegative = i; break; @@ -110,12 +115,11 @@ void CarEntrySetImageMaxSizes(CarEntry& carEntry, int32_t numImages) spriteHeightNegative++; int32_t spriteHeightPositive = -1; - - for (int32_t i = 99; i != 0; --i) + for (int32_t i = kCentreY - 1; i != 0; --i) { - for (int32_t j = 0; j < 200; j++) + for (int32_t j = 0; j < kWidth; j++) { - if (bitmap[100 + i][j] != 0) + if (bitmap[kCentreY + i][j] != 0) { spriteHeightPositive = i; break;