This commit is contained in:
Charles 2001-01-29 16:55:11 +00:00
parent 321dc60571
commit a6baf7d189
4 changed files with 99 additions and 2 deletions

View File

@ -68,6 +68,7 @@ enemy_src := 2denemy \
nfdutch \
nsshark \
ndogfish \
nhazard \
enemy
projectl_src := projectl

View File

@ -60,6 +60,30 @@ CNpc::NPC_DATA CNpc::m_data[NPC_UNIT_TYPE_MAX] =
128,
},
{ // NPC_FALLING_ACORN
NPC_INIT_FALLING_ACORN,
NPC_SENSOR_FALLING_ACORN_USER_CLOSE,
NPC_MOVEMENT_STATIC,
NPC_MOVEMENT_MODIFIER_NONE,
NPC_CLOSE_FALLING_ACORN_FALL,
NPC_TIMER_NONE,
false,
3,
128,
},
{ // NPC_FISH_HOOK
NPC_INIT_FISH_HOOK,
NPC_SENSOR_FISH_HOOK_USER_CLOSE,
NPC_MOVEMENT_STATIC,
NPC_MOVEMENT_MODIFIER_NONE,
NPC_CLOSE_FISH_HOOK_RISE,
NPC_TIMER_NONE,
false,
3,
128,
},
{ // NPC_SMALL_JELLYFISH_1
NPC_INIT_DEFAULT,
NPC_SENSOR_JELLYFISH_USER_CLOSE,
@ -435,7 +459,7 @@ CNpc::NPC_DATA CNpc::m_data[NPC_UNIT_TYPE_MAX] =
void CNpc::init()
{
m_type = NPC_SKULL_STOMPER;
m_type = NPC_FISH_HOOK;
m_heading = m_fireHeading = 0;
m_movementTimer = 0;
@ -492,6 +516,7 @@ void CNpc::init()
break;
case NPC_INIT_SKULL_STOMPER:
case NPC_INIT_FALLING_ACORN:
{
m_heading = m_fireHeading = 1024;
@ -545,6 +570,29 @@ void CNpc::init()
break;
}
case NPC_INIT_FISH_HOOK:
{
m_heading = m_fireHeading = 3072;
m_npcPath.initPath();
DVECTOR newPos;
newPos.vx = 100;
newPos.vy = 100;
m_npcPath.addWaypoint( newPos );
newPos.vx = 100;
newPos.vy = -100;
m_npcPath.addWaypoint( newPos );
m_npcPath.setPathType( SINGLE_USE_PATH );
break;
}
default:
break;
@ -562,6 +610,9 @@ void CNpc::think(int _frames)
{
switch ( this->m_controlFunc )
{
case NPC_CONTROL_NONE:
return;
case NPC_CONTROL_MOVEMENT:
if ( !processSensor() )
{
@ -815,6 +866,7 @@ bool CNpc::processSensor()
case NPC_SENSOR_ANEMONE_USER_CLOSE:
case NPC_SENSOR_EYEBALL_USER_CLOSE:
case NPC_SENSOR_FALLING_ACORN_USER_CLOSE:
{
if ( xDistSqr + yDistSqr < 40000 )
{
@ -872,6 +924,20 @@ bool CNpc::processSensor()
}
}
case NPC_SENSOR_FISH_HOOK_USER_CLOSE:
{
if ( xDistSqr + yDistSqr < 400 )
{
m_controlFunc = NPC_CONTROL_CLOSE;
return( true );
}
else
{
return( false );
}
}
default:
return( false );
}
@ -1129,6 +1195,18 @@ void CNpc::processClose(int _frames)
case NPC_CLOSE_IRON_DOGFISH_ATTACK:
processCloseIronDogfishAttack( _frames );
break;
case NPC_CLOSE_FALLING_ACORN_FALL:
processCloseFallingAcornFall( _frames );
break;
case NPC_CLOSE_FISH_HOOK_RISE:
processCloseFishHookRise( _frames );
break;
default:
break;
}

View File

@ -30,7 +30,9 @@ public:
enum NPC_UNIT_TYPE
{
NPC_SANDY_CHEEKS = 0,
NPC_SMALL_JELLYFISH_1 = 1,
NPC_FALLING_ACORN = 1,
NPC_FISH_HOOK,
NPC_SMALL_JELLYFISH_1,
NPC_SMALL_JELLYFISH_2,
NPC_LARGE_JELLYFISH,
NPC_ANEMONE_1,
@ -85,10 +87,13 @@ protected:
NPC_INIT_SUB_SHARK,
NPC_INIT_FLYING_DUTCHMAN,
NPC_INIT_IRON_DOGFISH,
NPC_INIT_FALLING_ACORN,
NPC_INIT_FISH_HOOK,
};
enum NPC_CONTROL_FUNC
{
NPC_CONTROL_NONE,
NPC_CONTROL_MOVEMENT,
NPC_CONTROL_SHOT,
NPC_CONTROL_CLOSE,
@ -110,6 +115,8 @@ protected:
NPC_SENSOR_SKULL_STOMPER_USER_CLOSE,
NPC_SENSOR_BOOGER_MONSTER_USER_CLOSE,
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
NPC_SENSOR_FALLING_ACORN_USER_CLOSE,
NPC_SENSOR_FISH_HOOK_USER_CLOSE,
};
enum NPC_CLOSE_FUNC
@ -130,6 +137,8 @@ protected:
NPC_CLOSE_SUB_SHARK_ATTACK,
NPC_CLOSE_FLYING_DUTCHMAN_ATTACK,
NPC_CLOSE_IRON_DOGFISH_ATTACK,
NPC_CLOSE_FALLING_ACORN_FALL,
NPC_CLOSE_FISH_HOOK_RISE,
};
enum NPC_MOVEMENT_FUNC
@ -286,6 +295,11 @@ protected:
void processStandardIronDogfishAttack( int _frames );
void processCloseIronDogfishAttack( int _frames );
// hazard functions
void processCloseFallingAcornFall( int _frames );
void processCloseFishHookRise( int _frames );
// data
static NPC_DATA m_data[NPC_UNIT_TYPE_MAX];

View File

@ -157,6 +157,10 @@ SOURCE=..\..\..\source\enemy\ngpirate.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\enemy\nhazard.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\enemy\nmjfish.cpp
# End Source File
# Begin Source File