From 81059aee1d55623f8829b84546c540ad5b0807ad Mon Sep 17 00:00:00 2001 From: Sterling Parker Date: Thu, 7 Mar 2019 06:27:10 -0700 Subject: [PATCH] Fix faulty multiplication logic for LookScale Turns out the entire thing was getting shortcutted because FOVScale is 0 unless set explicitly or via A_ZoomFactor. --- src/g_game.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/g_game.cpp b/src/g_game.cpp index 27e0a65b05..dd5e73e753 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -756,11 +756,15 @@ static int LookAdjust(int look) if (players[consoleplayer].playerstate != PST_DEAD && // No adjustment while dead. 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. + auto FOVScale = players[consoleplayer].ReadyWeapon->FloatVar(NAME_FOVScale); + auto LookScale = players[consoleplayer].ReadyWeapon->FloatVar(NAME_LookScale); + if (FOVScale > 0) // No adjustment if it is non-positive. { - look = int(look * scale); + look = int(look * FOVScale); + } + if (LookScale > 0) // No adjustment if it is non-positive. + { + look = int(look * LookScale); } } return look;