6 void register_turret(Turret e, bool(Turret, int) func, float turretflags, vector min_s, vector max_s, string modelname, string headmodelname, string shortname, string mname);
8 const int TUR_MAXCOUNT = 24;
9 entity turret_info[TUR_MAXCOUNT], turret_info_first, turret_info_last;
12 #define _REGISTER_TURRET(id, func, turretflags, min_s, max_s, modelname, headmodelname, shortname, mname) \
13 bool func(Turret, int); \
14 REGISTER(RegisterTurrets, TUR, turret_info, TUR_COUNT, id, m_id, NEW(Turret)) { \
15 register_turret(this, func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname); \
17 void RegisterTurrets();
18 REGISTER_REGISTRY(RegisterTurrets)
20 #define REGISTER_TURRET(...) EVAL(OVERLOAD(REGISTER_TURRET, __VA_ARGS__))
22 #define REGISTER_TURRET_2(id, inst) REGISTER(RegisterTurrets, TUR, turret_info, TUR_COUNT, id, m_id, inst)
25 #define REGISTER_TURRET_9(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname) \
26 _REGISTER_TURRET(id,t_new,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname)
28 #define REGISTER_TURRET_9(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname) \
29 _REGISTER_TURRET(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname)
32 void register_turret(Turret e, bool(Turret, int) func, float turretflags, vector min_s, vector max_s, string modelname, string headmodelname, string shortname, string mname)
34 e.classname = "turret_info";
37 e.spawnflags = turretflags;
41 e.model = strzone(strcat("models/turrets/", modelname));
42 e.head_model = strzone(strcat("models/turrets/", headmodelname));
43 e.netname = shortname;
44 e.turret_name = mname;
47 entity get_turretinfo(int id);