From 1c2df0de21db15a1f28a79e62529a0ab547e3239 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 12 Nov 2015 16:20:46 +1000 Subject: [PATCH] Add a nasty hook to customise impact effects --- qcsrc/client/mutators/events.qh | 7 +++++++ qcsrc/common/effects/qc/damageeffects.qc | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/qcsrc/client/mutators/events.qh b/qcsrc/client/mutators/events.qh index 34f75b0ea..baaba14ae 100644 --- a/qcsrc/client/mutators/events.qh +++ b/qcsrc/client/mutators/events.qh @@ -130,4 +130,11 @@ vector vbeam_shotorg; vector vbeam_endpos; MUTATOR_HOOKABLE(Particles_VortexBeam, EV_Particles_VortexBeam); +/** Return true to not draw any impact effect */ +#define EV_Weapon_ImpactEffect(i, o) \ + /**/ i(entity, w_hitwep) \ + /**/ +entity w_hitwep; +MUTATOR_HOOKABLE(Weapon_ImpactEffect, EV_Weapon_ImpactEffect); + #endif diff --git a/qcsrc/common/effects/qc/damageeffects.qc b/qcsrc/common/effects/qc/damageeffects.qc index 6cf7c1992..e77f63f69 100644 --- a/qcsrc/common/effects/qc/damageeffects.qc +++ b/qcsrc/common/effects/qc/damageeffects.qc @@ -4,6 +4,7 @@ #ifdef CSQC #include "../../deathtypes/all.qh" #include "../../movetypes/movetypes.qh" +#include "../../../client/mutators/events.qh" #include "../../vehicles/all.qh" #include "../../weapons/all.qh" #endif @@ -423,8 +424,10 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew) w_backoff = -1 * normalize(force); setorigin(self, w_org + w_backoff * 2); // for sound() calls - if(!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY)) { - hitwep.wr_impacteffect(hitwep); + if(!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY)) + { + if(!MUTATOR_CALLHOOK(Weapon_ImpactEffect, hitwep)) + hitwep.wr_impacteffect(hitwep); } } } -- 2.39.2