This commit is contained in:
parent
73ebe07cc2
commit
469fa455ee
9 changed files with 173 additions and 60 deletions
|
@ -57,6 +57,9 @@
|
|||
------------------- */
|
||||
|
||||
//#define _RECORD_DEMO_MODE_
|
||||
#ifdef __USER_paul__
|
||||
#define _STATE_DEBUG_
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -102,6 +105,38 @@ static void writeDemoControls()
|
|||
#endif
|
||||
|
||||
|
||||
#ifdef _STATE_DEBUG_
|
||||
static const char *s_stateText[NUM_STATES]=
|
||||
{
|
||||
"IDLE",
|
||||
"IDLETEETER",
|
||||
"JUMP",
|
||||
"RUN",
|
||||
"FALL",
|
||||
"FALLFAR",
|
||||
"BUTTBOUNCE",
|
||||
"BUTTFALL",
|
||||
"BUTTLAND",
|
||||
"ATTACK",
|
||||
"RUNATTACK",
|
||||
"AIRATTACK",
|
||||
"DUCK",
|
||||
"SOAKUP",
|
||||
"GETUP",
|
||||
"DEAD",
|
||||
};
|
||||
static const char *s_modeText[NUM_PLAYERMODES]=
|
||||
{
|
||||
"BASICUNARMED",
|
||||
"FULLUNARMED",
|
||||
"SQUEAKYBOOTS",
|
||||
"NET",
|
||||
"CORALBLOWER",
|
||||
};
|
||||
#include "gfx\font.h"
|
||||
FontBank s_debugFont;
|
||||
#endif
|
||||
|
||||
|
||||
int s_health;
|
||||
int s_screenPos;
|
||||
|
@ -179,6 +214,11 @@ m_animFrame=0;
|
|||
|
||||
m_skel.setAng(512);
|
||||
//m_skel.setAngInc(678);
|
||||
|
||||
#ifdef _STATE_DEBUG_
|
||||
s_debugFont.initialise(&standardFont);
|
||||
s_debugFont.setJustification(FontBank::JUST_LEFT);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -189,6 +229,9 @@ m_skel.setAng(512);
|
|||
---------------------------------------------------------------------- */
|
||||
void CPlayer::shutdown()
|
||||
{
|
||||
#ifdef _STATE_DEBUG_
|
||||
s_debugFont.dump();
|
||||
#endif
|
||||
CThing::shutdown();
|
||||
}
|
||||
|
||||
|
@ -198,9 +241,7 @@ void CPlayer::shutdown()
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
#ifdef __USER_paul__
|
||||
int newmode=-1;
|
||||
#endif
|
||||
|
||||
void CPlayer::think(int _frames)
|
||||
{
|
||||
|
@ -216,12 +257,12 @@ if(PadGetHeld(0)&PAD_L1&&PadGetHeld(0)&PAD_L2)
|
|||
Pos.vx=23*16;
|
||||
Pos.vy=10*16;
|
||||
}
|
||||
#endif
|
||||
if(newmode!=-1)
|
||||
{
|
||||
setMode((PLAYER_MODE)newmode);
|
||||
newmode=-1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __USER_paul__
|
||||
int padInput=PadGetHeld(0);
|
||||
|
@ -351,7 +392,7 @@ Pos.vy=((Pos.vy-16)&0xfffffff0)+colHeight;
|
|||
|
||||
// Look around
|
||||
int pad=getPadInputHeld();
|
||||
if(getPadInputDown()&PAD_CIRCLE)
|
||||
if(PadGetDown(0)&PAD_CIRCLE)
|
||||
{
|
||||
m_skel.blink();
|
||||
}
|
||||
|
@ -502,6 +543,15 @@ if(eyes!=-1)
|
|||
m_skel.Animate(this);
|
||||
m_skel.Render(this);
|
||||
}
|
||||
|
||||
|
||||
#ifdef _STATE_DEBUG_
|
||||
char buf[128];
|
||||
sprintf(buf,"STATE: %s",s_stateText[m_currentState]);
|
||||
s_debugFont.print(40,200,buf);
|
||||
sprintf(buf,"MODE: %s",s_modeText[m_currentMode]);
|
||||
s_debugFont.print(40,210,buf);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -77,11 +77,12 @@ void CPlayerStateFall::enter(CPlayer *_player)
|
|||
void CPlayerStateFall::think(CPlayer *_player)
|
||||
{
|
||||
const PlayerMetrics *metrics;
|
||||
int controlHeld;
|
||||
int controlHeld,controlDown;
|
||||
DVECTOR move;
|
||||
|
||||
metrics=getPlayerMetrics(_player);
|
||||
controlHeld=getPadInputHeld(_player);
|
||||
controlDown=getPadInputDown(_player);
|
||||
|
||||
if(controlHeld&PI_LEFT)
|
||||
{
|
||||
|
@ -98,16 +99,20 @@ void CPlayerStateFall::think(CPlayer *_player)
|
|||
|
||||
fall(_player);
|
||||
|
||||
if(controlHeld&PI_ACTION)
|
||||
if(controlDown&PI_ACTION)
|
||||
{
|
||||
setState(_player,STATE_AIRATTACK);
|
||||
}
|
||||
else if(controlHeld&PI_DOWN)
|
||||
{
|
||||
move.vx=0;
|
||||
move.vy=0;
|
||||
setMoveVelocity(_player,&move);
|
||||
setState(_player,STATE_BUTTBOUNCE);
|
||||
if(setState(_player,STATE_BUTTBOUNCE))
|
||||
{
|
||||
// Only do this if this mode allows us to go into butt bounce, otherwise
|
||||
// SB just floats in the air :)
|
||||
move.vx=0;
|
||||
move.vy=0;
|
||||
setMoveVelocity(_player,&move);
|
||||
}
|
||||
}
|
||||
advanceAnimFrameAndCheckForEndOfAnim(_player);
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ void CPlayerStateBaseIdle::thinkControl(CPlayer *_player)
|
|||
if(canMoveRight(_player))
|
||||
setState(_player,STATE_RUN);
|
||||
}
|
||||
else if(controlHeld&PI_ACTION)
|
||||
else if(controlDown&PI_ACTION)
|
||||
{
|
||||
setState(_player,STATE_ATTACK);
|
||||
}
|
||||
|
|
|
@ -90,10 +90,11 @@ void CPlayerStateJump::enter(CPlayer *_player)
|
|||
void CPlayerStateJump::think(CPlayer *_player)
|
||||
{
|
||||
const PlayerMetrics *metrics;
|
||||
int controlHeld;
|
||||
int controlHeld,controlDown;
|
||||
|
||||
metrics=getPlayerMetrics(_player);
|
||||
controlHeld=getPadInputHeld(_player);
|
||||
controlDown=getPadInputDown(_player);
|
||||
|
||||
if(m_jumpFrames<=metrics->m_metric[PM__MAX_JUMP_FRAMES]&&PI_JUMP)
|
||||
{
|
||||
|
@ -104,7 +105,7 @@ void CPlayerStateJump::think(CPlayer *_player)
|
|||
setState(_player,STATE_FALL);
|
||||
}
|
||||
|
||||
if(controlHeld&PI_ACTION)
|
||||
if(controlDown&PI_ACTION)
|
||||
{
|
||||
setState(_player,STATE_AIRATTACK);
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ void CPlayerStateRun::think(CPlayer *_player)
|
|||
{
|
||||
setState(_player,STATE_DUCK);
|
||||
}
|
||||
if(controlHeld&PI_ACTION)
|
||||
if(controlDown&PI_ACTION)
|
||||
{
|
||||
setState(_player,STATE_RUNATTACK);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue