the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 347 lines 10 kB view raw
1#pragma once 2 3typedef struct { 4 WORD index; 5 DWORD diffsSize; 6 BYTE *diffs; 7 DWORD lastByteChanged; 8} TutorialDiff_Chunk; 9 10typedef struct { 11 DWORD diffCount; 12 TutorialDiff_Chunk *diffs; 13} TutorialDiff_File; 14 15#define TUTORIAL_NO_TEXT -1 16#define TUTORIAL_NO_ICON -1 17 18// If you want to make these bigger, be aware that that will affect what is stored after the tutorial data in the profile data 19// See Xbox_App.h for the struct 20#define TUTORIAL_PROFILE_STORAGE_BITS 512 21#define TUTORIAL_PROFILE_STORAGE_BYTES (TUTORIAL_PROFILE_STORAGE_BITS/8) 22 23// 4J Stu - The total number of eTutorial_State and eTutorial_Hint must be less than 512, as we only have 512 bits of profile 24// data to flag whether or not the player has seen them 25// In general a block or tool will have one each. We have a state if we need more than one message, or a hint if just once 26// message will suffice 27// Tasks added here should also be added in the Tutorial::staticCtor() if you wish to store completion in the profile data 28enum eTutorial_State 29{ 30 e_Tutorial_State_Any = -2, 31 e_Tutorial_State_None = -1, 32 33 e_Tutorial_State_Gameplay = 0, 34 35 e_Tutorial_State_Inventory_Menu, 36 e_Tutorial_State_2x2Crafting_Menu, 37 e_Tutorial_State_3x3Crafting_Menu, 38 e_Tutorial_State_Furnace_Menu, 39 40 e_Tutorial_State_Riding_Minecart, 41 e_Tutorial_State_Riding_Boat, 42 e_Tutorial_State_Fishing, 43 44 e_Tutorial_State_Bed, 45 46 e_Tutorial_State_Container_Menu, 47 e_Tutorial_State_Trap_Menu, 48 e_Tutorial_State_Redstone_And_Piston, 49 e_Tutorial_State_Portal, 50 e_Tutorial_State_Creative_Inventory_Menu, // Added TU5 51 e_Tutorial_State_Food_Bar, // Added TU5 52 e_Tutorial_State_CreativeMode, // Added TU7 53 e_Tutorial_State_Brewing, 54 e_Tutorial_State_Brewing_Menu, 55 e_Tutorial_State_Enchanting, 56 e_Tutorial_State_Enchanting_Menu, 57 e_Tutorial_State_Farming, 58 e_Tutorial_State_Breeding, 59 e_Tutorial_State_Golem, 60 e_Tutorial_State_Trading, 61 e_Tutorial_State_Trading_Menu, 62 e_Tutorial_State_Anvil, 63 e_Tutorial_State_Anvil_Menu, 64 e_Tutorial_State_Enderchests, 65 e_Tutorial_State_Horse, 66 e_Tutorial_State_Horse_Menu, 67 e_Tutorial_State_Hopper, 68 e_Tutorial_State_Hopper_Menu, 69 e_Tutorial_State_Beacon, 70 e_Tutorial_State_Beacon_Menu, 71 e_Tutorial_State_Fireworks, 72 e_Tutorial_State_Fireworks_Menu, 73 74 e_Tutorial_State_Max 75}; 76 77// Hints added here should also be added in the Tutorial::staticCtor() if you wish to store completion in the profile data 78enum eTutorial_Hint 79{ 80 e_Tutorial_Hint_Always_On = e_Tutorial_State_Max, 81 82 e_Tutorial_Hint_Hold_To_Mine, 83 e_Tutorial_Hint_Tool_Damaged, 84 e_Tutorial_Hint_Swim_Up, 85 86 e_Tutorial_Hint_Unused_2, 87 e_Tutorial_Hint_Unused_3, 88 e_Tutorial_Hint_Unused_4, 89 e_Tutorial_Hint_Unused_5, 90 e_Tutorial_Hint_Unused_6, 91 e_Tutorial_Hint_Unused_7, 92 e_Tutorial_Hint_Unused_8, 93 e_Tutorial_Hint_Unused_9, 94 e_Tutorial_Hint_Unused_10, 95 96 e_Tutorial_Hint_Rock, 97 e_Tutorial_Hint_Stone, 98 e_Tutorial_Hint_Planks, 99 e_Tutorial_Hint_Sapling, 100 e_Tutorial_Hint_Unbreakable, 101 e_Tutorial_Hint_Water, 102 e_Tutorial_Hint_Lava, 103 e_Tutorial_Hint_Sand, 104 e_Tutorial_Hint_Gravel, 105 e_Tutorial_Hint_Gold_Ore, 106 e_Tutorial_Hint_Iron_Ore, 107 e_Tutorial_Hint_Coal_Ore, 108 e_Tutorial_Hint_Tree_Trunk, 109 e_Tutorial_Hint_Leaves, 110 e_Tutorial_Hint_Glass, 111 e_Tutorial_Hint_Lapis_Ore, 112 e_Tutorial_Hint_Lapis_Block, 113 e_Tutorial_Hint_Dispenser, 114 e_Tutorial_Hint_Sandstone, 115 e_Tutorial_Hint_Note_Block, 116 e_Tutorial_Hint_Powered_Rail, 117 e_Tutorial_Hint_Detector_Rail, 118 e_Tutorial_Hint_Tall_Grass, 119 e_Tutorial_Hint_Wool, 120 e_Tutorial_Hint_Flower, 121 e_Tutorial_Hint_Mushroom, 122 e_Tutorial_Hint_Gold_Block, 123 e_Tutorial_Hint_Iron_Block, 124 e_Tutorial_Hint_Stone_Slab, 125 e_Tutorial_Hint_Red_Brick, 126 e_Tutorial_Hint_Tnt, 127 e_Tutorial_Hint_Bookshelf, 128 e_Tutorial_Hint_Moss_Stone, 129 e_Tutorial_Hint_Obsidian, 130 e_Tutorial_Hint_Torch, 131 e_Tutorial_Hint_MobSpawner, 132 e_Tutorial_Hint_Chest, 133 e_Tutorial_Hint_Redstone, 134 e_Tutorial_Hint_Diamond_Ore, 135 e_Tutorial_Hint_Diamond_Block, 136 e_Tutorial_Hint_Crafting_Table, 137 e_Tutorial_Hint_Crops, 138 e_Tutorial_Hint_Farmland, 139 e_Tutorial_Hint_Furnace, 140 e_Tutorial_Hint_Sign, 141 e_Tutorial_Hint_Door_Wood, 142 e_Tutorial_Hint_Ladder, 143 e_Tutorial_Hint_Stairs_Stone, 144 e_Tutorial_Hint_Rail, 145 e_Tutorial_Hint_Lever, 146 e_Tutorial_Hint_PressurePlate, 147 e_Tutorial_Hint_Door_Iron, 148 e_Tutorial_Hint_Redstone_Ore, 149 e_Tutorial_Hint_Redstone_Torch, 150 e_Tutorial_Hint_Button, 151 e_Tutorial_Hint_Snow, 152 e_Tutorial_Hint_Ice, 153 e_Tutorial_Hint_Cactus, 154 e_Tutorial_Hint_Clay, 155 e_Tutorial_Hint_Sugarcane, 156 e_Tutorial_Hint_Record_Player, 157 e_Tutorial_Hint_Pumpkin, 158 e_Tutorial_Hint_Hell_Rock, 159 e_Tutorial_Hint_Hell_Sand, 160 e_Tutorial_Hint_Glowstone, 161 e_Tutorial_Hint_Portal, 162 e_Tutorial_Hint_Pumpkin_Lit, 163 e_Tutorial_Hint_Cake, 164 e_Tutorial_Hint_Redstone_Repeater, 165 e_Tutorial_Hint_Trapdoor, 166 e_Tutorial_Hint_Piston, 167 e_Tutorial_Hint_Sticky_Piston, 168 e_Tutorial_Hint_Monster_Stone_Egg, 169 e_Tutorial_Hint_Stone_Brick_Smooth, 170 e_Tutorial_Hint_Huge_Mushroom, 171 e_Tutorial_Hint_Iron_Fence, 172 e_Tutorial_Hint_Thin_Glass, 173 e_Tutorial_Hint_Melon, 174 e_Tutorial_Hint_Vine, 175 e_Tutorial_Hint_Fence_Gate, 176 e_Tutorial_Hint_Mycel, 177 e_Tutorial_Hint_Water_Lily, 178 e_Tutorial_Hint_Nether_Brick, 179 e_Tutorial_Hint_Nether_Fence, 180 e_Tutorial_Hint_Nether_Stalk, 181 e_Tutorial_Hint_Enchant_Table, 182 e_Tutorial_Hint_Brewing_Stand, 183 e_Tutorial_Hint_Cauldron, 184 e_Tutorial_Hint_End_Portal, 185 e_Tutorial_Hint_End_Portal_Frame, 186 187 e_Tutorial_Hint_Squid, 188 e_Tutorial_Hint_Cow, 189 e_Tutorial_Hint_Sheep, 190 e_Tutorial_Hint_Chicken, 191 e_Tutorial_Hint_Pig, 192 e_Tutorial_Hint_Wolf, 193 e_Tutorial_Hint_Creeper, 194 e_Tutorial_Hint_Skeleton, 195 e_Tutorial_Hint_Spider, 196 e_Tutorial_Hint_Zombie, 197 e_Tutorial_Hint_Pig_Zombie, 198 e_Tutorial_Hint_Ghast, 199 e_Tutorial_Hint_Slime, 200 e_Tutorial_Hint_Enderman, 201 e_Tutorial_Hint_Silverfish, 202 e_Tutorial_Hint_Cave_Spider, 203 e_Tutorial_Hint_MushroomCow, 204 e_Tutorial_Hint_SnowMan, 205 e_Tutorial_Hint_IronGolem, 206 e_Tutorial_Hint_EnderDragon, 207 e_Tutorial_Hint_Blaze, 208 e_Tutorial_Hint_Lava_Slime, 209 e_Tutorial_Hint_Ozelot, 210 e_Tutorial_Hint_Villager, 211 e_Tutorial_Hint_Wither, 212 e_Tutorial_Hint_Witch, 213 e_Tutorial_Hint_Bat, 214 e_Tutorial_Hint_Horse, 215 216 e_Tutorial_Hint_Item_Shovel, 217 e_Tutorial_Hint_Item_Hatchet, 218 e_Tutorial_Hint_Item_Pickaxe, 219 e_Tutorial_Hint_Item_Flint_And_Steel, 220 e_Tutorial_Hint_Item_Apple, 221 e_Tutorial_Hint_Item_Bow, 222 e_Tutorial_Hint_Item_Arrow, 223 e_Tutorial_Hint_Item_Coal, 224 e_Tutorial_Hint_Item_Diamond, 225 e_Tutorial_Hint_Item_Iron_Ingot, 226 e_Tutorial_Hint_Item_Gold_Ingot, 227 e_Tutorial_Hint_Item_Sword, 228 e_Tutorial_Hint_Item_Stick, 229 e_Tutorial_Hint_Item_Bowl, 230 e_Tutorial_Hint_Item_Mushroom_Stew, 231 e_Tutorial_Hint_Item_String, 232 e_Tutorial_Hint_Item_Feather, 233 e_Tutorial_Hint_Item_Sulphur, 234 e_Tutorial_Hint_Item_Hoe, 235 e_Tutorial_Hint_Item_Seeds, 236 e_Tutorial_Hint_Item_Wheat, 237 e_Tutorial_Hint_Item_Bread, 238 e_Tutorial_Hint_Item_Helmet, 239 e_Tutorial_Hint_Item_Chestplate, 240 e_Tutorial_Hint_Item_Leggings, 241 e_Tutorial_Hint_Item_Boots, 242 e_Tutorial_Hint_Item_Flint, 243 e_Tutorial_Hint_Item_Porkchop_Raw, 244 e_Tutorial_Hint_Item_Porkchop_Cooked, 245 e_Tutorial_Hint_Item_Painting, 246 e_Tutorial_Hint_Item_Apple_Gold, 247 e_Tutorial_Hint_Item_Sign, 248 e_Tutorial_Hint_Item_Door_Wood, 249 e_Tutorial_Hint_Item_Bucket_Empty, 250 e_Tutorial_Hint_Item_Bucket_Water, 251 e_Tutorial_Hint_Item_Bucket_Lava, 252 e_Tutorial_Hint_Item_Minecart, 253 e_Tutorial_Hint_Item_Saddle, 254 e_Tutorial_Hint_Item_Door_Iron, 255 e_Tutorial_Hint_Item_Redstone, 256 e_Tutorial_Hint_Item_Snowball, 257 e_Tutorial_Hint_Item_Boat, 258 e_Tutorial_Hint_Item_Leather, 259 e_Tutorial_Hint_Item_Milk, 260 e_Tutorial_Hint_Item_Brick, 261 e_Tutorial_Hint_Item_Clay, 262 e_Tutorial_Hint_Item_Reeds, 263 e_Tutorial_Hint_Item_Paper, 264 e_Tutorial_Hint_Item_Book, 265 e_Tutorial_Hint_Item_Slimeball, 266 e_Tutorial_Hint_Item_Minecart_Chest, 267 e_Tutorial_Hint_Item_Minecart_Furnace, 268 e_Tutorial_Hint_Item_Egg, 269 e_Tutorial_Hint_Item_Compass, 270 e_Tutorial_Hint_Item_Clock, 271 e_Tutorial_Hint_Item_Yellow_Dust, 272 e_Tutorial_Hint_Item_Fish_Raw, 273 e_Tutorial_Hint_Item_Fish_Cooked, 274 e_Tutorial_Hint_Item_Dye_Powder, 275 e_Tutorial_Hint_Item_Bone, 276 e_Tutorial_Hint_Item_Sugar, 277 e_Tutorial_Hint_Item_Cake, 278 e_Tutorial_Hint_Item_Diode, 279 e_Tutorial_Hint_Item_Cookie, 280 e_Tutorial_Hint_Item_Map, 281 e_Tutorial_Hint_Item_Record, 282 283 e_Tutorial_Hint_White_Stone, 284 e_Tutorial_Hint_Dragon_Egg, 285 e_Tutorial_Hint_RedstoneLamp, 286 e_Tutorial_Hint_Cocoa, 287 288 e_Tutorial_Hint_EmeraldOre, 289 e_Tutorial_Hint_EmeraldBlock, 290 e_Tutorial_Hint_EnderChest, 291 e_Tutorial_Hint_TripwireSource, 292 e_Tutorial_Hint_Tripwire, 293 e_Tutorial_Hint_CobblestoneWall, 294 e_Tutorial_Hint_Flowerpot, 295 e_Tutorial_Hint_Anvil, 296 e_Tutorial_Hint_QuartzOre, 297 e_Tutorial_Hint_QuartzBlock, 298 e_Tutorial_Hint_WoolCarpet, 299 300 e_Tutorial_Hint_Potato, 301 e_Tutorial_Hint_Carrot, 302 303 e_Tutorial_Hint_CommandBlock, 304 e_Tutorial_Hint_Beacon, 305 e_Tutorial_Hint_Activator_Rail, 306 e_Tutorial_Hint_RedstoneBlock, 307 e_Tutorial_Hint_DaylightDetector, 308 e_Tutorial_Hint_Dropper, 309 e_Tutorial_Hint_Hopper, 310 e_Tutorial_Hint_Comparator, 311 e_Tutorial_Hint_ChestTrap, 312 e_Tutorial_Hint_HayBlock, 313 e_Tutorial_Hint_ClayHardened, 314 e_Tutorial_Hint_ClayHardenedColored, 315 e_Tutorial_Hint_CoalBlock, 316 317 e_Tutorial_Hint_Item_Max, 318}; 319 320// We store the first time that we complete these tasks to be used in telemetry 321enum eTutorial_Telemetry 322{ 323 eTutorial_Telemetry_None = e_Tutorial_Hint_Item_Max, 324 325 eTutorial_Telemetry_TrialStart, 326 eTutorial_Telemetry_Halfway, 327 eTutorial_Telemetry_Complete, 328 329 eTutorial_Telemetry_Unused_1, 330 eTutorial_Telemetry_Unused_2, 331 eTutorial_Telemetry_Unused_3, 332 eTutorial_Telemetry_Unused_4, 333 eTutorial_Telemetry_Unused_5, 334 eTutorial_Telemetry_Unused_6, 335 eTutorial_Telemetry_Unused_7, 336 eTutorial_Telemetry_Unused_8, 337 eTutorial_Telemetry_Unused_9, 338 eTutorial_Telemetry_Unused_10, 339}; 340 341enum eTutorial_CompletionAction 342{ 343 e_Tutorial_Completion_None, 344 e_Tutorial_Completion_Complete_State, // This will make the current tutorial state complete 345 e_Tutorial_Completion_Complete_State_Gameplay_Constraints, // This will make the current tutorial state complete, and move the delayed constraints to the gameplay state 346 e_Tutorial_Completion_Jump_To_Last_Task, 347};