summaryrefslogtreecommitdiff
path: root/src/script/api/script_engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/script_engine.cpp')
-rw-r--r--src/script/api/script_engine.cpp15
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;