(svn r8157) -Fix (r3136): moving cargo during auto replaces did not update the cached vehicle weight for trains properly. This caused (in network games) the server to have a different cached vehicle weight than newly joined clients would have, which causes desyncs.

This commit is contained in:
rubidium 2007-01-16 15:45:20 +00:00
parent ccbe68d5bc
commit f3796eee66
1 changed files with 8 additions and 0 deletions

View File

@ -1901,6 +1901,14 @@ static void MoveVehicleCargo(Vehicle *dest, Vehicle *source)
} while (source->cargo_count > 0 && (dest = dest->next) != NULL);
dest = v;
} while ((source = source->next) != NULL);
/*
* The of the train will be incorrect at this moment. This is due
* to the fact that removing the old wagon updates the weight of
* the complete train, which is without the weight of cargo we just
* moved back into some (of the) new wagon(s).
*/
if (dest->type == VEH_Train) TrainConsistChanged(dest->first);
}
static bool VerifyAutoreplaceRefitForOrders(const Vehicle *v, const EngineID engine_type)