Menu Progress

LaunchMoreOptionsMenu and SettingsGraphicsMenu works now.
Change seed dont work.
Label update for sliders dont work.
InGameHostOptionsMenu is disabled for now.
This commit is contained in:
GabsPuNs
2026-05-22 23:48:03 -04:00
parent d8d80c3ec4
commit 3bfd7d9bde
10 changed files with 228 additions and 195 deletions

View File

@@ -28,6 +28,9 @@ public:
void removeItem(int index);
void SetItemLabel(int index, UIString label, bool applyImmediately);
const wchar_t* GetItemLabel(int index);
int getItemCount();
void setCurrentSelection(int iSelection);

View File

@@ -139,7 +139,7 @@ void UIControl_MultiList::AddNewTextInput(UIString label, int id)
value[1].type = IGGY_DATATYPE_number;
value[1].number = id;
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_initFunc, 2, value);
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcAddNewItemTextInput, 2, value);
UIControl_List::addElement(UIControl::eTextInput, id);
}
@@ -190,8 +190,9 @@ bool UIControl_MultiList::GetCheckboxValue(int index)
value[0].type = IGGY_DATATYPE_number;
value[0].number = UIControl_List::getListIndex(index);
IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcGetCheckBox, 1, value);
return result.boolval == 1;
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcGetCheckBox, 1, value);
return result.boolval;
}
void UIControl_MultiList::SetSliderValue(int index, int value2, bool applyImmediately)
@@ -235,7 +236,7 @@ int UIControl_MultiList::GetSliderValue(int index)
value[0].type = IGGY_DATATYPE_number;
value[0].number = UIControl_List::getListIndex(index);
IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcGetSliderValue, 1, value);
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcGetSliderValue, 1, value);
return result.number;
}

View File

@@ -78,6 +78,61 @@ void UIControl_List::removeItem(int index)
--m_itemCount;
}
void UIControl_List::SetItemLabel(int index, UIString label, bool applyImmediately)
{
/*
if (applyImmediately)
{
*/
int listIndex = getListIndex(index);
IggyDataValue result;
IggyDataValue value[2];
value[0].type = IGGY_DATATYPE_number;
value[0].number = listIndex;
value[1].type = IGGY_DATATYPE_string_UTF16;
IggyStringUTF16 stringVal;
stringVal.string = (IggyUTF16*)label.c_str();
stringVal.length = label.length();
value[1].string16 = stringVal;
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcSetItemLabel, 2, value);
/*
}
else
{
UIControl_List::GenericPendingUpdate* update = new UIControl_List::GenericPendingUpdate();
update->itemIndex = index;
update->control = this;
update->value2 = value2;
m_pendingUpdates.push_back(update);
}
*/
}
const wchar_t* UIControl_List::GetItemLabel(int index)
{
int listIndex = getListIndex(index);
IggyDataValue result;
IggyDataValue value[1];
value[0].type = IGGY_DATATYPE_number;
value[0].number = listIndex;
auto out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcGetItemLabel, 1, value);
if (result.type == IGGY_DATATYPE_string_UTF16)
m_label = wstring((wchar_t *)result.string16.string, result.string16.length);
return m_label.c_str();
}
int UIControl_List::getItemCount()
{
return m_itemCount;
@@ -141,16 +196,22 @@ bool UIControl_List::CanTouchTrigger(S32 iX, S32 iY)
void UIControl_List::addElement(eUIControlType type, int index)
{
//if (index < 0) index = m_elementCount;
/*
if (index < 0) index = m_elementCount;
//m_elementCount++;
m_elementCount++;
//UIControl::setControlType(type);
//m_elements.push_back(index);
m_elementTypes[index] = type;
m_elementActiveStates[index] = true;
m_elementIds.push_back(index);
return index;
*/
}
int UIControl_List::getListIndex(int id)
{
/*
for (auto it = m_list.begin(); it != m_list.end(); ++it)
{
if (*it == id)
@@ -158,4 +219,7 @@ int UIControl_List::getListIndex(int id)
}
return -1;
*/
// Temp Fix
return id;
}

View File

@@ -1258,7 +1258,7 @@ void UIScene::externalCallback(IggyExternalFunctionCallUTF16 * call)
else if(call->num_arguments == 3)
{
if (call->arguments[0].type == IGGY_DATATYPE_number && call->arguments[1].type == IGGY_DATATYPE_number && call->arguments[2].type == IGGY_DATATYPE_boolean)
return handleCheckboxToggled(call->arguments[0].number, call->arguments[2].boolval); //call->arguments[1].number
return handleCheckboxElementToggled(call->arguments[0].number, call->arguments[1].number, call->arguments[2].boolval);
}
else
{
@@ -1284,8 +1284,8 @@ void UIScene::externalCallback(IggyExternalFunctionCallUTF16 * call)
}
else if(call->num_arguments == 3)
{
if (call->arguments[0].type == IGGY_DATATYPE_number && call->arguments[1].type == IGGY_DATATYPE_number)
return handleSliderMove(call->arguments[0].number, call->arguments[1].number);
if (call->arguments[0].type == IGGY_DATATYPE_number && call->arguments[1].type == IGGY_DATATYPE_number && call->arguments[2].type == IGGY_DATATYPE_number)
return handleSliderElementMove(call->arguments[0].number, call->arguments[1].number, call->arguments[2].number);
}
else
{

View File

@@ -245,9 +245,9 @@ protected:
virtual void handlePress(F64 controlId, F64 childId) {}
virtual void handleFocusChange(F64 controlId, F64 childId) {}
virtual void handleInitFocus(F64 controlId, F64 childId) {}
virtual void handleCheckboxElementToggled(F64 controlId, F64 idk, bool selected) {}
virtual void handleCheckboxElementToggled(F64 controlId, F64 checkboxid, bool checked) {}
virtual void handleCheckboxToggled(F64 controlId, bool selected) {}
virtual void handleSliderElementMove(F64 sliderId, F64 currentValue, F64 idk) {}
virtual void handleSliderElementMove(F64 controlId, F64 sliderId, F64 currentValue) {}
virtual void handleSliderMove(F64 sliderId, F64 currentValue) {}
virtual void handleAnimationEnd() {}
virtual void handleSelectionChanged(F64 selectedId) {}

View File

@@ -48,7 +48,7 @@ void UIScene_InGameHostOptionsMenu::Init()
m_hostOptionsList.AddNewSlider(TempString, eControl_Difficulty, 0, 3, app.GetGameSettings(m_iPad, eGameSetting_Difficulty));
swprintf_s(TempString, 256, L"Game Mode: %ls", app.GetString(m_iGamemodeTitleSetting[0]));
m_hostOptionsList.AddNewSlider(TempString, eControl_GameType, 0, 2, 0);
m_hostOptionsList.AddNewSlider(TempString, eControl_GameType, 0, 2, app.GetGameHostOption(eGameHostOption_GameType));
m_hostOptionsList.AddNewButton(L"Set World Spawn Point", eControl_PlayerPermissions);
@@ -113,31 +113,7 @@ void UIScene_InGameHostOptionsMenu::updateTooltips()
void UIScene_InGameHostOptionsMenu::handleReload()
{
UIScene::handleReload();
/*
// If cheats are disabled, remove checkboxes
if (!app.GetGameHostOption(eGameHostOption_CheatsEnabled))
{
removeControl(&m_checkboxMobGriefing, true);
removeControl(&m_checkboxKeepInventory, true);
removeControl(&m_checkboxDoMobSpawning, true);
removeControl(&m_checkboxDoDaylightCycle, true);
}
*/
INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad );
if (!localPlayer)
return;
unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId());
const bool canTeleport = app.GetGameHostOption(eGameHostOption_CheatsEnabled) && Player::getPlayerGamePrivilege(privs, Player::ePlayerGamePrivilege_CanTeleport) && g_NetworkManager.GetPlayerCount() > 1;
if(!canTeleport)
{
//removeControl(&m_buttonTeleportToPlayer, true);
//removeControl(&m_buttonTeleportToMe, true);
}
Init();
}
void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
@@ -148,33 +124,64 @@ void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat,
case ACTION_MENU_CANCEL:
if(pressed)
{
//Disable this for now
/*
unsigned int hostOptions = app.GetGameHostOption(eGameHostOption_All);
app.SetGameHostOption(hostOptions, eGameHostOption_FireSpreads, m_checkboxFireSpreads.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_TNT, m_checkboxTNT.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_DoMobLoot, m_checkboxDoMobLoot.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_DoTileDrops, m_checkboxDoTileDrops.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_NaturalRegeneration, m_checkboxNaturalRegeneration.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_FireSpreads, m_hostOptionsList.GetCheckboxValue(eControl_FireSpreads));
app.SetGameHostOption(hostOptions, eGameHostOption_TNT, m_hostOptionsList.GetCheckboxValue(eControl_TNT));
app.SetGameHostOption(hostOptions, eGameHostOption_DoMobLoot, m_hostOptionsList.GetCheckboxValue(eControl_DoMobLoot));
app.SetGameHostOption(hostOptions, eGameHostOption_DoTileDrops, m_hostOptionsList.GetCheckboxValue(eControl_DoTileDrops));
app.SetGameHostOption(hostOptions, eGameHostOption_NaturalRegeneration, m_hostOptionsList.GetCheckboxValue(eControl_NaturalRegeneration));
// If cheats are enabled, set cheat values
if (app.GetGameHostOption(eGameHostOption_CheatsEnabled))
{
app.SetGameHostOption(hostOptions, eGameHostOption_MobGriefing, m_checkboxMobGriefing.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_KeepInventory, m_checkboxKeepInventory.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_DoMobSpawning, m_checkboxDoMobSpawning.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_DoDaylightCycle, m_checkboxDoDaylightCycle.IsChecked());
app.SetGameHostOption(hostOptions, eGameHostOption_MobGriefing, m_hostOptionsList.GetCheckboxValue(eControl_MobGriefing));
app.SetGameHostOption(hostOptions, eGameHostOption_KeepInventory, m_hostOptionsList.GetCheckboxValue(eControl_KeepInventory));
app.SetGameHostOption(hostOptions, eGameHostOption_DoMobSpawning, m_hostOptionsList.GetCheckboxValue(eControl_DoMobSpawning));
//app.SetGameHostOption(hostOptions, eGameHostOption_DoDaylightCycle, m_hostOptionsList.GetCheckboxValue(eControl_DoDayLightCycle));
auto pMinecraft = Minecraft::GetInstance();
auto localPlayer = pMinecraft->localplayers[m_iPad];
int oldDifficulty = app.GetGameSettings(m_iPad, eGameSetting_Difficulty);
int newDifficulty = m_hostOptionsList.GetSliderValue(eControl_Difficulty);
if (oldDifficulty != newDifficulty && localPlayer && localPlayer->connection)
{
//GameDifficultyCommand packet(newDifficulty);
//localPlayer->connection->send(packet);
}
int oldGameMode = app.GetGameHostOption(eGameHostOption_GameType);
int newGameMode = m_hostOptionsList.GetSliderValue(eControl_GameType);
if (oldGameMode != newGameMode && localPlayer && localPlayer->connection)
{
//DefaultGameModeCommand packet(newGameMode);
//localPlayer->connection->send(packet);
}
auto level = pMinecraft->getLevel(0);
if (level)
{
int oldWeather = level->getWeatherState();
int newWeather = m_hostOptionsList.GetSliderValue(eControl_Weather);
if (oldWeather != newWeather && localPlayer && localPlayer->connection)
{
//WeatherCommand packet(newWeather);
//localPlayer->connection->send(packet);
}
}
}
// Send update settings packet to server
if(hostOptions != app.GetGameHostOption(eGameHostOption_All) )
{
Minecraft *pMinecraft = Minecraft::GetInstance();
shared_ptr<MultiplayerLocalPlayer> player = pMinecraft->localplayers[m_iPad];
if(player->connection)
player->connection->send(std::make_shared<ServerSettingsChangedPacket>(ServerSettingsChangedPacket::HOST_IN_GAME_SETTINGS, hostOptions));
auto *pMinecraft = Minecraft::GetInstance();
auto localPlayer = pMinecraft->localplayers[m_iPad];
if(localPlayer->connection)
localPlayer->connection->send(std::make_shared<ServerSettingsChangedPacket>(ServerSettingsChangedPacket::HOST_IN_GAME_SETTINGS, hostOptions));
}
*/
navigateBack();
handled = true;
@@ -198,7 +205,7 @@ void UIScene_InGameHostOptionsMenu::handlePress(F64 controlId, F64 childId)
auto *initData = new TeleportMenuInitData();
initData->iPad = m_iPad;
initData->teleportToPlayer = false;
if( static_cast<int>(controlId) == eControl_TeleportToPlayer )
if( static_cast<int>(childId) == eControl_TeleportToPlayer )
initData->teleportToPlayer = true;
ui.NavigateToScene(m_iPad,eUIScene_TeleportMenu,(void*)initData);

View File

@@ -81,28 +81,7 @@ UIScene_LaunchMoreOptionsMenu::UIScene_LaunchMoreOptionsMenu(int iPad, void *ini
m_bUpdateCheats = false;
// Update cheat checkboxes
UpdateCheats();
/*
m_checkboxes[eLaunchCheckbox_Online].init(app.GetString(IDS_ONLINE_GAME),eLaunchCheckbox_Online,bOnlineGame);
m_checkboxes[eLaunchCheckbox_InviteOnly].init(app.GetString(IDS_INVITE_ONLY),eLaunchCheckbox_InviteOnly,bInviteOnly);
m_checkboxes[eLaunchCheckbox_AllowFoF].init(app.GetString(IDS_ALLOWFRIENDSOFFRIENDS),eLaunchCheckbox_AllowFoF,bAllowFriendsOfFriends);
m_checkboxes[eLaunchCheckbox_PVP].init(app.GetString(IDS_PLAYER_VS_PLAYER),eLaunchCheckbox_PVP,m_params->bPVP);
m_checkboxes[eLaunchCheckbox_TrustSystem].init(app.GetString(IDS_TRUST_PLAYERS),eLaunchCheckbox_TrustSystem,m_params->bTrust);
m_checkboxes[eLaunchCheckbox_FireSpreads].init(app.GetString(IDS_FIRE_SPREADS),eLaunchCheckbox_FireSpreads,m_params->bFireSpreads);
m_checkboxes[eLaunchCheckbox_TNT].init(app.GetString(IDS_TNT_EXPLODES),eLaunchCheckbox_TNT,m_params->bTNT);
m_checkboxes[eLaunchCheckbox_HostPrivileges].init(app.GetString(IDS_HOST_PRIVILEGES),eLaunchCheckbox_HostPrivileges,m_params->bHostPrivileges);
m_checkboxes[eLaunchCheckbox_ResetNether].init(app.GetString(IDS_RESET_NETHER),eLaunchCheckbox_ResetNether,m_params->bResetNether);
m_checkboxes[eLaunchCheckbox_Structures].init(app.GetString(IDS_GENERATE_STRUCTURES),eLaunchCheckbox_Structures,m_params->bStructures);
m_checkboxes[eLaunchCheckbox_FlatWorld].init(app.GetString(IDS_SUPERFLAT_WORLD),eLaunchCheckbox_FlatWorld,m_params->bFlatWorld);
m_checkboxes[eLaunchCheckbox_BonusChest].init(app.GetString(IDS_BONUS_CHEST),eLaunchCheckbox_BonusChest,m_params->bBonusChest);
m_checkboxes[eLaunchCheckbox_KeepInventory].init(app.GetString(IDS_KEEP_INVENTORY), eLaunchCheckbox_KeepInventory, m_params->bKeepInventory);
m_checkboxes[eLaunchCheckbox_MobSpawning].init(app.GetString(IDS_MOB_SPAWNING), eLaunchCheckbox_MobSpawning, m_params->bDoMobSpawning);
m_checkboxes[eLaunchCheckbox_MobLoot].init(app.GetString(IDS_MOB_LOOT), eLaunchCheckbox_MobLoot, m_params->bDoMobLoot);
m_checkboxes[eLaunchCheckbox_MobGriefing].init(app.GetString(IDS_MOB_GRIEFING), eLaunchCheckbox_MobGriefing, m_params->bMobGriefing);
m_checkboxes[eLaunchCheckbox_TileDrops].init(app.GetString(IDS_TILE_DROPS), eLaunchCheckbox_TileDrops, m_params->bDoTileDrops);
m_checkboxes[eLaunchCheckbox_NaturalRegeneration].init(app.GetString(IDS_NATURAL_REGEN), eLaunchCheckbox_NaturalRegeneration, m_params->bNaturalRegeneration);
m_checkboxes[eLaunchCheckbox_DayLightCycle].init(app.GetString(IDS_DAYLIGHT_CYCLE), eLaunchCheckbox_DayLightCycle, m_params->bDoDaylightCycle);
*/
m_labelGameOptions.init(app.GetString(IDS_GAME_OPTIONS));
m_worldOptionsList.AddNewLabel(app.GetString(IDS_CREATE_NEW_WORLD_SEED));
@@ -119,12 +98,25 @@ UIScene_LaunchMoreOptionsMenu::UIScene_LaunchMoreOptionsMenu(int iPad, void *ini
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_SUPERFLAT_WORLD), eLaunchCheckbox_FlatWorld, m_params->bFlatWorld);
m_worldOptionsList.AddNewButton(L"Customize Superflat", 22);
//m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_RESET_NETHER), eLaunchCheckbox_ResetNether, m_params->bResetNether);
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_RESET_NETHER), eLaunchCheckbox_ResetNether, m_params->bResetNether);
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_DISABLE_SAVING), eLaunchCheckbox_DisableSaving, m_params->bDisableSaving);
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_TRUST_PLAYERS), eLaunchCheckbox_TrustSystem, m_params->bTrust);
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_FIRE_SPREADS), eLaunchCheckbox_FireSpreads, m_params->bFireSpreads);
m_worldOptionsList.AddNewCheckbox(app.GetString(IDS_TNT_EXPLODES), eLaunchCheckbox_TNT, m_params->bTNT);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_ONLINE_GAME), eLaunchCheckbox_Online, bOnlineGame);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_INVITE_ONLY), eLaunchCheckbox_InviteOnly, bInviteOnly);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_ALLOWFRIENDSOFFRIENDS), eLaunchCheckbox_AllowFoF, bAllowFriendsOfFriends);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_PLAYER_VS_PLAYER), eLaunchCheckbox_PVP, m_params->bPVP);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_HOST_PRIVILEGES), eLaunchCheckbox_HostPrivileges, m_params->bHostPrivileges);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_DAYLIGHT_CYCLE), eLaunchCheckbox_DayLightCycle, m_params->bDoDaylightCycle);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_KEEP_INVENTORY), eLaunchCheckbox_KeepInventory, m_params->bKeepInventory);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_MOB_SPAWNING), eLaunchCheckbox_MobSpawning, m_params->bDoMobSpawning);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_MOB_GRIEFING), eLaunchCheckbox_MobGriefing, m_params->bMobGriefing);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_MOB_LOOT), eLaunchCheckbox_MobLoot, m_params->bDoMobLoot);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_TILE_DROPS), eLaunchCheckbox_TileDrops, m_params->bDoTileDrops);
m_gameOptionsList.AddNewCheckbox(app.GetString(IDS_NATURAL_REGEN), eLaunchCheckbox_NaturalRegeneration, m_params->bNaturalRegeneration);
/*
#ifdef _LARGE_WORLDS
m_labelWorldSize.init(app.GetString(IDS_WORLD_SIZE));
@@ -251,11 +243,8 @@ void UIScene_LaunchMoreOptionsMenu::handleDestroy()
void UIScene_LaunchMoreOptionsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
{
if(m_bIgnoreInput) return;
#ifdef _WINDOWS64
if (isDirectEditBlocking()) return;
#endif
//app.DebugPrintf("UIScene_DebugOverlay handling input for pad %d, key %d, down- %s, pressed- %s, released- %s\n", iPad, key, down?"TRUE":"FALSE", pressed?"TRUE":"FALSE", released?"TRUE":"FALSE");
ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released);
switch(key)
@@ -303,78 +292,76 @@ UIControl* UIScene_LaunchMoreOptionsMenu::GetMainPanel()
}
#endif
void UIScene_LaunchMoreOptionsMenu::handleCheckboxElementToggled(F64 controlId, F64 idk, bool selected)
void UIScene_LaunchMoreOptionsMenu::handleCheckboxElementToggled(F64 controlId, F64 checkboxid, bool checked)
{
//CD - Added for audio
ui.PlayUISFX(eSFX_Press);
switch(static_cast<EControls>((int)controlId))
switch(static_cast<int>(checkboxid))
{
case eLaunchCheckbox_Online:
m_params->bOnlineGame = selected;
m_params->bOnlineGame = checked;
m_bUpdateOnline = true;
break;
case eLaunchCheckbox_InviteOnly:
m_params->bInviteOnly = selected;
m_params->bInviteOnly = checked;
break;
case eLaunchCheckbox_AllowFoF:
m_params->bAllowFriendsOfFriends = selected;
m_params->bAllowFriendsOfFriends = checked;
break;
case eLaunchCheckbox_PVP:
m_params->bPVP = selected;
m_params->bPVP = checked;
break;
case eLaunchCheckbox_TrustSystem:
m_params->bTrust = selected;
m_params->bTrust = checked;
break;
case eLaunchCheckbox_FireSpreads:
m_params->bFireSpreads = selected;
m_params->bFireSpreads = checked;
break;
case eLaunchCheckbox_TNT:
m_params->bTNT = selected;
m_params->bTNT = checked;
break;
case eLaunchCheckbox_HostPrivileges:
m_params->bHostPrivileges = selected;
m_params->bHostPrivileges = checked;
m_bUpdateCheats = true;
break;
case eLaunchCheckbox_ResetNether:
m_params->bResetNether = selected;
m_params->bResetNether = checked;
break;
case eLaunchCheckbox_Structures:
m_params->bStructures = selected;
m_params->bStructures = checked;
break;
case eLaunchCheckbox_FlatWorld:
m_params->bFlatWorld = selected;
m_params->bFlatWorld = checked;
break;
case eLaunchCheckbox_BonusChest:
m_params->bBonusChest = selected;
m_params->bBonusChest = checked;
break;
#ifdef _LARGE_WORLDS
case eLaunchCheckbox_DisableSaving:
m_params->bDisableSaving = selected;
m_params->bDisableSaving = checked;
break;
case eLaunchCheckbox_WorldResizeType:
m_params->newWorldSizeOverwriteEdges = selected;
m_params->newWorldSizeOverwriteEdges = checked;
break;
#endif
case eLaunchCheckbox_KeepInventory:
m_params->bKeepInventory = selected;
m_params->bKeepInventory = checked;
break;
case eLaunchCheckbox_MobSpawning:
m_params->bDoMobSpawning = selected;
m_params->bDoMobSpawning = checked;
break;
case eLaunchCheckbox_MobLoot:
m_params->bDoMobLoot = selected;
m_params->bDoMobLoot = checked;
case eLaunchCheckbox_MobGriefing:
m_params->bMobGriefing = selected;
m_params->bMobGriefing = checked;
break;
case eLaunchCheckbox_TileDrops:
m_params->bDoTileDrops = selected;
m_params->bDoTileDrops = checked;
break;
case eLaunchCheckbox_NaturalRegeneration:
m_params->bNaturalRegeneration = selected;
m_params->bNaturalRegeneration = checked;
break;
case eLaunchCheckbox_DayLightCycle:
m_params->bDoDaylightCycle = selected;
m_params->bDoDaylightCycle = checked;
break;
};
}
@@ -382,7 +369,7 @@ void UIScene_LaunchMoreOptionsMenu::handleCheckboxElementToggled(F64 controlId,
void UIScene_LaunchMoreOptionsMenu::handleFocusChange(F64 controlId, F64 childId)
{
int stringId = 0;
switch(static_cast<int>(controlId))
switch(static_cast<int>(childId))
{
case eLaunchCheckbox_Online:
stringId = IDS_GAMEOPTION_ONLINE;
@@ -444,7 +431,6 @@ void UIScene_LaunchMoreOptionsMenu::handleFocusChange(F64 controlId, F64 childId
case eControl_EditSeed:
stringId = IDS_GAMEOPTION_SEED;
break;
#ifdef _LARGE_WORLDS
case eControl_WorldSize:
stringId = IDS_GAMEOPTION_WORLD_SIZE;
break;
@@ -457,14 +443,13 @@ void UIScene_LaunchMoreOptionsMenu::handleFocusChange(F64 controlId, F64 childId
case eLaunchCheckbox_WorldResizeType:
stringId = IDS_GAMEOPTION_INCREASE_WORLD_SIZE_OVERWRITE_EDGES;
break;
#endif
};
UpdateDescriptionText(stringId);
}
/*
void UIScene_LaunchMoreOptionsMenu::handleGainFocus(F64 controlId, F64 childId)
void UIScene_LaunchMoreOptionsMenu::handleGainFocus(int stringId)
{
UpdateDescriptionText(stringId);
}
@@ -535,28 +520,24 @@ void UIScene_LaunchMoreOptionsMenu::handlePress(F64 controlId, F64 childId)
}
void UIScene_LaunchMoreOptionsMenu::handleSliderElementMove(F64 sliderId, F64 currentValue, F64 idk)
void UIScene_LaunchMoreOptionsMenu::handleSliderElementMove(F64 controlId, F64 sliderId, F64 currentValue)
{
int value = static_cast<int>(currentValue);
switch(static_cast<int>(sliderId))
{
case eControl_WorldSize:
#ifdef _LARGE_WORLDS
m_sliderWorldSize.handleSliderMove(value);
m_worldOptionsList.SetSliderValue(sliderId, value, true);
m_params->worldSize = value;
m_sliderWorldSize.setLabel(app.GetString(m_iWorldSizeTitleA[value]));
#endif
//m_sliderWorldSize.setLabel(app.GetString(m_iWorldSizeTitleA[value]));
break;
case eControl_WorldResize:
#ifdef _LARGE_WORLDS
EGameHostOptionWorldSize changedSize = static_cast<EGameHostOptionWorldSize>(value + 1);
if(changedSize >= m_params->currentWorldSize)
{
m_sliderWorldResize.handleSliderMove(value);
m_worldOptionsList.SetSliderValue(sliderId, value, true);
m_params->newWorldSize = static_cast<EGameHostOptionWorldSize>(value + 1);
m_sliderWorldResize.setLabel(app.GetString(m_iWorldSizeTitleA[value]));
//m_sliderWorldResize.setLabel(app.GetString(m_iWorldSizeTitleA[value]));
}
#endif
break;
}
}

View File

@@ -73,6 +73,7 @@ private:
#ifdef __PSVITA__
UI_MAP_ELEMENT( m_TouchTabGame, "TouchTabGame" )
#endif
UI_MAP_ELEMENT(m_gameOptionsList, "GameOptionsList")
UI_MAP_ELEMENT( m_labelDescription_GameOptions, "Description_GameOptions")
UI_END_MAP_CHILD_ELEMENTS()
@@ -119,11 +120,9 @@ public:
virtual void handleTimerComplete(int id);
static int KeyboardCompleteSeedCallback(LPVOID lpParam,const bool bRes);
virtual void handlePress(F64 controlId, F64 childId);
virtual void handleCheckboxElementToggled(F64 controlId, F64 checkboxid, bool checked);
virtual void handleSliderElementMove(F64 sliderId, F64 currentValue, F64 idk);
protected:
void handleCheckboxElementToggled(F64 controlId, F64 idk, bool selected);
private:
bool m_bUpdateCheats; // If true, update cheats on next tick
void UpdateCheats();

View File

@@ -77,6 +77,8 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD
m_tabIndex = TAB_GENERAL_OPTIONS;
m_generalOptionsList.AddNewCheckbox(app.GetString(IDS_CHECKBOX_FULLSCREEN),eControl_Fullscreen,(app.GetGameSettings(m_iPad,eGameSetting_Fullscreen)));
m_generalOptionsList.AddNewCheckbox(app.GetString(IDS_CHECKBOX_VSYNC),eControl_Vsync,(app.GetGameSettings(m_iPad,eGameSetting_Vsync)!=0));
m_generalOptionsList.AddNewCheckbox(app.GetString(IDS_CHECKBOX_CUSTOM_SKIN_ANIM),eControl_CustomSkinAnim,(app.GetGameSettings(m_iPad,eGameSetting_CustomSkinAnim)!=0));
WCHAR TempString[256];
@@ -102,37 +104,10 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD
swprintf(TempString, 256, L"%ls: %ls", app.GetString( IDS_GRAPHICS ),app.GetString(m_iGraphicsModeTitleSettingA[app.GetGameSettings(m_iPad,eGameSetting_GraphicsMode)]));
m_qualityOptionsList.AddNewSlider(TempString, eControl_GraphicsMode, 0, 3, currentGraphics);
/*
Minecraft* pMinecraft = Minecraft::GetInstance();
m_bNotInGame=(Minecraft::GetInstance()->level==nullptr);
m_checkboxClouds.init(app.GetString(IDS_CHECKBOX_RENDER_CLOUDS),eControl_Clouds,(app.GetGameSettings(m_iPad,eGameSetting_Clouds)!=0));
m_checkboxBedrockFog.init(app.GetString(IDS_CHECKBOX_RENDER_BEDROCKFOG),eControl_BedrockFog,(app.GetGameSettings(m_iPad,eGameSetting_BedrockFog)!=0));
m_checkboxCustomSkinAnim.init(app.GetString(IDS_CHECKBOX_CUSTOM_SKIN_ANIM),eControl_CustomSkinAnim,(app.GetGameSettings(m_iPad,eGameSetting_CustomSkinAnim)!=0));
WCHAR TempString[256];
swprintf( TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),app.GetGameSettings(m_iPad,eGameSetting_Gamma));
m_sliderGamma.init(TempString,eControl_Gamma,0,100,app.GetGameSettings(m_iPad,eGameSetting_Gamma));
const int initialFovSlider = app.GetGameSettings(m_iPad, eGameSetting_FOV);
const int initialFovDeg = sliderValueToFov(initialFovSlider);
swprintf(TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_FOV ),initialFovDeg);
m_sliderFOV.init(TempString, eControl_FOV, 0, FOV_SLIDER_MAX, initialFovSlider);
swprintf( TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_INTERFACEOPACITY ),app.GetGameSettings(m_iPad,eGameSetting_InterfaceOpacity));
m_sliderInterfaceOpacity.init(TempString,eControl_InterfaceOpacity,0,100,app.GetGameSettings(m_iPad,eGameSetting_InterfaceOpacity));
swprintf(TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_RENDERDISTANCE ),app.GetGameSettings(m_iPad,eGameSetting_RenderDistance));
m_sliderRenderDistance.init(TempString,eControl_RenderDistance,0,3,DistanceToLevel(app.GetGameSettings(m_iPad,eGameSetting_RenderDistance)));
int currentGraphics = app.GetGameSettings(m_iPad, eGameSetting_GraphicsMode);
swprintf(TempString, 256, L"%ls %ls", app.GetString( IDS_GRAPHICS ),app.GetString(m_iGraphicsModeTitleSettingA[app.GetGameSettings(m_iPad,eGameSetting_GraphicsMode)]));
m_sliderGraphicsMode.init(TempString, eControl_GraphicsMode, 0, 3, currentGraphics);
doHorizontalResizeCheck();
const bool bInGame=(Minecraft::GetInstance()->level!=nullptr);
@@ -148,24 +123,16 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD
if(!g_NetworkManager.IsHost())
{
// hide the in-game bedrock fog setting
removeControl(&m_checkboxBedrockFog, true);
m_qualityOptionsList.removeItem(eControl_BedrockFog);
}
}
else
{
// We shouldn't have the bedrock fog option, or the m_CustomSkinAnim option
removeControl(&m_checkboxBedrockFog, true);
removeControl(&m_checkboxCustomSkinAnim, true);
m_qualityOptionsList.removeItem(eControl_BedrockFog);
m_generalOptionsList.removeItem(eControl_CustomSkinAnim);
}
}
if(app.GetLocalPlayerCount()>1)
{
#if TO_BE_IMPLEMENTED
app.AdjustSplitscreenScene(m_hObj,&m_OriginalPosition,m_iPad);
#endif
}
*/
}
void UIScene_SettingsGraphicsMenu::updateTooltips()
@@ -211,24 +178,18 @@ void UIScene_SettingsGraphicsMenu::handleInput(int iPad, int key, bool repeat, b
{
if (isDirectEditBlocking()) return;
// UIControl_MultiList* test;
ui.AnimateKeyPress(iPad, key, repeat, pressed, released);
switch(key)
{
case ACTION_MENU_CANCEL:
if(pressed)
{
/*
// check the checkboxes
app.SetGameSettings(m_iPad,eGameSetting_Clouds,test->GetCheckboxValue(5));
app.SetGameSettings(m_iPad,eGameSetting_BedrockFog,test->GetCheckboxValue(6));
app.SetGameSettings(m_iPad,eGameSetting_CustomSkinAnim,test->GetCheckboxValue(0));
*/
navigateBack();
handled = true;
}
break;
case ACTION_MENU_OK:
case ACTION_MENU_UP:
case ACTION_MENU_DOWN:
case ACTION_MENU_LEFT:
@@ -238,7 +199,7 @@ void UIScene_SettingsGraphicsMenu::handleInput(int iPad, int key, bool repeat, b
case ACTION_MENU_OTHER_STICK_UP:
case ACTION_MENU_OTHER_STICK_DOWN:
sendInputToMovie(key, repeat, pressed, released);
handled = true; //test
handled = true;
break;
case ACTION_MENU_LEFT_SCROLL:
case ACTION_MENU_RIGHT_SCROLL:
@@ -262,67 +223,81 @@ UIControl* UIScene_SettingsGraphicsMenu::GetMainPanel()
return &m_qualityOptions;
}
void UIScene_SettingsGraphicsMenu::handleSliderMove(F64 sliderId, F64 currentValue)
void UIScene_SettingsGraphicsMenu::handleCheckboxElementToggled(F64 controlId, F64 checkboxid, bool checked)
{
switch(static_cast<int>(checkboxid))
{
case eControl_Fullscreen:
app.SetGameSettings(m_iPad,eGameSetting_Fullscreen,static_cast<int>(checked));
break;
case eControl_Vsync:
app.SetGameSettings(m_iPad,eGameSetting_Vsync,static_cast<int>(checked));
break;
case eControl_CustomSkinAnim:
app.SetGameSettings(m_iPad,eGameSetting_CustomSkinAnim,static_cast<int>(checked));
break;
case eControl_Clouds:
app.SetGameSettings(m_iPad,eGameSetting_Clouds,static_cast<int>(checked));
break;
case eControl_BedrockFog:
app.SetGameSettings(m_iPad,eGameSetting_BedrockFog,static_cast<int>(checked));
break;
};
}
void UIScene_SettingsGraphicsMenu::handleSliderElementMove(F64 controlId, F64 sliderId, F64 currentValue)
{
WCHAR TempString[256];
const int value = static_cast<int>(currentValue);
switch(static_cast<int>(sliderId))
{
case eControl_Gamma:
//m_sliderGamma.handleSliderMove(value);
m_generalOptionsList.SetSliderValue(sliderId, value, true);
app.SetGameSettings(m_iPad,eGameSetting_Gamma,value);
swprintf( TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_GAMMA ),value);
//m_sliderGamma.setLabel(TempString);
m_generalOptionsList.SetItemLabel(sliderId, TempString, true);
break;
case eControl_FOV:
{
//m_sliderFOV.handleSliderMove(value);
m_generalOptionsList.SetSliderValue(sliderId, value, true);
const Minecraft* pMinecraft = Minecraft::GetInstance();
const int fovValue = sliderValueToFov(value);
pMinecraft->gameRenderer->SetFovVal(static_cast<float>(fovValue));
app.SetGameSettings(m_iPad, eGameSetting_FOV, value);
swprintf(TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_FOV ),fovValue);
//m_sliderFOV.setLabel(TempString);
m_generalOptionsList.SetItemLabel(sliderId, TempString, true);
}
break;
case eControl_InterfaceOpacity:
//m_sliderInterfaceOpacity.handleSliderMove(value);
m_generalOptionsList.SetSliderValue(sliderId, value, true);
app.SetGameSettings(m_iPad,eGameSetting_InterfaceOpacity,value);
swprintf( TempString, 256, L"%ls: %d%%", app.GetString( IDS_SLIDER_INTERFACEOPACITY ),value);
//m_sliderInterfaceOpacity.setLabel(TempString);
m_generalOptionsList.SetItemLabel(sliderId, TempString, true);
break;
case eControl_RenderDistance:
{
//m_sliderRenderDistance.handleSliderMove(value);
m_generalOptionsList.SetSliderValue(sliderId, value, true);
const int dist = LevelToDistance(value);
app.SetGameSettings(m_iPad,eGameSetting_RenderDistance,dist);
const Minecraft* mc = Minecraft::GetInstance();
mc->options->viewDistance = 3 - value;
swprintf(TempString,256,L"%ls: %d", app.GetString( IDS_SLIDER_RENDERDISTANCE ),dist);
//m_sliderRenderDistance.setLabel(TempString);
m_generalOptionsList.SetItemLabel(sliderId, TempString, true);
}
break;
case eControl_GraphicsMode:
{
//m_sliderGraphicsMode.handleSliderMove(value);
{
m_qualityOptionsList.SetSliderValue(sliderId, value, true);
app.SetGameSettings(m_iPad, eGameSetting_GraphicsMode, value);
swprintf(TempString, 256, L"%ls: %ls", app.GetString( IDS_GRAPHICS ),app.GetString(m_iGraphicsModeTitleSettingA[value]));
//m_sliderGraphicsMode.setLabel(TempString);
}
break;
app.SetGameSettings(m_iPad, eGameSetting_GraphicsMode, value);
swprintf(TempString, 256, L"%ls: %ls", app.GetString( IDS_GRAPHICS ),app.GetString(m_iGraphicsModeTitleSettingA[value]));
m_generalOptionsList.SetItemLabel(sliderId, TempString, true);
}
break;
}
}

View File

@@ -13,9 +13,11 @@ private:
enum EControls
{
eControl_Fullscreen,
eControl_Vsync,
eControl_CustomSkinAnim,
eControl_Clouds,
eControl_BedrockFog,
eControl_CustomSkinAnim,
eControl_Gamma,
eControl_FOV,
eControl_InterfaceOpacity,
@@ -64,7 +66,8 @@ protected:
public:
// INPUT
virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled);
virtual void handleSliderMove(F64 sliderId, F64 currentValue);
virtual void handleCheckboxElementToggled(F64 controlId, F64 checkboxid, bool checked);
virtual void handleSliderElementMove(F64 controlId, F64 sliderId, F64 currentValue);
static int LevelToDistance(int dist);