Explosions don't produce warnings in cBlockArea; fixed logging in cBlockArea
Fixes FS #389 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1616 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
d95756c5cc
commit
fe02bf374a
@ -282,22 +282,22 @@ bool cBlockArea::Read(cWorld * a_World, int a_MinBlockX, int a_MaxBlockX, int a_
|
|||||||
// Check coords validity:
|
// Check coords validity:
|
||||||
if (a_MinBlockY < 0)
|
if (a_MinBlockY < 0)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea:Read(): MinBlockY less than zero, adjusting to zero");
|
LOGWARNING("%s: MinBlockY less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MinBlockY = 0;
|
a_MinBlockY = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinBlockY >= cChunkDef::Height)
|
else if (a_MinBlockY >= cChunkDef::Height)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea::Read(): MinBlockY more than chunk height, adjusting to chunk height");
|
LOGWARNING("%s: MinBlockY more than chunk height, adjusting to chunk height", __FUNCTION__);
|
||||||
a_MinBlockY = cChunkDef::Height - 1;
|
a_MinBlockY = cChunkDef::Height - 1;
|
||||||
}
|
}
|
||||||
if (a_MaxBlockY < 0)
|
if (a_MaxBlockY < 0)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea:Read(): MaxBlockY less than zero, adjusting to zero");
|
LOGWARNING("%s: MaxBlockY less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MaxBlockY = 0;
|
a_MaxBlockY = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinBlockY >= cChunkDef::Height)
|
else if (a_MaxBlockY >= cChunkDef::Height)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea::Read(): MaxBlockY more than chunk height, adjusting to chunk height");
|
LOGWARNING("%s: MaxBlockY more than chunk height, adjusting to chunk height", __FUNCTION__);
|
||||||
a_MaxBlockY = cChunkDef::Height - 1;
|
a_MaxBlockY = cChunkDef::Height - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,12 +340,12 @@ bool cBlockArea::Write(cWorld * a_World, int a_MinBlockX, int a_MinBlockY, int a
|
|||||||
// Check coords validity:
|
// Check coords validity:
|
||||||
if (a_MinBlockY < 0)
|
if (a_MinBlockY < 0)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea:Read(): MinBlockY less than zero, adjusting to zero");
|
LOGWARNING("%s: MinBlockY less than zero, adjusting to zero", __FUNCTION__);
|
||||||
a_MinBlockY = 0;
|
a_MinBlockY = 0;
|
||||||
}
|
}
|
||||||
else if (a_MinBlockY >= cChunkDef::Height - m_SizeY)
|
else if (a_MinBlockY >= cChunkDef::Height - m_SizeY)
|
||||||
{
|
{
|
||||||
LOGWARNING("cBlockArea::Read(): MinBlockY + m_SizeY more than chunk height, adjusting to chunk height");
|
LOGWARNING("%s: MinBlockY + m_SizeY more than chunk height, adjusting to chunk height", __FUNCTION__);
|
||||||
a_MinBlockY = cChunkDef::Height - m_SizeY - 1;
|
a_MinBlockY = cChunkDef::Height - m_SizeY - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1537,6 +1537,12 @@ bool cChunkMap::ForEachEntityInChunk(int a_ChunkX, int a_ChunkZ, cEntityCallback
|
|||||||
|
|
||||||
void cChunkMap::DoExplosiontAt(float a_ExplosionSize, int a_BlockX, int a_BlockY, int a_BlockZ, cVector3iArray & a_BlocksAffected)
|
void cChunkMap::DoExplosiontAt(float a_ExplosionSize, int a_BlockX, int a_BlockY, int a_BlockZ, cVector3iArray & a_BlocksAffected)
|
||||||
{
|
{
|
||||||
|
// Don't explode if outside of Y range (prevents the following test running into unallocated memory):
|
||||||
|
if ((a_BlockY < 0) || (a_BlockY >= cChunkDef::Height))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Don't explode if the explosion center is inside a liquid block:
|
// Don't explode if the explosion center is inside a liquid block:
|
||||||
switch (m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ))
|
switch (m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ))
|
||||||
{
|
{
|
||||||
@ -1615,7 +1621,7 @@ void cChunkMap::DoExplosiontAt(float a_ExplosionSize, int a_BlockX, int a_BlockY
|
|||||||
} // for z
|
} // for z
|
||||||
} // for y
|
} // for y
|
||||||
} // for x
|
} // for x
|
||||||
area.Write(m_World, a_BlockX - ExplosionSizeInt, a_BlockY - ExplosionSizeInt, a_BlockZ - ExplosionSizeInt);
|
area.Write(m_World, a_BlockX - ExplosionSizeInt, MinY, a_BlockZ - ExplosionSizeInt);
|
||||||
|
|
||||||
// Wake up all simulators for the area, so that water and lava flows and sand falls into the blasted holes (FS #391):
|
// Wake up all simulators for the area, so that water and lava flows and sand falls into the blasted holes (FS #391):
|
||||||
WakeUpSimulatorsInArea(
|
WakeUpSimulatorsInArea(
|
||||||
|
Loading…
Reference in New Issue
Block a user