commit
69eaa55b55
@ -1549,7 +1549,7 @@ void cChunkMap::SendBlockTo(int a_X, int a_Y, int a_Z, cPlayer * a_Player)
|
|||||||
|
|
||||||
cCSLock Lock(m_CSLayers);
|
cCSLock Lock(m_CSLayers);
|
||||||
cChunkPtr Chunk = GetChunk(ChunkX, ZERO_CHUNK_Y, ChunkZ);
|
cChunkPtr Chunk = GetChunk(ChunkX, ZERO_CHUNK_Y, ChunkZ);
|
||||||
if (Chunk->IsValid())
|
if ((Chunk != NULL) && (Chunk->IsValid()))
|
||||||
{
|
{
|
||||||
Chunk->SendBlockTo(a_X, a_Y, a_Z, a_Player->GetClientHandle());
|
Chunk->SendBlockTo(a_X, a_Y, a_Z, a_Player->GetClientHandle());
|
||||||
}
|
}
|
||||||
|
@ -290,7 +290,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
|
|||||||
LOGWARNING("%s: MaxRelX less than zero, adjusting to zero", __FUNCTION__);
|
LOGWARNING("%s: MaxRelX less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MaxRelX = 0;
|
a_MaxRelX = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinRelX >= cChunkDef::Width)
|
else if (a_MaxRelX >= cChunkDef::Width)
|
||||||
{
|
{
|
||||||
LOGWARNING("%s: MaxRelX more than chunk width, adjusting to chunk width", __FUNCTION__);
|
LOGWARNING("%s: MaxRelX more than chunk width, adjusting to chunk width", __FUNCTION__);
|
||||||
a_MaxRelX = cChunkDef::Width - 1;
|
a_MaxRelX = cChunkDef::Width - 1;
|
||||||
@ -311,7 +311,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
|
|||||||
LOGWARNING("%s: MaxRelY less than zero, adjusting to zero", __FUNCTION__);
|
LOGWARNING("%s: MaxRelY less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MaxRelY = 0;
|
a_MaxRelY = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinRelY >= cChunkDef::Height)
|
else if (a_MaxRelY >= cChunkDef::Height)
|
||||||
{
|
{
|
||||||
LOGWARNING("%s: MaxRelY more than chunk height, adjusting to chunk height", __FUNCTION__);
|
LOGWARNING("%s: MaxRelY more than chunk height, adjusting to chunk height", __FUNCTION__);
|
||||||
a_MaxRelY = cChunkDef::Height - 1;
|
a_MaxRelY = cChunkDef::Height - 1;
|
||||||
@ -332,7 +332,7 @@ void cChunkDesc::ReadBlockArea(cBlockArea & a_Dest, int a_MinRelX, int a_MaxRelX
|
|||||||
LOGWARNING("%s: MaxRelZ less than zero, adjusting to zero", __FUNCTION__);
|
LOGWARNING("%s: MaxRelZ less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MaxRelZ = 0;
|
a_MaxRelZ = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinRelZ >= cChunkDef::Width)
|
else if (a_MaxRelZ >= cChunkDef::Width)
|
||||||
{
|
{
|
||||||
LOGWARNING("%s: MaxRelZ more than chunk width, adjusting to chunk width", __FUNCTION__);
|
LOGWARNING("%s: MaxRelZ more than chunk width, adjusting to chunk width", __FUNCTION__);
|
||||||
a_MaxRelZ = cChunkDef::Width - 1;
|
a_MaxRelZ = cChunkDef::Width - 1;
|
||||||
|
@ -53,6 +53,16 @@ cGridStructGen::cGridStructGen(
|
|||||||
m_MaxStructureSizeZ(a_MaxStructureSizeZ),
|
m_MaxStructureSizeZ(a_MaxStructureSizeZ),
|
||||||
m_MaxCacheSize(a_MaxCacheSize)
|
m_MaxCacheSize(a_MaxCacheSize)
|
||||||
{
|
{
|
||||||
|
if (m_GridSizeX == 0)
|
||||||
|
{
|
||||||
|
LOG("Grid Size cannot be zero, setting to 1");
|
||||||
|
m_GridSizeX = 1;
|
||||||
|
}
|
||||||
|
if (m_GridSizeZ == 0)
|
||||||
|
{
|
||||||
|
LOG("Grid Size cannot be zero, setting to 1");
|
||||||
|
m_GridSizeZ = 1;
|
||||||
|
}
|
||||||
size_t NumStructuresPerQuery = (size_t)(((m_MaxStructureSizeX + m_MaxOffsetX) / m_GridSizeX + 1) * ((m_MaxStructureSizeZ + m_MaxOffsetZ) / m_GridSizeZ + 1));
|
size_t NumStructuresPerQuery = (size_t)(((m_MaxStructureSizeX + m_MaxOffsetX) / m_GridSizeX + 1) * ((m_MaxStructureSizeZ + m_MaxOffsetZ) / m_GridSizeZ + 1));
|
||||||
if (NumStructuresPerQuery > m_MaxCacheSize)
|
if (NumStructuresPerQuery > m_MaxCacheSize)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user