This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.
This reverts commit a9be52c41a.
136 lines
3.5 KiB
C++
136 lines
3.5 KiB
C++
#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;
|
|
} |