diff --git a/src/features/movement.c b/src/features/movement.c index aef38bc..a6778bd 100644 --- a/src/features/movement.c +++ b/src/features/movement.c @@ -6,6 +6,17 @@ #include "../include/globals.h" #include "../include/cvars.h" +static void autostrafe_legit(usercmd_t* cmd) { + /* Get mouse delta */ + int dx = 0, dy = 0; + i_engine->pfnVguiWrap2_GetMouseDelta(&dx, &dy); + + if (dx < 0) + cmd->sidemove = -450.0f; + else if (dx > 0) + cmd->sidemove = 450.0f; +} + void bhop(usercmd_t* cmd) { if (!CVAR_ON(bhop) || i_pmove->movetype != MOVETYPE_WALK) return; @@ -17,4 +28,16 @@ void bhop(usercmd_t* cmd) { cmd->buttons &= ~IN_JUMP; was_in_air = (i_pmove->flags & FL_ONGROUND) == 0; + + /* Autostrafe if enabled. Check if we are in the air. */ + if (was_in_air) { + switch ((int)cv_autostrafe->value) { + case 1: + autostrafe_legit(cmd); + break; + case 0: + default: + break; + } + } }