From: Rudolf Polzer Date: Sun, 26 Jun 2011 18:31:32 +0000 (+0200) Subject: fix hook throwing through warpzone X-Git-Tag: xonotic-v0.5.0~159^2~15^2~13 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=dd7226df75b4a9f4428b9920885fb527643a96d4;p=xonotic%2Fxonotic-data.pk3dir.git fix hook throwing through warpzone --- 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)