// the jump part of the dodge cannot be ramped
.float dodging_single_action;
-#include "../../../animdecide.qh"
-#include "../../../physics.qh"
+#include <common/animdecide.qh>
+#include <common/physics/player.qh>
.float cvar_cl_dodging_timeout = _STAT(DODGING_TIMEOUT);
{
if (PHYS_DODGING_WALL == 0) { return false; }
- #define X(OFFSET) \
- tracebox(this.origin, this.mins, this.maxs, this.origin + OFFSET, true, this); \
- if (trace_fraction < 1 && vlen (this.origin - trace_endpos) < threshold) \
+#define X(OFFSET) \
+ tracebox(this.origin, this.mins, this.maxs, this.origin + OFFSET, true, this); \
+ if(trace_fraction < 1 && vdist(this.origin - trace_endpos, <, threshold)) \
return true;
X(1000*v_right);
X(-1000*v_right);
X(1000*v_forward);
X(-1000*v_forward);
- #undef X
+#undef X
return false;
}
/* is this a state change? */ \
if(!(PHYS_DODGING_PRESSED_KEYS(this) & KEY_##BTN) || frozen_no_doubletap) { \
tap_direction_##RESULT; \
- if ((time - this.last_##BTN##_KEY_time) < PHYS_DODGING_TIMEOUT(this)) \
+ if ((time - this.last_##BTN##_KEY_time) < PHYS_DODGING_TIMEOUT(this) || frozen_no_doubletap) \
dodge_detected = true; \
this.last_##BTN##_KEY_time = time; \
}
if (!PHYS_DODGING)
return;
- if (PHYS_DEAD(this))
+ if (IS_DEAD(this))
return;
// when swimming, no dodging allowed..
MUTATOR_HOOKFUNCTION(dodging, PlayerPhysics)
{
+ entity player = M_ARGV(0, entity);
+
// print("dodging_PlayerPhysics\n");
- PM_dodging_GetPressedKeys(self);
- PM_dodging(self);
- return false;
+ PM_dodging_GetPressedKeys(player);
+ PM_dodging(player);
}
#ifdef SVQC
-MUTATOR_HOOKFUNCTION(dodging, GetCvars)
-{
- GetCvars_handleFloat(get_cvars_s, get_cvars_f, cvar_cl_dodging_timeout, "cl_dodging_timeout");
- return false;
-}
+REPLICATE(cvar_cl_dodging_timeout, float, "cl_dodging_timeout");
MUTATOR_HOOKFUNCTION(dodging, GetPressedKeys)
{
- PM_dodging_checkpressedkeys(self);
- return false;
+ entity player = M_ARGV(0, entity);
+
+ PM_dodging_checkpressedkeys(player);
}
#endif