diff --git a/source/core/gamecvars.cpp b/source/core/gamecvars.cpp index 80080d1d5..ddaf75428 100644 --- a/source/core/gamecvars.cpp +++ b/source/core/gamecvars.cpp @@ -91,6 +91,7 @@ CVARD(Bool, cl_slopetilting, false, CVAR_ARCHIVE, "enable/disable slope tilting" CVARD(Int, cl_showweapon, 1, CVAR_ARCHIVE, "enable/disable show weapons") // only implemented in Blood CVARD(Bool, cl_sointerpolation, true, CVAR_ARCHIVE, "enable/disable sector object interpolation") // only implemented in SW CVARD(Bool, cl_syncinput, false, CVAR_ARCHIVE, "enable/disable synchronized input with game's ticrate") // only implemented in SW +CVARD(Bool, cl_dukefixrpgrecoil, true, CVAR_ARCHIVE, "soften recoil of Duke 3D's RPG") CUSTOM_CVARD(Int, cl_crosshairscale, 50, CVAR_ARCHIVE, "changes the size of the crosshair") { if (self < 1) self = 1; diff --git a/source/core/gamecvars.h b/source/core/gamecvars.h index dd7c823f7..3368408cc 100644 --- a/source/core/gamecvars.h +++ b/source/core/gamecvars.h @@ -25,6 +25,7 @@ EXTERN_CVAR(Int, cl_weaponswitch) EXTERN_CVAR(Int, cl_crosshairscale) EXTERN_CVAR(Bool, cl_sointerpolation) EXTERN_CVAR(Bool, cl_syncinput) +EXTERN_CVAR(Bool, cl_dukefixrpgrecoil) EXTERN_CVAR(Bool, demorec_seeds_cvar) EXTERN_CVAR(Bool, demoplay_diffs) diff --git a/source/games/duke/src/player_d.cpp b/source/games/duke/src/player_d.cpp index 54bf9be0a..d3b8a5d1c 100644 --- a/source/games/duke/src/player_d.cpp +++ b/source/games/duke/src/player_d.cpp @@ -2502,7 +2502,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect) fi.shoot(pi, RPG); checkavailweapon(p); } - else if (p->kickback_pic == 13) + else if (p->kickback_pic == (cl_dukefixrpgrecoil ? 13 : 20)) p->okickback_pic = p->kickback_pic = 0; break; }