Chunks are properly saved before being unloaded now
numchunks server command works again git-svn-id: http://mc-server.googlecode.com/svn/trunk@272 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
1b60fe14f8
commit
1c4122313f
@ -287,11 +287,14 @@ void cChunkMap::cChunkLayer::Save(void)
|
|||||||
|
|
||||||
void cChunkMap::cChunkLayer::UnloadUnusedChunks(void)
|
void cChunkMap::cChunkLayer::UnloadUnusedChunks(void)
|
||||||
{
|
{
|
||||||
|
cWorld * World = m_Parent->GetWorld();
|
||||||
for (int i = 0; i < ARRAYCOUNT(m_Chunks); i++)
|
for (int i = 0; i < ARRAYCOUNT(m_Chunks); i++)
|
||||||
{
|
{
|
||||||
if ((m_Chunks[i] != NULL) && (m_Chunks[i]->CanUnload()))
|
if ((m_Chunks[i] != NULL) && (m_Chunks[i]->CanUnload()))
|
||||||
{
|
{
|
||||||
// TODO: Save the chunk if it was changed
|
// TODO: Save the chunk if it was changed
|
||||||
|
World->GetStorage().QueueSaveChunk(m_Chunks[i]); // _FT: FIXME: Right now it saves chunks even though it might not have changed.
|
||||||
|
// Also I'm not sure what's going on when I queue this chunks and the next line says reset the pointer.. =/
|
||||||
m_Chunks[i].reset();
|
m_Chunks[i].reset();
|
||||||
}
|
}
|
||||||
} // for i - m_Chunks[]
|
} // for i - m_Chunks[]
|
||||||
|
@ -84,7 +84,14 @@ private:
|
|||||||
|
|
||||||
int GetX(void) const {return m_LayerX; }
|
int GetX(void) const {return m_LayerX; }
|
||||||
int GetZ(void) const {return m_LayerZ; }
|
int GetZ(void) const {return m_LayerZ; }
|
||||||
int GetNumChunksLoaded(void) const {return m_NumChunksLoaded; }
|
int GetNumChunksLoaded(void) const
|
||||||
|
{
|
||||||
|
int NumChunks = 0;
|
||||||
|
for( int i = 0; i < LAYER_SIZE*LAYER_SIZE; ++i )
|
||||||
|
if( m_Chunks[i].get() )
|
||||||
|
NumChunks++;
|
||||||
|
return NumChunks;
|
||||||
|
}
|
||||||
|
|
||||||
void Save(void);
|
void Save(void);
|
||||||
void UnloadUnusedChunks(void);
|
void UnloadUnusedChunks(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user