the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3#include "UIScene.h"
4
5class UIScene_MainMenu : public UIScene
6{
7private:
8 enum EControls
9 {
10 eControl_PlayGame,
11 eControl_Leaderboards,
12 eControl_Achievements,
13 eControl_HelpAndOptions,
14 eControl_UnlockOrDLC,
15#ifndef _DURANGO
16 eControl_Exit,
17#else
18 eControl_XboxHelp,
19#endif
20 eControl_Count,
21 };
22
23// #ifdef __ORBIS__
24// enum EPatchCheck
25// {
26// ePatchCheck_Idle,
27// ePatchCheck_Init,
28// ePatchCheck_Running,
29// };
30// #endif
31
32 UIControl_Button m_buttons[eControl_Count];
33 UIControl m_controlTimer;
34 UI_BEGIN_MAP_ELEMENTS_AND_NAMES(UIScene)
35 UI_MAP_ELEMENT( m_buttons[(int)eControl_PlayGame], "Button1")
36 UI_MAP_ELEMENT( m_buttons[(int)eControl_Leaderboards], "Button2")
37 UI_MAP_ELEMENT( m_buttons[(int)eControl_Achievements], "Button3")
38 UI_MAP_ELEMENT( m_buttons[(int)eControl_HelpAndOptions], "Button4")
39 UI_MAP_ELEMENT( m_buttons[(int)eControl_UnlockOrDLC], "Button5")
40#ifndef _DURANGO
41 UI_MAP_ELEMENT( m_buttons[(int)eControl_Exit], "Button6")
42#else
43 UI_MAP_ELEMENT( m_buttons[(int)eControl_XboxHelp], "Button6")
44#endif
45 UI_MAP_ELEMENT( m_controlTimer, "Timer")
46 UI_END_MAP_ELEMENTS_AND_NAMES()
47
48 static Random *random;
49 bool m_bIgnorePress;
50 bool m_bTrialVersion;
51 bool m_bLoadTrialOnNetworkManagerReady;
52#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
53 bool m_bLaunchFullVersionPurchase;
54#endif
55
56#ifdef _XBOX_ONE
57 bool m_bWaitingForDLCInfo;
58#endif
59
60 float m_fScreenWidth,m_fScreenHeight;
61 float m_fRawWidth,m_fRawHeight;
62 vector<wstring> m_splashes;
63 wstring m_splash;
64 enum eSplashIndexes
65 {
66 eSplashHappyBirthdayEx = 0,
67 eSplashHappyBirthdayNotch,
68 eSplashMerryXmas,
69 eSplashHappyNewYear,
70
71 // The start index in the splashes vector from which we can select a random splash
72 eSplashRandomStart,
73 };
74
75 enum eActions
76 {
77 eAction_None=0,
78 eAction_RunGame,
79 eAction_RunLeaderboards,
80 eAction_RunAchievements,
81 eAction_RunHelpAndOptions,
82 eAction_RunUnlockOrDLC,
83#if defined(__PS3__)|| defined(__PSVITA__) || defined(__ORBIS__)
84 eAction_RunLeaderboardsPSN,
85 eAction_RunGamePSN,
86 eAction_RunUnlockOrDLCPSN,
87#elif defined _DURANGO
88 eAction_RunXboxHelp,
89#endif
90
91 };
92 eActions m_eAction;
93
94private:
95 // 4J-JEV: Delay navigation until font changes.
96 static EUIScene eNavigateWhenReady;
97
98 static void proceedToScene(int iPad, EUIScene eScene)
99 {
100 eNavigateWhenReady = eScene;
101 }
102
103public:
104 UIScene_MainMenu(int iPad, void *initData, UILayer *parentLayer);
105 virtual ~UIScene_MainMenu();
106
107 // Returns true if this scene has focus for the pad passed in
108#ifndef __PS3__
109 virtual bool hasFocus(int iPad) { return bHasFocus; }
110#endif
111
112 virtual void updateTooltips();
113 virtual void updateComponents();
114
115 virtual EUIScene getSceneType() { return eUIScene_MainMenu;}
116
117 virtual void customDraw(IggyCustomDrawCallbackRegion *region);
118protected:
119 void customDrawSplash(IggyCustomDrawCallbackRegion *region);
120
121
122 virtual wstring getMoviePath();
123
124public:
125 virtual void tick();
126 virtual void handleReload();
127 // INPUT
128 virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled);
129
130 virtual void handleUnlockFullVersion();
131
132protected:
133 void handlePress(F64 controlId, F64 childId);
134
135 void handleGainFocus(bool navBack);
136
137 virtual long long getDefaultGtcButtons() { return 0; }
138
139private:
140 void RunPlayGame(int iPad);
141 void RunLeaderboards(int iPad);
142 void RunUnlockOrDLC(int iPad);
143 void RunAchievements(int iPad);
144 void RunHelpAndOptions(int iPad);
145
146 void RunAction(int iPad);
147
148 static void LoadTrial();
149
150#ifdef _XBOX_ONE
151 static int ChooseUser_SignInReturned(void *pParam,bool bContinue, int iPad, int iController);
152 static int CreateLoad_SignInReturned(void *pParam,bool bContinue, int iPad, int iController);
153 static int HelpAndOptions_SignInReturned(void *pParam,bool bContinue,int iPad, int iController);
154 static int Achievements_SignInReturned(void *pParam,bool bContinue,int iPad, int iController);
155 static int MustSignInReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
156
157 static int Leaderboards_SignInReturned(void* pParam, bool bContinue, int iPad, int iController);
158 static int UnlockFullGame_SignInReturned(void *pParam,bool bContinue,int iPad, int iController);
159 static int ExitGameReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
160
161
162 static int XboxHelp_SignInReturned(void *pParam, bool bContinue, int iPad, int iController);
163#else
164
165 static int CreateLoad_SignInReturned(void *pParam,bool bContinue, int iPad);
166 static int HelpAndOptions_SignInReturned(void *pParam,bool bContinue,int iPad);
167 static int Achievements_SignInReturned(void *pParam,bool bContinue,int iPad);
168 static int MustSignInReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
169
170#if defined(__PS3__) || defined(__PSVITA__) || defined(__ORBIS__)
171 static int MustSignInReturnedPSN(void *pParam,int iPad,C4JStorage::EMessageResult result);
172#endif
173 static int Leaderboards_SignInReturned(void* pParam, bool bContinue, int iPad);
174 static int UnlockFullGame_SignInReturned(void *pParam,bool bContinue,int iPad);
175 static int ExitGameReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
176
177#ifdef __ORBIS__
178 static void RefreshChatAndContentRestrictionsReturned_PlayGame(void *pParam);
179 static void RefreshChatAndContentRestrictionsReturned_Leaderboards(void *pParam);
180
181 static int PlayOfflineReturned(void *pParam, int iPad, C4JStorage::EMessageResult result);
182#endif
183#endif
184
185#ifdef __PSVITA__
186 static int SelectNetworkModeReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
187#endif
188
189#ifdef __ORBIS__
190 //EPatchCheck m_ePatchCheckState;
191 bool m_bRunGameChosen;
192 int32_t m_errorCode;
193 bool m_bErrorDialogRunning;
194#endif
195};