This commit is contained in:
parent
5b785068c2
commit
fa5105d783
96 changed files with 550 additions and 406 deletions
|
@ -23,6 +23,8 @@
|
|||
#include "level\level.h"
|
||||
#endif
|
||||
|
||||
#include "game/game.h"
|
||||
|
||||
void CEnemyAsSpriteProjectile::think( int _frames )
|
||||
{
|
||||
CPlayerProjectile::think( _frames );
|
||||
|
@ -51,8 +53,8 @@ void CEnemyAsSpriteProjectile::render()
|
|||
int x,y;
|
||||
int scrnWidth = VidGetScrW();
|
||||
int scrnHeight = VidGetScrH();
|
||||
int spriteWidth = m_spriteBank->getFrameWidth( m_spriteFrame );
|
||||
int spriteHeight = m_spriteBank->getFrameHeight( m_spriteFrame );
|
||||
int spriteWidth = CGameScene::getSpriteBank()->getFrameWidth( m_spriteFrame );
|
||||
int spriteHeight = CGameScene::getSpriteBank()->getFrameHeight( m_spriteFrame );
|
||||
|
||||
offset = getScreenOffset();
|
||||
|
||||
|
@ -64,8 +66,8 @@ void CEnemyAsSpriteProjectile::render()
|
|||
return;
|
||||
}
|
||||
|
||||
frameHdr = m_spriteBank->getFrameHeader( m_spriteFrame );
|
||||
POLY_FT4 *SprFrame = m_spriteBank->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_rotation, 0 );
|
||||
frameHdr = CGameScene::getSpriteBank()->getFrameHeader( m_spriteFrame );
|
||||
POLY_FT4 *SprFrame = CGameScene::getSpriteBank()->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_rotation, 0 );
|
||||
|
||||
if ( m_hasRGB )
|
||||
{
|
||||
|
|
|
@ -55,8 +55,6 @@ void CProjectile::init()
|
|||
{
|
||||
CEnemyProjectileThing::init();
|
||||
|
||||
m_spriteBank=new ("projectile sprites") SpriteBank();
|
||||
m_spriteBank->load(SPRITES_SPRITES_SPR);
|
||||
m_spriteFrame = FRM__SPIKE;
|
||||
|
||||
m_initHeading = m_heading = 0;
|
||||
|
@ -97,8 +95,6 @@ void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TY
|
|||
|
||||
void CProjectile::shutdown()
|
||||
{
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
|
||||
CEnemyProjectileThing::shutdown();
|
||||
}
|
||||
|
||||
|
@ -250,7 +246,7 @@ void CProjectile::think(int _frames)
|
|||
|
||||
case PROJECTILE_USER_SEEK:
|
||||
{
|
||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
if ( CGameScene::getCollision()->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
{
|
||||
setToShutdown();
|
||||
}
|
||||
|
@ -312,7 +308,7 @@ void CProjectile::think(int _frames)
|
|||
case PROJECTILE_DUMBFIRE:
|
||||
default:
|
||||
{
|
||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
if ( CGameScene::getCollision()->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
{
|
||||
setToShutdown();
|
||||
}
|
||||
|
@ -346,8 +342,8 @@ void CProjectile::render()
|
|||
int x,y;
|
||||
int scrnWidth = VidGetScrW();
|
||||
int scrnHeight = VidGetScrH();
|
||||
int spriteWidth = m_spriteBank->getFrameWidth( m_spriteFrame );
|
||||
int spriteHeight = m_spriteBank->getFrameHeight( m_spriteFrame );
|
||||
int spriteWidth = CGameScene::getSpriteBank()->getFrameWidth( m_spriteFrame );
|
||||
int spriteHeight = CGameScene::getSpriteBank()->getFrameHeight( m_spriteFrame );
|
||||
|
||||
offset = getScreenOffset();
|
||||
|
||||
|
@ -359,11 +355,11 @@ void CProjectile::render()
|
|||
return;
|
||||
}
|
||||
|
||||
//m_spriteBank->printFT4(FRM__SPIKE,x,y,0,0,0);
|
||||
//CGameScene::getSpriteBank()->printFT4(FRM__SPIKE,x,y,0,0,0);
|
||||
|
||||
frameHdr = m_spriteBank->getFrameHeader( m_spriteFrame );
|
||||
frameHdr = CGameScene::getSpriteBank()->getFrameHeader( m_spriteFrame );
|
||||
|
||||
m_spriteBank->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_heading, m_ot );
|
||||
CGameScene::getSpriteBank()->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_heading, m_ot );
|
||||
}
|
||||
|
||||
DVECTOR CProjectile::getScreenOffset()
|
||||
|
@ -405,9 +401,6 @@ void CPlayerProjectile::init()
|
|||
{
|
||||
CPlayerProjectileThing::init();
|
||||
|
||||
m_spriteBank=new ("projectile sprites") SpriteBank();
|
||||
m_spriteBank->load(SPRITES_SPRITES_SPR);
|
||||
|
||||
m_heading = 0;
|
||||
m_lifetime = GameState::getOneSecondInFrames() * 2;
|
||||
m_movementType = PLAYER_PROJECTILE_DUMBFIRE;
|
||||
|
@ -453,7 +446,6 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTIL
|
|||
|
||||
void CPlayerProjectile::shutdown()
|
||||
{
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
|
||||
CPlayerProjectileThing::shutdown();
|
||||
}
|
||||
|
@ -499,7 +491,7 @@ void CPlayerProjectile::think(int _frames)
|
|||
case PLAYER_PROJECTILE_DUMBFIRE:
|
||||
default:
|
||||
{
|
||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
if ( CGameScene::getCollision()->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
{
|
||||
// destroy destructable tiles
|
||||
|
||||
|
@ -538,8 +530,8 @@ void CPlayerProjectile::render()
|
|||
int x,y;
|
||||
int scrnWidth = VidGetScrW();
|
||||
int scrnHeight = VidGetScrH();
|
||||
int spriteWidth = m_spriteBank->getFrameWidth(m_frame);
|
||||
int spriteHeight = m_spriteBank->getFrameHeight(m_frame);
|
||||
int spriteWidth = CGameScene::getSpriteBank()->getFrameWidth(m_frame);
|
||||
int spriteHeight = CGameScene::getSpriteBank()->getFrameHeight(m_frame);
|
||||
|
||||
offset = getScreenOffset();
|
||||
|
||||
|
@ -559,7 +551,7 @@ void CPlayerProjectile::render()
|
|||
return;
|
||||
}
|
||||
|
||||
SprFrame = m_spriteBank->printFT4(FRM_JELLYFISH1_SWIM1 + m_frame,x,y,m_reversed,0,0);
|
||||
SprFrame = CGameScene::getSpriteBank()->printFT4(FRM_JELLYFISH1_SWIM1 + m_frame,x,y,m_reversed,0,0);
|
||||
setRGB0( SprFrame, m_RGB.r, m_RGB.g, m_RGB.b );
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,10 @@ public:
|
|||
PROJECTILE_ATTACK = 0,
|
||||
PROJECTILE_RETURN = 1,
|
||||
};
|
||||
enum
|
||||
{ // For Dynamic ThingCache
|
||||
MAX_SUBTYPE =1,
|
||||
};
|
||||
|
||||
void init();
|
||||
void init( DVECTOR initPos, s16 initHeading );
|
||||
|
@ -57,20 +61,15 @@ public:
|
|||
void setLifeTime( PROJECTILE_LIFETIME_TYPE lifeType );
|
||||
void setPosition( DVECTOR newPos );
|
||||
void setHeading( s16 newHeading ) {m_heading = newHeading;}
|
||||
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
|
||||
void setOt( u8 newOt ) {m_ot=newOt;}
|
||||
void setGraphic( int frame );
|
||||
void setSpeed( u16 newSpeed ) {m_speed = newSpeed;}
|
||||
|
||||
private:
|
||||
class CLayerCollision *m_layerCollision;
|
||||
|
||||
protected:
|
||||
DVECTOR getScreenOffset();
|
||||
bool processTargetSeek( int _frames, DVECTOR targetPos );
|
||||
void collidedWith( CThing *_thisThing );
|
||||
|
||||
class SpriteBank *m_spriteBank;
|
||||
DVECTOR m_initPos;
|
||||
s16 m_heading;
|
||||
s16 m_initHeading;
|
||||
|
@ -100,6 +99,10 @@ public:
|
|||
PLAYER_PROJECTILE_FINITE_LIFE = 0,
|
||||
PLAYER_PROJECTILE_INFINITE_LIFE = 1,
|
||||
};
|
||||
enum
|
||||
{ // For Dynamic ThingCache
|
||||
MAX_SUBTYPE =1,
|
||||
};
|
||||
|
||||
void init();
|
||||
void init( DVECTOR initPos, s16 initHeading );
|
||||
|
@ -109,21 +112,18 @@ public:
|
|||
virtual void think(int _frames);
|
||||
virtual void render();
|
||||
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
||||
|
||||
void setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType );
|
||||
PLAYER_PROJECTILE_MOVEMENT_TYPE getMovementType();
|
||||
void setLifeTime( PLAYER_PROJECTILE_LIFETIME_TYPE lifeType );
|
||||
void setPosition( DVECTOR newPos );
|
||||
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
|
||||
void setRGB( u32 new_RGB );
|
||||
|
||||
private:
|
||||
class CLayerCollision *m_layerCollision;
|
||||
|
||||
protected:
|
||||
DVECTOR getScreenOffset();
|
||||
void collidedWith( CThing *_thisThing );
|
||||
|
||||
class SpriteBank *m_spriteBank;
|
||||
DVECTOR m_initPos;
|
||||
s16 m_heading;
|
||||
s32 m_lifetime;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue