From 9ccb6ddd71cfeb0a7f50c8b601f12f39ab87f1ca Mon Sep 17 00:00:00 2001 From: tron Date: Sat, 27 Jan 2007 16:45:16 +0000 Subject: (svn r8430) -Fix Replace the rather obscure control flow for handling aircraft/ship/train orders by something remotly comprehensible (see r3584) --- src/ship_cmd.cpp | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'src/ship_cmd.cpp') diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index aa4d77656..50f92f600 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -273,28 +273,31 @@ static void ProcessShipOrder(Vehicle *v) static void HandleShipLoading(Vehicle *v) { - if (v->current_order.type == OT_NOTHING) return; - - if (v->current_order.type != OT_DUMMY) { - if (v->current_order.type != OT_LOADING) return; - if (--v->load_unload_time_rem) return; - - if (CanFillVehicle(v) && (v->current_order.flags & OF_FULL_LOAD || - (_patches.gradual_loading && !HASBIT(v->load_status, LS_LOADING_FINISHED)))) { - SET_EXPENSES_TYPE(EXPENSES_SHIP_INC); - if (LoadUnloadVehicle(v, false)) { - InvalidateWindow(WC_SHIPS_LIST, v->owner); - MarkShipDirty(v); + switch (v->current_order.type) { + case OT_LOADING: + if (--v->load_unload_time_rem) return; + + if (CanFillVehicle(v) && ( + v->current_order.flags & OF_FULL_LOAD || + (_patches.gradual_loading && !HASBIT(v->load_status, LS_LOADING_FINISHED)) + )) { + SET_EXPENSES_TYPE(EXPENSES_SHIP_INC); + if (LoadUnloadVehicle(v, false)) { + InvalidateWindow(WC_SHIPS_LIST, v->owner); + MarkShipDirty(v); + } + return; } - return; - } - PlayShipSound(v); + PlayShipSound(v); - { Order b = v->current_order; v->LeaveStation(); if (!(b.flags & OF_NON_STOP)) return; - } + break; + + case OT_DUMMY: break; + + default: return; } v->cur_order_index++; -- cgit v1.2.3-70-g09d2