]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/ammo.qh
Merge branch 'master' into Lyberta/TeamplayOverhaul
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / ammo.qh
1 #pragma once
2
3 #include "pickup.qh"
4 #ifdef SVQC
5     #include <common/t_items.qh>
6     #include <server/resources.qh>
7 #endif
8
9 #if 1
10 .int ammo_none;
11 .int ammo_shells;
12 .int ammo_nails;
13 .int ammo_rockets;
14 .int ammo_cells;
15 #ifdef SVQC
16 .int ammo_plasma = _STAT(PLASMA);
17 .int ammo_fuel = _STAT(FUEL);
18 #else
19 .int ammo_plasma;
20 .int ammo_fuel;
21 #endif
22 #endif
23
24 #ifdef SVQC
25 PROPERTY(float, g_pickup_ammo_anyway);
26 #endif
27
28 CLASS(Ammo, Pickup)
29 #ifdef SVQC
30     ATTRIB(Ammo, m_pickupevalfunc, float(entity player, entity item), ammo_pickupevalfunc);
31     ATTRIB(Ammo, m_respawntime, float(), GET(g_pickup_respawntime_ammo));
32     ATTRIB(Ammo, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_ammo));
33     ATTRIB(Ammo, m_pickupanyway, float(), GET(g_pickup_ammo_anyway));
34 #endif
35 ENDCLASS(Ammo)
36
37
38 #ifdef GAMEQC
39 MODEL(Bullets_ITEM, Item_Model("a_bullets.mdl"));
40 #endif
41
42 #ifdef SVQC
43 PROPERTY(int, g_pickup_nails);
44 void ammo_bullets_init(Pickup this, entity item)
45 {
46     if(!GetResourceAmount(item, RESOURCE_BULLETS))
47         SetResourceAmountExplicit(item, RESOURCE_BULLETS, g_pickup_nails);
48 }
49 #endif
50
51 CLASS(Bullets, Ammo)
52 ENDCLASS(Bullets)
53
54 REGISTER_ITEM(Bullets, Bullets) {
55     this.m_canonical_spawnfunc = "item_bullets";
56 #ifdef GAMEQC
57         this.spawnflags = ITEM_FLAG_NORMAL;
58     this.m_model    =   MDL_Bullets_ITEM;
59 #endif
60     this.netname    =   "bullets";
61     this.m_name     =   "bullets";
62     this.m_icon     =   "ammo_bullets";
63 #ifdef SVQC
64     this.m_botvalue =   1500;
65     this.m_itemid   =   IT_NAILS;
66     this.m_iteminit =   ammo_bullets_init;
67 #endif
68 }
69
70 SPAWNFUNC_ITEM(item_bullets, ITEM_Bullets)
71
72 #ifdef GAMEQC
73 MODEL(Cells_ITEM, Item_Model("a_cells.md3"));
74 #endif
75
76 #ifdef SVQC
77 PROPERTY(int, g_pickup_cells);
78 void ammo_cells_init(Pickup this, entity item)
79 {
80     if(!GetResourceAmount(item, RESOURCE_CELLS))
81         SetResourceAmountExplicit(item, RESOURCE_CELLS, g_pickup_cells);
82 }
83 #endif
84 REGISTER_ITEM(Cells, Ammo) {
85     this.m_canonical_spawnfunc = "item_cells";
86 #ifdef GAMEQC
87         this.spawnflags = ITEM_FLAG_NORMAL;
88     this.m_model    =   MDL_Cells_ITEM;
89 #endif
90     this.netname    =   "cells";
91     this.m_name     =   "cells";
92     this.m_icon     =   "ammo_cells";
93 #ifdef SVQC
94     this.m_botvalue =   1500;
95     this.m_itemid   =   IT_CELLS;
96     this.m_iteminit =   ammo_cells_init;
97 #endif
98 }
99
100 SPAWNFUNC_ITEM(item_cells, ITEM_Cells)
101
102 #ifdef GAMEQC
103 MODEL(Plasma_ITEM, Item_Model("a_cells.md3"));
104 #endif
105
106 #ifdef SVQC
107 PROPERTY(int, g_pickup_plasma);
108 void ammo_plasma_init(Pickup this, entity item)
109 {
110     if(!GetResourceAmount(item, RESOURCE_PLASMA))
111         SetResourceAmountExplicit(item, RESOURCE_PLASMA, g_pickup_plasma);
112 }
113 #endif
114 REGISTER_ITEM(Plasma, Ammo) {
115     this.m_canonical_spawnfunc = "item_plasma";
116 #ifdef GAMEQC
117         this.spawnflags = ITEM_FLAG_NORMAL;
118     this.m_model    =   MDL_Plasma_ITEM;
119 #endif
120     this.netname    =   "plasma";
121     this.m_name     =   "plasma";
122     this.m_icon     =   "ammo_plasma";
123 #ifdef SVQC
124     this.m_botvalue =   1500;
125     this.m_itemid   =   IT_PLASMA;
126     this.m_iteminit =   ammo_plasma_init;
127 #endif
128 }
129
130 SPAWNFUNC_ITEM(item_plasma, ITEM_Plasma)
131
132 #ifdef GAMEQC
133 MODEL(Rockets_ITEM, Item_Model("a_rockets.md3"));
134 #endif
135
136 #ifdef SVQC
137 PROPERTY(int, g_pickup_rockets);
138 void ammo_rockets_init(Pickup this, entity item)
139 {
140     if(!GetResourceAmount(item, RESOURCE_ROCKETS))
141         SetResourceAmountExplicit(item, RESOURCE_ROCKETS, g_pickup_rockets);
142 }
143 #endif
144 REGISTER_ITEM(Rockets, Ammo) {
145     this.m_canonical_spawnfunc = "item_rockets";
146 #ifdef GAMEQC
147         this.spawnflags = ITEM_FLAG_NORMAL;
148     this.m_model    =   MDL_Rockets_ITEM;
149 #endif
150     this.netname    =   "rockets";
151     this.m_name     =   "rockets";
152     this.m_icon     =   "ammo_rockets";
153 #ifdef SVQC
154     this.m_botvalue =   1500;
155     this.m_itemid   =   IT_ROCKETS;
156     this.m_iteminit =   ammo_rockets_init;
157 #endif
158 }
159
160 SPAWNFUNC_ITEM(item_rockets, ITEM_Rockets)
161
162 #ifdef GAMEQC
163 MODEL(Shells_ITEM, Item_Model("a_shells.md3"));
164 #endif
165
166 #ifdef SVQC
167 PROPERTY(int, g_pickup_shells);
168 void ammo_shells_init(Pickup this, entity item)
169 {
170     if(!GetResourceAmount(item, RESOURCE_SHELLS))
171         SetResourceAmountExplicit(item, RESOURCE_SHELLS, g_pickup_shells);
172 }
173 #endif
174
175 CLASS(Shells, Ammo)
176 ENDCLASS(Shells)
177
178 REGISTER_ITEM(Shells, Shells) {
179     this.m_canonical_spawnfunc = "item_shells";
180 #ifdef GAMEQC
181         this.spawnflags = ITEM_FLAG_NORMAL;
182     this.m_model    =   MDL_Shells_ITEM;
183 #endif
184     this.netname    =   "shells";
185     this.m_name     =   "shells";
186     this.m_icon     =   "ammo_shells";
187 #ifdef SVQC
188     this.m_botvalue =   1000;
189     this.m_itemid   =   IT_SHELLS;
190     this.m_iteminit =   ammo_shells_init;
191 #endif
192 }
193
194 SPAWNFUNC_ITEM(item_shells, ITEM_Shells)