feat: tu43 parity changes + fixes (#165)

Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/165
This commit is contained in:
Fireblade
2026-08-03 01:08:51 +01:00
205 changed files with 1513 additions and 495 deletions
@@ -2,6 +2,25 @@
#include "UI.h"
#include "UIScene_SettingsOptionsMenu.h"
namespace
{
void FormatAutosaveSliderLabel(WCHAR *buffer, size_t bufferSize, int value, int controlType)
{
const bool fasterAutosave = (controlType == 0 || controlType == 1 || controlType == 4); // windows, xbox one and ps4
if(value == 0)
{
swprintf(buffer, bufferSize, L"%ls", app.GetString(IDS_SLIDER_AUTOSAVE_OFF));
}
else
{
const int displayValue = fasterAutosave ? value : value * 15;
const wstring unitText = (displayValue == 1) ? L"Min" : app.GetString(IDS_MINUTES);
swprintf(buffer, bufferSize, L"%ls: %d %ls", app.GetString(IDS_SLIDER_AUTOSAVE), displayValue, unitText.c_str());
}
}
}
int UIScene_SettingsOptionsMenu::m_iDifficultyTitleSettingA[4]=
{
IDS_DIFFICULTY_TITLE_PEACEFUL,
@@ -65,6 +84,7 @@ void UIScene_SettingsOptionsMenu::tick()
m_multiList.AddNewCheckbox(app.GetString(IDS_VIEW_BOBBING), eControl_ViewBob, (app.GetGameSettings(m_iPad,eGameSetting_ViewBob)!=0));
m_multiList.AddNewCheckbox(app.GetString(IDS_HINTS), eControl_Hints, (app.GetGameSettings(m_iPad,eGameSetting_Hints)!=0));
m_multiList.AddNewCheckbox(app.GetString(IDS_CHECKBOX_DEATH_MESSAGES), eControl_DeathMessages, (app.GetGameSettings(m_iPad,eGameSetting_DeathMessages)!=0));
m_multiList.AddNewCheckbox(L"Passive Chunk Loading", eControl_PassiveChunkLoading, (app.GetGameSettings(m_iPad,eGameSetting_PassiveChunkLoading)!=0));
if(m_bNotInGame)
{
@@ -74,10 +94,7 @@ void UIScene_SettingsOptionsMenu::tick()
WCHAR TempString[256];
int autosaveVal = app.GetGameSettings(m_iPad,eGameSetting_Autosave);
if(autosaveVal == 0)
swprintf(TempString, 256, L"%ls", app.GetString(IDS_SLIDER_AUTOSAVE_OFF));
else
swprintf(TempString, 256, L"%ls: %d %ls", app.GetString(IDS_SLIDER_AUTOSAVE), autosaveVal*15, app.GetString(IDS_MINUTES));
FormatAutosaveSliderLabel(TempString, 256, autosaveVal, app.GetGameSettings(m_iPad, eGameSetting_ControlType));
m_multiList.AddNewSlider(TempString, eControl_Autosave, 0, 8, 1, autosaveVal);
swprintf(TempString, 256, L"%ls: %d%%", app.GetString(IDS_SLIDER_SENSITIVITY_INGAME), app.GetGameSettings(m_iPad,eGameSetting_Sensitivity_InGame));
@@ -115,10 +132,7 @@ void UIScene_SettingsOptionsMenu::tick()
case eControl_Autosave:
app.SetGameSettings(m_iPad, eGameSetting_Autosave, m_iPendingSliderValue);
app.SetAutosaveTimerTime();
if(m_iPendingSliderValue == 0)
swprintf(TempString, 256, L"%ls", app.GetString(IDS_SLIDER_AUTOSAVE_OFF));
else
swprintf(TempString, 256, L"%ls: %d %ls", app.GetString(IDS_SLIDER_AUTOSAVE), m_iPendingSliderValue*15, app.GetString(IDS_MINUTES));
FormatAutosaveSliderLabel(TempString, 256, m_iPendingSliderValue, app.GetGameSettings(m_iPad, eGameSetting_ControlType));
m_multiList.SetSliderLabel(eControl_Autosave, TempString);
break;
case eControl_Sensitivity_InGame:
@@ -233,6 +247,7 @@ void UIScene_SettingsOptionsMenu::setGameSettings()
app.SetGameSettings(m_iPad,eGameSetting_ViewBob,m_multiList.GetCheckboxValue(eControl_ViewBob)?1:0);
app.SetGameSettings(m_iPad,eGameSetting_Hints,m_multiList.GetCheckboxValue(eControl_Hints)?1:0);
app.SetGameSettings(m_iPad,eGameSetting_DeathMessages,m_multiList.GetCheckboxValue(eControl_DeathMessages)?1:0);
app.SetGameSettings(m_iPad,eGameSetting_PassiveChunkLoading,m_multiList.GetCheckboxValue(eControl_PassiveChunkLoading)?1:0);
app.SetGameSettings(m_iPad,eGameSetting_Autosave,m_multiList.GetSliderValue(eControl_Autosave));
app.SetGameSettings(m_iPad,eGameSetting_Sensitivity_InGame,m_multiList.GetSliderValue(eControl_Sensitivity_InGame));
app.SetGameSettings(m_iPad,eGameSetting_Difficulty,m_multiList.GetSliderValue(eControl_Difficulty));