Merge pull request #1351 from LO1ZB/remove-a_RelY
remove y-coord from chunks
This commit is contained in:
@@ -980,7 +980,7 @@ bool cWSSCompact::cPAKFile::SaveChunkToData(const cChunkCoords & a_Chunk, cWorld
|
||||
if (!a_World->GetChunkData(a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ, Serializer))
|
||||
{
|
||||
// Chunk not valid
|
||||
LOG("cWSSCompact: Trying to save chunk [%d, %d, %d] that has no data, ignoring request.", a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ);
|
||||
LOG("cWSSCompact: Trying to save chunk [%d, %d] that has no data, ignoring request.", a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -999,7 +999,7 @@ bool cWSSCompact::cPAKFile::SaveChunkToData(const cChunkCoords & a_Chunk, cWorld
|
||||
int errorcode = CompressString(Data.data(), Data.size(), CompressedData, m_CompressionFactor);
|
||||
if (errorcode != Z_OK)
|
||||
{
|
||||
LOGERROR("Error %i compressing data for chunk [%d, %d, %d]", errorcode, a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ);
|
||||
LOGERROR("Error %i compressing data for chunk [%d, %d]", errorcode, a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1010,7 +1010,7 @@ bool cWSSCompact::cPAKFile::SaveChunkToData(const cChunkCoords & a_Chunk, cWorld
|
||||
sChunkHeader * Header = new sChunkHeader;
|
||||
if (Header == NULL)
|
||||
{
|
||||
LOGWARNING("Cannot create a new chunk header to save chunk [%d, %d, %d]", a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ);
|
||||
LOGWARNING("Cannot create a new chunk header to save chunk [%d, %d]", a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ);
|
||||
return false;
|
||||
}
|
||||
Header->m_CompressedSize = (int)CompressedData.size();
|
||||
|
||||
@@ -141,9 +141,9 @@ size_t cWorldStorage::GetSaveQueueLength(void)
|
||||
|
||||
|
||||
|
||||
void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ, bool a_Generate)
|
||||
void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkZ, bool a_Generate)
|
||||
{
|
||||
m_LoadQueue.EnqueueItem(sChunkLoad(a_ChunkX, a_ChunkY, a_ChunkZ, a_Generate));
|
||||
m_LoadQueue.EnqueueItem(sChunkLoad(a_ChunkX, a_ChunkZ, a_Generate));
|
||||
m_Event.Set();
|
||||
}
|
||||
|
||||
@@ -151,9 +151,9 @@ void cWorldStorage::QueueLoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ, boo
|
||||
|
||||
|
||||
|
||||
void cWorldStorage::QueueSaveChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
void cWorldStorage::QueueSaveChunk(int a_ChunkX, int a_ChunkZ)
|
||||
{
|
||||
m_SaveQueue.EnqueueItemIfNotPresent(cChunkCoords(a_ChunkX, a_ChunkY, a_ChunkZ));
|
||||
m_SaveQueue.EnqueueItemIfNotPresent(cChunkCoords(a_ChunkX, a_ChunkZ));
|
||||
m_Event.Set();
|
||||
}
|
||||
|
||||
@@ -161,9 +161,9 @@ void cWorldStorage::QueueSaveChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
|
||||
|
||||
|
||||
void cWorldStorage::UnqueueLoad(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
void cWorldStorage::UnqueueLoad(int a_ChunkX, int a_ChunkZ)
|
||||
{
|
||||
m_LoadQueue.Remove(sChunkLoad(a_ChunkX, a_ChunkY, a_ChunkZ, true));
|
||||
m_LoadQueue.Remove(sChunkLoad(a_ChunkX, a_ChunkZ, true));
|
||||
}
|
||||
|
||||
|
||||
@@ -242,19 +242,19 @@ void cWorldStorage::Execute(void)
|
||||
|
||||
bool cWorldStorage::LoadOneChunk(void)
|
||||
{
|
||||
sChunkLoad ToLoad(0, 0, 0, false);
|
||||
sChunkLoad ToLoad(0, 0, false);
|
||||
bool ShouldLoad = m_LoadQueue.TryDequeueItem(ToLoad);
|
||||
if (ShouldLoad && !LoadChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkY, ToLoad.m_ChunkZ))
|
||||
if (ShouldLoad && !LoadChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkZ))
|
||||
{
|
||||
if (ToLoad.m_Generate)
|
||||
{
|
||||
// The chunk couldn't be loaded, generate it:
|
||||
m_World->GetGenerator().QueueGenerateChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkY, ToLoad.m_ChunkZ);
|
||||
m_World->GetGenerator().QueueGenerateChunk(ToLoad.m_ChunkX, ToLoad.m_ChunkZ, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Notify the world that the load has failed:
|
||||
// m_World->ChunkLoadFailed(ToLoad.m_ChunkX, ToLoad.m_ChunkY, ToLoad.m_ChunkZ);
|
||||
// m_World->ChunkLoadFailed(ToLoad.m_ChunkX, ToLoad.m_ChunkZ);
|
||||
}
|
||||
}
|
||||
return ShouldLoad;
|
||||
@@ -266,7 +266,7 @@ bool cWorldStorage::LoadOneChunk(void)
|
||||
|
||||
bool cWorldStorage::SaveOneChunk(void)
|
||||
{
|
||||
cChunkCoords ToSave(0, 0, 0);
|
||||
cChunkCoords ToSave(0, 0);
|
||||
bool ShouldSave = m_SaveQueue.TryDequeueItem(ToSave);
|
||||
if (ShouldSave && m_World->IsChunkValid(ToSave.m_ChunkX, ToSave.m_ChunkZ))
|
||||
{
|
||||
@@ -283,7 +283,7 @@ bool cWorldStorage::SaveOneChunk(void)
|
||||
|
||||
|
||||
|
||||
bool cWorldStorage::LoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
bool cWorldStorage::LoadChunk(int a_ChunkX, int a_ChunkZ)
|
||||
{
|
||||
if (m_World->IsChunkValid(a_ChunkX, a_ChunkZ))
|
||||
{
|
||||
@@ -291,7 +291,7 @@ bool cWorldStorage::LoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
return true;
|
||||
}
|
||||
|
||||
cChunkCoords Coords(a_ChunkX, a_ChunkY, a_ChunkZ);
|
||||
cChunkCoords Coords(a_ChunkX, a_ChunkZ);
|
||||
|
||||
// First try the schema that is used for saving
|
||||
if (m_SaveSchema->LoadChunk(Coords))
|
||||
@@ -309,7 +309,7 @@ bool cWorldStorage::LoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
|
||||
}
|
||||
|
||||
// Notify the chunk owner that the chunk failed to load (sets cChunk::m_HasLoadFailed to true):
|
||||
m_World->ChunkLoadFailed(a_ChunkX, a_ChunkY, a_ChunkZ);
|
||||
m_World->ChunkLoadFailed(a_ChunkX, a_ChunkZ);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -64,13 +64,13 @@ public:
|
||||
cWorldStorage(void);
|
||||
~cWorldStorage();
|
||||
|
||||
void QueueLoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ, bool a_Generate); // Queues the chunk for loading; if not loaded, the chunk will be generated if a_Generate is true
|
||||
void QueueSaveChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ);
|
||||
void QueueLoadChunk(int a_ChunkX, int a_ChunkZ, bool a_Generate); // Queues the chunk for loading; if not loaded, the chunk will be generated if a_Generate is true
|
||||
void QueueSaveChunk(int a_ChunkX, int a_ChunkZ);
|
||||
|
||||
/// Loads the chunk specified; returns true on success, false on failure
|
||||
bool LoadChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ);
|
||||
bool LoadChunk(int a_ChunkX, int a_ChunkZ);
|
||||
|
||||
void UnqueueLoad(int a_ChunkX, int a_ChunkY, int a_ChunkZ);
|
||||
void UnqueueLoad(int a_ChunkX, int a_ChunkZ);
|
||||
void UnqueueSave(const cChunkCoords & a_Chunk);
|
||||
|
||||
bool Start(cWorld * a_World, const AString & a_StorageSchemaName, int a_StorageCompressionFactor); // Hide the cIsThread's Start() method, we need to provide args
|
||||
@@ -87,17 +87,15 @@ protected:
|
||||
struct sChunkLoad
|
||||
{
|
||||
int m_ChunkX;
|
||||
int m_ChunkY;
|
||||
int m_ChunkZ;
|
||||
bool m_Generate; // If true, the chunk will be generated if it cannot be loaded
|
||||
|
||||
sChunkLoad(int a_ChunkX, int a_ChunkY, int a_ChunkZ, bool a_Generate) : m_ChunkX(a_ChunkX), m_ChunkY(a_ChunkY), m_ChunkZ(a_ChunkZ), m_Generate(a_Generate) {}
|
||||
sChunkLoad(int a_ChunkX, int a_ChunkZ, bool a_Generate) : m_ChunkX(a_ChunkX), m_ChunkZ(a_ChunkZ), m_Generate(a_Generate) {}
|
||||
|
||||
bool operator ==(const sChunkLoad other) const
|
||||
{
|
||||
return (
|
||||
(this->m_ChunkX == other.m_ChunkX) &&
|
||||
(this->m_ChunkY == other.m_ChunkY) &&
|
||||
(this->m_ChunkZ == other.m_ChunkZ)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user