diff --git a/CameraResolutionScale/CameraResolutionScale.csproj b/CameraResolutionScale/CameraResolutionScale.csproj index 6065dcf..1e5abfe 100644 --- a/CameraResolutionScale/CameraResolutionScale.csproj +++ b/CameraResolutionScale/CameraResolutionScale.csproj @@ -44,6 +44,10 @@ False E:\SPT-AKI\SPT-AKI 3.2.1\EscapeFromTarkov_Data\Managed\ItemComponent.Types.dll + + False + E:\SPT-AKI\SPT-AKI 3.2.1\EscapeFromTarkov_Data\Managed\Sirenix.Serialization.dll + @@ -63,8 +67,10 @@ + + diff --git a/CameraResolutionScale/DisableFOVScaling.cs b/CameraResolutionScale/DisableFOVScaling.cs new file mode 100644 index 0000000..86fea9e --- /dev/null +++ b/CameraResolutionScale/DisableFOVScaling.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CameraResolutionScale +{ + internal class DisableFOVScaling + { + } +} diff --git a/CameraResolutionScale/Plugin.cs b/CameraResolutionScale/Plugin.cs index 7c73b37..a60e0da 100644 --- a/CameraResolutionScale/Plugin.cs +++ b/CameraResolutionScale/Plugin.cs @@ -5,6 +5,8 @@ using UnityEngine; using Comfort.Common; using System.Reflection; using System; +using System.ComponentModel; +using EFT.UI; namespace CameraResolutionScale { @@ -13,13 +15,33 @@ namespace CameraResolutionScale { ConfigEntry cameraResolutionScale; ConfigEntry scopeCameraResolutionScale; + ConfigEntry disableFOVScaling; + + GameObject rootObject; + string rootObjectPath = "Common UI/Common UI/SettingScreen"; + GameObject fovObject; + string fovObjectPath = "Game Settings/Image/Other Settings/FOV/FOV"; + int defaultFOVValue = 50; + + SelectSlider fovSliderValue; + + enum fovScalingMode + { + Disabled, + [Description("Only magnified optics")] + ScopeOnly, + Enabled + } + public event EventHandler SettingChanged; + + void Awake() { cameraResolutionScale = Config.Bind("General", "Main camera scale %", 80, new ConfigDescription("Main camera resulution sclae", new AcceptableValueRange(50, 100))); scopeCameraResolutionScale = Config.Bind("General", "Scope camera scale %", 40, new ConfigDescription("Scope camera resulution scale", new AcceptableValueRange(25, 100))); - + disableFOVScaling = Config.Bind("Experimental", "Disable ADS FOV scaling", fovScalingMode.Disabled); cameraResolutionScale.SettingChanged += (s, args) => { @@ -29,7 +51,19 @@ namespace CameraResolutionScale scopeCameraResolutionScale.SettingChanged += (s, args) => { updateSSRatio(); - }; + }; + + + + + + Logger.LogInfo("Setting up game settings references"); + rootObject = GameObject.Find(rootObjectPath); + fovObject = rootObject.transform.Find(fovObjectPath).gameObject; + fovSliderValue = fovObject.GetComponent(); + defaultFOVValue = fovSliderValue.CurrentValue(); + + Logger.LogInfo($"Default camera FOV: {defaultFOVValue}"); } void updateSSRatio() @@ -82,6 +116,12 @@ namespace CameraResolutionScale scopeCamera = GameObject.Find("BaseOpticCamera(Clone)").GetComponent(); } + + + + + + var handsController = ((Singleton.Instance.RegisteredPlayers[0].HandsController)); isAiming = handsController.IsAiming; @@ -104,6 +144,11 @@ namespace CameraResolutionScale if (FPSCamera == null) return; if (scopeCamera == null || scopeCamera.isActiveAndEnabled == false) return; + + Logger.LogInfo("Updating settings FOV to 50"); + fovSliderValue.UpdateValue(50); + + _nextSSRation.SetValue(ssaaInstance, (float)(defaultSSRatio * cameraResolutionScale.Value / 100f)); Logger.LogInfo($"Updated to: {_nextSSRation.GetValue(ssaaInstance)}"); @@ -116,6 +161,8 @@ namespace CameraResolutionScale //Logger.LogInfo("Checking if not isAiming"); if (!isAiming && doneOnce) { + Logger.LogInfo($"Restoring default hipfire FOV: {defaultFOVValue}"); + fovSliderValue.UpdateValue(defaultFOVValue); Logger.LogInfo($"Restoring default scale: {defaultSSRatio}"); _nextSSRation.SetValue(ssaaInstance, defaultSSRatio); doneOnce = false; diff --git a/CameraResolutionScale/UpdateScopeResolution.cs b/CameraResolutionScale/UpdateScopeResolution.cs new file mode 100644 index 0000000..7b54c10 --- /dev/null +++ b/CameraResolutionScale/UpdateScopeResolution.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CameraResolutionScale +{ + internal class UpdateScopeResolution + { + } +}