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