#endif
#include "../../../physics.qh"
-
-#if defined(SVQC)
-void doublejump_AddStats();
-
-REGISTER_MUTATOR(doublejump, true)
-{
- MUTATOR_ONADD
- {
- doublejump_AddStats();
- }
- return false;
-}
-#elif defined(CSQC)
REGISTER_MUTATOR(doublejump, true);
-#endif
-
-
-#ifdef CSQC
-
-#define PHYS_DOUBLEJUMP getstati(STAT_DOUBLEJUMP)
-
-#elif defined(SVQC)
-
-bool autocvar_sv_doublejump;
-
-#define PHYS_DOUBLEJUMP autocvar_sv_doublejump
-.int stat_doublejump;
-
-void doublejump_UpdateStats(entity this)
-{
- this.stat_doublejump = PHYS_DOUBLEJUMP;
-}
-
-void doublejump_AddStats()
-{
- addstat(STAT_DOUBLEJUMP, AS_INT, stat_doublejump);
-}
-
-#endif
+#define PHYS_DOUBLEJUMP(s) STAT(DOUBLEJUMP, s)
MUTATOR_HOOKFUNCTION(doublejump, PlayerJump)
{
- if (PHYS_DOUBLEJUMP)
+ if (PHYS_DOUBLEJUMP(self))
{
tracebox(self.origin + '0 0 0.01', self.mins, self.maxs, self.origin - '0 0 0.01', MOVE_NORMAL, self);
if (trace_fraction < 1 && trace_plane_normal_z > 0.7)
return false;
}
-MUTATOR_HOOKFUNCTION(doublejump, PlayerPhysics)
-{
-#ifdef SVQC
- doublejump_UpdateStats(self);
-#endif
- return false;
-}
-
#ifdef SVQC
MUTATOR_HOOKFUNCTION(doublejump, BuildMutatorsString)