This commit is contained in:
Paul 2001-02-12 21:54:44 +00:00
parent 024914d8f3
commit a6b6cdbb57
11 changed files with 103 additions and 30 deletions

View file

@ -378,7 +378,7 @@ Pos.vy=((Pos.vy-16)&0xfffffff0)+colHeight;
}
if(Pos.vx<16)Pos.vx=16;
else if(Pos.vx>m_mapEdge.vx)Pos.vx=m_mapEdge.vx;
else if(Pos.vx>m_mapEdge.vx-16)Pos.vx=m_mapEdge.vx-16;
if(Pos.vy<16)Pos.vy=16;
else if(Pos.vy>m_mapEdge.vy-16)Pos.vy=m_mapEdge.vy-16;
@ -762,6 +762,10 @@ DVECTOR CPlayer::getPlayerPos()
{
return Pos;
}
void CPlayer::setPlayerPos(DVECTOR *_pos)
{
Pos=*_pos;
}
/*----------------------------------------------------------------------
@ -801,7 +805,7 @@ int CPlayer::isOnSolidGround()
if right half of player is hanging or 0 if no part of the
player is hanging
---------------------------------------------------------------------- */
int csize=20;
int csize=15;
int CPlayer::isOnEdge()
{
int ret=0;

View file

@ -76,6 +76,7 @@ typedef enum
PLAYER_MODE_SQUEAKYBOOTS,
PLAYER_MODE_NET,
PLAYER_MODE_CORALBLOWER,
PLAYER_MODE_FLY,
NUM_PLAYERMODES,
}PLAYER_MODE;
@ -179,6 +180,7 @@ protected:
DVECTOR getMoveVelocity();
void setMoveVelocity(DVECTOR *_moveVel);
DVECTOR getPlayerPos();
void setPlayerPos(DVECTOR *_pos);
PLAYERINPUT getPadInputHeld();
PLAYERINPUT getPadInputDown();

View file

@ -49,6 +49,10 @@
#include "player\psdead.h"
#endif
#ifndef __PLAYER__PSFLY_H__
#include "player\psfly.h"
#endif
/* Std Lib
------- */
@ -89,6 +93,7 @@ CPlayerStateDuck stateDuck;
CPlayerStateSoakUp stateSoackUp;
CPlayerStateGetUp stateGetup;
CPlayerStateDead stateDead;
CPlayerStateFly stateFly;
@ -264,6 +269,39 @@ CPlayer::PlayerMode CPlayer::s_modes[NUM_PLAYERMODES]=
&stateDead, // STATE_DEAD
}
},
//
// Fly mode ( A useful debugging mode.. )
//
{
{ {
DEFAULT_PLAYER_JUMP_VELOCITY, // PM__JUMP_VELOCITY
DEFAULT_PLAYER_MAX_JUMP_FRAMES, // PM__MAX_JUMP_FRAMES
DEFAULT_PLAYER_MAX_SAFE_FALL_FRAMES, // PM__MAX_SAFE_FALL_FRAMES
DEFAULT_PLAYER_MAX_RUN_VELOCITY, // PM__MAX_RUN_VELOCITY
DEFAULT_PLAYER_RUN_SPEEDUP, // PM__RUN_SPEEDUP
DEFAULT_PLAYER_RUN_REVERSESLOWDOWN, // PM__RUN_REVERSESLOWDOWN
DEFAULT_PLAYER_RUN_SLOWDOWN, // PM__RUN_SLOWDOWN
} },
{
&stateFly, // STATE_IDLE
&stateFly, // STATE_IDLETEETER
&stateFly, // STATE_JUMP
&stateFly, // STATE_RUN
&stateFly, // STATE_FALL
&stateFly, // STATE_FALLFAR
&stateFly, // STATE_BUTTBOUNCE
&stateFly, // STATE_BUTTFALL
&stateFly, // STATE_BUTTLAND
&stateFly, // STATE_ATTACK
&stateFly, // STATE_RUNATTACK
&stateFly, // STATE_AIRATTACK
&stateFly, // STATE_DUCK
&stateFly, // STATE_SOAKUP
&stateFly, // STATE_GETUP
&stateFly, // STATE_DEAD
}
},
};

View file

@ -62,7 +62,7 @@
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayerStateFall::enter(CPlayer *_player)
void CPlayerStateFly::enter(CPlayer *_player)
{
setAnimNo(_player,ANIM_PLAYER_ANIM_IDLEHOOLA);
}
@ -74,30 +74,30 @@ void CPlayerStateFall::enter(CPlayer *_player)
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayerStateFall::think(CPlayer *_player)
void CPlayerStateFly::think(CPlayer *_player)
{
int controlHeld;
DVECTOR pos;
controlHeld=getPadInputHeld(_player);
pos=getPlayerPos(_player);
if(controlHeld&PI_UP)
{
pos.vx-=5;
}
else if(controlHeld&PI_DOWN)
{
pos.vx+=5;
}
if(controlHeld&PI_LEFT)
{
pos.vy-=5;
pos.vx-=8;
}
else if(controlHeld&PI_RIGHT)
{
pos.vy+=5;
pos.vx+=8;
}
this->setPlayerPos(_player,pos);
if(controlHeld&PI_UP)
{
pos.vy-=8;
}
else if(controlHeld&PI_DOWN)
{
pos.vy+=8;
}
this->setPlayerPos(_player,&pos);
advanceAnimFrameAndCheckForEndOfAnim(_player);
}

View file

@ -32,7 +32,7 @@
Structure defintions
-------------------- */
class CPlayerStateFall : public CPlayerState
class CPlayerStateFly : public CPlayerState
{
public:
virtual void enter(class CPlayer *_player);

View file

@ -210,6 +210,18 @@ DVECTOR CPlayerState::getPlayerPos(CPlayer *_player)
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayerState::setPlayerPos(class CPlayer *_player,DVECTOR *_pos)
{
return _player->setPlayerPos(_pos);
}
/*----------------------------------------------------------------------
Function:
Purpose:

View file

@ -54,6 +54,7 @@ protected:
DVECTOR getMoveVelocity(class CPlayer *_player);
void setMoveVelocity(class CPlayer *_player,DVECTOR *_moveVel);
DVECTOR getPlayerPos(class CPlayer *_player);
void setPlayerPos(class CPlayer *_player,DVECTOR *_pos);
int getPadInputHeld(class CPlayer *_player);
int getPadInputDown(class CPlayer *_player);