initial
This commit is contained in:
140
game/server/ai_basenpc_flyer_new.cpp
Normal file
140
game/server/ai_basenpc_flyer_new.cpp
Normal file
@@ -0,0 +1,140 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Base class for many flying NPCs
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include "cbase.h"
|
||||
#include "ai_basenpc_flyer_new.h"
|
||||
#include "ai_route.h"
|
||||
#include "ai_navigator.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
#define FLYER_ROUTE_REBUILD_TIME 3.0 // Time between route rebuilds
|
||||
|
||||
|
||||
// NOTE: Never instantiate ai_base_npc_flyer_new directly!!
|
||||
//IMPLEMENT_CUSTOM_AI( ai_base_npc_flyer_new, CAI_BaseNPCFlyerNew);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Purpose :
|
||||
// Input :
|
||||
// Output :
|
||||
//------------------------------------------------------------------------------
|
||||
CAI_BaseNPCFlyerNew::CAI_BaseNPCFlyerNew()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Used to set up a flyer
|
||||
//------------------------------------------------------------------------------
|
||||
void CAI_BaseNPCFlyerNew::SpawnFlyer()
|
||||
{
|
||||
SetNavType( NAV_FLY );
|
||||
AddFlag( FL_FLY );
|
||||
SetMoveType( MOVETYPE_STEP );
|
||||
CapabilitiesAdd( bits_CAP_MOVE_FLY );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void CAI_BaseNPCFlyerNew::InitCustomSchedules(void)
|
||||
{
|
||||
INIT_CUSTOM_AI(CAI_BaseNPCFlyerNew);
|
||||
|
||||
ADD_CUSTOM_CONDITION(CAI_BaseNPCFlyerNew, COND_FLYER_MOVE_BLOCKED);
|
||||
ADD_CUSTOM_CONDITION(CAI_BaseNPCFlyerNew, COND_FLYER_MOVE_IMPOSSIBLE);
|
||||
}
|
||||
*/
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Should be called during Select Schedule (BLEAH!)
|
||||
//------------------------------------------------------------------------------
|
||||
void CAI_BaseNPCFlyerNew::ClearFlyerConditions(void)
|
||||
{
|
||||
// ClearCondition( COND_FLYER_MOVE_BLOCKED );
|
||||
// ClearCondition( COND_FLYER_MOVE_IMPOSSIBLE );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Purpose :
|
||||
// Input :
|
||||
// Output :
|
||||
//------------------------------------------------------------------------------
|
||||
float CAI_BaseNPCFlyerNew::MinGroundDist(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Sets the ground speed appropriately:
|
||||
//-----------------------------------------------------------------------------
|
||||
float CAI_BaseNPCFlyerNew::GetIdealSpeed( ) const
|
||||
{
|
||||
return m_flSpeed;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Purpose :
|
||||
// Input :
|
||||
// Output :
|
||||
//------------------------------------------------------------------------------
|
||||
void CAI_BaseNPCFlyerNew::StartTask( const Task_t *pTask )
|
||||
{
|
||||
switch (pTask->iTask)
|
||||
{
|
||||
// Activity is just idle (have no run)
|
||||
case TASK_RUN_PATH:
|
||||
{
|
||||
GetNavigator()->SetMovementActivity(ACT_IDLE);
|
||||
TaskComplete();
|
||||
break;
|
||||
}
|
||||
|
||||
// Don't check for run/walk activity
|
||||
case TASK_SCRIPT_RUN_TO_TARGET:
|
||||
case TASK_SCRIPT_WALK_TO_TARGET:
|
||||
{
|
||||
if (GetTarget() == NULL)
|
||||
{
|
||||
TaskFail(FAIL_NO_TARGET);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!GetNavigator()->SetGoal( GOALTYPE_TARGETENT ) )
|
||||
{
|
||||
TaskFail(FAIL_NO_ROUTE);
|
||||
GetNavigator()->ClearGoal();
|
||||
}
|
||||
}
|
||||
TaskComplete();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
BaseClass::StartTask(pTask);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void CAI_BaseNPCFlyerNew::RunTask( const Task_t *pTask )
|
||||
{
|
||||
BaseClass::RunTask(pTask);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user