diff --git a/src/g_game.cpp b/src/g_game.cpp index 32563b9c9..27e0a65b0 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -757,6 +757,7 @@ static int LookAdjust(int look) players[consoleplayer].ReadyWeapon != NULL) // No adjustment if no weapon. { auto scale = players[consoleplayer].ReadyWeapon->FloatVar(NAME_FOVScale); + scale *= players[consoleplayer].ReadyWeapon->FloatVar(NAME_LookScale); if (scale > 0) // No adjustment if it is non-positive. { look = int(look * scale); diff --git a/src/utility/namedef.h b/src/utility/namedef.h index 470a58a25..4d54aadfc 100644 --- a/src/utility/namedef.h +++ b/src/utility/namedef.h @@ -1029,6 +1029,7 @@ xx(Kickback) xx(MinSelAmmo1) xx(bDehAmmo) xx(FOVScale) +xx(LookScale) xx(YAdjust) xx(Crosshair) xx(WeaponFlags) diff --git a/wadsrc/static/zscript/actors/inventory/weapons.zs b/wadsrc/static/zscript/actors/inventory/weapons.zs index 2bddece74..da5498b95 100644 --- a/wadsrc/static/zscript/actors/inventory/weapons.zs +++ b/wadsrc/static/zscript/actors/inventory/weapons.zs @@ -28,6 +28,7 @@ class Weapon : StateProvider Ammo Ammo1, Ammo2; // In-inventory instance variables Weapon SisterWeapon; double FOVScale; + double LookScale; // Multiplier for look sensitivity (like FOV scaling but without the zooming) int Crosshair; // 0 to use player's crosshair bool GivenAsMorphWeapon; bool bAltFire; // Set when this weapon's alternate fire is used.