From dddd2028f85fb18a9338510cee1e90d719a95e3f Mon Sep 17 00:00:00 2001 From: Paul Date: Tue, 1 May 2001 18:39:41 +0000 Subject: [PATCH] --- makefile.gaz | 3 ++- source/platform/pbranch.cpp | 10 ++++++++++ source/player/player.cpp | 11 +++++++++++ source/player/player.h | 3 +++ source/player/pmbubble.cpp | 1 + source/player/pmchop.cpp | 1 + source/player/pmcoral.cpp | 5 +++++ source/player/pmjelly.cpp | 2 ++ source/player/pmnet.cpp | 1 + source/player/pmodes.cpp | 9 ++++++++- source/player/pmodes.h | 2 ++ source/player/psspring.cpp | 8 ++++---- users/paul/spongebob project/spongebob project.dsp | 8 ++++++++ 13 files changed, 58 insertions(+), 6 deletions(-) diff --git a/makefile.gaz b/makefile.gaz index 287483ede..04697e7d2 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -204,7 +204,8 @@ player_src := demoplay \ pshitgnd \ psidle \ psjump \ - psrun + psrun \ + psspring script_src := script \ function diff --git a/source/platform/pbranch.cpp b/source/platform/pbranch.cpp index b863bf16b..f28f28219 100644 --- a/source/platform/pbranch.cpp +++ b/source/platform/pbranch.cpp @@ -19,6 +19,15 @@ #include "utils\utils.h" #endif +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + +#ifndef __PLAYER_PLAYER_H__ +#include "player\player.h" +#endif + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CNpcBranchPlatform::postInit() @@ -77,6 +86,7 @@ void CNpcBranchPlatform::processMovement( int _frames ) if ( ( m_reversed && newAngle < -256 ) || newAngle > 256 ) { // flick player upwards + GameScene.getPlayer()->springPlayerUp(); } s16 angularForce = 3 * _frames; diff --git a/source/player/player.cpp b/source/player/player.cpp index 74f639e38..a76b563f2 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -1084,6 +1084,17 @@ void CPlayer::setAnimNo(int _animNo) setAnimFrame(0); } +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CPlayer::springPlayerUp() +{ + m_currentPlayerModeClass->springPlayerUp(); +} + /*---------------------------------------------------------------------- Function: Purpose: diff --git a/source/player/player.h b/source/player/player.h index bdecc065f..93821f249 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -67,6 +67,7 @@ typedef enum STATE_IDLE, STATE_IDLETEETER, STATE_JUMP, + STATE_SPRINGUP, STATE_RUN, STATE_FALL, STATE_FALLFAR, @@ -195,6 +196,8 @@ public: int getAnimFrameCount(); int getAnimNo(); void setAnimNo(int _animNo); + + void springPlayerUp(); private: void playAnimFrameSfx(int _animNo,int _animFrame); diff --git a/source/player/pmbubble.cpp b/source/player/pmbubble.cpp index 689637905..828d6653c 100644 --- a/source/player/pmbubble.cpp +++ b/source/player/pmbubble.cpp @@ -199,6 +199,7 @@ int CPlayerModeBubbleMixture::canBlowBubbleFromThisState() ret=true; break; + case STATE_SPRINGUP: case STATE_FALLFAR: case STATE_BUTTBOUNCE: case STATE_BUTTFALL: diff --git a/source/player/pmchop.cpp b/source/player/pmchop.cpp index 9e61b43ec..f5bc127a9 100644 --- a/source/player/pmchop.cpp +++ b/source/player/pmchop.cpp @@ -152,6 +152,7 @@ int CPlayerModeChop::canAttackFromThisState() ret=true; break; + case STATE_SPRINGUP: case STATE_FALLFAR: case STATE_BUTTBOUNCE: case STATE_BUTTFALL: diff --git a/source/player/pmcoral.cpp b/source/player/pmcoral.cpp index b4b5e3009..5d35babc0 100644 --- a/source/player/pmcoral.cpp +++ b/source/player/pmcoral.cpp @@ -46,6 +46,10 @@ #include "player\psduck.h" #endif +#ifndef __PLAYER__PSSPRING_H__ +#include "player\psspring.h" +#endif + /* Std Lib ------- */ @@ -83,6 +87,7 @@ static CPlayerState *s_stateTable[]= &s_stateWeaponIdle, // STATE_IDLE &s_stateWeaponIdle, // STATE_IDLETEETER &s_stateJump, // STATE_JUMP + &s_stateSpring, // STATE_SPRINGUP &s_stateWalk, // STATE_RUN &s_stateFall, // STATE_FALL &s_stateFallFar, // STATE_FALLFAR diff --git a/source/player/pmjelly.cpp b/source/player/pmjelly.cpp index a0e2eff8b..a9c5dc18a 100644 --- a/source/player/pmjelly.cpp +++ b/source/player/pmjelly.cpp @@ -202,6 +202,7 @@ int CPlayerModeJellyLauncher::setState(int _state) case STATE_IDLE: case STATE_IDLETEETER: case STATE_JUMP: + case STATE_SPRINGUP: case STATE_RUN: case STATE_FALLFAR: case STATE_BUTTBOUNCE: @@ -243,6 +244,7 @@ int CPlayerModeJellyLauncher::canFireFromThisState() break; case STATE_JUMP: + case STATE_SPRINGUP: case STATE_RUN: case STATE_FALL: case STATE_FALLFAR: diff --git a/source/player/pmnet.cpp b/source/player/pmnet.cpp index 37ae0bfa0..0be69d579 100644 --- a/source/player/pmnet.cpp +++ b/source/player/pmnet.cpp @@ -275,6 +275,7 @@ int CPlayerModeNet::canSwingNetFromThisState() ret=true; break; + case STATE_SPRINGUP: case STATE_FALLFAR: case STATE_BUTTBOUNCE: case STATE_BUTTFALL: diff --git a/source/player/pmodes.cpp b/source/player/pmodes.cpp index 135162df4..b5777e5ea 100644 --- a/source/player/pmodes.cpp +++ b/source/player/pmodes.cpp @@ -58,6 +58,10 @@ #include "player\psduck.h" #endif +#ifndef __PLAYER__PSSPRING_H__ +#include "player\psspring.h" +#endif + /* Std Lib ------- */ @@ -91,6 +95,7 @@ static CPlayerState *s_stateTable[]= &s_stateUnarmedIdle, // 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 @@ -196,6 +201,7 @@ int CPlayerModeBase::canDoLookAround() break; case STATE_JUMP: + case STATE_SPRINGUP: case STATE_RUN: case STATE_FALL: case STATE_FALLFAR: @@ -231,6 +237,7 @@ ATTACK_STATE CPlayerModeBase::getAttackState() case STATE_IDLE: case STATE_IDLETEETER: case STATE_JUMP: + case STATE_SPRINGUP: case STATE_RUN: case STATE_FALL: case STATE_FALLFAR: @@ -258,7 +265,7 @@ void CPlayerModeBase::thinkVerticalMovement() } else if(m_currentState!=STATE_FALL&&m_currentState!=STATE_FALLFAR&& m_currentState!=STATE_BUTTFALL&&m_currentState!=STATE_BUTTBOUNCE&& - m_currentState!=STATE_JUMP) + m_currentState!=STATE_JUMP&&m_currentState!=STATE_SPRINGUP) { DVECTOR pos; pos=m_player->getPlayerPos(); diff --git a/source/player/pmodes.h b/source/player/pmodes.h index 3af19a049..8a4f44d8c 100644 --- a/source/player/pmodes.h +++ b/source/player/pmodes.h @@ -85,6 +85,7 @@ public: virtual void render(DVECTOR *_pos) {;} virtual void renderModeUi() {;} // Ui specific to this mode (eg: ammo) virtual int canDoLookAround() {return false;} + virtual void springPlayerUp() {;} int getPadInputHeld(); @@ -116,6 +117,7 @@ public: virtual void think(); virtual void render() {;} virtual int canDoLookAround(); + virtual void springPlayerUp() {setState(STATE_SPRINGUP);} virtual ATTACK_STATE getAttackState(); diff --git a/source/player/psspring.cpp b/source/player/psspring.cpp index 5b10a6a74..b8b493797 100644 --- a/source/player/psspring.cpp +++ b/source/player/psspring.cpp @@ -70,7 +70,7 @@ CPlayerStateSpring s_stateSpring; void CPlayerStateSpring::enter(CPlayerModeBase *_playerMode) { _playerMode->setAnimNo(ANIM_SPONGEBOB_JUMP); - m_jumpFrames=0; + m_springFrames=0; _playerMode->jump(); } @@ -82,7 +82,7 @@ void CPlayerStateSpring::enter(CPlayerModeBase *_playerMode) Params: Returns: ---------------------------------------------------------------------- */ -int maxspring=20; +int maxplayerspringframes=25; void CPlayerStateSpring::think(CPlayerModeBase *_playerMode) { const PlayerMetrics *metrics; @@ -94,9 +94,9 @@ void CPlayerStateSpring::think(CPlayerModeBase *_playerMode) _playerMode->advanceAnimFrameAndCheckForEndOfAnim(); - if(m_jumpFrames<=metrics->m_metric[PM__MAX_JUMP_FRAMES]) + if(m_springFrames<=maxspring) { - m_jumpFrames++; + m_springFrames++; } else { diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index 17574a3fc..52bc57e59 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -1227,6 +1227,14 @@ SOURCE=..\..\..\source\player\psrun.h # End Source File # Begin Source File +SOURCE=..\..\..\source\player\psspring.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\player\psspring.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\player\pstates.h # End Source File # End Group