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()
|
||||
{
|
||||
if ( !m_isShuttingDown )
|
||||
{
|
||||
m_isShuttingDown = true;
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
CEnemyProjectileThing::shutdown();
|
||||
}
|
||||
|
||||
CEnemyProjectileThing::shutdown();
|
||||
}
|
||||
void CProjectile::setToShutdown()
|
||||
{
|
||||
m_isShuttingDown = true;
|
||||
}
|
||||
|
||||
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 ) )
|
||||
{
|
||||
shutdown();
|
||||
setToShutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -302,7 +302,7 @@ void CProjectile::think(int _frames)
|
|||
{
|
||||
if ( m_layerCollision->Get( Pos.vx >> 4, Pos.vy >> 4 ) )
|
||||
{
|
||||
shutdown();
|
||||
setToShutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -320,7 +320,7 @@ void CProjectile::think(int _frames)
|
|||
|
||||
if ( m_lifetime <= 0 )
|
||||
{
|
||||
shutdown();
|
||||
setToShutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -375,7 +375,7 @@ void CProjectile::collidedWith(CThing *_thisThing)
|
|||
|
||||
if ( m_lifetimeType != PROJECTILE_INFINITE_LIFE )
|
||||
{
|
||||
shutdown();
|
||||
setToShutdown();
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -437,14 +437,14 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTIL
|
|||
|
||||
void CPlayerProjectile::shutdown()
|
||||
{
|
||||
if ( !m_isShuttingDown )
|
||||
{
|
||||
m_isShuttingDown = true;
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
CPlayerProjectileThing::shutdown();
|
||||
}
|
||||
|
||||
CPlayerProjectileThing::shutdown();
|
||||
}
|
||||
void CPlayerProjectile::setToShutdown()
|
||||
{
|
||||
m_isShuttingDown = true;
|
||||
}
|
||||
|
||||
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 ) )
|
||||
{
|
||||
shutdown();
|
||||
setToShutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -503,7 +503,7 @@ void CPlayerProjectile::think(int _frames)
|
|||
|
||||
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, s32 initLifetime );
|
||||
void shutdown();
|
||||
void setToShutdown();
|
||||
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||
void think(int _frames);
|
||||
virtual void render();
|
||||
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, s32 initLifetime );
|
||||
void shutdown();
|
||||
void setToShutdown();
|
||||
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||
void think(int _frames);
|
||||
virtual void render();
|
||||
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
||||
|
|
|
@ -254,6 +254,23 @@ void CThingManager::thinkAllThings(int _frames)
|
|||
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 think(int _frames);
|
||||
virtual void render();
|
||||
virtual u8 isSetToShutdown() {return( false );}
|
||||
|
||||
// Linkage
|
||||
void addChild(CThing *Child);
|
||||
|
|
Loading…
Add table
Reference in a new issue