summaryrefslogtreecommitdiff
path: root/vehicle.c
diff options
context:
space:
mode:
Diffstat (limited to 'vehicle.c')
-rw-r--r--vehicle.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/vehicle.c b/vehicle.c
index 55843adf0..525b83594 100644
--- a/vehicle.c
+++ b/vehicle.c
@@ -73,17 +73,27 @@ static void *EnsureNoVehicleProcZ(Vehicle *v, void *data)
return v;
}
-bool EnsureNoVehicleZ(TileIndex tile, byte z)
+static inline uint Correct_Z(uint tileh)
+{
+ // needs z correction for slope-type graphics that have the NORTHERN tile lowered
+ // 1, 2, 3, 4, 5, 6 and 7
+ return (CORRECT_Z(tileh)) ? 8 : 0;
+}
+
+uint GetCorrectTileHeight(TileIndex tile)
{
TileInfo ti;
FindLandscapeHeightByTile(&ti, tile);
- // needs z correction for slope-type graphics that have the NORTHERN tile lowered
- // 1, 2, 3, 4, 5, 6 and 7
- if (CORRECT_Z(ti.tileh))
- z += 8;
+ return Correct_Z(ti.tileh);
+}
- ti.z = z;
+bool EnsureNoVehicleZ(TileIndex tile, byte z)
+{
+ TileInfo ti;
+
+ FindLandscapeHeightByTile(&ti, tile);
+ ti.z = z + Correct_Z(ti.tileh);
return VehicleFromPos(tile, &ti, EnsureNoVehicleProcZ) == NULL;
}