Files
2026-03-01 12:16:08 +08:00

129 lines
5.0 KiB
C++

#pragma once
#include "../media/xuiscene_hud.h"
#include "XUI_CustomMessages.h"
#define CHAT_LINES_COUNT 10
class CXuiSceneHud : public CXuiSceneImpl
{
private:
Random m_random;
int m_tickCount;
protected:
CXuiControl m_hudHolder; // Contains the HUD group to enable moving all elements together
CXuiControl m_hudGroup; // Contains all the HUD elements except crosshair, in a group that scales
CXuiControl m_hudScaleGroup; // Contains all the HUD elements except crosshair
CXuiControl m_hotbarGroup;
CXuiCtrlSlotItem *m_hotbarIcon[9];
CXuiProgressBar m_ExperienceProgress;
CXuiControl m_healthGroup;
CXuiControl m_healthIcon[10];
CXuiControl m_armourGroup;
CXuiControl m_armourIcon[10];
CXuiControl m_foodGroup;
CXuiControl m_foodIcon[10];
CXuiControl m_airGroup;
CXuiControl m_airIcon[10];
CXuiControl m_xpLevel;
D3DXVECTOR3 m_OriginalPosition;
int m_iPad;
// Message map. Here we tie messages to message handlers.
XUI_BEGIN_MSG_MAP()
XUI_ON_XM_INIT( OnInit )
XUI_ON_XM_SPLITSCREENPLAYER_MESSAGE(OnCustomMessage_Splitscreenplayer)
XUI_ON_XM_CUSTOMTICKSCENE_MESSAGE(OnCustomMessage_TickScene)
XUI_ON_XM_DLCINSTALLED_MESSAGE(OnCustomMessage_DLCInstalled)
XUI_ON_XM_DLCLOADED_MESSAGE(OnCustomMessage_DLCMountingComplete)
XUI_END_MSG_MAP()
BEGIN_CONTROL_MAP()
MAP_CONTROL(IDC_HudHolder, m_hudHolder)
BEGIN_MAP_CHILD_CONTROLS(m_hudHolder)
MAP_CONTROL(IDC_HudGroup, m_hudGroup)
BEGIN_MAP_CHILD_CONTROLS(m_hudGroup)
MAP_CONTROL(IDC_HudScaleGroup, m_hudScaleGroup)
BEGIN_MAP_CHILD_CONTROLS(m_hudScaleGroup)
MAP_CONTROL(IDC_Hotbar, m_hotbarGroup)
BEGIN_MAP_CHILD_CONTROLS(m_hotbarGroup)
MAP_OVERRIDE(IDC_Inventory1, m_hotbarIcon[0])
MAP_OVERRIDE(IDC_Inventory2, m_hotbarIcon[1])
MAP_OVERRIDE(IDC_Inventory3, m_hotbarIcon[2])
MAP_OVERRIDE(IDC_Inventory4, m_hotbarIcon[3])
MAP_OVERRIDE(IDC_Inventory5, m_hotbarIcon[4])
MAP_OVERRIDE(IDC_Inventory6, m_hotbarIcon[5])
MAP_OVERRIDE(IDC_Inventory7, m_hotbarIcon[6])
MAP_OVERRIDE(IDC_Inventory8, m_hotbarIcon[7])
MAP_OVERRIDE(IDC_Inventory9, m_hotbarIcon[8])
END_MAP_CHILD_CONTROLS()
MAP_CONTROL(IDC_ExperienceProgress, m_ExperienceProgress)
MAP_CONTROL(IDC_Health, m_healthGroup)
BEGIN_MAP_CHILD_CONTROLS(m_healthGroup)
MAP_CONTROL(IDC_Health0, m_healthIcon[0])
MAP_CONTROL(IDC_Health1, m_healthIcon[1])
MAP_CONTROL(IDC_Health2, m_healthIcon[2])
MAP_CONTROL(IDC_Health3, m_healthIcon[3])
MAP_CONTROL(IDC_Health4, m_healthIcon[4])
MAP_CONTROL(IDC_Health5, m_healthIcon[5])
MAP_CONTROL(IDC_Health6, m_healthIcon[6])
MAP_CONTROL(IDC_Health7, m_healthIcon[7])
MAP_CONTROL(IDC_Health8, m_healthIcon[8])
MAP_CONTROL(IDC_Health9, m_healthIcon[9])
END_MAP_CHILD_CONTROLS()
MAP_CONTROL(IDC_Armour, m_armourGroup)
BEGIN_MAP_CHILD_CONTROLS(m_armourGroup)
MAP_CONTROL(IDC_Armour0, m_armourIcon[0])
MAP_CONTROL(IDC_Armour1, m_armourIcon[1])
MAP_CONTROL(IDC_Armour2, m_armourIcon[2])
MAP_CONTROL(IDC_Armour3, m_armourIcon[3])
MAP_CONTROL(IDC_Armour4, m_armourIcon[4])
MAP_CONTROL(IDC_Armour5, m_armourIcon[5])
MAP_CONTROL(IDC_Armour6, m_armourIcon[6])
MAP_CONTROL(IDC_Armour7, m_armourIcon[7])
MAP_CONTROL(IDC_Armour8, m_armourIcon[8])
MAP_CONTROL(IDC_Armour9, m_armourIcon[9])
END_MAP_CHILD_CONTROLS()
MAP_CONTROL(IDC_Food, m_foodGroup)
BEGIN_MAP_CHILD_CONTROLS(m_foodGroup)
MAP_CONTROL(IDC_Food0, m_foodIcon[0])
MAP_CONTROL(IDC_Food1, m_foodIcon[1])
MAP_CONTROL(IDC_Food2, m_foodIcon[2])
MAP_CONTROL(IDC_Food3, m_foodIcon[3])
MAP_CONTROL(IDC_Food4, m_foodIcon[4])
MAP_CONTROL(IDC_Food5, m_foodIcon[5])
MAP_CONTROL(IDC_Food6, m_foodIcon[6])
MAP_CONTROL(IDC_Food7, m_foodIcon[7])
MAP_CONTROL(IDC_Food8, m_foodIcon[8])
MAP_CONTROL(IDC_Food9, m_foodIcon[9])
END_MAP_CHILD_CONTROLS()
MAP_CONTROL(IDC_Air, m_airGroup)
BEGIN_MAP_CHILD_CONTROLS(m_airGroup)
MAP_CONTROL(IDC_Air0, m_airIcon[0])
MAP_CONTROL(IDC_Air1, m_airIcon[1])
MAP_CONTROL(IDC_Air2, m_airIcon[2])
MAP_CONTROL(IDC_Air3, m_airIcon[3])
MAP_CONTROL(IDC_Air4, m_airIcon[4])
MAP_CONTROL(IDC_Air5, m_airIcon[5])
MAP_CONTROL(IDC_Air6, m_airIcon[6])
MAP_CONTROL(IDC_Air7, m_airIcon[7])
MAP_CONTROL(IDC_Air8, m_airIcon[8])
MAP_CONTROL(IDC_Air9, m_airIcon[9])
END_MAP_CHILD_CONTROLS()
MAP_CONTROL(IDC_XPLevel, m_xpLevel)
END_MAP_CHILD_CONTROLS()
END_MAP_CHILD_CONTROLS()
END_MAP_CHILD_CONTROLS()
END_CONTROL_MAP()
HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
HRESULT OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled);
HRESULT OnCustomMessage_TickScene();
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( CXuiSceneHud, L"CXuiSceneHud", XUI_CLASS_SCENE )
};