aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI
diff options
context:
space:
mode:
authorcatdbg <catsarecool222@proton.me>2026-03-06 14:38:16 -0800
committerGitHub <noreply@github.com>2026-03-06 16:38:16 -0600
commiteeedbf08d373519dc7b1399d9ca072d2815b32ff (patch)
tree0b3b753249e1405a0c9f3ad4cc8c2e3a51eead7a /Minecraft.Client/Common/UI
parent4e67706dc3dc02e1a96fa5cd479b831dfb92e85d (diff)
Save FOV value to settings (#670)
* Save FOV value to settings.dat * Batch font drawing to fix debug overlay FPS * Revert "Batch font drawing to fix debug overlay FPS" This reverts commit 7dcecdbd4d6037194e75d9fe3130845dd8690928.
Diffstat (limited to 'Minecraft.Client/Common/UI')
-rw-r--r--Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp15
-rw-r--r--Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp8
2 files changed, 16 insertions, 7 deletions
diff --git a/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp b/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp
index af86d4b8..fafcea02 100644
--- a/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp
+++ b/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp
@@ -23,8 +23,10 @@ UIScene_DebugOverlay::UIScene_DebugOverlay(int iPad, void *initData, UILayer *pa
Minecraft *pMinecraft = Minecraft::GetInstance();
WCHAR TempString[256];
- swprintf( (WCHAR *)TempString, 256, L"Set fov (%d)", (int)pMinecraft->gameRenderer->GetFovVal());
- m_sliderFov.init(TempString,eControl_FOV,0,100,(int)pMinecraft->gameRenderer->GetFovVal());
+ int fovSliderVal = app.GetGameSettings(m_iPad, eGameSetting_FOV);
+ int fovDeg = 70 + fovSliderVal * 40 / 100;
+ swprintf( (WCHAR *)TempString, 256, L"Set fov (%d)", fovDeg);
+ m_sliderFov.init(TempString,eControl_FOV,0,100,fovSliderVal);
float currentTime = pMinecraft->level->getLevelData()->getGameTime() % 24000;
swprintf( (WCHAR *)TempString, 256, L"Set time (unsafe) (%d)", (int)currentTime);
@@ -273,10 +275,15 @@ void UIScene_DebugOverlay::handleSliderMove(F64 sliderId, F64 currentValue)
case eControl_FOV:
{
Minecraft *pMinecraft = Minecraft::GetInstance();
- pMinecraft->gameRenderer->SetFovVal((float)currentValue);
+ int v = (int)currentValue;
+ if (v < 0) v = 0;
+ if (v > 100) v = 100;
+ int fovDeg = 70 + v * 40 / 100;
+ pMinecraft->gameRenderer->SetFovVal((float)fovDeg);
+ app.SetGameSettings(m_iPad, eGameSetting_FOV, v);
WCHAR TempString[256];
- swprintf( (WCHAR *)TempString, 256, L"Set fov (%d)", (int)currentValue);
+ swprintf( (WCHAR *)TempString, 256, L"Set fov (%d)", fovDeg);
m_sliderFov.setLabel(TempString);
}
break;
diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp
index 0a76a5e5..eb489f8c 100644
--- a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp
+++ b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp
@@ -49,9 +49,10 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),app.GetGameSettings(m_iPad,eGameSetting_Gamma));
m_sliderGamma.init(TempString,eControl_Gamma,0,100,app.GetGameSettings(m_iPad,eGameSetting_Gamma));
- int initialFov = clampFov((int)(pMinecraft->gameRenderer->GetFovVal() + 0.5f));
- swprintf((WCHAR*)TempString, 256, L"FOV: %d", initialFov);
- m_sliderFOV.init(TempString, eControl_FOV, 0, FOV_SLIDER_MAX, fovToSliderValue((float)initialFov));
+ int initialFovSlider = app.GetGameSettings(m_iPad, eGameSetting_FOV);
+ int initialFovDeg = sliderValueToFov(initialFovSlider);
+ swprintf((WCHAR*)TempString, 256, L"FOV: %d", initialFovDeg);
+ m_sliderFOV.init(TempString, eControl_FOV, 0, FOV_SLIDER_MAX, initialFovSlider);
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_INTERFACEOPACITY ),app.GetGameSettings(m_iPad,eGameSetting_InterfaceOpacity));
m_sliderInterfaceOpacity.init(TempString,eControl_InterfaceOpacity,0,100,app.GetGameSettings(m_iPad,eGameSetting_InterfaceOpacity));
@@ -182,6 +183,7 @@ void UIScene_SettingsGraphicsMenu::handleSliderMove(F64 sliderId, F64 currentVal
Minecraft* pMinecraft = Minecraft::GetInstance();
int fovValue = sliderValueToFov(value);
pMinecraft->gameRenderer->SetFovVal((float)fovValue);
+ app.SetGameSettings(m_iPad, eGameSetting_FOV, value);
WCHAR TempString[256];
swprintf((WCHAR*)TempString, 256, L"FOV: %d", fovValue);
m_sliderFOV.setLabel(TempString);