(svn r5259) -Codechange: GetBridgeHeight{Ramp,}() now returns the height of the bridge, not one level lower
authortron
Wed, 14 Jun 2006 09:01:21 +0000
changeset 4021 1e764a101ffc
parent 4020 fec7d6429c18
child 4022 9a31164f52c3
(svn r5259) -Codechange: GetBridgeHeight{Ramp,}() now returns the height of the bridge, not one level lower
elrail.c
tunnelbridge_cmd.c
--- a/elrail.c	Tue Jun 13 17:40:29 2006 +0000
+++ b/elrail.c	Wed Jun 14 09:01:21 2006 +0000
@@ -284,7 +284,7 @@
 					IsBridgeTile(ti->tile) &&
 					IsBridgeMiddle(ti->tile) &&
 					!(_display_opt & DO_TRANS_BUILDINGS) &&
-					GetBridgeHeight(ti->tile) <= TilePixelHeight(ti->tile)
+					GetBridgeHeight(ti->tile) <= TilePixelHeight(ti->tile) + TILE_HEIGHT
 			   ) return;
 
 			assert(PCPconfig != 0); /* We have a pylon on neither end of the wire, that doesn't work (since we have no sprites for that) */
@@ -321,24 +321,24 @@
 	}
 
 	AddSortableSpriteToDraw( sss->image, ti->x + sss->x_offset, ti->y + sss->y_offset,
-			sss->x_size, sss->y_size, sss->z_size, GetBridgeHeight(ti->tile) + sss->z_offset + 8);
+			sss->x_size, sss->y_size, sss->z_size, GetBridgeHeight(ti->tile) + sss->z_offset);
 
 	/* Finished with wires, draw pylons */
 	/* every other tile needs a pylon on the northern end */
 	if (num % 2) {
 		if (axis == AXIS_X) {
-			AddSortableSpriteToDraw( pylons_bridge[0 + HASBIT(tlg, 0)], ti->x, ti->y + 4 + 8 * HASBIT(tlg, 0), 1, 1, 10, GetBridgeHeight(ti->tile) + TILE_HEIGHT);
+			AddSortableSpriteToDraw( pylons_bridge[0 + HASBIT(tlg, 0)], ti->x, ti->y + 4 + 8 * HASBIT(tlg, 0), 1, 1, 10, GetBridgeHeight(ti->tile));
 		} else {
-			AddSortableSpriteToDraw( pylons_bridge[2 + HASBIT(tlg, 1)], ti->x + 4 + 8 * HASBIT(tlg, 1), ti->y, 1, 1, 10, GetBridgeHeight(ti->tile) + TILE_HEIGHT);
+			AddSortableSpriteToDraw( pylons_bridge[2 + HASBIT(tlg, 1)], ti->x + 4 + 8 * HASBIT(tlg, 1), ti->y, 1, 1, 10, GetBridgeHeight(ti->tile));
 		}
 	}
 
 	/* need a pylon on the southern end of the bridge */
 	if (DistanceMax(ti->tile, start) == length) {
 		if (axis == AXIS_X) {
-			AddSortableSpriteToDraw( pylons_bridge[0 + HASBIT(tlg, 0)], ti->x + 16, ti->y + 4 + 8 * HASBIT(tlg, 0), 1, 1, 10, GetBridgeHeight(ti->tile) + TILE_HEIGHT);
+			AddSortableSpriteToDraw( pylons_bridge[0 + HASBIT(tlg, 0)], ti->x + 16, ti->y + 4 + 8 * HASBIT(tlg, 0), 1, 1, 10, GetBridgeHeight(ti->tile));
 		} else {
-			AddSortableSpriteToDraw( pylons_bridge[2 + HASBIT(tlg, 1)], ti->x + 4 + 8 * HASBIT(tlg, 1), ti->y + 16, 1, 1, 10, GetBridgeHeight(ti->tile) + TILE_HEIGHT);
+			AddSortableSpriteToDraw( pylons_bridge[2 + HASBIT(tlg, 1)], ti->x + 4 + 8 * HASBIT(tlg, 1), ti->y + 16, 1, 1, 10, GetBridgeHeight(ti->tile));
 		}
 	}
 }
--- a/tunnelbridge_cmd.c	Tue Jun 13 17:40:29 2006 +0000
+++ b/tunnelbridge_cmd.c	Wed Jun 14 09:01:21 2006 +0000
@@ -598,7 +598,10 @@
 	/* Return the height there (the height of the NORTH CORNER)
 	 * If the end of the bridge is on a tile with all corners except the north corner raised,
 	 * the z coordinate is 1 height level too low. Compensate for that */
-	return TilePixelHeight(t) + (GetTileSlope(t, NULL) == SLOPE_WSE ? TILE_HEIGHT : 0);
+	return
+		TilePixelHeight(t) +
+		(GetTileSlope(t, NULL) == SLOPE_WSE ? TILE_HEIGHT : 0) +
+		TILE_HEIGHT;
 }
 
 
@@ -670,7 +673,7 @@
 	v = FindVehicleBetween(
 		tile    + delta,
 		endtile - delta,
-		GetBridgeHeightRamp(tile) + TILE_HEIGHT
+		GetBridgeHeightRamp(tile)
 	);
 	if (v != NULL) return_cmd_error(VehicleInTheWayErrMsg(v));
 
@@ -1040,7 +1043,7 @@
 			// get bridge sprites
 			b = GetBridgeSpriteTable(GetBridgeType(ti->tile), GetBridgePiece(ti->tile)) + base_offset;
 
-			z = GetBridgeHeight(ti->tile) + 5;
+			z = GetBridgeHeight(ti->tile) - 3;
 
 			// draw rail or road component
 			image = b[0];