This commit is contained in:
Paul 2001-05-10 21:32:18 +00:00
parent 58756ef755
commit 4c5d514e54
2 changed files with 84 additions and 22 deletions

View file

@ -120,6 +120,10 @@
#include <ACTOR_SPONGEBOB_JELLYFISH_Anim.h> #include <ACTOR_SPONGEBOB_JELLYFISH_Anim.h>
#endif #endif
#ifndef __ANIM_SPONGEBOB_GLOVE_HEADER__
#include <ACTOR_SPONGEBOB_GLOVE_Anim.h>
#endif
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
Tyepdefs && Defines Tyepdefs && Defines
@ -263,7 +267,7 @@ pint ledgeShift=1;
pint cammove=2; pint cammove=2;
pint waterDrainSpeed=4; pint waterDrainSpeed=4;
pint waterSoakUpSpeed=20; pint waterSoakUpSpeed=40;
@ -276,6 +280,7 @@ CActorGfx *s_addonActorGfx[NUM_PLAYER_ADDONS]=
NULL, // PLAYER_ADDON_GLASSES NULL, // PLAYER_ADDON_GLASSES
NULL, // PLAYER_ADDON_BUBBLEWAND NULL, // PLAYER_ADDON_BUBBLEWAND
NULL, // PLAYER_ADDON_JELLYFISHINNET NULL, // PLAYER_ADDON_JELLYFISHINNET
NULL, // PLAYER_ADDON_GLOVE
}; };
FileEquate s_addonActorPoolNames[NUM_PLAYER_ADDONS]= FileEquate s_addonActorPoolNames[NUM_PLAYER_ADDONS]=
{ {
@ -285,6 +290,7 @@ FileEquate s_addonActorPoolNames[NUM_PLAYER_ADDONS]=
ACTORS_SPONGEBOB_GLASSES_SBK, // PLAYER_ADDON_GLASSES ACTORS_SPONGEBOB_GLASSES_SBK, // PLAYER_ADDON_GLASSES
(FileEquate)-1, // PLAYER_ADDON_BUBBLEWAND (FileEquate)-1, // PLAYER_ADDON_BUBBLEWAND
ACTORS_SPONGEBOB_JELLYFISH_SBK, // PLAYER_ADDON_JELLYFISHINNET ACTORS_SPONGEBOB_JELLYFISH_SBK, // PLAYER_ADDON_JELLYFISHINNET
ACTORS_SPONGEBOB_GLOVE_SBK, // PLAYER_ADDON_GLOVE
}; };
PLAYER_ADDONS s_addonNumbers[NUM_PLAYERMODES]= PLAYER_ADDONS s_addonNumbers[NUM_PLAYERMODES]=
{ {
@ -468,6 +474,34 @@ static s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
-1, // ANIM_SPONGEBOB_WALK, -1, // ANIM_SPONGEBOB_WALK,
-1, // ANIM_SPONGEBOB_KARATE, -1, // ANIM_SPONGEBOB_KARATE,
}, },
// PLAYER_ADDON_GLOVE
{
-1, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
-1, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
-1, // ANIM_SPONGEBOB_FALL,
-1, // ANIM_SPONGEBOB_GETUP,
-1, // ANIM_SPONGEBOB_HITGROUND,
-1, // ANIM_SPONGEBOB_IDLEBREATH,
-1, // ANIM_SPONGEBOB_IDLEWIND,
-1, // ANIM_SPONGEBOB_JUMPEND,
-1, // ANIM_SPONGEBOB_JUMP,
-1, // ANIM_SPONGEBOB_RUN,
-1, // ANIM_SPONGEBOB_RUNSTOP,
-1, // ANIM_SPONGEBOB_RUNSTART,
-1, // ANIM_SPONGEBOB_SOAKUP,
-1, // ANIM_SPONGEBOB_TEETERBACK,
-1, // ANIM_SPONGEBOB_TEETERFRONT,
-1, // ANIM_SPONGEBOB_SWIPE,
-1, // ANIM_SPONGEBOB_DEATHSPIN,
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
-1, // ANIM_SPONGEBOB_FIREEND,
-1, // ANIM_SPONGEBOB_FIRESTART,
-1, // ANIM_SPONGEBOB_IDLEWEAPON,
-1, // ANIM_SPONGEBOB_WALK,
ANIM_SPONGEBOB_GLOVE_KARATE, // ANIM_SPONGEBOB_KARATE,
},
}; };
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
@ -521,13 +555,13 @@ m_animFrame=0;
m_divingHelmet=false; m_divingHelmet=false;
setIsInWater(true); setIsInWater(true);
//#ifdef __USER_paul__ // Always ( cept for one level ) need this
registerAddon(PLAYER_ADDON_NET); registerAddon(PLAYER_ADDON_GLOVE);
registerAddon(PLAYER_ADDON_CORALBLOWER); // registerAddon(PLAYER_ADDON_NET);
registerAddon(PLAYER_ADDON_JELLYLAUNCHER); // registerAddon(PLAYER_ADDON_CORALBLOWER);
registerAddon(PLAYER_ADDON_GLASSES); // registerAddon(PLAYER_ADDON_JELLYLAUNCHER);
registerAddon(PLAYER_ADDON_BUBBLEWAND); // registerAddon(PLAYER_ADDON_GLASSES);
//#endif // registerAddon(PLAYER_ADDON_BUBBLEWAND);
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
@ -1403,8 +1437,9 @@ void CPlayer::renderSb(DVECTOR *_pos,int _animNo,int _animFrame)
if(addonAnimNo!=-1) if(addonAnimNo!=-1)
{ {
CActorGfx *addonGfx=s_addonActorGfx[addon]; CActorGfx *addonGfx=s_addonActorGfx[addon];
if(addonGfx&& if(addonGfx)
_animFrame>=addonGfx->getFrameCount(addonAnimNo)) {
if(_animFrame>=addonGfx->getFrameCount(addonAnimNo))
{ {
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo)); PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo));
} }
@ -1415,6 +1450,7 @@ void CPlayer::renderSb(DVECTOR *_pos,int _animNo,int _animFrame)
} }
} }
} }
}
// Render glasses addon? // Render glasses addon?
if(isWearingGlasses()) if(isWearingGlasses())
@ -1423,6 +1459,8 @@ void CPlayer::renderSb(DVECTOR *_pos,int _animNo,int _animFrame)
if(addonAnimNo!=-1) if(addonAnimNo!=-1)
{ {
CActorGfx *addonGfx=s_addonActorGfx[PLAYER_ADDON_GLASSES]; CActorGfx *addonGfx=s_addonActorGfx[PLAYER_ADDON_GLASSES];
if(addonGfx)
{
if(_animFrame>=addonGfx->getFrameCount(addonAnimNo)) if(_animFrame>=addonGfx->getFrameCount(addonAnimNo))
{ {
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB GLASSES ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo)); PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB GLASSES ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo));
@ -1434,6 +1472,29 @@ void CPlayer::renderSb(DVECTOR *_pos,int _animNo,int _animFrame)
} }
} }
} }
}
// Render glove addon?
if(m_currentMode==PLAYER_MODE_FULLUNARMED)
{
s8 addonAnimNo=s_animMapNet[PLAYER_ADDON_GLOVE][_animNo];
if(addonAnimNo!=-1)
{
CActorGfx *addonGfx=s_addonActorGfx[PLAYER_ADDON_GLOVE];
if(addonGfx)
{
if(_animFrame>=addonGfx->getFrameCount(addonAnimNo))
{
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB GLASSES ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo));
}
else
{
ft4=addonGfx->Render(*_pos,addonAnimNo,_animFrame,m_facing==FACING_RIGHT?0:1);
setSemiTrans(ft4,trans);
}
}
}
}
// Render SB // Render SB
ft4=m_actorGfx->Render(*_pos,_animNo,_animFrame,m_facing==FACING_RIGHT?0:1); ft4=m_actorGfx->Render(*_pos,_animNo,_animFrame,m_facing==FACING_RIGHT?0:1);

View file

@ -90,6 +90,7 @@ typedef enum
PLAYER_ADDON_GLASSES, PLAYER_ADDON_GLASSES,
PLAYER_ADDON_BUBBLEWAND, PLAYER_ADDON_BUBBLEWAND,
PLAYER_ADDON_JELLYFISHINNET, PLAYER_ADDON_JELLYFISHINNET,
PLAYER_ADDON_GLOVE,
NUM_PLAYER_ADDONS, NUM_PLAYER_ADDONS,
NO_ADDON, NO_ADDON,
@ -159,7 +160,7 @@ public:
MAX_HEALTH=5, MAX_HEALTH=5,
MAX_LIVES=99, MAX_LIVES=99,
WATERLEVELSHIFT=4, WATERLEVELSHIFT=5,
WATERMAXHEALTH=(255<<WATERLEVELSHIFT), WATERMAXHEALTH=(255<<WATERLEVELSHIFT),
WATERHEALTHPART=WATERMAXHEALTH/(MAX_HEALTH+1), WATERHEALTHPART=WATERMAXHEALTH/(MAX_HEALTH+1),
}; };