From f716c0b30ffb5db1ad81a9015f03cb07fb4c9351 Mon Sep 17 00:00:00 2001 From: tron Date: Wed, 21 Feb 2007 19:46:37 +0000 Subject: (svn r8833) -Fix -Codechange: Split MakeRoadStop() into MakeRoadStop() and MakeDriveThroughRoadStop() for more clarity and less possibilities to use it incorrect --- src/station_cmd.cpp | 8 ++++++-- src/station_map.h | 19 ++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index eb11ed5cb..9cb8a9fac 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1258,8 +1258,12 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) st->rect.BeforeAddTile(tile, StationRect::ADD_TRY); - MakeRoadStop(tile, st->owner, st->index, type ? RoadStop::TRUCK : RoadStop::BUS, is_drive_through, (DiagDirection)p1); - if (town_owned_road) SetStopBuiltOnTownRoad(tile); + RoadStop::Type rs_type = type ? RoadStop::TRUCK : RoadStop::BUS; + if (is_drive_through) { + MakeDriveThroughRoadStop(tile, st->owner, st->index, rs_type, (Axis)p1, town_owned_road); + } else { + MakeRoadStop(tile, st->owner, st->index, rs_type, (DiagDirection)p1); + } UpdateStationVirtCoordDirty(st); UpdateStationAcceptance(st, false); diff --git a/src/station_map.h b/src/station_map.h index 49f759118..f71fd217a 100644 --- a/src/station_map.h +++ b/src/station_map.h @@ -169,11 +169,6 @@ static inline bool GetStopBuiltOnTownRoad(TileIndex t) return HASBIT(_m[t].m6, 3); } -static inline void SetStopBuiltOnTownRoad(TileIndex t) -{ - assert(IsDriveThroughStopTile(t)); - SETBIT(_m[t].m6, 3); -} /** * Gets the direction the road stop entrance points towards. @@ -312,13 +307,15 @@ static inline void MakeRailStation(TileIndex t, Owner o, StationID sid, Axis a, SetRailType(t, rt); } -static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, bool is_drive_through, DiagDirection d) +static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, DiagDirection d) { - if (is_drive_through) { - MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE_EXT : GFX_TRUCK_BASE_EXT) + d); - } else { - MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE : GFX_TRUCK_BASE) + d); - } + MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE : GFX_TRUCK_BASE) + d); +} + +static inline void MakeDriveThroughRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, Axis a, bool on_town_road) +{ + MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE_EXT : GFX_TRUCK_BASE_EXT) + a); + SB(_m[t].m6, 3, 1, on_town_road); } static inline void MakeAirport(TileIndex t, Owner o, StationID sid, byte section) -- cgit v1.2.3-54-g00ecf