summaryrefslogtreecommitdiff
path: root/game/server/hl2/monster_dummy.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/hl2/monster_dummy.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/server/hl2/monster_dummy.cpp')
-rw-r--r--game/server/hl2/monster_dummy.cpp176
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;
+}