]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/pickup.qh
#pragma once
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / pickup.qh
1 #pragma once
2
3 #include <common/items/inventory.qh>
4 #include <common/items/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(Pickup this))
12     {
13         TC(Pickup, this);
14         LOG_INFOF("%s: %s\n", etos(this), this.m_name);
15     }
16 #ifdef SVQC
17     ATTRIB(Pickup, m_mins, vector, '-16 -16 0')
18     ATTRIB(Pickup, m_maxs, vector, '16 16 32')
19     ATTRIB(Pickup, m_botvalue, int, 0)
20     ATTRIB(Pickup, m_itemflags, int, 0)
21     ATTRIB(Pickup, m_itemid, int, 0)
22     float generic_pickupevalfunc(entity player, entity item);
23     ATTRIB(Pickup, m_pickupevalfunc, float(entity player, entity item), generic_pickupevalfunc)
24     ATTRIB(Pickup, m_respawntime, float(), func_null)
25     ATTRIB(Pickup, m_respawntimejitter, float(), func_null)
26     float Item_GiveTo(entity item, entity player);
27     METHOD(Pickup, giveTo, bool(Pickup this, entity item, entity player))
28     {
29         TC(Pickup, this);
30         bool b = Item_GiveTo(item, player);
31         if (b) {
32             LOG_DEBUGF("entity %i picked up %s\n", player, this.m_name);
33             player.inventory.inv_items[this.m_id]++;
34             Inventory_update(player);
35         }
36         return b;
37     }
38     bool ITEM_HANDLE(Pickup, Pickup this, entity item, entity player);
39 #endif
40 ENDCLASS(Pickup)