This commit is contained in:
Paul 2001-08-15 20:12:32 +00:00
parent 3b90668238
commit 037df49096
11 changed files with 121 additions and 78 deletions

View File

@ -12,9 +12,7 @@ RunStart
TeeterBack
TeeterFront
Swipe
DeathForwards
DeathTar
DeathDry
balloonJump
blowbubble
FireEnd
@ -37,3 +35,5 @@ IdleZorro
Celebrate
IdleBlink
Electrocuted
DeathBounce

View File

@ -10,7 +10,6 @@ Jump
TeeterBack
TeeterFront
Walk
DeathForwards
DeathTar
GetHit
CrouchDown
@ -18,4 +17,5 @@ CrouchUp
LookUp
Celebrate
IdleBlink
Electrocuted
Electrocuted
DeathBounce

View File

@ -13,7 +13,6 @@ TeeterBack
TeeterFront
Swipe
DeathTar
DeathForwards
GetHit
CrouchDown
CrouchUp
@ -22,4 +21,5 @@ IdleWeapon
IdleNet
Celebrate
IdleBlink
Electrocuted
Electrocuted
DeathBounce

View File

@ -14,7 +14,6 @@ RunStart
TeeterBack
TeeterFront
DeathTar
DeathForwards
GetHit
CrouchDown
CrouchUp
@ -22,4 +21,5 @@ LookUp
IdleWeapon
Celebrate
IdleBlink
Electrocuted
Electrocuted
DeathBounce

View File

@ -1,4 +1,3 @@
ButtBounceEnd
ButtBounceStart
Fall
@ -13,7 +12,6 @@ RunStart
TeeterBack
TeeterFront
Swipe
DeathForwards
DeathTar
GetHit
CrouchDown
@ -22,4 +20,5 @@ LookUp
IdleWeapon
Celebrate
IdleBlink
Electrocuted
Electrocuted
DeathBounce

View File

@ -14,11 +14,11 @@ RunStop
RunStart
TeeterBack
TeeterFront
DeathForwards
DeathTar
GetHit
CrouchDown
CrouchUp
Celebrate
IdleBlink
Electrocuted
Electrocuted
DeathBounce

View File

@ -94,9 +94,7 @@ static const char *s_animNames[NUM_ANIM_SPONGEBOB]=
"ANIM_SPONGEBOB_TEETERBACK",
"ANIM_SPONGEBOB_TEETERFRONT",
"ANIM_SPONGEBOB_SWIPE",
"ANIM_SPONGEBOB_DEATHFORWARDS",
"ANIM_SPONGEBOB_DEATHTAR",
"ANIM_SPONGEBOB_DEATHDRY",
"ANIM_SPONGEBOB_BALLOONJUMP",
"ANIM_SPONGEBOB_BLOWBUBBLE",
"ANIM_SPONGEBOB_FIREEND",
@ -118,6 +116,7 @@ static const char *s_animNames[NUM_ANIM_SPONGEBOB]=
"ANIM_SPONGEBOB_CELEBRATE",
"ANIM_SPONGEBOB_IDLEBLINK",
"ANIM_SPONGEBOB_ELECTROCUTED",
"ANIM_SPONGEBOB_DEATHBOUNCE",
};

View File

@ -90,6 +90,10 @@
#include "gfx\sprbank.h"
#endif
#ifndef __GFX_OTPOS_H__
#include "gfx\otpos.h"
#endif
#ifndef __PLATFORM_PLATFORM_H__
#include "platform\platform.h"
#endif
@ -334,9 +338,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_NET_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
ANIM_SPONGEBOB_NET_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
ANIM_SPONGEBOB_NET_SWIPE, // ANIM_SPONGEBOB_SWIPE,
ANIM_SPONGEBOB_NET_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS,
ANIM_SPONGEBOB_NET_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
-1, // ANIM_SPONGEBOB_FIREEND,
@ -358,6 +360,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_NET_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE,
ANIM_SPONGEBOB_NET_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK,
ANIM_SPONGEBOB_NET_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_NET_DEATHBOUNCE, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
// PLAYER_ADDON_CORALBLOWER,
@ -376,9 +379,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_CORALBLOWER_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
ANIM_SPONGEBOB_CORALBLOWER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
-1, // ANIM_SPONGEBOB_SWIPE,
ANIM_SPONGEBOB_CORALBLOWER_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS,
ANIM_SPONGEBOB_CORALBLOWER_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
ANIM_SPONGEBOB_CORALBLOWER_FIREEND, // ANIM_SPONGEBOB_FIREEND,
@ -400,6 +401,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_CORALBLOWER_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE,
ANIM_SPONGEBOB_CORALBLOWER_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK,
ANIM_SPONGEBOB_CORALBLOWER_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_CORALBLOWER_DEATHBOUNCE, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
// PLAYER_ADDON_JELLYLAUNCHER,
@ -418,9 +420,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_JELLYLAUNCHER_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
ANIM_SPONGEBOB_JELLYLAUNCHER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
-1, // ANIM_SPONGEBOB_SWIPE,
ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS,
ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
ANIM_SPONGEBOB_JELLYLAUNCHER_FIREEND, // ANIM_SPONGEBOB_FIREEND,
@ -442,6 +442,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_JELLYLAUNCHER_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE,
ANIM_SPONGEBOB_JELLYLAUNCHER_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK,
ANIM_SPONGEBOB_JELLYLAUNCHER_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHBOUNCE, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
// PLAYER_ADDON_BUBBLEWAND,
@ -460,9 +461,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_WAND_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
ANIM_SPONGEBOB_WAND_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
-1, // ANIM_SPONGEBOB_SWIPE,
ANIM_SPONGEBOB_WAND_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS,
ANIM_SPONGEBOB_WAND_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
ANIM_SPONGEBOB_WAND_BLOWBUBBLE, // ANIM_SPONGEBOB_BLOWBUBBLE,
-1, // ANIM_SPONGEBOB_FIREEND,
@ -484,6 +483,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_WAND_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE,
ANIM_SPONGEBOB_WAND_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK,
ANIM_SPONGEBOB_WAND_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_WAND_DEATHBOUNCE, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
// PLAYER_ADDON_JELLYFISHINNET
@ -502,9 +502,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
ANIM_SPONGEBOB_JELLYFISH_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
ANIM_SPONGEBOB_JELLYFISH_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
ANIM_SPONGEBOB_JELLYFISH_SWIPE, // ANIM_SPONGEBOB_SWIPE,
ANIM_SPONGEBOB_JELLYFISH_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS,
ANIM_SPONGEBOB_JELLYFISH_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
-1, // ANIM_SPONGEBOB_FIREEND,
@ -525,7 +523,8 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
-1, // ANIM_SPONGEBOB_IDLEZORRO,
ANIM_SPONGEBOB_JELLYFISH_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE,
ANIM_SPONGEBOB_JELLYFISH_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK,
ANIM_SPONGEBOB_JELLYFISH_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_JELLYFISH_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED,
ANIM_SPONGEBOB_JELLYFISH_DEATHBOUNCE, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
// PLAYER_ADDON_GLOVE
@ -544,9 +543,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
-1, // ANIM_SPONGEBOB_TEETERBACK,
-1, // ANIM_SPONGEBOB_TEETERFRONT,
-1, // ANIM_SPONGEBOB_SWIPE,
-1, // ANIM_SPONGEBOB_DEATHFORWARDS,
-1, // ANIM_SPONGEBOB_DEATHTAR,
-1, // ANIM_SPONGEBOB_DEATHDRY
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
-1, // ANIM_SPONGEBOB_FIREEND,
@ -568,6 +565,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
-1, // ANIM_SPONGEBOB_CELEBRATE,
-1, // ANIM_SPONGEBOB_IDLEBLINK,
-1, // ANIM_SPONGEBOB_ELECTROCUTED,
-1, // ANIM_SPONGEBOB_DEATHBOUNCE,
},
};
@ -2004,6 +2002,8 @@ void CPlayer::respawn()
m_canExitLevel=false;
m_teleportPending=false;
setSBOTPos(OTPOS__ACTOR_POS);
}
/*----------------------------------------------------------------------
@ -2384,6 +2384,34 @@ void CPlayer::dieYouPorousFreak(DEATH_TYPE _deathType)
}
/*----------------------------------------------------------------------
Function:
Purpose: When SB dies and falls off the screen, he needs to be drawn in
front of the level - hence this
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayer::setSBOTPosToFront()
{
setSBOTPos(0);
}
void CPlayer::setSBOTPos(int _ot)
{
int i;
for(i=0;i<NUM_PLAYER_ADDONS;i++)
{
if(s_addonActorGfx[i])
{
s_addonActorGfx[i]->SetOtPos(_ot);
}
}
m_actorGfx->SetOtPos(_ot);
}
/*----------------------------------------------------------------------
Function:
Purpose:

View File

@ -364,6 +364,11 @@ public:
DEATH_TYPE getDeathType() {return m_deathType;}
void dieYouPorousFreak(DEATH_TYPE _deathType=DEATHTYPE__NORMAL);
void setSBOTPosToFront();
private:
void setSBOTPos(int _ot);
private:
int m_numSpatulasHeld;
int m_spatulaWarningTimer;

View File

@ -53,8 +53,6 @@
Vars
---- */
static int anim=0;
/*----------------------------------------------------------------------
Function:
Purpose:
@ -69,19 +67,21 @@ void CPlayerModeDead::enter()
{
default:
case DEATHTYPE__NORMAL:
m_deathAnim=ANIM_SPONGEBOB_DEATHFORWARDS;
break;
case DEATHTYPE__DRYUP:
m_deathAnim=ANIM_SPONGEBOB_DEATHDRY;
break;
case DEATHTYPE__SQUASH:
m_deathAnim=ANIM_SPONGEBOB_DEATHFORWARDS;
m_deathAnim=ANIM_SPONGEBOB_DEATHBOUNCE;
m_deathMovementType=BOUNCE_OFF_SCREEN;
m_bounceVelocity.vx=BOUNCE_INITIALX*m_player->getFacing();
m_bounceVelocity.vy=BOUNCE_INITIALY;
m_player->setSBOTPosToFront();
break;
case DEATHTYPE__LIQUID:
m_deathAnim=ANIM_SPONGEBOB_DEATHTAR;
m_deathMovementType=STAY_STILL;
break;
case DEATHTYPE__FALL_TO_DEATH:
m_deathAnim=-1;
m_deathMovementType=FALL_TO_DEATH;
break;
}
@ -126,7 +126,44 @@ void CPlayerModeDead::think()
if(m_player->getPos().vy<(GameScene.GetLevel().getMapHeight()+4)*16)
{
m_player->moveVertical(5);
if(m_deathMovementType==FALL_TO_DEATH)
{
m_player->moveVertical(5);
}
else if(m_deathMovementType==BOUNCE_OFF_SCREEN)
{
DVECTOR pos=m_player->getPos();
pos.vx+=m_bounceVelocity.vx>>BOUNCE_VELOCITY_SHIFT;
pos.vy+=m_bounceVelocity.vy>>BOUNCE_VELOCITY_SHIFT;
if(pos.vy<0)pos.vy=0;
m_player->setPos(pos);
if(m_bounceVelocity.vy<BOUNCE_MAXY)
{
m_bounceVelocity.vy+=BOUNCE_MOVEY;
if(m_bounceVelocity.vy>BOUNCE_MAXY)
{
m_bounceVelocity.vy=BOUNCE_MAXY;
}
}
if(m_bounceVelocity.vx<0)
{
m_bounceVelocity.vx+=BOUNCE_MOVEX;
if(m_bounceVelocity.vx>0)
{
m_bounceVelocity.vx=0;
}
}
else if(m_bounceVelocity.vx>0)
{
m_bounceVelocity.vx-=BOUNCE_MOVEX;
if(m_bounceVelocity.vx<0)
{
m_bounceVelocity.vx=0;
}
}
}
}
if(!m_killed)
@ -145,43 +182,5 @@ void CPlayerModeDead::think()
}
}
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
/*
void CPlayerModeDead::render(DVECTOR *_pos)
{
DVECTOR deadSbPos;
deadSbPos=*_pos;
deadSbPos.vy-=m_deadTime;
m_player->renderSb(&deadSbPos,ANIM_SPONGEBOB_DEATHANGLE,0);
}
*/
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CPlayerModeDead::fall()
{
/*
m_yVelocity+=getPlayerMetrics()->m_metric[DEFAULT_PLAYER_PLAYER_GRAVITY];
if(m_yVelocity>=metrics->m_metric[DEFAULT_PLAYER_TERMINAL_VELOCITY]<<VELOCITY_SHIFT)
{
m_yVelocity=metrics->m_metric[DEFAULT_PLAYER_TERMINAL_VELOCITY]<<VELOCITY_SHIFT;
}
*/
}
/*===========================================================================
end */

View File

@ -47,14 +47,27 @@ private:
{
DEATH_DELAY=1*60, // Can't force a respawn for this long
DEATH_TIMEOUT=4*60, // SB respawns automatically after this long
BOUNCE_INITIALX=30,
BOUNCE_MOVEX=2,
BOUNCE_INITIALY=-20,
BOUNCE_MAXY=50,
BOUNCE_MOVEY=1,
BOUNCE_VELOCITY_SHIFT=2,
};
enum
{
FALL_TO_DEATH,
BOUNCE_OFF_SCREEN,
STAY_STILL,
};
int m_deadTime;
int m_deathAnim;
void fall();
int m_yVelocity;
int m_deathMovementType;
int m_killed;
DVECTOR m_bounceVelocity;
};