This commit is contained in:
Paul 2001-07-17 19:41:16 +00:00
parent 1b977d9da6
commit 6a18346288
2 changed files with 30 additions and 5 deletions

View File

@ -66,10 +66,15 @@ CPlayerStateFallFar s_stateFallFar;
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CPlayerStateFall::enter(CPlayerModeBase *_playerMode) void CPlayerStateFall::enter(CPlayerModeBase *_playerMode)
{ {
if(_playerMode->getAnimNo()!=ANIM_SPONGEBOB_JUMP) // If already in this state then don't do the entry code
if(_playerMode->getState()!=STATE_JUMP)
{ {
_playerMode->setAnimNo(ANIM_SPONGEBOB_JUMP); if(_playerMode->getAnimNo()!=ANIM_SPONGEBOB_JUMP)
{
_playerMode->setAnimNo(ANIM_SPONGEBOB_JUMP);
}
} }
m_buttBounceTimer=0;
} }
@ -105,9 +110,21 @@ void CPlayerStateFall::think(CPlayerModeBase *_playerMode)
} }
_playerMode->fall(); _playerMode->fall();
if(controlDown&PI_DOWN) // Double-tap for butt bounce
if(m_buttBounceTimer)
{ {
_playerMode->setState(STATE_BUTTBOUNCE); m_buttBounceTimer--;
}
if(controlDown&PI_JUMP)
{
if(m_buttBounceTimer==0)
{
m_buttBounceTimer=BUTT_BOUNCE_TIMEOUT;
}
else
{
_playerMode->setState(STATE_BUTTBOUNCE);
}
} }
} }

View File

@ -38,10 +38,18 @@ public:
void enter(class CPlayerModeBase *_playerMode); void enter(class CPlayerModeBase *_playerMode);
void think(class CPlayerModeBase *_playerMode); void think(class CPlayerModeBase *_playerMode);
private:
enum
{
BUTT_BOUNCE_TIMEOUT=45,
};
unsigned int m_buttBounceTimer;
}; };
class CPlayerStateFallFar : public CPlayerStateFall class CPlayerStateFallFar : public CPlayerState
{ {
private: private:
void enter(class CPlayerModeBase *_playerMode); void enter(class CPlayerModeBase *_playerMode);