From d339800560d23aa8d13d5ea25c07770cb2af8e69 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 30 Jun 2006 10:18:38 +0000 Subject: [PATCH] weapon_thinkf now is safe to be called twice in a frame (fixes another "hagar fires slowly" bug) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1697 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_weapons.qc | 3 +++ data/qcsrc/server/cl_weaponsystem.qc | 2 +- data/qcsrc/server/defs.qh | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index 188c8b792..06c03ef22 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -288,7 +288,10 @@ void() W_WeaponFrame = c = c + 1; weapon_action(self.weapon, WR_THINK); if (self.weapon_nextthink > 0 && time >= self.weapon_nextthink) + { + self.weapon_nextthink_lastframe = self.weapon_nextthink; self.weapon_think(); + } } // don't let attack_finished fall behind when not firing diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index 0fcb9d830..13bdaf983 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -394,7 +394,7 @@ void(float fr, float t, void() func) weapon_thinkf = } // VorteX: haste can be added here - self.weapon_nextthink = max(time, self.weapon_nextthink + t); + self.weapon_nextthink = max(time, self.weapon_nextthink_lastframe + t); self.weapon_think = func; }; diff --git a/data/qcsrc/server/defs.qh b/data/qcsrc/server/defs.qh index 51610a22a..829e0df78 100644 --- a/data/qcsrc/server/defs.qh +++ b/data/qcsrc/server/defs.qh @@ -115,6 +115,7 @@ void() w_ready; // VorteX: standalone think for weapons, so normal think on weaponentity can be reserved by weaponflashes (which needs update even player dies) .float weapon_nextthink; .void() weapon_think; +.float weapon_nextthink_lastframe; //float PLAYER_WEAPONSELECTION_DELAY = ); float PLAYER_WEAPONSELECTION_SPEED = 18; -- 2.39.2