This commit is contained in:
parent
39f3e1a5d5
commit
91ae454d7f
37 changed files with 753 additions and 122 deletions
|
@ -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:
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ public:
|
|||
void enter(class CPlayerModeBase *_playerMode);
|
||||
void think(class CPlayerModeBase *_playerMode);
|
||||
|
||||
private:
|
||||
int m_hitGround;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue