diff options
author | rubidium <rubidium@openttd.org> | 2010-08-06 19:04:21 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-06 19:04:21 +0000 |
commit | 90a35d2e5b3728a8cd7fe1717d6c940b525cca9e (patch) | |
tree | c069c37fe0b72cad7b5c053f49ff13ea7213f702 /src/ai/api/ai_order.cpp | |
parent | d54f2ba21f2711d3ce8fe9f19fd7ab6645107c5b (diff) | |
download | openttd-90a35d2e5b3728a8cd7fe1717d6c940b525cca9e.tar.xz |
(svn r20389) [NoAI] -Add: AIOrder::IsVoidOrder to find void "(Invalid Order)" orders.
[NoAI] -Change: AIOrder::GetOrderFlags returns AIOrder::AIOF_INVALID for void orders.
Diffstat (limited to 'src/ai/api/ai_order.cpp')
-rw-r--r-- | src/ai/api/ai_order.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/ai/api/ai_order.cpp b/src/ai/api/ai_order.cpp index bf55cc504..370cff4f6 100644 --- a/src/ai/api/ai_order.cpp +++ b/src/ai/api/ai_order.cpp @@ -99,6 +99,15 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or return order->GetType() == OT_CONDITIONAL; } +/* static */ bool AIOrder::IsVoidOrder(VehicleID vehicle_id, OrderPosition order_position) +{ + if (order_position == ORDER_CURRENT) return false; + if (!IsValidVehicleOrder(vehicle_id, order_position)) return false; + + const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position); + return order->GetType() == OT_DUMMY; +} + /* static */ bool AIOrder::IsCurrentOrderPartOfOrderList(VehicleID vehicle_id) { if (AIVehicle::IsValidVehicle(vehicle_id)) return false; @@ -224,7 +233,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or if (!IsValidVehicleOrder(vehicle_id, order_position)) return AIOF_INVALID; const Order *order = ::ResolveOrder(vehicle_id, order_position); - if (order == NULL || order->GetType() == OT_CONDITIONAL) return AIOF_INVALID; + if (order == NULL || order->GetType() == OT_CONDITIONAL || order->GetType() == OT_DUMMY) return AIOF_INVALID; AIOrderFlags order_flags = AIOF_NONE; order_flags |= (AIOrderFlags)order->GetNonStopType(); |