# HG changeset patch # User tron # Date 1170218096 0 # Node ID 7b24ffd1be9a9478ad620dc6485a0e712a4d4057 # Parent f345f5384071e9fc6c1d93e2356e29e93825ba11 (svn r8474) -Fix Turn GetPrimaryRoadStop() into a method of struct Station diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -690,8 +690,7 @@ v->last_station_visited = INVALID_STATION; } - rs = GetPrimaryRoadStop( - GetStation(order->dest), + rs = GetStation(order->dest)->GetPrimaryRoadStop( v->cargo_type == CT_PASSENGERS ? RoadStop::BUS : RoadStop::TRUCK ); @@ -1660,7 +1659,7 @@ /* update destination */ if (v->current_order.type == OT_GOTO_STATION && v->u.road.slot == NULL && !(v->vehstatus & VS_CRASHED)) { Station* st = GetStation(v->current_order.dest); - RoadStop* rs = GetPrimaryRoadStop(st, v->cargo_type == CT_PASSENGERS ? RoadStop::BUS : RoadStop::TRUCK); + RoadStop* rs = st->GetPrimaryRoadStop(v->cargo_type == CT_PASSENGERS ? RoadStop::BUS : RoadStop::TRUCK); RoadStop* best = NULL; if (rs != NULL) { diff --git a/src/station.h b/src/station.h --- a/src/station.h +++ b/src/station.h @@ -97,6 +97,12 @@ }; struct Station { + public: + RoadStop *GetPrimaryRoadStop(RoadStop::Type type) const + { + return type == RoadStop::BUS ? bus_stops : truck_stops; + } + TileIndex xy; RoadStop *bus_stops; RoadStop *truck_stops; @@ -270,7 +276,6 @@ void StationPickerDrawSprite(int x, int y, RailType railtype, int image); RoadStop * GetRoadStopByTile(TileIndex tile, RoadStop::Type type); -RoadStop * GetPrimaryRoadStop(const Station *st, RoadStop::Type type); uint GetNumRoadStops(const Station* st, RoadStop::Type type); RoadStop * AllocateRoadStop( void ); void ClearSlot(Vehicle *v); diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -80,23 +80,12 @@ extern void UpdateAirplanesOnNewStation(Station *st); -RoadStop* GetPrimaryRoadStop(const Station* st, RoadStop::Type type) -{ - switch (type) { - case RoadStop::BUS: return st->bus_stops; - case RoadStop::TRUCK: return st->truck_stops; - default: NOT_REACHED(); - } - - return NULL; -} - RoadStop* GetRoadStopByTile(TileIndex tile, RoadStop::Type type) { const Station* st = GetStationByTile(tile); RoadStop* rs; - for (rs = GetPrimaryRoadStop(st, type); rs->xy != tile; rs = rs->next) { + for (rs = st->GetPrimaryRoadStop(type); rs->xy != tile; rs = rs->next) { assert(rs->next != NULL); } @@ -109,7 +98,7 @@ const RoadStop *rs; assert(st != NULL); - for (rs = GetPrimaryRoadStop(st, type); rs != NULL; rs = rs->next) num++; + for (rs = st->GetPrimaryRoadStop(type); rs != NULL; rs = rs->next) num++; return num; }