This commit is contained in:
parent
e91b911639
commit
a96fa4bb92
4 changed files with 40 additions and 18 deletions
|
@ -92,14 +92,14 @@ void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TY
|
||||||
|
|
||||||
void CProjectile::shutdown()
|
void CProjectile::shutdown()
|
||||||
{
|
{
|
||||||
if ( !m_isShuttingDown )
|
m_spriteBank->dump(); delete m_spriteBank;
|
||||||
{
|
|
||||||
m_isShuttingDown = true;
|
|
||||||
|
|
||||||
m_spriteBank->dump(); delete m_spriteBank;
|
CEnemyProjectileThing::shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
CEnemyProjectileThing::shutdown();
|
void CProjectile::setToShutdown()
|
||||||
}
|
{
|
||||||
|
m_isShuttingDown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CProjectile::processTargetSeek( int _frames, DVECTOR targetPos )
|
bool CProjectile::processTargetSeek( int _frames, DVECTOR targetPos )
|
||||||
|
@ -242,7 +242,7 @@ void CProjectile::think(int _frames)
|
||||||
{
|
{
|
||||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -302,7 +302,7 @@ void CProjectile::think(int _frames)
|
||||||
{
|
{
|
||||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -320,7 +320,7 @@ void CProjectile::think(int _frames)
|
||||||
|
|
||||||
if ( m_lifetime <= 0 )
|
if ( m_lifetime <= 0 )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -375,7 +375,7 @@ void CProjectile::collidedWith(CThing *_thisThing)
|
||||||
|
|
||||||
if ( m_lifetimeType != PROJECTILE_INFINITE_LIFE )
|
if ( m_lifetimeType != PROJECTILE_INFINITE_LIFE )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -437,14 +437,14 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTIL
|
||||||
|
|
||||||
void CPlayerProjectile::shutdown()
|
void CPlayerProjectile::shutdown()
|
||||||
{
|
{
|
||||||
if ( !m_isShuttingDown )
|
m_spriteBank->dump(); delete m_spriteBank;
|
||||||
{
|
|
||||||
m_isShuttingDown = true;
|
|
||||||
|
|
||||||
m_spriteBank->dump(); delete m_spriteBank;
|
CPlayerProjectileThing::shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
CPlayerProjectileThing::shutdown();
|
void CPlayerProjectile::setToShutdown()
|
||||||
}
|
{
|
||||||
|
m_isShuttingDown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayerProjectile::setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType )
|
void CPlayerProjectile::setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType )
|
||||||
|
@ -485,7 +485,7 @@ void CPlayerProjectile::think(int _frames)
|
||||||
{
|
{
|
||||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -503,7 +503,7 @@ void CPlayerProjectile::think(int _frames)
|
||||||
|
|
||||||
if ( m_lifetime <= 0 )
|
if ( m_lifetime <= 0 )
|
||||||
{
|
{
|
||||||
shutdown();
|
setToShutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,8 @@ public:
|
||||||
void init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType );
|
void init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType );
|
||||||
void init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime );
|
void init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime );
|
||||||
void shutdown();
|
void shutdown();
|
||||||
|
void setToShutdown();
|
||||||
|
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||||
void think(int _frames);
|
void think(int _frames);
|
||||||
virtual void render();
|
virtual void render();
|
||||||
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
||||||
|
@ -99,6 +101,8 @@ public:
|
||||||
void init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType );
|
void init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType );
|
||||||
void init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime );
|
void init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime );
|
||||||
void shutdown();
|
void shutdown();
|
||||||
|
void setToShutdown();
|
||||||
|
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||||
void think(int _frames);
|
void think(int _frames);
|
||||||
virtual void render();
|
virtual void render();
|
||||||
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
||||||
|
|
|
@ -254,6 +254,23 @@ void CThingManager::thinkAllThings(int _frames)
|
||||||
thing1 = thing1->m_nextThing;
|
thing1 = thing1->m_nextThing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i=0;i<CThing::MAX_TYPE;i++)
|
||||||
|
{
|
||||||
|
thing=s_thingLists[i];
|
||||||
|
CThing *nextThing = thing;
|
||||||
|
while(thing)
|
||||||
|
{
|
||||||
|
nextThing=thing->m_nextThing;
|
||||||
|
|
||||||
|
if ( thing->isSetToShutdown() )
|
||||||
|
{
|
||||||
|
thing->shutdown();
|
||||||
|
delete thing;
|
||||||
|
}
|
||||||
|
|
||||||
|
thing = nextThing;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
|
|
@ -101,6 +101,7 @@ public:
|
||||||
virtual void shutdown();
|
virtual void shutdown();
|
||||||
virtual void think(int _frames);
|
virtual void think(int _frames);
|
||||||
virtual void render();
|
virtual void render();
|
||||||
|
virtual u8 isSetToShutdown() {return( false );}
|
||||||
|
|
||||||
// Linkage
|
// Linkage
|
||||||
void addChild(CThing *Child);
|
void addChild(CThing *Child);
|
||||||
|
|
Loading…
Add table
Reference in a new issue