src/ai/api/ai_vehiclelist_valuator.hpp
branchnoai
changeset 9614 814c3bbf8ecc
child 9684 623970482fb2
equal deleted inserted replaced
9613:5dedb2fa1ab0 9614:814c3bbf8ecc
       
     1 /* $Id$ */
       
     2 
       
     3 /** @file ai_vehiclelist_valuator.hpp all the valuators for vehiclelist */
       
     4 
       
     5 #ifndef AI_VEHICLELIST_VALUATOR_HPP
       
     6 #define AI_VEHICLELIST_VALUATOR_HPP
       
     7 
       
     8 #include "ai_abstractlist.hpp"
       
     9 
       
    10 /**
       
    11  * Get the location for entries in an AIVehicleList instance.
       
    12  * @note resulting items are of the type TileIndex
       
    13  * @note the input items are of the type VehicleID
       
    14  */
       
    15 class AIVehicleListLocation : public AIAbstractList::Valuator {
       
    16 public:
       
    17 	/**
       
    18 	 * The name of the class, needed by several sub-processes.
       
    19 	 */
       
    20 	static const char *GetClassName() { return "AIVehicleListGetLocation"; }
       
    21 
       
    22 private:
       
    23 	int32 Valuate(int32 town) const;
       
    24 };
       
    25 
       
    26 /**
       
    27  * Get the engine-type for entries in an AIVehicleList instance.
       
    28  * @note resulting items are of the type EngineID
       
    29  * @note the input items are of the type VehicleID
       
    30  */
       
    31 class AIVehicleListEngineType : public AIAbstractList::Valuator {
       
    32 public:
       
    33 	/**
       
    34 	 * The name of the class, needed by several sub-processes.
       
    35 	 */
       
    36 	static const char *GetClassName() { return "AIVehicleListEngineType"; }
       
    37 
       
    38 private:
       
    39 	int32 Valuate(int32 town) const;
       
    40 };
       
    41 
       
    42 /**
       
    43  * Get the unit number for entries in an AIVehicleList instance.
       
    44  * @note resulting items are of the type int32
       
    45  * @note the input items are of the type VehicleID
       
    46  */
       
    47 class AIVehicleListUnitNumber : public AIAbstractList::Valuator {
       
    48 public:
       
    49 	/**
       
    50 	 * The name of the class, needed by several sub-processes.
       
    51 	 */
       
    52 	static const char *GetClassName() { return "AIVehicleListUnitNumber"; }
       
    53 
       
    54 private:
       
    55 	int32 Valuate(int32 town) const;
       
    56 };
       
    57 
       
    58 /**
       
    59  * Get the age for entries in an AIVehicleList instance.
       
    60  * @note resulting items are of the type int32 (age in days)
       
    61  * @note the input items are of the type VehicleID
       
    62  */
       
    63 class AIVehicleListAge : public AIAbstractList::Valuator {
       
    64 public:
       
    65 	/**
       
    66 	 * The name of the class, needed by several sub-processes.
       
    67 	 */
       
    68 	static const char *GetClassName() { return "AIVehicleListAge"; }
       
    69 
       
    70 private:
       
    71 	int32 Valuate(int32 town) const;
       
    72 };
       
    73 
       
    74 /**
       
    75  * Get the max age for entries in an AIVehicleList instance.
       
    76  * @note resulting items are of the type int32 (age in days)
       
    77  * @note the input items are of the type VehicleID
       
    78  */
       
    79 class AIVehicleListMaxAge : public AIAbstractList::Valuator {
       
    80 public:
       
    81 	/**
       
    82 	 * The name of the class, needed by several sub-processes.
       
    83 	 */
       
    84 	static const char *GetClassName() { return "AIVehicleListMaxAge"; }
       
    85 
       
    86 private:
       
    87 	int32 Valuate(int32 town) const;
       
    88 };
       
    89 
       
    90 /**
       
    91  * Get the age left for the vehicle gets 'old' for entries in an AIVehicleList instance.
       
    92  * @note resulting items are of the type int32 (age in days)
       
    93  * @note the input items are of the type VehicleID
       
    94  */
       
    95 class AIVehicleListAgeLeft : public AIAbstractList::Valuator {
       
    96 public:
       
    97 	/**
       
    98 	 * The name of the class, needed by several sub-processes.
       
    99 	 */
       
   100 	static const char *GetClassName() { return "AIVehicleListAgeLeft"; }
       
   101 
       
   102 private:
       
   103 	int32 Valuate(int32 town) const;
       
   104 };
       
   105 
       
   106 /**
       
   107  * Get the profit of this year for entries in an AIVehicleList instance.
       
   108  * @note resulting items are of the type int32 (age in days)
       
   109  * @note the input items are of the type VehicleID
       
   110  */
       
   111 class AIVehicleListProfitThisYear : public AIAbstractList::Valuator {
       
   112 public:
       
   113 	/**
       
   114 	 * The name of the class, needed by several sub-processes.
       
   115 	 */
       
   116 	static const char *GetClassName() { return "AIVehicleListProfitThisYear"; }
       
   117 
       
   118 private:
       
   119 	int32 Valuate(int32 town) const;
       
   120 };
       
   121 
       
   122 /**
       
   123  * Get the profit of last year for entries in an AIVehicleList instance.
       
   124  * @note resulting items are of the type int32 (age in days)
       
   125  * @note the input items are of the type VehicleID
       
   126  */
       
   127 class AIVehicleListProfitLastYear : public AIAbstractList::Valuator {
       
   128 public:
       
   129 	/**
       
   130 	 * The name of the class, needed by several sub-processes.
       
   131 	 */
       
   132 	static const char *GetClassName() { return "AIVehicleListProfitLastYear"; }
       
   133 
       
   134 private:
       
   135 	int32 Valuate(int32 town) const;
       
   136 };
       
   137 
       
   138 
       
   139 #endif /* AI_VEHICLELIST_VALUATOR_HPP */