diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index a9fdb06229..bb81c72687 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2809,7 +2809,7 @@ static void ConDumpRoadTypes() const RoadTypeInfo *rti = GetRoadTypeInfo(rt); if (rti->label == 0) continue; uint32_t grfid = 0; - const GRFFile *grf = rti->grffile[ROTSG_GROUND]; + const GRFFile *grf = rti->grffile[RoadSpriteType::Ground]; if (grf != nullptr) { grfid = grf->grfid; grfs.emplace(grfid, grf); diff --git a/src/newgrf/newgrf_act3.cpp b/src/newgrf/newgrf_act3.cpp index 7731dd32fd..611647f34c 100644 --- a/src/newgrf/newgrf_act3.cpp +++ b/src/newgrf/newgrf_act3.cpp @@ -304,7 +304,8 @@ template struct RoadTypeMapSpriteGroupHandler : MapSpriteGroupHandler { void MapSpecific(uint16_t local_id, uint8_t cid, const SpriteGroup *group) override { - if (cid >= ROTSG_END) return; + RoadSpriteType rst{cid}; + if (rst >= RoadSpriteType::End) return; const auto &type_map = (TRoadTramType == RoadTramType::Tram) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; RoadType roadtype = local_id < std::size(type_map) ? type_map[local_id] : INVALID_ROADTYPE; @@ -312,8 +313,8 @@ struct RoadTypeMapSpriteGroupHandler : MapSpriteGroupHandler { extern RoadTypeInfo _roadtypes[ROADTYPE_END]; RoadTypeInfo &rti = _roadtypes[roadtype]; - rti.grffile[cid] = _cur_gps.grffile; - rti.group[cid] = group; + rti.grffile[rst] = _cur_gps.grffile; + rti.group[rst] = group; } void MapDefault(uint16_t, const SpriteGroup *) override {} diff --git a/src/newgrf_roadstop.cpp b/src/newgrf_roadstop.cpp index 3e77f09d46..dbb9ceb25b 100644 --- a/src/newgrf_roadstop.cpp +++ b/src/newgrf_roadstop.cpp @@ -326,10 +326,10 @@ void DrawRoadStopTile(int x, int y, RoadType roadtype, const RoadStopSpec *spec, /* Road underlay takes precedence over tram */ if (type == StationType::RoadWaypoint || draw_mode.Test(RoadStopDrawMode::Overlay)) { if (rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_GROUND); + SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::Ground); DrawSprite(ground + sprite_offset, PAL_NONE, x, y); - SpriteID overlay = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_OVERLAY); + SpriteID overlay = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::Overlay); if (overlay) DrawSprite(overlay + sprite_offset, PAL_NONE, x, y); } else if (RoadTypeIsTram(roadtype)) { DrawSprite(SPR_TRAMWAY_TRAM + sprite_offset, PAL_NONE, x, y); @@ -338,7 +338,7 @@ void DrawRoadStopTile(int x, int y, RoadType roadtype, const RoadStopSpec *spec, } else { /* Bay stop */ if (draw_mode.Test(RoadStopDrawMode::Road) && rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_ROADSTOP); + SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::Roadstop); DrawSprite(ground + view, PAL_NONE, x, y); } } diff --git a/src/newgrf_roadtype.cpp b/src/newgrf_roadtype.cpp index 31cbb3f978..2858b7d694 100644 --- a/src/newgrf_roadtype.cpp +++ b/src/newgrf_roadtype.cpp @@ -134,7 +134,7 @@ uint32_t RoadTypeResolverObject::GetDebugID() const * @param param1 Extra parameter (first parameter of the callback, except roadtypes do not have callbacks). * @param param2 Extra parameter (second parameter of the callback, except roadtypes do not have callbacks). */ -RoadTypeResolverObject::RoadTypeResolverObject(const RoadTypeInfo *rti, TileIndex tile, TileContext context, RoadTypeSpriteGroup rtsg, uint32_t param1, uint32_t param2) +RoadTypeResolverObject::RoadTypeResolverObject(const RoadTypeInfo *rti, TileIndex tile, TileContext context, RoadSpriteType rtsg, uint32_t param1, uint32_t param2) : ResolverObject(rti != nullptr ? rti->grffile[rtsg] : nullptr, CBID_NO_CALLBACK, param1, param2), roadtype_scope(*this, rti, tile, context) { this->root_spritegroup = rti != nullptr ? rti->group[rtsg] : nullptr; @@ -149,9 +149,9 @@ RoadTypeResolverObject::RoadTypeResolverObject(const RoadTypeInfo *rti, TileInde * @param [out] num_results If not nullptr, return the number of sprites in the spriteset. * @return The sprite to draw. */ -SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadTypeSpriteGroup rtsg, TileContext context, uint *num_results) +SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadSpriteType rtsg, TileContext context, uint *num_results) { - assert(rtsg < ROTSG_END); + assert(rtsg < RoadSpriteType::End); if (rti->group[rtsg] == nullptr) return 0; diff --git a/src/newgrf_roadtype.h b/src/newgrf_roadtype.h index a85416d477..63bce5b3c0 100644 --- a/src/newgrf_roadtype.h +++ b/src/newgrf_roadtype.h @@ -40,7 +40,7 @@ struct RoadTypeScopeResolver : public ScopeResolver { struct RoadTypeResolverObject : public ResolverObject { RoadTypeScopeResolver roadtype_scope; ///< Resolver for the roadtype scope. - RoadTypeResolverObject(const RoadTypeInfo *rti, TileIndex tile, TileContext context, RoadTypeSpriteGroup rtsg, uint32_t param1 = 0, uint32_t param2 = 0); + RoadTypeResolverObject(const RoadTypeInfo *rti, TileIndex tile, TileContext context, RoadSpriteType rtsg, uint32_t param1 = 0, uint32_t param2 = 0); ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, uint8_t relative = 0) override { @@ -54,7 +54,7 @@ struct RoadTypeResolverObject : public ResolverObject { uint32_t GetDebugID() const override; }; -SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadTypeSpriteGroup rtsg, TileContext context = TCX_NORMAL, uint *num_results = nullptr); +SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadSpriteType rtsg, TileContext context = TCX_NORMAL, uint *num_results = nullptr); RoadType GetRoadTypeTranslation(RoadTramType rtt, uint8_t tracktype, const GRFFile *grffile); uint8_t GetReverseRoadTypeTranslation(RoadType roadtype, const GRFFile *grffile); diff --git a/src/road.h b/src/road.h index 49f162acc9..3be8bab573 100644 --- a/src/road.h +++ b/src/road.h @@ -32,21 +32,21 @@ using RoadTypeFlags = EnumBitSet; struct SpriteGroup; -/** Sprite groups for a roadtype. */ -enum RoadTypeSpriteGroup : uint8_t { - ROTSG_CURSORS, ///< Optional: Cursor and toolbar icon images - ROTSG_OVERLAY, ///< Optional: Images for overlaying track - ROTSG_GROUND, ///< Required: Main group of ground images - ROTSG_TUNNEL, ///< Optional: Ground images for tunnels - ROTSG_CATENARY_FRONT, ///< Optional: Catenary front - ROTSG_CATENARY_BACK, ///< Optional: Catenary back - ROTSG_BRIDGE, ///< Required: Bridge surface images - ROTSG_reserved2, ///< Placeholder, if we need specific level crossing sprites. - ROTSG_DEPOT, ///< Optional: Depot images - ROTSG_reserved3, ///< Placeholder, if we add road fences (for highways). - ROTSG_ROADSTOP, ///< Required: Bay stop surface - ROTSG_ONEWAY, ///< Optional: One-way indicator images - ROTSG_END, +/** Sprite types for a roadtype. */ +enum class RoadSpriteType : uint8_t { + UI, ///< Optional: Cursor and toolbar icon images + Overlay, ///< Optional: Images for overlaying track + Ground, ///< Required: Main group of ground images + Tunnel, ///< Optional: Ground images for tunnels + CatenaryFront, ///< Optional: Catenary front + CatenaryRear, ///< Optional: Catenary back + Bridge, ///< Required: Bridge surface images + ReservedCrossing, ///< Placeholder, if we need specific level crossing sprites. + Depot, ///< Optional: Depot images + ReservedFence, ///< Placeholder, if we add road fences (for highways). + Roadstop, ///< Required: Bay stop surface + Oneway, ///< Optional: One-way indicator images + End, ///< End marker. }; class RoadTypeInfo { @@ -158,18 +158,18 @@ public: /** * NewGRF providing the Action3 for the roadtype. nullptr if not available. */ - const GRFFile *grffile[ROTSG_END]; + EnumClassIndexContainer, RoadSpriteType> grffile{}; /** * Sprite groups for resolving sprites */ - const SpriteGroup *group[ROTSG_END]; + EnumClassIndexContainer, RoadSpriteType> group{}; std::vector badges; inline bool UsesOverlay() const { - return this->group[ROTSG_GROUND] != nullptr; + return this->group[RoadSpriteType::Ground] != nullptr; } RoadType Index() const; diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 809c7b507b..dc064386f9 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -74,7 +74,7 @@ void ResetRoadTypes() void ResolveRoadTypeGUISprites(RoadTypeInfo *rti) { - SpriteID cursors_base = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_CURSORS); + SpriteID cursors_base = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::UI); if (cursors_base != 0) { rti->gui_sprites.build_y_road = cursors_base + 0; rti->gui_sprites.build_x_road = cursors_base + 1; @@ -1395,8 +1395,8 @@ void DrawRoadTypeCatenary(const TileInfo *ti, RoadType rt, RoadBits rb) } const RoadTypeInfo *rti = GetRoadTypeInfo(rt); - SpriteID front = GetCustomRoadSprite(rti, ti->tile, ROTSG_CATENARY_FRONT); - SpriteID back = GetCustomRoadSprite(rti, ti->tile, ROTSG_CATENARY_BACK); + SpriteID front = GetCustomRoadSprite(rti, ti->tile, RoadSpriteType::CatenaryFront); + SpriteID back = GetCustomRoadSprite(rti, ti->tile, RoadSpriteType::CatenaryRear); if (front != 0 || back != 0) { if (front != 0) front += GetRoadSpriteOffset(ti->tileh, rb); @@ -1510,12 +1510,12 @@ void DrawRoadOverlays(const TileInfo *ti, PaletteID pal, const RoadTypeInfo *roa /* Road underlay takes precedence over tram */ if (road_rti != nullptr) { if (road_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_GROUND); + SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::Ground); DrawGroundSprite(ground + road_offset, pal); } } else { if (tram_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, ROTSG_GROUND); + SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, RoadSpriteType::Ground); DrawGroundSprite(ground + tram_offset, pal); } else { DrawGroundSprite(SPR_TRAMWAY_TRAM + tram_offset, pal); @@ -1526,7 +1526,7 @@ void DrawRoadOverlays(const TileInfo *ti, PaletteID pal, const RoadTypeInfo *roa /* Draw road overlay */ if (road_rti != nullptr) { if (road_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_OVERLAY); + SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::Overlay); if (ground != 0) DrawGroundSprite(ground + road_offset, pal); } } @@ -1534,7 +1534,7 @@ void DrawRoadOverlays(const TileInfo *ti, PaletteID pal, const RoadTypeInfo *roa /* Draw tram overlay */ if (tram_rti != nullptr) { if (tram_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, ROTSG_OVERLAY); + SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, RoadSpriteType::Overlay); if (ground != 0) DrawGroundSprite(ground + tram_offset, pal); } else if (road_rti != nullptr) { DrawGroundSprite(SPR_TRAMWAY_OVERLAY + tram_offset, pal); @@ -1646,7 +1646,7 @@ static void DrawRoadBits(TileInfo *ti) if (road_rti != nullptr) { DisallowedRoadDirections drd = GetDisallowedRoadDirections(ti->tile); if (drd.Any()) { - SpriteID oneway = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_ONEWAY); + SpriteID oneway = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::Oneway); if (oneway == 0) oneway = SPR_ONEWAY_BASE; @@ -1855,7 +1855,7 @@ static void DrawTile_Road(TileInfo *ti) RoadType tram_rt = GetRoadTypeTram(ti->tile); const RoadTypeInfo *rti = GetRoadTypeInfo(road_rt == INVALID_ROADTYPE ? tram_rt : road_rt); - int relocation = GetCustomRoadSprite(rti, ti->tile, ROTSG_DEPOT); + int relocation = GetCustomRoadSprite(rti, ti->tile, RoadSpriteType::Depot); bool default_gfx = relocation == 0; if (default_gfx) { if (rti->flags.Test(RoadTypeFlag::Catenary)) { @@ -1879,7 +1879,7 @@ static void DrawTile_Road(TileInfo *ti) if (default_gfx) { uint offset = GetRoadSpriteOffset(SLOPE_FLAT, DiagDirToRoadBits(dir)); if (rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(rti, ti->tile, ROTSG_OVERLAY); + SpriteID ground = GetCustomRoadSprite(rti, ti->tile, RoadSpriteType::Overlay); if (ground != 0) DrawGroundSprite(ground + offset, PAL_NONE); } else if (road_rt == INVALID_ROADTYPE) { DrawGroundSprite(SPR_TRAMWAY_OVERLAY + offset, PAL_NONE); @@ -1906,7 +1906,7 @@ void DrawRoadDepotSprite(int x, int y, DiagDirection dir, RoadType rt) PaletteID palette = GetCompanyPalette(_local_company); const RoadTypeInfo *rti = GetRoadTypeInfo(rt); - int relocation = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_DEPOT); + int relocation = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::Depot); bool default_gfx = relocation == 0; if (default_gfx) { if (rti->flags.Test(RoadTypeFlag::Catenary)) { @@ -1929,7 +1929,7 @@ void DrawRoadDepotSprite(int x, int y, DiagDirection dir, RoadType rt) if (default_gfx) { uint offset = GetRoadSpriteOffset(SLOPE_FLAT, DiagDirToRoadBits(dir)); if (rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_OVERLAY); + SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, RoadSpriteType::Overlay); if (ground != 0) DrawSprite(ground + offset, PAL_NONE, x, y); } else if (RoadTypeIsTram(rt)) { DrawSprite(SPR_TRAMWAY_OVERLAY + offset, PAL_NONE, x, y); diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index fe2037f328..51d965af48 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -3517,7 +3517,7 @@ static void DrawTile_Station(TileInfo *ti) assert(road_rt != INVALID_ROADTYPE && tram_rt == INVALID_ROADTYPE); if ((stopspec == nullptr || stop_draw_mode.Test(RoadStopDrawMode::Road)) && road_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_ROADSTOP); + SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::Roadstop); DrawGroundSprite(ground + view, PAL_NONE); } } @@ -3568,10 +3568,10 @@ void StationPickerDrawSprite(int x, int y, StationType st, RailType railtype, Ro /* Road underlay takes precedence over tram */ if (roadtype_info->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(roadtype_info, INVALID_TILE, ROTSG_GROUND); + SpriteID ground = GetCustomRoadSprite(roadtype_info, INVALID_TILE, RoadSpriteType::Ground); DrawSprite(ground + sprite_offset, PAL_NONE, x, y); - SpriteID overlay = GetCustomRoadSprite(roadtype_info, INVALID_TILE, ROTSG_OVERLAY); + SpriteID overlay = GetCustomRoadSprite(roadtype_info, INVALID_TILE, RoadSpriteType::Overlay); if (overlay) DrawSprite(overlay + sprite_offset, PAL_NONE, x, y); } else if (RoadTypeIsTram(roadtype)) { DrawSprite(SPR_TRAMWAY_TRAM + sprite_offset, PAL_NONE, x, y); @@ -3579,7 +3579,7 @@ void StationPickerDrawSprite(int x, int y, StationType st, RailType railtype, Ro } else { /* Bay stop */ if (RoadTypeIsRoad(roadtype) && roadtype_info->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(roadtype_info, INVALID_TILE, ROTSG_ROADSTOP); + SpriteID ground = GetCustomRoadSprite(roadtype_info, INVALID_TILE, RoadSpriteType::Roadstop); DrawSprite(ground + image, PAL_NONE, x, y); } } diff --git a/src/table/newgrf_debug_data.h b/src/table/newgrf_debug_data.h index 422f9e84ef..069351c670 100644 --- a/src/table/newgrf_debug_data.h +++ b/src/table/newgrf_debug_data.h @@ -643,7 +643,7 @@ class NIHRoadType : public NIHelper { { /* There is no unique GRFFile for the tile. Multiple GRFs can define different parts of the railtype. * However, currently the NewGRF Debug GUI does not display variables depending on the GRF (like 0x7F) anyway. */ - RoadTypeResolverObject ro(nullptr, TileIndex{index}, TCX_NORMAL, ROTSG_END); + RoadTypeResolverObject ro(nullptr, TileIndex{index}, TCX_NORMAL, RoadSpriteType::End); return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail); } }; diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 95d0f1cddb..0462f7d1c0 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1145,8 +1145,8 @@ static void GetBridgeRoadCatenary(const RoadTypeInfo *rti, TileIndex head_tile, static const SpriteID front_offsets[6] = { 97, 98, 103, 106, 104, 105 }; /* Simplified from DrawRoadTypeCatenary() to remove all the special cases required for regular ground road */ - spr_back = GetCustomRoadSprite(rti, head_tile, ROTSG_CATENARY_BACK, head ? TCX_NORMAL : TCX_ON_BRIDGE); - spr_front = GetCustomRoadSprite(rti, head_tile, ROTSG_CATENARY_FRONT, head ? TCX_NORMAL : TCX_ON_BRIDGE); + spr_back = GetCustomRoadSprite(rti, head_tile, RoadSpriteType::CatenaryRear, head ? TCX_NORMAL : TCX_ON_BRIDGE); + spr_front = GetCustomRoadSprite(rti, head_tile, RoadSpriteType::CatenaryFront, head ? TCX_NORMAL : TCX_ON_BRIDGE); if (spr_back == 0 && spr_front == 0) { spr_back = SPR_TRAMWAY_BASE + back_offsets[offset]; spr_front = SPR_TRAMWAY_BASE + front_offsets[offset]; @@ -1184,14 +1184,14 @@ static void DrawBridgeRoadBits(TileIndex head_tile, int x, int y, int z, int off trans_back[0] = !head && IsTransparencySet(TO_BRIDGES); if (road_rti != nullptr) { if (road_rti->UsesOverlay()) { - seq_back[0] = GetCustomRoadSprite(road_rti, head_tile, ROTSG_BRIDGE, head ? TCX_NORMAL : TCX_ON_BRIDGE) + offset; + seq_back[0] = GetCustomRoadSprite(road_rti, head_tile, RoadSpriteType::Bridge, head ? TCX_NORMAL : TCX_ON_BRIDGE) + offset; } else if (is_custom_layout) { /* For custom layouts draw a custom bridge deck. */ seq_back[0] = SPR_BRIDGE_DECKS_ROAD + offset; } } else if (tram_rti != nullptr) { if (tram_rti->UsesOverlay()) { - seq_back[0] = GetCustomRoadSprite(tram_rti, head_tile, ROTSG_BRIDGE, head ? TCX_NORMAL : TCX_ON_BRIDGE) + offset; + seq_back[0] = GetCustomRoadSprite(tram_rti, head_tile, RoadSpriteType::Bridge, head ? TCX_NORMAL : TCX_ON_BRIDGE) + offset; } else { seq_back[0] = SPR_TRAMWAY_BRIDGE + offset; } @@ -1201,7 +1201,7 @@ static void DrawBridgeRoadBits(TileIndex head_tile, int x, int y, int z, int off trans_back[1] = !head && IsTransparencySet(TO_BRIDGES); if (road_rti != nullptr) { if (road_rti->UsesOverlay()) { - seq_back[1] = GetCustomRoadSprite(road_rti, head_tile, ROTSG_OVERLAY, head ? TCX_NORMAL : TCX_ON_BRIDGE); + seq_back[1] = GetCustomRoadSprite(road_rti, head_tile, RoadSpriteType::Overlay, head ? TCX_NORMAL : TCX_ON_BRIDGE); if (seq_back[1] != 0) seq_back[1] += overlay_offsets[offset]; } } @@ -1210,7 +1210,7 @@ static void DrawBridgeRoadBits(TileIndex head_tile, int x, int y, int z, int off trans_back[2] = !head && IsTransparencySet(TO_BRIDGES); if (tram_rti != nullptr) { if (tram_rti->UsesOverlay()) { - seq_back[2] = GetCustomRoadSprite(tram_rti, head_tile, ROTSG_OVERLAY, head ? TCX_NORMAL : TCX_ON_BRIDGE); + seq_back[2] = GetCustomRoadSprite(tram_rti, head_tile, RoadSpriteType::Overlay, head ? TCX_NORMAL : TCX_ON_BRIDGE); if (seq_back[2] != 0) seq_back[2] += overlay_offsets[offset]; } else if (road_rti != nullptr) { seq_back[2] = SPR_TRAMWAY_OVERLAY + overlay_offsets[offset]; @@ -1355,7 +1355,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) /* Road underlay takes precedence over tram */ if (road_rti != nullptr) { if (road_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_TUNNEL); + SpriteID ground = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::Tunnel); if (ground != 0) { DrawGroundSprite(ground + tunnelbridge_direction, PAL_NONE); draw_underlay = false; @@ -1363,7 +1363,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } else { if (tram_rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, ROTSG_TUNNEL); + SpriteID ground = GetCustomRoadSprite(tram_rti, ti->tile, RoadSpriteType::Tunnel); if (ground != 0) { DrawGroundSprite(ground + tunnelbridge_direction, PAL_NONE); draw_underlay = false; @@ -1376,14 +1376,14 @@ static void DrawTile_TunnelBridge(TileInfo *ti) /* Road catenary takes precedence over tram */ SpriteID catenary_sprite_base = 0; if (road_rti != nullptr && HasRoadCatenaryDrawn(road_rt)) { - catenary_sprite_base = GetCustomRoadSprite(road_rti, ti->tile, ROTSG_CATENARY_FRONT); + catenary_sprite_base = GetCustomRoadSprite(road_rti, ti->tile, RoadSpriteType::CatenaryFront); if (catenary_sprite_base == 0) { catenary_sprite_base = SPR_TRAMWAY_TUNNEL_WIRES; } else { catenary_sprite_base += 19; } } else if (tram_rti != nullptr && HasRoadCatenaryDrawn(tram_rt)) { - catenary_sprite_base = GetCustomRoadSprite(tram_rti, ti->tile, ROTSG_CATENARY_FRONT); + catenary_sprite_base = GetCustomRoadSprite(tram_rti, ti->tile, RoadSpriteType::CatenaryFront); if (catenary_sprite_base == 0) { catenary_sprite_base = SPR_TRAMWAY_TUNNEL_WIRES; } else {