summaryrefslogtreecommitdiff
path: root/rail_cmd.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-05-03 20:35:41 +0000
committerpeter1138 <peter1138@openttd.org>2006-05-03 20:35:41 +0000
commit76411cef63faacc4428213e828b11f1f6abd1d9e (patch)
treec9f7992fc600efd538023379e91521d3a9ac21d3 /rail_cmd.c
parent6b01384faf48c19968ed1ccef1d3f4f487908794 (diff)
downloadopenttd-76411cef63faacc4428213e828b11f1f6abd1d9e.tar.xz
(svn r4719) - Newstations: instead of drawing nothing, fall back to the default sprite layout if a station layout specifies so.
Diffstat (limited to 'rail_cmd.c')
-rw-r--r--rail_cmd.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/rail_cmd.c b/rail_cmd.c
index 3435b4a49..16cad05ab 100644
--- a/rail_cmd.c
+++ b/rail_cmd.c
@@ -1335,21 +1335,24 @@ static void DrawTile_Track(TileInfo *ti)
* should be drawn in company colors, and it's
* up to the GRF file to decide that. */
- image = cust->ground_sprite;
- image += (image < _custom_sprites_base) ? rti->total_offset : rti->custom_ground_offset;
+ /* If there is no sprite layout, we fall back to the default waypoint graphics. */
+ if (cust != NULL && cust->seq != NULL) {
+ image = cust->ground_sprite;
+ image += (image < _custom_sprites_base) ? rti->total_offset : rti->custom_ground_offset;
- DrawGroundSprite(image);
+ DrawGroundSprite(image);
- if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
+ if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
- foreach_draw_tile_seq(seq, cust->seq) {
- DrawSpecialBuilding(
- seq->image + relocation, 0, ti,
- seq->delta_x, seq->delta_y, seq->delta_z,
- seq->width, seq->height, seq->unk
- );
+ foreach_draw_tile_seq(seq, cust->seq) {
+ DrawSpecialBuilding(
+ seq->image + relocation, 0, ti,
+ seq->delta_x, seq->delta_y, seq->delta_z,
+ seq->width, seq->height, seq->unk
+ );
+ }
+ return;
}
- return;
}
}
@@ -1357,7 +1360,7 @@ static void DrawTile_Track(TileInfo *ti)
image = drss++->image;
/* @note This is kind of an ugly hack, as the PALETTE_MODIFIER_COLOR indicates
- * whether the sprite is railtype dependent. Rewrite this asap */
+ * whether the sprite is railtype dependent. Rewrite this asap */
if (image & PALETTE_MODIFIER_COLOR) image = (image & SPRITE_MASK) + rti->total_offset;
// adjust ground tile for desert