From dd7226df75b4a9f4428b9920885fb527643a96d4 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sun, 26 Jun 2011 20:31:32 +0200 Subject: [PATCH] fix hook throwing through warpzone --- qcsrc/server/g_hook.qc | 7 ------- qcsrc/server/miscfunctions.qc | 6 +++++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index f03f78473..7eeb8e225 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -247,13 +247,6 @@ void GrapplingHookThink() void GrapplingHookTouch (void) { - if(SUB_OwnerCheck()) - return; - if(SUB_NoImpactCheck()) - { - RemoveGrapplingHook(self.realowner); - return; - } PROJECTILE_TOUCH; GrapplingHook_Stop(); diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 8b7806e56..c34941e23 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -2014,13 +2014,17 @@ float SUB_NoImpactCheck() #define SUB_OwnerCheck() (other && (other == self.owner)) +void RemoveGrapplingHook(entity pl); float WarpZone_Projectile_Touch_ImpactFilter_Callback() { if(SUB_OwnerCheck()) return TRUE; if(SUB_NoImpactCheck()) { - remove(self); + if(self.classname == "grapplinghook") + RemoveGrapplingHook(self.realowner); + else + remove(self); return TRUE; } if(trace_ent && trace_ent.solid > SOLID_TRIGGER) -- 2.39.2