From: bones_was_here Date: Mon, 24 Feb 2025 17:01:42 +0000 (+1000) Subject: items: clean up pickup respawntime cvars X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=4f4396b01ded71dcdfdbb58e07dafba3da8e65a1;p=xonotic%2Fxonotic-data.pk3dir.git items: clean up pickup respawntime cvars - uses autocvars instead of copying in worldspawn - removes unnecessary funcs - moves declarations from pickup.qh to specific files - removes now-redundant macros from misc.qh --- diff --git a/qcsrc/common/items/item/ammo.qh b/qcsrc/common/items/item/ammo.qh index 096f5551a..9b9d4470c 100644 --- a/qcsrc/common/items/item/ammo.qh +++ b/qcsrc/common/items/item/ammo.qh @@ -14,13 +14,15 @@ #ifdef SVQC bool autocvar_g_pickup_ammo_anyway; +float autocvar_g_pickup_respawntime_ammo; +float autocvar_g_pickup_respawntimejitter_ammo; #endif CLASS(Ammo, Pickup) #ifdef SVQC ATTRIB(Ammo, m_pickupevalfunc, float(entity player, entity item), ammo_pickupevalfunc); - ATTRIB(Ammo, m_respawntime, float(), GET(g_pickup_respawntime_ammo)); - ATTRIB(Ammo, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_ammo)); + ATTRIB(Ammo, m_respawntime, float, autocvar_g_pickup_respawntime_ammo); + ATTRIB(Ammo, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_ammo); ATTRIB(Ammo, m_pickupanyway, bool, autocvar_g_pickup_ammo_anyway); #endif ENDCLASS(Ammo) diff --git a/qcsrc/common/items/item/armor.qh b/qcsrc/common/items/item/armor.qh index 8e99c4ca4..c723f69f4 100644 --- a/qcsrc/common/items/item/armor.qh +++ b/qcsrc/common/items/item/armor.qh @@ -20,6 +20,8 @@ SOUND(ArmorSmall, Item_Sound("armor1")); bool autocvar_g_pickup_armorsmall_anyway; int autocvar_g_pickup_armorsmall; int autocvar_g_pickup_armorsmall_max; +float autocvar_g_pickup_respawntime_armor_small; +float autocvar_g_pickup_respawntimejitter_armor_small; void item_armorsmall_init(Pickup this, entity item) { if(!item.max_armorvalue) @@ -51,8 +53,8 @@ CLASS(ArmorSmall, Armor) /* minsize */ ATTRIB(ArmorSmall, m_mins, vector, ITEM_S_MINS); /* maxsize */ ATTRIB(ArmorSmall, m_maxs, vector, ITEM_S_MAXS); /* itemid */ ATTRIB(ArmorSmall, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(ArmorSmall, m_respawntime, float(), GET(g_pickup_respawntime_armor_small)); -/* */ ATTRIB(ArmorSmall, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_armor_small)); +/* respawntime */ ATTRIB(ArmorSmall, m_respawntime, float, autocvar_g_pickup_respawntime_armor_small); +/* */ ATTRIB(ArmorSmall, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_armor_small); /* pickupanyway */ ATTRIB(ArmorSmall, m_pickupanyway, bool, autocvar_g_pickup_armorsmall_anyway); /* iteminit */ ATTRIB(ArmorSmall, m_iteminit, void(Pickup this, entity item), item_armorsmall_init); #endif @@ -69,6 +71,8 @@ SOUND(ArmorMedium, Item_Sound("armor10")); bool autocvar_g_pickup_armormedium_anyway; int autocvar_g_pickup_armormedium; int autocvar_g_pickup_armormedium_max; +float autocvar_g_pickup_respawntime_armor_medium; +float autocvar_g_pickup_respawntimejitter_armor_medium; void item_armormedium_init(Pickup this, entity item) { if(!item.max_armorvalue) @@ -100,8 +104,8 @@ CLASS(ArmorMedium, Armor) /* minsize */ ATTRIB(ArmorMedium, m_mins, vector, ITEM_S_MINS); /* maxsize */ ATTRIB(ArmorMedium, m_maxs, vector, ITEM_S_MAXS); /* itemid */ ATTRIB(ArmorMedium, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(ArmorMedium, m_respawntime, float(), GET(g_pickup_respawntime_armor_medium)); -/* */ ATTRIB(ArmorMedium, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_armor_medium)); +/* respawntime */ ATTRIB(ArmorMedium, m_respawntime, float, autocvar_g_pickup_respawntime_armor_medium); +/* */ ATTRIB(ArmorMedium, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_armor_medium); /* pickupanyway */ ATTRIB(ArmorMedium, m_pickupanyway, bool, autocvar_g_pickup_armormedium_anyway); /* iteminit */ ATTRIB(ArmorMedium, m_iteminit, void(Pickup this, entity item), item_armormedium_init); #endif @@ -118,6 +122,8 @@ SOUND(ArmorBig, Item_Sound("armor17_5")); bool autocvar_g_pickup_armorbig_anyway; int autocvar_g_pickup_armorbig; int autocvar_g_pickup_armorbig_max; +float autocvar_g_pickup_respawntime_armor_big; +float autocvar_g_pickup_respawntimejitter_armor_big; void item_armorbig_init(Pickup this, entity item) { if(!item.max_armorvalue) @@ -149,8 +155,8 @@ CLASS(ArmorBig, Armor) /* wptext */ ATTRIB(ArmorBig, m_waypoint, string, _("Big armor")); #ifdef SVQC /* itemid */ ATTRIB(ArmorBig, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(ArmorBig, m_respawntime, float(), GET(g_pickup_respawntime_armor_big)); -/* */ ATTRIB(ArmorBig, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_armor_big)); +/* respawntime */ ATTRIB(ArmorBig, m_respawntime, float, autocvar_g_pickup_respawntime_armor_big); +/* */ ATTRIB(ArmorBig, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_armor_big); /* pickupanyway */ ATTRIB(ArmorBig, m_pickupanyway, bool, autocvar_g_pickup_armorbig_anyway); /* iteminit */ ATTRIB(ArmorBig, m_iteminit, void(Pickup this, entity item), item_armorbig_init); #endif @@ -167,6 +173,8 @@ SOUND(ArmorMega, Item_Sound("armor25")); bool autocvar_g_pickup_armormega_anyway; int autocvar_g_pickup_armormega; int autocvar_g_pickup_armormega_max; +float autocvar_g_pickup_respawntime_armor_mega; +float autocvar_g_pickup_respawntimejitter_armor_mega; void item_armormega_init(Pickup this, entity item) { if(!item.max_armorvalue) @@ -200,8 +208,8 @@ CLASS(ArmorMega, Armor) #ifdef SVQC /* maxsize */ ATTRIB(ArmorMega, m_maxs, vector, ITEM_L_MAXS); /* itemid */ ATTRIB(ArmorMega, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(ArmorMega, m_respawntime, float(), GET(g_pickup_respawntime_armor_mega)); -/* */ ATTRIB(ArmorMega, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_armor_mega)); +/* respawntime */ ATTRIB(ArmorMega, m_respawntime, float, autocvar_g_pickup_respawntime_armor_mega); +/* */ ATTRIB(ArmorMega, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_armor_mega); /* pickupanyway */ ATTRIB(ArmorMega, m_pickupanyway, bool, autocvar_g_pickup_armormega_anyway); /* iteminit */ ATTRIB(ArmorMega, m_iteminit, void(Pickup this, entity item), item_armormega_init); #endif diff --git a/qcsrc/common/items/item/health.qh b/qcsrc/common/items/item/health.qh index 4edb98733..133400626 100644 --- a/qcsrc/common/items/item/health.qh +++ b/qcsrc/common/items/item/health.qh @@ -20,6 +20,8 @@ SOUND(HealthSmall, Item_Sound("minihealth")); bool autocvar_g_pickup_healthsmall_anyway; int autocvar_g_pickup_healthsmall; int autocvar_g_pickup_healthsmall_max; +float autocvar_g_pickup_respawntime_health_small; +float autocvar_g_pickup_respawntimejitter_health_small; void item_healthsmall_init(Pickup this, entity item) { if(!item.max_health) @@ -51,8 +53,8 @@ CLASS(HealthSmall, Health) /* minsize */ ATTRIB(HealthSmall, m_mins, vector, ITEM_S_MINS); /* maxsize */ ATTRIB(HealthSmall, m_maxs, vector, ITEM_S_MAXS); /* itemid */ ATTRIB(HealthSmall, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(HealthSmall, m_respawntime, float(), GET(g_pickup_respawntime_health_small)); -/* */ ATTRIB(HealthSmall, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_health_small)); +/* respawntime */ ATTRIB(HealthSmall, m_respawntime, float, autocvar_g_pickup_respawntime_health_small); +/* */ ATTRIB(HealthSmall, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_health_small); /* pickupanyway */ ATTRIB(HealthSmall, m_pickupanyway, bool, autocvar_g_pickup_healthsmall_anyway); /* iteminit */ ATTRIB(HealthSmall, m_iteminit, void(Pickup this, entity item), item_healthsmall_init); #endif @@ -69,6 +71,8 @@ SOUND(HealthMedium, Item_Sound("mediumhealth")); bool autocvar_g_pickup_healthmedium_anyway; int autocvar_g_pickup_healthmedium; int autocvar_g_pickup_healthmedium_max; +float autocvar_g_pickup_respawntime_health_medium; +float autocvar_g_pickup_respawntimejitter_health_medium; void item_healthmedium_init(Pickup this, entity item) { if(!item.max_health) @@ -100,8 +104,8 @@ CLASS(HealthMedium, Health) /* minsize */ ATTRIB(HealthMedium, m_mins, vector, ITEM_S_MINS); /* maxsize */ ATTRIB(HealthMedium, m_maxs, vector, ITEM_S_MAXS); /* itemid */ ATTRIB(HealthMedium, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(HealthMedium, m_respawntime, float(), GET(g_pickup_respawntime_health_medium)); -/* */ ATTRIB(HealthMedium, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_health_medium)); +/* respawntime */ ATTRIB(HealthMedium, m_respawntime, float, autocvar_g_pickup_respawntime_health_medium); +/* */ ATTRIB(HealthMedium, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_health_medium); /* pickupanyway */ ATTRIB(HealthMedium, m_pickupanyway, bool, autocvar_g_pickup_healthmedium_anyway); /* iteminit */ ATTRIB(HealthMedium, m_iteminit, void(Pickup this, entity item), item_healthmedium_init); #endif @@ -118,6 +122,8 @@ SOUND(HealthBig, Item_Sound("mediumhealth")); bool autocvar_g_pickup_healthbig_anyway; int autocvar_g_pickup_healthbig; int autocvar_g_pickup_healthbig_max; +float autocvar_g_pickup_respawntime_health_big; +float autocvar_g_pickup_respawntimejitter_health_big; void item_healthbig_init(Pickup this, entity item) { if(!item.max_health) @@ -149,8 +155,8 @@ CLASS(HealthBig, Health) /* wptext */ ATTRIB(HealthBig, m_waypoint, string, _("Big health")); #ifdef SVQC /* itemid */ ATTRIB(HealthBig, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(HealthBig, m_respawntime, float(), GET(g_pickup_respawntime_health_big)); -/* */ ATTRIB(HealthBig, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_health_big)); +/* respawntime */ ATTRIB(HealthBig, m_respawntime, float, autocvar_g_pickup_respawntime_health_big); +/* */ ATTRIB(HealthBig, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_health_big); /* pickupanyway */ ATTRIB(HealthBig, m_pickupanyway, bool, autocvar_g_pickup_healthbig_anyway); /* iteminit */ ATTRIB(HealthBig, m_iteminit, void(Pickup this, entity item), item_healthbig_init); #endif @@ -167,6 +173,8 @@ SOUND(HealthMega, Item_Sound("megahealth")); bool autocvar_g_pickup_healthmega_anyway; int autocvar_g_pickup_healthmega; int autocvar_g_pickup_healthmega_max; +float autocvar_g_pickup_respawntime_health_mega; +float autocvar_g_pickup_respawntimejitter_health_mega; void item_healthmega_init(Pickup this, entity item) { if(!item.max_health) @@ -200,8 +208,8 @@ CLASS(HealthMega, Health) #ifdef SVQC /* maxsize */ ATTRIB(HealthMega, m_maxs, vector, ITEM_L_MAXS); /* itemid */ ATTRIB(HealthMega, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(HealthMega, m_respawntime, float(), GET(g_pickup_respawntime_health_mega)); -/* */ ATTRIB(HealthMega, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_health_mega)); +/* respawntime */ ATTRIB(HealthMega, m_respawntime, float, autocvar_g_pickup_respawntime_health_mega); +/* */ ATTRIB(HealthMega, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_health_mega); /* pickupanyway */ ATTRIB(HealthMega, m_pickupanyway, bool, autocvar_g_pickup_healthmega_anyway); /* iteminit */ ATTRIB(HealthMega, m_iteminit, void(Pickup this, entity item), item_healthmega_init); #endif diff --git a/qcsrc/common/items/item/pickup.qh b/qcsrc/common/items/item/pickup.qh index 87f421056..4190505ef 100644 --- a/qcsrc/common/items/item/pickup.qh +++ b/qcsrc/common/items/item/pickup.qh @@ -1,32 +1,5 @@ #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_armor_small) -PROPERTY(float, g_pickup_respawntime_armor_medium) -PROPERTY(float, g_pickup_respawntime_armor_big) -PROPERTY(float, g_pickup_respawntime_armor_mega) -PROPERTY(float, g_pickup_respawntime_health_small) -PROPERTY(float, g_pickup_respawntime_health_medium) -PROPERTY(float, g_pickup_respawntime_health_big) -PROPERTY(float, g_pickup_respawntime_health_mega) -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_health_small) -PROPERTY(float, g_pickup_respawntimejitter_health_medium) -PROPERTY(float, g_pickup_respawntimejitter_health_big) -PROPERTY(float, g_pickup_respawntimejitter_health_mega) -PROPERTY(float, g_pickup_respawntimejitter_armor_small) -PROPERTY(float, g_pickup_respawntimejitter_armor_medium) -PROPERTY(float, g_pickup_respawntimejitter_armor_big) -PROPERTY(float, g_pickup_respawntimejitter_armor_mega) -PROPERTY(float, g_pickup_respawntimejitter_powerup) -#endif - #include CLASS(Pickup, GameItem) @@ -51,8 +24,8 @@ CLASS(Pickup, GameItem) 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()); - ATTRIB(Pickup, m_respawntimejitter, float()); + ATTRIB(Pickup, m_respawntime, float); + ATTRIB(Pickup, m_respawntimejitter, float); ATTRIB(Pickup, m_pickupanyway, bool); ATTRIB(Pickup, m_iteminit, void(Pickup this, entity item)); float Item_GiveTo(entity item, entity player); diff --git a/qcsrc/common/mutators/mutator/instagib/items.qh b/qcsrc/common/mutators/mutator/instagib/items.qh index ed9909998..5df20509a 100644 --- a/qcsrc/common/mutators/mutator/instagib/items.qh +++ b/qcsrc/common/mutators/mutator/instagib/items.qh @@ -4,11 +4,6 @@ #include #include -float instagib_respawntime_ammo = 45; -float instagib_respawntimejitter_ammo = 0; -GETTER(float, instagib_respawntime_ammo) -GETTER(float, instagib_respawntimejitter_ammo) - #ifdef GAMEQC MODEL(VaporizerCells_ITEM, Item_Model("a_cells.md3")); SOUND(VaporizerCells, Item_Sound("itempickup")); @@ -37,8 +32,8 @@ CLASS(VaporizerCells, Ammo) #ifdef SVQC /* botvalue */ ATTRIB(VaporizerCells, m_botvalue, int, 2000); /* itemid */ ATTRIB(VaporizerCells, m_itemid, int, IT_RESOURCE); -/* respawntime */ ATTRIB(VaporizerCells, m_respawntime, float(), GET(instagib_respawntime_ammo)); -/* */ ATTRIB(VaporizerCells, m_respawntimejitter, float(), GET(instagib_respawntimejitter_ammo)); +/* respawntime */ ATTRIB(VaporizerCells, m_respawntime, float, 45); +/* */ ATTRIB(VaporizerCells, m_respawntimejitter, float, 0); /* iteminit */ ATTRIB(VaporizerCells, m_iteminit, void(Pickup this, entity item), ammo_vaporizercells_init); #endif ENDCLASS(VaporizerCells) diff --git a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc index 619c393e4..00bdd1c0e 100644 --- a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc +++ b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc @@ -231,7 +231,7 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem) entity wep = spawn(); Item_CopyFields(item, wep); wep.ok_item = true; - wep.respawntime = g_pickup_respawntime_superweapon; + wep.respawntime = autocvar_g_pickup_respawntime_superweapon; wep.pickup_anyway = true; wep.itemdef = WEP_OVERKILL_HMG; wep.lifetime = -1; @@ -243,7 +243,7 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem) entity wep = spawn(); Item_CopyFields(item, wep); wep.ok_item = true; - wep.respawntime = g_pickup_respawntime_superweapon; + wep.respawntime = autocvar_g_pickup_respawntime_superweapon; wep.pickup_anyway = true; wep.itemdef = WEP_OVERKILL_RPC; wep.lifetime = -1; diff --git a/qcsrc/common/mutators/mutator/powerups/powerups.qh b/qcsrc/common/mutators/mutator/powerups/powerups.qh index 07bc1c37e..b8f5b731a 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerups.qh +++ b/qcsrc/common/mutators/mutator/powerups/powerups.qh @@ -1,13 +1,19 @@ #pragma once #include + +#ifdef SVQC +float autocvar_g_pickup_respawntime_powerup; +float autocvar_g_pickup_respawntimejitter_powerup; +#endif + CLASS(Powerup, Pickup) #ifdef SVQC ATTRIB(Powerup, m_maxs, vector, ITEM_L_MAXS); ATTRIB(Powerup, m_botvalue, int, 11000); ATTRIB(Powerup, m_itemflags, int, FL_POWERUP); - ATTRIB(Powerup, m_respawntime, float(), GET(g_pickup_respawntime_powerup)); - ATTRIB(Powerup, m_respawntimejitter, float(), GET(g_pickup_respawntimejitter_powerup)); + ATTRIB(Powerup, m_respawntime, float, autocvar_g_pickup_respawntime_powerup); + ATTRIB(Powerup, m_respawntimejitter, float, autocvar_g_pickup_respawntimejitter_powerup); #endif ENDCLASS(Powerup) diff --git a/qcsrc/lib/misc.qh b/qcsrc/lib/misc.qh index 474484c64..9cbee5201 100644 --- a/qcsrc/lib/misc.qh +++ b/qcsrc/lib/misc.qh @@ -31,9 +31,6 @@ // already defined #endif -#define GET(name) name##get -#define GETTER(type, name) type GET(name)() { return name; } -#define PROPERTY(type, name) type name; GETTER(type, name) #define LAMBDA(...) { __VA_ARGS__; } // With block may not contain continue or break diff --git a/qcsrc/server/items/items.qc b/qcsrc/server/items/items.qc index e6e7b3f08..a090808c8 100644 --- a/qcsrc/server/items/items.qc +++ b/qcsrc/server/items/items.qc @@ -1107,12 +1107,12 @@ void StartItem(entity this, entity def) if(!this.respawntime) // both need to be set { if (def.m_respawntime) - this.respawntime = def.m_respawntime(); + this.respawntime = def.m_respawntime; else LOG_WARNF("Default respawntime for a %s is unavailable from its itemdef", this.classname); if (def.m_respawntimejitter) - this.respawntimejitter = def.m_respawntimejitter(); + this.respawntimejitter = def.m_respawntimejitter; else LOG_WARNF("Default respawntimejitter for a %s is unavailable from its itemdef", this.classname); } diff --git a/qcsrc/server/weapons/spawning.qc b/qcsrc/server/weapons/spawning.qc index aafdac6c6..57e363b4b 100644 --- a/qcsrc/server/weapons/spawning.qc +++ b/qcsrc/server/weapons/spawning.qc @@ -93,13 +93,13 @@ void weapon_defaultspawnfunc(entity this, Weapon wpn) { if (wpn.spawnflags & WEP_FLAG_SUPERWEAPON) { - this.respawntime = g_pickup_respawntime_superweapon; - this.respawntimejitter = g_pickup_respawntimejitter_superweapon; + this.respawntime = autocvar_g_pickup_respawntime_superweapon; + this.respawntimejitter = autocvar_g_pickup_respawntimejitter_superweapon; } else { - this.respawntime = g_pickup_respawntime_weapon; - this.respawntimejitter = g_pickup_respawntimejitter_weapon; + this.respawntime = autocvar_g_pickup_respawntime_weapon; + this.respawntimejitter = autocvar_g_pickup_respawntimejitter_weapon; } } diff --git a/qcsrc/server/weapons/spawning.qh b/qcsrc/server/weapons/spawning.qh index 47ee08486..d7f70ae7e 100644 --- a/qcsrc/server/weapons/spawning.qh +++ b/qcsrc/server/weapons/spawning.qh @@ -4,6 +4,10 @@ #include bool autocvar_g_pickup_weapons_anyway; +float autocvar_g_pickup_respawntime_superweapon; +float autocvar_g_pickup_respawntimejitter_superweapon; +float autocvar_g_pickup_respawntime_weapon; +float autocvar_g_pickup_respawntimejitter_weapon; string W_Apply_Weaponreplace(string in); diff --git a/qcsrc/server/world.qc b/qcsrc/server/world.qc index 218f0664b..609df4248 100644 --- a/qcsrc/server/world.qc +++ b/qcsrc/server/world.qc @@ -2177,31 +2177,6 @@ void readlevelcvars() } } - g_pickup_respawntime_weapon = cvar("g_pickup_respawntime_weapon"); - g_pickup_respawntime_superweapon = cvar("g_pickup_respawntime_superweapon"); - g_pickup_respawntime_ammo = cvar("g_pickup_respawntime_ammo"); - g_pickup_respawntime_armor_small = cvar("g_pickup_respawntime_armor_small"); - g_pickup_respawntime_armor_medium = cvar("g_pickup_respawntime_armor_medium"); - g_pickup_respawntime_armor_big = cvar("g_pickup_respawntime_armor_big"); - g_pickup_respawntime_armor_mega = cvar("g_pickup_respawntime_armor_mega"); - g_pickup_respawntime_health_small = cvar("g_pickup_respawntime_health_small"); - g_pickup_respawntime_health_medium = cvar("g_pickup_respawntime_health_medium"); - g_pickup_respawntime_health_big = cvar("g_pickup_respawntime_health_big"); - g_pickup_respawntime_health_mega = cvar("g_pickup_respawntime_health_mega"); - g_pickup_respawntime_powerup = cvar("g_pickup_respawntime_powerup"); - g_pickup_respawntimejitter_weapon = cvar("g_pickup_respawntimejitter_weapon"); - g_pickup_respawntimejitter_superweapon = cvar("g_pickup_respawntimejitter_superweapon"); - g_pickup_respawntimejitter_ammo = cvar("g_pickup_respawntimejitter_ammo"); - g_pickup_respawntimejitter_armor_small = cvar("g_pickup_respawntimejitter_armor_small"); - g_pickup_respawntimejitter_armor_medium = cvar("g_pickup_respawntimejitter_armor_medium"); - g_pickup_respawntimejitter_armor_big = cvar("g_pickup_respawntimejitter_armor_big"); - g_pickup_respawntimejitter_armor_mega = cvar("g_pickup_respawntimejitter_armor_mega"); - g_pickup_respawntimejitter_health_small = cvar("g_pickup_respawntimejitter_health_small"); - g_pickup_respawntimejitter_health_medium = cvar("g_pickup_respawntimejitter_health_medium"); - g_pickup_respawntimejitter_health_big = cvar("g_pickup_respawntimejitter_health_big"); - g_pickup_respawntimejitter_health_mega = cvar("g_pickup_respawntimejitter_health_mega"); - g_pickup_respawntimejitter_powerup = cvar("g_pickup_respawntimejitter_powerup"); - g_weapon_stay = cvar(strcat("g_", GetGametype(), "_weapon_stay")); if(!g_weapon_stay) g_weapon_stay = cvar("g_weapon_stay");