(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.
--- a/src/ship_cmd.cpp Wed Jun 13 07:59:20 2007 +0000
+++ b/src/ship_cmd.cpp Wed Jun 13 09:12:10 2007 +0000
@@ -280,7 +280,8 @@
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 @@
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;