diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index a2b02076..68e05cda 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -5,77 +5,121 @@ typedef s32 ItemFlag; enum ItemFlag_ { ItemFlag_None = -1, - ItemFlag_OshusSword = 0, - ItemFlag_WoodenShield = 1, - ItemFlag_Boomerang = 2, - ItemFlag_Shovel = 3, - ItemFlag_BombBag = 4, - ItemFlag_Bow = 5, - ItemFlag_GrapplingHook = 6, - ItemFlag_BombchuBag = 7, - ItemFlag_Hammer = 8, - ItemFlag_PotionA = 9, - ItemFlag_PotionB = 10, + /* 0x00 */ ItemFlag_OshusSword = 0, + /* 0x01 */ ItemFlag_WoodenShield = 1, + /* 0x02 */ ItemFlag_Boomerang = 2, + /* 0x03 */ ItemFlag_Shovel = 3, + /* 0x04 */ ItemFlag_BombBag = 4, + /* 0x05 */ ItemFlag_Bow = 5, + /* 0x06 */ ItemFlag_GrapplingHook = 6, + /* 0x07 */ ItemFlag_BombchuBag = 7, + /* 0x08 */ ItemFlag_Hammer = 8, + /* 0x09 */ ItemFlag_PotionA = 9, + /* 0x0a */ ItemFlag_PotionB = 10, ItemFlag_EQUIP_START = ItemFlag_OshusSword, ItemFlag_EQUIP_END = ItemFlag_PotionB + 1, ItemFlag_EQUIP_COUNT = ItemFlag_EQUIP_END - ItemFlag_EQUIP_START, - ItemFlag_SpiritOfCourage = 20, - ItemFlag_SpiritOfPower = 21, - ItemFlag_SpiritOfWisdom = 22, - ItemFlag_CourageLv1 = 23, - ItemFlag_PowerLv1 = 24, - ItemFlag_WisdomLv1 = 25, + /* 0x14 */ ItemFlag_SpiritOfCourage = 20, + /* 0x15 */ ItemFlag_SpiritOfPower = 21, + /* 0x16 */ ItemFlag_SpiritOfWisdom = 22, + /* 0x17 */ ItemFlag_CourageLv1 = 23, + /* 0x18 */ ItemFlag_PowerLv1 = 24, + /* 0x19 */ ItemFlag_WisdomLv1 = 25, ItemFlag_FAIRY_LV1 = ItemFlag_CourageLv1, - ItemFlag_CourageLv2 = 26, - ItemFlag_PowerLv2 = 27, - ItemFlag_WisdomLv2 = 28, + /* 0x1a */ ItemFlag_CourageLv2 = 26, + /* 0x1b */ ItemFlag_PowerLv2 = 27, + /* 0x1c */ ItemFlag_WisdomLv2 = 28, ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2, - ItemFlag_Hourglass = 32, - ItemFlag_SeaChartSW = 33, - ItemFlag_SeaChartNW = 34, - ItemFlag_SeaChartSE = 35, - ItemFlag_SeaChartNE = 36, - ItemFlag_PhantomSword = 37, - ItemFlag_SunKey = 38, + /* 0x20 */ ItemFlag_Hourglass = 32, + /* 0x21 */ ItemFlag_SeaChartSW = 33, + /* 0x22 */ ItemFlag_SeaChartNW = 34, + /* 0x23 */ ItemFlag_SeaChartSE = 35, + /* 0x24 */ ItemFlag_SeaChartNE = 36, + /* 0x25 */ ItemFlag_PhantomSword = 37, + /* 0x26 */ ItemFlag_SunKey = 38, + /* 0x27 */ ItemFlag_Unk_39 = 39, + /* 0x28 */ ItemFlag_FishingRod = 40, + /* 0x29 */ ItemFlag_Cannon = 41, + /* 0x2a */ ItemFlag_KingsKey = 42, + /* 0x2b */ ItemFlag_GhostKey = 43, + /* 0x2c */ ItemFlag_SalvageArm = 44, - ItemFlag_KingsKey = 42, - ItemFlag_GhostKey = 43, + /* 0x2d */ ItemFlag_SwordsmansScroll = 45, + /* 0x2e */ ItemFlag_CycloneSlate = 46, + /* 0x2f */ ItemFlag_Unk_47 = 47, - ItemFlag_SwordsmansScroll = 45, + /* 0x60 */ ItemFlag_TreasureChart1 = 96, + /* 0x61 */ ItemFlag_TreasureChart2 = 97, + /* 0x62 */ ItemFlag_TreasureChart3 = 98, + /* 0x63 */ ItemFlag_TreasureChart4 = 99, + /* 0x64 */ ItemFlag_TreasureChart5 = 100, + /* 0x65 */ ItemFlag_TreasureChart6 = 101, + /* 0x66 */ ItemFlag_TreasureChart7 = 102, + /* 0x67 */ ItemFlag_TreasureChart8 = 103, + /* 0x68 */ ItemFlag_TreasureChart9 = 104, + /* 0x69 */ ItemFlag_TreasureChart10 = 105, + /* 0x6a */ ItemFlag_TreasureChart11 = 106, + /* 0x6b */ ItemFlag_TreasureChart12 = 107, + /* 0x6c */ ItemFlag_TreasureChart13 = 108, + /* 0x6d */ ItemFlag_TreasureChart14 = 109, + /* 0x6e */ ItemFlag_TreasureChart15 = 110, + /* 0x6f */ ItemFlag_TreasureChart16 = 111, + /* 0x70 */ ItemFlag_TreasureChart17 = 112, + /* 0x71 */ ItemFlag_TreasureChart18 = 113, + /* 0x72 */ ItemFlag_TreasureChart19 = 114, + /* 0x73 */ ItemFlag_TreasureChart20 = 115, + /* 0x74 */ ItemFlag_TreasureChart21 = 116, + /* 0x75 */ ItemFlag_TreasureChart22 = 117, + /* 0x76 */ ItemFlag_TreasureChart23 = 118, + /* 0x77 */ ItemFlag_TreasureChart24 = 119, + /* 0x78 */ ItemFlag_TreasureChart25 = 120, + /* 0x79 */ ItemFlag_TreasureChart26 = 121, + /* 0x7a */ ItemFlag_TreasureChart27 = 122, + /* 0x7b */ ItemFlag_TreasureChart28 = 123, + /* 0x7c */ ItemFlag_TreasureChart29 = 124, + /* 0x7d */ ItemFlag_TreasureChart30 = 125, + /* 0x7e */ ItemFlag_TreasureChart31 = 126, + /* 0x7f */ ItemFlag_TreasureChart32 = 127, + ItemFlag_TREASURE_CHART_START = ItemFlag_TreasureChart1, - ItemFlag_COUNT = 128, + ItemFlag_COUNT = 128, }; typedef s32 ItemId; enum ItemId_ { + /* 0x00 */ ItemId_Unk_0 = 0, /* 0x01 */ ItemId_SmallKey = 1, /* 0x02 */ ItemId_GreenRupee = 2, /* 0x03 */ ItemId_OshusSword = 3, /* 0x04 */ ItemId_WoodenShield = 4, - + /* 0x05 */ ItemId_Unk_5 = 5, + /* 0x06 */ ItemId_Unk_6 = 6, /* 0x07 */ ItemId_BombBag = 7, /* 0x08 */ ItemId_Bow = 8, /* 0x09 */ ItemId_BigGreenRupee = 9, /* 0x0a */ ItemId_HeartContainer = 10, - + /* 0x0b */ ItemId_Unk_11 = 11, /* 0x0c */ ItemId_Boomerang = 12, /* 0x0d */ ItemId_Scoop = 13, /* 0x0e */ ItemId_BombchuBag = 14, /* 0x0f */ ItemId_BossKey = 15, - + /* 0x10 */ ItemId_Unk_16 = 16, + /* 0x11 */ ItemId_Unk_17 = 17, /* 0x12 */ ItemId_PhantomHourglass = 18, /* 0x13 */ ItemId_SWSeaChart = 19, /* 0x14 */ ItemId_NWSeaChart = 20, /* 0x15 */ ItemId_SESeaChart = 21, /* 0x16 */ ItemId_NESeaChart = 22, - + /* 0x17 */ ItemId_Unk_23 = 23, /* 0x18 */ ItemId_BlueRupee = 24, /* 0x19 */ ItemId_RedRupee = 25, /* 0x1a */ ItemId_BigRedRupee = 26, /* 0x1b */ ItemId_GoldRupee = 27, - + /* 0x1c */ ItemId_Unk_28 = 28, + /* 0x1d */ ItemId_Unk_29 = 29, + /* 0x1e */ ItemId_Unk_30 = 30, /* 0x1f */ ItemId_Hammer = 31, /* 0x20 */ ItemId_Rope = 32, /* 0x21 */ ItemId_SquareCrystal = 33, @@ -84,7 +128,7 @@ enum ItemId_ { /* 0x24 */ ItemId_FishingRod = 36, /* 0x25 */ ItemId_Cannon = 37, /* 0x26 */ ItemId_SunKey = 38, - + /* 0x27 */ ItemId_Unk_39 = 39, /* 0x28 */ ItemId_Quiver = 40, /* 0x29 */ ItemId_BigBombBag = 41, /* 0x2a */ ItemId_BigBombchuBag = 42, @@ -177,12 +221,14 @@ enum ItemId_ { /* 0x7d */ ItemId_Unk_125 = 125, /* 0x7e */ ItemId_Unk_126 = 126, /* 0x7f */ ItemId_CycloneSlate = 127, - + /* 0x80 */ ItemId_Unk_128 = 128, /* 0x81 */ ItemId_Rupoor10 = 129, /* 0x82 */ ItemId_Rupoor50 = 130, + /* 0x84 */ ItemId_Unk_132 = 132, /* 0x85 */ ItemId_Unk_133 = 133, - + /* 0x86 */ ItemId_Unk_134 = 134, + /* 0x87 */ ItemId_Unk_135 = 135, /* 0x88 */ ItemId_Unk_136 = 136, }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 2f7b5084..99bf3edc 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -9,8 +9,10 @@ extern "C" { #include "lib/math.h" #include "Actor/ActorNavi.hpp" +#include "Save/AdventureFlags.hpp" #include "Item/Item.hpp" #include "Player/EquipItem.hpp" +#include "Player/HealthManager.hpp" #include "System/SysNew.hpp" #include "System/OverlayManager.hpp" #include "Render/ModelRender.hpp" @@ -83,7 +85,7 @@ typedef u8 Potion; enum Potion_ { Potion_None, Potion_Red, - Potion_Blue, + Potion_Purple, Potion_Yellow, Potion_COUNT, }; diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 411d3a55..5282b09c 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -9,7 +9,33 @@ typedef u32 AdventureFlag; enum AdventureFlag_ { - AdventureFlag_COUNT = 391, + /* 0x09 */ AdventureFlag_SWSeaChart = 9, + /* 0x0a */ AdventureFlag_NWSeaChart = 10, + /* 0x0b */ AdventureFlag_SESeaChart = 11, + /* 0x0c */ AdventureFlag_NESeaChart = 12, + + /* 0x13 */ AdventureFlag_Hourglass = 19, + + /* 0x16 */ AdventureFlag_SunKey = 22, + /* 0x17 */ AdventureFlag_Unk_23 = 23, + + /* 0x2b */ AdventureFlag_FishingRod = 43, + + /* 0x30 */ AdventureFlag_Cannon = 48, + + /* 0x7d */ AdventureFlag_Azurine = 126, + /* 0x7e */ AdventureFlag_Crimsonine = 126, + /* 0x7f */ AdventureFlag_Aquanine = 127, + /* 0x80 */ AdventureFlag_Unk_128 = 128, + + /* 0x8c */ AdventureFlag_SalvageArm = 140, + + /* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294, + /* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295, + /* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296, + /* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297, + + /* 0x187 */ AdventureFlag_COUNT = 391, }; struct FlagsUnk2 { @@ -46,6 +72,7 @@ struct FlagsUnk { }; class AdventureFlags : public SysObject { +public: /* 00 */ unk32 mFlags[16]; /* 40 */ CutsceneHandler *mCutsceneHandler; /* 44 */ void *mUnk_44;