-#ifndef PICKUP_H
-#define PICKUP_H
-#include "../inventory.qh"
-#include "../item.qh"
+#pragma once
+
+#ifdef SVQC
+PROPERTY(float, g_pickup_respawntime_weapon)
+PROPERTY(float, g_pickup_respawntime_superweapon)
+PROPERTY(float, g_pickup_respawntime_ammo)
+PROPERTY(float, g_pickup_respawntime_short)
+PROPERTY(float, g_pickup_respawntime_medium)
+PROPERTY(float, g_pickup_respawntime_long)
+PROPERTY(float, g_pickup_respawntime_powerup)
+PROPERTY(float, g_pickup_respawntimejitter_weapon)
+PROPERTY(float, g_pickup_respawntimejitter_superweapon)
+PROPERTY(float, g_pickup_respawntimejitter_ammo)
+PROPERTY(float, g_pickup_respawntimejitter_short)
+PROPERTY(float, g_pickup_respawntimejitter_medium)
+PROPERTY(float, g_pickup_respawntimejitter_long)
+PROPERTY(float, g_pickup_respawntimejitter_powerup)
+#endif
+
+#include <common/items/inventory.qh>
+#include <common/items/item.qh>
+#include <common/t_items.qh>
+
+#ifdef GAMEQC
+#include <common/models/all.qh>
+#include <common/sounds/all.qh>
+#include <common/sounds/all.inc>
+#endif
+
CLASS(Pickup, GameItem)
-#ifndef MENUQC
- ATTRIB(Pickup, m_model, Model, NULL)
- ATTRIB(Pickup, m_sound, Sound, SND_ITEMPICKUP)
+#ifdef GAMEQC
+ ATTRIB(Pickup, m_model, Model);
+ 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) { LOG_INFOF("%s: %s\n", etos(this), this.m_name); }
+ ATTRIB(Pickup, netname, string);
+ ATTRIB(Pickup, m_name, string);
+ METHOD(Pickup, show, void(Pickup this))
+ {
+ TC(Pickup, this);
+ LOG_INFOF("%s: %s\n", etos(this), this.m_name);
+ }
+ ATTRIB(Pickup, m_itemid, int, 0);
#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)
+ 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);
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)
+ ATTRIB(Pickup, m_pickupevalfunc, float(entity player, entity item), generic_pickupevalfunc);
+ ATTRIB(Pickup, m_respawntime, float());
+ ATTRIB(Pickup, m_respawntimejitter, float());
+ ATTRIB(Pickup, m_pickupanyway, float());
+ ATTRIB(Pickup, m_iteminit, void(entity item));
float Item_GiveTo(entity item, entity player);
- METHOD(Pickup, giveTo, bool(entity this, 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);
+ LOG_DEBUGF("entity %i picked up %s", player, this.m_name);
player.inventory.inv_items[this.m_id]++;
Inventory_update(player);
}
return b;
}
- bool ITEM_HANDLE(Pickup, entity this, entity item, entity player);
+ bool ITEM_HANDLE(Pickup, Pickup this, entity item, entity player);
#endif
ENDCLASS(Pickup)
-
-#endif