diff options
Diffstat (limited to 'vehicle.c')
-rw-r--r-- | vehicle.c | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -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; } |