summaryrefslogtreecommitdiff
path: root/src/script/api/script_order.cpp
diff options
context:
space:
mode:
authormichi_cc <michi_cc@openttd.org>2011-12-13 00:43:59 +0000
committermichi_cc <michi_cc@openttd.org>2011-12-13 00:43:59 +0000
commita085ea9e4b9078c647304e85d4c03980b71ced22 (patch)
tree0402e72db8caaf57ca38b3dd71312f9375eb389c /src/script/api/script_order.cpp
parent34ffd08a19e1156260223256d87a4cdfa7a080e0 (diff)
downloadopenttd-a085ea9e4b9078c647304e85d4c03980b71ced22.tar.xz
(svn r23506) -Add: [NoAI] Support for dealing with aircraft range.
Diffstat (limited to 'src/script/api/script_order.cpp')
-rw-r--r--src/script/api/script_order.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/script/api/script_order.cpp b/src/script/api/script_order.cpp
index 4a500a5ff..5bca48b9d 100644
--- a/src/script/api/script_order.cpp
+++ b/src/script/api/script_order.cpp
@@ -13,6 +13,7 @@
#include "script_order.hpp"
#include "script_vehicle.hpp"
#include "script_cargo.hpp"
+#include "script_map.hpp"
#include "../script_instance.hpp"
#include "../../debug.h"
#include "../../vehicle_base.h"
@@ -655,3 +656,15 @@ static void _DoCommandReturnSetOrderFlags(class ScriptInstance *instance)
return ScriptObject::DoCommand(0, vehicle_id | CO_UNSHARE << 30, 0, CMD_CLONE_ORDER);
}
+
+/* static */ uint ScriptOrder::GetOrderDistance(ScriptVehicle::VehicleType vehicle_type, TileIndex origin_tile, TileIndex dest_tile)
+{
+ if (vehicle_type == ScriptVehicle::VT_AIR) {
+ if (ScriptTile::IsStationTile(origin_tile) && ::Station::Get(origin_tile)->airport.tile != INVALID_TILE) origin_tile = ::Station::Get(origin_tile)->airport.tile;
+ if (ScriptTile::IsStationTile(dest_tile) && ::Station::Get(dest_tile)->airport.tile != INVALID_TILE) dest_tile = ::Station::Get(dest_tile)->airport.tile;
+
+ return ScriptMap::DistanceSquare(origin_tile, dest_tile);
+ } else {
+ return ScriptMap::DistanceManhattan(origin_tile, dest_tile);
+ }
+}