-#ifdef IMPLEMENTATION
+#include "multijump.qh"
+
+#ifdef GAMEQC
+
#ifdef SVQC
#include <server/antilag.qh>
#endif
#if defined(SVQC)
-REGISTER_MUTATOR(multijump, cvar("g_multijump"));
+REGISTER_MUTATOR(multijump, autocvar_g_multijump);
#elif defined(CSQC)
REGISTER_MUTATOR(multijump, true);
#endif
.bool multijump_ready;
#ifdef CSQC
+bool cvar_cl_multijump;
bool autocvar_cl_multijump = true;
#define PHYS_MULTIJUMP_CLIENT(s) autocvar_cl_multijump
#elif defined(SVQC)
.bool cvar_cl_multijump;
- #define PHYS_MULTIJUMP_CLIENT(s) (s).cvar_cl_multijump
+ #define PHYS_MULTIJUMP_CLIENT(s) CS(s).cvar_cl_multijump
#endif
MUTATOR_HOOKFUNCTION(multijump, PlayerPhysics)
if(M_ARGV(2, bool))
{
if(PHYS_MULTIJUMP_DODGING(player))
- if(player.movement_x != 0 || player.movement_y != 0) // don't remove all speed if player isnt pressing any movement keys
+ if(PHYS_CS(player).movement_x != 0 || PHYS_CS(player).movement_y != 0) // don't remove all speed if player isnt pressing any movement keys
{
float curspeed;
vector wishvel, wishdir;
//#endif
makevectors(player.v_angle_y * '0 1 0');
- wishvel = v_forward * player.movement_x + v_right * player.movement_y;
+ wishvel = v_forward * PHYS_CS(player).movement_x + v_right * PHYS_CS(player).movement_y;
wishdir = normalize(wishvel);
player.velocity_x = wishdir_x * curspeed; // allow "dodging" at a multijump
}
}
-#ifdef SVQC
-
REPLICATE(cvar_cl_multijump, bool, "cl_multijump");
+#ifdef SVQC
+
MUTATOR_HOOKFUNCTION(multijump, BuildMutatorsString)
{
M_ARGV(0, string) = strcat(M_ARGV(0, string), ":multijump");
}
#endif
+
#endif