1
0

added multicache class definition

This commit is contained in:
DayBr3ak 2014-09-01 21:37:36 +02:00
parent 022f5f141d
commit 7695471ff9

View File

@ -77,7 +77,42 @@ protected:
} ;
class cBioGenMulticache :
public cBiomeGen
{
typedef cBiomeGen super;
public:
cBioGenMulticache(cBiomeGen * a_BioGenToCache, int a_CacheSize, int a_CacheLength); // Doesn't take ownership of a_BioGenToCache
~cBioGenMulticache();
protected:
cBiomeGen * m_BioGenToCache;
struct sCacheData
{
int m_ChunkX;
int m_ChunkZ;
cChunkDef::BiomeMap m_BiomeMap;
};
// To avoid moving large amounts of data for the MRU behavior, we MRU-ize indices to an array of the actual data
int m_CacheSize;
int m_CacheLength;
int **m_CachesOrder; // MRU-ized order, indices into the multiple m_CachesData array
sCacheData ** m_CachesData;
// Cache statistics
int m_NumHits;
int m_NumMisses;
int m_TotalChain; // Number of cache items walked to get to a hit (only added for hits)
virtual void GenBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override;
virtual void InitializeBiomeGen(cIniFile & a_IniFile) override;
};
/// Base class for generators that use a list of available biomes. This class takes care of the list.