# HG changeset patch # User smatz # Date 2008-04-23 19:47:23 # Node ID 7ec68c39aca387a66d6f3aafcfe63005cb200c3c # Parent 81771bbbd8146a9dd037eac4453ddf0a1038486b (svn r12853) -Fix: catenary on tunnel entrances and middle bridge pieces was drawn twice in some cases diff --git a/src/elrail.cpp b/src/elrail.cpp --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -377,8 +377,13 @@ static void DrawCatenaryRailway(const Ti } } -static void DrawCatenaryOnBridge(const TileInfo *ti) +void DrawCatenaryOnBridge(const TileInfo *ti) { + if (_patches.disable_elrails) return; + + /* Do not draw catenary if it is invisible */ + if (IsInvisibilitySet(TO_CATENARY)) return; + TileIndex end = GetSouthernBridgeEnd(ti->tile); TileIndex start = GetOtherBridgeEnd(end); @@ -437,14 +442,6 @@ void DrawCatenary(const TileInfo *ti) /* Do not draw catenary if it is invisible */ if (IsInvisibilitySet(TO_CATENARY)) return; - if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile)) { - TileIndex head = GetNorthernBridgeEnd(ti->tile); - - if (GetTunnelBridgeTransportType(head) == TRANSPORT_RAIL && HasCatenary(GetRailType(head))) { - DrawCatenaryOnBridge(ti); - } - } - switch (GetTileType(ti->tile)) { case MP_RAILWAY: if (IsRailDepot(ti->tile)) { diff --git a/src/rail.h b/src/rail.h --- a/src/rail.h +++ b/src/rail.h @@ -216,6 +216,7 @@ static inline bool HasCatenary(RailType */ void DrawCatenary(const TileInfo *ti); void DrawCatenaryOnTunnel(const TileInfo *ti); +void DrawCatenaryOnBridge(const TileInfo *ti); Foundation GetRailFoundation(Slope tileh, TrackBits bits); diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -886,8 +886,6 @@ static void DrawTile_TunnelBridge(TileIn } } } else if (!IsInvisibilitySet(TO_CATENARY) && HasCatenary(GetRailType(ti->tile))) { - DrawCatenary(ti); - catenary = true; StartSpriteCombine(); DrawCatenaryOnTunnel(ti); @@ -1089,7 +1087,7 @@ void DrawBridgeMiddle(const TileInfo* ti StartSpriteCombine(); } } else if (HasCatenary(GetRailType(rampsouth))) { - DrawCatenary(ti); + DrawCatenaryOnBridge(ti); } /* draw roof, the component of the bridge which is logically between the vehicle and the camera */