106 lines
2.8 KiB
C++
106 lines
2.8 KiB
C++
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
//=========================================================
|
||
|
// NPC template
|
||
|
//=========================================================
|
||
|
#include "cbase.h"
|
||
|
|
||
|
// memdbgon must be the last include file in a .cpp file!!!
|
||
|
#include "tier0/memdbgon.h"
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
//=========================================================
|
||
|
// NPC's Anim Events Go Here
|
||
|
//=========================================================
|
||
|
|
||
|
class CMyNPC : public CAI_BaseNPC
|
||
|
{
|
||
|
public:
|
||
|
DECLARE_CLASS( CMyNPC, CAI_BaseNPC );
|
||
|
|
||
|
void Spawn( void );
|
||
|
void Precache( void );
|
||
|
void MaxYawSpeed( void );
|
||
|
int Classify ( void );
|
||
|
void HandleAnimEvent( animevent_t *pEvent );
|
||
|
};
|
||
|
LINK_ENTITY_TO_CLASS( my_NPC, CMyNPC );
|
||
|
|
||
|
//=========================================================
|
||
|
// Classify - indicates this NPC's place in the
|
||
|
// relationship table.
|
||
|
//=========================================================
|
||
|
int CMyNPC::Classify ( void )
|
||
|
{
|
||
|
return CLASS_MY_NPC;
|
||
|
}
|
||
|
|
||
|
//=========================================================
|
||
|
// SetYawSpeed - allows each sequence to have a different
|
||
|
// turn rate associated with it.
|
||
|
//=========================================================
|
||
|
float CMyNPC::MaxYawSpeed ( void )
|
||
|
{
|
||
|
switch ( m_Activity )
|
||
|
{
|
||
|
case ACT_IDLE:
|
||
|
default:
|
||
|
return 90;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//=========================================================
|
||
|
// HandleAnimEvent - catches the NPC-specific messages
|
||
|
// that occur when tagged animation frames are played.
|
||
|
//=========================================================
|
||
|
void CMyNPC::HandleAnimEvent( animevent_t *pEvent )
|
||
|
{
|
||
|
switch( pEvent->event )
|
||
|
{
|
||
|
case 0:
|
||
|
default:
|
||
|
CAI_BaseNPC::HandleAnimEvent( pEvent );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//=========================================================
|
||
|
// Spawn
|
||
|
//=========================================================
|
||
|
void CMyNPC::Spawn()
|
||
|
{
|
||
|
Precache( );
|
||
|
|
||
|
engine.SetModel(edict(), "models/mymodel.mdl");
|
||
|
UTIL_SetSize( this, Vector( -12, -12, 0 ), Vector( 12, 12, 24 ) );
|
||
|
|
||
|
SetSolid( SOLID_SLIDEBOX );
|
||
|
SetMoveType( MOVETYPE_STEP );
|
||
|
m_bloodColor = BLOOD_COLOR_GREEN;
|
||
|
m_iHealth = 8;
|
||
|
m_vecViewOffset = Vector ( 0, 0, 0 );// position of the eyes relative to NPC's origin.
|
||
|
m_flFieldOfView = 0.5;// indicates the width of this NPC's forward view cone ( as a dotproduct result )
|
||
|
m_NPCState = NPCSTATE_NONE;
|
||
|
|
||
|
NPCInit();
|
||
|
}
|
||
|
|
||
|
//=========================================================
|
||
|
// Precache - precaches all resources this NPC needs
|
||
|
//=========================================================
|
||
|
void CMyNPC::Precache()
|
||
|
{
|
||
|
engine.PrecacheModel("models/mymodel.mdl");
|
||
|
}
|
||
|
|
||
|
//=========================================================
|
||
|
// AI Schedules Specific to this NPC
|
||
|
//=========================================================
|
||
|
#endif
|