mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r4719) - Newstations: instead of drawing nothing, fall back to the default sprite layout if a station layout specifies so.
This commit is contained in:
parent
6b01384faf
commit
76411cef63
20
newgrf.c
20
newgrf.c
@ -810,12 +810,9 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
|
|||||||
uint seq_count = 0;
|
uint seq_count = 0;
|
||||||
PalSpriteID ground_sprite;
|
PalSpriteID ground_sprite;
|
||||||
|
|
||||||
|
dts->seq = NULL;
|
||||||
ground_sprite = grf_load_dword(&buf);
|
ground_sprite = grf_load_dword(&buf);
|
||||||
if (ground_sprite == 0) {
|
if (ground_sprite == 0) continue;
|
||||||
static const DrawTileSeqStruct empty = {0x80, 0, 0, 0, 0, 0, 0};
|
|
||||||
dts->seq = ∅
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HASBIT(ground_sprite, 31)) {
|
if (HASBIT(ground_sprite, 31)) {
|
||||||
// Bit 31 indicates that we should use a custom sprite.
|
// Bit 31 indicates that we should use a custom sprite.
|
||||||
@ -825,7 +822,6 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
|
|||||||
dts->ground_sprite = ground_sprite;
|
dts->ground_sprite = ground_sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
dts->seq = NULL;
|
|
||||||
while (buf < *bufp + len) {
|
while (buf < *bufp + len) {
|
||||||
DrawTileSeqStruct *dtss;
|
DrawTileSeqStruct *dtss;
|
||||||
|
|
||||||
@ -861,15 +857,11 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
|
|||||||
DrawTileSeqStruct const *sdtss = sdts->seq;
|
DrawTileSeqStruct const *sdtss = sdts->seq;
|
||||||
int seq_count = 0;
|
int seq_count = 0;
|
||||||
|
|
||||||
dts->ground_sprite = sdts->ground_sprite;
|
|
||||||
if (dts->ground_sprite == 0) {
|
|
||||||
static const DrawTileSeqStruct empty = {0x80, 0, 0, 0, 0, 0, 0};
|
|
||||||
dts->seq = ∅
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
dts->seq = NULL;
|
dts->seq = NULL;
|
||||||
while (1) {
|
dts->ground_sprite = sdts->ground_sprite;
|
||||||
|
if (dts->ground_sprite == 0) continue;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
DrawTileSeqStruct *dtss;
|
DrawTileSeqStruct *dtss;
|
||||||
|
|
||||||
// no relative bounding box support
|
// no relative bounding box support
|
||||||
|
@ -1335,6 +1335,8 @@ static void DrawTile_Track(TileInfo *ti)
|
|||||||
* should be drawn in company colors, and it's
|
* should be drawn in company colors, and it's
|
||||||
* up to the GRF file to decide that. */
|
* up to the GRF file to decide that. */
|
||||||
|
|
||||||
|
/* 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 = cust->ground_sprite;
|
||||||
image += (image < _custom_sprites_base) ? rti->total_offset : rti->custom_ground_offset;
|
image += (image < _custom_sprites_base) ? rti->total_offset : rti->custom_ground_offset;
|
||||||
|
|
||||||
@ -1352,6 +1354,7 @@ static void DrawTile_Track(TileInfo *ti)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
drss = is_depot ? _track_depot_layout_table[GetRailDepotDirection(ti->tile)] : _track_waypoint_layout_table[GetWaypointAxis(ti->tile)];
|
drss = is_depot ? _track_depot_layout_table[GetRailDepotDirection(ti->tile)] : _track_waypoint_layout_table[GetWaypointAxis(ti->tile)];
|
||||||
|
|
||||||
|
@ -1996,7 +1996,7 @@ static void DrawTile_Station(TileInfo *ti)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t == NULL) t = &_station_display_datas[GetStationGfx(ti->tile)];
|
if (t == NULL || t->seq == NULL) t = &_station_display_datas[GetStationGfx(ti->tile)];
|
||||||
|
|
||||||
image = t->ground_sprite;
|
image = t->ground_sprite;
|
||||||
if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator;
|
if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator;
|
||||||
|
Loading…
Reference in New Issue
Block a user