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:07:56 -05:00
parent c6cb495443
commit 9ce4e66091
4 changed files with 22 additions and 65 deletions

View file

@ -2309,8 +2309,12 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal)
return GameSettingsA[iPad]->ucSoundFXVolume;
break;
case eGameSetting_RenderDistance:
return (GameSettingsA[iPad]->uiBitmaskValues >> 16) & 0xFF;
{
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;
@ -9572,61 +9576,6 @@ void CMinecraftApp::getLocale(vector<wstring> &vecWstrLocales)
{
vector<eMCLang> locales;
#ifdef _WINDOWS64
unsigned char forcedLang = GetMinecraftLanguage(0);
if (forcedLang != MINECRAFT_LANGUAGE_DEFAULT)
{
switch (forcedLang)
{
case MINECRAFT_LANGUAGE_ENGLISH :
locales.push_back(eMCLang_enUS);
break;
case MINECRAFT_LANGUAGE_JAPANESE :
locales.push_back(eMCLang_jaJP);
break;
case MINECRAFT_LANGUAGE_GERMAN :
locales.push_back(eMCLang_deDE);
break;
case MINECRAFT_LANGUAGE_FRENCH :
locales.push_back(eMCLang_frFR);
break;
case MINECRAFT_LANGUAGE_SPANISH :
locales.push_back(eMCLang_esES);
break;
case MINECRAFT_LANGUAGE_LATINAMERICANSPANISH :
locales.push_back(eMCLang_laLAS);
locales.push_back(eMCLang_esMX);
break;
case MINECRAFT_LANGUAGE_ITALIAN :
locales.push_back(eMCLang_itIT);
break;
case MINECRAFT_LANGUAGE_KOREAN :
locales.push_back(eMCLang_koKR);
break;
case MINECRAFT_LANGUAGE_TCHINESE :
locales.push_back(eMCLang_zhCHT);
break;
case MINECRAFT_LANGUAGE_PORTUGUESE :
locales.push_back(eMCLang_ptPT);
break;
case MINECRAFT_LANGUAGE_BRAZILIAN :
locales.push_back(eMCLang_ptBR);
break;
}
}
#endif
DWORD dwSystemLanguage = XGetLanguage( );
// 4J-PB - restrict the 360 language until we're ready to have them in

View file

@ -30,14 +30,14 @@ namespace
if (sliderValue > FOV_SLIDER_MAX) sliderValue = FOV_SLIDER_MAX;
return FOV_MIN + ((sliderValue * (FOV_MAX - FOV_MIN)) / FOV_SLIDER_MAX);
}
}
int LevelToDistance(int level)
{
static const int table[6] = {2,4,8,16,32,64};
if(level < 0) level = 0;
if(level > 5) level = 5;
return table[level];
}
int UIScene_SettingsGraphicsMenu::LevelToDistance(int level)
{
static const int table[6] = {2,4,8,16,32,64};
if(level < 0) level = 0;
if(level > 5) level = 5;
return table[level];
}
int UIScene_SettingsGraphicsMenu::DistanceToLevel(int dist)
@ -47,7 +47,7 @@ int UIScene_SettingsGraphicsMenu::DistanceToLevel(int dist)
if(table[i] == dist)
return i;
}
return 2;
return 3;
}
UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)

View file

@ -1,6 +1,8 @@
#pragma once
#include "UIScene.h"
#include "Common/UI/UIControl_CheckBox.h"
#include "Common/UI/UIControl_Slider.h"
class UIScene_SettingsGraphicsMenu : public UIScene
{
@ -48,5 +50,7 @@ public:
virtual void handleSliderMove(F64 sliderId, F64 currentValue);
static int LevelToDistance(int dist);
static int DistanceToLevel(int dist);
};

View file

@ -61,6 +61,7 @@
#include "..\Minecraft.World\SoundTypes.h"
#include "FrustumCuller.h"
#include "..\Minecraft.World\BasicTypeContainers.h"
#include "Common/UI/UIScene_SettingsGraphicsMenu.h"
//#define DISABLE_SPU_CODE
@ -426,8 +427,11 @@ void LevelRenderer::allChanged(int playerIndex)
Tile::leaves->setFancy(mc->options->fancyGraphics);
lastViewDistance = mc->options->viewDistance;
int realviewDistance = UIScene_SettingsGraphicsMenu::LevelToDistance(3 - mc->options->viewDistance) + 2;
int realrenderArea = (realviewDistance * realviewDistance * 4);
// Calculate size of area we can render based on number of players we need to render for
int dist = (int)sqrtf( (float)PLAYER_RENDER_AREA / (float)activePlayers() );
int dist = (int)sqrtf( (float)realrenderArea / (float)activePlayers() );
// AP - poor little Vita just can't cope with such a big area
#ifdef __PSVITA__