This commit is contained in:
parent
4c93823479
commit
f701f34dc4
25 changed files with 264 additions and 276 deletions
|
@ -49,7 +49,24 @@
|
|||
#include "gfx\otpos.h"
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CProjectile *CProjectile::Create()
|
||||
{
|
||||
CProjectile *projectile;
|
||||
|
||||
projectile = (CProjectile*)CThingManager::GetThing(TYPE_ENEMYPROJECTILE,0);
|
||||
if ( !projectile )
|
||||
{
|
||||
projectile = new ("enemy projectile") CProjectile;
|
||||
}
|
||||
|
||||
ASSERT(projectile);
|
||||
|
||||
return( projectile );
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::init()
|
||||
{
|
||||
|
@ -71,6 +88,8 @@ void CProjectile::init()
|
|||
updateCollisionArea();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::init( DVECTOR initPos, s16 initHeading )
|
||||
{
|
||||
init();
|
||||
|
@ -79,6 +98,8 @@ void CProjectile::init( DVECTOR initPos, s16 initHeading )
|
|||
m_initPos = Pos = initPos;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType )
|
||||
{
|
||||
init( initPos, initHeading );
|
||||
|
@ -87,6 +108,8 @@ void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TY
|
|||
m_lifetimeType = initLifeType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TYPE initMoveType, PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime )
|
||||
{
|
||||
init( initPos, initHeading, initMoveType, initLifeType );
|
||||
|
@ -94,16 +117,22 @@ void CProjectile::init( DVECTOR initPos, s16 initHeading, PROJECTILE_MOVEMENT_TY
|
|||
m_lifetime = initLifetime;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::shutdown()
|
||||
{
|
||||
CEnemyProjectileThing::shutdown();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::setGraphic( int frame )
|
||||
{
|
||||
m_spriteFrame = frame;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool CProjectile::processTargetSeek( int _frames, DVECTOR targetPos )
|
||||
{
|
||||
s32 moveX = 0, moveY = 0;
|
||||
|
@ -202,31 +231,43 @@ bool CProjectile::processTargetSeek( int _frames, DVECTOR targetPos )
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::setMovementType( PROJECTILE_MOVEMENT_TYPE moveType )
|
||||
{
|
||||
m_movementType = moveType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CProjectile::PROJECTILE_MOVEMENT_TYPE CProjectile::getMovementType()
|
||||
{
|
||||
return( m_movementType );
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::setState( PROJECTILE_STATE newState )
|
||||
{
|
||||
m_state = newState;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::setPosition( DVECTOR newPos )
|
||||
{
|
||||
Pos = newPos;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::setLifeTime( PROJECTILE_LIFETIME_TYPE lifeType )
|
||||
{
|
||||
m_lifetimeType = lifeType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::think(int _frames)
|
||||
{
|
||||
if ( _frames > 2 )
|
||||
|
@ -334,6 +375,8 @@ void CProjectile::think(int _frames)
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::render()
|
||||
{
|
||||
CEnemyProjectileThing::render();
|
||||
|
@ -363,15 +406,21 @@ void CProjectile::render()
|
|||
CGameScene::getSpriteBank()->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_heading, m_ot );
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DVECTOR CProjectile::getScreenOffset()
|
||||
{
|
||||
return CLevel::getCameraPos();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::processEvent( GAME_EVENT evt, CThing *sourceThing )
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CProjectile::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
switch(_thisThing->getThingType())
|
||||
|
@ -396,7 +445,24 @@ void CProjectile::collidedWith(CThing *_thisThing)
|
|||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CPlayerProjectile *CPlayerProjectile::Create()
|
||||
{
|
||||
CPlayerProjectile *projectile;
|
||||
|
||||
projectile = (CPlayerProjectile*)CThingManager::GetThing(TYPE_PLAYERPROJECTILE,0);
|
||||
if ( !projectile )
|
||||
{
|
||||
projectile = new ("player projectile") CPlayerProjectile;
|
||||
}
|
||||
|
||||
ASSERT(projectile);
|
||||
|
||||
return( projectile );
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::init()
|
||||
{
|
||||
|
@ -413,6 +479,8 @@ void CPlayerProjectile::init()
|
|||
// m_isShuttingDown = false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading )
|
||||
{
|
||||
init();
|
||||
|
@ -433,6 +501,8 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading )
|
|||
m_RGB.b = 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType )
|
||||
{
|
||||
init( initPos, initHeading );
|
||||
|
@ -441,6 +511,8 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTIL
|
|||
m_lifetimeType = initLifeType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTILE_MOVEMENT_TYPE initMoveType, PLAYER_PROJECTILE_LIFETIME_TYPE initLifeType, s32 initLifetime )
|
||||
{
|
||||
init( initPos, initHeading, initMoveType, initLifeType );
|
||||
|
@ -448,32 +520,44 @@ void CPlayerProjectile::init( DVECTOR initPos, s16 initHeading, PLAYER_PROJECTIL
|
|||
m_lifetime = initLifetime;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::shutdown()
|
||||
{
|
||||
|
||||
CPlayerProjectileThing::shutdown();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType )
|
||||
{
|
||||
m_movementType = moveType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CPlayerProjectile::PLAYER_PROJECTILE_MOVEMENT_TYPE CPlayerProjectile::getMovementType()
|
||||
{
|
||||
return( m_movementType );
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::setPosition( DVECTOR newPos )
|
||||
{
|
||||
Pos = newPos;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::setLifeTime( PLAYER_PROJECTILE_LIFETIME_TYPE lifeType )
|
||||
{
|
||||
m_lifetimeType = lifeType;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::think(int _frames)
|
||||
{
|
||||
if ( _frames > 2 )
|
||||
|
@ -588,6 +672,8 @@ void CPlayerProjectile::think(int _frames)
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::render()
|
||||
{
|
||||
CPlayerProjectileThing::render();
|
||||
|
@ -633,15 +719,21 @@ void CPlayerProjectile::render()
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DVECTOR CPlayerProjectile::getScreenOffset()
|
||||
{
|
||||
return CLevel::getCameraPos();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::processEvent( GAME_EVENT evt, CThing *sourceThing )
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
switch(_thisThing->getThingType())
|
||||
|
@ -664,6 +756,8 @@ void CPlayerProjectile::collidedWith(CThing *_thisThing)
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CPlayerProjectile::setRGB( u32 new_RGB )
|
||||
{
|
||||
m_RGB.r = new_RGB & 255;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue