]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/items/item/pickup.qh
Merge branch 'master' into terencehill/dynamic_hud
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / pickup.qh
index 643617068c490eec99fb279fdf43958d9d4c1e49..08f7ff9c3d6b23c5c67cbfc6ee7595e9bd906625 100644 (file)
@@ -1,44 +1,42 @@
 #ifndef PICKUP_H
 #define PICKUP_H
-#include "../item.qh"
+#include <common/items/inventory.qh>
+#include <common/items/item.qh>
 CLASS(Pickup, GameItem)
-    ATTRIB(Pickup, m_model, string, string_null)
-    ATTRIB(Pickup, m_sound, string, "misc/itempickup.wav")
+#ifndef MENUQC
+    ATTRIB(Pickup, m_model, Model, NULL)
+    ATTRIB(Pickup, m_sound, Sound, SND_ITEMPICKUP)
+#endif
     ATTRIB(Pickup, m_name, string, string_null)
-    METHOD(Pickup, show, void(entity this));
-    void Pickup_show(entity this) { printf("%s: %s\n", etos(this), this.m_name); }
+    METHOD(Pickup, show, void(Pickup this))
+    {
+        TC(Pickup, this);
+        LOG_INFOF("%s: %s\n", etos(this), this.m_name);
+    }
 #ifdef SVQC
+    ATTRIB(Pickup, m_mins, vector, '-16 -16 0')
+    ATTRIB(Pickup, m_maxs, vector, '16 16 32')
     ATTRIB(Pickup, m_botvalue, int, 0)
     ATTRIB(Pickup, m_itemflags, int, 0)
     ATTRIB(Pickup, m_itemid, int, 0)
+    float generic_pickupevalfunc(entity player, entity item);
     ATTRIB(Pickup, m_pickupevalfunc, float(entity player, entity item), generic_pickupevalfunc)
     ATTRIB(Pickup, m_respawntime, float(), func_null)
     ATTRIB(Pickup, m_respawntimejitter, float(), func_null)
-    METHOD(Pickup, giveTo, bool(entity this, entity item, entity player));
-    bool Pickup_giveTo(entity this, entity item, entity player) { return Item_GiveTo(item, player); }
-    bool ITEM_HANDLE(Pickup, entity this, entity item, entity player);
+    float Item_GiveTo(entity item, entity player);
+    METHOD(Pickup, giveTo, bool(Pickup this, entity item, entity player))
+    {
+        TC(Pickup, this);
+        bool b = Item_GiveTo(item, player);
+        if (b) {
+            LOG_TRACEF("entity %i picked up %s\n", player, this.m_name);
+            player.inventory.inv_items[this.m_id]++;
+            Inventory_update(player);
+        }
+        return b;
+    }
+    bool ITEM_HANDLE(Pickup, Pickup this, entity item, entity player);
 #endif
 ENDCLASS(Pickup)
 
-#ifdef SVQC
-// For g_pickup_respawntime
-#include "../../../server/defs.qh"
-// Getters to dynamically retrieve the values of g_pickup_respawntime*
-GETTER(float, g_pickup_respawntime_weapon)
-GETTER(float, g_pickup_respawntime_superweapon)
-GETTER(float, g_pickup_respawntime_ammo)
-GETTER(float, g_pickup_respawntime_short)
-GETTER(float, g_pickup_respawntime_medium)
-GETTER(float, g_pickup_respawntime_long)
-GETTER(float, g_pickup_respawntime_powerup)
-GETTER(float, g_pickup_respawntimejitter_weapon)
-GETTER(float, g_pickup_respawntimejitter_superweapon)
-GETTER(float, g_pickup_respawntimejitter_ammo)
-GETTER(float, g_pickup_respawntimejitter_short)
-GETTER(float, g_pickup_respawntimejitter_medium)
-GETTER(float, g_pickup_respawntimejitter_long)
-GETTER(float, g_pickup_respawntimejitter_powerup)
-
-#endif
-
 #endif