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 "XUI_TrialExitUpsell.h"
3
4// wchImages[TRIAL_EXIT_UPSELL_IMAGE_COUNT]
5WCHAR *CScene_TrialExitUpsell::wchImages[]=
6{
7 L"Graphics/UpsellScreenshots/Screenshot1.png",
8 L"Graphics/UpsellScreenshots/Screenshot2.png",
9 L"Graphics/UpsellScreenshots/Screenshot3.png",
10 L"Graphics/UpsellScreenshots/Screenshot4.png",
11 L"Graphics/UpsellScreenshots/Screenshot5.png",
12 L"Graphics/UpsellScreenshots/Screenshot6.png",
13 L"Graphics/UpsellScreenshots/Screenshot7.png",
14 L"Graphics/UpsellScreenshots/Screenshot8.png"
15};
16
17//----------------------------------------------------------------------------------
18// Performs initialization tasks - retrieves controls.
19//----------------------------------------------------------------------------------
20HRESULT CScene_TrialExitUpsell::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
21{
22 m_iPad=*(int *)pInitData->pvInitData;
23
24 MapChildControls();
25
26 m_bCanExit = true;
27 m_bFadeStarted = false;
28 m_bShowingImage1 = true;
29 m_imagesShown = 0;
30
31 m_image1.SetImagePath( wchImages[m_imagesShown] );
32 SetTimer( 0, TRIAL_EXIT_UPSELL_IMAGE_DISPLAY_TIME);
33
34 CXuiSceneBase::ShowBackground(DEFAULT_XUI_MENU_USER , FALSE);
35 CXuiSceneBase::ShowLogo(DEFAULT_XUI_MENU_USER , FALSE);
36
37 if( m_bCanExit )
38 {
39 ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_EXIT_GAME,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
40 }
41 else
42 {
43 ui.SetTooltips( DEFAULT_XUI_MENU_USER, -1,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
44 }
45
46 return S_OK;
47}
48
49HRESULT CScene_TrialExitUpsell::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled)
50{
51 // ignore repeats
52 if(pInputData->dwFlags&XUI_INPUT_FLAG_REPEAT) return S_OK;
53
54 ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
55
56 HRESULT hr=S_OK;
57
58 // Explicitly handle B button presses
59 switch(pInputData->dwKeyCode)
60 {
61 case VK_PAD_A:
62#ifdef _XBOX
63 if( m_bCanExit )
64 {
65 XLaunchNewImage(XLAUNCH_KEYWORD_DASH_ARCADE, 0);
66 }
67#endif
68 break;
69 case VK_PAD_B:
70 case VK_ESCAPE:
71 app.NavigateBack(pInputData->UserIndex);
72 rfHandled = TRUE;
73 break;
74 case VK_PAD_X:
75 if(ProfileManager.IsSignedIn(pInputData->UserIndex))
76 {
77 TelemetryManager->RecordUpsellPresented(pInputData->UserIndex, eSen_UpsellID_Full_Version_Of_Game, app.m_dwOfferID);
78 ProfileManager.DisplayFullVersionPurchase(false,pInputData->UserIndex,eSen_UpsellID_Full_Version_Of_Game);
79 }
80 break;
81 }
82
83 return hr;
84}
85
86HRESULT CScene_TrialExitUpsell::OnTimelineEnd(HXUIOBJ hObjSource, BOOL& bHandled)
87{
88 if(m_bFadeStarted)
89 {
90 m_bFadeStarted = false;
91 m_bShowingImage1 = !m_bShowingImage1;
92 // We start a timer so we know when this image has been displayed for the required time
93 return SetTimer( 0, TRIAL_EXIT_UPSELL_IMAGE_DISPLAY_TIME);
94 }
95 else
96 {
97 return S_OK;
98 }
99}
100
101HRESULT CScene_TrialExitUpsell::OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled )
102{
103 int nStart, nEnd;
104
105 KillTimer(0);
106
107 ++m_imagesShown;
108 if( m_imagesShown >= TRIAL_EXIT_UPSELL_IMAGE_COUNT )
109 {
110 m_imagesShown = 0; //Loop round to the start
111 m_bCanExit = true;
112
113 ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_EXIT_GAME,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
114 }
115
116 if( m_bShowingImage1 )
117 {
118 m_image2.SetImagePath( wchImages[m_imagesShown] );
119
120 FindNamedFrame( L"Fade1to2", &nStart );
121 FindNamedFrame( L"EndFade1to2", &nEnd );
122 PlayTimeline( nStart, nStart, nEnd, FALSE, TRUE );
123 m_bFadeStarted = true;
124 }
125 else
126 {
127 m_image1.SetImagePath( wchImages[m_imagesShown] );
128
129 FindNamedFrame( L"Fade2to1", &nStart );
130 FindNamedFrame( L"EndFade2to1", &nEnd );
131 PlayTimeline( nStart, nStart, nEnd, FALSE, TRUE );
132 m_bFadeStarted = true;
133 }
134
135 return S_OK;
136}