summaryrefslogtreecommitdiff
path: root/order_cmd.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-07-26 10:00:33 +0000
committertron <tron@openttd.org>2006-07-26 10:00:33 +0000
commit8ed7b09c52ed73af1570b46105b1f14847e6ed0b (patch)
treeec3851d27de39851406650838ae3498e24aca66e /order_cmd.c
parent0973dc78cd608ec086384c8bb505f478c7cd2a8e (diff)
downloadopenttd-8ed7b09c52ed73af1570b46105b1f14847e6ed0b.tar.xz
(svn r5615) Move GetStationTileForVehicle() to its only user
Diffstat (limited to 'order_cmd.c')
-rw-r--r--order_cmd.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/order_cmd.c b/order_cmd.c
index 8614961c1..abef2d056 100644
--- a/order_cmd.c
+++ b/order_cmd.c
@@ -855,6 +855,24 @@ int32 CmdRestoreOrderIndex(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
return 0;
}
+
+static TileIndex GetStationTileForVehicle(const Vehicle* v, const Station* st)
+{
+ switch (v->type) {
+ default: NOT_REACHED();
+ case VEH_Train: return st->train_tile;
+ case VEH_Aircraft: return st->airport_tile;
+ case VEH_Ship: return st->dock_tile;
+ case VEH_Road:
+ if (v->cargo_type == CT_PASSENGERS) {
+ return (st->bus_stops != NULL) ? st->bus_stops->xy : 0;
+ } else {
+ return (st->truck_stops != NULL) ? st->truck_stops->xy : 0;
+ }
+ }
+}
+
+
/**
*
* Check the orders of a vehicle, to see if there are invalid orders and stuff
@@ -879,7 +897,6 @@ void CheckOrders(const Vehicle* v)
if (v->owner == _local_player && v->day_counter % 20 == 0) {
int n_st, problem_type = -1;
const Order *order;
- const Station *st;
int message = 0;
/* Check the order list */
@@ -893,11 +910,10 @@ void CheckOrders(const Vehicle* v)
}
/* Does station have a load-bay for this vehicle? */
if (order->type == OT_GOTO_STATION) {
- TileIndex required_tile;
+ const Station* st = GetStation(order->station);
+ TileIndex required_tile = GetStationTileForVehicle(v, st);
n_st++;
- st = GetStation(order->station);
- required_tile = GetStationTileForVehicle(v, st);
if (required_tile == 0) problem_type = 3;
}
}