first commit
This commit is contained in:
136
Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp
Normal file
136
Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp
Normal file
@@ -0,0 +1,136 @@
|
||||
#include "stdafx.h"
|
||||
#include "XUI_TrialExitUpsell.h"
|
||||
|
||||
// wchImages[TRIAL_EXIT_UPSELL_IMAGE_COUNT]
|
||||
WCHAR *CScene_TrialExitUpsell::wchImages[]=
|
||||
{
|
||||
L"Graphics/UpsellScreenshots/Screenshot1.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot2.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot3.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot4.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot5.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot6.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot7.png",
|
||||
L"Graphics/UpsellScreenshots/Screenshot8.png"
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Performs initialization tasks - retrieves controls.
|
||||
//----------------------------------------------------------------------------------
|
||||
HRESULT CScene_TrialExitUpsell::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
|
||||
{
|
||||
m_iPad=*(int *)pInitData->pvInitData;
|
||||
|
||||
MapChildControls();
|
||||
|
||||
m_bCanExit = true;
|
||||
m_bFadeStarted = false;
|
||||
m_bShowingImage1 = true;
|
||||
m_imagesShown = 0;
|
||||
|
||||
m_image1.SetImagePath( wchImages[m_imagesShown] );
|
||||
SetTimer( 0, TRIAL_EXIT_UPSELL_IMAGE_DISPLAY_TIME);
|
||||
|
||||
CXuiSceneBase::ShowBackground(DEFAULT_XUI_MENU_USER , FALSE);
|
||||
CXuiSceneBase::ShowLogo(DEFAULT_XUI_MENU_USER , FALSE);
|
||||
|
||||
if( m_bCanExit )
|
||||
{
|
||||
ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_EXIT_GAME,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.SetTooltips( DEFAULT_XUI_MENU_USER, -1,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CScene_TrialExitUpsell::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled)
|
||||
{
|
||||
// ignore repeats
|
||||
if(pInputData->dwFlags&XUI_INPUT_FLAG_REPEAT) return S_OK;
|
||||
|
||||
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
|
||||
|
||||
HRESULT hr=S_OK;
|
||||
|
||||
// Explicitly handle B button presses
|
||||
switch(pInputData->dwKeyCode)
|
||||
{
|
||||
case VK_PAD_A:
|
||||
#ifdef _XBOX
|
||||
if( m_bCanExit )
|
||||
{
|
||||
XLaunchNewImage(XLAUNCH_KEYWORD_DASH_ARCADE, 0);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case VK_PAD_B:
|
||||
case VK_ESCAPE:
|
||||
app.NavigateBack(pInputData->UserIndex);
|
||||
rfHandled = TRUE;
|
||||
break;
|
||||
case VK_PAD_X:
|
||||
if(ProfileManager.IsSignedIn(pInputData->UserIndex))
|
||||
{
|
||||
TelemetryManager->RecordUpsellPresented(pInputData->UserIndex, eSen_UpsellID_Full_Version_Of_Game, app.m_dwOfferID);
|
||||
ProfileManager.DisplayFullVersionPurchase(false,pInputData->UserIndex,eSen_UpsellID_Full_Version_Of_Game);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT CScene_TrialExitUpsell::OnTimelineEnd(HXUIOBJ hObjSource, BOOL& bHandled)
|
||||
{
|
||||
if(m_bFadeStarted)
|
||||
{
|
||||
m_bFadeStarted = false;
|
||||
m_bShowingImage1 = !m_bShowingImage1;
|
||||
// We start a timer so we know when this image has been displayed for the required time
|
||||
return SetTimer( 0, TRIAL_EXIT_UPSELL_IMAGE_DISPLAY_TIME);
|
||||
}
|
||||
else
|
||||
{
|
||||
return S_OK;
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT CScene_TrialExitUpsell::OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled )
|
||||
{
|
||||
int nStart, nEnd;
|
||||
|
||||
KillTimer(0);
|
||||
|
||||
++m_imagesShown;
|
||||
if( m_imagesShown >= TRIAL_EXIT_UPSELL_IMAGE_COUNT )
|
||||
{
|
||||
m_imagesShown = 0; //Loop round to the start
|
||||
m_bCanExit = true;
|
||||
|
||||
ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_EXIT_GAME,IDS_TOOLTIPS_BACK, IDS_UNLOCK_TITLE);
|
||||
}
|
||||
|
||||
if( m_bShowingImage1 )
|
||||
{
|
||||
m_image2.SetImagePath( wchImages[m_imagesShown] );
|
||||
|
||||
FindNamedFrame( L"Fade1to2", &nStart );
|
||||
FindNamedFrame( L"EndFade1to2", &nEnd );
|
||||
PlayTimeline( nStart, nStart, nEnd, FALSE, TRUE );
|
||||
m_bFadeStarted = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_image1.SetImagePath( wchImages[m_imagesShown] );
|
||||
|
||||
FindNamedFrame( L"Fade2to1", &nStart );
|
||||
FindNamedFrame( L"EndFade2to1", &nEnd );
|
||||
PlayTimeline( nStart, nStart, nEnd, FALSE, TRUE );
|
||||
m_bFadeStarted = true;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
Reference in New Issue
Block a user