(svn r5352) -Fix: Return accurate slope information for tunnels and bridges to fix several foundation graphics glitches

This commit is contained in:
tron 2006-06-24 22:52:24 +00:00
parent 7f444dde30
commit 20ee056b9f
1 changed files with 23 additions and 2 deletions

View File

@ -1146,8 +1146,29 @@ static uint GetSlopeZ_TunnelBridge(const TileInfo* ti)
static Slope GetSlopeTileh_TunnelBridge(TileIndex tile, Slope tileh)
{
// not accurate, but good enough for slope graphics drawing
return SLOPE_FLAT;
uint f;
if (IsTunnel(tile)) {
return tileh;
} else {
if (IsBridgeRamp(tile)) {
if (HASBIT(BRIDGE_NO_FOUNDATION, tileh)) {
return tileh;
} else {
f = GetBridgeFoundation(tileh, DiagDirToAxis(GetBridgeRampDirection(tile)));
}
} else {
if (IsTransportUnderBridge(tile)) {
f = _bridge_foundations[GetBridgeAxis(tile)][tileh];
} else {
return tileh;
}
}
}
if (f == 0) return tileh;
if (f < 15) return SLOPE_FLAT;
return _inclined_tileh[f - 15];
}