the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3#include "../media/xuiscene_howtoplay.h"
4#include "XUI_CustomMessages.h"
5
6enum EHowToPlayTextControls
7{
8 eHowToPlay_TextNone = -1,
9 eHowToPlay_TextWhatsNew = 0,
10 eHowToPlay_TextBasics,
11 eHowToPlay_TextMultiplayer,
12 eHowToPlay_TextHUD,
13 eHowToPlay_TextCreative,
14 eHowToPlay_TextInventory,
15 eHowToPlay_TextSmallChest,
16 eHowToPlay_TextLargeChest,
17 eHowToPlay_TextEnderchest,
18 eHowToPlay_TextCrafting,
19 eHowToPlay_TextCraftTable,
20 eHowToPlay_TextFurnace,
21 eHowToPlay_TextDispenser,
22 eHowToPlay_TextBrewing,
23 eHowToPlay_TextEnchantment,
24 eHowToPlay_TextAnvil,
25 eHowToPlay_TextFarmingAnimals,
26 eHowToPlay_TextBreeding,
27 eHowToPlay_TextTrading,
28 eHowToPlay_TextNetherPortal,
29 eHowToPlay_TextTheEnd,
30 eHowToPlay_TextSocialMedia,
31 eHowToPlay_TextBanList,
32 eHowToPlay_TextHostOptions,
33 eHowToPlay_NumTexts
34};
35
36enum EHowToPlayImageControls
37{
38 eHowToPlay_ImageNone = -1,
39 eHowToPlay_ImageHUD = 0,
40 eHowToPlay_ImageCreative,
41 eHowToPlay_ImageInventory,
42 eHowToPlay_ImageChest,
43 eHowToPlay_ImageLargeChest,
44 eHowToPlay_ImageEnderChest,
45 eHowToPlay_ImageInventoryCrafting,
46 eHowToPlay_ImageCraftingTable,
47 eHowToPlay_ImageFurnace,
48 eHowToPlay_ImageDispenser,
49 eHowToPlay_ImageBrewing,
50 eHowToPlay_ImageEnchantment,
51 eHowToPlay_ImageAnvil,
52 eHowToPlay_ImageFarmingAnimals,
53 eHowToPlay_ImageBreeding,
54 eHowToPlay_ImageTrading,
55 eHowToPlay_ImageNetherPortal,
56 eHowToPlay_ImageTheEnd,
57 eHowToPlay_NumImages
58};
59
60enum EHowToPlayLabelControls
61{
62 eHowToPlay_LabelNone = -1,
63 eHowToPlay_LabelIInventory =0,
64 eHowToPlay_LabelSCInventory ,
65 eHowToPlay_LabelSCChest ,
66 eHowToPlay_LabelLCInventory ,
67 eHowToPlay_LabelLCChest ,
68 eHowToPlay_LabelCItem ,
69 eHowToPlay_LabelCGroup ,
70 eHowToPlay_LabelCInventory2x2 ,
71 eHowToPlay_LabelCTItem ,
72 eHowToPlay_LabelCTGroup ,
73 eHowToPlay_LabelCTInventory3x3 ,
74 eHowToPlay_LabelFFuel ,
75 eHowToPlay_LabelFInventory ,
76 eHowToPlay_LabelFIngredient ,
77 eHowToPlay_LabelFChest ,
78 eHowToPlay_LabelDText ,
79 eHowToPlay_LabelDInventory ,
80 eHowToPlay_LabelCreativeInventory,
81 eHowToPlay_LabelEEnchant,
82 eHowToPlay_LabelEInventory,
83 eHowToPlay_LabelBBrew,
84 eHowToPlay_LabelBInventory,
85 eHowToPlay_LabelAnvil_Inventory,
86 eHowToPlay_LabelAnvil_Cost,
87 eHowToPlay_LabelAnvil_ARepairAndName,
88 eHowToPlay_LabelTrading_Inventory,
89 eHowToPlay_LabelTrading_Offer2,
90 eHowToPlay_LabelTrading_Offer1,
91 eHowToPlay_LabelTrading_NeededForTrade,
92 eHowToPlay_LabelTrading_VillagerOffers,
93 eHowToPlay_NumLabels
94};
95
96struct SHowToPlayPageDef
97{
98 int m_iTextControlIndex; // eHowToPlay_TextNone if not used.
99 int m_iTextStringID; // -1 if not used.
100 int m_iImageControlIndex; // eHowToPlay_ImageNone if not used.
101 int m_iLabelStartIndex; // index of the labels if there are any for the page
102 int m_iLabelCount;
103};
104
105class CScene_HowToPlay : public CXuiSceneImpl
106{
107protected:
108 int m_iPad;
109 D3DXVECTOR3 m_OriginalPosition;
110 EHowToPlayPage m_eCurrPage;
111
112 // Control and Element wrapper objects.
113 CXuiHtmlElement m_aTextControls[ eHowToPlay_NumTexts ];
114 CXuiControl m_aImageControls[ eHowToPlay_NumImages ];
115 CXuiControl m_aLabelControls[ eHowToPlay_NumLabels ];
116
117 // Message map. Here we tie messages to message handlers.
118 XUI_BEGIN_MSG_MAP()
119 XUI_ON_XM_INIT( OnInit )
120 XUI_ON_XM_KEYDOWN(OnKeyDown)
121 XUI_ON_XM_SPLITSCREENPLAYER_MESSAGE(OnCustomMessage_Splitscreenplayer)
122 XUI_END_MSG_MAP()
123
124 // Control mapping to objects
125 BEGIN_CONTROL_MAP()
126 MAP_CONTROL(IDC_XuiHtmlControlMultiplayer, m_aTextControls[ eHowToPlay_TextMultiplayer ] )
127 MAP_CONTROL(IDC_XuiHtmlControlBasics, m_aTextControls[ eHowToPlay_TextBasics ] )
128 MAP_CONTROL(IDC_XuiHtmlControlHUD, m_aTextControls[ eHowToPlay_TextHUD ] )
129 MAP_CONTROL(IDC_XuiHtmlControlCreative, m_aTextControls[ eHowToPlay_TextCreative ] )
130 MAP_CONTROL(IDC_XuiHtmlControlInventory, m_aTextControls[ eHowToPlay_TextInventory ] )
131 MAP_CONTROL(IDC_XuiHtmlControlChest, m_aTextControls[ eHowToPlay_TextSmallChest ] )
132 MAP_CONTROL(IDC_XuiHtmlControlLargeChest, m_aTextControls[ eHowToPlay_TextLargeChest ] )
133 MAP_CONTROL(IDC_XuiHtmlControlEnderchest, m_aTextControls[ eHowToPlay_TextEnderchest ] )
134 MAP_CONTROL(IDC_XuiHtmlControlCrafting, m_aTextControls[ eHowToPlay_TextCrafting ] )
135 MAP_CONTROL(IDC_XuiHtmlControlCraftingTable, m_aTextControls[ eHowToPlay_TextCraftTable ] )
136 MAP_CONTROL(IDC_XuiHtmlControlFurnace, m_aTextControls[ eHowToPlay_TextFurnace ] )
137 MAP_CONTROL(IDC_XuiHtmlControlDispenser, m_aTextControls[ eHowToPlay_TextDispenser ] )
138 MAP_CONTROL(IDC_XuiHtmlControlBrewing, m_aTextControls[ eHowToPlay_TextBrewing ] )
139 MAP_CONTROL(IDC_XuiHtmlControlEnchantment, m_aTextControls[ eHowToPlay_TextEnchantment ] )
140 MAP_CONTROL(IDC_XuiHtmlControlAnvil, m_aTextControls[ eHowToPlay_TextAnvil ] )
141 MAP_CONTROL(IDC_XuiHtmlControlFarmingAnimals, m_aTextControls[ eHowToPlay_TextFarmingAnimals ] )
142 MAP_CONTROL(IDC_XuiHtmlControlBreeding, m_aTextControls[ eHowToPlay_TextBreeding ] )
143 MAP_CONTROL(IDC_XuiHtmlControlTrading, m_aTextControls[ eHowToPlay_TextTrading ] )
144 MAP_CONTROL(IDC_XuiHtmlControlNetherPortal, m_aTextControls[ eHowToPlay_TextNetherPortal ] )
145 MAP_CONTROL(IDC_XuiHtmlControlTheEnd, m_aTextControls[ eHowToPlay_TextTheEnd ] )
146 MAP_CONTROL(IDC_XuiHtmlControlSocialMedia, m_aTextControls[ eHowToPlay_TextSocialMedia ] )
147 MAP_CONTROL(IDC_XuiHtmlControlBanList, m_aTextControls[ eHowToPlay_TextBanList ] )
148 MAP_CONTROL(IDC_XuiHtmlControlWhatsNew, m_aTextControls[ eHowToPlay_TextWhatsNew ] )
149 MAP_CONTROL(IDC_XuiHtmlControlHostOptions, m_aTextControls[ eHowToPlay_TextHostOptions] )
150
151 MAP_CONTROL(IDC_XuiImageHUD, m_aImageControls[ eHowToPlay_ImageHUD ] )
152 MAP_CONTROL(IDC_XuiImageCreative, m_aImageControls[ eHowToPlay_ImageCreative ] )
153 MAP_CONTROL(IDC_XuiImageInventory, m_aImageControls[ eHowToPlay_ImageInventory ] )
154 MAP_CONTROL(IDC_XuiImageChest, m_aImageControls[ eHowToPlay_ImageChest ] )
155 MAP_CONTROL(IDC_XuiImageLargeChest, m_aImageControls[ eHowToPlay_ImageLargeChest ] )
156 MAP_CONTROL(IDC_XuiImageEnderchest, m_aImageControls[ eHowToPlay_ImageEnderChest ] )
157 MAP_CONTROL(IDC_XuiImageCrafting, m_aImageControls[ eHowToPlay_ImageInventoryCrafting ] )
158 MAP_CONTROL(IDC_XuiImageCraftingTable, m_aImageControls[ eHowToPlay_ImageCraftingTable ] )
159 MAP_CONTROL(IDC_XuiImageFurnace, m_aImageControls[ eHowToPlay_ImageFurnace ] )
160 MAP_CONTROL(IDC_XuiImageDispenser, m_aImageControls[ eHowToPlay_ImageDispenser ] )
161 MAP_CONTROL(IDC_XuiImageBrewing, m_aImageControls[ eHowToPlay_ImageBrewing ] )
162 MAP_CONTROL(IDC_XuiImageEnchantment, m_aImageControls[ eHowToPlay_ImageEnchantment ] )
163 MAP_CONTROL(IDC_XuiImageAnvil, m_aImageControls[ eHowToPlay_ImageAnvil ] )
164 MAP_CONTROL(IDC_XuiImageBreeding, m_aImageControls[ eHowToPlay_ImageBreeding ] )
165 MAP_CONTROL(IDC_XuiImageFarmingAnimals, m_aImageControls[ eHowToPlay_ImageFarmingAnimals ] )
166 MAP_CONTROL(IDC_XuiImageTrading, m_aImageControls[ eHowToPlay_ImageTrading ] )
167 MAP_CONTROL(IDC_XuiImageNetherPortal, m_aImageControls[ eHowToPlay_ImageNetherPortal ] )
168 MAP_CONTROL(IDC_XuiImageTheEnd, m_aImageControls[ eHowToPlay_ImageTheEnd ] )
169
170 MAP_CONTROL(IDC_CTItem, m_aLabelControls[ eHowToPlay_LabelCTItem ] )
171 MAP_CONTROL(IDC_CTGroup, m_aLabelControls[ eHowToPlay_LabelCTGroup ] )
172 MAP_CONTROL(IDC_CTInventory3x3, m_aLabelControls[ eHowToPlay_LabelCTInventory3x3 ] )
173 MAP_CONTROL(IDC_CItem, m_aLabelControls[ eHowToPlay_LabelCItem ] )
174 MAP_CONTROL(IDC_CGroup, m_aLabelControls[ eHowToPlay_LabelCGroup ] )
175 MAP_CONTROL(IDC_CInventory, m_aLabelControls[ eHowToPlay_LabelCInventory2x2 ] )
176 MAP_CONTROL(IDC_FFuel, m_aLabelControls[ eHowToPlay_LabelFFuel ] )
177 MAP_CONTROL(IDC_FInventory, m_aLabelControls[ eHowToPlay_LabelFInventory ] )
178 MAP_CONTROL(IDC_FIngredient, m_aLabelControls[ eHowToPlay_LabelFIngredient ] )
179 MAP_CONTROL(IDC_FChest, m_aLabelControls[ eHowToPlay_LabelFChest ] )
180 MAP_CONTROL(IDC_LCInventory, m_aLabelControls[ eHowToPlay_LabelLCInventory ] )
181 MAP_CONTROL(IDC_CIGroup, m_aLabelControls[ eHowToPlay_LabelCreativeInventory ] )
182 MAP_CONTROL(IDC_LCChest, m_aLabelControls[ eHowToPlay_LabelLCChest ] )
183 MAP_CONTROL(IDC_SCInventory, m_aLabelControls[ eHowToPlay_LabelSCInventory ] )
184 MAP_CONTROL(IDC_SCChest, m_aLabelControls[ eHowToPlay_LabelSCChest ] )
185 MAP_CONTROL(IDC_IInventory, m_aLabelControls[ eHowToPlay_LabelIInventory ] )
186 MAP_CONTROL(IDC_DInventory, m_aLabelControls[ eHowToPlay_LabelDInventory ] )
187 MAP_CONTROL(IDC_DText, m_aLabelControls[ eHowToPlay_LabelDText ] )
188 MAP_CONTROL(IDC_EEnchant, m_aLabelControls[ eHowToPlay_LabelEEnchant ] )
189 MAP_CONTROL(IDC_EInventory, m_aLabelControls[ eHowToPlay_LabelEInventory ] )
190 MAP_CONTROL(IDC_BBrew, m_aLabelControls[ eHowToPlay_LabelBBrew ] )
191 MAP_CONTROL(IDC_BInventory, m_aLabelControls[ eHowToPlay_LabelBInventory ] )
192 MAP_CONTROL(IDC_AInventory, m_aLabelControls[ eHowToPlay_LabelAnvil_Inventory ] )
193 MAP_CONTROL(IDC_ACost, m_aLabelControls[ eHowToPlay_LabelAnvil_Cost ] )
194 MAP_CONTROL(IDC_ARepairAndName, m_aLabelControls[ eHowToPlay_LabelAnvil_ARepairAndName ] )
195 MAP_CONTROL(IDC_TInventory, m_aLabelControls[ eHowToPlay_LabelTrading_Inventory ] )
196 //MAP_CONTROL(IDC_TOffer2Label, m_aLabelControls[ eHowToPlay_LabelTrading_Offer2 ] )
197 MAP_CONTROL(IDC_TOffer1Label, m_aLabelControls[ eHowToPlay_LabelTrading_Offer1 ] )
198 MAP_CONTROL(IDC_TNeededForTrade, m_aLabelControls[ eHowToPlay_LabelTrading_NeededForTrade ] )
199 MAP_CONTROL(IDC_TVillagerOffers, m_aLabelControls[ eHowToPlay_LabelTrading_VillagerOffers ] )
200
201
202 END_CONTROL_MAP()
203
204 HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
205 HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled);
206 HRESULT OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled);
207
208 void StartPage( EHowToPlayPage ePage );
209public:
210
211 // Define the class. The class name must match the ClassOverride property
212 // set for the scene in the UI Authoring tool.
213 XUI_IMPLEMENT_CLASS( CScene_HowToPlay, L"CScene_HowToPlay", XUI_CLASS_SCENE )
214
215
216
217};