diff --git a/source/player/pmnet.cpp b/source/player/pmnet.cpp index 5120f0676..e6214d907 100644 --- a/source/player/pmnet.cpp +++ b/source/player/pmnet.cpp @@ -41,6 +41,47 @@ #include "gfx\font.h" #endif +// States +#ifndef __PLAYER__PSBUTT_H__ +#include "player\psbutt.h" +#endif + +#ifndef __PLAYER__PSLOOK_H__ +#include "player\pslook.h" +#endif + +#ifndef __PLAYER__PSJUMP_H__ +#include "player\psjump.h" +#endif + +#ifndef __PLAYER__PSJMPBCK_H__ +#include "player\psjmpbck.h" +#endif + +#ifndef __PLAYER__PSRUN_H__ +#include "player\psrun.h" +#endif + +#ifndef __PLAYER__PSFALL_H__ +#include "player\psfall.h" +#endif + +#ifndef __PLAYER__PSHITGND_H__ +#include "player\pshitgnd.h" +#endif + +#ifndef __PLAYER__PSIDLE_H__ +#include "player\psidle.h" +#endif + +#ifndef __PLAYER__PSDUCK_H__ +#include "player\psduck.h" +#endif + +#ifndef __PLAYER__PSSPRING_H__ +#include "player\psspring.h" +#endif + /* Std Lib ------- */ @@ -73,6 +114,33 @@ Vars ---- */ +static CPlayerState *s_stateTable[]= +{ + &s_stateNetIdle, // STATE_IDLE + &s_stateTeeterIdle, // STATE_IDLETEETER + &s_stateJump, // STATE_JUMP + &s_stateSpring, // STATE_SPRINGUP + &s_stateRun, // STATE_RUN + &s_stateFall, // STATE_FALL + &s_stateFallFar, // STATE_FALLFAR + &s_stateHitGround, // STATE_HITGROUND + &s_stateButtBounce, // STATE_BUTTBOUNCE + &s_stateButtBounceFall, // STATE_BUTTFALL + &s_stateButtBounceLand, // STATE_BUTTLAND + &s_stateButtBounceUp, // STATE_BUTTBOUNCEUP + &s_stateDuck, // STATE_DUCK + &s_stateSoakUp, // STATE_SOAKUP + &s_stateGetUp, // STATE_GETUP + &s_stateLookDown, // STATE_LOOKDOWN + &s_stateLookDownRelax, // STATE_LOOKDOWNRELAX + &s_stateLookUp, // STATE_LOOKUP + &s_stateLookUpRelax, // STATE_LOOKUPRELAX + &s_stateJumpBack, // STATE_JUMPBACK + NULL, // STATE_CART + NULL, // STATE_FLOAT +}; + + // Net pulse int npspeed=150; int npsize=40; @@ -323,6 +391,17 @@ void CPlayerModeNet::setAnimFrame(int _animFrame) m_savedAnimFrame=_animFrame; } +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +CPlayerState **CPlayerModeNet::getStateTable() +{ + return s_stateTable; +} + /*---------------------------------------------------------------------- Function: Purpose: diff --git a/source/player/pmnet.h b/source/player/pmnet.h index 44204375f..3f8dd9219 100644 --- a/source/player/pmnet.h +++ b/source/player/pmnet.h @@ -44,6 +44,9 @@ public: virtual void setAnimNo(int _animNo); virtual void setAnimFrame(int _animFrame); +protected: + virtual class CPlayerState **getStateTable(); + private: typedef enum { diff --git a/source/player/psidle.cpp b/source/player/psidle.cpp index e8cdd627b..181228743 100644 --- a/source/player/psidle.cpp +++ b/source/player/psidle.cpp @@ -57,6 +57,7 @@ CPlayerStateUnarmedIdle s_stateUnarmedIdle; CPlayerStateTeeterIdle s_stateTeeterIdle; CPlayerStateWeaponIdle s_stateWeaponIdle; +CPlayerStateNetIdle s_stateNetIdle; /*---------------------------------------------------------------------- @@ -265,8 +266,14 @@ static IdleAnims s_unarmedIdleAnims[]= { -1, ANIM_SPONGEBOB_IDLEBREATH, -1, 5*60 }, { -1, ANIM_SPONGEBOB_IDLEBREATH, -1, 5*60 }, { -1, ANIM_SPONGEBOB_IDLEBIGEYE, -1, 1 }, - { -1, ANIM_SPONGEBOB_IDLEBIGEYE, -1, 1 }, { -1, ANIM_SPONGEBOB_IDLEFACEUPSIDEDOWN, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEBANDAID, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEEYEPOP, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEINHAT, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEMATURE, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEMOUSTACHE, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLENOFACE, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEZORRO, -1, 1 }, }; static int s_numUnarmedIdleAnims=sizeof(s_unarmedIdleAnims)/sizeof(IdleAnims); IdleAnims *CPlayerStateUnarmedIdle::getIdleAnimsDb(int _animNo) @@ -306,5 +313,32 @@ int CPlayerStateWeaponIdle::getNumIdleAnims() } +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +static IdleAnims s_netIdleAnims[]= +{ + // start frame loop frame end frame loop count + { -1, ANIM_SPONGEBOB_IDLEBREATH, -1, 10*60 }, // default + { -1, ANIM_SPONGEBOB_IDLEBREATH, -1, 5*60 }, + { -1, ANIM_SPONGEBOB_IDLEBREATH, -1, 5*60 }, + { -1, ANIM_SPONGEBOB_IDLENET, -1, 1 }, + { -1, ANIM_SPONGEBOB_IDLEWEAPON, -1, 1 }, +}; +static int s_numNetIdleAnims=sizeof(s_netIdleAnims)/sizeof(IdleAnims); +IdleAnims *CPlayerStateNetIdle::getIdleAnimsDb(int _animNo) +{ + ASSERT(_animNo