This commit is contained in:
Paul 2001-05-14 17:04:13 +00:00
parent 408296a8a2
commit 6c2a9933f4
2 changed files with 15 additions and 3 deletions

View file

@ -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);

View file

@ -121,6 +121,7 @@ typedef enum
DAMAGE__SQUASH_ENEMY,
DAMAGE__BURN_ENEMY,
DAMAGE__BITE_ENEMY,
DAMAGE__COLLISION_DAMAGE,
DAMAGE__KILL_OUTRIGHT,
}DAMAGE_TYPE;