mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-24 03:56:43 +00:00
Codechange: rename and make RoadSpriteType a scoped enum
RoadTypeSpriteGroup is now renamed to RoadSpriteType
This commit is contained in:
committed by
Peter Nelson
parent
d15f105974
commit
5cef1ca68a
@@ -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);
|
||||
|
||||
@@ -304,7 +304,8 @@ template <RoadTramType TRoadTramType>
|
||||
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 {}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
+18
-18
@@ -32,21 +32,21 @@ using RoadTypeFlags = EnumBitSet<RoadTypeFlag, uint8_t>;
|
||||
|
||||
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<std::array<const GRFFile *, to_underlying(RoadSpriteType::End)>, RoadSpriteType> grffile{};
|
||||
|
||||
/**
|
||||
* Sprite groups for resolving sprites
|
||||
*/
|
||||
const SpriteGroup *group[ROTSG_END];
|
||||
EnumClassIndexContainer<std::array<const SpriteGroup *, to_underlying(RoadSpriteType::End)>, RoadSpriteType> group{};
|
||||
|
||||
std::vector<BadgeID> badges;
|
||||
|
||||
inline bool UsesOverlay() const
|
||||
{
|
||||
return this->group[ROTSG_GROUND] != nullptr;
|
||||
return this->group[RoadSpriteType::Ground] != nullptr;
|
||||
}
|
||||
|
||||
RoadType Index() const;
|
||||
|
||||
+12
-12
@@ -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);
|
||||
|
||||
+4
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
+10
-10
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user