4jcraft/Minecraft.Client/Platform/Common/XUI/XUI_HelpHowToPlay.h
2026-03-22 12:40:22 -05:00

252 lines
10 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)
};