Merge pull request #747 from De-Seppe/master

Feature request : add cvar to disable machine gun recoil in single player #741 (baseq2)
This commit is contained in:
Yamagi 2021-09-28 18:36:20 +02:00 committed by GitHub
commit bd90450ba7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 2 deletions

View file

@ -49,6 +49,12 @@ it's `+set busywait 0` (setting the `busywait` cvar) and `-portable`
slightly inaccurate, bullets and the like have a little drift. When slightly inaccurate, bullets and the like have a little drift. When
set to `1` they hit exactly were the crosshair is. set to `1` they hit exactly were the crosshair is.
* **g_machinegun_norecoil**: Disable machine gun recoil in single player.
By default this is set to `0`, this keeps the original machine gun
recoil in single player. When set to `1` the recoil is disabled in
single player, the same way as in multiplayer.
This cvar only works if the game.dll implements this behaviour.
* **busywait**: By default this is set to `1`, causing Quake II to spin * **busywait**: By default this is set to `1`, causing Quake II to spin
in a very tight loop until it's time to process the next frame. This in a very tight loop until it's time to process the next frame. This
is a very accurate way to determine the internal timing, but comes with is a very accurate way to determine the internal timing, but comes with

View file

@ -86,6 +86,7 @@ cvar_t *sv_maplist;
cvar_t *gib_on; cvar_t *gib_on;
cvar_t *aimfix; cvar_t *aimfix;
cvar_t *g_machinegun_norecoil;
void SpawnEntities(char *mapname, char *entities, char *spawnpoint); void SpawnEntities(char *mapname, char *entities, char *spawnpoint);
void ClientThink(edict_t *ent, usercmd_t *cmd); void ClientThink(edict_t *ent, usercmd_t *cmd);

View file

@ -549,6 +549,7 @@ extern cvar_t *flood_waitdelay;
extern cvar_t *sv_maplist; extern cvar_t *sv_maplist;
extern cvar_t *aimfix; extern cvar_t *aimfix;
extern cvar_t *g_machinegun_norecoil;
#define world (&g_edicts[0]) #define world (&g_edicts[0])

View file

@ -1249,7 +1249,7 @@ Machinegun_Fire(edict_t *ent)
ent->client->kick_angles[0] = ent->client->machinegun_shots * -1.5; ent->client->kick_angles[0] = ent->client->machinegun_shots * -1.5;
/* raise the gun as it is firing */ /* raise the gun as it is firing */
if (!deathmatch->value) if (!(deathmatch->value || g_machinegun_norecoil->value))
{ {
ent->client->machinegun_shots++; ent->client->machinegun_shots++;

View file

@ -273,6 +273,7 @@ InitGame(void)
/* others */ /* others */
aimfix = gi.cvar("aimfix", "0", CVAR_ARCHIVE); aimfix = gi.cvar("aimfix", "0", CVAR_ARCHIVE);
g_machinegun_norecoil = gi.cvar("g_machinegun_norecoil", "0", CVAR_ARCHIVE);
/* items */ /* items */
InitItems(); InitItems();