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