This commit is contained in:
parent
408296a8a2
commit
6c2a9933f4
2 changed files with 15 additions and 3 deletions
|
@ -1659,6 +1659,7 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection,CTh
|
|||
case DAMAGE__SQUASH_ENEMY:
|
||||
case DAMAGE__BURN_ENEMY:
|
||||
case DAMAGE__BITE_ENEMY:
|
||||
case DAMAGE__COLLISION_DAMAGE:
|
||||
break;
|
||||
|
||||
case DAMAGE__KILL_OUTRIGHT:
|
||||
|
@ -2063,12 +2064,11 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(_moveDistance<0)
|
||||
{
|
||||
// Must be below ground
|
||||
// Are we jumping into an impassable block?
|
||||
if(_moveDistance<0&&
|
||||
(m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
if((m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
getHeightFromGround(pos.vx,pos.vy+_moveDistance)<=0)
|
||||
{
|
||||
pos.vy=(pos.vy&0xfff0);
|
||||
|
@ -2076,6 +2076,17 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
hitGround=true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Stood on any important types of collision?
|
||||
int colType;
|
||||
|
||||
colType=m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK;
|
||||
if(colType==COLLISION_TYPE_FLAG_DAMAGE)
|
||||
{
|
||||
takeDamage(DAMAGE__COLLISION_DAMAGE);
|
||||
}
|
||||
}
|
||||
pos.vy+=_moveDistance;
|
||||
setPlayerPos(&pos);
|
||||
|
||||
|
|
|
@ -121,6 +121,7 @@ typedef enum
|
|||
DAMAGE__SQUASH_ENEMY,
|
||||
DAMAGE__BURN_ENEMY,
|
||||
DAMAGE__BITE_ENEMY,
|
||||
DAMAGE__COLLISION_DAMAGE,
|
||||
DAMAGE__KILL_OUTRIGHT,
|
||||
}DAMAGE_TYPE;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue