Add Render Distance option. (#675)

* FOV option without debug menu

Now located in Graphics section.

Based on the FOV thing from discord idk

* language

* render distance option for graphics menu

* oop

* swf files on media

* revert changes on language selector

* nvm it was actually easy to fix

* forgot this

* Final probably

Fixed visual bug and made the chunk updates depend to your view distance.
This commit is contained in:
MijaeLio
2026-03-06 20:14:06 -05:00
committed by GitHub
parent 216943716b
commit 16446265d5
13 changed files with 97 additions and 5 deletions

View File

@@ -835,6 +835,7 @@ int CMinecraftApp::SetDefaultOptions(C_4JProfile::PROFILESETTINGS *pSettings,con
{
SetGameSettings(iPad,eGameSetting_MusicVolume,DEFAULT_VOLUME_LEVEL);
SetGameSettings(iPad,eGameSetting_SoundFXVolume,DEFAULT_VOLUME_LEVEL);
SetGameSettings(iPad,eGameSetting_RenderDistance,16);
SetGameSettings(iPad,eGameSetting_Gamma,50);
SetGameSettings(iPad,eGameSetting_FOV,0);
@@ -1330,6 +1331,7 @@ void CMinecraftApp::ApplyGameSettingsChanged(int iPad)
{
ActionGameSettings(iPad,eGameSetting_MusicVolume );
ActionGameSettings(iPad,eGameSetting_SoundFXVolume );
ActionGameSettings(iPad,eGameSetting_RenderDistance );
ActionGameSettings(iPad,eGameSetting_Gamma );
ActionGameSettings(iPad,eGameSetting_FOV );
ActionGameSettings(iPad,eGameSetting_Difficulty );
@@ -1379,6 +1381,15 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal)
pMinecraft->options->set(Options::Option::SOUND,((float)GameSettingsA[iPad]->ucSoundFXVolume)/100.0f);
}
break;
case eGameSetting_RenderDistance:
if(iPad == ProfileManager.GetPrimaryPad())
{
int dist = (GameSettingsA[iPad]->uiBitmaskValues >> 16) & 0xFF;
int level = UIScene_SettingsGraphicsMenu::DistanceToLevel(dist);
pMinecraft->options->set(Options::Option::RENDER_DISTANCE, 3 - level);
}
break;
case eGameSetting_Gamma:
if(iPad==ProfileManager.GetPrimaryPad())
{
@@ -1848,6 +1859,17 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV
GameSettingsA[iPad]->bSettingsChanged=true;
}
break;
case eGameSetting_RenderDistance:
{
unsigned int val = ucVal & 0xFF;
GameSettingsA[iPad]->uiBitmaskValues &= ~(0xFF << 16);
GameSettingsA[iPad]->uiBitmaskValues |= val << 16;
if(iPad == ProfileManager.GetPrimaryPad())
ActionGameSettings(iPad,eVal);
GameSettingsA[iPad]->bSettingsChanged = true;
}
break;
case eGameSetting_Gamma:
if(GameSettingsA[iPad]->ucGamma!=ucVal)
{
@@ -2307,6 +2329,13 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal)
case eGameSetting_SoundFXVolume:
return GameSettingsA[iPad]->ucSoundFXVolume;
break;
case eGameSetting_RenderDistance:
{
int val = (GameSettingsA[iPad]->uiBitmaskValues >> 16) & 0xFF;
if(val == 0) return val = 16; //brain
return val;
break;
}
case eGameSetting_Gamma:
return GameSettingsA[iPad]->ucGamma;
break;