This commit is contained in:
Charles 2001-01-16 21:40:14 +00:00
parent 2ca7da9ba7
commit dc9561dc93
2 changed files with 91 additions and 0 deletions

45
source/enemy/npcpath.cpp Normal file
View File

@ -0,0 +1,45 @@
/*=========================================================================
npcpath.cpp
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2000 Climax Development Ltd
===========================================================================*/
bool CNpcWaypoint::isPointNear( DVECTOR testPos )
{
s32 xDistSqr, yDistSqr;
xDistSqr = testPos.vx - this->pos.vx;
xDistSqr *= xDistSqr;
yDistSqr = testPos.vy - this->pos.vy;
yDistSqr *= yDistSqr;
if ( xDistSqr + yDistSqr < 100 )
{
return( true );
}
else
{
return( false );
}
}
void CNpcPath::addWaypoint( DVECTOR newPos )
{
if ( waypointCount < NPC_MAX_WAYPOINTS )
{
waypoint[waypointCount] = newPos;
waypointCount++;
}
}
void setPathType( NPC_PATH_TYPE newPathType );
bool incPath();
bool CNpcPath::incPath

46
source/enemy/npcpath.h Normal file
View File

@ -0,0 +1,46 @@
/*=========================================================================
npcpath.h
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2000 Climax Development Ltd
===========================================================================*/
class CNpcWaypoint
{
public:
DVECTOR pos;
bool isPointNear( DVECTOR testPos );
};
enum NPC_PATH_TYPE
{
SINGLE_USE_PATH = 0,
REPEATING_PATH = 1,
PONG_PATH = 2,
};
class CNpcPath
{
enum
{
NPC_MAX_WAYPOINTS = 4,
};
private:
CNpcWaypoint waypoint[NPC_MAX_WAYPOINTS];
NPC_PATH_TYPE pathType;
u8 currentWaypoint;
u8 waypointCount;
public:
void addWaypoint( DVECTOR newPos );
void setPathType( NPC_PATH_TYPE newPathType );
bool incPath();
};