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 7dcecdbd4d.
This commit is contained in:
@@ -134,6 +134,7 @@ enum eGameSetting
|
|||||||
eGameSetting_MusicVolume=0,
|
eGameSetting_MusicVolume=0,
|
||||||
eGameSetting_SoundFXVolume,
|
eGameSetting_SoundFXVolume,
|
||||||
eGameSetting_Gamma,
|
eGameSetting_Gamma,
|
||||||
|
eGameSetting_FOV,
|
||||||
eGameSetting_Difficulty,
|
eGameSetting_Difficulty,
|
||||||
eGameSetting_Sensitivity_InGame,
|
eGameSetting_Sensitivity_InGame,
|
||||||
eGameSetting_Sensitivity_InMenu,
|
eGameSetting_Sensitivity_InMenu,
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ typedef struct
|
|||||||
// In-Menu sensitivity
|
// In-Menu sensitivity
|
||||||
unsigned char ucMenuSensitivity;
|
unsigned char ucMenuSensitivity;
|
||||||
unsigned char ucInterfaceOpacity;
|
unsigned char ucInterfaceOpacity;
|
||||||
unsigned char ucPad02;//2 bytes of padding added here
|
unsigned char ucPad02; // 1 byte padding
|
||||||
unsigned char usPad03;
|
unsigned char ucFov;
|
||||||
|
|
||||||
// Adding another bitmask flag for more settings for 1.8.2
|
// Adding another bitmask flag for more settings for 1.8.2
|
||||||
unsigned int uiBitmaskValues; // 0x00000001 - eGameSetting_Clouds - on
|
unsigned int uiBitmaskValues; // 0x00000001 - eGameSetting_Clouds - on
|
||||||
|
|||||||
@@ -836,6 +836,7 @@ int CMinecraftApp::SetDefaultOptions(C_4JProfile::PROFILESETTINGS *pSettings,con
|
|||||||
SetGameSettings(iPad,eGameSetting_MusicVolume,DEFAULT_VOLUME_LEVEL);
|
SetGameSettings(iPad,eGameSetting_MusicVolume,DEFAULT_VOLUME_LEVEL);
|
||||||
SetGameSettings(iPad,eGameSetting_SoundFXVolume,DEFAULT_VOLUME_LEVEL);
|
SetGameSettings(iPad,eGameSetting_SoundFXVolume,DEFAULT_VOLUME_LEVEL);
|
||||||
SetGameSettings(iPad,eGameSetting_Gamma,50);
|
SetGameSettings(iPad,eGameSetting_Gamma,50);
|
||||||
|
SetGameSettings(iPad,eGameSetting_FOV,0);
|
||||||
|
|
||||||
// 4J-PB - Don't reset the difficult level if we're in-game
|
// 4J-PB - Don't reset the difficult level if we're in-game
|
||||||
if(Minecraft::GetInstance()->level==NULL)
|
if(Minecraft::GetInstance()->level==NULL)
|
||||||
@@ -1330,6 +1331,7 @@ void CMinecraftApp::ApplyGameSettingsChanged(int iPad)
|
|||||||
ActionGameSettings(iPad,eGameSetting_MusicVolume );
|
ActionGameSettings(iPad,eGameSetting_MusicVolume );
|
||||||
ActionGameSettings(iPad,eGameSetting_SoundFXVolume );
|
ActionGameSettings(iPad,eGameSetting_SoundFXVolume );
|
||||||
ActionGameSettings(iPad,eGameSetting_Gamma );
|
ActionGameSettings(iPad,eGameSetting_Gamma );
|
||||||
|
ActionGameSettings(iPad,eGameSetting_FOV );
|
||||||
ActionGameSettings(iPad,eGameSetting_Difficulty );
|
ActionGameSettings(iPad,eGameSetting_Difficulty );
|
||||||
ActionGameSettings(iPad,eGameSetting_Sensitivity_InGame );
|
ActionGameSettings(iPad,eGameSetting_Sensitivity_InGame );
|
||||||
ActionGameSettings(iPad,eGameSetting_ViewBob );
|
ActionGameSettings(iPad,eGameSetting_ViewBob );
|
||||||
@@ -1389,6 +1391,14 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case eGameSetting_FOV:
|
||||||
|
if(iPad==ProfileManager.GetPrimaryPad())
|
||||||
|
{
|
||||||
|
float fovDeg = 70.0f + (float)GameSettingsA[iPad]->ucFov * 40.0f / 100.0f;
|
||||||
|
pMinecraft->gameRenderer->SetFovVal(fovDeg);
|
||||||
|
pMinecraft->options->set(Options::Option::FOV, (float)GameSettingsA[iPad]->ucFov / 100.0f);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case eGameSetting_Difficulty:
|
case eGameSetting_Difficulty:
|
||||||
if(iPad==ProfileManager.GetPrimaryPad())
|
if(iPad==ProfileManager.GetPrimaryPad())
|
||||||
@@ -1849,6 +1859,17 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV
|
|||||||
GameSettingsA[iPad]->bSettingsChanged=true;
|
GameSettingsA[iPad]->bSettingsChanged=true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case eGameSetting_FOV:
|
||||||
|
if(GameSettingsA[iPad]->ucFov!=ucVal)
|
||||||
|
{
|
||||||
|
GameSettingsA[iPad]->ucFov=ucVal;
|
||||||
|
if(iPad==ProfileManager.GetPrimaryPad())
|
||||||
|
{
|
||||||
|
ActionGameSettings(iPad,eVal);
|
||||||
|
}
|
||||||
|
GameSettingsA[iPad]->bSettingsChanged=true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case eGameSetting_Difficulty:
|
case eGameSetting_Difficulty:
|
||||||
if((GameSettingsA[iPad]->usBitmaskValues&0x03)!=(ucVal&0x03))
|
if((GameSettingsA[iPad]->usBitmaskValues&0x03)!=(ucVal&0x03))
|
||||||
{
|
{
|
||||||
@@ -2289,6 +2310,9 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal)
|
|||||||
case eGameSetting_Gamma:
|
case eGameSetting_Gamma:
|
||||||
return GameSettingsA[iPad]->ucGamma;
|
return GameSettingsA[iPad]->ucGamma;
|
||||||
break;
|
break;
|
||||||
|
case eGameSetting_FOV:
|
||||||
|
return GameSettingsA[iPad]->ucFov;
|
||||||
|
break;
|
||||||
case eGameSetting_Difficulty:
|
case eGameSetting_Difficulty:
|
||||||
return GameSettingsA[iPad]->usBitmaskValues&0x0003;
|
return GameSettingsA[iPad]->usBitmaskValues&0x0003;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ UIScene_DebugOverlay::UIScene_DebugOverlay(int iPad, void *initData, UILayer *pa
|
|||||||
|
|
||||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
Minecraft *pMinecraft = Minecraft::GetInstance();
|
||||||
WCHAR TempString[256];
|
WCHAR TempString[256];
|
||||||
swprintf( (WCHAR *)TempString, 256, L"Set fov (%d)", (int)pMinecraft->gameRenderer->GetFovVal());
|
int fovSliderVal = app.GetGameSettings(m_iPad, eGameSetting_FOV);
|
||||||
m_sliderFov.init(TempString,eControl_FOV,0,100,(int)pMinecraft->gameRenderer->GetFovVal());
|
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;
|
float currentTime = pMinecraft->level->getLevelData()->getGameTime() % 24000;
|
||||||
swprintf( (WCHAR *)TempString, 256, L"Set time (unsafe) (%d)", (int)currentTime);
|
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:
|
case eControl_FOV:
|
||||||
{
|
{
|
||||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
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];
|
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);
|
m_sliderFov.setLabel(TempString);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -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));
|
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));
|
m_sliderGamma.init(TempString,eControl_Gamma,0,100,app.GetGameSettings(m_iPad,eGameSetting_Gamma));
|
||||||
|
|
||||||
int initialFov = clampFov((int)(pMinecraft->gameRenderer->GetFovVal() + 0.5f));
|
int initialFovSlider = app.GetGameSettings(m_iPad, eGameSetting_FOV);
|
||||||
swprintf((WCHAR*)TempString, 256, L"FOV: %d", initialFov);
|
int initialFovDeg = sliderValueToFov(initialFovSlider);
|
||||||
m_sliderFOV.init(TempString, eControl_FOV, 0, FOV_SLIDER_MAX, fovToSliderValue((float)initialFov));
|
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));
|
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));
|
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();
|
Minecraft* pMinecraft = Minecraft::GetInstance();
|
||||||
int fovValue = sliderValueToFov(value);
|
int fovValue = sliderValueToFov(value);
|
||||||
pMinecraft->gameRenderer->SetFovVal((float)fovValue);
|
pMinecraft->gameRenderer->SetFovVal((float)fovValue);
|
||||||
|
app.SetGameSettings(m_iPad, eGameSetting_FOV, value);
|
||||||
WCHAR TempString[256];
|
WCHAR TempString[256];
|
||||||
swprintf((WCHAR*)TempString, 256, L"FOV: %d", fovValue);
|
swprintf((WCHAR*)TempString, 256, L"FOV: %d", fovValue);
|
||||||
m_sliderFOV.setLabel(TempString);
|
m_sliderFOV.setLabel(TempString);
|
||||||
|
|||||||
Reference in New Issue
Block a user