#pragma once #include "../media/xuiscene_base.h" #include "XUI_Ctrl_SlotItem.h" #include "XUI_CustomMessages.h" #include "..\UI\UIEnums.h" #include "..\..\..\Minecraft.World\SoundTypes.h" #define BUTTON_TOOLTIP_A 0 #define BUTTON_TOOLTIP_B 1 #define BUTTON_TOOLTIP_X 2 #define BUTTON_TOOLTIP_Y 3 #define BUTTON_TOOLTIP_LT 4 #define BUTTON_TOOLTIP_RT 5 #define BUTTON_TOOLTIP_LB 6 #define BUTTON_TOOLTIP_RB 7 #define BUTTON_TOOLTIP_LS 8 #define BUTTONS_TOOLTIP_MAX 9 #define SFX_BACK 0 #define SFX_CRAFT 1 #define SFX_CRAFTFAIL 2 #define SFX_FOCUS 3 #define SFX_PRESS 4 #define SFX_SCROLL 5 #define SFX_MAX 6 // This should be our target screen height and width #define XUI_BASE_SCENE_WIDTH 1280.0f #define XUI_BASE_SCENE_HEIGHT 720.0f #define XUI_BASE_SCENE_WIDTH_HALF 640.0f #define XUI_BASE_SCENE_HEIGHT_HALF 360.0f #define XUI_BASE_SCENE_WIDTH_QUARTER 320.0f #define XUI_BASE_SCENE_HEIGHT_QUARTER 180.0f #define SAFEZONE_HALF_HEIGHT 36.0f #define SAFEZONE_HALF_WIDTH 64.0f // How much we scale each base for splitscreen (should be 0.5f) #define XUI_BASE_SPLITSCREEN_SCALE 1.0f//0.5f // 4J-PB - TODO - move scenes instead // We make the tooltips bigger as they are unreadable when scaled by the above #define XUI_BASE_SPLIT_TOOLTIPS_SCALE 1.0f//1.5f // The percentage of starting size that the tooltips grow by #define XUI_BASE_SPLIT_TOOLTIPS_DIFF (XUI_BASE_SPLIT_TOOLTIPS_SCALE - 1.0f) class CXuiSceneBase : public CXuiSceneImpl { public: enum EBaseScenePosition { e_BaseScene_NotSet, // 1 player e_BaseScene_Fullscreen, // 2 Player split-screen e_BaseScene_Top, e_BaseScene_Bottom, e_BaseScene_Left, e_BaseScene_Right, // 3/4 Player split-screen e_BaseScene_Top_Left, e_BaseScene_Top_Right, e_BaseScene_Bottom_Left, e_BaseScene_Bottom_Right, }; protected: static const int m_iTooltipSpacingGap=10; static const int m_iTooltipSpacingGapSmall=5; D3DXVECTOR3 m_vPosTextInTooltip[BUTTONS_TOOLTIP_MAX]; D3DXVECTOR3 m_vPosTextInTooltipSmall[BUTTONS_TOOLTIP_MAX]; D3DXVECTOR3 vLogoPosA[XUSER_MAX_COUNT]; // We have a group of these per player CXuiScene m_BasePlayerScene[XUSER_MAX_COUNT]; // Control and Element wrapper objects. CXuiControl m_TooltipGroup[XUSER_MAX_COUNT]; CXuiControl m_Buttons[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; CXuiControl m_TooltipGroupSmall[XUSER_MAX_COUNT]; CXuiControl m_ButtonsSmall[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; CXuiControl m_bottomLeftAnchorPoint[XUSER_MAX_COUNT]; CXuiControl m_topLeftAnchorPoint[XUSER_MAX_COUNT]; CXuiControl m_SavingIcon; CXuiControl m_Background[XUSER_MAX_COUNT]; CXuiControl m_DarkOverlay[XUSER_MAX_COUNT]; CXuiControl m_Logo[XUSER_MAX_COUNT]; CXuiControl m_CrouchIcon[XUSER_MAX_COUNT]; CXuiControl m_PressStart; CXuiControl m_TrialTimer; CXuiControl m_SafeArea; CXuiControl m_BossHealthGroup[XUSER_MAX_COUNT]; CXuiControl m_BossHealthText[XUSER_MAX_COUNT]; CXuiProgressBar *m_pBossHealthProgress; CXuiProgressBar m_BossHealthProgress1[XUSER_MAX_COUNT]; CXuiProgressBar m_BossHealthProgress2[XUSER_MAX_COUNT]; CXuiProgressBar m_BossHealthProgress3[XUSER_MAX_COUNT]; CXuiProgressBar m_BossHealthProgress1_small[XUSER_MAX_COUNT]; CXuiProgressBar m_BossHealthProgress2_small[XUSER_MAX_COUNT]; CXuiProgressBar m_BossHealthProgress3_small[XUSER_MAX_COUNT]; int m_ticksWithNoBoss; CXuiSound m_SFXA[SFX_MAX]; HXUIOBJ m_hEmptyQuadrantLogo; HXUIOBJ m_hGamerTagA[XUSER_MAX_COUNT]; CXuiControl m_selectedItemA[XUSER_MAX_COUNT]; CXuiControl m_selectedItemSmallA[XUSER_MAX_COUNT]; BOOL m_visible[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; BOOL m_bossHealthVisible[XUSER_MAX_COUNT]; int m_iWrongTexturePackTickC; // Message map. Here we tie messages to message handlers. XUI_BEGIN_MSG_MAP() XUI_ON_XM_INIT( OnInit ) XUI_ON_XM_TIMER( OnTimer ) XUI_ON_XM_SKIN_CHANGED( OnSkinChanged ) // XUI_ON_XM_DLCINSTALLED_MESSAGE(OnCustomMessage_DLCInstalled) // XUI_ON_XM_DLCLOADED_MESSAGE(OnCustomMessage_DLCMountingComplete) XUI_END_MSG_MAP() // Control mapping to objects BEGIN_CONTROL_MAP() MAP_CONTROL(IDC_XuiPressStartMessage, m_PressStart) MAP_CONTROL(IDC_XuiTrialTimer, m_TrialTimer) MAP_CONTROL(IDC_XuiSavingIcon, m_SavingIcon) MAP_CONTROL(IDC_SafeArea, m_SafeArea) MAP_CONTROL(IDC_XuiSoundXACTBack, m_SFXA[SFX_BACK]) MAP_CONTROL(IDC_XuiSoundXACTCraft,m_SFXA[SFX_CRAFT]) MAP_CONTROL(IDC_XuiSoundXACTCraftFail,m_SFXA[SFX_CRAFTFAIL]) MAP_CONTROL(IDC_XuiSoundXACTPress,m_SFXA[SFX_PRESS]) MAP_CONTROL(IDC_XuiSoundXACTFocus,m_SFXA[SFX_FOCUS]) MAP_CONTROL(IDC_XuiSoundXACTScroll,m_SFXA[SFX_SCROLL]) //MAP_CONTROL(IDC_BossHealth, m_BossHealthGroup) //BEGIN_MAP_CHILD_CONTROLS(m_BossHealthGroup) // MAP_CONTROL(IDC_TitleText, m_BossHealthText) // MAP_CONTROL(IDC_ProgressBar, m_BossHealthProgress) //END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_BasePlayer0, m_BasePlayerScene[0]) BEGIN_MAP_CHILD_CONTROLS(m_BasePlayerScene[0]) MAP_CONTROL(IDC_BottomLeftAnchorPoint, m_bottomLeftAnchorPoint[0]) MAP_CONTROL(IDC_TopLeftAnchorPoint, m_topLeftAnchorPoint[0]) MAP_CONTROL(IDC_Tooltips, m_TooltipGroup[0]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroup[0]) MAP_CONTROL(IDC_AButton, m_Buttons[0][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_Buttons[0][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_Buttons[0][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_Buttons[0][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_Buttons[0][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_Buttons[0][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_Buttons[0][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_Buttons[0][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_Buttons[0][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_TooltipsSmall, m_TooltipGroupSmall[0]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroupSmall[0]) MAP_CONTROL(IDC_AButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_ButtonsSmall[0][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_ButtonsSmall[0][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_ButtonsSmall[0][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_ButtonsSmall[0][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_Background, m_Background[0]) MAP_CONTROL(IDC_XuiDarkOverlay, m_DarkOverlay[0]) MAP_CONTROL(IDC_Logo, m_Logo[0]) MAP_CONTROL(IDC_SelectedItem, m_selectedItemA[0]) MAP_CONTROL(IDC_SelectedItemSmall, m_selectedItemSmallA[0]) MAP_CONTROL(IDC_BossHealth, m_BossHealthGroup[0]) BEGIN_MAP_CHILD_CONTROLS(m_BossHealthGroup[0]) MAP_CONTROL(IDC_TitleText, m_BossHealthText[0]) MAP_CONTROL(IDC_ProgressBar1, m_BossHealthProgress1[0]) MAP_CONTROL(IDC_ProgressBar2, m_BossHealthProgress2[0]) MAP_CONTROL(IDC_ProgressBar3, m_BossHealthProgress3[0]) MAP_CONTROL(IDC_ProgressBar1_small, m_BossHealthProgress1_small[0]) MAP_CONTROL(IDC_ProgressBar2_small, m_BossHealthProgress2_small[0]) MAP_CONTROL(IDC_ProgressBar3_small, m_BossHealthProgress3_small[0]) END_MAP_CHILD_CONTROLS() END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_BasePlayer1, m_BasePlayerScene[1]) BEGIN_MAP_CHILD_CONTROLS(m_BasePlayerScene[1]) MAP_CONTROL(IDC_BottomLeftAnchorPoint, m_bottomLeftAnchorPoint[1]) MAP_CONTROL(IDC_TopLeftAnchorPoint, m_topLeftAnchorPoint[1]) MAP_CONTROL(IDC_Tooltips, m_TooltipGroup[1]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroup[1]) MAP_CONTROL(IDC_AButton, m_Buttons[1][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_Buttons[1][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_Buttons[1][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_Buttons[1][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_Buttons[1][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_Buttons[1][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_Buttons[1][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_Buttons[1][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_Buttons[1][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_TooltipsSmall, m_TooltipGroupSmall[1]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroupSmall[1]) MAP_CONTROL(IDC_AButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_ButtonsSmall[1][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_ButtonsSmall[1][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_ButtonsSmall[1][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_ButtonsSmall[1][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_Background, m_Background[1]) MAP_CONTROL(IDC_XuiDarkOverlay, m_DarkOverlay[1]) MAP_CONTROL(IDC_Logo, m_Logo[1]) MAP_CONTROL(IDC_SelectedItem, m_selectedItemA[1]) MAP_CONTROL(IDC_SelectedItemSmall, m_selectedItemSmallA[1]) MAP_CONTROL(IDC_BossHealth, m_BossHealthGroup[1]) BEGIN_MAP_CHILD_CONTROLS(m_BossHealthGroup[1]) MAP_CONTROL(IDC_TitleText, m_BossHealthText[1]) MAP_CONTROL(IDC_ProgressBar1, m_BossHealthProgress1[1]) MAP_CONTROL(IDC_ProgressBar2, m_BossHealthProgress2[1]) MAP_CONTROL(IDC_ProgressBar3, m_BossHealthProgress3[1]) MAP_CONTROL(IDC_ProgressBar1_small, m_BossHealthProgress1_small[1]) MAP_CONTROL(IDC_ProgressBar2_small, m_BossHealthProgress2_small[1]) MAP_CONTROL(IDC_ProgressBar3_small, m_BossHealthProgress3_small[1]) END_MAP_CHILD_CONTROLS() END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_BasePlayer2, m_BasePlayerScene[2]) BEGIN_MAP_CHILD_CONTROLS(m_BasePlayerScene[2]) MAP_CONTROL(IDC_BottomLeftAnchorPoint, m_bottomLeftAnchorPoint[2]) MAP_CONTROL(IDC_TopLeftAnchorPoint, m_topLeftAnchorPoint[2]) MAP_CONTROL(IDC_Tooltips, m_TooltipGroup[2]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroup[2]) MAP_CONTROL(IDC_AButton, m_Buttons[2][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_Buttons[2][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_Buttons[2][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_Buttons[2][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_Buttons[2][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_Buttons[2][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_Buttons[2][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_Buttons[2][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_Buttons[2][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_TooltipsSmall, m_TooltipGroupSmall[2]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroupSmall[2]) MAP_CONTROL(IDC_AButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_ButtonsSmall[2][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_ButtonsSmall[2][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_ButtonsSmall[2][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_ButtonsSmall[2][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_Background, m_Background[2]) MAP_CONTROL(IDC_XuiDarkOverlay, m_DarkOverlay[2]) MAP_CONTROL(IDC_Logo, m_Logo[2]) MAP_CONTROL(IDC_SelectedItem, m_selectedItemA[2]) MAP_CONTROL(IDC_SelectedItemSmall, m_selectedItemSmallA[2]) MAP_CONTROL(IDC_BossHealth, m_BossHealthGroup[2]) BEGIN_MAP_CHILD_CONTROLS(m_BossHealthGroup[2]) MAP_CONTROL(IDC_TitleText, m_BossHealthText[2]) MAP_CONTROL(IDC_ProgressBar1, m_BossHealthProgress1[2]) MAP_CONTROL(IDC_ProgressBar2, m_BossHealthProgress2[2]) MAP_CONTROL(IDC_ProgressBar3, m_BossHealthProgress3[2]) MAP_CONTROL(IDC_ProgressBar1_small, m_BossHealthProgress1_small[2]) MAP_CONTROL(IDC_ProgressBar2_small, m_BossHealthProgress2_small[2]) MAP_CONTROL(IDC_ProgressBar3_small, m_BossHealthProgress3_small[2]) END_MAP_CHILD_CONTROLS() END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_BasePlayer3, m_BasePlayerScene[3]) BEGIN_MAP_CHILD_CONTROLS(m_BasePlayerScene[3]) MAP_CONTROL(IDC_BottomLeftAnchorPoint, m_bottomLeftAnchorPoint[3]) MAP_CONTROL(IDC_TopLeftAnchorPoint, m_topLeftAnchorPoint[3]) MAP_CONTROL(IDC_Tooltips, m_TooltipGroup[3]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroup[3]) MAP_CONTROL(IDC_AButton, m_Buttons[3][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_Buttons[3][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_Buttons[3][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_Buttons[3][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_Buttons[3][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_Buttons[3][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_Buttons[3][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_Buttons[3][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_Buttons[3][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_TooltipsSmall, m_TooltipGroupSmall[3]) BEGIN_MAP_CHILD_CONTROLS(m_TooltipGroupSmall[3]) MAP_CONTROL(IDC_AButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_A]) MAP_CONTROL(IDC_BButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_B]) MAP_CONTROL(IDC_XButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_X]) MAP_CONTROL(IDC_YButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_Y]) MAP_CONTROL(IDC_LTrigger, m_ButtonsSmall[3][BUTTON_TOOLTIP_LT]) MAP_CONTROL(IDC_RTrigger, m_ButtonsSmall[3][BUTTON_TOOLTIP_RT]) MAP_CONTROL(IDC_RBButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_RB]) MAP_CONTROL(IDC_LBButton, m_ButtonsSmall[3][BUTTON_TOOLTIP_LB]) MAP_CONTROL(IDC_LStick, m_Buttons[3][BUTTON_TOOLTIP_LS]) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_Background, m_Background[3]) MAP_CONTROL(IDC_XuiDarkOverlay, m_DarkOverlay[3]) MAP_CONTROL(IDC_Logo, m_Logo[3]) MAP_CONTROL(IDC_SelectedItem, m_selectedItemA[3]) MAP_CONTROL(IDC_SelectedItemSmall, m_selectedItemSmallA[3]) MAP_CONTROL(IDC_BossHealth, m_BossHealthGroup[3]) BEGIN_MAP_CHILD_CONTROLS(m_BossHealthGroup[3]) MAP_CONTROL(IDC_TitleText, m_BossHealthText[3]) MAP_CONTROL(IDC_ProgressBar1, m_BossHealthProgress1[3]) MAP_CONTROL(IDC_ProgressBar2, m_BossHealthProgress2[3]) MAP_CONTROL(IDC_ProgressBar3, m_BossHealthProgress3[3]) MAP_CONTROL(IDC_ProgressBar1_small, m_BossHealthProgress1_small[3]) MAP_CONTROL(IDC_ProgressBar2_small, m_BossHealthProgress2_small[3]) MAP_CONTROL(IDC_ProgressBar3_small, m_BossHealthProgress3_small[3]) END_MAP_CHILD_CONTROLS() END_MAP_CHILD_CONTROLS() END_CONTROL_MAP() HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled ); HRESULT OnTimer(XUIMessageTimer *pData,BOOL& rfHandled); HRESULT OnSkinChanged(BOOL& bHandled); // HRESULT OnCustomMessage_DLCInstalled(); // HRESULT OnCustomMessage_DLCMountingComplete(); public: // Define the class. The class name must match the ClassOverride property // set for the scene in the UI Authoring tool. XUI_IMPLEMENT_CLASS( CXuiSceneBase, L"CXuiSceneBase", XUI_CLASS_SCENE ) private: void _TickAllBaseScenes(); HRESULT _SetTooltipText( unsigned int iPad, unsigned int tooltip, int iTextID ); HRESULT _SetEnableTooltips( unsigned int iPad, BOOL bVal ); HRESULT _ShowTooltip( unsigned int iPad, unsigned int tooltip, bool show ); HRESULT _SetTooltipsEnabled( unsigned int iPad, bool bA = true, bool bB = true, bool bX = true, bool bY = true, bool bLT = true, bool bRT = true, bool bLB=true, bool bRB = true, bool bLS = true); HRESULT _RefreshTooltips( unsigned int iPad); HRESULT _EnableTooltip( unsigned int iPad, unsigned int tooltip, bool enable ); HRESULT _ShowSavingMessage( unsigned int iPad, C4JStorage::ESavingMessage eVal ); HRESULT _ShowBackground( unsigned int iPad, BOOL bShow ); HRESULT _ShowDarkOverlay( unsigned int iPad, BOOL bShow ); HRESULT _ShowLogo( unsigned int iPad, BOOL bShow ); HRESULT _ShowPressStart(unsigned int iPad); HRESULT _UpdateAutosaveCountdownTimer(unsigned int uiSeconds); HRESULT _ShowAutosaveCountdownTimer(BOOL bVal); HRESULT _UpdateTrialTimer(unsigned int iPad); HRESULT _ShowTrialTimer(BOOL bVal); void _ReduceTrialTimerValue(); HRESULT _HidePressStart(); HRESULT _ShowSafeArea( BOOL bShow ); HRESULT _ShowOtherPlayersBaseScene(int iPad, bool show); bool _PressStartPlaying(unsigned int iPad); HRESULT _SetPlayerBaseScenePosition( unsigned int iPad, EBaseScenePosition position ); void _UpdateSelectedItemPos( unsigned int iPad); EBaseScenePosition _GetPlayerBasePosition(int iPad); HRESULT _AnimateKeyPress(DWORD userIndex, DWORD dwKeyCode); HXUIOBJ _GetPlayerBaseScene(int iPad) {return m_BasePlayerScene[iPad].m_hObj;} HRESULT _PlayUISFX(ESoundEffect eSound); void _SetEmptyQuadrantLogo(int iPad,EBaseScenePosition ePos); HRESULT _DisplayGamertag( unsigned int iPad, BOOL bDisplay ); void _SetSelectedItem( unsigned int iPad, const wstring& name); void _HideAllGameUIElements(); bool _GetBaseSceneSafeZone( unsigned int iPad, D3DXVECTOR2 &origin, float &width, float &height); void ReLayout( unsigned int iPad ); private: static CXuiSceneBase *Instance; int m_iCurrentTooltipTextID[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; HXUIOBJ hTooltipText[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; HXUIOBJ hTooltipTextSmall[XUSER_MAX_COUNT][BUTTONS_TOOLTIP_MAX]; EBaseScenePosition m_playerBaseScenePosition[XUSER_MAX_COUNT]; bool m_bCrouching[XUSER_MAX_COUNT]; int m_iQuadrantsMask; unsigned int m_uiSelectedItemOpacityCountDown[XUSER_MAX_COUNT]; public: static DWORD m_dwTrialTimerLimitSecs; public: static CXuiSceneBase *GetInstance() { return Instance; } static void TickAllBaseScenes(); static HRESULT SetTooltipText( unsigned int iPad, unsigned int tooltip, int iTextID ); static HRESULT SetEnableTooltips( unsigned int iPad, BOOL bVal ); static HRESULT ShowTooltip( unsigned int iPad, unsigned int tooltip, bool show ); static HRESULT SetTooltips( unsigned int iPad, int iA, int iB=-1, int iX=-1, int iY=-1 , int iLT=-1, int iRT=-1, int iLB=-1, int iRB=-1, int iLS=-1, bool forceUpdate = false); static HRESULT RefreshTooltips( unsigned int iPad); static HRESULT EnableTooltip( unsigned int iPad, unsigned int tooltip, bool enable ); static HRESULT SetTooltipsEnabled( unsigned int iPad, bool bA = true, bool bB = true, bool bX = true, bool bY = true, bool bLT = true, bool bRT = true, bool bLB = true, bool bRB=true, bool bLS=true); static HRESULT AnimateKeyPress(DWORD userIndex, DWORD dwKeyCode); static HRESULT ShowSavingMessage( unsigned int iPad, C4JStorage::ESavingMessage eVal); static HRESULT ShowBackground( unsigned int iPad, BOOL bShow ); static HRESULT ShowDarkOverlay( unsigned int iPad, BOOL bShow ); static HRESULT ShowLogo( unsigned int iPad, BOOL bShow ); static HRESULT UpdateAutosaveCountdownTimer(unsigned int uiSeconds); static HRESULT ShowAutosaveCountdownTimer(BOOL bVal); static HRESULT UpdateTrialTimer(unsigned int iPad); static HRESULT ShowTrialTimer(BOOL bVal); static void ReduceTrialTimerValue(); static HRESULT HidePressStart(); static HRESULT ShowSafeArea( BOOL bShow ); static HRESULT ShowOtherPlayersBaseScene(int iPad, bool show); static HRESULT ShowPressStart(unsigned int iPad); static bool PressStartPlaying(unsigned int iPad); static HRESULT SetPlayerBaseScenePosition( unsigned int iPad, EBaseScenePosition position ); static HRESULT SetPlayerBasePositions(EBaseScenePosition pad0, EBaseScenePosition pad1, EBaseScenePosition pad2, EBaseScenePosition pad3); static HRESULT UpdatePlayerBasePositions(); static EBaseScenePosition GetPlayerBasePosition(int iPad); static void UpdateSelectedItemPos(int iPad); static HXUIOBJ GetPlayerBaseScene(int iPad); static HRESULT PlayUISFX(ESoundEffect eSound); static void SetEmptyQuadrantLogo(int iSection); static HRESULT DisplayGamertag( unsigned int iPad, BOOL bDisplay ); static void SetSelectedItem( unsigned int iPad, const wstring &name); static void HideAllGameUIElements(); // Returns details on the fully transformed (ie screen space) base scene position, adjusted for safe zones static bool GetBaseSceneSafeZone( unsigned int iPad, D3DXVECTOR2 &origin, float &width, float &height); #ifndef _XBOX static void CreateBaseSceneInstance(); #endif };