the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
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}