summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/Pawn.cpp8
-rw-r--r--source/Player.cpp29
2 files changed, 27 insertions, 10 deletions
diff --git a/source/Pawn.cpp b/source/Pawn.cpp
index c1b8d6683..960f95de3 100644
--- a/source/Pawn.cpp
+++ b/source/Pawn.cpp
@@ -315,8 +315,14 @@ void cPawn::SetMetaData(MetaData a_MetaData)
//----Change Entity MetaData
-void cPawn::CheckMetaDataBurn()
+void cPawn::CheckMetaDataBurn(void)
{
+ if ((GetPosY() < 1) || (GetPosY() >= 254))
+ {
+ // Y coord out of range
+ return;
+ }
+
BLOCKTYPE Block = GetWorld()->GetBlock((int) GetPosX(), (int) GetPosY(), (int) GetPosZ());
BLOCKTYPE BlockAbove = GetWorld()->GetBlock((int) GetPosX(), (int) GetPosY() + 1, (int) GetPosZ());
BLOCKTYPE BlockBelow = GetWorld()->GetBlock((int) GetPosX(), (int) GetPosY() - 1, (int) GetPosZ());
diff --git a/source/Player.cpp b/source/Player.cpp
index d20db5067..a96967360 100644
--- a/source/Player.cpp
+++ b/source/Player.cpp
@@ -267,18 +267,29 @@ void cPlayer::SetTouchGround(bool a_bTouchGround)
if (!m_bTouchGround)
{
- if(GetPosY() > m_LastJumpHeight) m_LastJumpHeight = (float)GetPosY();
- cWorld* World = GetWorld();
- char BlockID = World->GetBlock( float2int(GetPosX()), float2int(GetPosY()), float2int(GetPosZ()) );
- if( BlockID != E_BLOCK_AIR )
+ if (GetPosY() > m_LastJumpHeight)
{
- // LOGD("TouchGround set to true by server");
- m_bTouchGround = true;
+ m_LastJumpHeight = (float)GetPosY();
}
- if( BlockID == E_BLOCK_WATER || BlockID == E_BLOCK_STATIONARY_WATER || BlockID == E_BLOCK_LADDER || BlockID == E_BLOCK_VINES )
+ cWorld * World = GetWorld();
+ if ((GetPosY() >= 0) && (GetPosY() < 256))
{
- // LOGD("Water / Ladder / Torch");
- m_LastGroundHeight = (float)GetPosY();
+ BLOCKTYPE BlockType = World->GetBlock( float2int(GetPosX()), float2int(GetPosY()), float2int(GetPosZ()) );
+ if (BlockType != E_BLOCK_AIR)
+ {
+ // LOGD("TouchGround set to true by server");
+ m_bTouchGround = true;
+ }
+ if (
+ (BlockType == E_BLOCK_WATER) ||
+ (BlockType == E_BLOCK_STATIONARY_WATER) ||
+ (BlockType == E_BLOCK_LADDER) ||
+ (BlockType == E_BLOCK_VINES)
+ )
+ {
+ // LOGD("Water / Ladder / Torch");
+ m_LastGroundHeight = (float)GetPosY();
+ }
}
}