# HG changeset patch # User KUDr # Date 2006-07-11 19:04:50 # Node ID f81353ba65a4f4e85c578baa7030af68f9f83c3a # Parent 4be2903e011a7d1b4b7021bf42042e3aa795d40a (svn r5483) -Fix: [YAPF] desync - for MP games invalidate YAPF cache on every tick to keep it exactly the same on server and clients (it doesn't fix the real source of the problem, but should solve it). Thanks TrueLight for hunting this bug. diff --git a/vehicle.c b/vehicle.c --- a/vehicle.c +++ b/vehicle.c @@ -29,6 +29,8 @@ #include "industry_map.h" #include "station_map.h" #include "water_map.h" +#include "network.h" +#include "yapf/yapf.h" #define INVALID_COORD (-0x8000) #define GEN_HASH(x,y) (((x & 0x1F80)>>7) + ((y & 0xFC0))) @@ -611,6 +613,14 @@ void CallVehicleTicks(void) { Vehicle *v; +#ifdef ENABLE_NETWORK + // hotfix for desync problem: + // for MP games invalidate the YAPF cache every tick to keep it exactly the same on the server and all clients + if (_networking) { + YapfNotifyTrackLayoutChange(0, 0); + } +#endif //ENABLE_NETWORK + _first_veh_in_depot_list = NULL; // now we are sure it's initialized at the start of each tick FOR_ALL_VEHICLES(v) {