X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fitems%2Fitem%2Fpickup.qh;h=204a49921d5f2b84fbc3f30aaff98d692dcbf9e7;hp=dbc74a0625621bee288da55c946ebbfaf6ab4704;hb=f34fd47ee0a7f283ab60592a17399ec5a500416c;hpb=a665cd1434481e14b353c3a1bec9030b2ceede4f diff --git a/qcsrc/common/items/item/pickup.qh b/qcsrc/common/items/item/pickup.qh index dbc74a062..204a49921 100644 --- a/qcsrc/common/items/item/pickup.qh +++ b/qcsrc/common/items/item/pickup.qh @@ -1,30 +1,59 @@ -#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 + +// pickup ratings for bot logic +const int BOT_PICKUP_RATING_LOW = 2500; +const int BOT_PICKUP_RATING_MID = 5000; +const int BOT_PICKUP_RATING_HIGH = 10000; + +#include +#include +#include + 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(Pickup this)) { LOG_INFOF("%s: %s\n", etos(this), this.m_name); } + 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()); 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); + LOG_DEBUGF("entity %i picked up %s", player, this.m_name); player.inventory.inv_items[this.m_id]++; Inventory_update(player); } @@ -33,5 +62,3 @@ CLASS(Pickup, GameItem) bool ITEM_HANDLE(Pickup, Pickup this, entity item, entity player); #endif ENDCLASS(Pickup) - -#endif