X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_weapons.qc;h=2885e6dc51b7412570bd14b06aea394a43eca1ab;hb=9aa300c859f50fb6f06e5caef46cc7af1e3bc51b;hp=df57ce9b999c67b21bef1f8b93a85cfc84f57f4b;hpb=e8b6542f46abb4c4ae2afde8d37eff347ab8a33e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_weapons.qc b/qcsrc/server/cl_weapons.qc index df57ce9b9..2885e6dc5 100644 --- a/qcsrc/server/cl_weapons.qc +++ b/qcsrc/server/cl_weapons.qc @@ -188,7 +188,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto wep.flags |= FL_TOSSED; wep.colormap = own.colormap; - if(WEPSET_CONTAINS_AW(WEPBIT_SUPERWEAPONS, wpn)) + if(WepSet_FromWeapon(wpn) & WEPSET_SUPERWEAPONS) { if(own.items & IT_UNLIMITED_SUPERWEAPONS) { @@ -198,8 +198,8 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto { float superweapons = 1; for(i = WEP_FIRST; i <= WEP_LAST; ++i) - if(WEPSET_CONTAINS_AW(WEPBIT_SUPERWEAPONS, i)) - if(WEPSET_CONTAINS_EW(own, i)) + if(WepSet_FromWeapon(i) & WEPSET_SUPERWEAPONS) + if(own.weapons & WepSet_FromWeapon(i)) ++superweapons; if(superweapons <= 1) { @@ -307,9 +307,9 @@ float W_IsWeaponThrowable(float w) return 0; if(w == 0) return 0; - + wa = W_AmmoItemCode(w); - if(WEPSET_CONTAINS_AW(start_weapons, w)) + if(start_weapons & WepSet_FromWeapon(w)) { // 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) @@ -330,8 +330,6 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) w = self.weapon; if (w == 0) return; // just in case - if(self.frozen) - return; if(MUTATOR_CALLHOOK(ForbidThrowCurrentWeapon)) return; if(!autocvar_g_weapon_throwable) @@ -341,14 +339,14 @@ void W_ThrowWeapon(vector velo, vector delta, float doreduce) if(!W_IsWeaponThrowable(w)) return; - if(!WEPSET_CONTAINS_EW(self, w)) + if(!(self.weapons & WepSet_FromWeapon(w))) return; - WEPSET_ANDNOT_EW(self, w); + self.weapons &= ~WepSet_FromWeapon(w); W_SwitchWeapon_Force(self, w_getbestweapon(self)); a = W_ThrowNewWeapon(self, w, doreduce, self.origin + delta, velo); - - if not(a) return; + + if (!a) return; Send_Notification(NOTIF_ONE, self, MSG_MULTI, ITEM_WEAPON_DROP, a, w); } @@ -360,7 +358,7 @@ float forbidWeaponUse() return 1; if(self.player_blocked) return 1; - if(self.frozen) + if(self.freezetag_frozen) return 1; return 0; } @@ -388,7 +386,7 @@ void W_WeaponFrame() self.switchingweapon = 0; self.weaponentity.state = WS_CLEAR; self.weaponname = ""; - self.items &~= IT_AMMO; + self.items &= ~IT_AMMO; return; } @@ -423,7 +421,7 @@ void W_WeaponFrame() // VorteX: add player model weapon select frame here // setcustomframe(PlayerWeaponRaise); weapon_thinkf(WFRAME_IDLE, cvar(sprintf("g_balance_%s_switchdelay_raise", newwep.netname)), w_ready); - //print(sprintf("W_WeaponFrame(): cvar: %s, value: %f\n", sprintf("g_balance_%s_switchdelay_raise", newwep.netname), cvar(sprintf("g_balance_%s_switchdelay_raise", newwep.netname)))); + //printf("W_WeaponFrame(): cvar: %s, value: %f\n", sprintf("g_balance_%s_switchdelay_raise", newwep.netname), cvar(sprintf("g_balance_%s_switchdelay_raise", newwep.netname))); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, '0 0 0'); } else if (self.weaponentity.state == WS_DROP) @@ -437,16 +435,16 @@ void W_WeaponFrame() self.switchingweapon = self.switchweapon; entity oldwep = get_weaponinfo(self.weapon); - + #ifndef INDEPENDENT_ATTACK_FINISHED if(ATTACK_FINISHED(self) <= time + self.weapon_frametime * 0.5) { #endif - sound (self, CH_WEAPON_SINGLE, "weapons/weapon_switch.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_WEAPON_SINGLE, "weapons/weapon_switch.wav", VOL_BASE, ATTEN_NORM); self.weaponentity.state = WS_DROP; // set up weapon switch think in the future, and start drop anim weapon_thinkf(WFRAME_DONTCHANGE, cvar(sprintf("g_balance_%s_switchdelay_drop", oldwep.netname)), w_clear); - //print(sprintf("W_WeaponFrame(): cvar: %s, value: %f\n", sprintf("g_balance_%s_switchdelay_drop", oldwep.netname), cvar(sprintf("g_balance_%s_switchdelay_drop", oldwep.netname)))); + //printf("W_WeaponFrame(): cvar: %s, value: %f\n", sprintf("g_balance_%s_switchdelay_drop", oldwep.netname), cvar(sprintf("g_balance_%s_switchdelay_drop", oldwep.netname))); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, PLAYER_WEAPONSELECTION_RANGE); #ifndef INDEPENDENT_ATTACK_FINISHED } @@ -469,7 +467,7 @@ void W_WeaponFrame() while (c < W_TICSPERFRAME) { c = c + 1; - if(w && !WEPSET_CONTAINS_EW(self, w)) + if(w && !(self.weapons & WepSet_FromWeapon(w))) { if(self.weapon == self.switchweapon) W_SwitchWeapon_Force(self, w_getbestweapon(self));