the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 161 lines 6.6 kB view raw
1#include "stdafx.h" 2#include "UI.h" 3#include "UIScene_InGameHostOptionsMenu.h" 4#include "..\..\Minecraft.h" 5#include "..\..\MultiPlayerLocalPlayer.h" 6#include "..\..\ClientConnection.h" 7#include "..\..\..\Minecraft.World\net.minecraft.network.h" 8#include "..\..\..\Minecraft.World\net.minecraft.network.packet.h" 9 10UIScene_InGameHostOptionsMenu::UIScene_InGameHostOptionsMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer) 11{ 12 // Setup all the Iggy references we need for this scene 13 initialiseMovie(); 14 15 m_checkboxFireSpreads.init(app.GetString(IDS_FIRE_SPREADS), eControl_FireSpreads, app.GetGameHostOption(eGameHostOption_FireSpreads)!=0); 16 m_checkboxTNT.init(app.GetString(IDS_TNT_EXPLODES), eControl_TNT, app.GetGameHostOption(eGameHostOption_TNT)!=0); 17 18 m_checkboxDoMobLoot.init(app.GetString(IDS_MOB_LOOT), eControl_DoMobLoot, app.GetGameHostOption(eGameHostOption_DoMobLoot)); 19 m_checkboxDoTileDrops.init(app.GetString(IDS_TILE_DROPS), eControl_DoTileDrops, app.GetGameHostOption(eGameHostOption_DoTileDrops)); 20 m_checkboxNaturalRegeneration.init(app.GetString(IDS_NATURAL_REGEN), eControl_NaturalRegeneration, app.GetGameHostOption(eGameHostOption_NaturalRegeneration)); 21 22 // If cheats are disabled, remove checkboxes 23 if (!app.GetGameHostOption(eGameHostOption_CheatsEnabled)) 24 { 25 removeControl(&m_checkboxMobGriefing, true); 26 removeControl(&m_checkboxKeepInventory, true); 27 removeControl(&m_checkboxDoMobSpawning, true); 28 removeControl(&m_checkboxDoDaylightCycle, true); 29 } 30 31 m_checkboxMobGriefing.init(app.GetString(IDS_MOB_GRIEFING), eControl_MobGriefing, app.GetGameHostOption(eGameHostOption_MobGriefing)); 32 m_checkboxKeepInventory.init(app.GetString(IDS_KEEP_INVENTORY), eControl_KeepInventory, app.GetGameHostOption(eGameHostOption_KeepInventory)); 33 m_checkboxDoMobSpawning.init(app.GetString(IDS_MOB_SPAWNING), eControl_DoMobSpawning, app.GetGameHostOption(eGameHostOption_DoMobSpawning)); 34 m_checkboxDoDaylightCycle.init(app.GetString(IDS_DAYLIGHT_CYCLE), eControl_DoDaylightCycle, app.GetGameHostOption(eGameHostOption_DoDaylightCycle)); 35 36 INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad ); 37 unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId()); 38 if(app.GetGameHostOption(eGameHostOption_CheatsEnabled) 39 && Player::getPlayerGamePrivilege(privs,Player::ePlayerGamePrivilege_CanTeleport) 40 && g_NetworkManager.GetPlayerCount() > 1) 41 { 42 m_buttonTeleportToPlayer.init(app.GetString(IDS_TELEPORT_TO_PLAYER), eControl_TeleportToPlayer); 43 m_buttonTeleportToMe.init(app.GetString(IDS_TELEPORT_TO_ME), eControl_TeleportToMe); 44 } 45 else 46 { 47 removeControl(&m_buttonTeleportToPlayer, true); 48 removeControl(&m_buttonTeleportToMe, true); 49 } 50} 51 52wstring UIScene_InGameHostOptionsMenu::getMoviePath() 53{ 54 if(app.GetLocalPlayerCount() > 1) 55 { 56 return L"InGameHostOptionsSplit"; 57 } 58 else 59 { 60 return L"InGameHostOptions"; 61 } 62} 63 64void UIScene_InGameHostOptionsMenu::updateTooltips() 65{ 66 ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK); 67} 68 69void UIScene_InGameHostOptionsMenu::handleReload() 70{ 71 UIScene::handleReload(); 72 73 // If cheats are disabled, remove checkboxes 74 if (!app.GetGameHostOption(eGameHostOption_CheatsEnabled)) 75 { 76 removeControl(&m_checkboxMobGriefing, true); 77 removeControl(&m_checkboxKeepInventory, true); 78 removeControl(&m_checkboxDoMobSpawning, true); 79 removeControl(&m_checkboxDoDaylightCycle, true); 80 } 81 82 INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad ); 83 unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId()); 84 if(app.GetGameHostOption(eGameHostOption_CheatsEnabled) 85 && Player::getPlayerGamePrivilege(privs,Player::ePlayerGamePrivilege_CanTeleport) 86 && g_NetworkManager.GetPlayerCount() > 1) 87 { 88 } 89 else 90 { 91 removeControl(&m_buttonTeleportToPlayer, true); 92 removeControl(&m_buttonTeleportToMe, true); 93 } 94} 95 96void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled) 97{ 98 //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"); 99 100 ui.AnimateKeyPress(iPad, key, repeat, pressed, released); 101 switch(key) 102 { 103 case ACTION_MENU_CANCEL: 104 if(pressed) 105 { 106 unsigned int hostOptions = app.GetGameHostOption(eGameHostOption_All); 107 app.SetGameHostOption(hostOptions, eGameHostOption_FireSpreads, m_checkboxFireSpreads.IsChecked()); 108 app.SetGameHostOption(hostOptions, eGameHostOption_TNT, m_checkboxTNT.IsChecked()); 109 app.SetGameHostOption(hostOptions, eGameHostOption_DoMobLoot, m_checkboxDoMobLoot.IsChecked()); 110 app.SetGameHostOption(hostOptions, eGameHostOption_DoTileDrops, m_checkboxDoTileDrops.IsChecked()); 111 app.SetGameHostOption(hostOptions, eGameHostOption_NaturalRegeneration, m_checkboxNaturalRegeneration.IsChecked()); 112 113 // If cheats are enabled, set cheat values 114 if (app.GetGameHostOption(eGameHostOption_CheatsEnabled)) 115 { 116 app.SetGameHostOption(hostOptions, eGameHostOption_MobGriefing, m_checkboxMobGriefing.IsChecked()); 117 app.SetGameHostOption(hostOptions, eGameHostOption_KeepInventory, m_checkboxKeepInventory.IsChecked()); 118 app.SetGameHostOption(hostOptions, eGameHostOption_DoMobSpawning, m_checkboxDoMobSpawning.IsChecked()); 119 app.SetGameHostOption(hostOptions, eGameHostOption_DoDaylightCycle, m_checkboxDoDaylightCycle.IsChecked()); 120 } 121 122 // Send update settings packet to server 123 if(hostOptions != app.GetGameHostOption(eGameHostOption_All) ) 124 { 125 Minecraft *pMinecraft = Minecraft::GetInstance(); 126 shared_ptr<MultiplayerLocalPlayer> player = pMinecraft->localplayers[m_iPad]; 127 if(player->connection) 128 { 129 player->connection->send( shared_ptr<ServerSettingsChangedPacket>( new ServerSettingsChangedPacket( ServerSettingsChangedPacket::HOST_IN_GAME_SETTINGS, hostOptions) ) ); 130 } 131 } 132 133 navigateBack(); 134 135 handled = true; 136 } 137 break; 138 case ACTION_MENU_OK: 139#ifdef __ORBIS__ 140 case ACTION_MENU_TOUCHPAD_PRESS: 141#endif 142 sendInputToMovie(key, repeat, pressed, released); 143 break; 144 case ACTION_MENU_UP: 145 case ACTION_MENU_DOWN: 146 sendInputToMovie(key, repeat, pressed, released); 147 break; 148 } 149} 150 151void UIScene_InGameHostOptionsMenu::handlePress(F64 controlId, F64 childId) 152{ 153 TeleportMenuInitData *initData = new TeleportMenuInitData(); 154 initData->iPad = m_iPad; 155 initData->teleportToPlayer = false; 156 if( (int)controlId == eControl_TeleportToPlayer ) 157 { 158 initData->teleportToPlayer = true; 159 } 160 ui.NavigateToScene(m_iPad,eUIScene_TeleportMenu,(void*)initData); 161}