Mercurial > hg > openttd
changeset 3092:d095fbe4fa83 draft
(svn r3681) - [Multistop] Check the RoadStop type before check its status. This fixes an assert introduced in r3663. Also fix the return type of GetRoadStopType().
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Mon, 27 Feb 2006 19:43:19 +0000 |
parents | 44391f2650de |
children | c333a6795b00 |
files | roadveh_cmd.c station.h |
diffstat | 2 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/roadveh_cmd.c +++ b/roadveh_cmd.c @@ -986,9 +986,12 @@ } else if (IsTileType(tile, MP_STATION) && IsRoadStationTile(tile)) { if (IsTileOwner(tile, v->owner)) { /* Our station */ - const RoadStop *rs = GetRoadStopByTile(tile, (v->cargo_type == CT_PASSENGERS) ? RS_BUS : RS_TRUCK); - if (rs != NULL && (_patches.roadveh_queue || GB(rs->status, 0, 2) != 0)) { - bitmask |= _road_veh_fp_ax_or[GetRoadStationDir(tile)]; + RoadStopType rstype = (v->cargo_type == CT_PASSENGERS) ? RS_BUS : RS_TRUCK; + if (GetRoadStopType(tile) == rstype) { + const RoadStop *rs = GetRoadStopByTile(tile, rstype); + if (rs != NULL && (_patches.roadveh_queue || GB(rs->status, 0, 2) != 0)) { + bitmask |= _road_veh_fp_ax_or[GetRoadStationDir(tile)]; + } } } }
--- a/station.h +++ b/station.h @@ -196,7 +196,7 @@ void StationPickerDrawSprite(int x, int y, RailType railtype, int image); RoadStop * GetRoadStopByTile(TileIndex tile, RoadStopType type); -static inline int GetRoadStopType(TileIndex tile) +static inline RoadStopType GetRoadStopType(TileIndex tile) { return (_m[tile].m5 < 0x47) ? RS_TRUCK : RS_BUS; }