From 9ce4e660914cdb95f73335922c0b17d483599169 Mon Sep 17 00:00:00 2001 From: MijaeLio Date: Fri, 6 Mar 2026 20:07:56 -0500 Subject: [PATCH] Final probably Fixed visual bug and made the chunk updates depend to your view distance. --- Minecraft.Client/Common/Consoles_App.cpp | 61 ++----------------- .../UI/UIScene_SettingsGraphicsMenu.cpp | 16 ++--- .../Common/UI/UIScene_SettingsGraphicsMenu.h | 4 ++ Minecraft.Client/LevelRenderer.cpp | 6 +- 4 files changed, 22 insertions(+), 65 deletions(-) diff --git a/Minecraft.Client/Common/Consoles_App.cpp b/Minecraft.Client/Common/Consoles_App.cpp index 4adfd1660..c109785d6 100644 --- a/Minecraft.Client/Common/Consoles_App.cpp +++ b/Minecraft.Client/Common/Consoles_App.cpp @@ -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 &vecWstrLocales) { vector 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 diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp index 810454806..c208283cb 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp @@ -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) diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.h b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.h index 0a2e43dfa..99022c83f 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.h +++ b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.h @@ -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); }; \ No newline at end of file diff --git a/Minecraft.Client/LevelRenderer.cpp b/Minecraft.Client/LevelRenderer.cpp index 051ad8921..993b8b157 100644 --- a/Minecraft.Client/LevelRenderer.cpp +++ b/Minecraft.Client/LevelRenderer.cpp @@ -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__