2026-03-01 12:16:08 +08:00
# include "stdafx.h"
# include <assert.h>
2026-04-14 16:47:37 -05:00
# include "../XUI/XUI_SaveMessage.h"
2026-03-01 12:16:08 +08:00
//----------------------------------------------------------------------------------
// Performs initialization tasks - retrieves controls.
//----------------------------------------------------------------------------------
HRESULT CScene_SaveMessage : : OnInit ( XUIMessageInit * pInitData , BOOL & bHandled )
{
MapChildControls ( ) ;
CXuiSceneBase : : ShowBackground ( DEFAULT_XUI_MENU_USER , TRUE ) ;
CXuiSceneBase : : ShowLogo ( DEFAULT_XUI_MENU_USER , TRUE ) ;
m_button . SetText ( app . GetString ( IDS_CONFIRM_OK ) ) ;
m_SaveMessage . SetText ( app . GetString ( IDS_SAVE_ICON_MESSAGE ) ) ;
ui . SetTooltips ( DEFAULT_XUI_MENU_USER , IDS_TOOLTIPS_SELECT ) ;
// 4J-PB - If we have a signed in user connected, let's get the DLC now
for ( unsigned int i = 0 ; i < XUSER_MAX_COUNT ; + + i )
{
if ( ( InputManager . IsPadConnected ( i ) | | ProfileManager . IsSignedIn ( i ) ) )
{
if ( ! app . DLCInstallProcessCompleted ( ) & & ! app . DLCInstallPending ( ) )
{
app . StartInstallDLCProcess ( i ) ;
break ;
}
}
}
// set a timer on the saving message screen, so we continue after 8 seconds
XuiSetTimer ( m_hObj , 0 , 8000 ) ;
m_bIgnoreInput = false ;
return S_OK ;
}
//----------------------------------------------------------------------------------
// Handler for the button press message.
//----------------------------------------------------------------------------------
HRESULT CScene_SaveMessage : : OnNotifyPressEx ( HXUIOBJ hObjPressed , XUINotifyPress * pNotifyPressData , BOOL & rfHandled )
{
if ( m_bIgnoreInput ) return S_OK ;
// This assumes all buttons can only be pressed with the A button
ui . AnimateKeyPress ( pNotifyPressData - > UserIndex , VK_PAD_A ) ;
XuiKillTimer ( m_hObj , 0 ) ;
app . NavigateToScene ( XUSER_INDEX_ANY , eUIScene_MainMenu ) ;
rfHandled = TRUE ;
return S_OK ;
}
HRESULT CScene_SaveMessage : : OnKeyDown ( XUIMessageInput * pInputData , BOOL & rfHandled )
{
if ( m_bIgnoreInput ) return S_OK ;
ui . AnimateKeyPress ( pInputData - > UserIndex , pInputData - > dwKeyCode ) ;
return S_OK ;
}
// 4J-PB - added for Compliance fail -
// Games must enter an interactive state that accepts player input within 20 seconds after the initial start-up sequence.
// If an animation or cinematic shown during the start-up sequence runs longer than 20 seconds, it must be skippable using the START button or natural input.
HRESULT CScene_SaveMessage : : OnTimer ( XUIMessageTimer * pData , BOOL & rfHandled )
{
m_bIgnoreInput = true ;
XuiKillTimer ( m_hObj , 0 ) ;
app . NavigateToScene ( XUSER_INDEX_ANY , eUIScene_MainMenu ) ;
return S_OK ;
}