This commit is contained in:
parent
47cf9e3071
commit
e0d7168d5c
@ -72,6 +72,7 @@ enemy_src := 2denemy \
|
|||||||
nhazard \
|
nhazard \
|
||||||
nffolk \
|
nffolk \
|
||||||
nocto \
|
nocto \
|
||||||
|
nfskull \
|
||||||
enemy
|
enemy
|
||||||
|
|
||||||
projectl_src := projectl
|
projectl_src := projectl
|
||||||
|
@ -83,7 +83,7 @@ void CNpc::processGenericGotoTarget( int _frames, s32 xDist, s32 yDist, s32 spee
|
|||||||
Pos.vy += moveY;
|
Pos.vy += moveY;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CNpc::processCloseGenericUserSeek( int _frames )
|
void CNpc::processGenericGetUserDist( int _frames, s32 *distX, s32 *distY )
|
||||||
{
|
{
|
||||||
s32 moveX = 0, moveY = 0;
|
s32 moveX = 0, moveY = 0;
|
||||||
|
|
||||||
@ -95,21 +95,6 @@ void CNpc::processCloseGenericUserSeek( int _frames )
|
|||||||
|
|
||||||
DVECTOR playerPos = player->getPos();
|
DVECTOR playerPos = player->getPos();
|
||||||
|
|
||||||
s32 xDist, yDist;
|
*distX = playerPos.vx - this->Pos.vx;
|
||||||
s32 xDistSqr, yDistSqr;
|
*distY = playerPos.vy - this->Pos.vy;
|
||||||
|
|
||||||
xDist = playerPos.vx - this->Pos.vx;
|
|
||||||
xDistSqr = xDist * xDist;
|
|
||||||
|
|
||||||
yDist = playerPos.vy - this->Pos.vy;
|
|
||||||
yDistSqr = yDist * yDist;
|
|
||||||
|
|
||||||
//if ( xDistSqr + yDistSqr > 22500 )
|
|
||||||
//{
|
|
||||||
//this->m_controlFunc = NPC_CONTROL_MOVEMENT;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
{
|
|
||||||
processGenericGotoTarget( _frames, xDist, yDist, m_data[m_type].speed );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
void CNpc::init()
|
void CNpc::init()
|
||||||
{
|
{
|
||||||
m_type = NPC_SMALL_JELLYFISH_1;
|
m_type = NPC_FLAMING_SKULL;
|
||||||
|
|
||||||
m_heading = m_fireHeading = 0;
|
m_heading = m_fireHeading = 0;
|
||||||
m_movementTimer = 0;
|
m_movementTimer = 0;
|
||||||
@ -266,6 +266,13 @@ void CNpc::init()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case NPC_FLAMING_SKULL:
|
||||||
|
{
|
||||||
|
m_state = FLAMING_SKULL_ATTACK;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -539,6 +546,7 @@ bool CNpc::processSensor()
|
|||||||
|
|
||||||
case NPC_SENSOR_ANEMONE_USER_CLOSE:
|
case NPC_SENSOR_ANEMONE_USER_CLOSE:
|
||||||
case NPC_SENSOR_EYEBALL_USER_CLOSE:
|
case NPC_SENSOR_EYEBALL_USER_CLOSE:
|
||||||
|
case NPC_SENSOR_FLAMING_SKULL_USER_CLOSE:
|
||||||
{
|
{
|
||||||
if ( xDistSqr + yDistSqr < 40000 )
|
if ( xDistSqr + yDistSqr < 40000 )
|
||||||
{
|
{
|
||||||
@ -849,9 +857,14 @@ void CNpc::processClose(int _frames)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NPC_CLOSE_GENERIC_USER_SEEK:
|
case NPC_CLOSE_GENERIC_USER_SEEK:
|
||||||
processCloseGenericUserSeek( _frames );
|
{
|
||||||
|
s32 distX, distY;
|
||||||
|
|
||||||
|
processGenericGetUserDist( _frames, &distX, &distY );
|
||||||
|
processGenericGotoTarget( _frames, distX, distY, m_data[m_type].speed );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case NPC_CLOSE_GHOST_PIRATE_ATTACK:
|
case NPC_CLOSE_GHOST_PIRATE_ATTACK:
|
||||||
processCloseGhostPirateAttack( _frames );
|
processCloseGhostPirateAttack( _frames );
|
||||||
@ -918,6 +931,11 @@ void CNpc::processClose(int _frames)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NPC_CLOSE_FLAMING_SKULL_ATTACK:
|
||||||
|
processCloseFlamingSkullAttack( _frames );
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,7 @@ protected:
|
|||||||
NPC_INIT_FIREBALL,
|
NPC_INIT_FIREBALL,
|
||||||
NPC_INIT_RETURNING_HAZARD,
|
NPC_INIT_RETURNING_HAZARD,
|
||||||
NPC_INIT_FISH_FOLK,
|
NPC_INIT_FISH_FOLK,
|
||||||
|
NPC_INIT_FLAMING_SKULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum NPC_CONTROL_FUNC
|
enum NPC_CONTROL_FUNC
|
||||||
@ -125,6 +126,7 @@ protected:
|
|||||||
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
|
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
|
||||||
NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
||||||
NPC_SENSOR_FISH_HOOK_USER_CLOSE,
|
NPC_SENSOR_FISH_HOOK_USER_CLOSE,
|
||||||
|
NPC_SENSOR_FLAMING_SKULL_USER_CLOSE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum NPC_CLOSE_FUNC
|
enum NPC_CLOSE_FUNC
|
||||||
@ -147,6 +149,7 @@ protected:
|
|||||||
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
||||||
NPC_CLOSE_FALLING_ITEM_FALL,
|
NPC_CLOSE_FALLING_ITEM_FALL,
|
||||||
NPC_CLOSE_FISH_HOOK_RISE,
|
NPC_CLOSE_FISH_HOOK_RISE,
|
||||||
|
NPC_CLOSE_FLAMING_SKULL_ATTACK,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum NPC_MOVEMENT_FUNC
|
enum NPC_MOVEMENT_FUNC
|
||||||
@ -208,6 +211,12 @@ protected:
|
|||||||
IRON_DOGFISH_LASER_EYE_2,
|
IRON_DOGFISH_LASER_EYE_2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum NPC_FLAMING_SKULL_STATE
|
||||||
|
{
|
||||||
|
FLAMING_SKULL_ATTACK = 0,
|
||||||
|
FLAMING_SKULL_RETURN = 1,
|
||||||
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
NPC_JELLYFISH_RESISTANCE = 64,
|
NPC_JELLYFISH_RESISTANCE = 64,
|
||||||
@ -244,7 +253,7 @@ protected:
|
|||||||
void processTimer( int _frames );
|
void processTimer( int _frames );
|
||||||
|
|
||||||
void processGenericGotoTarget( int _frames, s32 xDist, s32 yDist, s32 speed );
|
void processGenericGotoTarget( int _frames, s32 xDist, s32 yDist, s32 speed );
|
||||||
void processCloseGenericUserSeek( int _frames );
|
void processGenericGetUserDist( int _frames, s32 *distX, s32 *distY );
|
||||||
|
|
||||||
// small jellyfish functions
|
// small jellyfish functions
|
||||||
|
|
||||||
@ -285,6 +294,10 @@ protected:
|
|||||||
|
|
||||||
void processCloseEyeballAttack( int _frames );
|
void processCloseEyeballAttack( int _frames );
|
||||||
|
|
||||||
|
// flaming skull functions
|
||||||
|
|
||||||
|
void processCloseFlamingSkullAttack( int _frames );
|
||||||
|
|
||||||
// skull stomper functions
|
// skull stomper functions
|
||||||
|
|
||||||
void processCloseSkullStomperAttack( int _frames );
|
void processCloseSkullStomperAttack( int _frames );
|
||||||
|
@ -378,14 +378,14 @@ CNpc::NPC_DATA CNpc::m_data[NPC_UNIT_TYPE_MAX] =
|
|||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_FLAMING_SKULL
|
{ // NPC_FLAMING_SKULL
|
||||||
NPC_INIT_DEFAULT,
|
NPC_INIT_FLAMING_SKULL,
|
||||||
NPC_SENSOR_NONE,
|
NPC_SENSOR_FLAMING_SKULL_USER_CLOSE,
|
||||||
NPC_MOVEMENT_STATIC,
|
NPC_MOVEMENT_STATIC,
|
||||||
NPC_MOVEMENT_MODIFIER_NONE,
|
NPC_MOVEMENT_MODIFIER_NONE,
|
||||||
NPC_CLOSE_NONE,
|
NPC_CLOSE_FLAMING_SKULL_ATTACK,
|
||||||
NPC_TIMER_NONE,
|
NPC_TIMER_NONE,
|
||||||
false,
|
false,
|
||||||
0,
|
3,
|
||||||
128,
|
128,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -153,6 +153,10 @@ SOURCE=..\..\..\source\enemy\nffolk.cpp
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\enemy\nfskull.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\enemy\ngeneric.cpp
|
SOURCE=..\..\..\source\enemy\ngeneric.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
Loading…
Reference in New Issue
Block a user