changeset 5693:a6fe23c585d1 draft

(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.
author rubidium <rubidium@openttd.org>
date Tue, 16 Jan 2007 15:45:20 +0000
parents 47e97da9c104
children 9606e918ab33
files src/vehicle.cpp
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -1901,6 +1901,14 @@
 		} 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)