diff --git a/WickedSeed/dllmain.cpp b/WickedSeed/dllmain.cpp index 15e63a5..9f4eacd 100644 --- a/WickedSeed/dllmain.cpp +++ b/WickedSeed/dllmain.cpp @@ -21,7 +21,8 @@ static bool g_fix_enabled = false; static bool g_fov_fix_enabled = false; static bool g_camera_fix_enabled = false; static int g_AdditionalFOVValue = 0; -static float g_CameraMultiplier = 1.f; +static float g_OutdoorCameraMultiplier = 1.f; +static float g_IndoorCameraMultiplier = 1.f; static bool g_PendingCameraRefresh = true; static float g_CameraIn = 1.f; static float g_CameraOut = 1.f; @@ -138,7 +139,11 @@ extern "C" __declspec(dllexport) void SetFixesEnabled(GameFixes fix, bool enable extern "C" __declspec(dllexport) void SetValues(GameSetting setting, float value) { if (setting == GameSetting::FOV) g_AdditionalFOVValue = (int)(value); if (setting == GameSetting::CameraDistance) { - g_CameraMultiplier = value; + g_OutdoorCameraMultiplier = value; + ForceCameraRefresh(); + } + if (setting == GameSetting::AITimeDilation) { + g_IndoorCameraMultiplier = value; ForceCameraRefresh(); } } @@ -198,7 +203,7 @@ static void CameraFixEnabled() { if (thirdPersonInstance != currentInstance) thirdPersonInstance = currentInstance; // Refresh third person instance g_CameraIn = (float)ctx.xmm0.f64[0]; - ctx.xmm0.f64[0] *= g_CameraMultiplier; // Apply multiplier + ctx.xmm0.f64[0] *= g_CameraIn < 1.7 ? g_IndoorCameraMultiplier : g_OutdoorCameraMultiplier; // Apply multiplier g_CameraOut = (float)ctx.xmm0.f64[0]; }); }