diff options
Diffstat (limited to 'src/ai/api/ai_stationlist.cpp')
-rw-r--r-- | src/ai/api/ai_stationlist.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ai/api/ai_stationlist.cpp b/src/ai/api/ai_stationlist.cpp new file mode 100644 index 000000000..43cb33878 --- /dev/null +++ b/src/ai/api/ai_stationlist.cpp @@ -0,0 +1,29 @@ +/* $Id$ */ + +/** @file ai_stationlist.cpp Implementation of AIStationList and friends. */ + +#include "ai_stationlist.hpp" +#include "ai_vehicle.hpp" +#include "../../openttd.h" +#include "../../company_func.h" +#include "../../station_base.h" +#include "../../vehicle_base.h" + +AIStationList::AIStationList(AIStation::StationType station_type) +{ + Station *st; + FOR_ALL_STATIONS(st) { + if (st->owner == _current_company && (st->facilities & station_type) != 0) this->AddItem(st->index); + } +} + +AIStationList_Vehicle::AIStationList_Vehicle(VehicleID vehicle_id) +{ + if (!AIVehicle::IsValidVehicle(vehicle_id)) return; + + Vehicle *v = ::GetVehicle(vehicle_id); + + for (Order *o = v->GetFirstOrder(); o != NULL; o = o->next) { + if (o->IsType(OT_GOTO_STATION)) this->AddItem(o->GetDestination()); + } +} |