summaryrefslogtreecommitdiff
path: root/src/script/api/script_vehicle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/script_vehicle.cpp')
-rw-r--r--src/script/api/script_vehicle.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/script/api/script_vehicle.cpp b/src/script/api/script_vehicle.cpp
index d536aa8a7..956c22225 100644
--- a/src/script/api/script_vehicle.cpp
+++ b/src/script/api/script_vehicle.cpp
@@ -22,6 +22,7 @@
#include "../../roadveh.h"
#include "../../train.h"
#include "../../vehicle_func.h"
+#include "../../aircraft.h"
#include "table/strings.h"
/* static */ bool ScriptVehicle::IsValidVehicle(VehicleID vehicle_id)
@@ -421,3 +422,20 @@
const Vehicle *v = ::Vehicle::Get(vehicle_id);
return ::ToPercent16(v->reliability);
}
+
+/* static */ uint ScriptVehicle::GetMaximumOrderDistance(VehicleID vehicle_id)
+{
+ if (!IsValidVehicle(vehicle_id)) return 0;
+
+ const ::Vehicle *v = ::Vehicle::Get(vehicle_id);
+ switch (v->type) {
+ case VEH_SHIP:
+ return _settings_game.pf.pathfinder_for_ships != VPF_NPF ? 129 : 0;
+
+ case VEH_AIRCRAFT:
+ return ::Aircraft::From(v)->acache.cached_max_range_sqr;
+
+ default:
+ return 0;
+ }
+}