|
@@ -1108,26 +1108,28 @@ static void CheckCaches()
|
|
|
FOR_ALL_VEHICLES(v) {
|
|
|
if (v != v->First()) continue;
|
|
|
|
|
|
switch (v->type) {
|
|
|
case VEH_ROAD: {
|
|
|
RoadVehicle *rv = RoadVehicle::From(v);
|
|
|
RoadVehicleCache cache = rv->rcache;
|
|
|
RoadVehicleCache cache;
|
|
|
memset(&cache, 0, sizeof(cache));
|
|
|
cache = rv->rcache;
|
|
|
RoadVehUpdateCache(rv);
|
|
|
|
|
|
if (memcmp(&cache, &rv->rcache, sizeof(RoadVehicleCache)) != 0) {
|
|
|
DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber);
|
|
|
}
|
|
|
} break;
|
|
|
|
|
|
case VEH_TRAIN: {
|
|
|
uint length = 0;
|
|
|
Train *t = Train::From(v);
|
|
|
for (Vehicle *u = t; u != NULL; u = u->Next()) length++;
|
|
|
|
|
|
TrainCache *wagons = MallocT<TrainCache>(length);
|
|
|
TrainCache *wagons = CallocT<TrainCache>(length);
|
|
|
length = 0;
|
|
|
for (Train *u = t; u != NULL; u = u->Next()) wagons[length++] = u->tcache;
|
|
|
|
|
|
t->ConsistChanged(true);
|
|
|
|
|
|
length = 0;
|
|
@@ -1140,13 +1142,15 @@ static void CheckCaches()
|
|
|
|
|
|
free(wagons);
|
|
|
} break;
|
|
|
|
|
|
case VEH_AIRCRAFT: {
|
|
|
Aircraft *a = Aircraft::From(v);
|
|
|
AircraftCache cache = a->acache;
|
|
|
AircraftCache cache;
|
|
|
memset(&cache, 0, sizeof(cache));
|
|
|
cache = a->acache;
|
|
|
UpdateAircraftCache(a);
|
|
|
|
|
|
if (memcmp(&cache, &a->acache, sizeof(AircraftCache)) != 0) {
|
|
|
DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber);
|
|
|
}
|
|
|
} break;
|