* try to resolve merge conflict
* feat: TU19 (Dec 2014) Features & Content (#32)
* December 2014 files
* Working release build
* Fix compilation issues
* Add sound to Windows64Media
* Add DLC content and force Tutorial DLC
* Revert "Add DLC content and force Tutorial DLC"
This reverts commit 97a4399472.
* Disable broken light packing
* Disable breakpoint during DLC texture map load
Allows DLC loading but the DLC textures are still broken
* Fix post build not working
* ...
* fix vs2022 build
* fix cmake build
---------
Co-authored-by: Loki <lokirautio@gmail.com>
347 lines
9.9 KiB
C
347 lines
9.9 KiB
C
#pragma once
|
|
|
|
typedef struct {
|
|
WORD index;
|
|
DWORD diffsSize;
|
|
BYTE *diffs;
|
|
DWORD lastByteChanged;
|
|
} TutorialDiff_Chunk;
|
|
|
|
typedef struct {
|
|
DWORD diffCount;
|
|
TutorialDiff_Chunk *diffs;
|
|
} TutorialDiff_File;
|
|
|
|
#define TUTORIAL_NO_TEXT -1
|
|
#define TUTORIAL_NO_ICON -1
|
|
|
|
// If you want to make these bigger, be aware that that will affect what is stored after the tutorial data in the profile data
|
|
// See Xbox_App.h for the struct
|
|
#define TUTORIAL_PROFILE_STORAGE_BITS 512
|
|
#define TUTORIAL_PROFILE_STORAGE_BYTES (TUTORIAL_PROFILE_STORAGE_BITS/8)
|
|
|
|
// 4J Stu - The total number of eTutorial_State and eTutorial_Hint must be less than 512, as we only have 512 bits of profile
|
|
// data to flag whether or not the player has seen them
|
|
// 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
|
|
// message will suffice
|
|
// Tasks added here should also be added in the Tutorial::staticCtor() if you wish to store completion in the profile data
|
|
enum eTutorial_State
|
|
{
|
|
e_Tutorial_State_Any = -2,
|
|
e_Tutorial_State_None = -1,
|
|
|
|
e_Tutorial_State_Gameplay = 0,
|
|
|
|
e_Tutorial_State_Inventory_Menu,
|
|
e_Tutorial_State_2x2Crafting_Menu,
|
|
e_Tutorial_State_3x3Crafting_Menu,
|
|
e_Tutorial_State_Furnace_Menu,
|
|
|
|
e_Tutorial_State_Riding_Minecart,
|
|
e_Tutorial_State_Riding_Boat,
|
|
e_Tutorial_State_Fishing,
|
|
|
|
e_Tutorial_State_Bed,
|
|
|
|
e_Tutorial_State_Container_Menu,
|
|
e_Tutorial_State_Trap_Menu,
|
|
e_Tutorial_State_Redstone_And_Piston,
|
|
e_Tutorial_State_Portal,
|
|
e_Tutorial_State_Creative_Inventory_Menu, // Added TU5
|
|
e_Tutorial_State_Food_Bar, // Added TU5
|
|
e_Tutorial_State_CreativeMode, // Added TU7
|
|
e_Tutorial_State_Brewing,
|
|
e_Tutorial_State_Brewing_Menu,
|
|
e_Tutorial_State_Enchanting,
|
|
e_Tutorial_State_Enchanting_Menu,
|
|
e_Tutorial_State_Farming,
|
|
e_Tutorial_State_Breeding,
|
|
e_Tutorial_State_Golem,
|
|
e_Tutorial_State_Trading,
|
|
e_Tutorial_State_Trading_Menu,
|
|
e_Tutorial_State_Anvil,
|
|
e_Tutorial_State_Anvil_Menu,
|
|
e_Tutorial_State_Enderchests,
|
|
e_Tutorial_State_Horse,
|
|
e_Tutorial_State_Horse_Menu,
|
|
e_Tutorial_State_Hopper,
|
|
e_Tutorial_State_Hopper_Menu,
|
|
e_Tutorial_State_Beacon,
|
|
e_Tutorial_State_Beacon_Menu,
|
|
e_Tutorial_State_Fireworks,
|
|
e_Tutorial_State_Fireworks_Menu,
|
|
|
|
e_Tutorial_State_Max
|
|
};
|
|
|
|
// Hints added here should also be added in the Tutorial::staticCtor() if you wish to store completion in the profile data
|
|
enum eTutorial_Hint
|
|
{
|
|
e_Tutorial_Hint_Always_On = e_Tutorial_State_Max,
|
|
|
|
e_Tutorial_Hint_Hold_To_Mine,
|
|
e_Tutorial_Hint_Tool_Damaged,
|
|
e_Tutorial_Hint_Swim_Up,
|
|
|
|
e_Tutorial_Hint_Unused_2,
|
|
e_Tutorial_Hint_Unused_3,
|
|
e_Tutorial_Hint_Unused_4,
|
|
e_Tutorial_Hint_Unused_5,
|
|
e_Tutorial_Hint_Unused_6,
|
|
e_Tutorial_Hint_Unused_7,
|
|
e_Tutorial_Hint_Unused_8,
|
|
e_Tutorial_Hint_Unused_9,
|
|
e_Tutorial_Hint_Unused_10,
|
|
|
|
e_Tutorial_Hint_Rock,
|
|
e_Tutorial_Hint_Stone,
|
|
e_Tutorial_Hint_Planks,
|
|
e_Tutorial_Hint_Sapling,
|
|
e_Tutorial_Hint_Unbreakable,
|
|
e_Tutorial_Hint_Water,
|
|
e_Tutorial_Hint_Lava,
|
|
e_Tutorial_Hint_Sand,
|
|
e_Tutorial_Hint_Gravel,
|
|
e_Tutorial_Hint_Gold_Ore,
|
|
e_Tutorial_Hint_Iron_Ore,
|
|
e_Tutorial_Hint_Coal_Ore,
|
|
e_Tutorial_Hint_Tree_Trunk,
|
|
e_Tutorial_Hint_Leaves,
|
|
e_Tutorial_Hint_Glass,
|
|
e_Tutorial_Hint_Lapis_Ore,
|
|
e_Tutorial_Hint_Lapis_Block,
|
|
e_Tutorial_Hint_Dispenser,
|
|
e_Tutorial_Hint_Sandstone,
|
|
e_Tutorial_Hint_Note_Block,
|
|
e_Tutorial_Hint_Powered_Rail,
|
|
e_Tutorial_Hint_Detector_Rail,
|
|
e_Tutorial_Hint_Tall_Grass,
|
|
e_Tutorial_Hint_Wool,
|
|
e_Tutorial_Hint_Flower,
|
|
e_Tutorial_Hint_Mushroom,
|
|
e_Tutorial_Hint_Gold_Block,
|
|
e_Tutorial_Hint_Iron_Block,
|
|
e_Tutorial_Hint_Stone_Slab,
|
|
e_Tutorial_Hint_Red_Brick,
|
|
e_Tutorial_Hint_Tnt,
|
|
e_Tutorial_Hint_Bookshelf,
|
|
e_Tutorial_Hint_Moss_Stone,
|
|
e_Tutorial_Hint_Obsidian,
|
|
e_Tutorial_Hint_Torch,
|
|
e_Tutorial_Hint_MobSpawner,
|
|
e_Tutorial_Hint_Chest,
|
|
e_Tutorial_Hint_Redstone,
|
|
e_Tutorial_Hint_Diamond_Ore,
|
|
e_Tutorial_Hint_Diamond_Block,
|
|
e_Tutorial_Hint_Crafting_Table,
|
|
e_Tutorial_Hint_Crops,
|
|
e_Tutorial_Hint_Farmland,
|
|
e_Tutorial_Hint_Furnace,
|
|
e_Tutorial_Hint_Sign,
|
|
e_Tutorial_Hint_Door_Wood,
|
|
e_Tutorial_Hint_Ladder,
|
|
e_Tutorial_Hint_Stairs_Stone,
|
|
e_Tutorial_Hint_Rail,
|
|
e_Tutorial_Hint_Lever,
|
|
e_Tutorial_Hint_PressurePlate,
|
|
e_Tutorial_Hint_Door_Iron,
|
|
e_Tutorial_Hint_Redstone_Ore,
|
|
e_Tutorial_Hint_Redstone_Torch,
|
|
e_Tutorial_Hint_Button,
|
|
e_Tutorial_Hint_Snow,
|
|
e_Tutorial_Hint_Ice,
|
|
e_Tutorial_Hint_Cactus,
|
|
e_Tutorial_Hint_Clay,
|
|
e_Tutorial_Hint_Sugarcane,
|
|
e_Tutorial_Hint_Record_Player,
|
|
e_Tutorial_Hint_Pumpkin,
|
|
e_Tutorial_Hint_Hell_Rock,
|
|
e_Tutorial_Hint_Hell_Sand,
|
|
e_Tutorial_Hint_Glowstone,
|
|
e_Tutorial_Hint_Portal,
|
|
e_Tutorial_Hint_Pumpkin_Lit,
|
|
e_Tutorial_Hint_Cake,
|
|
e_Tutorial_Hint_Redstone_Repeater,
|
|
e_Tutorial_Hint_Trapdoor,
|
|
e_Tutorial_Hint_Piston,
|
|
e_Tutorial_Hint_Sticky_Piston,
|
|
e_Tutorial_Hint_Monster_Stone_Egg,
|
|
e_Tutorial_Hint_Stone_Brick_Smooth,
|
|
e_Tutorial_Hint_Huge_Mushroom,
|
|
e_Tutorial_Hint_Iron_Fence,
|
|
e_Tutorial_Hint_Thin_Glass,
|
|
e_Tutorial_Hint_Melon,
|
|
e_Tutorial_Hint_Vine,
|
|
e_Tutorial_Hint_Fence_Gate,
|
|
e_Tutorial_Hint_Mycel,
|
|
e_Tutorial_Hint_Water_Lily,
|
|
e_Tutorial_Hint_Nether_Brick,
|
|
e_Tutorial_Hint_Nether_Fence,
|
|
e_Tutorial_Hint_Nether_Stalk,
|
|
e_Tutorial_Hint_Enchant_Table,
|
|
e_Tutorial_Hint_Brewing_Stand,
|
|
e_Tutorial_Hint_Cauldron,
|
|
e_Tutorial_Hint_End_Portal,
|
|
e_Tutorial_Hint_End_Portal_Frame,
|
|
|
|
e_Tutorial_Hint_Squid,
|
|
e_Tutorial_Hint_Cow,
|
|
e_Tutorial_Hint_Sheep,
|
|
e_Tutorial_Hint_Chicken,
|
|
e_Tutorial_Hint_Pig,
|
|
e_Tutorial_Hint_Wolf,
|
|
e_Tutorial_Hint_Creeper,
|
|
e_Tutorial_Hint_Skeleton,
|
|
e_Tutorial_Hint_Spider,
|
|
e_Tutorial_Hint_Zombie,
|
|
e_Tutorial_Hint_Pig_Zombie,
|
|
e_Tutorial_Hint_Ghast,
|
|
e_Tutorial_Hint_Slime,
|
|
e_Tutorial_Hint_Enderman,
|
|
e_Tutorial_Hint_Silverfish,
|
|
e_Tutorial_Hint_Cave_Spider,
|
|
e_Tutorial_Hint_MushroomCow,
|
|
e_Tutorial_Hint_SnowMan,
|
|
e_Tutorial_Hint_IronGolem,
|
|
e_Tutorial_Hint_EnderDragon,
|
|
e_Tutorial_Hint_Blaze,
|
|
e_Tutorial_Hint_Lava_Slime,
|
|
e_Tutorial_Hint_Ozelot,
|
|
e_Tutorial_Hint_Villager,
|
|
e_Tutorial_Hint_Wither,
|
|
e_Tutorial_Hint_Witch,
|
|
e_Tutorial_Hint_Bat,
|
|
e_Tutorial_Hint_Horse,
|
|
|
|
e_Tutorial_Hint_Item_Shovel,
|
|
e_Tutorial_Hint_Item_Hatchet,
|
|
e_Tutorial_Hint_Item_Pickaxe,
|
|
e_Tutorial_Hint_Item_Flint_And_Steel,
|
|
e_Tutorial_Hint_Item_Apple,
|
|
e_Tutorial_Hint_Item_Bow,
|
|
e_Tutorial_Hint_Item_Arrow,
|
|
e_Tutorial_Hint_Item_Coal,
|
|
e_Tutorial_Hint_Item_Diamond,
|
|
e_Tutorial_Hint_Item_Iron_Ingot,
|
|
e_Tutorial_Hint_Item_Gold_Ingot,
|
|
e_Tutorial_Hint_Item_Sword,
|
|
e_Tutorial_Hint_Item_Stick,
|
|
e_Tutorial_Hint_Item_Bowl,
|
|
e_Tutorial_Hint_Item_Mushroom_Stew,
|
|
e_Tutorial_Hint_Item_String,
|
|
e_Tutorial_Hint_Item_Feather,
|
|
e_Tutorial_Hint_Item_Sulphur,
|
|
e_Tutorial_Hint_Item_Hoe,
|
|
e_Tutorial_Hint_Item_Seeds,
|
|
e_Tutorial_Hint_Item_Wheat,
|
|
e_Tutorial_Hint_Item_Bread,
|
|
e_Tutorial_Hint_Item_Helmet,
|
|
e_Tutorial_Hint_Item_Chestplate,
|
|
e_Tutorial_Hint_Item_Leggings,
|
|
e_Tutorial_Hint_Item_Boots,
|
|
e_Tutorial_Hint_Item_Flint,
|
|
e_Tutorial_Hint_Item_Porkchop_Raw,
|
|
e_Tutorial_Hint_Item_Porkchop_Cooked,
|
|
e_Tutorial_Hint_Item_Painting,
|
|
e_Tutorial_Hint_Item_Apple_Gold,
|
|
e_Tutorial_Hint_Item_Sign,
|
|
e_Tutorial_Hint_Item_Door_Wood,
|
|
e_Tutorial_Hint_Item_Bucket_Empty,
|
|
e_Tutorial_Hint_Item_Bucket_Water,
|
|
e_Tutorial_Hint_Item_Bucket_Lava,
|
|
e_Tutorial_Hint_Item_Minecart,
|
|
e_Tutorial_Hint_Item_Saddle,
|
|
e_Tutorial_Hint_Item_Door_Iron,
|
|
e_Tutorial_Hint_Item_Redstone,
|
|
e_Tutorial_Hint_Item_Snowball,
|
|
e_Tutorial_Hint_Item_Boat,
|
|
e_Tutorial_Hint_Item_Leather,
|
|
e_Tutorial_Hint_Item_Milk,
|
|
e_Tutorial_Hint_Item_Brick,
|
|
e_Tutorial_Hint_Item_Clay,
|
|
e_Tutorial_Hint_Item_Reeds,
|
|
e_Tutorial_Hint_Item_Paper,
|
|
e_Tutorial_Hint_Item_Book,
|
|
e_Tutorial_Hint_Item_Slimeball,
|
|
e_Tutorial_Hint_Item_Minecart_Chest,
|
|
e_Tutorial_Hint_Item_Minecart_Furnace,
|
|
e_Tutorial_Hint_Item_Egg,
|
|
e_Tutorial_Hint_Item_Compass,
|
|
e_Tutorial_Hint_Item_Clock,
|
|
e_Tutorial_Hint_Item_Yellow_Dust,
|
|
e_Tutorial_Hint_Item_Fish_Raw,
|
|
e_Tutorial_Hint_Item_Fish_Cooked,
|
|
e_Tutorial_Hint_Item_Dye_Powder,
|
|
e_Tutorial_Hint_Item_Bone,
|
|
e_Tutorial_Hint_Item_Sugar,
|
|
e_Tutorial_Hint_Item_Cake,
|
|
e_Tutorial_Hint_Item_Diode,
|
|
e_Tutorial_Hint_Item_Cookie,
|
|
e_Tutorial_Hint_Item_Map,
|
|
e_Tutorial_Hint_Item_Record,
|
|
|
|
e_Tutorial_Hint_White_Stone,
|
|
e_Tutorial_Hint_Dragon_Egg,
|
|
e_Tutorial_Hint_RedstoneLamp,
|
|
e_Tutorial_Hint_Cocoa,
|
|
|
|
e_Tutorial_Hint_EmeraldOre,
|
|
e_Tutorial_Hint_EmeraldBlock,
|
|
e_Tutorial_Hint_EnderChest,
|
|
e_Tutorial_Hint_TripwireSource,
|
|
e_Tutorial_Hint_Tripwire,
|
|
e_Tutorial_Hint_CobblestoneWall,
|
|
e_Tutorial_Hint_Flowerpot,
|
|
e_Tutorial_Hint_Anvil,
|
|
e_Tutorial_Hint_QuartzOre,
|
|
e_Tutorial_Hint_QuartzBlock,
|
|
e_Tutorial_Hint_WoolCarpet,
|
|
|
|
e_Tutorial_Hint_Potato,
|
|
e_Tutorial_Hint_Carrot,
|
|
|
|
e_Tutorial_Hint_CommandBlock,
|
|
e_Tutorial_Hint_Beacon,
|
|
e_Tutorial_Hint_Activator_Rail,
|
|
e_Tutorial_Hint_RedstoneBlock,
|
|
e_Tutorial_Hint_DaylightDetector,
|
|
e_Tutorial_Hint_Dropper,
|
|
e_Tutorial_Hint_Hopper,
|
|
e_Tutorial_Hint_Comparator,
|
|
e_Tutorial_Hint_ChestTrap,
|
|
e_Tutorial_Hint_HayBlock,
|
|
e_Tutorial_Hint_ClayHardened,
|
|
e_Tutorial_Hint_ClayHardenedColored,
|
|
e_Tutorial_Hint_CoalBlock,
|
|
|
|
e_Tutorial_Hint_Item_Max,
|
|
};
|
|
|
|
// We store the first time that we complete these tasks to be used in telemetry
|
|
enum eTutorial_Telemetry
|
|
{
|
|
eTutorial_Telemetry_None = e_Tutorial_Hint_Item_Max,
|
|
|
|
eTutorial_Telemetry_TrialStart,
|
|
eTutorial_Telemetry_Halfway,
|
|
eTutorial_Telemetry_Complete,
|
|
|
|
eTutorial_Telemetry_Unused_1,
|
|
eTutorial_Telemetry_Unused_2,
|
|
eTutorial_Telemetry_Unused_3,
|
|
eTutorial_Telemetry_Unused_4,
|
|
eTutorial_Telemetry_Unused_5,
|
|
eTutorial_Telemetry_Unused_6,
|
|
eTutorial_Telemetry_Unused_7,
|
|
eTutorial_Telemetry_Unused_8,
|
|
eTutorial_Telemetry_Unused_9,
|
|
eTutorial_Telemetry_Unused_10,
|
|
};
|
|
|
|
enum eTutorial_CompletionAction
|
|
{
|
|
e_Tutorial_Completion_None,
|
|
e_Tutorial_Completion_Complete_State, // This will make the current tutorial state complete
|
|
e_Tutorial_Completion_Complete_State_Gameplay_Constraints, // This will make the current tutorial state complete, and move the delayed constraints to the gameplay state
|
|
e_Tutorial_Completion_Jump_To_Last_Task,
|
|
}; |