This commit is contained in:
Paul 2001-07-02 22:57:52 +00:00
parent 39f3e1a5d5
commit 91ae454d7f
37 changed files with 753 additions and 122 deletions

View file

@ -771,7 +771,8 @@ if(newmode!=-1)
#ifdef __USER_paul__
if(PadGetDown(0)&PAD_TRIANGLE)
{
CSoundMediator::setVolume(CSoundMediator::VOL_SONG,0);
// CSoundMediator::setVolume(CSoundMediator::VOL_SONG,0);
m_currentPlayerModeClass->setState(STATE_CELEBRATE);
}
#endif
///
@ -2147,6 +2148,17 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection,CTh
}
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayer::collectedQuestItem()
{
m_currentPlayerModeClass->setState(STATE_CELEBRATE);
}
/*----------------------------------------------------------------------
Function:
Purpose:

View file

@ -87,6 +87,7 @@ typedef enum
STATE_JUMPBACK,
STATE_CART,
STATE_FLOAT,
STATE_CELEBRATE,
NUM_STATES,
}PLAYER_STATE;
@ -293,6 +294,7 @@ public:
void respawn();
void setCanExitLevelNow() {m_canExitLevel=true;}
int getCanExitLevelNow() {return m_canExitLevel;}
void collectedQuestItem();
int getLivesLeft() {return m_lives;}
@ -455,7 +457,6 @@ public:
// Graphical resources
public:
class FontBank *getFontBank() {return m_fontBank;}

View file

@ -78,6 +78,10 @@
#include "player\psfloat.h"
#endif
#ifndef __PLAYER_PSDANCE_H__
#include "player\psdance.h"
#endif
/* Std Lib
------- */
@ -133,6 +137,7 @@ static CPlayerState *s_stateTable[]=
&s_stateJumpBack, // STATE_JUMPBACK
&s_stateCart, // STATE_CART
&s_stateFloat, // STATE_FLOAT
&s_stateDance, // STATE_CELEBRATE
};

View file

@ -82,6 +82,10 @@
#include "utils\mathtab.h"
#endif
#ifndef __PLAYER_PSDANCE_H__
#include "player\psdance.h"
#endif
/* Std Lib
------- */
@ -137,6 +141,7 @@ static CPlayerState *s_stateTable[]=
&s_stateJumpBack, // STATE_JUMPBACK
NULL, // STATE_CART
NULL, // STATE_FLOAT
&s_stateDance, // STATE_CELEBRATE
};

View file

@ -90,6 +90,10 @@
#include "player\psfloat.h"
#endif
#ifndef __PLAYER_PSDANCE_H__
#include "player\psdance.h"
#endif
/* Std Lib
------- */
@ -145,6 +149,7 @@ static CPlayerState *s_stateTable[]=
&s_stateJumpBack, // STATE_JUMPBACK
&s_stateCart, // STATE_CART
&s_stateFloat, // STATE_FLOAT
&s_stateDance, // STATE_CELEBRATE
};

View file

@ -82,6 +82,10 @@
#include "player\psspring.h"
#endif
#ifndef __PLAYER_PSDANCE_H__
#include "player\psdance.h"
#endif
/* Std Lib
------- */
@ -137,6 +141,7 @@ static CPlayerState *s_stateTable[]=
&s_stateJumpBack, // STATE_JUMPBACK
NULL, // STATE_CART
NULL, // STATE_FLOAT
&s_stateDance, // STATE_CELEBRATE
};

View file

@ -82,7 +82,15 @@
#include "platform\platform.h"
#endif
#include "game/game.h"
#ifndef __PLAYER_PSDANCE_H__
#include "player\psdance.h"
#endif
#ifndef __GAME_GAME_H__
#include "game/game.h"
#endif
/* Std Lib
------- */
@ -133,6 +141,7 @@ static CPlayerState *s_stateTable[]=
&s_stateJumpBack, // STATE_JUMPBACK
&s_stateCart, // STATE_CART
&s_stateFloat, // STATE_FLOAT
&s_stateDance, // STATE_CELEBRATE
};
static PlayerMetrics s_playerMetrics=
@ -162,6 +171,18 @@ static PlayerMetrics s_playerMetrics=
int CPlayerMode::getPadInputHeld() {return m_player->getPadInputHeld();}
int CPlayerMode::getPadInputDown() {return m_player->getPadInputDown();}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
int CPlayerMode::getHeightFromGound()
{
DVECTOR pos=getPlayerPos();
return m_player->getHeightFromGround(pos.vx,pos.vy);
}
/*----------------------------------------------------------------------
Function:
@ -311,7 +332,8 @@ void CPlayerModeBase::thinkVerticalMovement()
{
DVECTOR pos;
playerHasHitGround();
if(m_currentState!=STATE_CELEBRATE)
playerHasHitGround();
pos=m_player->getPlayerPos();
if(m_player->getHeightFromGround(pos.vx,pos.vy,5)==0&&
(CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_SOAKUP&&
@ -325,7 +347,7 @@ void CPlayerModeBase::thinkVerticalMovement()
m_currentState!=STATE_BUTTFALL&&m_currentState!=STATE_BUTTBOUNCE&&
m_currentState!=STATE_JUMP&&m_currentState!=STATE_SPRINGUP&&
m_currentState!=STATE_JUMPBACK&&m_currentState!=STATE_BUTTBOUNCEUP&&
m_currentState!=STATE_FLOAT)
m_currentState!=STATE_FLOAT&&m_currentState!=STATE_CELEBRATE)
{
DVECTOR pos;
pos=m_player->getPlayerPos();
@ -698,6 +720,23 @@ void CPlayerModeBase::fall()
setMoveVelocity(&moveVel);
m_player->fall();
}
// whatever..
void CPlayerModeBase::fallToDance()
{
const PlayerMetrics *metrics;
DVECTOR moveVel;
metrics=getPlayerMetrics();
moveVel=*m_player->getMoveVelocity();
moveVel.vy+=getPlayerMetrics()->m_metric[PM__GRAVITY];
if(moveVel.vy>=metrics->m_metric[PM__TERMINAL_VELOCITY]<<VELOCITY_SHIFT)
{
moveVel.vy=metrics->m_metric[PM__TERMINAL_VELOCITY]<<VELOCITY_SHIFT;
}
setMoveVelocity(&moveVel);
m_player->fall();
}
int buttfallspeed=9;
void CPlayerModeBase::buttFall()
{

View file

@ -97,6 +97,7 @@ public:
virtual int setState(int _state) {return 0;}
virtual int getState() {return STATE_IDLE;} // ARSE.. states need to go back in CPlayer! (pkg)
int getHeightFromGound();
int getPadInputHeld();
int getPadInputDown();
@ -173,6 +174,7 @@ public:
void spring();
void jumpback();
void fall();
void fallToDance();
void buttFall();
int getSpringHeight() {return m_springHeight;}

View file

@ -26,6 +26,14 @@
#include "player\pmodes.h"
#endif
#ifndef __GAME_CONVO_H__
#include "game\convo.h"
#endif
#ifndef __GAME_GAME_H__
#include "game\game.h"
#endif
/* Std Lib
------- */
@ -33,6 +41,10 @@
/* Data
---- */
#ifndef __FILE_EQUATES_H__
#include <biglump.h>
#endif
#ifndef __ANIM_SPONGEBOB_HEADER__
#include <ACTOR_SPONGEBOB_ANIM.h>
#endif
@ -57,6 +69,18 @@
CPlayerStateDance s_stateDance;
static const FileEquate s_celebrationScripts[5][4]=
{
{ SCRIPTS_C1L1_CELEBRATE_DAT, SCRIPTS_C1L2_CELEBRATE_DAT, SCRIPTS_C1L3_CELEBRATE_DAT, SCRIPTS_C1L4_CELEBRATE_DAT },
{ SCRIPTS_C2L1_CELEBRATE_DAT, SCRIPTS_C2L2_CELEBRATE_DAT, SCRIPTS_C2L3_CELEBRATE_DAT, SCRIPTS_C2L4_CELEBRATE_DAT },
{ SCRIPTS_C3L1_CELEBRATE_DAT, SCRIPTS_C3L2_CELEBRATE_DAT, SCRIPTS_C3L3_CELEBRATE_DAT, SCRIPTS_C3L4_CELEBRATE_DAT },
{ SCRIPTS_C4L1_CELEBRATE_DAT, SCRIPTS_C4L2_CELEBRATE_DAT, SCRIPTS_C4L3_CELEBRATE_DAT, SCRIPTS_C4L4_CELEBRATE_DAT },
{ SCRIPTS_C5L1_CELEBRATE_DAT, SCRIPTS_C5L2_CELEBRATE_DAT, SCRIPTS_C5L3_CELEBRATE_DAT, SCRIPTS_C5L4_CELEBRATE_DAT },
};
/*----------------------------------------------------------------------
Function:
Purpose:
@ -65,7 +89,8 @@ CPlayerStateDance s_stateDance;
---------------------------------------------------------------------- */
void CPlayerStateDance::enter(CPlayerModeBase *_playerMode)
{
_playerMode->setAnimNo(ANIM_SPONGEBOB_CELEBRATE);
_playerMode->setAnimNo(ANIM_SPONGEBOB_JUMP);
m_hitGround=false;
}
@ -77,9 +102,28 @@ void CPlayerStateDance::enter(CPlayerModeBase *_playerMode)
---------------------------------------------------------------------- */
void CPlayerStateDance::think(CPlayerModeBase *_playerMode)
{
_playerMode->advanceAnimFrameAndCheckForEndOfAnim();
_playerMode->slowdown();
_playerMode->fall();
if(!m_hitGround)
{
if(_playerMode->getHeightFromGound()==0)
{
_playerMode->setAnimNo(ANIM_SPONGEBOB_CELEBRATE);
m_hitGround=true;
}
else
{
_playerMode->fallToDance();
}
}
else
{
if(_playerMode->advanceAnimFrameAndCheckForEndOfAnim())
{
CConversation::trigger(s_celebrationScripts[GameScene.getChapterNumber()-1][GameScene.getLevelNumber()-1]);
// GameScene.getPlayer()->setCanExitLevelNow();
_playerMode->setState(STATE_IDLE);
}
}
}

View file

@ -38,6 +38,8 @@ public:
void enter(class CPlayerModeBase *_playerMode);
void think(class CPlayerModeBase *_playerMode);
private:
int m_hitGround;
};