From 459259aeec83dbc11c2647788d82ab5d949038cf Mon Sep 17 00:00:00 2001 From: smatz Date: Wed, 23 Apr 2008 19:47:23 +0000 Subject: (svn r12853) -Fix: catenary on tunnel entrances and middle bridge pieces was drawn twice in some cases --- src/elrail.cpp | 15 ++++++--------- src/rail.h | 1 + src/tunnelbridge_cmd.cpp | 4 +--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/elrail.cpp b/src/elrail.cpp index 3637f0ba5..a043863b6 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -377,8 +377,13 @@ static void DrawCatenaryRailway(const TileInfo *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 index 04a712d1c..85c648baa 100644 --- a/src/rail.h +++ b/src/rail.h @@ -216,6 +216,7 @@ static inline bool HasCatenary(RailType rt) */ 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 index 109f86baf..d95aa9f1c 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -886,8 +886,6 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } } 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 */ -- cgit v1.2.3-70-g09d2