changeset 5686:d30423f9fc3c draft

(svn r8147) -Fix: [autoreplace] v->leave_depot_instantly was not always reset correctly While it's not certain if this would have any serious sideeffects (or any at all), it's reset when intended now
author bjarni <bjarni@openttd.org>
date Mon, 15 Jan 2007 17:32:42 +0000
parents 5d4344161802
children 702788b10910
files src/vehicle.cpp
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -2138,7 +2138,7 @@
 	const Player *p = GetPlayer(v->owner);
 	byte flags = 0;
 	int32 cost, temp_cost = 0;
-	bool stopped = false;
+	bool stopped;
 
 	/* Remember the length in case we need to trim train later on
 	 * If it's not a train, the value is unused
@@ -2156,11 +2156,11 @@
 
 	assert(v->vehstatus & VS_STOPPED); // the vehicle should have been stopped in VehicleEnteredDepotThisTick() if needed
 
-	if (v->leave_depot_instantly) {
-		// we stopped the vehicle to do this, so we have to remember to start it again when we are done
-		// we need to store this info as the engine might be replaced and lose this info
-		stopped = true;
-	}
+	/* Remember the flag v->leave_depot_instantly because if we replace the vehicle, the vehicle holding this flag will be sold
+	 * If it is set, then we only stopped the vehicle to replace it (if needed) and we will need to start it again.
+	 * We also need to reset the flag since it should remain false except from when the vehicle enters a depot until autoreplace is handled in the same tick */
+	stopped = v->leave_depot_instantly;
+	v->leave_depot_instantly = false;
 
 	for (;;) {
 		cost = 0;