Implemented Allocation Pool use by cChunkData
This commit is contained in:
@@ -347,7 +347,8 @@ private:
|
||||
class cChunkLayer
|
||||
{
|
||||
public:
|
||||
cChunkLayer(int a_LayerX, int a_LayerZ, cChunkMap * a_Parent);
|
||||
cChunkLayer(int a_LayerX, int a_LayerZ, cChunkMap * a_Parent,
|
||||
cAllocationPool<cChunkData::sChunkSection,1600>& a_Pool);
|
||||
~cChunkLayer();
|
||||
|
||||
/** Always returns an assigned chunkptr, but the chunk needn't be valid (loaded / generated) - callers must check */
|
||||
@@ -391,6 +392,16 @@ private:
|
||||
int m_LayerZ;
|
||||
cChunkMap * m_Parent;
|
||||
int m_NumChunksLoaded;
|
||||
|
||||
cAllocationPool<cChunkData::sChunkSection,1600> & m_Pool;
|
||||
};
|
||||
|
||||
class cStarvationCallbacks
|
||||
: public cAllocationPool<cChunkData::sChunkSection,1600>::cStarvationCallbacks
|
||||
{
|
||||
virtual void OnStartingUsingBuffer() {}
|
||||
virtual void OnStopUsingBuffer() {}
|
||||
virtual void OnBufferEmpty() {}
|
||||
};
|
||||
|
||||
typedef std::list<cChunkLayer *> cChunkLayerList;
|
||||
@@ -423,6 +434,8 @@ private:
|
||||
/** The cChunkStay descendants that are currently enabled in this chunkmap */
|
||||
cChunkStays m_ChunkStays;
|
||||
|
||||
cAllocationPool<cChunkData::sChunkSection,1600> m_Pool;
|
||||
|
||||
cChunkPtr GetChunk (int a_ChunkX, int a_ChunkY, int a_ChunkZ); // Also queues the chunk for loading / generating if not valid
|
||||
cChunkPtr GetChunkNoGen (int a_ChunkX, int a_ChunkY, int a_ChunkZ); // Also queues the chunk for loading if not valid; doesn't generate
|
||||
cChunkPtr GetChunkNoLoad(int a_ChunkX, int a_ChunkY, int a_ChunkZ); // Doesn't load, doesn't generate
|
||||
|
||||
Reference in New Issue
Block a user