added multicache class definition
This commit is contained in:
parent
022f5f141d
commit
7695471ff9
@ -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.
|
/// Base class for generators that use a list of available biomes. This class takes care of the list.
|
||||||
|
Loading…
Reference in New Issue
Block a user