summaryrefslogtreecommitdiff
path: root/game/server/hl1/hl1_monstermaker.h
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/hl1/hl1_monstermaker.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/server/hl1/hl1_monstermaker.h')
-rw-r--r--game/server/hl1/hl1_monstermaker.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/game/server/hl1/hl1_monstermaker.h b/game/server/hl1/hl1_monstermaker.h
new file mode 100644
index 0000000..2646020
--- /dev/null
+++ b/game/server/hl1/hl1_monstermaker.h
@@ -0,0 +1,71 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef MONSTERMAKER_H
+#define MONSTERMAKER_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "cbase.h"
+
+
+//-----------------------------------------------------------------------------
+// Spawnflags
+//-----------------------------------------------------------------------------
+#define SF_NPCMAKER_START_ON 1 // start active ( if has targetname )
+#define SF_NPCMAKER_NPCCLIP 8 // Children are blocked by NPCclip
+#define SF_NPCMAKER_FADE 16 // Children's corpses fade
+#define SF_NPCMAKER_INF_CHILD 32 // Infinite number of children
+#define SF_NPCMAKER_NO_DROP 64 // Do not adjust for the ground's position when checking for spawn
+
+
+class CNPCMaker : public CBaseEntity
+{
+public:
+ DECLARE_CLASS( CNPCMaker, CBaseEntity );
+
+ CNPCMaker(void) {}
+
+ void Spawn( void );
+ void Precache( void );
+
+ void MakerThink( void );
+ bool CanMakeNPC( void );
+
+ void DeathNotice( CBaseEntity *pChild );// NPC maker children use this to tell the NPC maker that they have died.
+ void MakeNPC( void );
+
+ // Input handlers
+ void InputSpawnNPC( inputdata_t &inputdata );
+ void InputEnable( inputdata_t &inputdata );
+ void InputDisable( inputdata_t &inputdata );
+ void InputToggle( inputdata_t &inputdata );
+
+ // State changers
+ void Toggle( void );
+ void Enable( void );
+ void Disable( void );
+
+ bool IsDepleted();
+
+ DECLARE_DATADESC();
+
+ int m_iMaxNumNPCs; // max number of NPCs this ent can create
+ float m_flSpawnFrequency; // delay (in secs) between spawns
+ int m_iMaxLiveChildren; // max number of NPCs that this maker may have out at one time.
+ string_t m_iszNPCClassname; // classname of the NPC(s) that will be created.
+
+ COutputEvent m_OnSpawnNPC;
+
+ int m_cLiveChildren;// how many NPCs made by this NPC maker that are currently alive
+
+ float m_flGround; // z coord of the ground under me, used to make sure no NPCs are under the maker when it drops a new child
+ bool m_bDisabled;
+};
+
+
+#endif // MONSTERMAKER_H