(svn r13016) -Codechange: unify the detection if rail catenary should be drawn
authorsmatz
Thu, 08 May 2008 16:48:29 +0000
changeset 10473 ad730880e443
parent 10472 a9e62fc5400f
child 10475 6b7ca9f978f0
(svn r13016) -Codechange: unify the detection if rail catenary should be drawn
projects/openttd_vs80.vcproj
projects/openttd_vs90.vcproj
source.list
src/elrail.cpp
src/elrail_func.h
src/misc/dbg_helpers.cpp
src/openttd.cpp
src/rail.h
src/rail_cmd.cpp
src/road_cmd.cpp
src/settings.cpp
src/station_cmd.cpp
src/tunnelbridge_cmd.cpp
--- a/projects/openttd_vs80.vcproj	Thu May 08 14:14:16 2008 +0000
+++ b/projects/openttd_vs80.vcproj	Thu May 08 16:48:29 2008 +0000
@@ -968,6 +968,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\..\src\elrail_func.h"
+				>
+			</File>
+			<File
 				RelativePath=".\..\src\core\endian_func.hpp"
 				>
 			</File>
--- a/projects/openttd_vs90.vcproj	Thu May 08 14:14:16 2008 +0000
+++ b/projects/openttd_vs90.vcproj	Thu May 08 16:48:29 2008 +0000
@@ -965,6 +965,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\..\src\elrail_func.h"
+				>
+			</File>
+			<File
 				RelativePath=".\..\src\core\endian_func.hpp"
 				>
 			</File>
--- a/source.list	Thu May 08 14:14:16 2008 +0000
+++ b/source.list	Thu May 08 16:48:29 2008 +0000
@@ -167,6 +167,7 @@
 economy_type.h
 effectvehicle_func.h
 effectvehicle_base.h
+elrail_func.h
 core/endian_func.hpp
 engine_base.h
 engine_func.h
--- a/src/elrail.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/elrail.cpp	Thu May 08 16:48:29 2008 +0000
@@ -67,6 +67,7 @@
 #include "player_base.h"
 #include "tunnelbridge.h"
 #include "engine_func.h"
+#include "elrail_func.h"
 #include "engine_base.h"
 
 #include "table/sprites.h"
@@ -182,8 +183,6 @@
 		{ 1, 0, 15, 16 }, // NW
 	};
 
-	if (!HasCatenary(GetRailType(ti->tile)) || _patches.disable_elrails) return;
-
 	DiagDirection dir = GetTunnelBridgeDirection(ti->tile);
 
 	const SortableSpriteStruct *sss = &CatenarySpriteData_Tunnel[dir];
@@ -382,11 +381,6 @@
 
 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);
 
@@ -440,11 +434,6 @@
 
 void DrawCatenary(const TileInfo *ti)
 {
-	if (_patches.disable_elrails) return;
-
-	/* Do not draw catenary if it is invisible */
-	if (IsInvisibilitySet(TO_CATENARY)) return;
-
 	switch (GetTileType(ti->tile)) {
 		case MP_RAILWAY:
 			if (IsRailDepot(ti->tile)) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/elrail_func.h	Thu May 08 16:48:29 2008 +0000
@@ -0,0 +1,42 @@
+/* $Id$ */
+
+/** @file elrail_func.h header file for electrified rail specific functions */
+
+#ifndef ELRAIL_FUNC_H
+#define ELRAIL_FUNC_H
+
+#include "rail.h"
+#include "transparency.h"
+#include "tile_cmd.h"
+#include "settings_type.h"
+
+/**
+ * Test if a rail type has catenary
+ * @param rt Rail type to test
+ */
+static inline bool HasCatenary(RailType rt)
+{
+	return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY);
+}
+
+/**
+ * Test if we should draw rail catenary
+ * @param rt Rail type to test
+ */
+static inline bool HasCatenaryDrawn(RailType rt)
+{
+	return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_patches.disable_elrails;
+}
+
+/**
+ * Draws overhead wires and pylons for electric railways.
+ * @param ti The TileInfo struct of the tile being drawn
+ * @see DrawCatenaryRailway
+ */
+void DrawCatenary(const TileInfo *ti);
+void DrawCatenaryOnTunnel(const TileInfo *ti);
+void DrawCatenaryOnBridge(const TileInfo *ti);
+
+int32 SettingsDisableElrail(int32 p1); ///< _patches.disable_elrail callback
+
+#endif /* ELRAIL_FUNC_H */
--- a/src/misc/dbg_helpers.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/misc/dbg_helpers.cpp	Thu May 08 16:48:29 2008 +0000
@@ -5,6 +5,7 @@
 #include "../stdafx.h"
 #include "../openttd.h"
 #include "../direction_type.h"
+#include "../strings_type.h"
 #include "../rail.h"
 #include "../rail_map.h"
 #include "dbg_helpers.h"
--- a/src/openttd.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/openttd.cpp	Thu May 08 16:48:29 2008 +0000
@@ -60,6 +60,7 @@
 #include "cheat_func.h"
 #include "animated_tile_func.h"
 #include "functions.h"
+#include "elrail_func.h"
 #include "rev.h"
 
 #include "newgrf.h"
--- a/src/rail.h	Thu May 08 14:14:16 2008 +0000
+++ b/src/rail.h	Thu May 08 16:48:29 2008 +0000
@@ -11,7 +11,7 @@
 #include "gfx_type.h"
 #include "core/bitmath_func.hpp"
 #include "economy_func.h"
-#include "tile_cmd.h"
+#include "slope_type.h"
 
 enum RailTypeFlag {
 	RTF_CATENARY = 0,  ///< Set if the rail type should have catenary drawn
@@ -198,29 +198,8 @@
 void *EnsureNoTrainOnTrackProc(Vehicle *v, void *data);
 int TicksToLeaveDepot(const Vehicle *v);
 
-
-/**
- * Test if a rail type has catenary
- * @param rt Rail type to test
- */
-static inline bool HasCatenary(RailType rt)
-{
-	return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY);
-}
-
-
-/**
- * Draws overhead wires and pylons for electric railways.
- * @param ti The TileInfo struct of the tile being drawn
- * @see DrawCatenaryRailway
- */
-void DrawCatenary(const TileInfo *ti);
-void DrawCatenaryOnTunnel(const TileInfo *ti);
-void DrawCatenaryOnBridge(const TileInfo *ti);
-
 Foundation GetRailFoundation(Slope tileh, TrackBits bits);
 
-int32 SettingsDisableElrail(int32 p1); ///< _patches.disable_elrail callback
 
 /**
  * Finds out if a Player has a certain railtype available
--- a/src/rail_cmd.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/rail_cmd.cpp	Thu May 08 16:48:29 2008 +0000
@@ -44,6 +44,7 @@
 #include "station_map.h"
 #include "water_map.h"
 #include "functions.h"
+#include "elrail_func.h"
 #include "oldpool_func.h"
 
 #include "table/sprites.h"
@@ -1762,7 +1763,7 @@
 
 		if (HasBit(_display_opt, DO_FULL_DETAIL)) DrawTrackDetails(ti);
 
-		if (HasCatenary(GetRailType(ti->tile))) DrawCatenary(ti);
+		if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
 
 		if (HasSignals(ti->tile)) DrawSignals(ti->tile, rails);
 	} else {
@@ -1841,7 +1842,7 @@
 
 		DrawGroundSprite(image, PAL_NONE);
 
-		if (HasCatenary(GetRailType(ti->tile))) DrawCatenary(ti);
+		if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
 
 		/* End now if buildings are invisible */
 		if (IsInvisibilitySet(TO_BUILDINGS)) return;
--- a/src/road_cmd.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/road_cmd.cpp	Thu May 08 16:48:29 2008 +0000
@@ -37,6 +37,7 @@
 #include "cheat_func.h"
 #include "functions.h"
 #include "effectvehicle_func.h"
+#include "elrail_func.h"
 #include "oldpool_func.h"
 
 #include "table/sprites.h"
@@ -1139,7 +1140,7 @@
 				DrawGroundSprite(SPR_TRAMWAY_OVERLAY + (GetCrossingRoadAxis(ti->tile) ^ 1), pal);
 				DrawTramCatenary(ti, GetCrossingRoadBits(ti->tile));
 			}
-			if (HasCatenary(GetRailType(ti->tile))) DrawCatenary(ti);
+			if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
 			break;
 		}
 
--- a/src/settings.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/settings.cpp	Thu May 08 16:48:29 2008 +0000
@@ -53,6 +53,7 @@
 #include "textbuf_gui.h"
 #include "string_func.h"
 #include "rail_gui.h"
+#include "elrail_func.h"
 #include "gui.h"
 #include "town.h"
 #include "video/video_driver.hpp"
--- a/src/station_cmd.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/station_cmd.cpp	Thu May 08 16:48:29 2008 +0000
@@ -42,6 +42,7 @@
 #include "signal_func.h"
 #include "oldpool_func.h"
 #include "animated_tile_func.h"
+#include "elrail_func.h"
 
 #include "table/sprites.h"
 #include "table/strings.h"
@@ -2106,7 +2107,7 @@
 		DrawGroundSprite(image, HasBit(image, PALETTE_MODIFIER_COLOR) ? palette : PAL_NONE);
 	}
 
-	if (IsRailwayStation(ti->tile) && HasCatenary(GetRailType(ti->tile)) && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
+	if (IsRailwayStation(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile)) && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
 
 	if (HasBit(roadtypes, ROADTYPE_TRAM)) {
 		Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y;
--- a/src/tunnelbridge_cmd.cpp	Thu May 08 14:14:16 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp	Thu May 08 16:48:29 2008 +0000
@@ -39,6 +39,7 @@
 #include "economy_func.h"
 #include "rail.h"
 #include "cheat_func.h"
+#include "elrail_func.h"
 #include "landscape_type.h"
 
 #include "table/sprites.h"
@@ -887,7 +888,7 @@
 					AddSortableSpriteToDraw(SPR_TRAMWAY_TUNNEL_WIRES + tunnelbridge_direction, PAL_NONE, ti->x, ti->y, BB_data[10], BB_data[11], TILE_HEIGHT, ti->z, IsTransparencySet(TO_CATENARY), BB_data[8], BB_data[9], BB_Z_SEPARATOR);
 				}
 			}
-		} else if (!IsInvisibilitySet(TO_CATENARY) && HasCatenary(GetRailType(ti->tile))) {
+		} else if (HasCatenaryDrawn(GetRailType(ti->tile))) {
 			catenary = true;
 			StartSpriteCombine();
 			DrawCatenaryOnTunnel(ti);
@@ -960,7 +961,7 @@
 				DrawBridgeTramBits(ti->x, ti->y, z, offset, HasBit(rts, ROADTYPE_ROAD), true);
 			}
 			EndSpriteCombine();
-		} else if (HasCatenary(GetRailType(ti->tile))) {
+		} else if (HasCatenaryDrawn(GetRailType(ti->tile))) {
 			DrawCatenary(ti);
 		}
 
@@ -1088,7 +1089,7 @@
 			EndSpriteCombine();
 			StartSpriteCombine();
 		}
-	} else if (HasCatenary(GetRailType(rampsouth))) {
+	} else if (HasCatenaryDrawn(GetRailType(rampsouth))) {
 		DrawCatenaryOnBridge(ti);
 	}