mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 12:13:40 +00:00
252 lines
10 KiB
C++
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)
|
|
};
|