diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp')
| -rw-r--r-- | Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp b/Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp new file mode 100644 index 00000000..51121099 --- /dev/null +++ b/Minecraft.Client/Common/XUI/XUI_TrialExitUpsell.cpp @@ -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; +}
\ No newline at end of file |
