2001-01-16 22:56:29 +01:00
|
|
|
/*=========================================================================
|
|
|
|
|
|
|
|
npc.h
|
|
|
|
|
|
|
|
Author: CRB
|
|
|
|
Created:
|
|
|
|
Project: Spongebob
|
|
|
|
Purpose:
|
|
|
|
|
|
|
|
Copyright (c) 2000 Climax Development Ltd
|
|
|
|
|
|
|
|
===========================================================================*/
|
2001-01-16 20:35:34 +01:00
|
|
|
|
2001-01-18 20:18:39 +01:00
|
|
|
#ifndef __ENEMY_NPC_H__
|
|
|
|
#define __ENEMY_NPC_H__
|
2001-01-16 20:35:34 +01:00
|
|
|
|
|
|
|
//#include <dstructs.h>
|
2001-02-27 17:59:50 +01:00
|
|
|
|
|
|
|
#ifndef __THING_THING_H__
|
|
|
|
#include "thing/thing.h"
|
|
|
|
#endif
|
|
|
|
|
2001-04-01 22:22:49 +02:00
|
|
|
|
|
|
|
//#include "Gfx/Skel.h"
|
2001-01-16 20:35:34 +01:00
|
|
|
|
2001-01-18 20:18:39 +01:00
|
|
|
#ifndef __ENEMY_NPCPATH_H__
|
|
|
|
#include "enemy\npcpath.h"
|
|
|
|
#endif
|
2001-01-16 20:35:34 +01:00
|
|
|
|
2001-02-07 17:42:13 +01:00
|
|
|
#ifndef __PLAYER_PLAYER_H__
|
|
|
|
#include "player\player.h"
|
|
|
|
#endif
|
|
|
|
|
2001-02-27 22:25:22 +01:00
|
|
|
#ifndef __GFX_SPRBANK_H__
|
|
|
|
#include "gfx\sprbank.h"
|
|
|
|
#endif
|
|
|
|
|
2001-01-16 20:35:34 +01:00
|
|
|
/*****************************************************************************/
|
|
|
|
|
2001-02-27 22:25:22 +01:00
|
|
|
class CNpcFriend : public CNpcThing
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum NPC_FRIEND_UNIT_TYPE
|
|
|
|
{
|
|
|
|
NPC_FRIEND_SANDY_CHEEKS = 0,
|
|
|
|
NPC_FRIEND_GARY = 1,
|
|
|
|
NPC_FRIEND_UNIT_TYPE_MAX,
|
|
|
|
};
|
|
|
|
|
|
|
|
void init();
|
|
|
|
void shutdown();
|
|
|
|
void think(int _frames);
|
2001-03-01 20:08:18 +01:00
|
|
|
void render();
|
2001-02-27 22:25:22 +01:00
|
|
|
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
|
|
|
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
|
2001-04-02 17:52:09 +02:00
|
|
|
void setType( NPC_FRIEND_UNIT_TYPE newType ) {m_type = newType;}
|
|
|
|
|
|
|
|
private:
|
|
|
|
class CLayerCollision *m_layerCollision;
|
2001-02-27 22:25:22 +01:00
|
|
|
|
|
|
|
protected:
|
|
|
|
enum NPC_FRIEND_MOVEMENT_FUNC
|
|
|
|
{
|
|
|
|
NPC_FRIEND_MOVEMENT_STATIC = 0,
|
|
|
|
NPC_FRIEND_MOVEMENT_GARY = 1,
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct NPC_FRIEND_DATA_TYPE
|
|
|
|
{
|
|
|
|
//NPC_FRIEND_INIT_FUNC initFunc;
|
|
|
|
//NPC_FRIEND_SENSOR_FUNC sensorFunc;
|
|
|
|
NPC_FRIEND_MOVEMENT_FUNC movementFunc;
|
|
|
|
//NPC_FRIEND_CLOSE_FUNC closeFunc;
|
|
|
|
//NPC_FRIEND_TIMER_FUNC timerFunc;
|
|
|
|
bool canTalk;
|
|
|
|
u8 speed;
|
|
|
|
u16 turnSpeed;
|
|
|
|
bool detectCollision;
|
|
|
|
DAMAGE_TYPE damageToUserType;
|
|
|
|
}
|
|
|
|
NPC_FRIEND_DATA;
|
|
|
|
|
|
|
|
// gary functions
|
|
|
|
|
|
|
|
void processGaryMovement( int _frames );
|
|
|
|
|
|
|
|
// data
|
|
|
|
|
|
|
|
static NPC_FRIEND_DATA m_data[NPC_FRIEND_UNIT_TYPE_MAX];
|
|
|
|
|
2001-04-20 17:43:35 +02:00
|
|
|
// class SpriteBank *m_spriteBank;
|
2001-02-27 22:25:22 +01:00
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
EXTEND_RIGHT = true,
|
|
|
|
EXTEND_LEFT = false,
|
|
|
|
};
|
|
|
|
|
|
|
|
// internal variables
|
|
|
|
|
|
|
|
NPC_FRIEND_UNIT_TYPE m_type;
|
|
|
|
s32 m_extension;
|
|
|
|
|
|
|
|
int m_frame;
|
|
|
|
int m_animNo;
|
2001-04-01 22:22:49 +02:00
|
|
|
CActorGfx *m_actorGfx;
|
2001-03-22 20:10:19 +01:00
|
|
|
DVECTOR m_drawOffset;
|
2001-04-04 18:51:04 +02:00
|
|
|
bool m_reversed;
|
2001-02-27 22:25:22 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
class CNpcEnemy : public CEnemyThing
|
2001-01-16 20:35:34 +01:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum NPC_UNIT_TYPE
|
|
|
|
{
|
2001-04-24 17:01:42 +02:00
|
|
|
//NPC_FALLING_ITEM = 0,
|
|
|
|
//NPC_FISH_HOOK = 1,
|
|
|
|
NPC_DUST_DEVIL = 0,
|
|
|
|
//NPC_PENDULUM,
|
|
|
|
//NPC_FIREBALL,
|
|
|
|
//NPC_SAW_BLADE,
|
|
|
|
NPC_SMALL_JELLYFISH_1 = 1,
|
2001-01-19 16:07:53 +01:00
|
|
|
NPC_SMALL_JELLYFISH_2,
|
2001-01-18 22:19:43 +01:00
|
|
|
NPC_ANEMONE_1,
|
2001-01-22 17:02:38 +01:00
|
|
|
NPC_ANEMONE_2,
|
2001-02-08 16:34:18 +01:00
|
|
|
NPC_ANEMONE_3,
|
2001-02-12 16:37:31 +01:00
|
|
|
NPC_SKELETAL_FISH,
|
2001-03-01 17:48:45 +01:00
|
|
|
NPC_CLAM_JUMP,
|
|
|
|
NPC_CLAM_STATIC,
|
2001-01-19 16:07:53 +01:00
|
|
|
NPC_SQUID_DART,
|
|
|
|
NPC_FISH_FOLK,
|
|
|
|
NPC_PRICKLY_BUG,
|
2001-03-26 18:44:45 +02:00
|
|
|
NPC_SEA_SNAKE,
|
2001-01-19 22:46:30 +01:00
|
|
|
NPC_PUFFA_FISH,
|
|
|
|
NPC_ANGLER_FISH,
|
|
|
|
NPC_HERMIT_CRAB,
|
|
|
|
NPC_MINE,
|
|
|
|
NPC_BOOGER_MONSTER,
|
|
|
|
NPC_SPIDER_CRAB,
|
2001-04-19 01:12:24 +02:00
|
|
|
NPC_SPIDER_CRAB_SPAWNER,
|
2001-01-19 22:46:30 +01:00
|
|
|
NPC_EYEBALL,
|
|
|
|
NPC_BABY_OCTOPUS,
|
|
|
|
NPC_ZOMBIE_FISH_FOLK,
|
|
|
|
NPC_NINJA_STARFISH,
|
|
|
|
NPC_GHOST,
|
|
|
|
NPC_GHOST_PIRATE,
|
|
|
|
NPC_FLAMING_SKULL,
|
|
|
|
NPC_SHARK_MAN,
|
2001-01-22 15:23:11 +01:00
|
|
|
NPC_OIL_BLOB,
|
2001-01-23 18:03:27 +01:00
|
|
|
NPC_SKULL_STOMPER,
|
2001-01-25 16:45:15 +01:00
|
|
|
NPC_MOTHER_JELLYFISH,
|
2001-01-25 18:20:08 +01:00
|
|
|
NPC_SUB_SHARK,
|
2001-03-26 18:44:45 +02:00
|
|
|
NPC_PARASITIC_WORM,
|
2001-01-25 16:45:15 +01:00
|
|
|
NPC_FLYING_DUTCHMAN,
|
2001-01-25 20:57:29 +01:00
|
|
|
NPC_IRON_DOGFISH,
|
2001-03-26 18:44:45 +02:00
|
|
|
NPC_PARASITIC_WORM_SEGMENT,
|
2001-04-02 21:21:46 +02:00
|
|
|
NPC_BALL_BLOB,
|
2001-01-16 20:35:34 +01:00
|
|
|
NPC_UNIT_TYPE_MAX,
|
|
|
|
};
|
|
|
|
|
2001-01-22 23:24:53 +01:00
|
|
|
void init();
|
2001-04-20 16:48:15 +02:00
|
|
|
virtual void postInit();
|
2001-01-22 23:24:53 +01:00
|
|
|
void shutdown();
|
2001-04-20 00:09:59 +02:00
|
|
|
virtual void think(int _frames);
|
|
|
|
virtual void render();
|
2001-01-22 23:24:53 +01:00
|
|
|
void processEvent( GAME_EVENT evt, CThing *sourceThing );
|
2001-02-12 18:37:55 +01:00
|
|
|
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
|
2001-03-26 18:44:45 +02:00
|
|
|
void setType( NPC_UNIT_TYPE newType ) {m_type = newType;}
|
2001-04-20 00:09:59 +02:00
|
|
|
static NPC_UNIT_TYPE getTypeFromMapEdit( u16 newType );
|
2001-03-26 18:44:45 +02:00
|
|
|
void setHeading( s32 newHeading ) {m_heading = newHeading;}
|
2001-04-10 01:02:20 +02:00
|
|
|
void setHeading( s32 xPos, s32 yPos );
|
2001-04-02 21:21:46 +02:00
|
|
|
void addWaypoint( s32 xPos, s32 yPos );
|
|
|
|
void setPathType( u8 newType ) {m_npcPath.setPathType( newType );}
|
|
|
|
void setStartPos( s32 xPos, s32 yPos );
|
2001-04-05 16:23:51 +02:00
|
|
|
void hasBeenAttacked();
|
2001-04-07 00:21:01 +02:00
|
|
|
bool canBeCaughtByNet();
|
|
|
|
void caughtWithNet();
|
2001-04-20 18:13:23 +02:00
|
|
|
virtual int getFrameCount();
|
2001-01-22 23:24:53 +01:00
|
|
|
|
2001-04-20 17:43:35 +02:00
|
|
|
static CNpcEnemy *Create(sThingActor *ThisActor);
|
2001-04-20 18:25:35 +02:00
|
|
|
void setupWaypoints( sThingActor *ThisActor );
|
2001-04-20 17:43:35 +02:00
|
|
|
|
2001-04-24 21:03:06 +02:00
|
|
|
virtual int canCollide();
|
|
|
|
|
2001-04-20 17:43:35 +02:00
|
|
|
|
2001-04-20 00:09:59 +02:00
|
|
|
protected:
|
2001-04-02 17:52:09 +02:00
|
|
|
class CLayerCollision *m_layerCollision;
|
|
|
|
|
2001-01-22 23:24:53 +01:00
|
|
|
protected:
|
|
|
|
// NPC data structure definitions //
|
|
|
|
|
2001-01-16 20:35:34 +01:00
|
|
|
enum NPC_CONTROL_FUNC
|
|
|
|
{
|
2001-01-29 17:55:11 +01:00
|
|
|
NPC_CONTROL_NONE,
|
2001-01-16 20:35:34 +01:00
|
|
|
NPC_CONTROL_MOVEMENT,
|
|
|
|
NPC_CONTROL_SHOT,
|
|
|
|
NPC_CONTROL_CLOSE,
|
|
|
|
NPC_CONTROL_COLLISION,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum NPC_SENSOR_FUNC
|
|
|
|
{
|
|
|
|
NPC_SENSOR_NONE = 0,
|
2001-04-20 00:09:59 +02:00
|
|
|
NPC_SENSOR_USER_CLOSE = 1,
|
2001-04-20 22:22:16 +02:00
|
|
|
NPC_SENSOR_GENERIC_USER_CLOSE,
|
2001-02-12 16:37:31 +01:00
|
|
|
NPC_SENSOR_GENERIC_USER_VISIBLE,
|
2001-01-16 20:35:34 +01:00
|
|
|
};
|
|
|
|
|
2001-01-18 20:18:39 +01:00
|
|
|
enum NPC_CLOSE_FUNC
|
|
|
|
{
|
2001-01-18 22:19:43 +01:00
|
|
|
NPC_CLOSE_NONE = 0,
|
2001-04-20 16:48:15 +02:00
|
|
|
NPC_CLOSE_GENERIC_USER_SEEK = 1,
|
2001-01-18 20:18:39 +01:00
|
|
|
};
|
|
|
|
|
2001-01-16 20:35:34 +01:00
|
|
|
enum NPC_MOVEMENT_FUNC
|
|
|
|
{
|
|
|
|
NPC_MOVEMENT_STATIC = 0,
|
|
|
|
NPC_MOVEMENT_FIXED_PATH = 1,
|
2001-02-22 16:39:38 +01:00
|
|
|
NPC_MOVEMENT_FIXED_PATH_WALK,
|
2001-04-02 17:52:09 +02:00
|
|
|
NPC_MOVEMENT_STATIC_CYCLE_ANIM,
|
2001-01-16 20:35:34 +01:00
|
|
|
};
|
|
|
|
|
2001-01-18 20:18:39 +01:00
|
|
|
enum NPC_TIMER_FUNC
|
|
|
|
{
|
|
|
|
NPC_TIMER_NONE = 0,
|
|
|
|
NPC_TIMER_EVADE_DONE = 1,
|
2001-01-18 22:19:43 +01:00
|
|
|
NPC_TIMER_ATTACK_DONE,
|
2001-04-07 00:21:01 +02:00
|
|
|
NPC_TIMER_RESPAWN,
|
2001-01-18 22:19:43 +01:00
|
|
|
};
|
|
|
|
|
2001-04-05 21:03:55 +02:00
|
|
|
enum NPC_SHOT_FUNC
|
|
|
|
{
|
|
|
|
NPC_SHOT_NONE = 0,
|
2001-04-05 21:36:04 +02:00
|
|
|
NPC_SHOT_GENERIC = 1,
|
2001-04-05 21:03:55 +02:00
|
|
|
};
|
|
|
|
|
2001-04-05 21:36:04 +02:00
|
|
|
enum NPC_GENERIC_HIT_STATE
|
2001-04-05 21:03:55 +02:00
|
|
|
{
|
2001-04-05 21:36:04 +02:00
|
|
|
NPC_GENERIC_HIT_CHECK_HEALTH = 100,
|
|
|
|
NPC_GENERIC_HIT_RECOIL = 101,
|
|
|
|
NPC_GENERIC_HIT_DEATH_START,
|
|
|
|
NPC_GENERIC_HIT_DEATH_END,
|
2001-04-05 21:03:55 +02:00
|
|
|
};
|
|
|
|
|
2001-01-18 22:19:43 +01:00
|
|
|
enum
|
|
|
|
{
|
2001-01-19 22:46:30 +01:00
|
|
|
EXTEND_UP = true,
|
|
|
|
EXTEND_DOWN = false,
|
|
|
|
EXTEND_RIGHT = true,
|
|
|
|
EXTEND_LEFT = false,
|
2001-02-23 22:35:11 +01:00
|
|
|
EXTEND_CLOCKWISE = true,
|
|
|
|
EXTEND_ANTICLOCKWISE = false,
|
2001-04-02 21:21:46 +02:00
|
|
|
|
|
|
|
NPC_ENEMY_MAPEDIT_OFFSET = 10,
|
2001-01-16 20:35:34 +01:00
|
|
|
};
|
|
|
|
|
2001-04-05 22:44:30 +02:00
|
|
|
enum DETECT_TYPE
|
|
|
|
{
|
|
|
|
DETECT_NO_COLLISION = 0,
|
|
|
|
DETECT_ALL_COLLISION = 1,
|
|
|
|
DETECT_ATTACK_COLLISION_GENERIC,
|
|
|
|
};
|
|
|
|
|
2001-01-16 20:35:34 +01:00
|
|
|
|
|
|
|
typedef struct NPC_DATA_TYPE
|
|
|
|
{
|
2001-04-20 17:43:35 +02:00
|
|
|
int skelType;
|
2001-03-05 21:16:35 +01:00
|
|
|
// FileEquate animData;
|
2001-02-28 22:05:39 +01:00
|
|
|
u16 initAnim;
|
2001-01-16 20:35:34 +01:00
|
|
|
NPC_SENSOR_FUNC sensorFunc;
|
|
|
|
NPC_MOVEMENT_FUNC movementFunc;
|
2001-01-18 20:18:39 +01:00
|
|
|
NPC_CLOSE_FUNC closeFunc;
|
|
|
|
NPC_TIMER_FUNC timerFunc;
|
2001-01-16 21:55:44 +01:00
|
|
|
bool canTalk;
|
2001-01-19 16:07:53 +01:00
|
|
|
u8 speed;
|
|
|
|
u16 turnSpeed;
|
2001-04-05 22:44:30 +02:00
|
|
|
DETECT_TYPE detectCollision;
|
2001-02-07 17:42:13 +01:00
|
|
|
DAMAGE_TYPE damageToUserType;
|
2001-03-05 22:29:44 +01:00
|
|
|
u16 initHealth;
|
2001-04-02 17:52:09 +02:00
|
|
|
u16 moveAnim;
|
2001-04-05 21:03:55 +02:00
|
|
|
NPC_SHOT_FUNC shotFunc;
|
|
|
|
u16 dieAnim;
|
2001-04-05 21:36:04 +02:00
|
|
|
u16 recoilAnim;
|
2001-04-07 00:21:01 +02:00
|
|
|
bool canBeNetted;
|
2001-04-12 18:33:48 +02:00
|
|
|
bool respawning;
|
2001-01-16 20:35:34 +01:00
|
|
|
}
|
|
|
|
NPC_DATA;
|
|
|
|
|
2001-04-02 21:21:46 +02:00
|
|
|
static NPC_UNIT_TYPE mapEditConvertTable[NPC_UNIT_TYPE_MAX];
|
|
|
|
|
2001-01-18 22:19:43 +01:00
|
|
|
// functions
|
|
|
|
|
2001-04-20 00:09:59 +02:00
|
|
|
virtual bool processSensor();
|
|
|
|
virtual void processMovement( int _frames );
|
|
|
|
virtual void processMovementModifier( int _frames, s32 distX, s32 distY, s32 dist, s16 headingChange );
|
2001-04-25 17:10:26 +02:00
|
|
|
virtual void processShot();
|
2001-04-20 00:09:59 +02:00
|
|
|
virtual void processClose( int _frames );
|
|
|
|
virtual void processCollision();
|
2001-01-18 22:19:43 +01:00
|
|
|
void processTimer( int _frames );
|
2001-02-12 18:52:04 +01:00
|
|
|
bool isCollisionWithGround();
|
2001-01-18 22:19:43 +01:00
|
|
|
|
2001-01-25 16:45:15 +01:00
|
|
|
void processGenericGotoTarget( int _frames, s32 xDist, s32 yDist, s32 speed );
|
2001-02-06 20:29:35 +01:00
|
|
|
void processGenericGetUserDist( int _frames, s32 *distX, s32 *distY );
|
2001-02-22 22:00:56 +01:00
|
|
|
void processGenericFixedPathMove( int _frames, s32 *moveX, s32 *moveY, s32 *moveVel, s32 *moveDist );
|
|
|
|
void processGenericFixedPathWalk( int _frames, s32 *moveX, s32 *moveY );
|
|
|
|
bool processGroundCollisionReverse( s32 *moveX, s32 *moveY );
|
2001-04-24 21:03:06 +02:00
|
|
|
virtual void processEnemyCollision( CThing *thisThing );
|
2001-01-22 15:23:11 +01:00
|
|
|
|
2001-04-07 00:21:01 +02:00
|
|
|
void reinit();
|
|
|
|
|
2001-01-18 22:19:43 +01:00
|
|
|
// data
|
2001-01-16 20:35:34 +01:00
|
|
|
|
|
|
|
static NPC_DATA m_data[NPC_UNIT_TYPE_MAX];
|
2001-01-18 20:18:39 +01:00
|
|
|
|
2001-02-07 17:42:13 +01:00
|
|
|
static s32 playerXDist;
|
|
|
|
static s32 playerYDist;
|
|
|
|
|
|
|
|
static s32 playerXDistSqr;
|
|
|
|
static s32 playerYDistSqr;
|
|
|
|
|
2001-01-18 20:18:39 +01:00
|
|
|
// internal variables
|
|
|
|
|
|
|
|
NPC_UNIT_TYPE m_type;
|
|
|
|
NPC_CONTROL_FUNC m_controlFunc;
|
2001-02-07 18:40:56 +01:00
|
|
|
NPC_CONTROL_FUNC m_oldControlFunc;
|
2001-01-18 20:18:39 +01:00
|
|
|
NPC_TIMER_FUNC m_timerFunc;
|
|
|
|
NPC_SENSOR_FUNC m_sensorFunc;
|
2001-04-19 01:12:24 +02:00
|
|
|
NPC_MOVEMENT_FUNC m_movementFunc;
|
2001-01-18 20:18:39 +01:00
|
|
|
CNpcPath m_npcPath;
|
|
|
|
s32 m_heading;
|
2001-01-22 20:14:00 +01:00
|
|
|
s32 m_fireHeading;
|
2001-01-18 20:18:39 +01:00
|
|
|
s32 m_velocity;
|
|
|
|
bool m_evadeClockwise;
|
2001-01-22 23:24:53 +01:00
|
|
|
s32 m_movementTimer;
|
2001-04-24 21:03:06 +02:00
|
|
|
s32 m_collisionTimer;
|
2001-01-18 20:18:39 +01:00
|
|
|
s32 m_timerTimer;
|
2001-01-18 22:19:43 +01:00
|
|
|
s32 m_extension;
|
2001-01-19 22:46:30 +01:00
|
|
|
bool m_extendDir;
|
2001-02-23 22:35:11 +01:00
|
|
|
s16 m_rotation;
|
2001-01-25 16:45:15 +01:00
|
|
|
DVECTOR m_base;
|
2001-04-07 00:21:01 +02:00
|
|
|
DVECTOR m_initPos;
|
2001-01-25 16:45:15 +01:00
|
|
|
u8 m_state;
|
2001-01-25 18:20:08 +01:00
|
|
|
u8 m_salvoCount;
|
2001-02-28 22:05:39 +01:00
|
|
|
bool m_animPlaying;
|
|
|
|
bool m_reversed;
|
2001-03-05 22:29:44 +01:00
|
|
|
s32 m_health;
|
2001-04-07 00:21:01 +02:00
|
|
|
bool m_isActive;
|
2001-02-27 22:25:22 +01:00
|
|
|
|
2001-04-05 17:54:40 +02:00
|
|
|
s32 m_frame;
|
2001-02-27 22:25:22 +01:00
|
|
|
int m_animNo;
|
2001-04-01 22:22:49 +02:00
|
|
|
CActorGfx *m_actorGfx;
|
2001-04-20 17:43:35 +02:00
|
|
|
SpriteBank *m_spriteBank;
|
2001-03-22 20:10:19 +01:00
|
|
|
DVECTOR m_drawOffset;
|
2001-04-20 00:09:59 +02:00
|
|
|
POLY_FT4 *SprFrame;
|
2001-03-05 22:11:51 +01:00
|
|
|
|
|
|
|
virtual void collidedWith(CThing *_thisThing);
|
2001-03-26 18:44:45 +02:00
|
|
|
|
2001-04-25 17:41:29 +02:00
|
|
|
u8 m_isShuttingDown;
|
|
|
|
|
2001-03-26 18:44:45 +02:00
|
|
|
// position history stuff
|
|
|
|
|
|
|
|
class CNpcPositionHistory
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
DVECTOR pos;
|
|
|
|
CNpcPositionHistory *next;
|
2001-04-11 16:52:28 +02:00
|
|
|
CNpcPositionHistory *prev;
|
2001-03-26 18:44:45 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
CNpcPositionHistory *m_positionHistory;
|
2001-01-16 20:35:34 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
#endif
|