diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-04-01 20:05:41 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-04-01 20:05:41 +0200 |
commit | 1406d80b2b8410b1d31d75d07430433915440a42 (patch) | |
tree | d0b54c1d27ae60376808eb84864207cfec1acf36 /source | |
parent | ListenThread: Fixed socket-querying, might have crashed some linux versions. (diff) | |
download | cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar.gz cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar.bz2 cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar.lz cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar.xz cuberite-1406d80b2b8410b1d31d75d07430433915440a42.tar.zst cuberite-1406d80b2b8410b1d31d75d07430433915440a42.zip |
Diffstat (limited to 'source')
-rw-r--r-- | source/Pawn.cpp | 8 | ||||
-rw-r--r-- | source/Player.cpp | 29 |
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(); + } } } |