changeset 5876:7b24ffd1be9a draft

(svn r8474) -Fix Turn GetPrimaryRoadStop() into a method of struct Station
author tron <tron@openttd.org>
date Wed, 31 Jan 2007 04:34:56 +0000
parents f345f5384071
children 653723b406f4
files src/roadveh_cmd.cpp src/station.h src/station_cmd.cpp
diffstat 3 files changed, 10 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- 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) {
--- 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);
--- 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;
 }