aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp')
-rw-r--r--Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp61
1 files changed, 59 insertions, 2 deletions
diff --git a/Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp
index de8af0ac..68ac537e 100644
--- a/Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp
+++ b/Minecraft.Client/Common/UI/UIScene_InGameHostOptionsMenu.cpp
@@ -15,6 +15,24 @@ UIScene_InGameHostOptionsMenu::UIScene_InGameHostOptionsMenu(int iPad, void *ini
m_checkboxFireSpreads.init(app.GetString(IDS_FIRE_SPREADS), eControl_FireSpreads, app.GetGameHostOption(eGameHostOption_FireSpreads)!=0);
m_checkboxTNT.init(app.GetString(IDS_TNT_EXPLODES), eControl_TNT, app.GetGameHostOption(eGameHostOption_TNT)!=0);
+ m_checkboxDoMobLoot.init(app.GetString(IDS_MOB_LOOT), eControl_DoMobLoot, app.GetGameHostOption(eGameHostOption_DoMobLoot));
+ m_checkboxDoTileDrops.init(app.GetString(IDS_TILE_DROPS), eControl_DoTileDrops, app.GetGameHostOption(eGameHostOption_DoTileDrops));
+ m_checkboxNaturalRegeneration.init(app.GetString(IDS_NATURAL_REGEN), eControl_NaturalRegeneration, app.GetGameHostOption(eGameHostOption_NaturalRegeneration));
+
+ // 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);
+ }
+
+ m_checkboxMobGriefing.init(app.GetString(IDS_MOB_GRIEFING), eControl_MobGriefing, app.GetGameHostOption(eGameHostOption_MobGriefing));
+ m_checkboxKeepInventory.init(app.GetString(IDS_KEEP_INVENTORY), eControl_KeepInventory, app.GetGameHostOption(eGameHostOption_KeepInventory));
+ m_checkboxDoMobSpawning.init(app.GetString(IDS_MOB_SPAWNING), eControl_DoMobSpawning, app.GetGameHostOption(eGameHostOption_DoMobSpawning));
+ m_checkboxDoDaylightCycle.init(app.GetString(IDS_DAYLIGHT_CYCLE), eControl_DoDaylightCycle, app.GetGameHostOption(eGameHostOption_DoDaylightCycle));
+
INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad );
unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId());
if(app.GetGameHostOption(eGameHostOption_CheatsEnabled)
@@ -48,6 +66,33 @@ void UIScene_InGameHostOptionsMenu::updateTooltips()
ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK);
}
+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 );
+ unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId());
+ if(app.GetGameHostOption(eGameHostOption_CheatsEnabled)
+ && Player::getPlayerGamePrivilege(privs,Player::ePlayerGamePrivilege_CanTeleport)
+ && g_NetworkManager.GetPlayerCount() > 1)
+ {
+ }
+ else
+ {
+ removeControl(&m_buttonTeleportToPlayer, true);
+ removeControl(&m_buttonTeleportToMe, true);
+ }
+}
+
void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
{
//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");
@@ -59,8 +104,20 @@ void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat,
if(pressed)
{
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_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());
+
+ // 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());
+ }
// Send update settings packet to server
if(hostOptions != app.GetGameHostOption(eGameHostOption_All) )