# ai_engine.hpp

Go to the documentation of this file.

    00001 /* $Id: ai_engine.hpp 15307 2009-02-01 16:21:18Z frosch $ */
    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
    00087   static int32 GetReliability(EngineID engine_id);
    00088
    00098   static int32 GetMaxSpeed(EngineID engine_id);
    00099
    00106   static Money GetPrice(EngineID engine_id);
    00107
    00115   static int32 GetMaxAge(EngineID engine_id);
    00116
    00124   static Money GetRunningCost(EngineID engine_id);
    00125
    00132   static AIVehicle::VehicleType GetVehicleType(EngineID engine_id);
    00133
    00141   static bool IsWagon(EngineID engine_id);
    00142
    00154   static bool CanRunOnRail(EngineID engine_id, AIRail::RailType track_rail_type);
    00155
    00165   static bool HasPowerOnRail(EngineID engine_id, AIRail::RailType track_rail_type);
    00166
    00174   static AIRoad::RoadType GetRoadType(EngineID engine_id);
    00175
    00183   static AIRail::RailType GetRailType(EngineID engine_id);
    00184
    00192   static bool IsArticulated(EngineID engine_id);
    00193
    00201   static AIAirport::PlaneType GetPlaneType(EngineID engine_id);
    00202 };
    00203
    00204 #endif /* AI_ENGINE_HPP */