+ if(wep.impulse != imp)
+ continue;
+
+ float i, have_other = false;
+ for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+ {
+ if(i != weaponwant)
+ if((get_weaponinfo(i)).impulse == imp || imp < 0)
+ if((pl.weapons & WepSet_FromWeapon(i)) || (weaponsInMap & WepSet_FromWeapon(i)))
+ have_other = true;
+ }
+
+ // skip weapons we don't own that aren't normal and aren't in the map
+ if(!(pl.weapons & wepset))
+ if(!(weaponsInMap & wepset))
+ if((wep.spawnflags & WEP_FLAG_MUTATORBLOCKED) || have_other)
+ continue;