This commit is contained in:
parent
313762dc1a
commit
43917f351c
2 changed files with 134 additions and 51 deletions
|
@ -108,14 +108,17 @@
|
||||||
#include <ACTOR_SPONGEBOB_JELLYLAUNCHER_Anim.h>
|
#include <ACTOR_SPONGEBOB_JELLYLAUNCHER_Anim.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#ifndef __ANIM_SPONGEBOB_GLASSES_HEADER__
|
#ifndef __ANIM_SPONGEBOB_GLASSES_HEADER__
|
||||||
//#include <ACTOR_SPONGEBOB_GLASSES_Anim.h>
|
#include <ACTOR_SPONGEBOB_GLASSES_Anim.h>
|
||||||
//#endif
|
#endif
|
||||||
|
|
||||||
//#ifndef __ANIM_SPONGEBOB_BUBBLEWAND_HEADER__
|
//#ifndef __ANIM_SPONGEBOB_BUBBLEWAND_HEADER__
|
||||||
//#include <ACTOR_SPONGEBOB_BUBBLEWAND_Anim.h>
|
//#include <ACTOR_SPONGEBOB_BUBBLEWAND_Anim.h>
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
#ifndef __ANIM_SPONGEBOB_JELLYFISH_HEADER__
|
||||||
|
#include <ACTOR_SPONGEBOB_JELLYFISH_Anim.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
@ -272,14 +275,16 @@ CActorGfx *s_addonActorGfx[NUM_PLAYER_ADDONS]=
|
||||||
NULL, // PLAYER_ADDON_JELLYLAUNCHER
|
NULL, // PLAYER_ADDON_JELLYLAUNCHER
|
||||||
NULL, // PLAYER_ADDON_GLASSES
|
NULL, // PLAYER_ADDON_GLASSES
|
||||||
NULL, // PLAYER_ADDON_BUBBLEWAND
|
NULL, // PLAYER_ADDON_BUBBLEWAND
|
||||||
|
NULL, // PLAYER_ADDON_JELLYFISHINNET
|
||||||
};
|
};
|
||||||
FileEquate s_addonActorPoolNames[NUM_PLAYER_ADDONS]=
|
FileEquate s_addonActorPoolNames[NUM_PLAYER_ADDONS]=
|
||||||
{
|
{
|
||||||
ACTORS_SPONGEBOB_NET_SBK, // PLAYER_ADDON_NET
|
ACTORS_SPONGEBOB_NET_SBK, // PLAYER_ADDON_NET
|
||||||
ACTORS_SPONGEBOB_CORALBLOWER_SBK, // PLAYER_ADDON_CORALBLOWER
|
ACTORS_SPONGEBOB_CORALBLOWER_SBK, // PLAYER_ADDON_CORALBLOWER
|
||||||
ACTORS_SPONGEBOB_JELLYLAUNCHER_SBK, // PLAYER_ADDON_JELLYLAUNCHER
|
ACTORS_SPONGEBOB_JELLYLAUNCHER_SBK, // PLAYER_ADDON_JELLYLAUNCHER
|
||||||
(FileEquate)-1, // 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
|
||||||
};
|
};
|
||||||
PLAYER_ADDONS s_addonNumbers[NUM_PLAYERMODES]=
|
PLAYER_ADDONS s_addonNumbers[NUM_PLAYERMODES]=
|
||||||
{
|
{
|
||||||
|
@ -332,13 +337,13 @@ static s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_GETUP, // ANIM_SPONGEBOB_GETUP,
|
ANIM_SPONGEBOB_CORALBLOWER_GETUP, // ANIM_SPONGEBOB_GETUP,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_HITGROUND, // ANIM_SPONGEBOB_HITGROUND,
|
ANIM_SPONGEBOB_CORALBLOWER_HITGROUND, // ANIM_SPONGEBOB_HITGROUND,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_IDLEBREATH, // ANIM_SPONGEBOB_IDLEBREATH,
|
ANIM_SPONGEBOB_CORALBLOWER_IDLEBREATH, // ANIM_SPONGEBOB_IDLEBREATH,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_IDLEWIND, // ANIM_SPONGEBOB_IDLEWIND,
|
-1, // ANIM_SPONGEBOB_IDLEWIND,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_JUMPEND, // ANIM_SPONGEBOB_JUMPEND,
|
ANIM_SPONGEBOB_CORALBLOWER_JUMPEND, // ANIM_SPONGEBOB_JUMPEND,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_JUMP, // ANIM_SPONGEBOB_JUMP,
|
ANIM_SPONGEBOB_CORALBLOWER_JUMP, // ANIM_SPONGEBOB_JUMP,
|
||||||
-1, // ANIM_SPONGEBOB_RUN,
|
-1, // ANIM_SPONGEBOB_RUN,
|
||||||
-1, // ANIM_SPONGEBOB_RUNSTOP,
|
-1, // ANIM_SPONGEBOB_RUNSTOP,
|
||||||
-1, // ANIM_SPONGEBOB_RUNSTART,
|
-1, // ANIM_SPONGEBOB_RUNSTART,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_SOAKUP, // ANIM_SPONGEBOB_SOAKUP,
|
-1, // ANIM_SPONGEBOB_SOAKUP,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
|
ANIM_SPONGEBOB_CORALBLOWER_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
|
ANIM_SPONGEBOB_CORALBLOWER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
|
||||||
-1, // ANIM_SPONGEBOB_SWIPE,
|
-1, // ANIM_SPONGEBOB_SWIPE,
|
||||||
|
@ -347,7 +352,7 @@ static s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
|
||||||
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
|
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_FIREEND, // ANIM_SPONGEBOB_FIREEND,
|
ANIM_SPONGEBOB_CORALBLOWER_FIREEND, // ANIM_SPONGEBOB_FIREEND,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_FIRESTART, // ANIM_SPONGEBOB_FIRESTART,
|
ANIM_SPONGEBOB_CORALBLOWER_FIRESTART, // ANIM_SPONGEBOB_FIRESTART,
|
||||||
-1, // ANIM_SPONGEBOB_IDLEWEAPON,
|
ANIM_SPONGEBOB_CORALBLOWER_IDLEWEAPON, // ANIM_SPONGEBOB_IDLEWEAPON,
|
||||||
ANIM_SPONGEBOB_CORALBLOWER_WALK, // ANIM_SPONGEBOB_WALK,
|
ANIM_SPONGEBOB_CORALBLOWER_WALK, // ANIM_SPONGEBOB_WALK,
|
||||||
-1, // ANIM_SPONGEBOB_KARATE,
|
-1, // ANIM_SPONGEBOB_KARATE,
|
||||||
},
|
},
|
||||||
|
@ -382,6 +387,34 @@ static s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
|
||||||
|
|
||||||
// PLAYER_ADDON_GLASSES,
|
// PLAYER_ADDON_GLASSES,
|
||||||
{
|
{
|
||||||
|
ANIM_SPONGEBOB_GLASSES_BUTTBOUNCEEND, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_BUTTBOUNCESTART, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_FALL, // ANIM_SPONGEBOB_FALL,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_GETUP, // ANIM_SPONGEBOB_GETUP,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_HITGROUND, // ANIM_SPONGEBOB_HITGROUND,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_IDLEBREATH, // ANIM_SPONGEBOB_IDLEBREATH,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_IDLEWIND, // ANIM_SPONGEBOB_IDLEWIND,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_JUMPEND, // ANIM_SPONGEBOB_JUMPEND,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_JUMP, // ANIM_SPONGEBOB_JUMP,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_RUN, // ANIM_SPONGEBOB_RUN,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_RUNSTOP, // ANIM_SPONGEBOB_RUNSTOP,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_RUNSTART, // ANIM_SPONGEBOB_RUNSTART,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_SOAKUP, // ANIM_SPONGEBOB_SOAKUP,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_SWIPE, // ANIM_SPONGEBOB_SWIPE,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_DEATHSPIN, // ANIM_SPONGEBOB_DEATHSPIN,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_BALLOONJUMP, // ANIM_SPONGEBOB_BALLOONJUMP,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_BLOWBUBBLE, // ANIM_SPONGEBOB_BLOWBUBBLE,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_FIREEND, // ANIM_SPONGEBOB_FIREEND,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_FIRESTART, // ANIM_SPONGEBOB_FIRESTART,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_IDLEWEAPON, // ANIM_SPONGEBOB_IDLEWEAPON,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_WALK, // ANIM_SPONGEBOB_WALK,
|
||||||
|
ANIM_SPONGEBOB_GLASSES_KARATE, // ANIM_SPONGEBOB_KARATE,
|
||||||
|
},
|
||||||
|
|
||||||
|
// PLAYER_ADDON_BUBBLEWAND,
|
||||||
|
{
|
||||||
-1, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
|
-1, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
|
||||||
-1, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
|
-1, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
|
||||||
-1, // ANIM_SPONGEBOB_FALL,
|
-1, // ANIM_SPONGEBOB_FALL,
|
||||||
|
@ -408,25 +441,25 @@ static s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]=
|
||||||
-1, // ANIM_SPONGEBOB_KARATE,
|
-1, // ANIM_SPONGEBOB_KARATE,
|
||||||
},
|
},
|
||||||
|
|
||||||
// PLAYER_ADDON_BUBBLEWAND,
|
// PLAYER_ADDON_JELLYFISHINNET
|
||||||
{
|
{
|
||||||
-1, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
|
ANIM_SPONGEBOB_JELLYFISH_BUTTBOUNCEEND, // ANIM_SPONGEBOB_BUTTBOUNCEEND,
|
||||||
-1, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
|
ANIM_SPONGEBOB_JELLYFISH_BUTTBOUNCESTART, // ANIM_SPONGEBOB_BUTTBOUNCESTART,
|
||||||
-1, // ANIM_SPONGEBOB_FALL,
|
ANIM_SPONGEBOB_JELLYFISH_FALL, // ANIM_SPONGEBOB_FALL,
|
||||||
-1, // ANIM_SPONGEBOB_GETUP,
|
ANIM_SPONGEBOB_JELLYFISH_GETUP, // ANIM_SPONGEBOB_GETUP,
|
||||||
-1, // ANIM_SPONGEBOB_HITGROUND,
|
ANIM_SPONGEBOB_JELLYFISH_HITGROUND, // ANIM_SPONGEBOB_HITGROUND,
|
||||||
-1, // ANIM_SPONGEBOB_IDLEBREATH,
|
ANIM_SPONGEBOB_JELLYFISH_IDLEBREATH, // ANIM_SPONGEBOB_IDLEBREATH,
|
||||||
-1, // ANIM_SPONGEBOB_IDLEWIND,
|
ANIM_SPONGEBOB_JELLYFISH_IDLEWIND, // ANIM_SPONGEBOB_IDLEWIND,
|
||||||
-1, // ANIM_SPONGEBOB_JUMPEND,
|
ANIM_SPONGEBOB_JELLYFISH_JUMPEND, // ANIM_SPONGEBOB_JUMPEND,
|
||||||
-1, // ANIM_SPONGEBOB_JUMP,
|
ANIM_SPONGEBOB_JELLYFISH_JUMP, // ANIM_SPONGEBOB_JUMP,
|
||||||
-1, // ANIM_SPONGEBOB_RUN,
|
ANIM_SPONGEBOB_JELLYFISH_RUN, // ANIM_SPONGEBOB_RUN,
|
||||||
-1, // ANIM_SPONGEBOB_RUNSTOP,
|
ANIM_SPONGEBOB_JELLYFISH_RUNSTOP, // ANIM_SPONGEBOB_RUNSTOP,
|
||||||
-1, // ANIM_SPONGEBOB_RUNSTART,
|
ANIM_SPONGEBOB_JELLYFISH_RUNSTART, // ANIM_SPONGEBOB_RUNSTART,
|
||||||
-1, // ANIM_SPONGEBOB_SOAKUP,
|
ANIM_SPONGEBOB_JELLYFISH_SOAKUP, // ANIM_SPONGEBOB_SOAKUP,
|
||||||
-1, // ANIM_SPONGEBOB_TEETERBACK,
|
ANIM_SPONGEBOB_JELLYFISH_TEETERBACK, // ANIM_SPONGEBOB_TEETERBACK,
|
||||||
-1, // ANIM_SPONGEBOB_TEETERFRONT,
|
ANIM_SPONGEBOB_JELLYFISH_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT,
|
||||||
-1, // ANIM_SPONGEBOB_SWIPE,
|
ANIM_SPONGEBOB_JELLYFISH_SWIPE, // ANIM_SPONGEBOB_SWIPE,
|
||||||
-1, // ANIM_SPONGEBOB_DEATHSPIN,
|
ANIM_SPONGEBOB_JELLYFISH_DEATHSPIN, // ANIM_SPONGEBOB_DEATHSPIN,
|
||||||
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
|
-1, // ANIM_SPONGEBOB_BALLOONJUMP,
|
||||||
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
|
-1, // ANIM_SPONGEBOB_BLOWBUBBLE,
|
||||||
-1, // ANIM_SPONGEBOB_FIREEND,
|
-1, // ANIM_SPONGEBOB_FIREEND,
|
||||||
|
@ -846,6 +879,14 @@ m_fontBank->print(stateDebugX,stateDebugY,buf);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __USER_paul__
|
#ifdef __USER_paul__
|
||||||
|
if(PadGetDown(0)&PAD_R1)
|
||||||
|
{
|
||||||
|
DVECTOR clear={0,0};
|
||||||
|
for(int i=0;i<NUM_LASTPOS;i++)
|
||||||
|
{
|
||||||
|
lastpos[i]=clear;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(Pos.vx!=lastpos[lastposnum].vx||Pos.vy!=lastpos[lastposnum].vy)
|
if(Pos.vx!=lastpos[lastposnum].vx||Pos.vy!=lastpos[lastposnum].vy)
|
||||||
{
|
{
|
||||||
lastposnum=(lastposnum+1)%NUM_LASTPOS;
|
lastposnum=(lastposnum+1)%NUM_LASTPOS;
|
||||||
|
@ -1013,6 +1054,28 @@ int CPlayer::getHeightFromGround(int _x,int _y,int _maxHeight)
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
int CPlayer::getHeightFromPlatformNoGround(int _x,int _y,int _maxHeight)
|
||||||
|
{
|
||||||
|
CThing *platform;
|
||||||
|
int height;
|
||||||
|
|
||||||
|
platform=isOnPlatform();
|
||||||
|
ASSERT(platform);
|
||||||
|
height=((CNpcPlatform*)platform)->getHeightFromPlatformAtPosition(_x,_y);
|
||||||
|
if(height>_maxHeight)height=_maxHeight;
|
||||||
|
else if(height<-_maxHeight)height=-_maxHeight;
|
||||||
|
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
|
@ -1333,37 +1396,41 @@ void CPlayer::renderSb(DVECTOR *_pos,int _animNo,int _animFrame)
|
||||||
addon=s_addonNumbers[m_currentMode];
|
addon=s_addonNumbers[m_currentMode];
|
||||||
if(addon!=NO_ADDON)
|
if(addon!=NO_ADDON)
|
||||||
{
|
{
|
||||||
s8 addonAnimFrame=s_animMapNet[addon][_animNo];
|
s8 addonAnimNo=s_animMapNet[addon][_animNo];
|
||||||
if(addonAnimFrame!=-1)
|
if(addonAnimNo!=-1)
|
||||||
{
|
{
|
||||||
CActorGfx *addonGfx=s_addonActorGfx[addon];
|
CActorGfx *addonGfx=s_addonActorGfx[addon];
|
||||||
if(addonGfx&&
|
if(addonGfx&&
|
||||||
_animFrame>=addonGfx->getFrameCount(addonAnimFrame))
|
_animFrame>=addonGfx->getFrameCount(addonAnimNo))
|
||||||
{
|
{
|
||||||
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB ADDON!");
|
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo));
|
||||||
_animFrame=0;
|
|
||||||
}
|
}
|
||||||
ft4=addonGfx->Render(*_pos,addonAnimFrame,_animFrame,m_facing==FACING_RIGHT?0:1);
|
else
|
||||||
|
{
|
||||||
|
ft4=addonGfx->Render(*_pos,addonAnimNo,_animFrame,m_facing==FACING_RIGHT?0:1);
|
||||||
setSemiTrans(ft4,trans);
|
setSemiTrans(ft4,trans);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Render glasses addon?
|
// Render glasses addon?
|
||||||
if(isWearingGlasses())
|
if(isWearingGlasses())
|
||||||
{
|
{
|
||||||
s8 addonAnimFrame=s_animMapNet[PLAYER_ADDON_GLASSES][_animNo];
|
s8 addonAnimNo=s_animMapNet[PLAYER_ADDON_GLASSES][_animNo];
|
||||||
if(addonAnimFrame!=-1)
|
if(addonAnimNo!=-1)
|
||||||
{
|
{
|
||||||
CActorGfx *addonGfx=s_addonActorGfx[PLAYER_ADDON_GLASSES];
|
CActorGfx *addonGfx=s_addonActorGfx[PLAYER_ADDON_GLASSES];
|
||||||
if(_animFrame>=addonGfx->getFrameCount(addonAnimFrame))
|
if(_animFrame>=addonGfx->getFrameCount(addonAnimNo))
|
||||||
{
|
{
|
||||||
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB GLASSES ADDON!");
|
PAUL_DBGMSG("FRAME OVERRUN ON SPONGEBOB GLASSES ADDON! ( %d vs %d )",m_actorGfx->getFrameCount(_animNo),addonGfx->getFrameCount(addonAnimNo));
|
||||||
_animFrame=0;
|
|
||||||
}
|
}
|
||||||
ft4=addonGfx->Render(*_pos,addonAnimFrame,_animFrame,m_facing==FACING_RIGHT?0:1);
|
else
|
||||||
|
{
|
||||||
|
ft4=addonGfx->Render(*_pos,addonAnimNo,_animFrame,m_facing==FACING_RIGHT?0:1);
|
||||||
setSemiTrans(ft4,trans);
|
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);
|
||||||
|
@ -1711,14 +1778,24 @@ int CPlayer::moveVertical(int _moveDistance)
|
||||||
{
|
{
|
||||||
int colHeightBefore,colHeightAfter;
|
int colHeightBefore,colHeightAfter;
|
||||||
|
|
||||||
// Yes.. Check to see if we're about to hit/go through the ground
|
// Yes.. Check to see if we're about to hit/go through the ground/platform
|
||||||
|
if(!isOnPlatform())
|
||||||
|
{
|
||||||
colHeightBefore=getHeightFromGround(pos.vx,pos.vy,16);
|
colHeightBefore=getHeightFromGround(pos.vx,pos.vy,16);
|
||||||
colHeightAfter=getHeightFromGround(pos.vx,pos.vy+_moveDistance,16);
|
colHeightAfter=getHeightFromGround(pos.vx,pos.vy+_moveDistance,16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
colHeightBefore=getHeightFromPlatformNoGround(pos.vx,pos.vy,16);
|
||||||
|
colHeightAfter=getHeightFromPlatformNoGround(pos.vx,pos.vy+_moveDistance,16);
|
||||||
|
}
|
||||||
|
|
||||||
if(colHeightBefore>=0&&colHeightAfter<=0)
|
if(colHeightBefore>=0&&colHeightAfter<=0)
|
||||||
{
|
{
|
||||||
// About to hit a 'fall to death' block?
|
// About to hit a 'fall to death' block?
|
||||||
if((m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=(7<<COLLISION_TYPE_FLAG_SHIFT))
|
if((m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_DEATH)
|
||||||
{
|
{
|
||||||
|
// No
|
||||||
// Stick at ground level
|
// Stick at ground level
|
||||||
pos.vy+=colHeightAfter+_moveDistance;
|
pos.vy+=colHeightAfter+_moveDistance;
|
||||||
_moveDistance=0;
|
_moveDistance=0;
|
||||||
|
@ -1726,6 +1803,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Yeah!
|
||||||
if(m_currentMode!=PLAYER_MODE_DEAD)
|
if(m_currentMode!=PLAYER_MODE_DEAD)
|
||||||
{
|
{
|
||||||
// Lock the camera, kill the player and let him fall to his death..
|
// Lock the camera, kill the player and let him fall to his death..
|
||||||
|
@ -1735,7 +1813,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else// if(getHeightFromGround(pos.vx,pos.vy+_moveDistance,1))
|
else
|
||||||
{
|
{
|
||||||
// Must be below ground
|
// Must be below ground
|
||||||
// Are we jumping into an impassable block?
|
// Are we jumping into an impassable block?
|
||||||
|
|
|
@ -89,6 +89,7 @@ typedef enum
|
||||||
PLAYER_ADDON_JELLYLAUNCHER,
|
PLAYER_ADDON_JELLYLAUNCHER,
|
||||||
PLAYER_ADDON_GLASSES,
|
PLAYER_ADDON_GLASSES,
|
||||||
PLAYER_ADDON_BUBBLEWAND,
|
PLAYER_ADDON_BUBBLEWAND,
|
||||||
|
PLAYER_ADDON_JELLYFISHINNET,
|
||||||
|
|
||||||
NUM_PLAYER_ADDONS,
|
NUM_PLAYER_ADDONS,
|
||||||
NO_ADDON,
|
NO_ADDON,
|
||||||
|
@ -187,7 +188,9 @@ public:
|
||||||
void setCameraBox(CameraBox _cameraBox);
|
void setCameraBox(CameraBox _cameraBox);
|
||||||
void setRespawnPos(DVECTOR _respawn) {m_respawnPos=_respawn;}
|
void setRespawnPos(DVECTOR _respawn) {m_respawnPos=_respawn;}
|
||||||
|
|
||||||
|
// This isn't funny anymore.. :(
|
||||||
int getHeightFromGround(int _x,int _y,int _maxHeight=32);
|
int getHeightFromGround(int _x,int _y,int _maxHeight=32);
|
||||||
|
int getHeightFromPlatformNoGround(int _x,int _y,int _maxHeight=32);
|
||||||
int getHeightFromGroundNoPlatform(int _x,int _y,int _maxHeight=32);
|
int getHeightFromGroundNoPlatform(int _x,int _y,int _maxHeight=32);
|
||||||
|
|
||||||
void setLedgeLookAhead(int _lookAhead) {m_ledgeLookAhead=_lookAhead;}
|
void setLedgeLookAhead(int _lookAhead) {m_ledgeLookAhead=_lookAhead;}
|
||||||
|
@ -339,6 +342,8 @@ public:
|
||||||
void setIsInWater(int _in) {m_isInWater=_in;}
|
void setIsInWater(int _in) {m_isInWater=_in;}
|
||||||
int getIsInWater() {return m_isInWater;}
|
int getIsInWater() {return m_isInWater;}
|
||||||
|
|
||||||
|
int isHoldingNet() {m_currentMode==PLAYER_MODE_NET;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_glassesFlag;
|
int m_glassesFlag;
|
||||||
int m_squeakyBootsTimer;
|
int m_squeakyBootsTimer;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue