This commit is contained in:
parent
5b785068c2
commit
fa5105d783
96 changed files with 550 additions and 406 deletions
|
@ -596,10 +596,6 @@ void CPlayer::init()
|
|||
m_fontBank->initialise(&standardFont);
|
||||
m_fontBank->setOt(5);
|
||||
|
||||
m_spriteBank=new ("PlayerSprites") SpriteBank();
|
||||
m_spriteBank->load(SPRITES_SPRITES_SPR);
|
||||
|
||||
m_layerCollision=NULL;
|
||||
|
||||
m_actorGfx=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK);
|
||||
|
||||
|
@ -665,7 +661,6 @@ void CPlayer::shutdown()
|
|||
}
|
||||
delete m_actorGfx;
|
||||
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
m_fontBank->dump(); delete m_fontBank;
|
||||
|
||||
CPlayerThing::shutdown();
|
||||
|
@ -1200,10 +1195,10 @@ for(int i=0;i<NUM_LASTPOS;i++)
|
|||
}
|
||||
|
||||
int ygap;
|
||||
ygap=m_spriteBank->getFrameHeader(*frames)->H;
|
||||
ygap=CGameScene::getSpriteBank()->getFrameHeader(*frames)->H;
|
||||
for(i=5;i>0;i--)
|
||||
{
|
||||
ft4=m_spriteBank->printFT4(*frames++,x,y,0,0,0);
|
||||
ft4=CGameScene::getSpriteBank()->printFT4(*frames++,x,y,0,0,0);
|
||||
setSemiTrans(ft4,i>m_health);
|
||||
y+=ygap;
|
||||
}
|
||||
|
@ -1215,11 +1210,11 @@ for(int i=0;i<NUM_LASTPOS;i++)
|
|||
sFrameHdr *fh;
|
||||
int V,W,H,partH;
|
||||
|
||||
ft4=m_spriteBank->printFT4(FRM__WATERHILIGHT,HEALTH_ICONX,HEALTH_ICONY,0,0,0);
|
||||
ft4=CGameScene::getSpriteBank()->printFT4(FRM__WATERHILIGHT,HEALTH_ICONX,HEALTH_ICONY,0,0,0);
|
||||
setSemiTrans(ft4,true);
|
||||
|
||||
fh=m_spriteBank->getFrameHeader(FRM__WATER);
|
||||
ft4=m_spriteBank->printFT4(fh,0,0,0,0,0);
|
||||
fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__WATER);
|
||||
ft4=CGameScene::getSpriteBank()->printFT4(fh,0,0,0,0,0);
|
||||
setSemiTrans(ft4,true);
|
||||
V=fh->V;
|
||||
W=fh->W;
|
||||
|
@ -1230,7 +1225,7 @@ for(int i=0;i<NUM_LASTPOS;i++)
|
|||
ft4->v0=V+(partH);
|
||||
ft4->v1=V+(partH);
|
||||
|
||||
m_spriteBank->printFT4(FRM__WATERMETER,HEALTH_ICONX,HEALTH_ICONY,0,0,0);
|
||||
CGameScene::getSpriteBank()->printFT4(FRM__WATERMETER,HEALTH_ICONX,HEALTH_ICONY,0,0,0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1242,18 +1237,18 @@ for(int i=0;i<NUM_LASTPOS;i++)
|
|||
if(isWearingBoots())
|
||||
{
|
||||
int x,y;
|
||||
sFrameHdr *fh=m_spriteBank->getFrameHeader(FRM__SHOE);
|
||||
sFrameHdr *fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__SHOE);
|
||||
x=itemX-(fh->W/2);
|
||||
y=COLLECTEDITEM_BASEY-(fh->H/2);
|
||||
m_spriteBank->printFT4(fh,x+2,y+2,0,0,0);
|
||||
m_spriteBank->printFT4(fh,x-2,y-2,0,0,0);
|
||||
CGameScene::getSpriteBank()->printFT4(fh,x+2,y+2,0,0,0);
|
||||
CGameScene::getSpriteBank()->printFT4(fh,x-2,y-2,0,0,0);
|
||||
itemX+=COLLECTEDITEM_GAP;
|
||||
}
|
||||
/*
|
||||
if(isWearingDivingHelmet())
|
||||
{
|
||||
sFrameHdr *fh=m_spriteBank->getFrameHeader(FRM__HELMET);
|
||||
m_spriteBank->printFT4(fh,itemX-(fh->W/2),COLLECTEDITEM_BASEY-(fh->H/2),0,0,0);
|
||||
sFrameHdr *fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__HELMET);
|
||||
CGameScene::getSpriteBank()->printFT4(fh,itemX-(fh->W/2),COLLECTEDITEM_BASEY-(fh->H/2),0,0,0);
|
||||
itemX+=COLLECTEDITEM_GAP;
|
||||
}
|
||||
*/
|
||||
|
@ -1291,7 +1286,7 @@ int CPlayer::getHeightFromGround(int _x,int _y,int _maxHeight)
|
|||
{
|
||||
int height;
|
||||
|
||||
height=m_layerCollision->getHeightFromGround(_x,_y,_maxHeight);
|
||||
height=CGameScene::getCollision()->getHeightFromGround(_x,_y,_maxHeight);
|
||||
if(height>=_maxHeight)
|
||||
{
|
||||
CThing *platform;
|
||||
|
@ -1337,7 +1332,7 @@ int CPlayer::getHeightFromPlatformNoGround(int _x,int _y,int _maxHeight)
|
|||
---------------------------------------------------------------------- */
|
||||
int CPlayer::getHeightFromGroundNoPlatform(int _x,int _y,int _maxHeight=32)
|
||||
{
|
||||
return( m_layerCollision->getHeightFromGround(_x,_y,_maxHeight) );
|
||||
return( CGameScene::getCollision()->getHeightFromGround(_x,_y,_maxHeight) );
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -1796,7 +1791,7 @@ int CPlayer::canDoLookAround()
|
|||
void CPlayer::inSoakUpState()
|
||||
{
|
||||
if(isWearingDivingHelmet()&&
|
||||
(m_layerCollision->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER)
|
||||
(CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER)
|
||||
{
|
||||
m_healthWaterLevel+=waterSoakUpSpeed;
|
||||
if(m_healthWaterLevel>WATERMAXHEALTH)
|
||||
|
@ -2096,7 +2091,7 @@ void CPlayer::shove( DVECTOR move )
|
|||
int colHeight;
|
||||
|
||||
// X movement
|
||||
colHeight=m_layerCollision->getHeightFromGround(Pos.vx+move.vx,Pos.vy,5);
|
||||
colHeight=CGameScene::getCollision()->getHeightFromGround(Pos.vx+move.vx,Pos.vy,5);
|
||||
if(colHeight<0)
|
||||
{
|
||||
// Stop at the edge of the obstruction
|
||||
|
@ -2114,7 +2109,7 @@ void CPlayer::shove( DVECTOR move )
|
|||
cx=Pos.vx;
|
||||
for(i=0;i<vx;i++)
|
||||
{
|
||||
if(m_layerCollision->getHeightFromGround(cx,Pos.vy)<0)
|
||||
if(CGameScene::getCollision()->getHeightFromGround(cx,Pos.vy)<0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
@ -2130,7 +2125,7 @@ void CPlayer::shove( DVECTOR move )
|
|||
}
|
||||
|
||||
// Y movement
|
||||
colHeight=m_layerCollision->getHeightFromGround(Pos.vx,Pos.vy+move.vy,5);
|
||||
colHeight=CGameScene::getCollision()->getHeightFromGround(Pos.vx,Pos.vy+move.vy,5);
|
||||
if(colHeight<0)
|
||||
{
|
||||
// Stop at the edge of the obstruction
|
||||
|
@ -2148,7 +2143,7 @@ void CPlayer::shove( DVECTOR move )
|
|||
cy=Pos.vy;
|
||||
for(i=0;i<vy;i++)
|
||||
{
|
||||
if(m_layerCollision->getHeightFromGround(Pos.vx,cy)<0)
|
||||
if(CGameScene::getCollision()->getHeightFromGround(Pos.vx,cy)<0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
@ -2263,7 +2258,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
if(colHeightBefore>=0&&colHeightAfter<=0)
|
||||
{
|
||||
// About to hit a 'fall to death' block?
|
||||
if((m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_DEATH)
|
||||
if((CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_DEATH)
|
||||
{
|
||||
// No
|
||||
// Stick at ground level
|
||||
|
@ -2287,7 +2282,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
{
|
||||
// Must be below ground
|
||||
// Are we jumping into an impassable block?
|
||||
if((m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
if((CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
getHeightFromGround(pos.vx,pos.vy+_moveDistance)<=0)
|
||||
{
|
||||
pos.vy=(pos.vy&0xfff0);
|
||||
|
@ -2298,7 +2293,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
else
|
||||
{
|
||||
// Stood on any important types of collision?
|
||||
switch(m_layerCollision->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)
|
||||
switch(CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)
|
||||
{
|
||||
case COLLISION_TYPE_FLAG_DAMAGE:
|
||||
takeDamage(DAMAGE__COLLISION_DAMAGE);
|
||||
|
@ -2327,11 +2322,10 @@ int CPlayer::moveHorizontal(int _moveDistance)
|
|||
hitWall=false;
|
||||
if(_moveDistance)
|
||||
{
|
||||
CLayerCollision *collision;
|
||||
CLayerCollision *collision=CGameScene::getCollision();
|
||||
DVECTOR pos;
|
||||
int colHeight;
|
||||
|
||||
collision=getLayerCollision();
|
||||
pos=getPlayerPos();
|
||||
colHeight=getHeightFromGround(pos.vx,pos.vy,5);
|
||||
if(colHeight==0)
|
||||
|
@ -2379,7 +2373,7 @@ int CPlayer::moveHorizontal(int _moveDistance)
|
|||
}
|
||||
else if(colHeight>0) // Lets you jump through platforms from below
|
||||
{
|
||||
if((m_layerCollision->getCollisionBlock(pos.vx+_moveDistance,pos.vy)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
if((CGameScene::getCollision()->getCollisionBlock(pos.vx+_moveDistance,pos.vy)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_NORMAL&&
|
||||
getHeightFromGround(pos.vx+_moveDistance,pos.vy,5)<0)
|
||||
{
|
||||
// Stop at the edge of the obstruction
|
||||
|
|
|
@ -214,7 +214,6 @@ public:
|
|||
|
||||
DVECTOR getCameraPos() {return m_cameraPos;}
|
||||
|
||||
void setLayerCollision(class CLayerCollision *_layer) {m_layerCollision=_layer;}
|
||||
void setCameraBox(CameraBox _cameraBox);
|
||||
void setRespawnPos(DVECTOR _respawn) {m_respawnPos=_respawn;}
|
||||
|
||||
|
@ -262,7 +261,6 @@ public:
|
|||
PLAYERINPUT getPadInputHeld() {return m_padInput;}
|
||||
PLAYERINPUT getPadInputDown() {return m_padInputDown;}
|
||||
int tryingToPickupWeapon() {return m_tryingToPickupWeapon;}
|
||||
class CLayerCollision *getLayerCollision() {return m_layerCollision;}
|
||||
|
||||
void inSoakUpState();
|
||||
void takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection=REACT__UP,CThing *_thing=NULL);
|
||||
|
@ -344,7 +342,6 @@ private:
|
|||
|
||||
|
||||
// Various info about the current map
|
||||
class CLayerCollision *m_layerCollision;
|
||||
CameraBox m_cameraPosLimitBox;
|
||||
CameraBox m_playerPosLimitBox;
|
||||
DVECTOR m_respawnPos;
|
||||
|
@ -429,7 +426,6 @@ public:
|
|||
// Graphical resources
|
||||
public:
|
||||
class FontBank *getFontBank() {return m_fontBank;}
|
||||
class SpriteBank *getSpriteBank() {return m_spriteBank;}
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -447,8 +443,6 @@ public:
|
|||
|
||||
private:
|
||||
class FontBank *m_fontBank;
|
||||
class SpriteBank *m_spriteBank;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "gfx\font.h"
|
||||
#endif
|
||||
|
||||
#include "game/game.h"
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -172,7 +173,7 @@ void CPlayerModeBubbleMixture::renderModeUi()
|
|||
char buf[4];
|
||||
FontBank *fb;
|
||||
|
||||
sb=m_player->getSpriteBank();
|
||||
sb=CGameScene::getSpriteBank();
|
||||
fh=sb->getFrameHeader(FRM__BUBBLEWAND);
|
||||
sb->printFT4(fh,CPlayer::POWERUPUI_ICONX,CPlayer::POWERUPUI_ICONY,0,0,CPlayer::POWERUPUI_OT);
|
||||
|
||||
|
|
|
@ -283,7 +283,7 @@ void CPlayerModeCoralBlower::think()
|
|||
CPlayerProjectile::PLAYER_PROJECTILE_DUMBFIRE,
|
||||
CPlayerProjectile::PLAYER_PROJECTILE_FINITE_LIFE,
|
||||
5*60);
|
||||
projectile->setLayerCollision( m_player->getLayerCollision() );
|
||||
|
||||
|
||||
//CActorGfx *projectileGfx;
|
||||
//projectileGfx=CActorPool::GetActor((FileEquate)ACTORS_SHELL_SBK);
|
||||
|
@ -354,7 +354,7 @@ void CPlayerModeCoralBlower::renderModeUi()
|
|||
sFrameHdr *fh;
|
||||
// char buf[4];
|
||||
|
||||
sb=m_player->getSpriteBank();
|
||||
sb=CGameScene::getSpriteBank();
|
||||
fh=sb->getFrameHeader(FRM__BLOWER);
|
||||
if(m_blowerState==BLOWER_STATE__FULL||m_blowerState==BLOWER_STATE__AIMING)
|
||||
{
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "gfx\font.h"
|
||||
#endif
|
||||
|
||||
#include "game/game.h"
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -152,7 +153,7 @@ void CPlayerModeJellyLauncher::renderModeUi()
|
|||
FontBank *fb;
|
||||
char buf[4];
|
||||
|
||||
sb=m_player->getSpriteBank();
|
||||
sb=CGameScene::getSpriteBank();
|
||||
fh=sb->getFrameHeader(FRM__LAUNCHER);
|
||||
switch(m_firingState)
|
||||
{
|
||||
|
@ -301,7 +302,7 @@ void CPlayerModeJellyLauncher::launchProjectile()
|
|||
CPlayerProjectile::PLAYER_PROJECTILE_DUMBFIRE,
|
||||
CPlayerProjectile::PLAYER_PROJECTILE_FINITE_LIFE,
|
||||
5*60);
|
||||
projectile->setLayerCollision( m_player->getLayerCollision() );
|
||||
|
||||
projectile->setRGB( 255 + ( 128 << 8 ) + ( 255 << 16 ) );
|
||||
fireHeading+=512;
|
||||
m_player->useOneJelly();
|
||||
|
@ -317,7 +318,7 @@ void CPlayerModeJellyLauncher::launchProjectile()
|
|||
CPlayerProjectile::PLAYER_PROJECTILE_DUMBFIRE,
|
||||
CPlayerProjectile::PLAYER_PROJECTILE_FINITE_LIFE,
|
||||
5*60);
|
||||
projectile->setLayerCollision( m_player->getLayerCollision() );
|
||||
|
||||
projectile->setRGB( 255 + ( 128 << 8 ) + ( 255 << 16 ) );
|
||||
m_player->useOneJelly();
|
||||
}
|
||||
|
|
|
@ -237,7 +237,7 @@ void CPlayerModeNet::think()
|
|||
CPlayerProjectile::PLAYER_PROJECTILE_DUMBFIRE,
|
||||
CPlayerProjectile::PLAYER_PROJECTILE_FINITE_LIFE,
|
||||
5*60);
|
||||
projectile->setLayerCollision( m_player->getLayerCollision() );
|
||||
|
||||
projectile->updateCollisionArea();
|
||||
projectile->setRGB( m_RGB );
|
||||
|
||||
|
@ -282,7 +282,7 @@ void CPlayerModeNet::think()
|
|||
sFrameHdr *fh;
|
||||
char buf[4];
|
||||
|
||||
sb=m_player->getSpriteBank();
|
||||
sb=CGameScene::getSpriteBank();
|
||||
fh=sb->getFrameHeader(FRM__NET);
|
||||
if(m_player->getJellyFishAmmo())
|
||||
{
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
#include "player\psspring.h"
|
||||
#endif
|
||||
|
||||
|
||||
#include "game/game.h"
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
||||
|
@ -297,7 +297,7 @@ void CPlayerModeBase::thinkVerticalMovement()
|
|||
playerHasHitGround();
|
||||
pos=m_player->getPlayerPos();
|
||||
if(m_player->getHeightFromGround(pos.vx,pos.vy,5)==0&&
|
||||
(m_player->getLayerCollision()->getCollisionBlock(pos.vx,pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER&&
|
||||
(CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER&&
|
||||
!m_player->getIsHealthSoFullThatIDontNeedToSoakUp())
|
||||
{
|
||||
// Hit water - Go into soakup mode
|
||||
|
@ -474,11 +474,10 @@ int csize=5;
|
|||
int cheight=15;
|
||||
int CPlayerModeBase::isOnEdge()
|
||||
{
|
||||
CLayerCollision *collision;
|
||||
CLayerCollision *collision=CGameScene::getCollision();
|
||||
DVECTOR pos;
|
||||
int ret;
|
||||
|
||||
collision=m_player->getLayerCollision();
|
||||
pos=m_player->getPlayerPos();
|
||||
ret=0;
|
||||
if(m_player->getHeightFromGround(pos.vx-csize,pos.vy,cheight+1)>cheight)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue