]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/turrets/turrets.qc
37c85ca65a36d4c13bdf02022710c954fee715d8
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / turrets / turrets.qc
1 #include "all.qh"
2
3 // TURRET PLUGIN SYSTEM
4 entity turret_info[TUR_MAXCOUNT];
5 entity dummy_turret_info;
6
7 void turrets_common_precache()
8 {
9         precache_sound (W_Sound("rocket_impact"));
10
11 #ifdef SVQC
12         precache_sound(W_Sound("rocket_impact"));
13 #endif
14
15 #ifdef TURRET_DEBUG
16         precache_model ("models/pathlib/goodsquare.md3");
17         precache_model ("models/pathlib/badsquare.md3");
18         precache_model ("models/pathlib/square.md3");
19         precache_model ("models/pathlib/edge.md3");
20 #endif
21 }
22
23 void register_turret(float id, float(float) func, float turretflags, vector min_s, vector max_s, string modelname, string headmodelname, string shortname, string mname)
24 {
25         entity e;
26         turret_info[id - 1] = e = spawn();
27         e.classname = "turret_info";
28         e.turretid = id;
29         e.netname = shortname;
30         e.turret_name = mname;
31         e.turret_func = func;
32         e.mdl = modelname;
33         e.cvar_basename = shortname;
34         e.spawnflags = turretflags;
35         e.mins = min_s;
36         e.maxs = max_s;
37         e.model = strzone(strcat("models/turrets/", modelname));
38         e.head_model = strzone(strcat("models/turrets/", headmodelname));
39
40         #ifndef MENUQC
41         turrets_common_precache();
42         #endif
43 }
44 float t_null(float dummy) { return 0; }
45 void register_turrets_done()
46 {
47         dummy_turret_info = spawn();
48         dummy_turret_info.classname = "turret_info";
49         dummy_turret_info.turretid = 0; // you can recognize dummies by this
50         dummy_turret_info.netname = "";
51         dummy_turret_info.turret_name = "Turret";
52         dummy_turret_info.turret_func = t_null;
53         dummy_turret_info.mdl = "";
54         dummy_turret_info.mins = '-0 -0 -0';
55         dummy_turret_info.maxs = '0 0 0';
56         dummy_turret_info.model = "";
57 }
58 entity get_turretinfo(float id)
59 {
60         entity m;
61         if(id < TUR_FIRST || id > TUR_LAST)
62                 return dummy_turret_info;
63         m = turret_info[id - 1];
64         if(m)
65                 return m;
66         return dummy_turret_info;
67 }