diff options
author | bjarni <bjarni@openttd.org> | 2006-10-08 20:54:27 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2006-10-08 20:54:27 +0000 |
commit | 73f1ffe84fd02a169e2f21c92e3d6d019cf226dd (patch) | |
tree | 34fda859aaefb3614ee685c534469ee16fedbdce | |
parent | 2c6aad5f2de80727d62220a2d42d39a494af8c4c (diff) | |
download | openttd-73f1ffe84fd02a169e2f21c92e3d6d019cf226dd.tar.xz |
(svn r6694) -Fix: FS#361 Refit-to Order bug (only one of the two bugs mentioned there)
-Now refit orders are copied when copying orders
-Fixed an initilation issue where CT_INVALID was used instead of CT_NO_REFIT (resulted in crashes in the order window)
-Fixed a compiler warning in the function to load TTD savegames
-rw-r--r-- | order.h | 2 | ||||
-rw-r--r-- | order_cmd.c | 15 |
2 files changed, 10 insertions, 7 deletions
@@ -191,7 +191,7 @@ static inline Order UnpackOrder(uint32 packed) order.dest = GB(packed, 16, 16); order.next = NULL; order.index = 0; // avoid compiler warning - order.refit_cargo = CT_INVALID; + order.refit_cargo = CT_NO_REFIT; order.refit_subtype = 0; return order; } diff --git a/order_cmd.c b/order_cmd.c index c0bcc343b..17ba95ce2 100644 --- a/order_cmd.c +++ b/order_cmd.c @@ -50,6 +50,10 @@ Order UnpackOldOrder(uint16 packed) order.dest = GB(packed, 8, 8); order.next = NULL; + order.refit_cargo = CT_NO_REFIT; + order.refit_subtype = 0; + order.index = 0; // avoid compiler warning + // Sanity check // TTD stores invalid orders as OT_NOTHING with non-zero flags/station if (order.type == OT_NOTHING && (order.flags != 0 || order.dest != 0)) { @@ -57,9 +61,6 @@ Order UnpackOldOrder(uint16 packed) order.flags = 0; } - order.refit_cargo = CT_INVALID; - order.refit_subtype = 0; - return order; } @@ -76,7 +77,7 @@ static Order UnpackVersion4Order(uint16 packed) order.dest = GB(packed, 8, 8); order.next = NULL; order.index = 0; // avoid compiler warning - order.refit_cargo = CT_INVALID; + order.refit_cargo = CT_NO_REFIT; order.refit_subtype = 0; return order; } @@ -128,6 +129,8 @@ static Order *AllocateOrder(void) memset(order, 0, sizeof(*order)); order->index = index; order->next = NULL; + order->refit_cargo = CT_NO_REFIT; + order->refit_subtype = 0; return order; } @@ -151,8 +154,8 @@ void AssignOrder(Order *order, Order data) order->flags = data.flags; order->dest = data.dest; - order->refit_cargo = CT_NO_REFIT; - order->refit_subtype = CT_NO_REFIT; + order->refit_cargo = data.refit_cargo; + order->refit_subtype = data.refit_subtype; } |