Split camera distance into in and outdoor

This commit is contained in:
2026-03-01 19:09:52 +01:00
parent ff4a4b82b8
commit e935e32768

View File

@@ -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];
});
}