From 5eda486f9336b520e0374a200651b05599030b89 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 13 Jun 2007 09:12:10 +0000 Subject: (svn r10131) -Fix [FS#810]: when removing a dock, a ship will always try to reach the old location of the dock even when it cannot anymore because it the old location of the dock is now land instead of water. --- src/ship_cmd.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 7c08b467a..dd5675800 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -280,7 +280,8 @@ static void ProcessShipOrder(Vehicle *v) if (order->type == v->current_order.type && order->flags == v->current_order.flags && - order->dest == v->current_order.dest) + order->dest == v->current_order.dest && + (order->type != OT_GOTO_STATION || GetStation(order->dest)->dock_tile != 0)) return; v->current_order = *order; @@ -294,6 +295,8 @@ static void ProcessShipOrder(Vehicle *v) st = GetStation(order->dest); if (st->dock_tile != 0) { v->dest_tile = TILE_ADD(st->dock_tile, ToTileIndexDiff(GetDockOffset(st->dock_tile))); + } else { + v->cur_order_index++; } } else if (order->type == OT_GOTO_DEPOT) { v->dest_tile = GetDepot(order->dest)->xy; -- cgit v1.2.3-70-g09d2