(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
This commit is contained in:
bjarni 2007-01-15 17:32:42 +00:00
parent 0fbdae2828
commit 0026ea84d1

View File

@ -2138,7 +2138,7 @@ static int32 MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs)
const Player *p = GetPlayer(v->owner); const Player *p = GetPlayer(v->owner);
byte flags = 0; byte flags = 0;
int32 cost, temp_cost = 0; int32 cost, temp_cost = 0;
bool stopped = false; bool stopped;
/* Remember the length in case we need to trim train later on /* Remember the length in case we need to trim train later on
* If it's not a train, the value is unused * If it's not a train, the value is unused
@ -2156,11 +2156,11 @@ static int32 MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs)
assert(v->vehstatus & VS_STOPPED); // the vehicle should have been stopped in VehicleEnteredDepotThisTick() if needed assert(v->vehstatus & VS_STOPPED); // the vehicle should have been stopped in VehicleEnteredDepotThisTick() if needed
if (v->leave_depot_instantly) { /* Remember the flag v->leave_depot_instantly because if we replace the vehicle, the vehicle holding this flag will be sold
// we stopped the vehicle to do this, so we have to remember to start it again when we are done * If it is set, then we only stopped the vehicle to replace it (if needed) and we will need to start it again.
// we need to store this info as the engine might be replaced and lose this info * 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 = true; stopped = v->leave_depot_instantly;
} v->leave_depot_instantly = false;
for (;;) { for (;;) {
cost = 0; cost = 0;