This commit is contained in:
Daveo 2001-05-25 18:43:47 +00:00
parent 5b785068c2
commit fa5105d783
96 changed files with 550 additions and 406 deletions

View file

@ -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 )
{

View file

@ -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 );
}

View file

@ -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;