Split camera distance into in and outdoor

This commit is contained in:
2026-03-01 19:04:15 +01:00
parent f7c0efcb52
commit ee1cad1493

View File

@@ -35,7 +35,8 @@ static bool fix_enabled = false;
static bool fov_fix_enabled = false;
static bool camera_fix_enabled = false;
static int worldFOVvalue = 0;
static float cameraDistancevalue = 1.f;
static float cameraOutdoorDistancevalue = 1.f;
static float cameraIndoorDistancevalue = 1.f;
// Overlays popups
static bool popup_Informations = false;
@@ -58,7 +59,7 @@ static FixToggle individualFixes[] = {
};
// Prepare array of sliders for ImGui
static SliderFix2 sliders[5];
static SliderFix2 sliders[3];
// Load and unload game core dll functions /!\ necessary
static void LoadFixDLL() {
@@ -85,12 +86,14 @@ static void LoadFixDLL() {
// Apply initial values loaded from settings
if (SetValues) {
SetValues(GameSetting::FOV, worldFOVvalue);
SetValues(GameSetting::CameraDistance, cameraDistancevalue);
SetValues(GameSetting::CameraDistance, cameraOutdoorDistancevalue);
}
sliders[0] = { "In game additional FOV", "##FOVValue", SliderType::Int, &worldFOVvalue, -20, 40, GameSetting::FOV, SetValues };
sliders[1] = { "Camera distance (*)", "##CameraOffset", SliderType::Float, &cameraDistancevalue, 0, 2, GameSetting::CameraDistance, SetValues, "%.2f",
"Value is a multiplier." };
sliders[1] = { "Outdoor camera distance (*)", "##CameraOutdoorOffset", SliderType::Float, &cameraOutdoorDistancevalue, 0, 2, GameSetting::CameraDistance, SetValues, "%.2f",
"Value is a multiplier.\nFinal computed camera value is in meters." };
sliders[2] = { "Indoor Camera distance (*)", "##CameraIndoorOffset", SliderType::Float, &cameraIndoorDistancevalue, 0, 2, GameSetting::AITimeDilation, SetValues, "%.2f",
"Value is a multiplier.\nFinal computed camera value is in meters." };
}
}
@@ -107,7 +110,8 @@ static void SaveSettings() {
pluginIniFile["2#Individual fix"]["Camera"] = camera_fix_enabled;
pluginIniFile["3#Fixes tuning"].setComment("Individual fix fine tune");
pluginIniFile["3#Fixes tuning"]["World FOV"] = worldFOVvalue;
pluginIniFile["3#Fixes tuning"]["Camera distance"] = cameraDistancevalue;
pluginIniFile["3#Fixes tuning"]["Outdoor camera distance"] = cameraOutdoorDistancevalue;
pluginIniFile["3#Fixes tuning"]["Indoor camera distance"] = cameraIndoorDistancevalue;
pluginIniFile.save(SETTINGS_FILE);
}
@@ -120,7 +124,8 @@ static void LoadSettings() {
fov_fix_enabled = pluginIniFile["2#Individual fix"]["FOV"].as<bool>();
camera_fix_enabled = pluginIniFile["2#Individual fix"]["Camera"].as<bool>();
worldFOVvalue = pluginIniFile["3#Fixes tuning"]["World FOV"].as<int>();
cameraDistancevalue = pluginIniFile["3#Fixes tuning"]["Camera distance"].as<float>();
cameraOutdoorDistancevalue = pluginIniFile["3#Fixes tuning"]["Outdoor camera distance"].as<float>();
cameraIndoorDistancevalue = pluginIniFile["3#Fixes tuning"]["Indoor camera distance"].as<float>();
}
catch (const std::exception& e) {}
}
@@ -225,6 +230,7 @@ static void on_overlay_draw(reshade::api::effect_runtime* runtime) {
DrawSlider2(sliders[0], 200);
ImGui::TableSetColumnIndex(1);
DrawSlider2(sliders[1], 200);
DrawSlider2(sliders[2], 200);
ImGui::EndTable();
}
ImGui::PopStyleVar();