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_SettingsUIMenu.h"
4
5UIScene_SettingsUIMenu::UIScene_SettingsUIMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
6{
7 // Setup all the Iggy references we need for this scene
8 initialiseMovie();
9
10 m_bNotInGame=(Minecraft::GetInstance()->level==NULL);
11
12 m_checkboxDisplayHUD.init(app.GetString(IDS_CHECKBOX_DISPLAY_HUD),eControl_DisplayHUD,(app.GetGameSettings(m_iPad,eGameSetting_DisplayHUD)!=0));
13 m_checkboxDisplayHand.init(app.GetString(IDS_CHECKBOX_DISPLAY_HAND),eControl_DisplayHand,(app.GetGameSettings(m_iPad,eGameSetting_DisplayHand)!=0));
14 m_checkboxDisplayDeathMessages.init(app.GetString(IDS_CHECKBOX_DEATH_MESSAGES),eControl_DisplayDeathMessages,(app.GetGameSettings(m_iPad,eGameSetting_DeathMessages)!=0));
15 m_checkboxDisplayAnimatedCharacter.init(app.GetString(IDS_CHECKBOX_ANIMATED_CHARACTER),eControl_DisplayAnimatedCharacter,(app.GetGameSettings(m_iPad,eGameSetting_AnimatedCharacter)!=0));
16 m_checkboxSplitscreen.init(app.GetString(IDS_CHECKBOX_VERTICAL_SPLIT_SCREEN),eControl_Splitscreen,(app.GetGameSettings(m_iPad,eGameSetting_SplitScreenVertical)!=0));
17 m_checkboxShowSplitscreenGamertags.init(app.GetString(IDS_CHECKBOX_DISPLAY_SPLITSCREENGAMERTAGS),eControl_ShowSplitscreenGamertags,(app.GetGameSettings(m_iPad,eGameSetting_DisplaySplitscreenGamertags)!=0));
18
19 WCHAR TempString[256];
20
21 swprintf( (WCHAR *)TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_UISIZE ),app.GetGameSettings(m_iPad,eGameSetting_UISize)+1);
22 m_sliderUISize.init(TempString,eControl_UISize,1,3,app.GetGameSettings(m_iPad,eGameSetting_UISize)+1);
23
24 swprintf( (WCHAR *)TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_UISIZESPLITSCREEN ),app.GetGameSettings(m_iPad,eGameSetting_UISizeSplitscreen)+1);
25 m_sliderUISizeSplitscreen.init(TempString,eControl_UISizeSplitscreen,1,3,app.GetGameSettings(m_iPad,eGameSetting_UISizeSplitscreen)+1);
26
27 doHorizontalResizeCheck();
28
29 bool bInGame=(Minecraft::GetInstance()->level!=NULL);
30 bool bPrimaryPlayer = ProfileManager.GetPrimaryPad()==m_iPad;
31
32 // if we're not in the game, we need to use basescene 0
33 if(bInGame)
34 {
35 // If the game has started, then you need to be the host to change the in-game gamertags
36 if(!bPrimaryPlayer)
37 {
38 // hide things we don't want the splitscreen player changing
39 removeControl(&m_checkboxSplitscreen, true);
40 removeControl(&m_checkboxShowSplitscreenGamertags, true);
41 }
42 }
43
44
45 if(app.GetLocalPlayerCount()>1)
46 {
47#if TO_BE_IMPLEMENTED
48 app.AdjustSplitscreenScene(m_hObj,&m_OriginalPosition,m_iPad);
49#endif
50 }
51}
52
53void UIScene_SettingsUIMenu::updateTooltips()
54{
55 ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK);
56}
57
58void UIScene_SettingsUIMenu::updateComponents()
59{
60 bool bNotInGame=(Minecraft::GetInstance()->level==NULL);
61 if(bNotInGame)
62 {
63 m_parentLayer->showComponent(m_iPad,eUIComponent_Panorama,true);
64 m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,true);
65 }
66 else
67 {
68 m_parentLayer->showComponent(m_iPad,eUIComponent_Panorama,false);
69
70 if( app.GetLocalPlayerCount() == 1 ) m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,true);
71 else m_parentLayer->showComponent(m_iPad,eUIComponent_Logo,false);
72
73 }
74}
75
76UIScene_SettingsUIMenu::~UIScene_SettingsUIMenu()
77{
78}
79
80wstring UIScene_SettingsUIMenu::getMoviePath()
81{
82 if(app.GetLocalPlayerCount() > 1)
83 {
84 return L"SettingsUIMenuSplit";
85 }
86 else
87 {
88 return L"SettingsUIMenu";
89 }
90}
91
92void UIScene_SettingsUIMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
93{
94 ui.AnimateKeyPress(iPad, key, repeat, pressed, released);
95
96 switch(key)
97 {
98 case ACTION_MENU_CANCEL:
99 if(pressed)
100 {
101 // check the checkboxes
102 app.SetGameSettings(m_iPad,eGameSetting_DisplayHUD,m_checkboxDisplayHUD.IsChecked()?1:0);
103 app.SetGameSettings(m_iPad,eGameSetting_DisplayHand,m_checkboxDisplayHand.IsChecked()?1:0);
104 app.SetGameSettings(m_iPad,eGameSetting_DisplaySplitscreenGamertags,m_checkboxShowSplitscreenGamertags.IsChecked()?1:0);
105 app.SetGameSettings(m_iPad,eGameSetting_DeathMessages,m_checkboxDisplayDeathMessages.IsChecked()?1:0);
106 app.SetGameSettings(m_iPad,eGameSetting_AnimatedCharacter,m_checkboxDisplayAnimatedCharacter.IsChecked()?1:0);
107
108 // if the splitscreen vertical/horizontal has changed, need to update the scenes
109 if(app.GetGameSettings(m_iPad,eGameSetting_SplitScreenVertical)!=(m_checkboxSplitscreen.IsChecked()?1:0))
110 {
111 // changed
112 app.SetGameSettings(m_iPad,eGameSetting_SplitScreenVertical,m_checkboxSplitscreen.IsChecked()?1:0);
113
114 // close the xui scenes, so we don't have the navigate backed to menu at the wrong place
115 if(app.GetLocalPlayerCount()==2)
116 {
117 ui.CloseAllPlayersScenes();
118 }
119 else
120 {
121 navigateBack();
122 }
123 }
124 else
125 {
126 navigateBack();
127 }
128 handled = true;
129 }
130 break;
131 case ACTION_MENU_OK:
132#ifdef __ORBIS__
133 case ACTION_MENU_TOUCHPAD_PRESS:
134#endif
135 sendInputToMovie(key, repeat, pressed, released);
136 break;
137 case ACTION_MENU_UP:
138 case ACTION_MENU_DOWN:
139 case ACTION_MENU_LEFT:
140 case ACTION_MENU_RIGHT:
141 sendInputToMovie(key, repeat, pressed, released);
142 break;
143 }
144}
145
146void UIScene_SettingsUIMenu::handleSliderMove(F64 sliderId, F64 currentValue)
147{
148 WCHAR TempString[256];
149 int value = (int)currentValue;
150 switch((int)sliderId)
151 {
152 case eControl_UISize:
153 m_sliderUISize.handleSliderMove(value);
154
155 swprintf( (WCHAR *)TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_UISIZE ),value);
156 m_sliderUISize.setLabel(TempString);
157
158 // is this different from the current value?
159 if(value != app.GetGameSettings(m_iPad,eGameSetting_UISize)+1)
160 {
161 app.SetGameSettings(m_iPad,eGameSetting_UISize,value-1);
162 // Apply the changes to the selected text position
163 ui.UpdateSelectedItemPos(m_iPad);
164 }
165
166 break;
167 case eControl_UISizeSplitscreen:
168 m_sliderUISizeSplitscreen.handleSliderMove(value);
169
170 swprintf( (WCHAR *)TempString, 256, L"%ls: %d", app.GetString( IDS_SLIDER_UISIZESPLITSCREEN ),value);
171 m_sliderUISizeSplitscreen.setLabel(TempString);
172
173 if(value != app.GetGameSettings(m_iPad,eGameSetting_UISizeSplitscreen)+1)
174 {
175 // slider is 1 to 3
176 app.SetGameSettings(m_iPad,eGameSetting_UISizeSplitscreen,value-1);
177 // Apply the changes to the selected text position
178 ui.UpdateSelectedItemPos(m_iPad);
179 }
180
181 break;
182 }
183}