]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/turrets/all.qh
Turrets: cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / turrets / all.qh
1 #ifndef TURRETS_ALL_H
2 #define TURRETS_ALL_H
3
4 #include "turret.qh"
5
6 void register_turret(entity e, float(float) func, float turretflags, vector min_s, vector max_s, string modelname, string headmodelname, string shortname, string mname);
7
8 const int TUR_MAXCOUNT = 24;
9 entity turret_info[TUR_MAXCOUNT], turret_info_first, turret_info_last;
10 float TUR_COUNT;
11
12 #define _REGISTER_TURRET(id, func, turretflags, min_s, max_s, modelname, headmodelname, shortname, mname) \
13         float func(float); \
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); \
16         }
17 void RegisterTurrets();
18 REGISTER_REGISTRY(RegisterTurrets)
19
20 #ifdef MENUQC
21 #define REGISTER_TURRET(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname) \
22         _REGISTER_TURRET(id,t_null,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname)
23 #else
24 #define REGISTER_TURRET(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname) \
25         _REGISTER_TURRET(id,func,turretflags,min_s,max_s,modelname,headmodelname,shortname,mname)
26 #endif
27
28 void register_turret(Turret e, float(float) func, float turretflags, vector min_s, vector max_s, string modelname, string headmodelname, string shortname, string mname)
29 {
30         e.classname = "turret_info";
31         e.turretid = e.m_id;
32         e.netname = shortname;
33         e.turret_name = mname;
34         e.turret_func = func;
35         e.mdl = modelname;
36         e.cvar_basename = shortname;
37         e.spawnflags = turretflags;
38         e.mins = min_s;
39         e.maxs = max_s;
40         e.model = strzone(strcat("models/turrets/", modelname));
41         e.head_model = strzone(strcat("models/turrets/", headmodelname));
42 }
43
44 entity get_turretinfo(int id);
45
46 REGISTER_TURRET(Null,
47         t_null,
48         0,
49         '-0 -0 -0',
50         '0 0 0',
51         "",
52         "",
53         "",
54         "Turret"
55 );
56
57 #include "all.inc"
58
59 #endif