ef2gamesource/dlls/game/FollowPathToPoint.cpp

77 lines
2.3 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /EF2/Code/DLLs/game/FollowPathToPoint.cpp $
// $Revision:: 9 $
// $Author:: Singlis $
// $Date:: 9/26/03 2:36p $
//
// Copyright (C) 1998 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
//
//
// DESCRIPTION:
// Specialization of FollowPath used to follow moving entities
//
#include "_pch_cpp.h"
#include "FollowPathToPoint.h"
#include "actor.h"
//------------------------- CLASS ------------------------------
//
// Name: FollowPathToPoint
// Base Class: FollowPath
//
// Description: FollowPathToEntity is a specialization of
// FollowPath used when the Actor must move to a stationary point
//
// Method of Use: Behaviors Aggregate FollowPath classes to
// handle long term motion to a goal
//
//--------------------------------------------------------------
CLASS_DECLARATION( FollowPath, FollowPathToPoint, NULL )
{
{ NULL, NULL }
};
//----------------------------------------------------------------
// Name: FollowPathToPoint
// Class: FollowPathToPoint
//
// Description: default constructor
//
// Parameters: None
//
// Returns: None
//----------------------------------------------------------------
FollowPathToPoint::FollowPathToPoint():_targetPoint(0,0,0)
{
}
//----------------------------------------------------------------
// Name: SetGoal
// Class: FollowPathToPoint
//
// Description: sets goal point and creates a path to it
//
// Parameters:
// Vector targetPoint - goal position
// float radius - how close actor needs to get to goal
// Actor self - the Actor trying to get to the goal
//
// Returns: None
//----------------------------------------------------------------
void FollowPathToPoint::SetGoal(const Vector &targetPoint, const float radius, Actor &self)
{
SetRadius(radius);
if (!Vector::CloseEnough(_targetPoint, targetPoint, 1.0f))
{
_targetPoint = targetPoint;
GetPath().SetPath(self, self.origin, GetGoalPosition());
}
}