summaryrefslogtreecommitdiff
path: root/src/order_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-09 18:26:19 +0000
committerrubidium <rubidium@openttd.org>2008-04-09 18:26:19 +0000
commit2e4044ac81acf7101667b2d90fb273a11ef3f39b (patch)
treeddb520943c26dd780e20324992cfd08a769fb197 /src/order_cmd.cpp
parentc93e1293cb2df96c52066d39b522c563dc5b2f60 (diff)
downloadopenttd-2e4044ac81acf7101667b2d90fb273a11ef3f39b.tar.xz
(svn r12640) -Codechange: let GetLoadType make a difference between full load and full load any based on the patch setting instead of using the patch setting directly.
Diffstat (limited to 'src/order_cmd.cpp')
-rw-r--r--src/order_cmd.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp
index bbd1c01bd..9fc94e854 100644
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -41,6 +41,12 @@ BackuppedOrders _backup_orders_data;
DEFINE_OLD_POOL_GENERIC(Order, Order);
+OrderLoadFlags Order::GetLoadType() const
+{
+ if ((this->flags & OLFB_FULL_LOAD) == 0) return OLF_LOAD_IF_POSSIBLE;
+ return _patches.full_load_any ? OLF_FULL_LOAD_ANY : OLFB_FULL_LOAD;
+}
+
OrderNonStopFlags Order::GetNonStopType() const
{
if (_patches.new_nonstop) {
@@ -322,7 +328,10 @@ CommandCost CmdInsertOrder(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if ((new_order.GetLoadType() & OLFB_FULL_LOAD) && (new_order.GetUnloadType() & OUFB_UNLOAD)) return CMD_ERROR;
/* Filter invalid load/unload types. */
- if (new_order.GetLoadType() & ~OLFB_FULL_LOAD) return CMD_ERROR;
+ switch (new_order.GetLoadType()) {
+ case OLF_LOAD_IF_POSSIBLE: case OLFB_FULL_LOAD: case OLF_FULL_LOAD_ANY: break;
+ default: return CMD_ERROR;
+ }
if (new_order.GetUnloadType() & ~(OUFB_UNLOAD | OUFB_TRANSFER)) return CMD_ERROR;
break;
}