This commit is contained in:
parent
78ac121e9e
commit
de136cdcf9
5 changed files with 86 additions and 39 deletions
|
@ -67,6 +67,7 @@ enemy_src := 2denemy \
|
|||
nmjfish \
|
||||
nfdutch \
|
||||
nsshark \
|
||||
ndogfish \
|
||||
enemy
|
||||
|
||||
projectl_src := projectl
|
||||
|
|
|
@ -418,12 +418,24 @@ CNpc::NPC_DATA CNpc::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
256,
|
||||
},
|
||||
|
||||
{ // NPC_IRON_DOGFISH
|
||||
NPC_INIT_IRON_DOGFISH,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_IRON_DOGFISH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
3,
|
||||
2048,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
void CNpc::init()
|
||||
{
|
||||
m_type = NPC_SUB_SHARK;
|
||||
m_type = NPC_IRON_DOGFISH;
|
||||
|
||||
m_heading = m_fireHeading = 0;
|
||||
m_movementTimer = 0;
|
||||
|
@ -525,6 +537,14 @@ void CNpc::init()
|
|||
break;
|
||||
}
|
||||
|
||||
case NPC_INIT_IRON_DOGFISH:
|
||||
{
|
||||
m_state = IRON_DOGFISH_THUMP_1;
|
||||
m_extendDir = EXTEND_RIGHT;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
|
||||
break;
|
||||
|
@ -793,19 +813,6 @@ bool CNpc::processSensor()
|
|||
}
|
||||
|
||||
case NPC_SENSOR_ANEMONE_USER_CLOSE:
|
||||
{
|
||||
if ( xDistSqr + yDistSqr < 40000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_EYEBALL_USER_CLOSE:
|
||||
{
|
||||
if ( xDistSqr + yDistSqr < 40000 )
|
||||
|
@ -850,6 +857,20 @@ bool CNpc::processSensor()
|
|||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_IRON_DOGFISH_USER_CLOSE:
|
||||
{
|
||||
if ( xDistSqr + yDistSqr < 10000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
return( false );
|
||||
}
|
||||
|
@ -985,6 +1006,13 @@ void CNpc::processMovement(int _frames)
|
|||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_IRON_DOGFISH:
|
||||
{
|
||||
processIronDogfishMovement( _frames );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
|
||||
break;
|
||||
|
@ -1097,6 +1125,9 @@ void CNpc::processClose(int _frames)
|
|||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_IRON_DOGFISH_ATTACK:
|
||||
processCloseIronDogfishAttack( _frames );
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ public:
|
|||
NPC_MOTHER_JELLYFISH,
|
||||
NPC_SUB_SHARK,
|
||||
NPC_FLYING_DUTCHMAN,
|
||||
NPC_IRON_DOGFISH,
|
||||
NPC_UNIT_TYPE_MAX,
|
||||
};
|
||||
|
||||
|
@ -83,6 +84,7 @@ protected:
|
|||
NPC_INIT_MOTHER_JELLYFISH,
|
||||
NPC_INIT_SUB_SHARK,
|
||||
NPC_INIT_FLYING_DUTCHMAN,
|
||||
NPC_INIT_IRON_DOGFISH,
|
||||
};
|
||||
|
||||
enum NPC_CONTROL_FUNC
|
||||
|
@ -107,6 +109,7 @@ protected:
|
|||
NPC_SENSOR_EYEBALL_USER_CLOSE,
|
||||
NPC_SENSOR_SKULL_STOMPER_USER_CLOSE,
|
||||
NPC_SENSOR_BOOGER_MONSTER_USER_CLOSE,
|
||||
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
|
||||
};
|
||||
|
||||
enum NPC_CLOSE_FUNC
|
||||
|
@ -126,6 +129,7 @@ protected:
|
|||
NPC_CLOSE_MOTHER_JELLYFISH_ATTACK,
|
||||
NPC_CLOSE_SUB_SHARK_ATTACK,
|
||||
NPC_CLOSE_FLYING_DUTCHMAN_ATTACK,
|
||||
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
||||
};
|
||||
|
||||
enum NPC_MOVEMENT_FUNC
|
||||
|
@ -137,6 +141,7 @@ protected:
|
|||
NPC_MOVEMENT_MOTHER_JELLYFISH,
|
||||
NPC_MOVEMENT_SUB_SHARK,
|
||||
NPC_MOVEMENT_FLYING_DUTCHMAN,
|
||||
NPC_MOVEMENT_IRON_DOGFISH,
|
||||
};
|
||||
|
||||
enum NPC_MOVEMENT_MODIFIER_FUNC
|
||||
|
@ -160,6 +165,13 @@ protected:
|
|||
MOTHER_JELLYFISH_ATTACK_PLAYER,
|
||||
};
|
||||
|
||||
enum NPC_SUB_SHARK_STATE
|
||||
{
|
||||
SUB_SHARK_CYCLE = 0,
|
||||
SUB_SHARK_MINE_1 = 1,
|
||||
SUB_SHARK_MINE_2,
|
||||
};
|
||||
|
||||
enum NPC_FLYING_DUTCHMAN_STATE
|
||||
{
|
||||
FLYING_DUTCHMAN_ATTACK_PLAYER_1 = 0,
|
||||
|
@ -167,11 +179,13 @@ protected:
|
|||
FLYING_DUTCHMAN_ATTACK_PLAYER_3,
|
||||
};
|
||||
|
||||
enum NPC_SUB_SHARK_STATE
|
||||
enum NPC_IRON_DOGFISH_STATE
|
||||
{
|
||||
SUB_SHARK_CYCLE = 0,
|
||||
SUB_SHARK_MINE_1 = 1,
|
||||
SUB_SHARK_MINE_2,
|
||||
IRON_DOGFISH_THUMP_1 = 0,
|
||||
IRON_DOGFISH_LASER_EYE_1 = 1,
|
||||
IRON_DOGFISH_THUMP_2,
|
||||
IRON_DOGFISH_ROLL,
|
||||
IRON_DOGFISH_LASER_EYE_2,
|
||||
};
|
||||
|
||||
enum
|
||||
|
@ -256,15 +270,21 @@ protected:
|
|||
void processMotherJellyfishMovement( int _frames );
|
||||
void processCloseMotherJellyfishAttack( int _frames );
|
||||
|
||||
// sub shark functions
|
||||
|
||||
void processSubSharkMovement( int _frames );
|
||||
void processCloseSubSharkAttack( int _frames );
|
||||
|
||||
// flying dutchman functions
|
||||
|
||||
void processFlyingDutchmanMovement( int _frames );
|
||||
void processCloseFlyingDutchmanAttack( int _frames );
|
||||
|
||||
// sub shark functions
|
||||
// iron dogfish functions
|
||||
|
||||
void processSubSharkMovement( int _frames );
|
||||
void processCloseSubSharkAttack( int _frames );
|
||||
void processIronDogfishMovement( int _frames );
|
||||
void processStandardIronDogfishAttack( int _frames );
|
||||
void processCloseIronDogfishAttack( int _frames );
|
||||
|
||||
// data
|
||||
|
||||
|
|
|
@ -92,10 +92,6 @@ void CNpc::processCloseSubSharkAttack( int _frames )
|
|||
s32 xDist = playerPos.vx - Pos.vx;
|
||||
s32 xDistSqr = xDist * xDist;
|
||||
|
||||
switch( m_state )
|
||||
{
|
||||
case SUB_SHARK_MINE_1:
|
||||
{
|
||||
if ( xDist > 0 )
|
||||
{
|
||||
m_extendDir = EXTEND_RIGHT;
|
||||
|
@ -105,6 +101,10 @@ void CNpc::processCloseSubSharkAttack( int _frames )
|
|||
m_extendDir = EXTEND_LEFT;
|
||||
}
|
||||
|
||||
switch( m_state )
|
||||
{
|
||||
case SUB_SHARK_MINE_1:
|
||||
{
|
||||
if ( xDistSqr > 100 )
|
||||
{
|
||||
processGenericGotoTarget( _frames, xDist, 0, m_data[m_type].speed );
|
||||
|
@ -124,15 +124,6 @@ void CNpc::processCloseSubSharkAttack( int _frames )
|
|||
|
||||
case SUB_SHARK_MINE_2:
|
||||
{
|
||||
if ( xDist > 0 )
|
||||
{
|
||||
m_extendDir = EXTEND_RIGHT;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_extendDir = EXTEND_LEFT;
|
||||
}
|
||||
|
||||
if ( xDistSqr > 100 )
|
||||
{
|
||||
processGenericGotoTarget( _frames, xDist, 0, m_data[m_type].speed );
|
||||
|
|
|
@ -137,6 +137,10 @@ SOURCE=..\..\..\source\enemy\nclam.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\ndogfish.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\neyeball.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue