From: Rudolf Polzer Date: Sun, 4 Mar 2012 16:23:58 +0000 (+0100) Subject: even less evil X-Git-Tag: xonotic-v0.7.0~348^2~1^2~32 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=cb64e2cca664a068685a262fee81da2b122364bd;p=xonotic%2Fxonotic-data.pk3dir.git even less evil --- diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index d31cdc0ed..c62601cc6 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -440,14 +440,19 @@ float Item_GiveTo(entity item, entity player) pickedup |= Item_GiveAmmoTo(item, player, armorvalue, item.max_armorvalue, ITEM_MODE_ARMOR); if (item.flags & FL_WEAPON) - if ((it = item.weapons - (item.weapons & player.weapons)) || (item.spawnshieldtime && self.pickup_anyway)) { - pickedup = TRUE; - for(i = WEP_FIRST; i <= WEP_LAST; ++i) + WEPSET_DECLARE_A(it); + WEPSET_COPY_AE(it, item); + WEPSET_ANDNOT_AE(it, player); + + if (!WEPSET_EMPTY_A(it) || (item.spawnshieldtime && self.pickup_anyway)) { - e = get_weaponinfo(i); - if(it & e.weapons) - W_GiveWeapon (player, e.weapon, item.netname); + pickedup = TRUE; + for(i = WEP_FIRST; i <= WEP_LAST; ++i) + { + if(WEPSET_CONTAINS_AW(it, i)) + W_GiveWeapon (player, i, item.netname); + } } }