4 #include <common/items/all.qh>
5 #include <common/resources/resources.qh>
7 #include <common/resources/sv_resources.qh>
8 #include <server/items/items.qh>
16 PROPERTY(float, g_pickup_ammo_anyway);
21 ATTRIB(Ammo, m_pickupevalfunc, float(entity player, entity item), ammo_pickupevalfunc);
22 ATTRIB(Ammo, m_respawntime, float(), GET(g_pickup_respawntime_ammo));
23 ATTRIB(Ammo, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_ammo));
24 ATTRIB(Ammo, m_pickupanyway, float(), GET(g_pickup_ammo_anyway));
29 // NOTE: ammo resource registration order should match ammo (as item) registration order
30 // see REGISTER_RESOURCE calls order
32 // ammo type #1: shells
34 MODEL(Shells_ITEM, Item_Model("a_shells.md3"));
38 PROPERTY(int, g_pickup_shells);
39 void ammo_shells_init(Pickup this, entity item)
41 if(!GetResource(item, RES_SHELLS))
42 SetResourceExplicit(item, RES_SHELLS, g_pickup_shells);
49 REGISTER_ITEM(Shells, Shells) {
50 this.m_canonical_spawnfunc = "item_shells";
52 this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
53 this.m_model = MDL_Shells_ITEM;
55 this.netname = "shells";
56 this.m_name = _("Shells");
57 this.m_icon = "ammo_shells";
59 this.m_botvalue = 1000;
60 this.m_itemid = IT_RESOURCE;
61 this.m_iteminit = ammo_shells_init;
65 SPAWNFUNC_ITEM(item_shells, ITEM_Shells)
68 // ammo type #2: bullets
70 MODEL(Bullets_ITEM, Item_Model("a_bullets.mdl"));
74 PROPERTY(int, g_pickup_nails);
75 void ammo_bullets_init(Pickup this, entity item)
77 if(!GetResource(item, RES_BULLETS))
78 SetResourceExplicit(item, RES_BULLETS, g_pickup_nails);
85 REGISTER_ITEM(Bullets, Bullets) {
86 this.m_canonical_spawnfunc = "item_bullets";
88 this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
89 this.m_model = MDL_Bullets_ITEM;
91 this.netname = "bullets";
92 this.m_name = _("Bullets");
93 this.m_icon = "ammo_bullets";
95 this.m_botvalue = 1500;
96 this.m_itemid = IT_RESOURCE;
97 this.m_iteminit = ammo_bullets_init;
101 SPAWNFUNC_ITEM(item_bullets, ITEM_Bullets)
104 // ammo type #3: rockets
106 MODEL(Rockets_ITEM, Item_Model("a_rockets.md3"));
110 PROPERTY(int, g_pickup_rockets);
111 void ammo_rockets_init(Pickup this, entity item)
113 if(!GetResource(item, RES_ROCKETS))
114 SetResourceExplicit(item, RES_ROCKETS, g_pickup_rockets);
117 REGISTER_ITEM(Rockets, Ammo) {
118 this.m_canonical_spawnfunc = "item_rockets";
120 this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
121 this.m_model = MDL_Rockets_ITEM;
123 this.netname = "rockets";
124 this.m_name = _("Rockets");
125 this.m_icon = "ammo_rockets";
127 this.m_botvalue = 1500;
128 this.m_itemid = IT_RESOURCE;
129 this.m_iteminit = ammo_rockets_init;
133 SPAWNFUNC_ITEM(item_rockets, ITEM_Rockets)
136 // ammo type #4: cells
138 MODEL(Cells_ITEM, Item_Model("a_cells.md3"));
142 PROPERTY(int, g_pickup_cells);
143 void ammo_cells_init(Pickup this, entity item)
145 if(!GetResource(item, RES_CELLS))
146 SetResourceExplicit(item, RES_CELLS, g_pickup_cells);
149 REGISTER_ITEM(Cells, Ammo) {
150 this.m_canonical_spawnfunc = "item_cells";
152 this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
153 this.m_model = MDL_Cells_ITEM;
155 this.netname = "cells";
156 this.m_name = _("Cells");
157 this.m_icon = "ammo_cells";
159 this.m_botvalue = 1500;
160 this.m_itemid = IT_RESOURCE;
161 this.m_iteminit = ammo_cells_init;
165 SPAWNFUNC_ITEM(item_cells, ITEM_Cells)
168 // ammo type #5: plasma
170 MODEL(Plasma_ITEM, Item_Model("a_cells.md3"));
174 PROPERTY(int, g_pickup_plasma);
175 void ammo_plasma_init(Pickup this, entity item)
177 if(!GetResource(item, RES_PLASMA))
178 SetResourceExplicit(item, RES_PLASMA, g_pickup_plasma);
181 REGISTER_ITEM(Plasma, Ammo) {
182 this.m_canonical_spawnfunc = "item_plasma";
184 this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
185 this.m_model = MDL_Plasma_ITEM;
187 this.netname = "plasma";
188 this.m_name = _("Plasma");
189 this.m_icon = "ammo_plasma";
191 this.m_botvalue = 1500;
192 this.m_itemid = IT_RESOURCE;
193 this.m_iteminit = ammo_plasma_init;
197 SPAWNFUNC_ITEM(item_plasma, ITEM_Plasma)