W_DropEvent(wr_drop,own,wpn,wep);
W_DropEvent(wr_drop,own,wpn,wep);
- if(WepSet_FromWeapon(i) & WEPSET_SUPERWEAPONS)
- if(own.weapons & WepSet_FromWeapon(i))
- ++superweapons;
+ {
+ WepSet set = WepSet_FromWeapon(Weapons_from(i));
+ if ((set & WEPSET_SUPERWEAPONS) && (own.weapons & set)) ++superweapons;
+ }
{
// start weapons that take no ammo can't be dropped (this prevents dropping the laser, as long as it continues to use no ammo)
if(start_items & IT_UNLIMITED_WEAPON_AMMO)
return false;
{
// start weapons that take no ammo can't be dropped (this prevents dropping the laser, as long as it continues to use no ammo)
if(start_items & IT_UNLIMITED_WEAPON_AMMO)
return false;
W_SwitchWeapon_Force(self, w_getbestweapon(self));
string a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo);
W_SwitchWeapon_Force(self, w_getbestweapon(self));
string a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo);
if(W_IsWeaponThrowable(self.weapon))
W_ThrowNewWeapon(self, self.weapon, false, org, randomvec() * 125 + '0 0 200');
}
if(W_IsWeaponThrowable(self.weapon))
W_ThrowNewWeapon(self, self.weapon, false, org, randomvec() * 125 + '0 0 200');
}