src/ai/api/ai_vehiclelist_valuator.hpp
author truelight
Fri, 04 May 2007 22:59:59 +0000
branchnoai
changeset 9617 df9cedf12aab
parent 9614 814c3bbf8ecc
child 9684 623970482fb2
permissions -rw-r--r--
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
[NoAI] -Fix: move AITileListValuators self-defined checks to AITile so we can call it per tile (instead of only via AITileList)
/* $Id$ */

/** @file ai_vehiclelist_valuator.hpp all the valuators for vehiclelist */

#ifndef AI_VEHICLELIST_VALUATOR_HPP
#define AI_VEHICLELIST_VALUATOR_HPP

#include "ai_abstractlist.hpp"

/**
 * Get the location for entries in an AIVehicleList instance.
 * @note resulting items are of the type TileIndex
 * @note the input items are of the type VehicleID
 */
class AIVehicleListLocation : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListGetLocation"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the engine-type for entries in an AIVehicleList instance.
 * @note resulting items are of the type EngineID
 * @note the input items are of the type VehicleID
 */
class AIVehicleListEngineType : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListEngineType"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the unit number for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32
 * @note the input items are of the type VehicleID
 */
class AIVehicleListUnitNumber : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListUnitNumber"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the age for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32 (age in days)
 * @note the input items are of the type VehicleID
 */
class AIVehicleListAge : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListAge"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the max age for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32 (age in days)
 * @note the input items are of the type VehicleID
 */
class AIVehicleListMaxAge : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListMaxAge"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the age left for the vehicle gets 'old' for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32 (age in days)
 * @note the input items are of the type VehicleID
 */
class AIVehicleListAgeLeft : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListAgeLeft"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the profit of this year for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32 (age in days)
 * @note the input items are of the type VehicleID
 */
class AIVehicleListProfitThisYear : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListProfitThisYear"; }

private:
	int32 Valuate(int32 town) const;
};

/**
 * Get the profit of last year for entries in an AIVehicleList instance.
 * @note resulting items are of the type int32 (age in days)
 * @note the input items are of the type VehicleID
 */
class AIVehicleListProfitLastYear : public AIAbstractList::Valuator {
public:
	/**
	 * The name of the class, needed by several sub-processes.
	 */
	static const char *GetClassName() { return "AIVehicleListProfitLastYear"; }

private:
	int32 Valuate(int32 town) const;
};


#endif /* AI_VEHICLELIST_VALUATOR_HPP */