diff options
Diffstat (limited to 'game/server/hl2/monster_dummy.cpp')
| -rw-r--r-- | game/server/hl2/monster_dummy.cpp | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/game/server/hl2/monster_dummy.cpp b/game/server/hl2/monster_dummy.cpp new file mode 100644 index 0000000..2632d6a --- /dev/null +++ b/game/server/hl2/monster_dummy.cpp @@ -0,0 +1,176 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// This is a skeleton file for use when creating a new +// NPC. Copy and rename this file for the new +// NPC and add the copy to the build. +// +// Leave this file in the build until we ship! Allowing +// this file to be rebuilt with the rest of the game ensures +// that it stays up to date with the rest of the NPC code. +// +// Replace occurances of CNewNPC with the new NPC's +// classname. Don't forget the lower-case occurance in +// LINK_ENTITY_TO_CLASS() +// +// +// ASSUMPTIONS MADE: +// +// You're making a character based on CAI_BaseNPC. If this +// is not true, make sure you replace all occurances +// of 'CAI_BaseNPC' in this file with the appropriate +// parent class. +// +// You're making a human-sized NPC that walks. +// +//=============================================================================// +#include "cbase.h" +#include "ai_default.h" +#include "ai_task.h" +#include "ai_schedule.h" +#include "ai_hull.h" +#include "soundent.h" +#include "game.h" +#include "npcevent.h" +#include "entitylist.h" +#include "activitylist.h" +#include "ai_basenpc.h" +#include "engine/IEngineSound.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//========================================================= +// Private activities +//========================================================= +int ACT_MYCUSTOMACTIVITY = -1; + +//========================================================= +// Custom schedules +//========================================================= +enum +{ + SCHED_MYCUSTOMSCHEDULE = LAST_SHARED_SCHEDULE, +}; + +//========================================================= +// Custom tasks +//========================================================= +enum +{ + TASK_MYCUSTOMTASK = LAST_SHARED_TASK, +}; + + +//========================================================= +// Custom Conditions +//========================================================= +enum +{ + COND_MYCUSTOMCONDITION = LAST_SHARED_CONDITION, +}; + + +//========================================================= +//========================================================= +class CNewNPC : public CAI_BaseNPC +{ + DECLARE_CLASS( CNewNPC, CAI_BaseNPC ); + +public: + void Precache( void ); + void Spawn( void ); + Class_T Classify( void ); + + DECLARE_DATADESC(); + + // This is a dummy field. In order to provide save/restore + // code in this file, we must have at least one field + // for the code to operate on. Delete this field when + // you are ready to do your own save/restore for this + // character. + int m_iDeleteThisField; + + DEFINE_CUSTOM_AI; +}; + +LINK_ENTITY_TO_CLASS( npc_newnpc, CNewNPC ); +IMPLEMENT_CUSTOM_AI( npc_citizen,CNewNPC ); + + +//--------------------------------------------------------- +// Save/Restore +//--------------------------------------------------------- +BEGIN_DATADESC( CNewNPC ) + + DEFINE_FIELD( m_iDeleteThisField, FIELD_INTEGER ), + +END_DATADESC() + +//----------------------------------------------------------------------------- +// Purpose: Initialize the custom schedules +// Input : +// Output : +//----------------------------------------------------------------------------- +void CNewNPC::InitCustomSchedules(void) +{ + INIT_CUSTOM_AI(CNewNPC); + + ADD_CUSTOM_TASK(CNewNPC, TASK_MYCUSTOMTASK); + + ADD_CUSTOM_SCHEDULE(CNewNPC, SCHED_MYCUSTOMSCHEDULE); + + ADD_CUSTOM_ACTIVITY(CNewNPC, ACT_MYCUSTOMACTIVITY); + + ADD_CUSTOM_CONDITION(CNewNPC, COND_MYCUSTOMCONDITION); +} + +//----------------------------------------------------------------------------- +// Purpose: +// +// +//----------------------------------------------------------------------------- +void CNewNPC::Precache( void ) +{ + PrecacheModel( "models/mymodel.mdl" ); + + BaseClass::Precache(); +} + + +//----------------------------------------------------------------------------- +// Purpose: +// +// +//----------------------------------------------------------------------------- +void CNewNPC::Spawn( void ) +{ + Precache(); + + SetModel( "models/mymodel.mdl" ); + SetHullType(HULL_HUMAN); + SetHullSizeNormal(); + + SetSolid( SOLID_BBOX ); + AddSolidFlags( FSOLID_NOT_STANDABLE ); + SetMoveType( MOVETYPE_STEP ); + SetBloodColor( BLOOD_COLOR_RED ); + m_iHealth = 20; + m_flFieldOfView = 0.5; + m_NPCState = NPC_STATE_NONE; + + CapabilitiesClear(); + //CapabilitiesAdd( bits_CAP_NONE ); + + NPCInit(); +} + + +//----------------------------------------------------------------------------- +// Purpose: +// +// +// Output : +//----------------------------------------------------------------------------- +Class_T CNewNPC::Classify( void ) +{ + return CLASS_NONE; +} |