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 "../media/xuiscene_main.h"
4#include "XUI_CustomMessages.h"
5
6#define BUTTON_PLAYGAME 0
7#define BUTTON_LEADERBOARDS 1
8#define BUTTON_ACHIEVEMENTS 2
9#define BUTTON_HELPANDOPTIONS 3
10#define BUTTON_UNLOCKFULLGAME 4
11#define BUTTON_EXITGAME 5
12#define BUTTONS_MAX BUTTON_EXITGAME + 1
13
14#define MAIN_MENU_MAX_TEXT_SCALE 1.5f
15
16class Random;
17
18class CScene_Main : public CXuiSceneImpl
19{
20private:
21 static Random *random;
22 vector<wstring> m_splashes;
23 D3DXVECTOR3 m_vPosExitGame;
24 bool m_bIgnorePress;
25 float m_fSubtitleHeight, m_fSubtitleWidth;
26 CXuiControl m_Timer;
27
28 // 4J Added
29 enum eSplashIndexes
30 {
31 eSplashHappyBirthdayEx = 0,
32 eSplashHappyBirthdayNotch,
33 eSplashMerryXmas,
34 eSplashHappyNewYear,
35
36 // The start index in the splashes vector from which we can select a random splash
37 eSplashRandomStart,
38 };
39
40 enum eActions
41 {
42 eAction_None=0,
43 eAction_RunGame,
44 eAction_RunLeaderboards,
45 eAction_RunAchievements,
46 eAction_RunHelpAndOptions,
47 eAction_RunUnlockOrDLC,
48 };
49
50protected:
51 // Control and Element wrapper objects.
52 CXuiScene m_Scene;
53 CXuiControl m_Buttons[BUTTONS_MAX];
54 CXuiControl m_Subtitle, m_SubtitleMCFont;
55 // Message map. Here we tie messages to message handlers.
56 XUI_BEGIN_MSG_MAP()
57 XUI_ON_XM_INIT( OnInit )
58 XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx)
59 XUI_ON_XM_NAV_RETURN(OnNavReturn)
60 XUI_ON_XM_TRANSITION_START(OnTransitionStart)
61 XUI_ON_XM_CONTROL_NAVIGATE( OnControlNavigate )
62 XUI_ON_XM_KEYDOWN( OnKeyDown )
63 XUI_ON_XM_NOTIFY_SET_FOCUS(OnNotifySetFocus)
64 XUI_ON_XM_TMS_BANFILE_RETRIEVED_MESSAGE(OnTMSBanFileRetrieved)
65 XUI_ON_XM_TMS_DLCFILE_RETRIEVED_MESSAGE(OnTMSDLCFileRetrieved)
66 XUI_ON_XM_TIMER( OnTimer )
67
68 XUI_END_MSG_MAP()
69
70 // Control mapping to objects
71 BEGIN_CONTROL_MAP()
72 MAP_CONTROL(IDC_XuiButton1, m_Buttons[BUTTON_PLAYGAME])
73 MAP_CONTROL(IDC_XuiButton2, m_Buttons[BUTTON_LEADERBOARDS ])
74 MAP_CONTROL(IDC_XuiButton3, m_Buttons[BUTTON_ACHIEVEMENTS ])
75 MAP_CONTROL(IDC_XuiButton4, m_Buttons[BUTTON_HELPANDOPTIONS])
76 MAP_CONTROL(IDC_XuiButton5, m_Buttons[BUTTON_UNLOCKFULLGAME])
77 MAP_CONTROL(IDC_XuiButton6, m_Buttons[BUTTON_EXITGAME])
78 MAP_CONTROL(IDC_XuiSplash, m_Subtitle)
79 MAP_CONTROL(IDC_XuiSplashMCFont, m_SubtitleMCFont)
80 MAP_CONTROL(IDC_Timer, m_Timer)
81 END_CONTROL_MAP()
82
83 HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
84 HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData,BOOL& rfHandled);
85 HRESULT OnNavReturn(HXUIOBJ hObj,BOOL& rfHandled);
86 HRESULT OnTransitionStart( XUIMessageTransition *pTransition, BOOL& bHandled );
87 HRESULT OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled);
88 HRESULT OnKeyDown(XUIMessageInput *pInputData, BOOL& bHandled);
89 HRESULT OnNotifySetFocus(HXUIOBJ hObjSource, XUINotifyFocus *pNotifyFocusData, BOOL& bHandled);
90 HRESULT OnTMSBanFileRetrieved();
91 HRESULT OnTMSDLCFileRetrieved( );
92 HRESULT OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled );
93
94 int SetSaveDevice();
95 static void LoadTrial();
96
97 void RunPlayGame(int iPad);
98 void RunLeaderboards(int iPad);
99 void RunAchievements(int iPad);
100 void RunHelpAndOptions(int iPad);
101 void RunUnlockOrDLC(int iPad);
102
103 eActions m_eAction;
104
105public:
106
107 // Define the class. The class name must match the ClassOverride property
108 // set for the scene in the UI Authoring tool.
109 XUI_IMPLEMENT_CLASS( CScene_Main, L"CScene_Main", XUI_CLASS_SCENE )
110
111 static int SignInReturned(void *pParam,bool bContinue);
112 static int CreateLoad_SignInReturned(void *pParam,bool bContinue, int iPad);
113 static int CreateLoad_OfflineProfileReturned(void *pParam,bool bContinue, int iPad);
114 static int DeviceSelectReturned(void *pParam,bool bContinue);
115 static int SaveGameReturned(void *pParam,bool bContinue);
116 static int HelpAndOptions_SignInReturned(void *pParam,bool bContinue,int iPad);
117 static int ExitGameReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
118 static int AchievementsDeviceSelectReturned(void *pParam,bool bContinue);
119 static int Achievements_SignInReturned(void *pParam,bool bContinue,int iPad);
120 static int Leaderboards_SignInReturned(void* pParam, bool bContinue, int iPad);
121 static int UnlockFullGame_SignInReturned(void *pParam,bool bContinue,int iPad);
122 static int MustSignInReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
123#ifdef _XBOX
124 static int TMSReadFileListReturned(void *pParam,int iPad,C4JStorage::PTMSPP_FILE_LIST pTmsFileList);
125 static int TMSFileWriteReturned(void *pParam,int iPad,int iResult);
126 static int TMSFileReadReturned(void *pParam,int iPad,C4JStorage::PTMSPP_FILEDATA pData);
127#endif
128};