]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/pickup.qh
fae573c70c5551695c24beccdaf7f4f51563d4aa
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / pickup.qh
1 #pragma once
2
3 #ifdef SVQC
4 PROPERTY(float, g_pickup_respawntime_weapon)
5 PROPERTY(float, g_pickup_respawntime_superweapon)
6 PROPERTY(float, g_pickup_respawntime_ammo)
7 PROPERTY(float, g_pickup_respawntime_short)
8 PROPERTY(float, g_pickup_respawntime_medium)
9 PROPERTY(float, g_pickup_respawntime_long)
10 PROPERTY(float, g_pickup_respawntime_powerup)
11 PROPERTY(float, g_pickup_respawntimejitter_weapon)
12 PROPERTY(float, g_pickup_respawntimejitter_superweapon)
13 PROPERTY(float, g_pickup_respawntimejitter_ammo)
14 PROPERTY(float, g_pickup_respawntimejitter_short)
15 PROPERTY(float, g_pickup_respawntimejitter_medium)
16 PROPERTY(float, g_pickup_respawntimejitter_long)
17 PROPERTY(float, g_pickup_respawntimejitter_powerup)
18 #endif
19
20 #include <common/items/inventory.qh>
21 #include <common/items/item.qh>
22 #include <common/t_items.qh>
23
24 #ifdef GAMEQC
25 #include <common/models/all.qh>
26 #include <common/sounds/all.qh>
27 #include <common/sounds/all.inc>
28 #endif
29
30 CLASS(Pickup, GameItem)
31 #ifdef GAMEQC
32     ATTRIB(Pickup, m_model, Model);
33     ATTRIB(Pickup, m_sound, Sound, SND_ITEMPICKUP);
34 #endif
35     ATTRIB(Pickup, netname, string);
36     ATTRIB(Pickup, m_name, string);
37     METHOD(Pickup, show, void(Pickup this))
38     {
39         TC(Pickup, this);
40         LOG_INFOF("%s: %s\n", etos(this), this.m_name);
41     }
42     ATTRIB(Pickup, m_itemid, int, 0);
43 #ifdef SVQC
44     ATTRIB(Pickup, m_mins, vector, '-16 -16 0');
45     ATTRIB(Pickup, m_maxs, vector, '16 16 32');
46     ATTRIB(Pickup, m_botvalue, int, 0);
47     ATTRIB(Pickup, m_itemflags, int, 0);
48     float generic_pickupevalfunc(entity player, entity item);
49     ATTRIB(Pickup, m_pickupevalfunc, float(entity player, entity item), generic_pickupevalfunc);
50     ATTRIB(Pickup, m_respawntime, float());
51     ATTRIB(Pickup, m_respawntimejitter, float());
52     ATTRIB(Pickup, m_pickupanyway, float());
53     ATTRIB(Pickup, m_iteminit, void(entity item));
54     float Item_GiveTo(entity item, entity player);
55     METHOD(Pickup, giveTo, bool(Pickup this, entity item, entity player))
56     {
57         TC(Pickup, this);
58         bool b = Item_GiveTo(item, player);
59         if (b) {
60             LOG_DEBUGF("entity %i picked up %s", player, this.m_name);
61             player.inventory.inv_items[this.m_id]++;
62             Inventory_update(player);
63         }
64         return b;
65     }
66     bool ITEM_HANDLE(Pickup, Pickup this, entity item, entity player);
67 #endif
68 ENDCLASS(Pickup)