SBSPSS/source/enemy/npcpath.h

57 lines
1.1 KiB
C
Raw Normal View History

2001-01-16 22:40:14 +01:00
/*=========================================================================
npcpath.h
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2000 Climax Development Ltd
===========================================================================*/
2001-01-18 20:18:39 +01:00
#ifndef __ENEMY_NPCPATH_H__
#define __ENEMY_NPCPATH_H__
#include "system\global.h"
2001-01-16 22:56:29 +01:00
2001-01-16 22:40:14 +01:00
class CNpcWaypoint
{
public:
DVECTOR pos;
2001-01-26 16:16:07 +01:00
CNpcWaypoint *nextWaypoint;
CNpcWaypoint *prevWaypoint;
2001-01-16 22:40:14 +01:00
2001-01-18 20:18:39 +01:00
bool isPointNear( DVECTOR testPos, s32 *xDist, s32 *yDist );
2001-01-16 22:40:14 +01:00
};
enum NPC_PATH_TYPE
{
SINGLE_USE_PATH = 0,
REPEATING_PATH = 1,
PONG_PATH = 2,
};
class CNpcPath
{
private:
2001-01-26 16:16:07 +01:00
CNpcWaypoint *waypoint;
2001-01-16 22:40:14 +01:00
NPC_PATH_TYPE pathType;
u8 waypointCount;
2001-01-16 22:56:29 +01:00
bool reversePath;
2001-01-16 22:40:14 +01:00
public:
2001-01-26 16:16:07 +01:00
CNpcWaypoint *currentWaypoint;
2001-01-23 18:03:27 +01:00
2001-01-16 22:56:29 +01:00
void initPath();
2001-01-16 22:40:14 +01:00
void addWaypoint( DVECTOR newPos );
2001-01-26 16:16:07 +01:00
void removeAllWaypoints();
2001-01-16 22:40:14 +01:00
void setPathType( NPC_PATH_TYPE newPathType );
bool incPath();
2001-01-26 16:16:07 +01:00
void resetPath();
2001-01-23 18:03:27 +01:00
s32 think( DVECTOR currentPos, bool *pathComplete, bool *waypointChange );
2001-01-19 22:46:30 +01:00
bool getDistToNextWaypoint( DVECTOR currentPos, s32 *distX, s32 *distY );
2001-01-16 22:56:29 +01:00
};
#endif