From 727c6dc72bef33753dc4df014ebc95bbff717f72 Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 19 Mar 2009 12:14:30 +0000 Subject: [PATCH] make turrets work again git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6220 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/miscfunctions.qc | 11 +++++++++++ data/qcsrc/server/tturrets/units/unit_common.qc | 10 +++++----- data/qcsrc/server/tturrets/units/unit_ewheel.qc | 4 ++-- data/qcsrc/server/tturrets/units/unit_walker.qc | 4 ++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/data/qcsrc/server/miscfunctions.qc b/data/qcsrc/server/miscfunctions.qc index 48fc11c27..5b6110157 100644 --- a/data/qcsrc/server/miscfunctions.qc +++ b/data/qcsrc/server/miscfunctions.qc @@ -2113,3 +2113,14 @@ void unfollow_sameorigin(entity e) { e.movetype = MOVETYPE_NONE; } + +entity gettaginfo_relative_ent; +vector gettaginfo_relative(entity e, float tag) +{ + if(!gettaginfo_relative_ent) + gettaginfo_relative_ent = spawn(); + gettaginfo_relative_ent.model = e.model; + gettaginfo_relative_ent.modelindex = e.modelindex; + gettaginfo_relative_ent.frame = e.frame; + return gettaginfo(gettaginfo_relative_ent, tag); +} diff --git a/data/qcsrc/server/tturrets/units/unit_common.qc b/data/qcsrc/server/tturrets/units/unit_common.qc index a34acdf9d..86faf51f3 100644 --- a/data/qcsrc/server/tturrets/units/unit_common.qc +++ b/data/qcsrc/server/tturrets/units/unit_common.qc @@ -8,17 +8,17 @@ float turret_tag_setup(float linked) return 0; f = gettagindex(self,"tag_head"); - v = gettaginfo(self,f); + v = gettaginfo_relative(self,f); v = v + self.origin; setorigin(self.tur_head,v); f = gettagindex(self.tur_head,"tag_fire"); - v = gettaginfo(self.tur_head,f) + (self.tur_head.origin - self.origin); + v = gettaginfo_relative(self.tur_head,f) + (self.tur_head.origin - self.origin); v_y *= -1; self.tur_shotorg = v; f = gettagindex(self.tur_head,"tag_aim"); - v = gettaginfo(self.tur_head,f) + (self.tur_head.origin - self.origin); + v = gettaginfo_relative(self.tur_head,f) + (self.tur_head.origin - self.origin); self.tur_aimorg = v; return 1; @@ -30,12 +30,12 @@ float turret_tag_fire_update() float f; f = gettagindex(self.tur_head,"tag_fire"); - v = gettaginfo(self.tur_head,f) + (self.tur_head.origin - self.origin); + v = gettaginfo_relative(self.tur_head,f) + (self.tur_head.origin - self.origin); v_y *= -1; self.tur_shotorg = v; f = gettagindex(self.tur_head,"tag_aim"); - v = gettaginfo(self.tur_head,f) + (self.tur_head.origin - self.origin); + v = gettaginfo_relative(self.tur_head,f) + (self.tur_head.origin - self.origin); self.tur_aimorg = v; return 1; diff --git a/data/qcsrc/server/tturrets/units/unit_ewheel.qc b/data/qcsrc/server/tturrets/units/unit_ewheel.qc index d5a44672f..187fa9c44 100644 --- a/data/qcsrc/server/tturrets/units/unit_ewheel.qc +++ b/data/qcsrc/server/tturrets/units/unit_ewheel.qc @@ -29,7 +29,7 @@ void ewheel_attack() for (i=0;i<1;++i) { f = gettagindex(self.tur_head,"tag_fire"); - v = gettaginfo(self.tur_head,f); + v = gettaginfo_relative(self.tur_head,f); v_y = v_y * -1; self.tur_shotorg = v; turret_do_updates(self); @@ -292,7 +292,7 @@ void turret_ewheel_dinit() vector v; float f; f = gettagindex(self.tur_head,"tag_fire"); - v = gettaginfo(self.tur_head,f); + v = gettaginfo_relative(self.tur_head,f); v_y = v_y * -1; //setsize(self,WALKER_MIN,WALKER_MAX); diff --git a/data/qcsrc/server/tturrets/units/unit_walker.qc b/data/qcsrc/server/tturrets/units/unit_walker.qc index 6798a79b6..c57ab6db6 100644 --- a/data/qcsrc/server/tturrets/units/unit_walker.qc +++ b/data/qcsrc/server/tturrets/units/unit_walker.qc @@ -369,7 +369,7 @@ void rv_think() else f = gettagindex(self.owner,"tag_rocket02"); - org = self.owner.origin + gettaginfo(self.owner,f); + org = self.owner.origin + gettaginfo_relative(self.owner,f); self.nextthink = time + 0.2; oldself = self; @@ -711,7 +711,7 @@ void turret_walker_dinit() vector v; float f; f = gettagindex(self.tur_head,"tag_fire"); - v = gettaginfo(self.tur_head,f); + v = gettaginfo_relative(self.tur_head,f); v_y = v_y * -1; setsize(self,WALKER_MIN,WALKER_MAX); -- 2.39.2