summaryrefslogtreecommitdiff
path: root/rail_cmd.c
diff options
context:
space:
mode:
authorcelestar <celestar@openttd.org>2004-11-17 15:14:18 +0000
committercelestar <celestar@openttd.org>2004-11-17 15:14:18 +0000
commit155f20329b200a37455f94c9000fd146f41ee0d4 (patch)
tree62446f718018cea0f1f840082bf7ae7b4ca47075 /rail_cmd.c
parent87adce3ca0bfd9018161a97c9e4f36eaf74d9b10 (diff)
downloadopenttd-155f20329b200a37455f94c9000fd146f41ee0d4.tar.xz
(svn r657) Do not touch 0x8000 bit in sprite index for custom waypoints. (pasky)
Diffstat (limited to 'rail_cmd.c')
-rw-r--r--rail_cmd.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/rail_cmd.c b/rail_cmd.c
index 80fec6b11..414934fd2 100644
--- a/rail_cmd.c
+++ b/rail_cmd.c
@@ -1573,16 +1573,23 @@ static void DrawTile_Track(TileInfo *ti)
uint32 relocation = GetCustomStationRelocation(stat, ComposeWaypointStation(ti->tile), 0);
int railtype=(_map3_lo[ti->tile] & 0xF);
+ /* We don't touch the 0x8000 bit. In all this
+ * waypoint code, it is used to indicate that
+ * we should offset by railtype, but we always
+ * do that for custom ground sprites and never
+ * for station sprites. And in the drawing
+ * code, it is used to indicate that the sprite
+ * should be drawn in company colors, and it's
+ * up to the GRF file to decide that. */
+
image = cust->ground_sprite;
image += railtype*((image<_custom_sprites_base)?TRACKTYPE_SPRITE_PITCH:1);
- if (image & 0x8000) image = (image & 0x7FFF);
-
DrawGroundSprite(image);
foreach_draw_tile_seq(seq, cust->seq) {
uint32 image = seq->image + relocation;
- DrawSpecialBuilding(image|0x8000, 0, ti,
+ DrawSpecialBuilding(image, 0, ti,
seq->delta_x, seq->delta_y, seq->delta_z,
seq->width, seq->height, seq->unk);
}