diff --git a/src/openttd.cpp b/src/openttd.cpp index 2e3672142f..1e2436a7f9 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1830,7 +1830,7 @@ void CheckCaches(bool force_check, std::function log, CheckC length = 0; for (const Vehicle *u = v; u != nullptr; u = u->Next()) { FillNewGRFVehicleCache(u); - if (memcmp(&grf_cache[length], &u->grf_cache, sizeof(NewGRFCache)) != 0) { + if (grf_cache[length] != u->grf_cache) { CCLOGV("newgrf cache mismatch"); } if (veh_cache[length].cached_max_speed != u->vcache.cached_max_speed || veh_cache[length].cached_cargo_age_period != u->vcache.cached_cargo_age_period || diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 26cba89a1b..2eb71144fa 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -87,6 +87,8 @@ struct NewGRFCache { uint32_t company_information; ///< Cache for NewGRF var 43. uint32_t position_in_vehicle; ///< Cache for NewGRF var 4D. uint8_t cache_valid; ///< Bitset that indicates which cache values are valid. + + bool operator==(const NewGRFCache&) const = default; }; /** Meaning of the various bits of the visual effect. */