diff options
author | rubidium <rubidium@openttd.org> | 2008-04-09 18:26:19 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-04-09 18:26:19 +0000 |
commit | 82155367f6118c0a43a74eb842cf25b23d143d49 (patch) | |
tree | ddb520943c26dd780e20324992cfd08a769fb197 /src/order_cmd.cpp | |
parent | d1783459473251e2d7f392a3013fe6a8bbef4316 (diff) | |
download | openttd-82155367f6118c0a43a74eb842cf25b23d143d49.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.cpp | 11 |
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; } |