summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-05-26 10:40:34 +0000
committerrubidium <rubidium@openttd.org>2007-05-26 10:40:34 +0000
commit78be11be407f7496d57d40f4d866942192b6166b (patch)
tree7179e11385fc32fb010bc1f6f4a923f03dad38fe
parent932a968af2d21c4beced4b5e62778587af092924 (diff)
downloadopenttd-78be11be407f7496d57d40f4d866942192b6166b.tar.xz
(svn r9931) -Fix: some glitches with catenary and bridges.
-rw-r--r--src/elrail.cpp4
-rw-r--r--src/road_cmd.cpp6
-rw-r--r--src/tunnelbridge_cmd.cpp9
3 files changed, 11 insertions, 8 deletions
diff --git a/src/elrail.cpp b/src/elrail.cpp
index 4e43fe2e3..93cabaeb6 100644
--- a/src/elrail.cpp
+++ b/src/elrail.cpp
@@ -249,7 +249,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
Track bridgetrack = GetBridgeAxis(ti->tile) == AXIS_X ? TRACK_X : TRACK_Y;
uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
- if ((height <= TilePixelHeight(ti->tile) + TILE_HEIGHT) &&
+ if ((height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) &&
(i == PCPpositions[bridgetrack][0] || i == PCPpositions[bridgetrack][1])) {
SETBIT(OverridePCP, i);
}
@@ -289,7 +289,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile) && !HASBIT(_transparent_opt, TO_BUILDINGS)) {
uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
- if (height <= TilePixelHeight(ti->tile) + TILE_HEIGHT) return;
+ if (height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) return;
}
/* Drawing of pylons is finished, now draw the wires */
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index e4e86614e..a71f1088a 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -830,7 +830,7 @@ void DrawTramCatenary(TileInfo *ti, RoadBits tram)
if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile) && !HASBIT(_transparent_opt, TO_BUILDINGS)) {
uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
- if (height <= TilePixelHeight(ti->tile) + TILE_HEIGHT) return;
+ if (height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) return;
}
SpriteID front;
@@ -851,8 +851,8 @@ void DrawTramCatenary(TileInfo *ti, RoadBits tram)
pal = PALETTE_TO_TRANSPARENT;
}
- AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 16, 16, 0x20, ti->z);
- AddSortableSpriteToDraw(front, pal, ti->x, ti->y, 16, 16, 0x20, ti->z);
+ AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 16, 16, 0x1F, ti->z);
+ AddSortableSpriteToDraw(front, pal, ti->x, ti->y, 16, 16, 0x1F, ti->z);
}
/**
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
index 1b84e09d0..9f22ce156 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -872,7 +872,10 @@ static void DrawBridgeTramBits(int x, int y, byte z, int offset, bool overlay)
static const SpriteID back_offsets[6] = { 95, 95, 99, 102, 100, 101 };
static const SpriteID front_offsets[6] = { 97, 98, 103, 106, 104, 105 };
- AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE, x, y, 16, 16, offset >= 2 ? 1 : 0, z);
+ static const uint size_x[6] = { 11, 16, 16, 16, 16, 16 };
+ static const uint size_y[6] = { 16, 11, 16, 16, 16, 16 };
+
+ AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE, x, y, size_x[offset], size_y[offset], offset >= 2 ? 1 : 0, z);
SpriteID front = SPR_TRAMWAY_BASE + front_offsets[offset];
SpriteID back = SPR_TRAMWAY_BASE + back_offsets[offset];
@@ -883,9 +886,9 @@ static void DrawBridgeTramBits(int x, int y, byte z, int offset, bool overlay)
pal = PALETTE_TO_TRANSPARENT;
}
- AddSortableSpriteToDraw(back, pal, x, y, 16, 16, 0, z);
+ AddSortableSpriteToDraw(back, pal, x, y, size_x[offset], size_y[offset], 0, z);
/* For sloped sprites the bounding box needs to be higher, as the pylons stop on a higher point */
- AddSortableSpriteToDraw(front, pal, x, y, 16, 16, offset >= 2 ? 0x30 : 0x10, z);
+ AddSortableSpriteToDraw(front, pal, x, y, size_x[offset], size_y[offset], offset >= 2 ? 0x30 : 0x10, z);
}
/**