summaryrefslogtreecommitdiffstats
path: root/source/WorldStorage.cpp
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-02-17 18:56:25 +0100
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-02-17 18:56:25 +0100
commit510133bd35cad951a02f7d102f27badded7683a4 (patch)
tree3c995df9f2fd07806f053f6b57bd67686661a84c /source/WorldStorage.cpp
parentRemoved useless log messages (diff)
downloadcuberite-510133bd35cad951a02f7d102f27badded7683a4.tar
cuberite-510133bd35cad951a02f7d102f27badded7683a4.tar.gz
cuberite-510133bd35cad951a02f7d102f27badded7683a4.tar.bz2
cuberite-510133bd35cad951a02f7d102f27badded7683a4.tar.lz
cuberite-510133bd35cad951a02f7d102f27badded7683a4.tar.xz
cuberite-510133bd35cad951a02f7d102f27badded7683a4.tar.zst
cuberite-510133bd35cad951a02f7d102f27badded7683a4.zip
Diffstat (limited to 'source/WorldStorage.cpp')
-rw-r--r--source/WorldStorage.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/source/WorldStorage.cpp b/source/WorldStorage.cpp
index 73ad18f15..f6be97753 100644
--- a/source/WorldStorage.cpp
+++ b/source/WorldStorage.cpp
@@ -161,12 +161,12 @@ void cWorldStorage::WaitForFinish(void)
-void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkZ)
+void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{
// Queues the chunk for loading; if not loaded, the chunk will be generated
cCSLock Lock(m_CSLoadQueue);
- m_LoadQueue.remove (cChunkCoords(a_ChunkX, a_ChunkZ)); // Don't add twice
- m_LoadQueue.push_back(cChunkCoords(a_ChunkX, a_ChunkZ));
+ m_LoadQueue.remove (cChunkCoords(a_ChunkX, a_ChunkY, a_ChunkZ)); // Don't add twice
+ m_LoadQueue.push_back(cChunkCoords(a_ChunkX, a_ChunkY, a_ChunkZ));
m_Event.Set();
}
@@ -174,11 +174,11 @@ void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkZ)
-void cWorldStorage::QueueSaveChunk(int a_ChunkX, int a_ChunkZ)
+void cWorldStorage::QueueSaveChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{
cCSLock Lock(m_CSSaveQueue);
- m_SaveQueue.remove (cChunkCoords(a_ChunkX, a_ChunkZ)); // Don't add twice
- m_SaveQueue.push_back(cChunkCoords(a_ChunkX, a_ChunkZ));
+ m_SaveQueue.remove (cChunkCoords(a_ChunkX, a_ChunkY, a_ChunkZ)); // Don't add twice
+ m_SaveQueue.push_back(cChunkCoords(a_ChunkX, a_ChunkY, a_ChunkZ));
m_Event.Set();
}
@@ -268,7 +268,7 @@ void cWorldStorage::Execute(void)
bool cWorldStorage::LoadOneChunk(void)
{
- cChunkCoords ToLoad(0, 0);
+ cChunkCoords ToLoad(0, 0, 0);
bool HasMore;
bool ShouldLoad = false;
{
@@ -284,7 +284,7 @@ bool cWorldStorage::LoadOneChunk(void)
if (ShouldLoad && !LoadChunk(ToLoad))
{
// The chunk couldn't be loaded, generate it:
- m_World->GetGenerator().GenerateChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkZ);
+ m_World->GetGenerator().GenerateChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkY, ToLoad.m_ChunkZ);
}
return HasMore;
}
@@ -295,7 +295,7 @@ bool cWorldStorage::LoadOneChunk(void)
bool cWorldStorage::SaveOneChunk(void)
{
- cChunkCoords Save(0, 0);
+ cChunkCoords Save(0, 0, 0);
bool HasMore;
bool ShouldSave = false;
{
@@ -308,16 +308,16 @@ bool cWorldStorage::SaveOneChunk(void)
}
HasMore = (m_SaveQueue.size() > 0);
}
- if (ShouldSave)
+ if (ShouldSave && m_World->IsChunkValid(Save.m_ChunkX, Save.m_ChunkY, Save.m_ChunkZ))
{
- m_World->MarkChunkSaving(Save.m_ChunkX, 0, Save.m_ChunkZ);
+ m_World->MarkChunkSaving(Save.m_ChunkX, Save.m_ChunkY, Save.m_ChunkZ);
if (m_SaveSchema->SaveChunk(Save))
{
- m_World->MarkChunkSaved(Save.m_ChunkX, 0, Save.m_ChunkZ);
+ m_World->MarkChunkSaved(Save.m_ChunkX, Save.m_ChunkY, Save.m_ChunkZ);
}
else
{
- LOGWARNING("Cannot save chunk [%d, %d]", Save.m_ChunkX, Save.m_ChunkZ);
+ LOGWARNING("Cannot save chunk [%d, %d, %d]", Save.m_ChunkX, Save.m_ChunkY, Save.m_ChunkZ);
}
}
return HasMore;
@@ -329,7 +329,7 @@ bool cWorldStorage::SaveOneChunk(void)
bool cWorldStorage::LoadChunk(const cChunkCoords & a_Chunk)
{
- if (m_World->IsChunkValid(a_Chunk.m_ChunkX, 0, a_Chunk.m_ChunkZ))
+ if (m_World->IsChunkValid(a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ))
{
// Already loaded (can happen, since the queue is async)
return true;