From a97d52a29a990132a8a5e4dd60304483617cec50 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 31 Jan 2011 20:44:15 +0000 Subject: (svn r21933) -Codechange: Split cur_order_index into cur_auto_order_index and cur_real_order_index to keep track of the current real order in an unambiguous way. -Fix [FS#4440]: Automatic orders behave now stable wrt. service orders and are not added or removed depending on the need of servicing. -Fix: Various other issues with automatic orders, e.g. vehicles getting stuck with "no orders" when there are automatic orders at the end of the order list. --- src/ship_cmd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/ship_cmd.cpp') diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index f5a6ac640..6e733d360 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -234,7 +234,7 @@ TileIndex Ship::GetOrderStationLocation(StationID station) if (st->dock_tile != INVALID_TILE) { return TILE_ADD(st->dock_tile, ToTileIndexDiff(GetDockOffset(st->dock_tile))); } else { - this->IncrementOrderIndex(); + this->IncrementRealOrderIndex(); return 0; } } @@ -480,7 +480,7 @@ static void ShipController(Ship *v) /* We got within 3 tiles of our target buoy, so let's skip to our * next order */ UpdateVehicleTimetable(v, true); - v->IncrementOrderIndex(); + v->IncrementRealOrderIndex(); v->current_order.MakeDummy(); } else { /* Non-buoy orders really need to reach the tile */ @@ -500,7 +500,7 @@ static void ShipController(Ship *v) v->BeginLoading(); } else { // leave stations without docks right aways v->current_order.MakeLeaveStation(); - v->IncrementOrderIndex(); + v->IncrementRealOrderIndex(); } } } -- cgit v1.2.3-54-g00ecf