From dca517bfa9111be2ed103d836c340cc0dfebba82 Mon Sep 17 00:00:00 2001 From: div0 Date: Mon, 16 Apr 2007 14:00:20 +0000 Subject: [PATCH] make the "no attachment + nodepthtest" path set attachment for the local player, so it does not break chase cam + cl_movement git-svn-id: svn://svn.icculus.org/nexuiz/trunk@2325 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/waypointsprites.qc | 29 ++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/data/qcsrc/server/waypointsprites.qc b/data/qcsrc/server/waypointsprites.qc index 9e5610cde..2206cd806 100644 --- a/data/qcsrc/server/waypointsprites.qc +++ b/data/qcsrc/server/waypointsprites.qc @@ -53,12 +53,11 @@ void WaypointSprite_Disown(entity wp, float fadetime) { if(wp.exteriormodeltoclient == wp.owner) { -#ifdef ATTACHMENT_WORKS_WITH_EF_NODEPTHTEST setattachment(wp, world, ""); +#ifdef ATTACHMENT_WORKS_WITH_EF_NODEPTHTEST setorigin(wp, wp.origin + wp.exteriormodeltoclient.origin); #else - // setorigin(wp, wp.view_ofs + wp.exteriormodeltoclient.origin); - // has been done already by customizeentityforclient! + setorigin(wp, wp.view_ofs + wp.exteriormodeltoclient.origin); #endif wp.exteriormodeltoclient = world; } @@ -94,11 +93,6 @@ void WaypointSprite_Think() if(time >= self.teleport_time) doremove = TRUE; -#ifndef ATTACHMENT_WORKS_WITH_EF_NODEPTHTEST - if(self.exteriormodeltoclient) - setorigin(self, self.exteriormodeltoclient.origin + self.view_ofs); -#endif - if(doremove) WaypointSprite_Kill(self); else @@ -141,7 +135,23 @@ float WaypointSprite_CustomizeEntityForClient() #ifdef ATTACHMENT_WORKS_WITH_EF_NODEPTHTEST realorigin = self.exteriormodeltoclient.origin + self.origin; #else - realorigin = self.origin; + if(self.exteriormodeltoclient) + { + if(self.exteriormodeltoclient == other) + { + setattachment(self, other, ""); + setorigin(self, self.view_ofs); + realorigin = other.origin + self.origin; + } + else + { + setattachment(self, world, ""); + setorigin(self, self.exteriormodeltoclient.origin + self.view_ofs); + realorigin = self.origin; + } + } + else + realorigin = self.origin; #endif distance = vlen(realorigin - porigin); @@ -198,7 +208,6 @@ entity WaypointSprite_Spawn( setorigin(wp, ofs); #else wp.view_ofs = ofs; - setorigin(wp, ref.origin + ofs); #endif } else -- 2.39.2