feat: almost accurate XUI settings menu

This commit is contained in:
str1k3r committed 2026-10-04 13:00:44 -04:00
1 parent 1dbf4d2dea
commit b60826eb32
2 files changed
+32 -39

No files matched your search

+31 -38
View File
@@ -19,7 +19,7 @@ int CScene_SettingsAll::m_iDifficultyTitleSettingA[4]=
HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
{
WCHAR TempString[256];
wchar_t TempString[256];
m_iPad=*(int *)pInitData->pvInitData;
bool bNotInGame=(Minecraft::GetInstance()->level==NULL);
bool bPrimaryPlayer = ProfileManager.GetPrimaryPad()==m_iPad;
@@ -31,32 +31,32 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
HXUIOBJ hSlider;
m_SliderA[SLIDER_SETTINGS_MUSIC].SetValue(app.GetGameSettings(m_iPad,eGameSetting_MusicVolume));
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_MUSIC ),app.GetGameSettings(m_iPad,eGameSetting_MusicVolume));
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_MUSIC ), app.GetGameSettings(m_iPad,eGameSetting_MusicVolume));
m_SliderA[SLIDER_SETTINGS_MUSIC].SetText(TempString);
m_SliderA[SLIDER_SETTINGS_SOUND].SetValue(app.GetGameSettings(m_iPad,eGameSetting_SoundFXVolume));
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SOUND ),app.GetGameSettings(m_iPad,eGameSetting_SoundFXVolume));
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SOUND ), app.GetGameSettings(m_iPad,eGameSetting_SoundFXVolume));
m_SliderA[SLIDER_SETTINGS_SOUND].SetText(TempString);
m_SliderA[SLIDER_SETTINGS_GAMMA].SetValue(app.GetGameSettings(m_iPad,eGameSetting_Gamma));
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),app.GetGameSettings(m_iPad,eGameSetting_Gamma));
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ), app.GetGameSettings(m_iPad,eGameSetting_Gamma));
m_SliderA[SLIDER_SETTINGS_GAMMA].SetText(TempString);
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].SetValue(app.GetGameSettings(m_iPad,eGameSetting_Sensitivity));
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SENSITIVITY_INGAME ),app.GetGameSettings(m_iPad,eGameSetting_Sensitivity)); //IDS_SLIDER_SENSITIVITY
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SENSITIVITY_INGAME ), app.GetGameSettings(m_iPad,eGameSetting_Sensitivity)); //IDS_SLIDER_SENSITIVITY
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].SetText(TempString);
m_SplitScreen.SetCheck( (app.GetGameSettings(m_iPad,eGameSetting_SplitScreenVertical)!=0)?TRUE:FALSE);
m_SplitScreen.SetText(app.GetString( IDS_CHECKBOX_VERTICAL_SPLIT_SCREEN ) );
m_SplitScreen.SetCheck((app.GetGameSettings(m_iPad,eGameSetting_SplitScreenVertical)!=0)?TRUE:FALSE);
m_SplitScreen.SetText(app.GetString( IDS_CHECKBOX_VERTICAL_SPLIT_SCREEN ));
m_ViewBob.SetCheck( (app.GetGameSettings(m_iPad,eGameSetting_ViewBob)!=0)?TRUE:FALSE);
m_ViewBob.SetText(app.GetString( IDS_VIEW_BOBBING ) );
m_ViewBob.SetCheck((app.GetGameSettings(m_iPad,eGameSetting_ViewBob)!=0)?TRUE:FALSE);
m_ViewBob.SetText(app.GetString( IDS_VIEW_BOBBING ));
m_VisibleOnMaps.SetCheck( (app.GetGameSettings(m_iPad,eGameSetting_ViewBob)!=0)?TRUE:FALSE); //eGameSetting_VisibleOnMaps
m_VisibleOnMaps.SetText(app.GetString( IDS_OFF ) ); //IDS_VISIBLE_ON_MAPS
m_VisibleOnMaps.SetCheck((app.GetGameSettings(m_iPad,eGameSetting_ViewBob)!=0)?TRUE:FALSE); //eGameSetting_VisibleOnMaps
m_VisibleOnMaps.SetText(app.GetString( IDS_OFF )); //IDS_VISIBLE_ON_MAPS
m_SliderA[SLIDER_SETTINGS_DIFFICULTY].SetValue(app.GetGameSettings(m_iPad,eGameSetting_Difficulty));
swprintf( (WCHAR *)TempString, 256, L"%ls: %ls", app.GetString( IDS_SLIDER_DIFFICULTY ),app.GetString(m_iDifficultyTitleSettingA[app.GetGameSettings(m_iPad,eGameSetting_Difficulty)]));
swprintf(TempString, 256, L"%ls: %ls", app.GetString( IDS_SLIDER_DIFFICULTY ), app.GetString(m_iDifficultyTitleSettingA[app.GetGameSettings(m_iPad,eGameSetting_Difficulty)]));
m_SliderA[SLIDER_SETTINGS_DIFFICULTY].SetText(TempString);
wstring wsText=app.GetString(m_iDifficultySettingA[app.GetGameSettings(m_iPad,eGameSetting_Difficulty)]);
@@ -65,16 +65,14 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
{
size = 12;
}
wchar_t startTags[64];
swprintf(startTags,64,L"<font color=\"#%08x\" size=%d>",app.GetHTMLColour(eHTMLColor_White),size);
wsText= startTags + wsText;
swprintf(TempString, 256, L"<font color=\"#%08x\" size=%d>", app.GetHTMLColour(eHTMLColor_White), size);
wsText= TempString + wsText;
m_DifficultyText.SetText(wsText.c_str());
bool bRemoveDifficulty=false;
bool bRemoveSettings=false;
float fRemoveHeight=0.0f,fWidth,fHeight;
float fMoveUp=0.0f;
if(!bPrimaryPlayer || !bNotInGame)
{
@@ -101,7 +99,6 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
hr=XuiElementGetChildById(m_SliderA[SLIDER_SETTINGS_MUSIC].m_hObj,L"XuiSlider",&hSlider);
XuiElementSetShow(hSlider,FALSE);
XuiControlSetEnable(hSlider,FALSE);
XuiControlSetEnable(hSlider,FALSE);
m_SliderA[SLIDER_SETTINGS_MUSIC].GetBounds(&fWidth,&fHeight);
fRemoveHeight+=fHeight+4.0f; // add padding
@@ -126,9 +123,6 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
// SPLITSCREEN
m_SplitScreen.SetShow(FALSE);
m_SplitScreen.SetEnable(FALSE);
m_SplitScreen.GetBounds(&fWidth, &fHeight);
fRemoveHeight+=fCheckboxHeight;
fMoveUp+=fCheckboxHeight;
}
if(bRemoveDifficulty)
@@ -140,7 +134,7 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
XuiElementSetShow(hSlider,FALSE);
XuiControlSetEnable(hSlider,FALSE);
m_SliderA[SLIDER_SETTINGS_DIFFICULTY].GetBounds(&fWidth,&fHeight);
fRemoveHeight+=fHeight+4.0f;
if (!bPrimaryPlayer) fRemoveHeight+=fHeight; //str1k3r - dont add this for the primary player or it causes a bug, and dont add padding
}
else
{
@@ -150,7 +144,7 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
{
size = 12;
}
swprintf(TempString,64,L"<font color=\"#%08x\" size=%d>",app.GetHTMLColour(eHTMLColor_White),size);
swprintf(TempString, 256, L"<font color=\"#%08x\" size=%d>", app.GetHTMLColour(eHTMLColor_White), size);
wsText= TempString + wsText;
m_DifficultyText.SetText(wsText.c_str());
@@ -161,22 +155,22 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
D3DXVECTOR3 vec;
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].GetPosition(&vec);
vec.y-=fMoveUp;
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].GetBounds(&fWidth,&fHeight);
vec.y-=fRemoveHeight-fHeight;
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].SetPosition(&vec);
m_DifficultyText.GetPosition(&vec);
vec.y-=fMoveUp;
vec.y-=fRemoveHeight;
m_DifficultyText.SetPosition(&vec);
m_ViewBob.GetPosition(&vec);
vec.y-=fMoveUp;
vec.y-=fRemoveHeight;
m_ViewBob.SetPosition(&vec);
m_VisibleOnMaps.GetPosition(&vec);
vec.y-=fMoveUp;
vec.y-=fRemoveHeight;
m_VisibleOnMaps.SetPosition(&vec);
float fbgnWidth, fBgnHeight;
GetBounds(&fbgnWidth, &fBgnHeight);
fBgnHeight-=fRemoveHeight;
SetBounds(fbgnWidth, fBgnHeight);
SetBounds(fbgnWidth, fBgnHeight - fRemoveHeight);
}
// if we're not in the game, we need to use basescene 0
@@ -229,36 +223,36 @@ HRESULT CScene_SettingsAll::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
HRESULT CScene_SettingsAll::OnNotifyValueChanged( HXUIOBJ hObjSource, XUINotifyValueChanged* pNotifyValueChanged, BOOL& bHandled )
{
WCHAR TempString[256];
wchar_t TempString[256];
if(hObjSource==m_SliderA[SLIDER_SETTINGS_MUSIC].GetSlider() )
{
app.SetGameSettings(m_iPad,eGameSetting_MusicVolume,pNotifyValueChanged->nValue);
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_MUSIC ),pNotifyValueChanged->nValue);
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_MUSIC ),pNotifyValueChanged->nValue);
m_SliderA[SLIDER_SETTINGS_MUSIC].SetText(TempString);
}
else if(hObjSource==m_SliderA[SLIDER_SETTINGS_SOUND].GetSlider() )
{
app.SetGameSettings(m_iPad,eGameSetting_SoundFXVolume,pNotifyValueChanged->nValue);
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SOUND ),pNotifyValueChanged->nValue);
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SOUND ),pNotifyValueChanged->nValue);
m_SliderA[SLIDER_SETTINGS_SOUND].SetText(TempString);
}
if(hObjSource==m_SliderA[SLIDER_SETTINGS_GAMMA].GetSlider() )
{
app.SetGameSettings(m_iPad,eGameSetting_Gamma,pNotifyValueChanged->nValue);
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),pNotifyValueChanged->nValue);
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),pNotifyValueChanged->nValue);
m_SliderA[SLIDER_SETTINGS_GAMMA].SetText(TempString);
}
if(hObjSource==m_SliderA[SLIDER_SETTINGS_SENSITIVITY].GetSlider() )
{
app.SetGameSettings(m_iPad,eGameSetting_Sensitivity,pNotifyValueChanged->nValue);
swprintf( (WCHAR *)TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SENSITIVITY_INGAME ),pNotifyValueChanged->nValue); //IDS_SLIDER_SENSITIVITY
swprintf(TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_SENSITIVITY_INGAME ),pNotifyValueChanged->nValue); //IDS_SLIDER_SENSITIVITY
m_SliderA[SLIDER_SETTINGS_SENSITIVITY].SetText(TempString);
}
else if(hObjSource==m_SliderA[SLIDER_SETTINGS_DIFFICULTY].GetSlider() )
{
app.SetGameSettings(m_iPad,eGameSetting_Difficulty,pNotifyValueChanged->nValue);
swprintf( (WCHAR *)TempString, 256, L"%ls: %ls", app.GetString( IDS_SLIDER_DIFFICULTY ),app.GetString(m_iDifficultyTitleSettingA[pNotifyValueChanged->nValue]));
swprintf(TempString, 256, L"%ls: %ls", app.GetString( IDS_SLIDER_DIFFICULTY ),app.GetString(m_iDifficultyTitleSettingA[pNotifyValueChanged->nValue]));
m_SliderA[SLIDER_SETTINGS_DIFFICULTY].SetText(TempString);
wstring wsText=app.GetString(m_iDifficultySettingA[pNotifyValueChanged->nValue]);
@@ -267,9 +261,8 @@ HRESULT CScene_SettingsAll::OnNotifyValueChanged( HXUIOBJ hObjSource, XUINotifyV
{
size = 12;
}
wchar_t startTags[64];
swprintf(startTags,64,L"<font color=\"#%08x\" size=%d>",app.GetHTMLColour(eHTMLColor_White),size);
wsText= startTags + wsText;
swprintf(TempString, 256, L"<font color=\"#%08x\" size=%d>", app.GetHTMLColour(eHTMLColor_White), size);
wsText= TempString + wsText;
m_DifficultyText.SetText(wsText.c_str());
}
return S_OK;
@@ -334,7 +327,7 @@ HRESULT CScene_SettingsAll::OnTransitionStart( XUIMessageTransition *pTransition
float fMaxTextLen=0.0f;
float fMaxLen=0.0f;
HXUIOBJ hSlider,hVisual,hText,hCheckboxText;
HXUIOBJ hSlider,hVisual,hText;
XUIRect xuiRect;
float fWidth,fHeight;
D3DXVECTOR3 vec,vSlider,vecCheckboxText,vecCheckbox;
+1 -1
View File
@@ -958,7 +958,7 @@
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
<AdditionalDependencies>xavatar2.lib;xapilibi.lib;d3d9i.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3.lib;x3daudio.lib;xmcore.lib;vcomp.lib;xuirun.lib;xuirender.lib;xuihtml.lib;xonline.lib;xhv2.lib;qnetxaudio2.lib;xparty.lib;xbox\4JLibs\libs\4J_Input_r.lib;xbox\4JLibs\libs\4J_Storage_r.lib;xbox\4JLibs\libs\4J_Profile_r.lib;xbox\4JLibs\libs\4J_Render.lib;..\Minecraft.World\Release\Minecraft.World.lib;xbdm.lib;xsocialpost.lib;xrnm.lib;xbox\Sentient\libs\SenCore.lib;xbox\Sentient\libs\SenNews.lib;xbox\Sentient\libs\SenUGC.lib;xbox\Sentient\libs\SenBoxArt.lib;NuiApi.lib;ST.lib;NuiFitnessApi.lib;NuiHandles.lib;NuiSpeech.lib;NuiAudio.lib;xhttp.lib;xauth.lib;xgetserviceendpoint.lib;xav.lib;xjson.lib;xbox\4JLibs\libs\4J_XTMS_r.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>xavatar2.lib;xapilibi.lib;d3d9i.lib;d3dx9.lib;xgraphics.lib;xboxkrnl.lib;xnet.lib;xaudio2.lib;xact3.lib;x3daudio.lib;xmcore.lib;vcomp.lib;xuirun.lib;xuirender.lib;xuihtml.lib;xonline.lib;xhv2.lib;qnetxaudio2.lib;xparty.lib;xbox\4JLibs\libs\4J_Input_r.lib;xbox\4JLibs\libs\4J_Storage_r.lib;xbox\4JLibs\libs\4J_Profile_r.lib;xbox\4JLibs\libs\4J_Render.lib;..\Minecraft.World\Build\X360_$(Configuration)\Minecraft.World.lib;xbdm.lib;xsocialpost.lib;xrnm.lib;xbox\Sentient\libs\SenCore.lib;xbox\Sentient\libs\SenNews.lib;xbox\Sentient\libs\SenUGC.lib;xbox\Sentient\libs\SenBoxArt.lib;NuiApi.lib;ST.lib;NuiFitnessApi.lib;NuiHandles.lib;NuiSpeech.lib;NuiAudio.lib;xhttp.lib;xauth.lib;xgetserviceendpoint.lib;xav.lib;xjson.lib;xbox\4JLibs\libs\4J_XTMS_r.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>xapilib.lib</IgnoreSpecificDefaultLibraries>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>false</EnableCOMDATFolding>