This commit is contained in:
parent
cfb4cb7ea2
commit
6961688ccd
7 changed files with 121 additions and 114 deletions
|
@ -108,7 +108,8 @@ hazard_src := hazard \
|
||||||
hbarrel \
|
hbarrel \
|
||||||
hboat
|
hboat
|
||||||
|
|
||||||
projectl_src := projectl
|
projectl_src := projectl \
|
||||||
|
prnpc
|
||||||
|
|
||||||
fileio_src := fileio \
|
fileio_src := fileio \
|
||||||
$($(FILE_SYSTEM)_FILESYS_SRC)
|
$($(FILE_SYSTEM)_FILESYS_SRC)
|
||||||
|
|
|
@ -51,6 +51,10 @@
|
||||||
#include "projectl\projectl.h"
|
#include "projectl\projectl.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __PROJECTL_PRNPC_H__
|
||||||
|
#include "projectl\prnpc.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
#ifndef __ENEMY_NSJFISH_H__
|
#ifndef __ENEMY_NSJFISH_H__
|
||||||
|
@ -700,6 +704,8 @@ void CNpcEnemy::setToShutdown()
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
bool gitTrigger = false;
|
||||||
|
|
||||||
int CNpcEnemy::getFrameCount()
|
int CNpcEnemy::getFrameCount()
|
||||||
{
|
{
|
||||||
return( m_actorGfx->getFrameCount( m_animNo ) );
|
return( m_actorGfx->getFrameCount( m_animNo ) );
|
||||||
|
@ -799,6 +805,11 @@ void CNpcEnemy::think(int _frames)
|
||||||
{
|
{
|
||||||
processTimer( moveFrames );
|
processTimer( moveFrames );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( gitTrigger )
|
||||||
|
{
|
||||||
|
fireAsProjectile( 0 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1441,7 +1452,7 @@ void CNpcEnemy::processEnemyCollision( CThing *thisThing )
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void CNpcEnemy::processCoralBlowerMovement( int _frames, s32 xDist, s32 yDist )
|
bool CNpcEnemy::processCoralBlowerMovement( int _frames, s32 xDist, s32 yDist )
|
||||||
{
|
{
|
||||||
s32 moveX, moveY;
|
s32 moveX, moveY;
|
||||||
s16 headingToTarget;
|
s16 headingToTarget;
|
||||||
|
@ -1503,6 +1514,22 @@ void CNpcEnemy::processCoralBlowerMovement( int _frames, s32 xDist, s32 yDist )
|
||||||
|
|
||||||
Pos.vx += moveX;
|
Pos.vx += moveX;
|
||||||
Pos.vy += moveY;
|
Pos.vy += moveY;
|
||||||
|
|
||||||
|
if ( moveX || moveY )
|
||||||
|
{
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return( true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
bool CNpcEnemy::canBeSuckedUp()
|
||||||
|
{
|
||||||
|
return( m_data[m_type].canBeSuckedUp );
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1512,6 +1539,8 @@ bool CNpcEnemy::suckUp( DVECTOR *suckPos, int _frames )
|
||||||
m_isCaught = true;
|
m_isCaught = true;
|
||||||
m_isBlowerOn = true;
|
m_isBlowerOn = true;
|
||||||
|
|
||||||
|
bool returnVal = false;
|
||||||
|
|
||||||
switch( m_state )
|
switch( m_state )
|
||||||
{
|
{
|
||||||
case NPC_CORAL_BLOWER_SUCK:
|
case NPC_CORAL_BLOWER_SUCK:
|
||||||
|
@ -1521,7 +1550,7 @@ bool CNpcEnemy::suckUp( DVECTOR *suckPos, int _frames )
|
||||||
s32 targetXDist = suckPos->vx - Pos.vx;
|
s32 targetXDist = suckPos->vx - Pos.vx;
|
||||||
s32 targetYDist = suckPos->vy - Pos.vy;
|
s32 targetYDist = suckPos->vy - Pos.vy;
|
||||||
|
|
||||||
processCoralBlowerMovement( _frames, targetXDist, targetYDist );
|
returnVal = processCoralBlowerMovement( _frames, targetXDist, targetYDist );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1543,7 +1572,7 @@ bool CNpcEnemy::suckUp( DVECTOR *suckPos, int _frames )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return( false );
|
return( returnVal );
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1594,3 +1623,25 @@ void CNpcEnemy::processCoralBlower( int _frames )
|
||||||
|
|
||||||
m_isBlowerOn = false;
|
m_isBlowerOn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void CNpcEnemy::fireAsProjectile( s16 heading )
|
||||||
|
{
|
||||||
|
m_isActive = false;
|
||||||
|
setToShutdown();
|
||||||
|
|
||||||
|
DVECTOR newPos = Pos;
|
||||||
|
|
||||||
|
newPos.vy -= 10;
|
||||||
|
|
||||||
|
CEnemyAsProjectile *projectile;
|
||||||
|
projectile = new( "blower projectile" ) CEnemyAsProjectile;
|
||||||
|
projectile->init( newPos,
|
||||||
|
heading,
|
||||||
|
CPlayerProjectile::PLAYER_PROJECTILE_DUMBFIRE,
|
||||||
|
CPlayerProjectile::PLAYER_PROJECTILE_FINITE_LIFE,
|
||||||
|
5*60);
|
||||||
|
projectile->setLayerCollision( m_layerCollision );
|
||||||
|
projectile->setGraphic( m_actorGfx );
|
||||||
|
}
|
|
@ -116,7 +116,10 @@ public:
|
||||||
|
|
||||||
void setToShutdown();
|
void setToShutdown();
|
||||||
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||||
|
|
||||||
|
bool canBeSuckedUp();
|
||||||
bool suckUp( DVECTOR *suckPos, int _frames );
|
bool suckUp( DVECTOR *suckPos, int _frames );
|
||||||
|
void fireAsProjectile( s16 heading );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
class CLayerCollision *m_layerCollision;
|
class CLayerCollision *m_layerCollision;
|
||||||
|
@ -212,7 +215,7 @@ protected:
|
||||||
NPC_MOVEMENT_FUNC movementFunc;
|
NPC_MOVEMENT_FUNC movementFunc;
|
||||||
NPC_CLOSE_FUNC closeFunc;
|
NPC_CLOSE_FUNC closeFunc;
|
||||||
NPC_TIMER_FUNC timerFunc;
|
NPC_TIMER_FUNC timerFunc;
|
||||||
bool canTalk;
|
u8 canTalk;
|
||||||
u8 speed;
|
u8 speed;
|
||||||
u16 turnSpeed;
|
u16 turnSpeed;
|
||||||
DETECT_TYPE detectCollision;
|
DETECT_TYPE detectCollision;
|
||||||
|
@ -222,8 +225,9 @@ protected:
|
||||||
NPC_SHOT_FUNC shotFunc;
|
NPC_SHOT_FUNC shotFunc;
|
||||||
u16 dieAnim;
|
u16 dieAnim;
|
||||||
u16 recoilAnim;
|
u16 recoilAnim;
|
||||||
bool canBeNetted;
|
u8 canBeNetted;
|
||||||
bool respawning;
|
u8 respawning;
|
||||||
|
u8 canBeSuckedUp;
|
||||||
}
|
}
|
||||||
NPC_DATA;
|
NPC_DATA;
|
||||||
|
|
||||||
|
@ -250,7 +254,7 @@ protected:
|
||||||
void reinit();
|
void reinit();
|
||||||
|
|
||||||
void processCoralBlower( int _frames );
|
void processCoralBlower( int _frames );
|
||||||
void processCoralBlowerMovement( int _frames, s32 xDist, s32 yDist );
|
bool processCoralBlowerMovement( int _frames, s32 xDist, s32 yDist );
|
||||||
|
|
||||||
// data
|
// data
|
||||||
|
|
||||||
|
|
|
@ -110,48 +110,6 @@
|
||||||
|
|
||||||
CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
{
|
{
|
||||||
/*{ // NPC_FALLING_ITEM
|
|
||||||
ACTORS_CLAM_SBK,
|
|
||||||
ANIM_CLAM_SIDESNAP,
|
|
||||||
NPC_SENSOR_USER_CLOSE,
|
|
||||||
NPC_MOVEMENT_STATIC,
|
|
||||||
NPC_CLOSE_NONE,
|
|
||||||
NPC_TIMER_NONE,
|
|
||||||
false,
|
|
||||||
8,
|
|
||||||
128,
|
|
||||||
DETECT_NO_COLLISION,
|
|
||||||
DAMAGE__SQUASH_ENEMY,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NPC_SHOT_GENERIC,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
},
|
|
||||||
|
|
||||||
{ // NPC_FISH_HOOK
|
|
||||||
ACTORS_CLAM_SBK,
|
|
||||||
ANIM_CLAM_SIDESNAP,
|
|
||||||
NPC_SENSOR_NONE,
|
|
||||||
NPC_MOVEMENT_STATIC,
|
|
||||||
NPC_CLOSE_NONE,
|
|
||||||
NPC_TIMER_NONE,
|
|
||||||
false,
|
|
||||||
3,
|
|
||||||
128,
|
|
||||||
DETECT_NO_COLLISION,
|
|
||||||
DAMAGE__NONE,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NPC_SHOT_GENERIC,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
},*/
|
|
||||||
|
|
||||||
{ // NPC_DUST_DEVIL
|
{ // NPC_DUST_DEVIL
|
||||||
ACTORS_DUSTDEVIL_SBK,
|
ACTORS_DUSTDEVIL_SBK,
|
||||||
ANIM_DUSTDEVIL_TWIST,
|
ANIM_DUSTDEVIL_TWIST,
|
||||||
|
@ -171,71 +129,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
/*{ // NPC_PENDULUM
|
|
||||||
ACTORS_CLAM_SBK,
|
|
||||||
ANIM_CLAM_SIDESNAP,
|
|
||||||
NPC_SENSOR_NONE,
|
|
||||||
NPC_MOVEMENT_STATIC,
|
|
||||||
NPC_CLOSE_NONE,
|
|
||||||
NPC_TIMER_NONE,
|
|
||||||
false,
|
|
||||||
3,
|
|
||||||
2048,
|
|
||||||
DETECT_NO_COLLISION,
|
|
||||||
DAMAGE__HIT_ENEMY,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NPC_SHOT_GENERIC,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
},*/
|
|
||||||
|
|
||||||
/*{ // NPC_FIREBALL
|
|
||||||
ACTORS_CLAM_SBK,
|
|
||||||
ANIM_CLAM_SIDESNAP,
|
|
||||||
NPC_SENSOR_NONE,
|
|
||||||
NPC_MOVEMENT_STATIC,
|
|
||||||
NPC_CLOSE_NONE,
|
|
||||||
NPC_TIMER_NONE,
|
|
||||||
false,
|
|
||||||
40,
|
|
||||||
2048,
|
|
||||||
DETECT_NO_COLLISION,
|
|
||||||
DAMAGE__BURN_ENEMY,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NPC_SHOT_GENERIC,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
},*/
|
|
||||||
|
|
||||||
/*{ // NPC_SAW_BLADE
|
|
||||||
ACTORS_CLAM_SBK,
|
|
||||||
ANIM_CLAM_SIDESNAP,
|
|
||||||
NPC_SENSOR_NONE,
|
|
||||||
NPC_MOVEMENT_STATIC,
|
|
||||||
NPC_CLOSE_NONE,
|
|
||||||
NPC_TIMER_NONE,
|
|
||||||
false,
|
|
||||||
3,
|
|
||||||
2048,
|
|
||||||
DETECT_NO_COLLISION,
|
|
||||||
DAMAGE__HIT_ENEMY,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
NPC_SHOT_GENERIC,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
},*/
|
|
||||||
|
|
||||||
{ // NPC_SMALL_JELLYFISH_1
|
{ // NPC_SMALL_JELLYFISH_1
|
||||||
0,//ACTORS_JELLYFISH1_SBK,
|
0,//ACTORS_JELLYFISH1_SBK,
|
||||||
FRM_JELLYFISH1_SWIM1,
|
FRM_JELLYFISH1_SWIM1,
|
||||||
|
@ -255,6 +151,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
FRM_JELLYFISH1_SWIM1,
|
FRM_JELLYFISH1_SWIM1,
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SMALL_JELLYFISH_2
|
{ // NPC_SMALL_JELLYFISH_2
|
||||||
|
@ -276,6 +173,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANEMONE_1
|
{ // NPC_ANEMONE_1
|
||||||
|
@ -297,6 +195,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANEMONE_2
|
{ // NPC_ANEMONE_2
|
||||||
|
@ -318,6 +217,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANEMONE_3
|
{ // NPC_ANEMONE_3
|
||||||
|
@ -339,6 +239,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SKELETAL_FISH
|
{ // NPC_SKELETAL_FISH
|
||||||
|
@ -360,6 +261,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_SKELETALFISH_GETHIT,
|
ANIM_SKELETALFISH_GETHIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_CLAM_JUMP
|
{ // NPC_CLAM_JUMP
|
||||||
|
@ -381,6 +283,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_CLAM_STATIC
|
{ // NPC_CLAM_STATIC
|
||||||
|
@ -402,6 +305,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SQUID_DART
|
{ // NPC_SQUID_DART
|
||||||
|
@ -423,6 +327,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_FISH_FOLK
|
{ // NPC_FISH_FOLK
|
||||||
|
@ -444,6 +349,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_PRICKLY_BUG
|
{ // NPC_PRICKLY_BUG
|
||||||
|
@ -465,6 +371,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_CATERPILLAR_GETHIT,
|
ANIM_CATERPILLAR_GETHIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SEA_SNAKE
|
{ // NPC_SEA_SNAKE
|
||||||
|
@ -486,6 +393,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_PUFFA_FISH
|
{ // NPC_PUFFA_FISH
|
||||||
|
@ -507,6 +415,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ANGLER_FISH
|
{ // NPC_ANGLER_FISH
|
||||||
|
@ -528,6 +437,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_HERMIT_CRAB
|
{ // NPC_HERMIT_CRAB
|
||||||
|
@ -549,6 +459,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_HERMITCRAB_DIE,
|
ANIM_HERMITCRAB_DIE,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_MINE
|
{ // NPC_MINE
|
||||||
|
@ -570,6 +481,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_BOOGER_MONSTER
|
{ // NPC_BOOGER_MONSTER
|
||||||
|
@ -591,6 +503,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SPIDER_CRAB
|
{ // NPC_SPIDER_CRAB
|
||||||
|
@ -612,6 +525,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_SPIDERCRAB_HIT,
|
ANIM_SPIDERCRAB_HIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SPIDER_CRAB_SPAWNER
|
{ // NPC_SPIDER_CRAB_SPAWNER
|
||||||
|
@ -633,6 +547,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_SPIDERCRAB_HIT,
|
ANIM_SPIDERCRAB_HIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_EYEBALL
|
{ // NPC_EYEBALL
|
||||||
|
@ -654,6 +569,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_BABY_OCTOPUS
|
{ // NPC_BABY_OCTOPUS
|
||||||
|
@ -675,6 +591,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_BABYOCTOPUS_HIT,
|
ANIM_BABYOCTOPUS_HIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_ZOMBIE_FISH_FOLK
|
{ // NPC_ZOMBIE_FISH_FOLK
|
||||||
|
@ -696,6 +613,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_NINJA_STARFISH
|
{ // NPC_NINJA_STARFISH
|
||||||
|
@ -717,6 +635,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_GHOST
|
{ // NPC_GHOST
|
||||||
|
@ -738,6 +657,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_GHOST_PIRATE
|
{ // NPC_GHOST_PIRATE
|
||||||
|
@ -759,6 +679,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_FLAMING_SKULL
|
{ // NPC_FLAMING_SKULL
|
||||||
|
@ -780,6 +701,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SHARK_MAN
|
{ // NPC_SHARK_MAN
|
||||||
|
@ -801,6 +723,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_SHARKMAN_BLOCK,
|
ANIM_SHARKMAN_BLOCK,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_OIL_BLOB
|
{ // NPC_OIL_BLOB
|
||||||
|
@ -822,6 +745,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SKULL_STOMPER
|
{ // NPC_SKULL_STOMPER
|
||||||
|
@ -843,6 +767,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_MOTHER_JELLYFISH
|
{ // NPC_MOTHER_JELLYFISH
|
||||||
|
@ -864,6 +789,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SUB_SHARK
|
{ // NPC_SUB_SHARK
|
||||||
|
@ -885,6 +811,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_PARASITIC_WORM
|
{ // NPC_PARASITIC_WORM
|
||||||
|
@ -906,6 +833,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_FLYING_DUTCHMAN
|
{ // NPC_FLYING_DUTCHMAN
|
||||||
|
@ -927,6 +855,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_FLYINGDUTCHMAN_GETHIT,
|
ANIM_FLYINGDUTCHMAN_GETHIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_IRON_DOGFISH
|
{ // NPC_IRON_DOGFISH
|
||||||
|
@ -948,6 +877,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
ANIM_IRONDOGFISH_GETHIT,
|
ANIM_IRONDOGFISH_GETHIT,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_PARASITIC_WORM_SEGMENT
|
{ // NPC_PARASITIC_WORM_SEGMENT
|
||||||
|
@ -969,6 +899,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_BALL_BLOB
|
{ // NPC_BALL_BLOB
|
||||||
|
@ -990,6 +921,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_SHELL
|
{ // NPC_SHELL
|
||||||
|
@ -1011,6 +943,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -227,6 +227,11 @@ void CProjectile::setLifeTime( PROJECTILE_LIFETIME_TYPE lifeType )
|
||||||
|
|
||||||
void CProjectile::think(int _frames)
|
void CProjectile::think(int _frames)
|
||||||
{
|
{
|
||||||
|
if ( _frames > 2 )
|
||||||
|
{
|
||||||
|
_frames = 2;
|
||||||
|
}
|
||||||
|
|
||||||
CEnemyProjectileThing::think( _frames );
|
CEnemyProjectileThing::think( _frames );
|
||||||
|
|
||||||
switch( m_movementType )
|
switch( m_movementType )
|
||||||
|
@ -469,6 +474,11 @@ void CPlayerProjectile::setLifeTime( PLAYER_PROJECTILE_LIFETIME_TYPE lifeType )
|
||||||
|
|
||||||
void CPlayerProjectile::think(int _frames)
|
void CPlayerProjectile::think(int _frames)
|
||||||
{
|
{
|
||||||
|
if ( _frames > 2 )
|
||||||
|
{
|
||||||
|
_frames = 2;
|
||||||
|
}
|
||||||
|
|
||||||
CPlayerProjectileThing::think( _frames );
|
CPlayerProjectileThing::think( _frames );
|
||||||
|
|
||||||
m_frame += _frames;
|
m_frame += _frames;
|
||||||
|
|
|
@ -103,7 +103,7 @@ public:
|
||||||
void shutdown();
|
void shutdown();
|
||||||
void setToShutdown();
|
void setToShutdown();
|
||||||
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
u8 isSetToShutdown() {return( m_isShuttingDown );}
|
||||||
void think(int _frames);
|
virtual void think(int _frames);
|
||||||
virtual void render();
|
virtual void render();
|
||||||
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
||||||
void setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType );
|
void setMovementType( PLAYER_PROJECTILE_MOVEMENT_TYPE moveType );
|
||||||
|
|
|
@ -1077,6 +1077,14 @@ SOURCE=..\..\..\source\player\player.h
|
||||||
# PROP Default_Filter ""
|
# PROP Default_Filter ""
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\projectl\prnpc.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\projectl\prnpc.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\projectl\projectl.cpp
|
SOURCE=..\..\..\source\projectl\projectl.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue