(svn r24180) -Codechange/feature-ish: add cache checker for the town's cache

This commit is contained in:
rubidium
2012-04-25 21:06:31 +00:00
parent 76d5833650
commit 81d866e68d
2 changed files with 58 additions and 28 deletions

View File

@@ -59,6 +59,7 @@
#include "misc/getoptdata.h"
#include "game/game.hpp"
#include "game/game_config.hpp"
#include "town.h"
@@ -1134,6 +1135,24 @@ static void CheckCaches()
* always to aid testing of caches. */
if (_debug_desync_level <= 1) return;
/* Check the town caches. */
SmallVector<TownCache, 4> old_town_caches;
Town *t;
FOR_ALL_TOWNS(t) {
MemCpyT(old_town_caches.Append(), &t->cache);
}
extern void RebuildTownCaches();
RebuildTownCaches();
uint i = 0;
FOR_ALL_TOWNS(t) {
if (MemCmpT(old_town_caches.Get(i), &t->cache) != 0) {
DEBUG(desync, 2, "town cache mismatch: town %i", (int)t->index);
}
i++;
}
/* Check company infrastructure cache. */
SmallVector<CompanyInfrastructure, 4> old_infrastructure;
Company *c;
@@ -1142,7 +1161,7 @@ static void CheckCaches()
extern void AfterLoadCompanyStats();
AfterLoadCompanyStats();
uint i = 0;
i = 0;
FOR_ALL_COMPANIES(c) {
if (MemCmpT(old_infrastructure.Get(i), &c->infrastructure) != 0) {
DEBUG(desync, 2, "infrastructure cache mismatch: company %i", (int)c->index);