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

/** @file ai_enginelist_valuator.hpp all the valuators for AIEngineList */

#ifndef AI_ENGINELIST_VALUATOR_HPP
#define AI_ENGINELIST_VALUATOR_HPP

#include "ai_abstractlist.hpp"

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

private:
	const char *GetListName() const { return "AIEngineList"; }
	int32 Valuate(int32 engine_id) const;
};

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

private:
	const char *GetListName() const { return "AIEngineList"; }
	int32 Valuate(int32 engine_id) const;
};

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

private:
	const char *GetListName() const { return "AIEngineList"; }
	int32 Valuate(int32 engine_id) const;
};

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

private:
	const char *GetListName() const { return "AIEngineList"; }
	int32 Valuate(int32 engine_id) const;
};

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

private:
	const char *GetListName() const { return "AIEngineList"; }
	int32 Valuate(int32 engine_id) const;
};

#endif /* AI_ENGINELIST_VALUATOR_HPP */