X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_weaponsystem.qc;h=21a9bc9428a71d6ec6d9bab9acc51a3db464a105;hp=f6fc12a68e3b4b7409aa4cd9a45a4d40a81882b0;hb=1b2f61baeeff5a7d004fafd3cfdd8269a0338a1e;hpb=585387cb47119277a6c3edfeea4a9bcff17481f8 diff --git a/qcsrc/server/cl_weaponsystem.qc b/qcsrc/server/cl_weaponsystem.qc index f6fc12a68e..21a9bc9428 100644 --- a/qcsrc/server/cl_weaponsystem.qc +++ b/qcsrc/server/cl_weaponsystem.qc @@ -34,10 +34,6 @@ float W_WeaponRateFactor() void W_SwitchWeapon_Force(entity e, float w) { - // don't switch to another weapon if we're not allowed to - if(e.weapon_forbidchange) - return; - e.cnt = e.switchweapon; e.switchweapon = w; e.selectweapon = w; @@ -297,7 +293,6 @@ vector weapon_adjust = '10 0 -15'; .vector weapon_morph4origin; .vector weapon_morph4angles; .float weapon_morph4time; -.string weaponname; #define QCWEAPONANIMATION_ORIGIN(e) ((weapon_offset_x + e.view_ofs_x) * v_forward - (weapon_offset_y + e.view_ofs_y) * v_right + (weapon_offset_z + e.view_ofs_z) * v_up + weapon_adjust) /* @@ -587,9 +582,9 @@ void CL_Weaponentity_Think() self.weaponentity.model = ""; return; } - if (self.cnt != self.owner.weapon || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) + if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) { - self.cnt = self.owner.weapon; + self.weaponname = self.owner.weaponname; self.dmg = self.owner.modelindex; self.deadflag = self.owner.deadflag; @@ -793,9 +788,9 @@ void CL_ExteriorWeaponentity_Think() self.model = ""; return; } - if (self.cnt != self.owner.weapon || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) + if (self.weaponname != self.owner.weaponname || self.dmg != self.owner.modelindex || self.deadflag != self.owner.deadflag) { - self.cnt = self.owner.weapon; + self.weaponname = self.owner.weaponname; self.dmg = self.owner.modelindex; self.deadflag = self.owner.deadflag; if (self.owner.weaponname != "") @@ -1007,7 +1002,10 @@ float client_hasweapon(entity cl, float wpn, float andammo, float complain) void w_clear() { if (self.weapon != -1) + { self.weapon = 0; + self.switchingweapon = 0; + } if (self.weaponentity) { self.weaponentity.state = WS_CLEAR; @@ -1033,6 +1031,7 @@ void weapon_setup(float windex) // the two weapon entities will notice this has changed and update their models self.weapon = windex; + self.switchingweapon = windex; // to make sure self.weaponname = e.mdl; self.bulletcounter = 0; };