This commit is contained in:
parent
265bb99546
commit
cb014a96f2
20 changed files with 513 additions and 379 deletions
|
@ -67,7 +67,7 @@ bool CNpcAnemoneEnemy::processSensor()
|
|||
}
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseAnemone1Attack( int _frames )
|
||||
void CNpcAnemone1Enemy::processClose( int _frames )
|
||||
{
|
||||
s32 moveX, moveY;
|
||||
s16 decDir, incDir, moveDist;
|
||||
|
@ -194,7 +194,7 @@ void CNpcEnemy::processCloseAnemone1Attack( int _frames )
|
|||
}
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseAnemone2Attack( int _frames )
|
||||
void CNpcAnemone2Enemy::processClose( int _frames )
|
||||
{
|
||||
int fireLoop;
|
||||
CProjectile *projectile;
|
||||
|
@ -260,7 +260,7 @@ void CNpcEnemy::processCloseAnemone2Attack( int _frames )
|
|||
}
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseAnemone3Attack( int _frames )
|
||||
void CNpcAnemone3Enemy::processClose( int _frames )
|
||||
{
|
||||
if ( m_animNo != ANIM_ANENOMELVL3_FIRE )
|
||||
{
|
||||
|
|
|
@ -26,14 +26,20 @@ protected:
|
|||
|
||||
class CNpcAnemone1Enemy : public CNpcAnemoneEnemy
|
||||
{
|
||||
protected:
|
||||
virtual void processClose( int _frames );
|
||||
};
|
||||
|
||||
class CNpcAnemone2Enemy : public CNpcAnemoneEnemy
|
||||
{
|
||||
protected:
|
||||
virtual void processClose( int _frames );
|
||||
};
|
||||
|
||||
class CNpcAnemone3Enemy : public CNpcAnemoneEnemy
|
||||
{
|
||||
protected:
|
||||
virtual void processClose( int _frames );
|
||||
};
|
||||
|
||||
#endif
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NBBLOB_H__
|
||||
#include "enemy\nbblob.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -23,8 +27,11 @@
|
|||
#include <ACTOR_BALLBLOB_ANIM.h>
|
||||
#endif
|
||||
|
||||
void CNpcEnemy::processBallBlobMovement( int _frames, s32 *moveX, s32 *moveY )
|
||||
void CNpcBallBlobEnemy::processMovement( int _frames )
|
||||
{
|
||||
s32 moveX = 0, moveY = 0;
|
||||
s32 moveVel = 0;
|
||||
s32 moveDist = 0;
|
||||
s32 waypointXDist;
|
||||
s32 waypointYDist;
|
||||
s32 waypointHeading;
|
||||
|
@ -36,8 +43,10 @@ void CNpcEnemy::processBallBlobMovement( int _frames, s32 *moveX, s32 *moveY )
|
|||
}
|
||||
else if ( m_animNo == ANIM_BALLBLOB_BOUNCE )
|
||||
{
|
||||
*moveX = 0;
|
||||
*moveY = 0;
|
||||
moveX = 0;
|
||||
moveY = 0;
|
||||
|
||||
processMovementModifier( _frames, moveX, moveY, moveVel, moveDist );
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -97,21 +106,21 @@ void CNpcEnemy::processBallBlobMovement( int _frames, s32 *moveX, s32 *moveY )
|
|||
s32 preShiftX = _frames * m_data[m_type].speed * rcos( m_heading );
|
||||
s32 preShiftY = _frames * m_data[m_type].speed * rsin( m_heading );
|
||||
|
||||
*moveX = preShiftX >> 12;
|
||||
if ( !(*moveX) && preShiftX )
|
||||
moveX = preShiftX >> 12;
|
||||
if ( !moveX && preShiftX )
|
||||
{
|
||||
*moveX = preShiftX / abs( preShiftX );
|
||||
moveX = preShiftX / abs( preShiftX );
|
||||
}
|
||||
|
||||
*moveY = preShiftY >> 12;
|
||||
if ( !(*moveY) && preShiftY )
|
||||
moveY = preShiftY >> 12;
|
||||
if ( !moveY && preShiftY )
|
||||
{
|
||||
*moveY = preShiftY / abs( preShiftY );
|
||||
moveY = preShiftY / abs( preShiftY );
|
||||
}
|
||||
|
||||
// deal with vertical
|
||||
|
||||
if ( Pos.vy < 0 || m_layerCollision->Get( ( Pos.vx + *moveX ) >> 4, ( Pos.vy + *moveY ) >> 4 ) )
|
||||
if ( Pos.vy < 0 || m_layerCollision->Get( ( Pos.vx + moveX ) >> 4, ( Pos.vy + moveY ) >> 4 ) )
|
||||
{
|
||||
// reflect heading in vertical
|
||||
|
||||
|
@ -126,16 +135,18 @@ void CNpcEnemy::processBallBlobMovement( int _frames, s32 *moveX, s32 *moveY )
|
|||
preShiftX = _frames * m_data[m_type].speed * rcos( m_heading );
|
||||
preShiftY = _frames * m_data[m_type].speed * rsin( m_heading );
|
||||
|
||||
*moveX = preShiftX >> 12;
|
||||
if ( !(*moveX) && preShiftX )
|
||||
moveX = preShiftX >> 12;
|
||||
if ( !moveX && preShiftX )
|
||||
{
|
||||
*moveX = preShiftX / abs( preShiftX );
|
||||
moveX = preShiftX / abs( preShiftX );
|
||||
}
|
||||
|
||||
*moveY = preShiftY >> 12;
|
||||
if ( !(*moveY) && preShiftY )
|
||||
moveY = preShiftY >> 12;
|
||||
if ( !moveY && preShiftY )
|
||||
{
|
||||
*moveY = preShiftY / abs( preShiftY );
|
||||
moveY = preShiftY / abs( preShiftY );
|
||||
}
|
||||
}
|
||||
|
||||
processMovementModifier( _frames, moveX, moveY, moveVel, moveDist );
|
||||
}
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NCLAM_H__
|
||||
#include "enemy\nclam.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -23,12 +27,43 @@
|
|||
#include "player\player.h"
|
||||
#endif
|
||||
|
||||
#ifndef __UTILS_HEADER__
|
||||
#include "utils\utils.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ANIM_CLAM_HEADER__
|
||||
#include <ACTOR_CLAM_ANIM.h>
|
||||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processCloseClamJumpAttack( int _frames )
|
||||
bool CNpcClamEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
m_extendDir = EXTEND_UP;
|
||||
m_extension = 0;
|
||||
m_movementTimer = GameState::getOneSecondInFrames() >> 3;
|
||||
m_velocity = ( getRnd() % 6 ) + 1;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcJumpingClamEnemy::processClose( int _frames )
|
||||
{
|
||||
s32 velocity;
|
||||
|
||||
|
@ -91,7 +126,7 @@ void CNpcEnemy::processCloseClamJumpAttack( int _frames )
|
|||
}
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseClamSnapAttack( int _frames )
|
||||
void CNpcStaticClamEnemy::processClose( int _frames )
|
||||
{
|
||||
if ( !m_animPlaying )
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*=========================================================================
|
||||
|
||||
nclam.cpp
|
||||
nclam.h
|
||||
|
||||
Author: CRB
|
||||
Created:
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NEYEBALL_H__
|
||||
#include "enemy\neyeball.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -28,7 +32,40 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processCloseEyeballAttack( int _frames )
|
||||
void CNpcEyeballEnemy::postInit()
|
||||
{
|
||||
CProjectile *projectile;
|
||||
projectile = new ( "eyeball projectile" ) CProjectile;
|
||||
projectile->init( Pos, m_fireHeading, CProjectile::PROJECTILE_FIXED, CProjectile::PROJECTILE_INFINITE_LIFE );
|
||||
projectile->setLayerCollision( m_layerCollision );
|
||||
|
||||
addChild( projectile );
|
||||
}
|
||||
|
||||
bool CNpcEyeballEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 40000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcEyeballEnemy::processClose( int _frames )
|
||||
{
|
||||
if ( Next )
|
||||
{
|
||||
|
@ -42,4 +79,14 @@ void CNpcEnemy::processCloseEyeballAttack( int _frames )
|
|||
projectile->setState( CProjectile::PROJECTILE_ATTACK );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CProjectile *projectile;
|
||||
projectile = new ( "eyeball projectile" ) CProjectile;
|
||||
projectile->init( Pos, m_fireHeading, CProjectile::PROJECTILE_USER_SEEK, CProjectile::PROJECTILE_INFINITE_LIFE );
|
||||
projectile->setLayerCollision( m_layerCollision );
|
||||
projectile->setState( CProjectile::PROJECTILE_ATTACK );
|
||||
|
||||
addChild( projectile );
|
||||
}
|
||||
}
|
25
source/enemy/neyeball.h
Normal file
25
source/enemy/neyeball.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
/*=========================================================================
|
||||
|
||||
neyeball.h
|
||||
|
||||
Author: CRB
|
||||
Created:
|
||||
Project: Spongebob
|
||||
Purpose:
|
||||
|
||||
Copyright (c) 2000 Climax Development Ltd
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
#ifndef __ENEMY_NEYEBALL_H__
|
||||
#define __ENEMY_NEYEBALL_H__
|
||||
|
||||
class CNpcEyeballEnemy : public CNpcEnemy
|
||||
{
|
||||
virtual void postInit();
|
||||
protected:
|
||||
virtual bool processSensor();
|
||||
virtual void processClose( int _frames );
|
||||
};
|
||||
|
||||
#endif
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NFFOLK_H__
|
||||
#include "enemy\nffolk.h"
|
||||
#endif
|
||||
|
||||
#ifndef __UTILS_HEADER__
|
||||
#include "utils\utils.h"
|
||||
#endif
|
||||
|
@ -24,7 +28,7 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processFishFolkMovementModifier( int _frames, s32 distX, s32 distY )
|
||||
void CNpcFishFolk::processMovementModifier( int _frames, s32 distX, s32 distY, s32 dist, s16 headingChange )
|
||||
{
|
||||
Pos.vy += distY;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*=========================================================================
|
||||
|
||||
nffolk.cpp
|
||||
nfskull.cpp
|
||||
|
||||
Author: CRB
|
||||
Created:
|
||||
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NFSKULL_H__
|
||||
#include "enemy\nfskull.h"
|
||||
#endif
|
||||
|
||||
#ifndef __PLAYER_PLAYER_H__
|
||||
#include "player\player.h"
|
||||
#endif
|
||||
|
@ -24,7 +28,35 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processCloseFlamingSkullAttack( int _frames )
|
||||
void CNpcFlamingSkullEnemy::postInit()
|
||||
{
|
||||
m_state = FLAMING_SKULL_ATTACK;
|
||||
}
|
||||
|
||||
bool CNpcFlamingSkullEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 40000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcFlamingSkullEnemy::processClose( int _frames )
|
||||
{
|
||||
s32 distX, distY;
|
||||
s32 distXSqr, distYSqr;
|
||||
|
|
31
source/enemy/nfskull.h
Normal file
31
source/enemy/nfskull.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*=========================================================================
|
||||
|
||||
nfskull.h
|
||||
|
||||
Author: CRB
|
||||
Created:
|
||||
Project: Spongebob
|
||||
Purpose:
|
||||
|
||||
Copyright (c) 2000 Climax Development Ltd
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
#ifndef __ENEMY_NFSKULL_H__
|
||||
#define __ENEMY_NFSKULL_H__
|
||||
|
||||
class CNpcFlamingSkullEnemy : public CNpcEnemy
|
||||
{
|
||||
virtual void postInit();
|
||||
protected:
|
||||
virtual bool processSensor();
|
||||
virtual void processClose( int _frames );
|
||||
|
||||
enum NPC_FLAMING_SKULL_STATE
|
||||
{
|
||||
FLAMING_SKULL_ATTACK = 0,
|
||||
FLAMING_SKULL_RETURN = 1,
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NGPIRATE_H__
|
||||
#include "enemy\ngpirate.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -28,7 +32,34 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processCloseGhostPirateAttack( int _frames )
|
||||
bool CNpcGhostPirateEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
m_extendDir = EXTEND_UP;
|
||||
m_extension = 0;
|
||||
m_movementTimer = GameState::getOneSecondInFrames() >> 1;
|
||||
m_velocity = 4;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcGhostPirateEnemy::processClose( int _frames )
|
||||
{
|
||||
s32 velocity;
|
||||
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NOCTO_H__
|
||||
#include "enemy\nocto.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -31,10 +35,34 @@
|
|||
#include <ACTOR_BABYOCTOPUS_ANIM.h>
|
||||
#endif
|
||||
|
||||
void CNpcEnemy::processBabyOctopusMovementModifier( int _frames, s32 dist, s16 headingChange )
|
||||
bool CNpcBabyOctopusEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 400 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcBabyOctopusEnemy::processMovementModifier( int _frames, s32 distX, s32 distY, s32 dist, s16 headingChange )
|
||||
{
|
||||
s32 newX, newY;
|
||||
s32 preShiftX, preShiftY;
|
||||
s16 headingVal;
|
||||
|
||||
//u16 octopusData[11] = { 96, 192, 256, 256, 256, 192, 192, 192, 128, 128, 96 };
|
||||
u16 octopusData[11] = { 96, 256, 96, 256, 96, 256, 96, 256, 96, 256, 96 };
|
||||
|
@ -77,9 +105,15 @@ void CNpcEnemy::processBabyOctopusMovementModifier( int _frames, s32 dist, s16 h
|
|||
|
||||
m_velocity += resistance;
|
||||
|
||||
headingVal = abs( headingChange );
|
||||
if ( headingVal > 128 )
|
||||
{
|
||||
headingVal = 128;
|
||||
}
|
||||
|
||||
reqVelocity = dist * octopusData[dataPoint];
|
||||
reqVelocity >>= 8;
|
||||
reqVelocity *= 128 + ( 128 - headingChange );
|
||||
reqVelocity *= 128 + ( 128 - headingVal );
|
||||
reqVelocity >>= 8;
|
||||
|
||||
s32 absReqVelocity = abs( reqVelocity );
|
||||
|
@ -108,9 +142,9 @@ void CNpcEnemy::processBabyOctopusMovementModifier( int _frames, s32 dist, s16 h
|
|||
Pos.vy += newY;
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseOctopusAttack( int _frames )
|
||||
void CNpcBabyOctopusEnemy::processClose( int _frames )
|
||||
{
|
||||
if ( !m_animPlaying || m_animNo == m_data[m_type].initAnim || m_animNo == m_data[m_type].moveAnim )
|
||||
if ( m_animNo == m_data[m_type].initAnim || m_animNo == m_data[m_type].moveAnim )
|
||||
{
|
||||
// not playing an attack anim, hence choose one
|
||||
|
||||
|
@ -142,7 +176,9 @@ void CNpcEnemy::processCloseOctopusAttack( int _frames )
|
|||
|
||||
m_animPlaying = true;
|
||||
m_frame = 0;
|
||||
|
||||
}
|
||||
else if ( !m_animPlaying )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_MOVEMENT;
|
||||
m_timerFunc = NPC_TIMER_ATTACK_DONE;
|
||||
m_timerTimer = GameState::getOneSecondInFrames();
|
||||
|
|
|
@ -423,25 +423,6 @@ void CNpcEnemy::postInit()
|
|||
break;
|
||||
}
|
||||
|
||||
case NPC_INIT_FLAMING_SKULL:
|
||||
{
|
||||
m_state = FLAMING_SKULL_ATTACK;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_INIT_EYEBALL:
|
||||
{
|
||||
CProjectile *projectile;
|
||||
projectile = new ( "eyeball projectile" ) CProjectile;
|
||||
projectile->init( Pos, m_fireHeading, CProjectile::PROJECTILE_FIXED, CProjectile::PROJECTILE_INFINITE_LIFE );
|
||||
projectile->setLayerCollision( m_layerCollision );
|
||||
|
||||
addChild( projectile );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_INIT_ANEMONE_2:
|
||||
{
|
||||
CProjectile *projectile;
|
||||
|
@ -821,24 +802,6 @@ bool CNpcEnemy::processSensor()
|
|||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_CLAM_USER_CLOSE:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
m_extendDir = EXTEND_UP;
|
||||
m_extension = 0;
|
||||
m_movementTimer = GameState::getOneSecondInFrames() >> 3;
|
||||
m_velocity = ( getRnd() % 6 ) + 1;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_OIL_BLOB_USER_CLOSE:
|
||||
case NPC_SENSOR_NINJA_STARFISH_USER_CLOSE:
|
||||
{
|
||||
|
@ -855,24 +818,6 @@ bool CNpcEnemy::processSensor()
|
|||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_GHOST_PIRATE_USER_CLOSE:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
m_extendDir = EXTEND_UP;
|
||||
m_extension = 0;
|
||||
m_movementTimer = GameState::getOneSecondInFrames() >> 1;
|
||||
m_velocity = 4;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_GENERIC_USER_VISIBLE:
|
||||
{
|
||||
s32 xDistWaypoint, yDistWaypoint;
|
||||
|
@ -975,8 +920,6 @@ bool CNpcEnemy::processSensor()
|
|||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_EYEBALL_USER_CLOSE:
|
||||
case NPC_SENSOR_FLAMING_SKULL_USER_CLOSE:
|
||||
case NPC_SENSOR_PARASITIC_WORM_USER_CLOSE:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 40000 )
|
||||
|
@ -1035,23 +978,7 @@ bool CNpcEnemy::processSensor()
|
|||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_PUFFA_FISH_USER_CLOSE:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_state = PUFFA_FISH_NO_INFLATE;
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
|
||||
case NPC_SENSOR_FISH_HOOK_USER_CLOSE:
|
||||
case NPC_SENSOR_OCTOPUS_USER_CLOSE:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 400 )
|
||||
{
|
||||
|
@ -1093,10 +1020,10 @@ bool CNpcEnemy::processSensor()
|
|||
|
||||
void CNpcEnemy::processMovement(int _frames)
|
||||
{
|
||||
if ( _frames > 2 )
|
||||
{
|
||||
_frames = 2;
|
||||
}
|
||||
//if ( _frames > 2 )
|
||||
//{
|
||||
//_frames = 2;
|
||||
//}
|
||||
|
||||
s32 moveX = 0, moveY = 0;
|
||||
s32 moveVel = 0;
|
||||
|
@ -1212,20 +1139,6 @@ void CNpcEnemy::processMovement(int _frames)
|
|||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_SHARK_MAN:
|
||||
{
|
||||
processSharkManMovement( _frames, &moveX, &moveY );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_BALL_BLOB:
|
||||
{
|
||||
processBallBlobMovement( _frames, &moveX, &moveY );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
|
||||
break;
|
||||
|
@ -1237,36 +1150,9 @@ void CNpcEnemy::processMovement(int _frames)
|
|||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CNpcEnemy::processMovementModifier(int _frames, s32 distX, s32 distY, s32 dist, s16 headingChange)
|
||||
{
|
||||
switch( m_data[m_type].movementModifierFunc )
|
||||
{
|
||||
case NPC_MOVEMENT_MODIFIER_NONE:
|
||||
{
|
||||
Pos.vx += distX;
|
||||
Pos.vy += distY;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_MODIFIER_BOB:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_MODIFIER_FISH_FOLK:
|
||||
{
|
||||
processFishFolkMovementModifier( _frames, distX, distY );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case NPC_MOVEMENT_MODIFIER_OCTOPUS:
|
||||
{
|
||||
processBabyOctopusMovementModifier( _frames, dist, headingChange );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1367,16 +1253,6 @@ void CNpcEnemy::processClose(int _frames)
|
|||
{
|
||||
switch( m_data[this->m_type].closeFunc )
|
||||
{
|
||||
case NPC_CLOSE_CLAM_JUMP_ATTACK:
|
||||
processCloseClamJumpAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_CLAM_SNAP_ATTACK:
|
||||
processCloseClamSnapAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_GENERIC_USER_SEEK:
|
||||
{
|
||||
processGenericGotoTarget( _frames, playerXDist, playerYDist, m_data[m_type].speed );
|
||||
|
@ -1384,36 +1260,6 @@ void CNpcEnemy::processClose(int _frames)
|
|||
break;
|
||||
}
|
||||
|
||||
case NPC_CLOSE_GHOST_PIRATE_ATTACK:
|
||||
processCloseGhostPirateAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_SHARK_MAN_ATTACK:
|
||||
processCloseSharkManAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_ANEMONE_1_ATTACK:
|
||||
processCloseAnemone1Attack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_ANEMONE_2_ATTACK:
|
||||
processCloseAnemone2Attack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_ANEMONE_3_ATTACK:
|
||||
processCloseAnemone3Attack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_EYEBALL_ATTACK:
|
||||
processCloseEyeballAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_SKULL_STOMPER_ATTACK:
|
||||
processCloseSkullStomperAttack( _frames );
|
||||
|
||||
|
@ -1454,26 +1300,6 @@ void CNpcEnemy::processClose(int _frames)
|
|||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_FLAMING_SKULL_ATTACK:
|
||||
processCloseFlamingSkullAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_SKELETAL_FISH_ATTACK:
|
||||
processCloseSkeletalFishAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_OCTOPUS_ATTACK:
|
||||
processCloseOctopusAttack( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_PUFFA_FISH_INFLATE:
|
||||
processClosePuffaFishInflate( _frames );
|
||||
|
||||
break;
|
||||
|
||||
case NPC_CLOSE_PARASITIC_WORM_ATTACK:
|
||||
processCloseParasiticWormAttack( _frames );
|
||||
|
||||
|
|
|
@ -70,7 +70,6 @@ protected:
|
|||
//NPC_FRIEND_INIT_FUNC initFunc;
|
||||
//NPC_FRIEND_SENSOR_FUNC sensorFunc;
|
||||
NPC_FRIEND_MOVEMENT_FUNC movementFunc;
|
||||
//NPC_FRIEND_MOVEMENT_MODIFIER_FUNC movementModifierFunc;
|
||||
//NPC_FRIEND_CLOSE_FUNC closeFunc;
|
||||
//NPC_FRIEND_TIMER_FUNC timerFunc;
|
||||
bool canTalk;
|
||||
|
@ -160,7 +159,7 @@ public:
|
|||
};
|
||||
|
||||
void init();
|
||||
void postInit();
|
||||
virtual void postInit();
|
||||
void shutdown();
|
||||
virtual void think(int _frames);
|
||||
virtual void render();
|
||||
|
@ -201,12 +200,10 @@ protected:
|
|||
NPC_INIT_FIREBALL,
|
||||
NPC_INIT_RETURNING_HAZARD,
|
||||
NPC_INIT_FISH_FOLK,
|
||||
NPC_INIT_FLAMING_SKULL,
|
||||
NPC_INIT_CIRCULAR_PLATFORM,
|
||||
NPC_INIT_PARASITIC_WORM,
|
||||
NPC_INIT_PARASITIC_WORM_SEGMENT,
|
||||
NPC_INIT_HERMIT_CRAB,
|
||||
NPC_INIT_EYEBALL,
|
||||
NPC_INIT_BALL_BLOB,
|
||||
NPC_INIT_ANEMONE_2,
|
||||
NPC_INIT_SPIDER_CRAB,
|
||||
|
@ -225,35 +222,21 @@ protected:
|
|||
{
|
||||
NPC_SENSOR_NONE = 0,
|
||||
NPC_SENSOR_USER_CLOSE = 1,
|
||||
NPC_SENSOR_CLAM_USER_CLOSE,
|
||||
NPC_SENSOR_NINJA_STARFISH_USER_CLOSE,
|
||||
NPC_SENSOR_GHOST_PIRATE_USER_CLOSE,
|
||||
NPC_SENSOR_GENERIC_USER_VISIBLE,
|
||||
NPC_SENSOR_OIL_BLOB_USER_CLOSE,
|
||||
NPC_SENSOR_EYEBALL_USER_CLOSE,
|
||||
NPC_SENSOR_SKULL_STOMPER_USER_CLOSE,
|
||||
NPC_SENSOR_BOOGER_MONSTER_USER_CLOSE,
|
||||
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
|
||||
NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
||||
NPC_SENSOR_FISH_HOOK_USER_CLOSE,
|
||||
NPC_SENSOR_FLAMING_SKULL_USER_CLOSE,
|
||||
NPC_SENSOR_OCTOPUS_USER_CLOSE,
|
||||
NPC_SENSOR_PUFFA_FISH_USER_CLOSE,
|
||||
NPC_SENSOR_PARASITIC_WORM_USER_CLOSE,
|
||||
};
|
||||
|
||||
enum NPC_CLOSE_FUNC
|
||||
{
|
||||
NPC_CLOSE_NONE = 0,
|
||||
NPC_CLOSE_CLAM_JUMP_ATTACK = 1,
|
||||
NPC_CLOSE_CLAM_SNAP_ATTACK,
|
||||
NPC_CLOSE_GHOST_PIRATE_ATTACK,
|
||||
NPC_CLOSE_SHARK_MAN_ATTACK,
|
||||
NPC_CLOSE_GENERIC_USER_SEEK,
|
||||
NPC_CLOSE_ANEMONE_1_ATTACK,
|
||||
NPC_CLOSE_ANEMONE_2_ATTACK,
|
||||
NPC_CLOSE_ANEMONE_3_ATTACK,
|
||||
NPC_CLOSE_EYEBALL_ATTACK,
|
||||
NPC_CLOSE_GENERIC_USER_SEEK = 1,
|
||||
NPC_CLOSE_SKULL_STOMPER_ATTACK,
|
||||
NPC_CLOSE_BOOGER_MONSTER_ATTACK,
|
||||
NPC_CLOSE_MOTHER_JELLYFISH_ATTACK,
|
||||
|
@ -262,11 +245,7 @@ protected:
|
|||
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
||||
NPC_CLOSE_FALLING_ITEM_FALL,
|
||||
NPC_CLOSE_FISH_HOOK_RISE,
|
||||
NPC_CLOSE_FLAMING_SKULL_ATTACK,
|
||||
NPC_CLOSE_SKELETAL_FISH_ATTACK,
|
||||
NPC_CLOSE_HERMIT_CRAB_ATTACK,
|
||||
NPC_CLOSE_OCTOPUS_ATTACK,
|
||||
NPC_CLOSE_PUFFA_FISH_INFLATE,
|
||||
NPC_CLOSE_PARASITIC_WORM_ATTACK,
|
||||
};
|
||||
|
||||
|
@ -285,20 +264,10 @@ protected:
|
|||
NPC_MOVEMENT_CLAM_RETRACT,
|
||||
NPC_MOVEMENT_PARASITIC_WORM,
|
||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||
NPC_MOVEMENT_SHARK_MAN,
|
||||
NPC_MOVEMENT_BALL_BLOB,
|
||||
NPC_MOVEMENT_RETURNING_HAZARD_GROUND,
|
||||
NPC_MOVEMENT_SPIDER_CRAB_INITJUMP,
|
||||
};
|
||||
|
||||
enum NPC_MOVEMENT_MODIFIER_FUNC
|
||||
{
|
||||
NPC_MOVEMENT_MODIFIER_NONE = 0,
|
||||
NPC_MOVEMENT_MODIFIER_BOB = 1,
|
||||
NPC_MOVEMENT_MODIFIER_FISH_FOLK,
|
||||
NPC_MOVEMENT_MODIFIER_OCTOPUS,
|
||||
};
|
||||
|
||||
enum NPC_TIMER_FUNC
|
||||
{
|
||||
NPC_TIMER_NONE = 0,
|
||||
|
@ -350,12 +319,6 @@ protected:
|
|||
IRON_DOGFISH_LASER_EYE_2,
|
||||
};
|
||||
|
||||
enum NPC_FLAMING_SKULL_STATE
|
||||
{
|
||||
FLAMING_SKULL_ATTACK = 0,
|
||||
FLAMING_SKULL_RETURN = 1,
|
||||
};
|
||||
|
||||
enum NPC_HERMIT_CRAB_STATE
|
||||
{
|
||||
HERMIT_CRAB_NO_ATTACK = 0,
|
||||
|
@ -363,13 +326,6 @@ protected:
|
|||
HERMIT_CRAB_ROLL_ATTACK,
|
||||
};
|
||||
|
||||
enum NPC_PUFFA_FISH_STATE
|
||||
{
|
||||
PUFFA_FISH_NO_INFLATE = 0,
|
||||
PUFFA_FISH_TURN = 1,
|
||||
PUFFA_FISH_INFLATE,
|
||||
};
|
||||
|
||||
enum NPC_GENERIC_HIT_STATE
|
||||
{
|
||||
NPC_GENERIC_HIT_CHECK_HEALTH = 100,
|
||||
|
@ -411,7 +367,6 @@ protected:
|
|||
NPC_INIT_FUNC initFunc;
|
||||
NPC_SENSOR_FUNC sensorFunc;
|
||||
NPC_MOVEMENT_FUNC movementFunc;
|
||||
NPC_MOVEMENT_MODIFIER_FUNC movementModifierFunc;
|
||||
NPC_CLOSE_FUNC closeFunc;
|
||||
NPC_TIMER_FUNC timerFunc;
|
||||
bool canTalk;
|
||||
|
@ -450,56 +405,6 @@ protected:
|
|||
|
||||
void reinit();
|
||||
|
||||
// small jellyfish functions
|
||||
|
||||
void processSmallJellyfishSensor();
|
||||
void processCloseSmallJellyfishEvade( int _frames );
|
||||
|
||||
// baby octopus functions
|
||||
|
||||
void processBabyOctopusMovementModifier( int _frames, s32 dist, s16 headingChange );
|
||||
void processCloseOctopusAttack( int _frames );
|
||||
|
||||
// fish folk functions
|
||||
|
||||
void processFishFolkMovementModifier( int _frames, s32 distX, s32 distY );
|
||||
|
||||
// ball blob functions
|
||||
|
||||
void processBallBlobMovement( int _frames, s32 *moveX, s32 *moveY );
|
||||
|
||||
// clam functions
|
||||
|
||||
void processCloseClamJumpAttack( int _frames );
|
||||
void processCloseClamSnapAttack( int _frames );
|
||||
|
||||
// ghost pirate functions
|
||||
|
||||
void processCloseGhostPirateAttack( int _frames );
|
||||
|
||||
// puffa fish functions
|
||||
|
||||
void processClosePuffaFishInflate( int _frames );
|
||||
|
||||
// shark man functions
|
||||
|
||||
void processSharkManMovement( int _frames, s32 *moveX, s32 *moveY );
|
||||
void processCloseSharkManAttack( int _frames );
|
||||
|
||||
// anemone functions
|
||||
|
||||
void processCloseAnemone1Attack( int _frames );
|
||||
void processCloseAnemone2Attack( int _frames );
|
||||
void processCloseAnemone3Attack( int _frames );
|
||||
|
||||
// skeletal fish functions
|
||||
|
||||
void processCloseSkeletalFishAttack( int _frames );
|
||||
|
||||
// eyeball functions
|
||||
|
||||
void processCloseEyeballAttack( int _frames );
|
||||
|
||||
// flaming skull functions
|
||||
|
||||
void processCloseFlamingSkullAttack( int _frames );
|
||||
|
|
|
@ -321,7 +321,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
//NPC_SENSOR_FALLING_ITEM_USER_CLOSE,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_FALLING_ITEM_FALL,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -344,7 +343,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
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,
|
||||
|
@ -367,7 +365,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_RETURNING_HAZARD,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_RETURNING_HAZARD_GROUND,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -390,7 +387,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_PENDULUM,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_PENDULUM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -413,7 +409,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_FIREBALL,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIREBALL,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -436,7 +431,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_RETURNING_HAZARD,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_RETURNING_HAZARD,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -459,7 +453,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -482,7 +475,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -505,8 +497,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_ANEMONE_1_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -528,8 +519,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_ANEMONE_2,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_ANEMONE_2_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -551,8 +541,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_ANEMONE_3_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -574,8 +563,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_GENERIC_USER_VISIBLE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_SKELETAL_FISH_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
3,
|
||||
|
@ -595,10 +583,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_CLAM_SBK,
|
||||
ANIM_CLAM_SIDESNAP,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_CLAM_USER_CLOSE,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_CLAM_JUMP_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -618,10 +605,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_CLAM_SBK,
|
||||
ANIM_CLAM_SIDESNAP,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_CLAM_USER_CLOSE,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_CLAM_SNAP_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -643,7 +629,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -666,7 +651,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_FISH_FOLK,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH_WALK,
|
||||
NPC_MOVEMENT_MODIFIER_FISH_FOLK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -689,7 +673,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH_WALK,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -712,7 +695,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -733,10 +715,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_PUFFAFISH_SBK,
|
||||
ANIM_PUFFAFISH_PUFFUPIDLE,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_PUFFA_FISH_USER_CLOSE,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_PUFFA_FISH_INFLATE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
2,
|
||||
|
@ -758,7 +739,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -781,7 +761,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_HERMIT_CRAB,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH_WALK,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_HERMIT_CRAB_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -804,7 +783,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -827,7 +805,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_BOOGER_MONSTER_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_BOOGER_MONSTER_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -850,7 +827,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_SPIDER_CRAB,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH_WALK,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -873,7 +849,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -893,11 +868,10 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
{ // NPC_EYEBALL
|
||||
ACTORS_EYEBALL_SBK,
|
||||
ANIM_EYEBALL_STALK,
|
||||
NPC_INIT_EYEBALL,
|
||||
NPC_SENSOR_EYEBALL_USER_CLOSE,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_EYEBALL_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -917,10 +891,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_BABYOCTOPUS_SBK,
|
||||
ANIM_BABYOCTOPUS_IDLE,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_OCTOPUS_USER_CLOSE,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_OCTOPUS,
|
||||
NPC_CLOSE_OCTOPUS_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
2,
|
||||
|
@ -942,7 +915,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_FISH_FOLK,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH_WALK,
|
||||
NPC_MOVEMENT_MODIFIER_FISH_FOLK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -965,7 +937,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NINJA_STARFISH_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_GENERIC_USER_SEEK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -988,7 +959,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FIXED_PATH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1009,10 +979,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ACTORS_CLAM_SBK,
|
||||
ANIM_CLAM_SIDESNAP,
|
||||
NPC_INIT_GHOST_PIRATE,
|
||||
NPC_SENSOR_GHOST_PIRATE_USER_CLOSE,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_GHOST_PIRATE_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
0,
|
||||
|
@ -1031,11 +1000,10 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
{ // NPC_FLAMING_SKULL
|
||||
ACTORS_FLAMINGSKULL_SBK,
|
||||
ANIM_FLAMINGSKULL_MOVE,
|
||||
NPC_INIT_FLAMING_SKULL,
|
||||
NPC_SENSOR_FLAMING_SKULL_USER_CLOSE,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_FLAMING_SKULL_ATTACK,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
3,
|
||||
|
@ -1056,9 +1024,8 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ANIM_SHARKMAN_IDLE1_,
|
||||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_GENERIC_USER_VISIBLE,
|
||||
NPC_MOVEMENT_SHARK_MAN,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_SHARK_MAN_ATTACK,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
3,
|
||||
|
@ -1080,7 +1047,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_DEFAULT,
|
||||
NPC_SENSOR_OIL_BLOB_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_GENERIC_USER_SEEK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1103,7 +1069,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_SKULL_STOMPER,
|
||||
NPC_SENSOR_SKULL_STOMPER_USER_CLOSE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_SKULL_STOMPER_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1126,7 +1091,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_MOTHER_JELLYFISH,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_MOTHER_JELLYFISH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_MOTHER_JELLYFISH_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1149,7 +1113,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_SUB_SHARK,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_SUB_SHARK,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_SUB_SHARK_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1172,7 +1135,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_PARASITIC_WORM,
|
||||
NPC_SENSOR_PARASITIC_WORM_USER_CLOSE,
|
||||
NPC_MOVEMENT_PARASITIC_WORM,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_PARASITIC_WORM_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1195,7 +1157,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_FLYING_DUTCHMAN,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_FLYING_DUTCHMAN,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_FLYING_DUTCHMAN_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1218,7 +1179,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_IRON_DOGFISH,
|
||||
NPC_SENSOR_IRON_DOGFISH_USER_CLOSE,
|
||||
NPC_MOVEMENT_IRON_DOGFISH,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_IRON_DOGFISH_ATTACK,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1241,7 +1201,6 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
NPC_INIT_PARASITIC_WORM_SEGMENT,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
@ -1263,8 +1222,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
ANIM_BALLBLOB_WOBBLE,
|
||||
NPC_INIT_BALL_BLOB,
|
||||
NPC_SENSOR_NONE,
|
||||
NPC_MOVEMENT_BALL_BLOB,
|
||||
NPC_MOVEMENT_MODIFIER_NONE,
|
||||
NPC_MOVEMENT_STATIC,
|
||||
NPC_CLOSE_NONE,
|
||||
NPC_TIMER_NONE,
|
||||
false,
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NPUFFA_H__
|
||||
#include "enemy\npuffa.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -24,7 +28,31 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processClosePuffaFishInflate( int _frames )
|
||||
bool CNpcPuffaFishEnemy::processSensor()
|
||||
{
|
||||
switch( m_sensorFunc )
|
||||
{
|
||||
case NPC_SENSOR_NONE:
|
||||
return( false );
|
||||
|
||||
default:
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr < 10000 )
|
||||
{
|
||||
m_state = PUFFA_FISH_NO_INFLATE;
|
||||
m_controlFunc = NPC_CONTROL_CLOSE;
|
||||
|
||||
return( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CNpcPuffaFishEnemy::processClose( int _frames )
|
||||
{
|
||||
if ( playerXDistSqr + playerYDistSqr > 15000 )
|
||||
{
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NSHRKMAN_H__
|
||||
#include "enemy\nshrkman.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -32,15 +36,17 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processSharkManMovement( int _frames, s32 *moveX, s32 *moveY )
|
||||
void CNpcSharkManEnemy::processMovement( int _frames )
|
||||
{
|
||||
s32 moveX = 0, moveY = 0;
|
||||
|
||||
if ( m_movementTimer > 0 )
|
||||
{
|
||||
m_movementTimer -= _frames;
|
||||
|
||||
if ( m_animNo == m_data[m_type].moveAnim )
|
||||
{
|
||||
processGenericFixedPathWalk( _frames, moveX, moveY );
|
||||
processGenericFixedPathWalk( _frames, &moveX, &moveY );
|
||||
}
|
||||
|
||||
if ( !m_animPlaying )
|
||||
|
@ -111,9 +117,11 @@ void CNpcEnemy::processSharkManMovement( int _frames, s32 *moveX, s32 *moveY )
|
|||
m_animPlaying = true;
|
||||
m_frame = 0;
|
||||
}
|
||||
|
||||
processMovementModifier( _frames, moveX, moveY, 0, 0 );
|
||||
}
|
||||
|
||||
void CNpcEnemy::processCloseSharkManAttack( int _frames )
|
||||
void CNpcSharkManEnemy::processClose( int _frames )
|
||||
{
|
||||
s32 moveX = 0, moveY = 0;
|
||||
s32 groundHeight;
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "enemy\npc.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NSKLFISH_H__
|
||||
#include "enemy\nsklfish.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
@ -28,7 +32,7 @@
|
|||
#endif
|
||||
|
||||
|
||||
void CNpcEnemy::processCloseSkeletalFishAttack( int _frames )
|
||||
void CNpcSkeletalFishEnemy::processClose( int _frames )
|
||||
{
|
||||
s32 moveX, moveY;
|
||||
s16 decDir, incDir, moveDist;
|
||||
|
|
|
@ -47,6 +47,46 @@
|
|||
#include "enemy\nanemone.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NCLAM_H__
|
||||
#include "enemy\nclam.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NOCTO_H__
|
||||
#include "enemy\nocto.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NFFOLK_H__
|
||||
#include "enemy\nffolk.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NBBLOB_H__
|
||||
#include "enemy\nbblob.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NGPIRATE_H__
|
||||
#include "enemy\ngpirate.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NPUFFA_H__
|
||||
#include "enemy\npuffa.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NSHRKMAN_H__
|
||||
#include "enemy\nshrkman.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NSKLFISH_H__
|
||||
#include "enemy\nsklfish.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NEYEBALL_H__
|
||||
#include "enemy\neyeball.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NFSKULL_H__
|
||||
#include "enemy\nfskull.h"
|
||||
#endif
|
||||
|
||||
#ifndef __ENEMY_NPLATFRM_H__
|
||||
#include "enemy\nplatfrm.h"
|
||||
#endif
|
||||
|
@ -373,6 +413,73 @@ void CGameScene::initLevel()
|
|||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_CLAM_JUMP:
|
||||
{
|
||||
enemy = new ("jumping clam") CNpcJumpingClamEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_CLAM_STATIC:
|
||||
{
|
||||
enemy = new ("static clam") CNpcStaticClamEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_BABY_OCTOPUS:
|
||||
{
|
||||
enemy = new ("baby octopus") CNpcBabyOctopusEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_FISH_FOLK:
|
||||
case CNpcEnemy::NPC_ZOMBIE_FISH_FOLK:
|
||||
{
|
||||
enemy = new ("fish folk") CNpcFishFolk;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_BALL_BLOB:
|
||||
{
|
||||
enemy = new ("ball blob") CNpcBallBlobEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_GHOST_PIRATE:
|
||||
{
|
||||
enemy = new ("ghost pirate") CNpcGhostPirateEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_PUFFA_FISH:
|
||||
{
|
||||
enemy = new ("puffa fish") CNpcPuffaFishEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SHARK_MAN:
|
||||
{
|
||||
enemy = new ("shark man") CNpcSharkManEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_SKELETAL_FISH:
|
||||
{
|
||||
enemy = new ("skeletal fish") CNpcSkeletalFishEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_EYEBALL:
|
||||
{
|
||||
enemy = new ("eyeball") CNpcEyeballEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
case CNpcEnemy::NPC_FLAMING_SKULL:
|
||||
{
|
||||
enemy = new ("flaming skull") CNpcFlamingSkullEnemy;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
enemy = new ("npc enemy") CNpcEnemy;
|
||||
|
|
|
@ -121,6 +121,10 @@ SOURCE=..\..\..\source\enemy\nbblob.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nbblob.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nbooger.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -129,6 +133,10 @@ SOURCE=..\..\..\source\enemy\nclam.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nclam.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\ndogfish.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -137,6 +145,10 @@ SOURCE=..\..\..\source\enemy\neyeball.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\neyeball.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nfdutch.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -145,10 +157,18 @@ SOURCE=..\..\..\source\enemy\nffolk.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nffolk.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nfskull.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nfskull.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\ngary.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -169,6 +189,10 @@ SOURCE=..\..\..\source\enemy\ngpirate.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\ngpirate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nhazard.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -189,6 +213,10 @@ SOURCE=..\..\..\source\enemy\nocto.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nocto.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\npc.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -221,6 +249,10 @@ SOURCE=..\..\..\source\enemy\npuffa.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\npuffa.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nscrab.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -233,6 +265,10 @@ SOURCE=..\..\..\source\enemy\nshrkman.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nshrkman.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nsjfish.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -245,6 +281,10 @@ SOURCE=..\..\..\source\enemy\nsklfish.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nsklfish.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\enemy\nsshark.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue