This commit is contained in:
Charles 2001-08-13 22:09:17 +00:00
parent 9980ec3800
commit b492b81a73
2 changed files with 24 additions and 2 deletions

View File

@ -39,7 +39,7 @@ void CNpcJellyfishPlatform::postInit()
{
sBBox boundingBox = m_modelGfx->GetBBox();
boundingBox.YMin += 8;
setCollisionSize( ( boundingBox.XMax - boundingBox.XMin ), ( boundingBox.YMax - boundingBox.YMin ) );
setCollisionSize( ( boundingBox.XMax - boundingBox.XMin ) - 16, ( boundingBox.YMax - boundingBox.YMin ) );
setCollisionCentreOffset( ( boundingBox.XMax + boundingBox.XMin ) >> 1, ( boundingBox.YMax + boundingBox.YMin ) >> 1 );
calculateNonRotatedCollisionData();
@ -88,6 +88,17 @@ CRECT const &collisionArea=getCollisionArea();
{
m_contact = true;
DVECTOR playerDelta;
playerDelta = player->getPosDelta();
if ( playerDelta.vy == 0 )
{
// force dip to complete since player is not dropping onto jellyfish
m_dipCount = GameState::getOneSecondInFrames();
}
if ( m_contactTimeout <= 0 )
{
if ( m_soundId == NOT_PLAYING )

View File

@ -2760,8 +2760,19 @@ int CPlayer::moveVertical(int _moveDistance)
if(colHeightBefore[i]>=0&&colHeightAfter[i]<=0&&((blockAfter[i]&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL))
{
moveRequired[i]=16+colHeightAfter[i];
hitGround=true;
// hitGround=true;
// do not call hitground code, because this will set it to STATE_IDLE for a frame
// instead, do the appropriate stuff for a fall
if(!hitThisSuspectBlock)hitThisSuspectBlock=blockAfter[i];
m_currentPlayerModeClass->setState(STATE_FALL);
DVECTOR moveVel;
moveVel=*getMoveVelocity();
moveVel.vy=0;
m_fallFrames=0;
setMoveVelocity(&moveVel);
}
else
{