]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/pickup.qh
Merge branch 'TimePath/items' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / pickup.qh
1 #ifndef PICKUP_H
2 #define PICKUP_H
3 #include "../inventory.qh"
4 #include "../item.qh"
5 CLASS(Pickup, GameItem)
6 #ifndef MENUQC
7     ATTRIB(Pickup, m_model, Model, NULL)
8     ATTRIB(Pickup, m_sound, Sound, SND_ITEMPICKUP)
9 #endif
10     ATTRIB(Pickup, m_name, string, string_null)
11     METHOD(Pickup, show, void(entity this));
12     void Pickup_show(entity this) { LOG_INFOF("%s: %s\n", etos(this), this.m_name); }
13 #ifdef SVQC
14     ATTRIB(Pickup, m_mins, vector, '-16 -16 0')
15     ATTRIB(Pickup, m_maxs, vector, '16 16 32')
16     ATTRIB(Pickup, m_botvalue, int, 0)
17     ATTRIB(Pickup, m_itemflags, int, 0)
18     ATTRIB(Pickup, m_itemid, int, 0)
19     float generic_pickupevalfunc(entity player, entity item);
20     ATTRIB(Pickup, m_pickupevalfunc, float(entity player, entity item), generic_pickupevalfunc)
21     ATTRIB(Pickup, m_respawntime, float(), func_null)
22     ATTRIB(Pickup, m_respawntimejitter, float(), func_null)
23     float Item_GiveTo(entity item, entity player);
24     METHOD(Pickup, giveTo, bool(entity this, entity item, entity player))
25     {
26         bool b = Item_GiveTo(item, player);
27         if (b) {
28             LOG_TRACEF("entity %i picked up %s\n", player, this.m_name);
29             player.inventory.inv_items[this.m_id]++;
30             Inventory_update(player);
31         }
32         return b;
33     }
34     bool ITEM_HANDLE(Pickup, entity this, entity item, entity player);
35 #endif
36 ENDCLASS(Pickup)
37
38 #endif