00001 /* $Id$ */ 00002 00003 /* 00004 * This file is part of OpenTTD. 00005 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 00006 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00007 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 00008 */ 00009 00012 #ifndef SCRIPT_ENGINE_HPP 00013 #define SCRIPT_ENGINE_HPP 00014 00015 #include "script_vehicle.hpp" 00016 #include "script_rail.hpp" 00017 #include "script_airport.hpp" 00018 00023 class ScriptEngine : public ScriptObject { 00024 public: 00031 static bool IsValidEngine(EngineID engine_id); 00032 00038 static bool IsBuildable(EngineID engine_id); 00039 00046 static char *GetName(EngineID engine_id); 00047 00055 static CargoID GetCargoType(EngineID engine_id); 00056 00069 static bool CanRefitCargo(EngineID engine_id, CargoID cargo_id); 00070 00082 static bool CanPullCargo(EngineID engine_id, CargoID cargo_id); 00083 00091 static int32 GetCapacity(EngineID engine_id); 00092 00102 static int32 GetReliability(EngineID engine_id); 00103 00114 static int32 GetMaxSpeed(EngineID engine_id); 00115 00122 static Money GetPrice(EngineID engine_id); 00123 00131 static int32 GetMaxAge(EngineID engine_id); 00132 00140 static Money GetRunningCost(EngineID engine_id); 00141 00149 static int32 GetPower(EngineID engine_id); 00150 00158 static int32 GetWeight(EngineID engine_id); 00159 00167 static int32 GetMaxTractiveEffort(EngineID engine_id); 00168 00175 static int32 GetDesignDate(EngineID engine_id); 00176 00183 static ScriptVehicle::VehicleType GetVehicleType(EngineID engine_id); 00184 00192 static bool IsWagon(EngineID engine_id); 00193 00205 static bool CanRunOnRail(EngineID engine_id, ScriptRail::RailType track_rail_type); 00206 00216 static bool HasPowerOnRail(EngineID engine_id, ScriptRail::RailType track_rail_type); 00217 00225 static ScriptRoad::RoadType GetRoadType(EngineID engine_id); 00226 00234 static ScriptRail::RailType GetRailType(EngineID engine_id); 00235 00243 static bool IsArticulated(EngineID engine_id); 00244 00252 static ScriptAirport::PlaneType GetPlaneType(EngineID engine_id); 00253 00262 static uint GetMaximumOrderDistance(EngineID engine_id); 00263 }; 00264 00265 #endif /* SCRIPT_ENGINE_HPP */