Files
MinecraftConsoles/Minecraft.Client/Common/XUI/XUI_HelpHowToPlay.h
2026-03-01 12:16:08 +08:00

218 lines
9.9 KiB
C++

#pragma once
#include "../media/xuiscene_howtoplay.h"
#include "XUI_CustomMessages.h"
enum EHowToPlayTextControls
{
eHowToPlay_TextNone = -1,
eHowToPlay_TextWhatsNew = 0,
eHowToPlay_TextBasics,
eHowToPlay_TextMultiplayer,
eHowToPlay_TextHUD,
eHowToPlay_TextCreative,
eHowToPlay_TextInventory,
eHowToPlay_TextSmallChest,
eHowToPlay_TextLargeChest,
eHowToPlay_TextEnderchest,
eHowToPlay_TextCrafting,
eHowToPlay_TextCraftTable,
eHowToPlay_TextFurnace,
eHowToPlay_TextDispenser,
eHowToPlay_TextBrewing,
eHowToPlay_TextEnchantment,
eHowToPlay_TextAnvil,
eHowToPlay_TextFarmingAnimals,
eHowToPlay_TextBreeding,
eHowToPlay_TextTrading,
eHowToPlay_TextNetherPortal,
eHowToPlay_TextTheEnd,
eHowToPlay_TextSocialMedia,
eHowToPlay_TextBanList,
eHowToPlay_TextHostOptions,
eHowToPlay_NumTexts
};
enum EHowToPlayImageControls
{
eHowToPlay_ImageNone = -1,
eHowToPlay_ImageHUD = 0,
eHowToPlay_ImageCreative,
eHowToPlay_ImageInventory,
eHowToPlay_ImageChest,
eHowToPlay_ImageLargeChest,
eHowToPlay_ImageEnderChest,
eHowToPlay_ImageInventoryCrafting,
eHowToPlay_ImageCraftingTable,
eHowToPlay_ImageFurnace,
eHowToPlay_ImageDispenser,
eHowToPlay_ImageBrewing,
eHowToPlay_ImageEnchantment,
eHowToPlay_ImageAnvil,
eHowToPlay_ImageFarmingAnimals,
eHowToPlay_ImageBreeding,
eHowToPlay_ImageTrading,
eHowToPlay_ImageNetherPortal,
eHowToPlay_ImageTheEnd,
eHowToPlay_NumImages
};
enum EHowToPlayLabelControls
{
eHowToPlay_LabelNone = -1,
eHowToPlay_LabelIInventory =0,
eHowToPlay_LabelSCInventory ,
eHowToPlay_LabelSCChest ,
eHowToPlay_LabelLCInventory ,
eHowToPlay_LabelLCChest ,
eHowToPlay_LabelCItem ,
eHowToPlay_LabelCGroup ,
eHowToPlay_LabelCInventory2x2 ,
eHowToPlay_LabelCTItem ,
eHowToPlay_LabelCTGroup ,
eHowToPlay_LabelCTInventory3x3 ,
eHowToPlay_LabelFFuel ,
eHowToPlay_LabelFInventory ,
eHowToPlay_LabelFIngredient ,
eHowToPlay_LabelFChest ,
eHowToPlay_LabelDText ,
eHowToPlay_LabelDInventory ,
eHowToPlay_LabelCreativeInventory,
eHowToPlay_LabelEEnchant,
eHowToPlay_LabelEInventory,
eHowToPlay_LabelBBrew,
eHowToPlay_LabelBInventory,
eHowToPlay_LabelAnvil_Inventory,
eHowToPlay_LabelAnvil_Cost,
eHowToPlay_LabelAnvil_ARepairAndName,
eHowToPlay_LabelTrading_Inventory,
eHowToPlay_LabelTrading_Offer2,
eHowToPlay_LabelTrading_Offer1,
eHowToPlay_LabelTrading_NeededForTrade,
eHowToPlay_LabelTrading_VillagerOffers,
eHowToPlay_NumLabels
};
struct SHowToPlayPageDef
{
int m_iTextControlIndex; // eHowToPlay_TextNone if not used.
int m_iTextStringID; // -1 if not used.
int m_iImageControlIndex; // eHowToPlay_ImageNone if not used.
int m_iLabelStartIndex; // index of the labels if there are any for the page
int m_iLabelCount;
};
class CScene_HowToPlay : public CXuiSceneImpl
{
protected:
int m_iPad;
D3DXVECTOR3 m_OriginalPosition;
EHowToPlayPage m_eCurrPage;
// Control and Element wrapper objects.
CXuiHtmlElement m_aTextControls[ eHowToPlay_NumTexts ];
CXuiControl m_aImageControls[ eHowToPlay_NumImages ];
CXuiControl m_aLabelControls[ eHowToPlay_NumLabels ];
// Message map. Here we tie messages to message handlers.
XUI_BEGIN_MSG_MAP()
XUI_ON_XM_INIT( OnInit )
XUI_ON_XM_KEYDOWN(OnKeyDown)
XUI_ON_XM_SPLITSCREENPLAYER_MESSAGE(OnCustomMessage_Splitscreenplayer)
XUI_END_MSG_MAP()
// Control mapping to objects
BEGIN_CONTROL_MAP()
MAP_CONTROL(IDC_XuiHtmlControlMultiplayer, m_aTextControls[ eHowToPlay_TextMultiplayer ] )
MAP_CONTROL(IDC_XuiHtmlControlBasics, m_aTextControls[ eHowToPlay_TextBasics ] )
MAP_CONTROL(IDC_XuiHtmlControlHUD, m_aTextControls[ eHowToPlay_TextHUD ] )
MAP_CONTROL(IDC_XuiHtmlControlCreative, m_aTextControls[ eHowToPlay_TextCreative ] )
MAP_CONTROL(IDC_XuiHtmlControlInventory, m_aTextControls[ eHowToPlay_TextInventory ] )
MAP_CONTROL(IDC_XuiHtmlControlChest, m_aTextControls[ eHowToPlay_TextSmallChest ] )
MAP_CONTROL(IDC_XuiHtmlControlLargeChest, m_aTextControls[ eHowToPlay_TextLargeChest ] )
MAP_CONTROL(IDC_XuiHtmlControlEnderchest, m_aTextControls[ eHowToPlay_TextEnderchest ] )
MAP_CONTROL(IDC_XuiHtmlControlCrafting, m_aTextControls[ eHowToPlay_TextCrafting ] )
MAP_CONTROL(IDC_XuiHtmlControlCraftingTable, m_aTextControls[ eHowToPlay_TextCraftTable ] )
MAP_CONTROL(IDC_XuiHtmlControlFurnace, m_aTextControls[ eHowToPlay_TextFurnace ] )
MAP_CONTROL(IDC_XuiHtmlControlDispenser, m_aTextControls[ eHowToPlay_TextDispenser ] )
MAP_CONTROL(IDC_XuiHtmlControlBrewing, m_aTextControls[ eHowToPlay_TextBrewing ] )
MAP_CONTROL(IDC_XuiHtmlControlEnchantment, m_aTextControls[ eHowToPlay_TextEnchantment ] )
MAP_CONTROL(IDC_XuiHtmlControlAnvil, m_aTextControls[ eHowToPlay_TextAnvil ] )
MAP_CONTROL(IDC_XuiHtmlControlFarmingAnimals, m_aTextControls[ eHowToPlay_TextFarmingAnimals ] )
MAP_CONTROL(IDC_XuiHtmlControlBreeding, m_aTextControls[ eHowToPlay_TextBreeding ] )
MAP_CONTROL(IDC_XuiHtmlControlTrading, m_aTextControls[ eHowToPlay_TextTrading ] )
MAP_CONTROL(IDC_XuiHtmlControlNetherPortal, m_aTextControls[ eHowToPlay_TextNetherPortal ] )
MAP_CONTROL(IDC_XuiHtmlControlTheEnd, m_aTextControls[ eHowToPlay_TextTheEnd ] )
MAP_CONTROL(IDC_XuiHtmlControlSocialMedia, m_aTextControls[ eHowToPlay_TextSocialMedia ] )
MAP_CONTROL(IDC_XuiHtmlControlBanList, m_aTextControls[ eHowToPlay_TextBanList ] )
MAP_CONTROL(IDC_XuiHtmlControlWhatsNew, m_aTextControls[ eHowToPlay_TextWhatsNew ] )
MAP_CONTROL(IDC_XuiHtmlControlHostOptions, m_aTextControls[ eHowToPlay_TextHostOptions] )
MAP_CONTROL(IDC_XuiImageHUD, m_aImageControls[ eHowToPlay_ImageHUD ] )
MAP_CONTROL(IDC_XuiImageCreative, m_aImageControls[ eHowToPlay_ImageCreative ] )
MAP_CONTROL(IDC_XuiImageInventory, m_aImageControls[ eHowToPlay_ImageInventory ] )
MAP_CONTROL(IDC_XuiImageChest, m_aImageControls[ eHowToPlay_ImageChest ] )
MAP_CONTROL(IDC_XuiImageLargeChest, m_aImageControls[ eHowToPlay_ImageLargeChest ] )
MAP_CONTROL(IDC_XuiImageEnderchest, m_aImageControls[ eHowToPlay_ImageEnderChest ] )
MAP_CONTROL(IDC_XuiImageCrafting, m_aImageControls[ eHowToPlay_ImageInventoryCrafting ] )
MAP_CONTROL(IDC_XuiImageCraftingTable, m_aImageControls[ eHowToPlay_ImageCraftingTable ] )
MAP_CONTROL(IDC_XuiImageFurnace, m_aImageControls[ eHowToPlay_ImageFurnace ] )
MAP_CONTROL(IDC_XuiImageDispenser, m_aImageControls[ eHowToPlay_ImageDispenser ] )
MAP_CONTROL(IDC_XuiImageBrewing, m_aImageControls[ eHowToPlay_ImageBrewing ] )
MAP_CONTROL(IDC_XuiImageEnchantment, m_aImageControls[ eHowToPlay_ImageEnchantment ] )
MAP_CONTROL(IDC_XuiImageAnvil, m_aImageControls[ eHowToPlay_ImageAnvil ] )
MAP_CONTROL(IDC_XuiImageBreeding, m_aImageControls[ eHowToPlay_ImageBreeding ] )
MAP_CONTROL(IDC_XuiImageFarmingAnimals, m_aImageControls[ eHowToPlay_ImageFarmingAnimals ] )
MAP_CONTROL(IDC_XuiImageTrading, m_aImageControls[ eHowToPlay_ImageTrading ] )
MAP_CONTROL(IDC_XuiImageNetherPortal, m_aImageControls[ eHowToPlay_ImageNetherPortal ] )
MAP_CONTROL(IDC_XuiImageTheEnd, m_aImageControls[ eHowToPlay_ImageTheEnd ] )
MAP_CONTROL(IDC_CTItem, m_aLabelControls[ eHowToPlay_LabelCTItem ] )
MAP_CONTROL(IDC_CTGroup, m_aLabelControls[ eHowToPlay_LabelCTGroup ] )
MAP_CONTROL(IDC_CTInventory3x3, m_aLabelControls[ eHowToPlay_LabelCTInventory3x3 ] )
MAP_CONTROL(IDC_CItem, m_aLabelControls[ eHowToPlay_LabelCItem ] )
MAP_CONTROL(IDC_CGroup, m_aLabelControls[ eHowToPlay_LabelCGroup ] )
MAP_CONTROL(IDC_CInventory, m_aLabelControls[ eHowToPlay_LabelCInventory2x2 ] )
MAP_CONTROL(IDC_FFuel, m_aLabelControls[ eHowToPlay_LabelFFuel ] )
MAP_CONTROL(IDC_FInventory, m_aLabelControls[ eHowToPlay_LabelFInventory ] )
MAP_CONTROL(IDC_FIngredient, m_aLabelControls[ eHowToPlay_LabelFIngredient ] )
MAP_CONTROL(IDC_FChest, m_aLabelControls[ eHowToPlay_LabelFChest ] )
MAP_CONTROL(IDC_LCInventory, m_aLabelControls[ eHowToPlay_LabelLCInventory ] )
MAP_CONTROL(IDC_CIGroup, m_aLabelControls[ eHowToPlay_LabelCreativeInventory ] )
MAP_CONTROL(IDC_LCChest, m_aLabelControls[ eHowToPlay_LabelLCChest ] )
MAP_CONTROL(IDC_SCInventory, m_aLabelControls[ eHowToPlay_LabelSCInventory ] )
MAP_CONTROL(IDC_SCChest, m_aLabelControls[ eHowToPlay_LabelSCChest ] )
MAP_CONTROL(IDC_IInventory, m_aLabelControls[ eHowToPlay_LabelIInventory ] )
MAP_CONTROL(IDC_DInventory, m_aLabelControls[ eHowToPlay_LabelDInventory ] )
MAP_CONTROL(IDC_DText, m_aLabelControls[ eHowToPlay_LabelDText ] )
MAP_CONTROL(IDC_EEnchant, m_aLabelControls[ eHowToPlay_LabelEEnchant ] )
MAP_CONTROL(IDC_EInventory, m_aLabelControls[ eHowToPlay_LabelEInventory ] )
MAP_CONTROL(IDC_BBrew, m_aLabelControls[ eHowToPlay_LabelBBrew ] )
MAP_CONTROL(IDC_BInventory, m_aLabelControls[ eHowToPlay_LabelBInventory ] )
MAP_CONTROL(IDC_AInventory, m_aLabelControls[ eHowToPlay_LabelAnvil_Inventory ] )
MAP_CONTROL(IDC_ACost, m_aLabelControls[ eHowToPlay_LabelAnvil_Cost ] )
MAP_CONTROL(IDC_ARepairAndName, m_aLabelControls[ eHowToPlay_LabelAnvil_ARepairAndName ] )
MAP_CONTROL(IDC_TInventory, m_aLabelControls[ eHowToPlay_LabelTrading_Inventory ] )
//MAP_CONTROL(IDC_TOffer2Label, m_aLabelControls[ eHowToPlay_LabelTrading_Offer2 ] )
MAP_CONTROL(IDC_TOffer1Label, m_aLabelControls[ eHowToPlay_LabelTrading_Offer1 ] )
MAP_CONTROL(IDC_TNeededForTrade, m_aLabelControls[ eHowToPlay_LabelTrading_NeededForTrade ] )
MAP_CONTROL(IDC_TVillagerOffers, m_aLabelControls[ eHowToPlay_LabelTrading_VillagerOffers ] )
END_CONTROL_MAP()
HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled);
HRESULT OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled);
void StartPage( EHowToPlayPage ePage );
public:
// Define the class. The class name must match the ClassOverride property
// set for the scene in the UI Authoring tool.
XUI_IMPLEMENT_CLASS( CScene_HowToPlay, L"CScene_HowToPlay", XUI_CLASS_SCENE )
};