From 303b383d9932f51047bbaa90f242b75e9f0b03ef Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sun, 22 Dec 2024 12:50:10 +0100 Subject: [PATCH] Codechange: use (better) named constants for the bridge sprite table --- src/bridge.h | 3 ++- src/newgrf.cpp | 12 ++++++------ src/tunnelbridge_cmd.cpp | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/bridge.h b/src/bridge.h index 0d64dd6012..4f849baa52 100644 --- a/src/bridge.h +++ b/src/bridge.h @@ -27,12 +27,13 @@ enum BridgePieces { BRIDGE_PIECE_MIDDLE_ODD, BRIDGE_PIECE_MIDDLE_EVEN, BRIDGE_PIECE_HEAD, - BRIDGE_PIECE_INVALID, + NUM_BRIDGE_PIECES, }; DECLARE_POSTFIX_INCREMENT(BridgePieces) static const uint MAX_BRIDGES = 13; ///< Maximal number of available bridge specs. +constexpr uint SPRITES_PER_BRIDGE_PIECE = 32; ///< Number of sprites there are per bridge piece. typedef uint BridgeType; ///< Bridge spec number. diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3cf78bfff8..57c861f9de 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2292,21 +2292,21 @@ static ChangeInfoResult BridgeChangeInfo(uint brid, int numinfo, int prop, ByteR if (bridge->sprite_table == nullptr) { /* Allocate memory for sprite table pointers and zero out */ - bridge->sprite_table = CallocT(7); + bridge->sprite_table = CallocT(NUM_BRIDGE_PIECES); } for (; numtables-- != 0; tableid++) { - if (tableid >= 7) { // skip invalid data - GrfMsg(1, "BridgeChangeInfo: Table {} >= 7, skipping", tableid); - for (uint8_t sprite = 0; sprite < 32; sprite++) buf.ReadDWord(); + if (tableid >= NUM_BRIDGE_PIECES) { // skip invalid data + GrfMsg(1, "BridgeChangeInfo: Table {} >= {}, skipping", tableid, NUM_BRIDGE_PIECES); + for (uint8_t sprite = 0; sprite < SPRITES_PER_BRIDGE_PIECE; sprite++) buf.ReadDWord(); continue; } if (bridge->sprite_table[tableid] == nullptr) { - bridge->sprite_table[tableid] = MallocT(32); + bridge->sprite_table[tableid] = MallocT(SPRITES_PER_BRIDGE_PIECE); } - for (uint8_t sprite = 0; sprite < 32; sprite++) { + for (uint8_t sprite = 0; sprite < SPRITES_PER_BRIDGE_PIECE; sprite++) { SpriteID image = buf.ReadWord(); PaletteID pal = buf.ReadWord(); diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 94e04eefb3..f8741035a7 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -88,7 +88,7 @@ void ResetBridges() /* First, free sprite table data */ for (BridgeType i = 0; i < MAX_BRIDGES; i++) { if (_bridge[i].sprite_table != nullptr) { - for (BridgePieces j = BRIDGE_PIECE_NORTH; j < BRIDGE_PIECE_INVALID; j++) free(_bridge[i].sprite_table[j]); + for (BridgePieces j = BRIDGE_PIECE_NORTH; j < NUM_BRIDGE_PIECES; j++) free(_bridge[i].sprite_table[j]); free(_bridge[i].sprite_table); } } @@ -152,7 +152,7 @@ bool HasBridgeFlatRamp(Slope tileh, Axis axis) static inline const PalSpriteID *GetBridgeSpriteTable(int index, BridgePieces table) { const BridgeSpec *bridge = GetBridgeSpec(index); - assert(table < BRIDGE_PIECE_INVALID); + assert(table < NUM_BRIDGE_PIECES); if (bridge->sprite_table == nullptr || bridge->sprite_table[table] == nullptr) { return _bridge_sprite_table[index][table]; } else {