(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.
authorrubidium
Wed, 13 Jun 2007 09:12:10 +0000
changeset 7384 cf8880d026f8
parent 7383 23dcf2c27536
child 7385 dc6e404283bc
(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
--- 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;