the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 169 lines 4.9 kB view raw
1#include "stdafx.h" 2#include "UI.h" 3#include "UIScene_SettingsMenu.h" 4#include "..\..\Minecraft.h" 5 6UIScene_SettingsMenu::UIScene_SettingsMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer) 7{ 8 // Setup all the Iggy references we need for this scene 9 initialiseMovie(); 10 11 bool bNotInGame=(Minecraft::GetInstance()->level==NULL); 12 13 m_buttons[BUTTON_ALL_OPTIONS].init(IDS_OPTIONS,BUTTON_ALL_OPTIONS); 14 m_buttons[BUTTON_ALL_AUDIO].init(IDS_AUDIO,BUTTON_ALL_AUDIO); 15 m_buttons[BUTTON_ALL_CONTROL].init(IDS_CONTROL,BUTTON_ALL_CONTROL); 16 m_buttons[BUTTON_ALL_GRAPHICS].init(IDS_GRAPHICS,BUTTON_ALL_GRAPHICS); 17 m_buttons[BUTTON_ALL_UI].init(IDS_USER_INTERFACE,BUTTON_ALL_UI); 18 m_buttons[BUTTON_ALL_RESETTODEFAULTS].init(IDS_RESET_TO_DEFAULTS,BUTTON_ALL_RESETTODEFAULTS); 19 20 if(ProfileManager.GetPrimaryPad()!=m_iPad) 21 { 22 removeControl( &m_buttons[BUTTON_ALL_AUDIO], bNotInGame); 23 removeControl( &m_buttons[BUTTON_ALL_GRAPHICS], bNotInGame); 24 } 25 26 doHorizontalResizeCheck(); 27 28 if(app.GetLocalPlayerCount()>1) 29 { 30#if TO_BE_IMPLEMENTED 31 app.AdjustSplitscreenScene(m_hObj,&m_OriginalPosition,m_iPad,false); 32#endif 33 } 34} 35 36UIScene_SettingsMenu::~UIScene_SettingsMenu() 37{ 38} 39 40wstring UIScene_SettingsMenu::getMoviePath() 41{ 42 if(app.GetLocalPlayerCount() > 1) 43 { 44 return L"SettingsMenuSplit"; 45 } 46 else 47 { 48 return L"SettingsMenu"; 49 } 50} 51 52void UIScene_SettingsMenu::handleReload() 53{ 54 bool bNotInGame=(Minecraft::GetInstance()->level==NULL); 55 if(ProfileManager.GetPrimaryPad()!=m_iPad) 56 { 57 removeControl( &m_buttons[BUTTON_ALL_AUDIO], bNotInGame); 58 removeControl( &m_buttons[BUTTON_ALL_GRAPHICS], bNotInGame); 59 } 60 61 doHorizontalResizeCheck(); 62} 63 64void UIScene_SettingsMenu::updateTooltips() 65{ 66 ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK); 67} 68 69void UIScene_SettingsMenu::updateComponents() 70{ 71 bool bNotInGame=(Minecraft::GetInstance()->level==NULL); 72 if(bNotInGame) 73 { 74 m_parentLayer->showComponent(m_iPad,eUIComponent_Panorama,true); 75 m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,true); 76 } 77 else 78 { 79 m_parentLayer->showComponent(m_iPad,eUIComponent_Panorama,false); 80 81 if( app.GetLocalPlayerCount() == 1 ) m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,true); 82 else m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,false); 83 84 } 85} 86 87void UIScene_SettingsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled) 88{ 89 //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"); 90 ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released); 91 92 switch(key) 93 { 94 case ACTION_MENU_CANCEL: 95 if(pressed) 96 { 97 // if the profile data has been changed, then force a profile write 98 // It seems we're allowed to break the 5 minute rule if it's the result of a user action 99 100 app.CheckGameSettingsChanged(true,iPad); 101 navigateBack(); 102 } 103 break; 104 case ACTION_MENU_OK: 105#ifdef __ORBIS__ 106 case ACTION_MENU_TOUCHPAD_PRESS: 107#endif 108 sendInputToMovie(key, repeat, pressed, released); 109 break; 110 case ACTION_MENU_UP: 111 case ACTION_MENU_DOWN: 112 sendInputToMovie(key, repeat, pressed, released); 113 break; 114 } 115} 116 117void UIScene_SettingsMenu::handlePress(F64 controlId, F64 childId) 118{ 119 //CD - Added for audio 120 ui.PlayUISFX(eSFX_Press); 121 122 switch((int)controlId) 123 { 124 case BUTTON_ALL_OPTIONS: 125 ui.NavigateToScene(m_iPad, eUIScene_SettingsOptionsMenu); 126 break; 127 case BUTTON_ALL_AUDIO: 128 ui.NavigateToScene(m_iPad, eUIScene_SettingsAudioMenu); 129 break; 130 case BUTTON_ALL_CONTROL: 131 ui.NavigateToScene(m_iPad, eUIScene_SettingsControlMenu); 132 break; 133 case BUTTON_ALL_GRAPHICS: 134 ui.NavigateToScene(m_iPad, eUIScene_SettingsGraphicsMenu); 135 break; 136 case BUTTON_ALL_UI: 137 ui.NavigateToScene(m_iPad, eUIScene_SettingsUIMenu); 138 break; 139 case BUTTON_ALL_RESETTODEFAULTS: 140 { 141 // check they really want to do this 142 UINT uiIDA[2]; 143 uiIDA[0]=IDS_CONFIRM_CANCEL; 144 uiIDA[1]=IDS_CONFIRM_OK; 145 146 ui.RequestAlertMessage(IDS_DEFAULTS_TITLE, IDS_DEFAULTS_TEXT, uiIDA, 2, m_iPad,&UIScene_SettingsMenu::ResetDefaultsDialogReturned,this); 147 } 148 break; 149 } 150} 151 152int UIScene_SettingsMenu::ResetDefaultsDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result) 153{ 154 UIScene_SettingsMenu* pClass = (UIScene_SettingsMenu*)pParam; 155 156 // results switched for this dialog 157 if(result==C4JStorage::EMessage_ResultDecline) 158 { 159#if (defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__) 160 app.SetDefaultOptions(StorageManager.GetDashboardProfileSettings(pClass->m_iPad),pClass->m_iPad); 161#else 162 app.SetDefaultOptions(ProfileManager.GetDashboardProfileSettings(pClass->m_iPad),pClass->m_iPad); 163#endif 164 // if the profile data has been changed, then force a profile write 165 // It seems we're allowed to break the 5 minute rule if it's the result of a user action 166 app.CheckGameSettingsChanged(true,iPad); 167 } 168 return 0; 169}