src/ai/api/ai_vehiclelist_valuator.hpp
author truebrain
Wed, 27 Feb 2008 21:07:31 +0000
branchnoai
changeset 9792 e1222f4674c2
parent 9780 37eb5460ff2e
child 9806 d65cc2bcb0de
permissions -rw-r--r--
(svn r12294) [NoAI] -Add: added AIBridge(List), which lists all available bridges (no build yet)
/* $Id$ */

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

#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 Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vLocation : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vGetLocation"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};

/**
 * Get the engine-type for entries in an AIVehicleList instance.
 * @note Resulting items are of the type EngineID.
 * @note Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vEngineType : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vEngineType"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};

/**
 * Get the unit number for entries in an AIVehicleList instance.
 * @note Resulting items are of the type int32.
 * @note Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vUnitNumber : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vUnitNumber"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};

/**
 * Get the age for entries in an AIVehicleList instance.
 * @note Resulting items are of the type int32 (age in days).
 * @note Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vAge : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vAge"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};

/**
 * Get the max age for entries in an AIVehicleList instance.
 * @note Resulting items are of the type int32 (age in days).
 * @note Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vMaxAge : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vMaxAge"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) 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 Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vAgeLeft : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vAgeLeft"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) 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 Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vProfitThisYear : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vProfitThisYear"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) 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 Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vProfitLastYear : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vProfitLastYear"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};

/**
 * Get the type of the vehicle for entries in an AIVehicleList instance.
 * @note Resulting items are of the type AIVehicle::VehicleType.
 * @note Can only operate on an AIVehicleList instance.
 * @ingroup AIVehicleList
 */
class AIVehicleList_vVehicleType : public AIAbstractList::Valuator {
public:
	static const char *GetClassName() { return "AIVehicleList_vVehicleType"; }

private:
	const char *GetListName() const { return "AIVehicleList"; }
	int32 Valuate(int32 vehicle_id) const;
};


#endif /* AI_VEHICLELIST_VALUATOR_HPP */