X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ft_items.qh;h=1c277fbc4010b6ca39406ce8485d9b3233c5cc35;hb=65459f5d1671e5ce33cffcf78f6da10b8966c171;hp=1c65e806af7e97544ef801904c7f9c1aeb0e741d;hpb=a8e9c14803c6ee158f8183701f8e9c8601da9983;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/t_items.qh b/qcsrc/common/t_items.qh index 1c65e806a..1c277fbc4 100644 --- a/qcsrc/common/t_items.qh +++ b/qcsrc/common/t_items.qh @@ -1,5 +1,9 @@ #pragma once +#ifdef SVQC +#include +#endif + const int AMMO_COUNT = 4; // amount of ammo types to show in the inventory panel // item networking @@ -12,7 +16,7 @@ const int ISF_STATUS = BIT(3); const int ITS_AVAILABLE = BIT(3); const int ITS_ALLOWFB = BIT(4); const int ITS_ALLOWSI = BIT(5); - const int ITS_POWERUP = BIT(6); + const int ITS_GLOW = BIT(6); const int ISF_COLORMAP = BIT(4); const int ISF_DROP = BIT(5); const int ISF_ANGLES = BIT(6); @@ -20,6 +24,7 @@ const int ISF_SIZE = BIT(7); .int ItemStatus; +.float onground_time; .float fade_start; .float fade_end; @@ -29,6 +34,7 @@ void StartItem(entity this, entity a); #ifdef CSQC +bool autocvar_cl_items_nofade; float autocvar_cl_animate_items = 1; float autocvar_cl_ghost_items = 0.45; vector autocvar_cl_ghost_items_color = '-1 -1 -1'; @@ -61,8 +67,6 @@ bool have_pickup_item(entity this); const float ITEM_RESPAWN_TICKS = 10; -#define ITEM_RESPAWNTIME(i) ((i).respawntime + crandom() * (i).respawntimejitter) - // range: respawntime - respawntimejitter .. respawntime + respawntimejitter #define ITEM_RESPAWNTIME_INITIAL(i) (ITEM_RESPAWN_TICKS + random() * ((i).respawntime + (i).respawntimejitter - ITEM_RESPAWN_TICKS)) // range: 10 .. respawntime + respawntimejitter @@ -79,11 +83,21 @@ void Item_ScheduleRespawnIn(entity e, float t); void Item_ScheduleRespawn(entity e); void Item_ScheduleInitialRespawn(entity e); -float ITEM_MODE_NONE = 0; -float ITEM_MODE_HEALTH = 1; -float ITEM_MODE_ARMOR = 2; -float ITEM_MODE_FUEL = 3; -float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax, float mode); + +/// \brief Give several random weapons and ammo to the entity. +/// \param[in,out] receiver Entity to give weapons to. +/// \param[in] num_weapons Number of weapons to give. +/// \param[in] weapon_names Names of weapons to give separated by spaces. +/// \param[in] shells Amount of shells to give with shell-based weapon. +/// \param[in] bullets Amount of bullets to give with bullet-based weapon. +/// \param[in] rockets Amount of rockets to give with rocket-based weapon. +/// \param[in] cells Amount of cells to give with cell-based weapon. +/// \param[in] plasma Amount of plasma to give with plasma-based weapon. +/// \return No return. +void GiveRandomWeapons(entity receiver, int num_weapons, string weapon_names, + float shells, float bullets, float rockets, float cells, float plasma); + +float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax); float Item_GiveTo(entity item, entity player); @@ -105,13 +119,15 @@ void UpdateItemAfterTeleport(entity this); float generic_pickupevalfunc(entity player, entity item);// {return item.bot_pickupbasevalue;} // WEAPONTODO float weapon_pickupevalfunc(entity player, entity item); - -float commodity_pickupevalfunc(entity player, entity item); +float ammo_pickupevalfunc(entity player, entity item); +float healtharmor_pickupevalfunc(entity player, entity item); .float is_item; .entity itemdef; void _StartItem(entity this, entity def, float defaultrespawntime, float defaultrespawntimejitter); +void setItemGroup(entity this); +void setItemGroupCount(); float GiveWeapon(entity e, float wpn, float op, float val);