From 155f20329b200a37455f94c9000fd146f41ee0d4 Mon Sep 17 00:00:00 2001 From: celestar Date: Wed, 17 Nov 2004 15:14:18 +0000 Subject: (svn r657) Do not touch 0x8000 bit in sprite index for custom waypoints. (pasky) --- rail_cmd.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'rail_cmd.c') 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); } -- cgit v1.2.3-54-g00ecf