# ai_engine.hpp

Go to the documentation of this file.

    00001 /* $Id: ai_engine.hpp 17080 2009-08-05 23:57:41Z rubidium $ */
    00002
    00005 #ifndef AI_ENGINE_HPP
    00006 #define AI_ENGINE_HPP
    00007
    00008 #include "ai_object.hpp"
    00009 #include "ai_vehicle.hpp"
    00010 #include "ai_road.hpp"
    00011 #include "ai_rail.hpp"
    00012 #include "ai_airport.hpp"
    00013
    00017 class AIEngine : public AIObject {
    00018 public:
    00019   static const char *GetClassName() { return "AIEngine"; }
    00020
    00026   static bool IsValidEngine(EngineID engine_id);
    00027
    00034   static char *GetName(EngineID engine_id);
    00035
    00043   static CargoID GetCargoType(EngineID engine_id);
    00044
    00055   static bool CanRefitCargo(EngineID engine_id, CargoID cargo_id);
    00056
    00068   static bool CanPullCargo(EngineID engine_id, CargoID cargo_id);
    00069
    00077   static int32 GetCapacity(EngineID engine_id);
    00078
    00088   static int32 GetReliability(EngineID engine_id);
    00089
    00100   static int32 GetMaxSpeed(EngineID engine_id);
    00101
    00108   static Money GetPrice(EngineID engine_id);
    00109
    00117   static int32 GetMaxAge(EngineID engine_id);
    00118
    00126   static Money GetRunningCost(EngineID engine_id);
    00127
    00135   static int32 GetPower(EngineID engine_id);
    00136
    00144   static int32 GetWeight(EngineID engine_id);
    00145
    00153   static int32 GetMaxTractiveEffort(EngineID engine_id);
    00154
    00161   static int32 GetDesignDate(EngineID engine_id);
    00162
    00169   static AIVehicle::VehicleType GetVehicleType(EngineID engine_id);
    00170
    00178   static bool IsWagon(EngineID engine_id);
    00179
    00191   static bool CanRunOnRail(EngineID engine_id, AIRail::RailType track_rail_type);
    00192
    00202   static bool HasPowerOnRail(EngineID engine_id, AIRail::RailType track_rail_type);
    00203
    00211   static AIRoad::RoadType GetRoadType(EngineID engine_id);
    00212
    00220   static AIRail::RailType GetRailType(EngineID engine_id);
    00221
    00229   static bool IsArticulated(EngineID engine_id);
    00230
    00238   static AIAirport::PlaneType GetPlaneType(EngineID engine_id);
    00239 };
    00240
    00241 #endif /* AI_ENGINE_HPP */