diff options
Diffstat (limited to 'src/script/api/script_engine.cpp')
-rw-r--r-- | src/script/api/script_engine.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/script/api/script_engine.cpp b/src/script/api/script_engine.cpp index 97f8c71df..88f55226e 100644 --- a/src/script/api/script_engine.cpp +++ b/src/script/api/script_engine.cpp @@ -15,6 +15,7 @@ #include "../../company_base.h" #include "../../strings_func.h" #include "../../rail.h" +#include "../../road.h" #include "../../engine_base.h" #include "../../engine_func.h" #include "../../articulated_vehicles.h" @@ -219,6 +220,20 @@ return ::HasPowerOnRail((::RailType)::RailVehInfo(engine_id)->railtype, (::RailType)track_rail_type); } +/* static */ bool ScriptEngine::CanRunOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type) +{ + return HasPowerOnRoad(engine_id, road_type); +} + +/* static */ bool ScriptEngine::HasPowerOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type) +{ + if (!IsValidEngine(engine_id)) return false; + if (GetVehicleType(engine_id) != ScriptVehicle::VT_ROAD) return false; + if (!ScriptRoad::IsRoadTypeAvailable(road_type)) return false; + + return ::HasPowerOnRoad((::RoadType)::RoadVehInfo(engine_id)->roadtype, (::RoadType)road_type); +} + /* static */ ScriptRoad::RoadType ScriptEngine::GetRoadType(EngineID engine_id) { if (!IsValidEngine(engine_id)) return ScriptRoad::ROADTYPE_INVALID; |