From: TimePath Date: Mon, 12 Oct 2015 23:10:25 +0000 (+1100) Subject: Items: remove flags parameter from `_StartItem` X-Git-Tag: xonotic-v0.8.2~1760^2~8 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9ab5c2faccf914b23d47bbd7fb6a57f52a10e166;p=xonotic%2Fxonotic-data.pk3dir.git Items: remove flags parameter from `_StartItem` --- diff --git a/qcsrc/common/weapons/weapon.qh b/qcsrc/common/weapons/weapon.qh index 262a91916..39702051b 100644 --- a/qcsrc/common/weapons/weapon.qh +++ b/qcsrc/common/weapons/weapon.qh @@ -97,6 +97,7 @@ CLASS(WeaponPickup, Pickup) ATTRIB(WeaponPickup, m_sound, Sound, SND_WEAPONPICKUP) #endif #ifdef SVQC + ATTRIB(WeaponPickup, m_itemflags, int, FL_WEAPON) float weapon_pickupevalfunc(entity player, entity item); ATTRIB(WeaponPickup, m_pickupevalfunc, float(entity player, entity item), weapon_pickupevalfunc) #endif diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index 9b8cde9b9..15a8ec9b6 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -378,7 +378,12 @@ void Item_Show (entity e, float mode) e.spawnshieldtime = 1; e.ItemStatus &= ~ITS_AVAILABLE; } - else if(e.itemdef.instanceOfWeaponPickup && !(e.flags & FL_NO_WEAPON_STAY) && g_weapon_stay) + else { + entity def = e.itemdef; + bool nostay = def.instanceOfWeaponPickup ? !!(def.m_weapon.weapons & WEPSET_SUPERWEAPONS) : false // no weapon-stay on superweapons + || e.team // weapon stay isn't supported for teamed weapons + ; + if(def.instanceOfWeaponPickup && !nostay && g_weapon_stay) { // make the item translucent and not touchable e.model = e.mdl; @@ -395,7 +400,7 @@ void Item_Show (entity e, float mode) e.glowmod = e.colormod; e.spawnshieldtime = 1; e.ItemStatus &= ~ITS_AVAILABLE; - } + }} if (e.items & ITEM_Strength.m_itemid || e.items & ITEM_Shield.m_itemid) e.ItemStatus |= ITS_POWERUP; @@ -975,13 +980,14 @@ void Item_Damage(entity inflictor, entity attacker, float damage, int deathtype, RemoveItem(); } -void _StartItem(entity this, entity def, float defaultrespawntime, float defaultrespawntimejitter, float itemflags) +void _StartItem(entity this, entity def, float defaultrespawntime, float defaultrespawntimejitter) { string itemname = def.m_name; Model itemmodel = def.m_model; Sound pickupsound = def.m_sound; float(entity player, entity item) pickupevalfunc = def.m_pickupevalfunc; float pickupbasevalue = def.m_botvalue; + int itemflags = def.m_itemflags; startitem_failed = false; @@ -1193,8 +1199,7 @@ void StartItem(entity this, GameItem def) this, this.itemdef = def, def.m_respawntime(), // defaultrespawntime - def.m_respawntimejitter(), // defaultrespawntimejitter - def.m_itemflags // itemflags + def.m_respawntimejitter() // defaultrespawntimejitter ); } diff --git a/qcsrc/server/t_items.qh b/qcsrc/server/t_items.qh index 230f54634..0e4da21ed 100644 --- a/qcsrc/server/t_items.qh +++ b/qcsrc/server/t_items.qh @@ -112,7 +112,7 @@ float commodity_pickupevalfunc(entity player, entity item); .float is_item; .entity itemdef; -void _StartItem(entity this, entity def, float defaultrespawntime, float defaultrespawntimejitter, float itemflags); +void _StartItem(entity this, entity def, float defaultrespawntime, float defaultrespawntimejitter); void target_items_use (void); diff --git a/qcsrc/server/weapons/spawning.qc b/qcsrc/server/weapons/spawning.qc index 420133d37..5e1912ef8 100644 --- a/qcsrc/server/weapons/spawning.qc +++ b/qcsrc/server/weapons/spawning.qc @@ -160,23 +160,12 @@ void weapon_defaultspawnfunc(entity this, Weapon e) if (g_pickup_weapons_anyway) this.pickup_anyway = true; - int f = FL_WEAPON; - - // no weapon-stay on superweapons - if (e.weapons & WEPSET_SUPERWEAPONS) - f |= FL_NO_WEAPON_STAY; - - // weapon stay isn't supported for teamed weapons - if (this.team) - f |= FL_NO_WEAPON_STAY; - GameItem def = e.m_pickup; _StartItem( this, this.itemdef = def, this.respawntime, // defaultrespawntime - this.respawntimejitter, // defaultrespawntimejitter - f // itemflags + this.respawntimejitter // defaultrespawntimejitter ); #if 0 // WEAPONTODO if (this.modelindex) { // don't precache if this was removed