X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Ft_items.qh;h=af7d91758dd4afd0bbbfa69fc8fc155433f71609;hp=5ebc9d7e6234f4e8bd06d1233f0584a91946a254;hb=e98ed192eac2c7983d5395418f3e9396024fa9ba;hpb=c0da80fe6125a43ee99a90808ac6f9d0ddcf88c8 diff --git a/qcsrc/common/t_items.qh b/qcsrc/common/t_items.qh index 5ebc9d7e62..af7d91758d 100644 --- a/qcsrc/common/t_items.qh +++ b/qcsrc/common/t_items.qh @@ -1,5 +1,11 @@ -#ifndef T_ITEMS_H -#define T_ITEMS_H +#pragma once + +#ifdef SVQC +#include +#endif + +/// \brief Unconditional maximum amount of items the player can have. +const int ITEM_COUNT_HARD_LIMIT = 999; const int AMMO_COUNT = 4; // amount of ammo types to show in the inventory panel @@ -13,7 +19,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); @@ -21,6 +27,7 @@ const int ISF_SIZE = BIT(7); .int ItemStatus; +.float onground_time; .float fade_start; .float fade_end; @@ -30,6 +37,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'; @@ -80,15 +88,58 @@ 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 Gives player a resource such as health, armor or ammo. +/// \param[in,out] player Player to give resource to. +/// \param[in] resource_type Type of the resource. +/// \param[in] amount Amount of resource to give. +/// \return No return. +void GivePlayerResource(entity player, .float resource_type, float amount); + +/// \brief Gives health to the player. +/// \param[in,out] player Player to give health to. +/// \param[in] amount Amount of health to give. +/// \return No return. +void GivePlayerHealth(entity player, float amount); + +/// \brief Gives armor to the player. +/// \param[in,out] player Player to give armor to. +/// \param[in] amount Amount of armor to give. +/// \return No return. +void GivePlayerArmor(entity player, float amount); + +/// \brief Gives ammo of the specified type to the player. +/// \param[in,out] player Player to give ammo to. +/// \param[in] type Ammo type property. +/// \param[in] amount Amount of ammo to give. +/// \return No return. +void GivePlayerAmmo(entity player, .float ammotype, float amount); + +/// \brief Gives fuel to the player. +/// \param[in,out] player Player to give fuel to. +/// \param[in] amount Amount of fuel to give. +/// \return No return. +void GivePlayerFuel(entity player, float amount); + +/// \brief Give several random weapons and ammo to the player. +/// \param[in,out] player Player 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] cells Amount of plasma to give with plasma-based weapon. +/// \return No return. +void GivePlayerRandomWeapons(entity player, 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); -void Item_Touch(entity this); +void Item_Touch(entity this, entity toucher); void Item_Reset(entity this); @@ -106,13 +157,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); @@ -133,4 +186,3 @@ void GiveRot(entity e, float v0, float v1, .float rotfield, float rottime, .floa float GiveItems(entity e, float beginarg, float endarg); #endif -#endif