From 41a134a1957b7aa78e74697a7c4264f5776493a5 Mon Sep 17 00:00:00 2001 From: De-Seppe <71447857+De-Seppe@users.noreply.github.com> Date: Mon, 27 Sep 2021 12:56:22 +0200 Subject: [PATCH] Add cvar machinegun_norecoil Add cvar machinegun_norecoil This cvar allows to disable machinegun recoil in single player. The default value is the original Quake 2 behaviour. --- src/game/g_main.c | 1 + src/game/header/local.h | 1 + src/game/player/weapon.c | 5 +++-- src/game/savegame/savegame.c | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/game/g_main.c b/src/game/g_main.c index 666d825d..aa003c2e 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -86,6 +86,7 @@ cvar_t *sv_maplist; cvar_t *gib_on; cvar_t *aimfix; +cvar_t *machinegun_norecoil; void SpawnEntities(char *mapname, char *entities, char *spawnpoint); void ClientThink(edict_t *ent, usercmd_t *cmd); diff --git a/src/game/header/local.h b/src/game/header/local.h index e82c2182..7d9bc33b 100644 --- a/src/game/header/local.h +++ b/src/game/header/local.h @@ -549,6 +549,7 @@ extern cvar_t *flood_waitdelay; extern cvar_t *sv_maplist; extern cvar_t *aimfix; +extern cvar_t *machinegun_norecoil; #define world (&g_edicts[0]) diff --git a/src/game/player/weapon.c b/src/game/player/weapon.c index 25eb4a03..75495d40 100644 --- a/src/game/player/weapon.c +++ b/src/game/player/weapon.c @@ -1249,7 +1249,7 @@ Machinegun_Fire(edict_t *ent) ent->client->kick_angles[0] = ent->client->machinegun_shots * -1.5; /* raise the gun as it is firing */ - if (!deathmatch->value) + if (!(deathmatch->value || machinegun_norecoil->value)) { ent->client->machinegun_shots++; @@ -1258,7 +1258,8 @@ Machinegun_Fire(edict_t *ent) ent->client->machinegun_shots = 9; } } - + + /* get start / end positions */ VectorAdd(ent->client->v_angle, ent->client->kick_angles, angles); AngleVectors(angles, forward, right, NULL); diff --git a/src/game/savegame/savegame.c b/src/game/savegame/savegame.c index d0a68b38..b25733b1 100644 --- a/src/game/savegame/savegame.c +++ b/src/game/savegame/savegame.c @@ -273,6 +273,7 @@ InitGame(void) /* others */ aimfix = gi.cvar("aimfix", "0", CVAR_ARCHIVE); + machinegun_norecoil = gi.cvar("machinegun_norecoil", "0", CVAR_ARCHIVE); /* items */ InitItems();