src/ai/api/ai_stationlist.hpp
author rubidium
Sun, 15 Jul 2007 16:39:11 +0000
branchnoai
changeset 9668 6fe3d2cb9655
parent 9646 1e63b7128e05
child 9669 366771e15a2c
permissions -rw-r--r--
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
/* $Id$ */

/** @file ai_stationlist.hpp list all the stations (you own) */

#ifndef AI_STATIONLIST_HPP
#define AI_STATIONLIST_HPP

#include "ai_abstractlist.hpp"

/**
 * Class that creates a list of stations you own.
 */
class AIStationList : public AIAbstractList {
public:
	enum StationType {
		STATION_ANY        = 0x00,
		STATION_TRAIN      = 0x01,
		STATION_TRUCK_STOP = 0x02,
		STATION_BUS_STOP   = 0x04,
		STATION_AIRPORT    = 0x08,
		STATION_DOCK       = 0x10,
	};

	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIStationList"; }

	/**
	 * The constructor to make a list of stations.
	 * @param type The type of station you want a list of.
	 */
	AIStationList(AIStationList::StationType type);
};
DECLARE_ENUM_AS_BIT_SET(AIStationList::StationType);

/**
 * Class that creates a list of stations the vehicles goes to.
 */
class AIVehicleStationList : public AIAbstractList {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleStationList"; }

	/**
	 * The constructor to make a list of stations.
	 * @param vehicle_id The vehicles to get the list of stations he goes to from.
	 */
	AIVehicleStationList(VehicleID vehicle_id);
};

#endif /* AI_STATIONLIST_HPP */