+#ifndef MONSTERS_H
+#define MONSTERS_H
+
+#if defined(CSQC)
+ #include "../util-pre.qh"
+ #include "../../client/sys-pre.qh"
+ #include "../../dpdefs/csprogsdefs.qc"
+ #include "../../client/sys-post.qh"
+ #include "../../client/Defs.qc"
+ #include "../../dpdefs/keycodes.qc"
+ #include "../constants.qh"
+ #include "../stats.qh"
+ #include "../../warpzonelib/anglestransform.qh"
+ #include "../../warpzonelib/mathlib.qh"
+ #include "../../warpzonelib/common.qh"
+ #include "../../warpzonelib/client.qh"
+ #include "../playerstats.qh"
+ #include "../teams.qh"
+ #include "../util.qh"
+ #include "../nades.qh"
+ #include "../buffs.qh"
+ #include "../test.qh"
+ #include "../counting.qh"
+ #include "../weapons/weapons.qh"
+ #include "../mapinfo.qh"
+ #include "../command/markup.qh"
+ #include "../command/rpn.qh"
+ #include "../command/generic.qh"
+ #include "../command/shared_defs.qh"
+ #include "../urllib.qh"
+ #include "../animdecide.qh"
+ #include "../../client/command/cl_cmd.qh"
+#elif defined(MENUQC)
+ #include "../util-pre.qh"
+ #include "../../menu/sys-pre.qh"
+ #include "../../dpdefs/menudefs.qc"
+ #include "../../dpdefs/keycodes.qc"
+ #include "../../menu/sys-post.qh"
+ #include "../../menu/config.qh"
+ #include "../../warpzonelib/mathlib.qh"
+ #include "../util.qh"
+ #include "../test.qh"
+ #include "../../menu/oo/base.qh"
+ #include "../playerstats.qh"
+ #include "../teams.qh"
+ #include "../constants.qh"
+ #include "../mapinfo.qh"
+ #include "../campaign_common.qh"
+ #include "../weapons/weapons.qh"
+ #include "../counting.qh"
+ #include "../command/markup.qh"
+ #include "../command/rpn.qh"
+ #include "../command/generic.qh"
+ #include "../command/shared_defs.qh"
+ #include "../urllib.qh"
+#elif defined(SVQC)
+ #include "../util-pre.qh"
+ #include "../../server/sys-pre.qh"
+ #include "../../dpdefs/progsdefs.qc"
+ #include "../../dpdefs/dpextensions.qc"
+ #include "../../server/sys-post.qh"
+ #include "../../warpzonelib/anglestransform.qh"
+ #include "../../warpzonelib/mathlib.qh"
+ #include "../../warpzonelib/common.qh"
+ #include "../../warpzonelib/util_server.qh"
+ #include "../../warpzonelib/server.qh"
+ #include "../constants.qh"
+ #include "../stats.qh"
+ #include "../teams.qh"
+ #include "../util.qh"
+ #include "../nades.qh"
+ #include "../buffs.qh"
+ #include "../test.qh"
+ #include "../counting.qh"
+ #include "../urllib.qh"
+ #include "../command/markup.qh"
+ #include "../command/rpn.qh"
+ #include "../command/generic.qh"
+ #include "../command/shared_defs.qh"
+ #include "../net_notice.qh"
+ #include "../animdecide.qh"
+#endif
+
// monster requests
-#define MR_SETUP 1 // (SERVER) setup monster data
-#define MR_THINK 2 // (SERVER) logic to run every frame
-#define MR_DEATH 3 // (SERVER) called when monster dies
-#define MR_PRECACHE 4 // (BOTH) precaches models/sounds used by this monster
+const int MR_SETUP = 1; // (SERVER) setup monster data
+const int MR_THINK = 2; // (SERVER) logic to run every frame
+const int MR_DEATH = 3; // (SERVER) called when monster dies
+const int MR_PRECACHE = 4; // (BOTH) precaches models/sounds used by this monster
// functions:
entity get_monsterinfo(float id);
// special spawn flags
-const float MONSTER_RESPAWN_DEATHPOINT = 16; // re-spawn where we died
-const float MONSTER_TYPE_FLY = 32;
-const float MONSTER_TYPE_SWIM = 64;
-const float MONSTER_SIZE_BROKEN = 128; // TODO: remove when bad models are replaced
-const float MON_FLAG_SUPERMONSTER = 256; // incredibly powerful monster
-const float MON_FLAG_RANGED = 512; // monster shoots projectiles
-const float MON_FLAG_MELEE = 1024;
+const int MONSTER_RESPAWN_DEATHPOINT = 16; // re-spawn where we died
+const int MONSTER_TYPE_FLY = 32;
+const int MONSTER_TYPE_SWIM = 64;
+const int MONSTER_SIZE_BROKEN = 128; // TODO: remove when bad models are replaced
+const int MON_FLAG_SUPERMONSTER = 256; // incredibly powerful monster
+const int MON_FLAG_RANGED = 512; // monster shoots projectiles
+const int MON_FLAG_MELEE = 1024;
// entity properties of monsterinfo:
.float monsterid; // MON_...
.float(float) monster_func; // m_...
.string mdl; // currently a copy of the model
.string model; // full name of model
-.float spawnflags;
+.int spawnflags;
.vector mins, maxs; // monster hitbox size
// other useful macros
void register_monster(float id, float(float) func, float monsterflags, vector min_s, vector max_s, string modelname, string shortname, string mname);
void register_monsters_done();
-const float MON_MAXCOUNT = 24;
-#define MON_FIRST 1
-float MON_COUNT;
-float MON_LAST;
+const int MON_MAXCOUNT = 24;
+const int MON_FIRST = 1;
+int MON_COUNT;
+int MON_LAST;
#define REGISTER_MONSTER_2(id,func,monsterflags,min_s,max_s,modelname,shortname,mname) \
- float id; \
+ int id; \
float func(float); \
void RegisterMonsters_##id() \
{ \
#undef REGISTER_MONSTER
ACCUMULATE_FUNCTION(RegisterMonsters, register_monsters_done);
+#endif
\ No newline at end of file