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_Scene_Base.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/Common/XUI/XUI_Scene_Base.h')
| -rw-r--r-- | Minecraft.Client/Common/XUI/XUI_Scene_Base.h | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/XUI/XUI_Scene_Base.h b/Minecraft.Client/Common/XUI/XUI_Scene_Base.h new file mode 100644 index 00000000..1a5b5d87 --- /dev/null +++ b/Minecraft.Client/Common/XUI/XUI_Scene_Base.h @@ -0,0 +1,432 @@ +#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 +}; |
