This commit is contained in:
Charles 2001-01-25 19:57:29 +00:00
parent 78ac121e9e
commit de136cdcf9
5 changed files with 86 additions and 39 deletions

View File

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

View File

@ -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;
}

View File

@ -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

View File

@ -92,19 +92,19 @@ void CNpc::processCloseSubSharkAttack( int _frames )
s32 xDist = playerPos.vx - Pos.vx;
s32 xDistSqr = xDist * xDist;
if ( xDist > 0 )
{
m_extendDir = EXTEND_RIGHT;
}
else
{
m_extendDir = EXTEND_LEFT;
}
switch( m_state )
{
case SUB_SHARK_MINE_1:
{
if ( xDist > 0 )
{
m_extendDir = EXTEND_RIGHT;
}
else
{
m_extendDir = EXTEND_LEFT;
}
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 );

View File

@ -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