src/tunnelbridge_cmd.cpp
changeset 10925 d3d3ab93658a
parent 10924 57ef3224806e
child 11054 88373b819bbc
--- a/src/tunnelbridge_cmd.cpp	Wed Jun 11 16:24:00 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp	Wed Jun 11 17:10:36 2008 +0000
@@ -738,7 +738,7 @@
  * @param y Sprite Y position of front pillar.
  * @param z_bridge Absolute height of bridge bottom.
  */
-static void DrawBridgePillars(const PalSpriteID *psid, const TileInfo* ti, Axis axis, BridgeType type, int x, int y, int z_bridge)
+static void DrawBridgePillars(const PalSpriteID *psid, const TileInfo* ti, Axis axis, bool drawfarpillar, int x, int y, int z_bridge)
 {
 	/* Do not draw bridge pillars if they are invisible */
 	if (IsInvisibilitySet(TO_BRIDGES)) return;
@@ -746,8 +746,6 @@
 	SpriteID image = psid->sprite;
 
 	if (image != 0) {
-		bool drawfarpillar = !HasBit(GetBridgeSpec(type)->flags, 0);
-
 		/* "side" specifies the side the pillars stand on.
 		 * The length of the pillars is then set to the height of the bridge over the corners of this edge.
 		 *
@@ -1041,32 +1039,25 @@
 	/* Z position of the bridge sprites relative to bridge height (downwards) */
 	static const int BRIDGE_Z_START = 3;
 
-	const PalSpriteID *psid;
-	uint base_offset;
-	TileIndex rampnorth;
-	TileIndex rampsouth;
-	TransportType transport_type;
-	Axis axis;
-	uint piece;
-	BridgeType type;
-	int x;
-	int y;
-	uint z;
-
 	if (!IsBridgeAbove(ti->tile)) return;
 
-	rampnorth = GetNorthernBridgeEnd(ti->tile);
-	rampsouth = GetSouthernBridgeEnd(ti->tile);
-	transport_type = GetTunnelBridgeTransportType(rampsouth);
+	TileIndex rampnorth = GetNorthernBridgeEnd(ti->tile);
+	TileIndex rampsouth = GetSouthernBridgeEnd(ti->tile);
+	TransportType transport_type = GetTunnelBridgeTransportType(rampsouth);
 
-	axis = GetBridgeAxis(ti->tile);
-	piece = CalcBridgePiece(
+	Axis axis = GetBridgeAxis(ti->tile);
+	uint piece = CalcBridgePiece(
 		GetTunnelBridgeLength(ti->tile, rampnorth) + 1,
 		GetTunnelBridgeLength(ti->tile, rampsouth) + 1
 	);
-	type = GetBridgeType(rampsouth);
 
+	const PalSpriteID *psid;
+	bool drawfarpillar;
 	if (transport_type != TRANSPORT_WATER) {
+		BridgeType type =  GetBridgeType(rampsouth);
+		drawfarpillar = !HasBit(GetBridgeSpec(type)->flags, 0);
+
+		uint base_offset;
 		if (transport_type == TRANSPORT_RAIL) {
 			base_offset = GetRailTypeInfo(GetRailType(rampsouth))->bridge_offset;
 		} else {
@@ -1075,14 +1066,16 @@
 
 		psid = base_offset + GetBridgeSpriteTable(type, piece);
 	} else {
+		drawfarpillar = true;
 		psid = _aqueduct_sprites;
 	}
+
 	if (axis != AXIS_X) psid += 4;
 
-	x = ti->x;
-	y = ti->y;
+	int x = ti->x;
+	int y = ti->y;
 	uint bridge_z = GetBridgeHeight(rampsouth);
-	z = bridge_z - BRIDGE_Z_START;
+	uint z = bridge_z - BRIDGE_Z_START;
 
 	/* Add a bounding box, that separates the bridge from things below it. */
 	AddSortableSpriteToDraw(SPR_EMPTY_BOUNDING_BOX, PAL_NONE, x, y, 16, 16, 1, bridge_z - TILE_HEIGHT + BB_Z_SEPARATOR);
@@ -1147,7 +1140,7 @@
 		}
 	} else if (_settings_client.gui.bridge_pillars) {
 		/* draw pillars below for high bridges */
-		DrawBridgePillars(psid, ti, axis, type, x, y, z);
+		DrawBridgePillars(psid, ti, axis, drawfarpillar, x, y, z);
 	}
 }