diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 2f567142..790452b1 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2994,8 +2994,8 @@ func_ov000_020a856c kind:function(arm,size=0x50) addr:0x020a856c func_ov000_020a85bc kind:function(thumb,size=0x80) addr:0x020a85bc func_ov000_020a863c kind:function(arm,size=0x20) addr:0x020a863c _ZN11ItemManager19func_ov000_020a865cEj kind:function(arm,size=0x24) addr:0x020a865c -func_ov000_020a8680 kind:function(arm,size=0x24) addr:0x020a8680 -func_ov000_020a86a4 kind:function(arm,size=0x2c) addr:0x020a86a4 +_ZN11ItemManager19func_ov000_020a8680Ev kind:function(arm,size=0x24) addr:0x020a8680 +_ZN11ItemManager19func_ov000_020a86a4Ev kind:function(arm,size=0x2c) addr:0x020a86a4 _ZN11ItemManager19func_ov000_020a86d0Ej kind:function(arm,size=0x58) addr:0x020a86d0 _ZN11ItemManager19func_ov000_020a8728Ev kind:function(arm,size=0x20) addr:0x020a8728 _ZN11ItemManager19func_ov000_020a8748Ev kind:function(arm,size=0x20) addr:0x020a8748 @@ -3009,89 +3009,89 @@ _ZN11ItemManager19func_ov000_020a88c8Ev kind:function(arm,size=0x2c) addr:0x020a _ZN11ItemManager19func_ov000_020a88f4Ev kind:function(arm,size=0x2c) addr:0x020a88f4 _ZN11ItemManager19func_ov000_020a8920Ev kind:function(arm,size=0x28) addr:0x020a8920 _ZN11ItemManager19func_ov000_020a8948Ev kind:function(arm,size=0x2c) addr:0x020a8948 -func_ov000_020a8974 kind:function(arm,size=0x10) addr:0x020a8974 -func_ov000_020a8984 kind:function(arm,size=0x38) addr:0x020a8984 -func_ov000_020a89bc kind:function(thumb,size=0x18) addr:0x020a89bc -func_ov000_020a89d4 kind:function(arm,size=0x38) addr:0x020a89d4 -func_ov000_020a8a0c kind:function(arm,size=0x50) addr:0x020a8a0c -func_ov000_020a8a5c kind:function(arm,size=0x18) addr:0x020a8a5c -func_ov000_020a8a74 kind:function(arm,size=0x1c) addr:0x020a8a74 -func_ov000_020a8a90 kind:function(arm,size=0x14) addr:0x020a8a90 -func_ov000_020a8aa4 kind:function(arm,size=0x14) addr:0x020a8aa4 -func_ov000_020a8ab8 kind:function(arm,size=0x14) addr:0x020a8ab8 -func_ov000_020a8acc kind:function(arm,size=0x14) addr:0x020a8acc -func_ov000_020a8ae0 kind:function(arm,size=0x14) addr:0x020a8ae0 -func_ov000_020a8af4 kind:function(arm,size=0x54) addr:0x020a8af4 -func_ov000_020a8b48 kind:function(arm,size=0x34) addr:0x020a8b48 -func_ov000_020a8b7c kind:function(arm,size=0x34) addr:0x020a8b7c -func_ov000_020a8bb0 kind:function(arm,size=0x110) addr:0x020a8bb0 -func_ov000_020a8cc0 kind:function(arm,size=0x20) addr:0x020a8cc0 -func_ov000_020a8ce0 kind:function(arm,size=0x28) addr:0x020a8ce0 -func_ov000_020a8d08 kind:function(arm,size=0x20) addr:0x020a8d08 -func_ov000_020a8d28 kind:function(arm,size=0x78) addr:0x020a8d28 -func_ov000_020a8da0 kind:function(arm,size=0x4) addr:0x020a8da0 -func_ov000_020a8da4 kind:function(arm,size=0xc) addr:0x020a8da4 -func_ov000_020a8db0 kind:function(arm,size=0x20) addr:0x020a8db0 -func_ov000_020a8dd0 kind:function(arm,size=0x20) addr:0x020a8dd0 -func_ov000_020a8df0 kind:function(arm,size=0x94) addr:0x020a8df0 -func_ov000_020a8e84 kind:function(arm,size=0x18) addr:0x020a8e84 -func_ov000_020a8e9c kind:function(arm,size=0x24) addr:0x020a8e9c -func_ov000_020a8ec0 kind:function(arm,size=0x94) addr:0x020a8ec0 -func_ov000_020a8f54 kind:function(arm,size=0x8) addr:0x020a8f54 -func_ov000_020a8f5c kind:function(arm,size=0x8) addr:0x020a8f5c -func_ov000_020a8f64 kind:function(arm,size=0x8) addr:0x020a8f64 -func_ov000_020a8f6c kind:function(arm,size=0xc) addr:0x020a8f6c -func_ov000_020a8f78 kind:function(arm,size=0x68) addr:0x020a8f78 -func_ov000_020a8fe0 kind:function(arm,size=0x14) addr:0x020a8fe0 -func_ov000_020a8ff4 kind:function(arm,size=0x158) addr:0x020a8ff4 -func_ov000_020a914c kind:function(arm,size=0x4) addr:0x020a914c -func_ov000_020a9150 kind:function(arm,size=0x50) addr:0x020a9150 -func_ov000_020a91a0 kind:function(arm,size=0x8) addr:0x020a91a0 -func_ov000_020a91a8 kind:function(arm,size=0x8) addr:0x020a91a8 -func_ov000_020a91b0 kind:function(arm,size=0x8) addr:0x020a91b0 -func_ov000_020a91b8 kind:function(arm,size=0x48) addr:0x020a91b8 -func_ov000_020a9200 kind:function(arm,size=0x1c) addr:0x020a9200 -func_ov000_020a921c kind:function(arm,size=0x24) addr:0x020a921c -func_ov000_020a9240 kind:function(arm,size=0x4) addr:0x020a9240 -func_ov000_020a9244 kind:function(arm,size=0x4) addr:0x020a9244 -func_ov000_020a9248 kind:function(arm,size=0x88) addr:0x020a9248 -func_ov000_020a92d0 kind:function(arm,size=0x178) addr:0x020a92d0 -func_ov000_020a9448 kind:function(arm,size=0x68) addr:0x020a9448 -func_ov000_020a94b0 kind:function(arm,size=0xe8) addr:0x020a94b0 -func_ov000_020a9598 kind:function(arm,size=0x2c) addr:0x020a9598 -func_ov000_020a95c4 kind:function(arm,size=0x10) addr:0x020a95c4 -func_ov000_020a95d4 kind:function(arm,size=0x4) addr:0x020a95d4 -func_ov000_020a95d8 kind:function(arm,size=0xc) addr:0x020a95d8 -func_ov000_020a95e4 kind:function(arm,size=0x218) addr:0x020a95e4 -func_ov000_020a97fc kind:function(arm,size=0x8) addr:0x020a97fc -func_ov000_020a9804 kind:function(arm,size=0xec) addr:0x020a9804 -func_ov000_020a98f0 kind:function(arm,size=0x4) addr:0x020a98f0 -func_ov000_020a98f4 kind:function(arm,size=0x68) addr:0x020a98f4 -func_ov000_020a995c kind:function(arm,size=0x48) addr:0x020a995c -func_ov000_020a99a4 kind:function(arm,size=0x34) addr:0x020a99a4 -func_ov000_020a99d8 kind:function(arm,size=0x48) addr:0x020a99d8 -func_ov000_020a9a20 kind:function(arm,size=0x14) addr:0x020a9a20 -func_ov000_020a9a34 kind:function(arm,size=0x1c) addr:0x020a9a34 -func_ov000_020a9a50 kind:function(arm,size=0x44) addr:0x020a9a50 -func_ov000_020a9a94 kind:function(arm,size=0x28) addr:0x020a9a94 -func_ov000_020a9abc kind:function(arm,size=0x24) addr:0x020a9abc -func_ov000_020a9ae0 kind:function(arm,size=0x1c) addr:0x020a9ae0 -func_ov000_020a9afc kind:function(arm,size=0x14) addr:0x020a9afc -func_ov000_020a9b10 kind:function(arm,size=0x1c) addr:0x020a9b10 -func_ov000_020a9b2c kind:function(arm,size=0x10) addr:0x020a9b2c -func_ov000_020a9b3c kind:function(arm,size=0x10) addr:0x020a9b3c -func_ov000_020a9b4c kind:function(arm,size=0x100) addr:0x020a9b4c -func_ov000_020a9c4c kind:function(arm,size=0x18) addr:0x020a9c4c +_ZN11ItemManager19func_ov000_020a8974Ev kind:function(arm,size=0x10) addr:0x020a8974 +_ZN11ItemManager19func_ov000_020a8984Ev kind:function(arm,size=0x38) addr:0x020a8984 +_ZN11ItemManager19func_ov000_020a89bcEv kind:function(thumb,size=0x18) addr:0x020a89bc +_ZN11ItemManager19func_ov000_020a89d4Ev kind:function(arm,size=0x38) addr:0x020a89d4 +_ZN11ItemManager19func_ov000_020a8a0cEv kind:function(arm,size=0x50) addr:0x020a8a0c +_ZN11ItemManager19func_ov000_020a8a5cEv kind:function(arm,size=0x18) addr:0x020a8a5c +_ZN11ItemManager19func_ov000_020a8a74Ev kind:function(arm,size=0x1c) addr:0x020a8a74 +_ZN11ItemManager19func_ov000_020a8a90Ev kind:function(arm,size=0x14) addr:0x020a8a90 +_ZN11ItemManager19func_ov000_020a8aa4Ev kind:function(arm,size=0x14) addr:0x020a8aa4 +_ZN11ItemManager19func_ov000_020a8ab8Ev kind:function(arm,size=0x14) addr:0x020a8ab8 +_ZN11ItemManager19func_ov000_020a8accEv kind:function(arm,size=0x14) addr:0x020a8acc +_ZN11ItemManager19func_ov000_020a8ae0Ev kind:function(arm,size=0x14) addr:0x020a8ae0 +_ZN11ItemManager19func_ov000_020a8af4Ev kind:function(arm,size=0x54) addr:0x020a8af4 +_ZN11ItemManager19func_ov000_020a8b48Ev kind:function(arm,size=0x34) addr:0x020a8b48 +_ZN11ItemManager19func_ov000_020a8b7cEv kind:function(arm,size=0x34) addr:0x020a8b7c +_ZN11ItemManager19func_ov000_020a8bb0Ev kind:function(arm,size=0x110) addr:0x020a8bb0 +_ZN11ItemManager19func_ov000_020a8cc0Ev kind:function(arm,size=0x20) addr:0x020a8cc0 +_ZN11ItemManager19func_ov000_020a8ce0Ev kind:function(arm,size=0x28) addr:0x020a8ce0 +_ZN11ItemManager19func_ov000_020a8d08Ev kind:function(arm,size=0x20) addr:0x020a8d08 +_ZN11ItemManager19func_ov000_020a8d28Ev kind:function(arm,size=0x78) addr:0x020a8d28 +_ZN11ItemManager19func_ov000_020a8da0Ev kind:function(arm,size=0x4) addr:0x020a8da0 +_ZN11ItemManager19func_ov000_020a8da4Ev kind:function(arm,size=0xc) addr:0x020a8da4 +_ZN11ItemManager19func_ov000_020a8db0Ev kind:function(arm,size=0x20) addr:0x020a8db0 +_ZN11ItemManager19func_ov000_020a8dd0Ev kind:function(arm,size=0x20) addr:0x020a8dd0 +_ZN11ItemManager19func_ov000_020a8df0Ev kind:function(arm,size=0x94) addr:0x020a8df0 +_ZN11ItemManager19func_ov000_020a8e84Ev kind:function(arm,size=0x18) addr:0x020a8e84 +_ZN11ItemManager19func_ov000_020a8e9cEv kind:function(arm,size=0x24) addr:0x020a8e9c +_ZN11ItemManager19func_ov000_020a8ec0Ev kind:function(arm,size=0x94) addr:0x020a8ec0 +_ZN11ItemManager19func_ov000_020a8f54Ev kind:function(arm,size=0x8) addr:0x020a8f54 +_ZN11ItemManager19func_ov000_020a8f5cEv kind:function(arm,size=0x8) addr:0x020a8f5c +_ZN11ItemManager19func_ov000_020a8f64Ev kind:function(arm,size=0x8) addr:0x020a8f64 +_ZN11ItemManager19func_ov000_020a8f6cEv kind:function(arm,size=0xc) addr:0x020a8f6c +_ZN11ItemManager19func_ov000_020a8f78Ev kind:function(arm,size=0x68) addr:0x020a8f78 +_ZN11ItemManager19func_ov000_020a8fe0Ev kind:function(arm,size=0x14) addr:0x020a8fe0 +_ZN11ItemManager19func_ov000_020a8ff4Ev kind:function(arm,size=0x158) addr:0x020a8ff4 +_ZN11ItemManager19func_ov000_020a914cEv kind:function(arm,size=0x4) addr:0x020a914c +_ZN11ItemManager19func_ov000_020a9150Ev kind:function(arm,size=0x50) addr:0x020a9150 +_ZN11ItemManager19func_ov000_020a91a0Ev kind:function(arm,size=0x8) addr:0x020a91a0 +_ZN11ItemManager19func_ov000_020a91a8Ev kind:function(arm,size=0x8) addr:0x020a91a8 +_ZN11ItemManager19func_ov000_020a91b0Ev kind:function(arm,size=0x8) addr:0x020a91b0 +_ZN11ItemManager19func_ov000_020a91b8Ev kind:function(arm,size=0x48) addr:0x020a91b8 +_ZN11ItemManager19func_ov000_020a9200Ev kind:function(arm,size=0x1c) addr:0x020a9200 +_ZN11ItemManager19func_ov000_020a921cEv kind:function(arm,size=0x24) addr:0x020a921c +_ZN11ItemManager19func_ov000_020a9240Ev kind:function(arm,size=0x4) addr:0x020a9240 +_ZN11ItemManager19func_ov000_020a9244Ev kind:function(arm,size=0x4) addr:0x020a9244 +_ZN11ItemManager19func_ov000_020a9248Ev kind:function(arm,size=0x88) addr:0x020a9248 +_ZN11ItemManager19func_ov000_020a92d0Ev kind:function(arm,size=0x178) addr:0x020a92d0 +_ZN11ItemManager19func_ov000_020a9448Ev kind:function(arm,size=0x68) addr:0x020a9448 +_ZN11ItemManager19func_ov000_020a94b0Ev kind:function(arm,size=0xe8) addr:0x020a94b0 +_ZN11ItemManager19func_ov000_020a9598Ev kind:function(arm,size=0x2c) addr:0x020a9598 +_ZN11ItemManager19func_ov000_020a95c4Ev kind:function(arm,size=0x10) addr:0x020a95c4 +_ZN11ItemManager19func_ov000_020a95d4Ev kind:function(arm,size=0x4) addr:0x020a95d4 +_ZN11ItemManager19func_ov000_020a95d8Ev kind:function(arm,size=0xc) addr:0x020a95d8 +_ZN11ItemManager19func_ov000_020a95e4Ev kind:function(arm,size=0x218) addr:0x020a95e4 +_ZN11ItemManager19func_ov000_020a97fcEv kind:function(arm,size=0x8) addr:0x020a97fc +_ZN11ItemManager19func_ov000_020a9804Ev kind:function(arm,size=0xec) addr:0x020a9804 +_ZN11ItemManager19func_ov000_020a98f0Ev kind:function(arm,size=0x4) addr:0x020a98f0 +_ZN11ItemManager19func_ov000_020a98f4Ev kind:function(arm,size=0x68) addr:0x020a98f4 +_ZN11ItemManager19func_ov000_020a995cEv kind:function(arm,size=0x48) addr:0x020a995c +_ZN11ItemManager19func_ov000_020a99a4Ev kind:function(arm,size=0x34) addr:0x020a99a4 +_ZN11ItemManager19func_ov000_020a99d8Ev kind:function(arm,size=0x48) addr:0x020a99d8 +_ZN11ItemManager19func_ov000_020a9a20Ev kind:function(arm,size=0x14) addr:0x020a9a20 +_ZN11ItemManager19func_ov000_020a9a34Ev kind:function(arm,size=0x1c) addr:0x020a9a34 +_ZN11ItemManager19func_ov000_020a9a50Ev kind:function(arm,size=0x44) addr:0x020a9a50 +_ZN11ItemManager19func_ov000_020a9a94Ev kind:function(arm,size=0x28) addr:0x020a9a94 +_ZN11ItemManager19func_ov000_020a9abcEv kind:function(arm,size=0x24) addr:0x020a9abc +_ZN11ItemManager19func_ov000_020a9ae0Ev kind:function(arm,size=0x1c) addr:0x020a9ae0 +_ZN11ItemManager19func_ov000_020a9afcEv kind:function(arm,size=0x14) addr:0x020a9afc +_ZN11ItemManager19func_ov000_020a9b10Ev kind:function(arm,size=0x1c) addr:0x020a9b10 +_ZN11ItemManager19func_ov000_020a9b2cEv kind:function(arm,size=0x10) addr:0x020a9b2c +_ZN11ItemManager19func_ov000_020a9b3cEv kind:function(arm,size=0x10) addr:0x020a9b3c +_ZN11ItemManager19func_ov000_020a9b4cEv kind:function(arm,size=0x100) addr:0x020a9b4c +_ZN11ItemManager19func_ov000_020a9c4cEv kind:function(arm,size=0x18) addr:0x020a9c4c _ZN11ItemManager19func_ov000_020a9c64Ev kind:function(arm,size=0x2c) addr:0x020a9c64 _ZN11ItemManager19func_ov000_020a9c90Es kind:function(arm,size=0x14) addr:0x020a9c90 _ZN11ItemManager19func_ov000_020a9ca4Es kind:function(arm,size=0x18) addr:0x020a9ca4 _ZN11ItemManager19func_ov000_020a9cbcEsi kind:function(arm,size=0x40) addr:0x020a9cbc func_ov000_020a9cfc kind:function(arm,size=0x7c) addr:0x020a9cfc -func_ov000_020a9d78 kind:function(arm,size=0x9c) addr:0x020a9d78 -func_ov000_020a9e14 kind:function(arm,size=0x9c) addr:0x020a9e14 -func_ov000_020a9eb0 kind:function(arm,size=0x9c) addr:0x020a9eb0 -func_ov000_020a9f4c kind:function(arm,size=0xe0) addr:0x020a9f4c -func_ov000_020aa02c kind:function(arm,size=0x80) addr:0x020aa02c +_ZN11ItemManager19func_ov000_020a9d78Ei kind:function(arm,size=0x9c) addr:0x020a9d78 +_ZN11ItemManager19func_ov000_020a9e14Ei kind:function(arm,size=0x9c) addr:0x020a9e14 +_ZN11ItemManager19func_ov000_020a9eb0Ei kind:function(arm,size=0x9c) addr:0x020a9eb0 +_ZN11ItemManager19func_ov000_020a9f4cEi kind:function(arm,size=0xe0) addr:0x020a9f4c +_ZN11ItemManager19func_ov000_020aa02cEj kind:function(arm,size=0x80) addr:0x020aa02c _ZN11ItemManager19func_ov000_020aa0acEj kind:function(arm,size=0x154) addr:0x020aa0ac func_ov000_020aa200 kind:function(arm,size=0x10) addr:0x020aa200 func_ov000_020aa210 kind:function(arm,size=0x14) addr:0x020aa210 diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index bc77663b..85716615 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -17,64 +17,64 @@ enum ItemFlag_ { ItemFlag_EQUIP_END = ItemFlag_SandRod + 1, ItemFlag_EQUIP_COUNT = ItemFlag_EQUIP_END - ItemFlag_EQUIP_START, - ItemFlag_Shield = FLAG(0, 6), - ItemFlag_Sword = FLAG(0, 7), - ItemFlag_LokomoSword = FLAG(0, 8), - ItemFlag_Soldier = FLAG(0, 9), - ItemFlag_Scroll1 = FLAG(0, 10), - ItemFlag_Scroll2 = FLAG(0, 11), - ItemFlag_AncientShield = FLAG(0, 12), - ItemFlag_PanFlute = FLAG(0, 13), - ItemFlag_14 = FLAG(0, 14), - ItemFlag_15 = FLAG(0, 15), - ItemFlag_16 = FLAG(0, 16), - ItemFlag_17 = FLAG(0, 17), - ItemFlag_18 = FLAG(0, 18), - ItemFlag_19 = FLAG(0, 19), - ItemFlag_20 = FLAG(0, 20), - ItemFlag_21 = FLAG(0, 21), - ItemFlag_22 = FLAG(0, 22), - ItemFlag_23 = FLAG(0, 23), - ItemFlag_24 = FLAG(0, 24), - ItemFlag_25 = FLAG(0, 25), - ItemFlag_26 = FLAG(0, 26), - ItemFlag_27 = FLAG(0, 27), - ItemFlag_28 = FLAG(0, 28), - ItemFlag_29 = FLAG(0, 29), - ItemFlag_30 = FLAG(0, 30), - ItemFlag_31 = FLAG(0, 31), - ItemFlag_32 = FLAG(1, 0), - ItemFlag_33 = FLAG(1, 1), - ItemFlag_34 = FLAG(1, 2), - ItemFlag_35 = FLAG(1, 3), - ItemFlag_36 = FLAG(1, 4), - ItemFlag_37 = FLAG(1, 5), - ItemFlag_38 = FLAG(1, 6), - ItemFlag_39 = FLAG(1, 7), - ItemFlag_40 = FLAG(1, 8), - ItemFlag_41 = FLAG(1, 9), - ItemFlag_42 = FLAG(1, 10), - ItemFlag_43 = FLAG(1, 11), - ItemFlag_44 = FLAG(1, 12), - ItemFlag_45 = FLAG(1, 13), - ItemFlag_46 = FLAG(1, 14), - ItemFlag_47 = FLAG(1, 15), - ItemFlag_48 = FLAG(1, 16), - ItemFlag_49 = FLAG(1, 17), - ItemFlag_50 = FLAG(1, 18), - ItemFlag_51 = FLAG(1, 19), - ItemFlag_52 = FLAG(1, 20), - ItemFlag_53 = FLAG(1, 21), - ItemFlag_54 = FLAG(1, 22), - ItemFlag_55 = FLAG(1, 23), - ItemFlag_56 = FLAG(1, 24), - ItemFlag_57 = FLAG(1, 25), - ItemFlag_58 = FLAG(1, 26), - ItemFlag_59 = FLAG(1, 27), - ItemFlag_60 = FLAG(1, 28), - ItemFlag_61 = FLAG(1, 29), - ItemFlag_62 = FLAG(1, 30), - ItemFlag_63 = FLAG(1, 31), + ItemFlag_6 = FLAG(0, 6), + ItemFlag_7 = FLAG(0, 7), + ItemFlag_8 = FLAG(0, 8), + ItemFlag_9 = FLAG(0, 9), + ItemFlag_10 = FLAG(0, 10), + ItemFlag_11 = FLAG(0, 11), + ItemFlag_12 = FLAG(0, 12), + ItemFlag_13 = FLAG(0, 13), + ItemFlag_14 = FLAG(0, 14), + ItemFlag_15 = FLAG(0, 15), + ItemFlag_Shield = FLAG(0, 16), + ItemFlag_Sword = FLAG(0, 17), + ItemFlag_LokomoSword = FLAG(0, 18), + ItemFlag_RecruitUniform = FLAG(0, 19), + ItemFlag_ScrollBeam = FLAG(0, 20), + ItemFlag_ScrollSpinAttack = FLAG(0, 21), + ItemFlag_AncientShield = FLAG(0, 22), + ItemFlag_PanFlute = FLAG(0, 23), + ItemFlag_24 = FLAG(0, 24), + ItemFlag_25 = FLAG(0, 25), + ItemFlag_26 = FLAG(0, 26), + ItemFlag_27 = FLAG(0, 27), + ItemFlag_28 = FLAG(0, 28), + ItemFlag_29 = FLAG(0, 29), + ItemFlag_30 = FLAG(0, 30), + ItemFlag_31 = FLAG(0, 31), + ItemFlag_32 = FLAG(1, 0), + ItemFlag_33 = FLAG(1, 1), + ItemFlag_34 = FLAG(1, 2), + ItemFlag_35 = FLAG(1, 3), + ItemFlag_36 = FLAG(1, 4), + ItemFlag_37 = FLAG(1, 5), + ItemFlag_38 = FLAG(1, 6), + ItemFlag_39 = FLAG(1, 7), + ItemFlag_40 = FLAG(1, 8), + ItemFlag_41 = FLAG(1, 9), + ItemFlag_42 = FLAG(1, 10), + ItemFlag_43 = FLAG(1, 11), + ItemFlag_44 = FLAG(1, 12), + ItemFlag_45 = FLAG(1, 13), + ItemFlag_46 = FLAG(1, 14), + ItemFlag_47 = FLAG(1, 15), + ItemFlag_48 = FLAG(1, 16), + ItemFlag_49 = FLAG(1, 17), + ItemFlag_50 = FLAG(1, 18), + ItemFlag_51 = FLAG(1, 19), + ItemFlag_52 = FLAG(1, 20), + ItemFlag_53 = FLAG(1, 21), + ItemFlag_54 = FLAG(1, 22), + ItemFlag_55 = FLAG(1, 23), + ItemFlag_56 = FLAG(1, 24), + ItemFlag_57 = FLAG(1, 25), + ItemFlag_58 = FLAG(1, 26), + ItemFlag_59 = FLAG(1, 27), + ItemFlag_60 = FLAG(1, 28), + ItemFlag_61 = FLAG(1, 29), + ItemFlag_62 = FLAG(1, 30), + ItemFlag_63 = FLAG(1, 31), ItemFlag_Max }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 4e3db6dd..a0a22291 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -10,7 +10,7 @@ public: /* 04 */ unk32 mForcedItem; /* 08 */ u32 mUnk_08[2]; // inventory items bitfield & collection/equipment bitfield /* 10 */ unk16 mNumRupees; - /* 12 */ unk16 mUnk_12; // "toggle bitfield" + /* 12 */ u16 mUnk_12; // "toggle bitfield" /* 14 */ unk16 mItemRestrictions; // bitfield /* 16 */ unk8 mTearsAmount; // number of tears of light /* 17 */ u8 mKeyAmount; // number of small keys @@ -30,6 +30,8 @@ public: ~ItemManager(); void func_ov000_020a865c(ItemFlag itemFlag); + bool func_ov000_020a8680(); + unk32 func_ov000_020a86a4(); u32 func_ov000_020a86d0(ItemFlag itemFlag); u8 func_ov000_020a8728(); u8 func_ov000_020a8748(); @@ -45,5 +47,85 @@ public: unk32 func_ov000_020a9c90(TreasureType type); bool func_ov000_020a9ca4(TreasureType type); void func_ov000_020a9cbc(TreasureType type, s32 amount); + static unk32 func_ov000_020a9d78(unk32 param1); + static unk32 func_ov000_020a9e14(unk32 param1); + static unk32 func_ov000_020a9eb0(unk32 param1); + static unk32 func_ov000_020a9f4c(unk32 param1); + unk32 func_ov000_020aa02c(ItemId itemId); void func_ov000_020aa0ac(ItemId itemId); + + //! TODO: find out if it belongs here (some of them are (derived) Actor vfuncs?) + void func_ov000_020a8974(); + void func_ov000_020a8984(); + void func_ov000_020a89bc(); + void func_ov000_020a89d4(); + void func_ov000_020a8a0c(); + void func_ov000_020a8a5c(); + void func_ov000_020a8a74(); + void func_ov000_020a8a90(); + void func_ov000_020a8aa4(); + void func_ov000_020a8ab8(); + void func_ov000_020a8acc(); + void func_ov000_020a8ae0(); + void func_ov000_020a8af4(); + void func_ov000_020a8b48(); + void func_ov000_020a8b7c(); + void func_ov000_020a8bb0(); + void func_ov000_020a8cc0(); + void func_ov000_020a8ce0(); + void func_ov000_020a8d08(); + void func_ov000_020a8d28(); + void func_ov000_020a8da0(); + void func_ov000_020a8da4(); + void func_ov000_020a8db0(); + void func_ov000_020a8dd0(); + void func_ov000_020a8df0(); + void func_ov000_020a8e84(); + void func_ov000_020a8e9c(); + void func_ov000_020a8ec0(); + unk32 func_ov000_020a8f54(); + unk32 func_ov000_020a8f5c(); + unk32 func_ov000_020a8f64(); + void func_ov000_020a8f6c(); + void func_ov000_020a8f78(); + void func_ov000_020a8fe0(); + void func_ov000_020a8ff4(); + void func_ov000_020a914c(); + void func_ov000_020a9150(); + unk32 func_ov000_020a91a0(); + unk32 func_ov000_020a91a8(); + unk32 func_ov000_020a91b0(); + void func_ov000_020a91b8(); + void func_ov000_020a9200(); + void func_ov000_020a921c(); + void func_ov000_020a9240(); + void func_ov000_020a9244(); + void func_ov000_020a9248(); + void func_ov000_020a92d0(); + void func_ov000_020a9448(); + void func_ov000_020a94b0(); + void func_ov000_020a9598(); + void func_ov000_020a95c4(); + void func_ov000_020a95d4(); + void func_ov000_020a95d8(); + void func_ov000_020a95e4(); + unk32 func_ov000_020a97fc(); + void func_ov000_020a9804(); + void func_ov000_020a98f0(); + void func_ov000_020a98f4(); + void func_ov000_020a995c(); + void func_ov000_020a99a4(); + void func_ov000_020a99d8(); + void func_ov000_020a9a20(); + void func_ov000_020a9a34(); + void func_ov000_020a9a50(); + void func_ov000_020a9a94(); + void func_ov000_020a9abc(); + void func_ov000_020a9ae0(); + void func_ov000_020a9afc(); + void func_ov000_020a9b10(); + void func_ov000_020a9b2c(); + void func_ov000_020a9b3c(); + void func_ov000_020a9b4c(); + void func_ov000_020a9c4c(); }; diff --git a/src/000_Second/Item/ItemManager.cpp b/src/000_Second/Item/ItemManager.cpp index ec121652..57f51301 100644 --- a/src/000_Second/Item/ItemManager.cpp +++ b/src/000_Second/Item/ItemManager.cpp @@ -4,12 +4,29 @@ // quiver and bomb bag tiers extern u8 data_ov000_020afc40[3]; extern u8 data_ov000_020afc43[3]; +extern unk32 data_ov000_020afde8[]; // removeEquipmentItem ARM void ItemManager::func_ov000_020a865c(ItemFlag itemFlag) { UNSET_FLAG(this->mUnk_08, itemFlag); } +ARM bool ItemManager::func_ov000_020a8680() { + return GET_FLAG(this->mUnk_08, ItemFlag_RecruitUniform) && (this->mUnk_12 & 1); +} + +ARM unk32 ItemManager::func_ov000_020a86a4() { + if (GET_FLAG(this->mUnk_08, ItemFlag_AncientShield) && (this->mUnk_12 & 2)) { + return 1; + } + + if (GET_FLAG(this->mUnk_08, ItemFlag_Shield)) { + return 0; + } + + return -1; +} + // getItemAmmo ARM u32 ItemManager::func_ov000_020a86d0(ItemFlag itemFlag) { bool canUse = GET_FLAG(this->mUnk_08, itemFlag); @@ -145,6 +162,104 @@ ARM bool ItemManager::func_ov000_020a8948() { return true; } +ARM void ItemManager::func_ov000_020a8974() {} +ARM void ItemManager::func_ov000_020a8984() {} +THUMB void ItemManager::func_ov000_020a89bc() {} +ARM void ItemManager::func_ov000_020a89d4() {} +ARM void ItemManager::func_ov000_020a8a0c() {} +ARM void ItemManager::func_ov000_020a8a5c() {} +ARM void ItemManager::func_ov000_020a8a74() {} +ARM void ItemManager::func_ov000_020a8a90() {} +ARM void ItemManager::func_ov000_020a8aa4() {} +ARM void ItemManager::func_ov000_020a8ab8() {} +ARM void ItemManager::func_ov000_020a8acc() {} +ARM void ItemManager::func_ov000_020a8ae0() {} +ARM void ItemManager::func_ov000_020a8af4() {} +ARM void ItemManager::func_ov000_020a8b48() {} +ARM void ItemManager::func_ov000_020a8b7c() {} +ARM void ItemManager::func_ov000_020a8bb0() {} +ARM void ItemManager::func_ov000_020a8cc0() {} +ARM void ItemManager::func_ov000_020a8ce0() {} +ARM void ItemManager::func_ov000_020a8d08() {} +ARM void ItemManager::func_ov000_020a8d28() {} +ARM void ItemManager::func_ov000_020a8da0() {} +ARM void ItemManager::func_ov000_020a8da4() {} +ARM void ItemManager::func_ov000_020a8db0() {} +ARM void ItemManager::func_ov000_020a8dd0() {} +ARM void ItemManager::func_ov000_020a8df0() {} +ARM void ItemManager::func_ov000_020a8e84() {} +ARM void ItemManager::func_ov000_020a8e9c() {} +ARM void ItemManager::func_ov000_020a8ec0() {} + +ARM unk32 ItemManager::func_ov000_020a8f54() { + return 1; +} + +ARM unk32 ItemManager::func_ov000_020a8f5c() { + return 1; +} + +ARM unk32 ItemManager::func_ov000_020a8f64() { + return 0x7B; +} + +ARM void ItemManager::func_ov000_020a8f6c() {} +ARM void ItemManager::func_ov000_020a8f78() {} +ARM void ItemManager::func_ov000_020a8fe0() {} +ARM void ItemManager::func_ov000_020a8ff4() {} +ARM void ItemManager::func_ov000_020a914c() {} +ARM void ItemManager::func_ov000_020a9150() {} + +ARM unk32 ItemManager::func_ov000_020a91a0() { + return 1; +} + +ARM unk32 ItemManager::func_ov000_020a91a8() { + return -1; +} + +ARM unk32 ItemManager::func_ov000_020a91b0() { + return 1; +} + +ARM void ItemManager::func_ov000_020a91b8() {} +ARM void ItemManager::func_ov000_020a9200() {} +ARM void ItemManager::func_ov000_020a921c() {} +ARM void ItemManager::func_ov000_020a9240() {} +ARM void ItemManager::func_ov000_020a9244() {} +ARM void ItemManager::func_ov000_020a9248() {} +ARM void ItemManager::func_ov000_020a92d0() {} +ARM void ItemManager::func_ov000_020a9448() {} +ARM void ItemManager::func_ov000_020a94b0() {} +ARM void ItemManager::func_ov000_020a9598() {} +ARM void ItemManager::func_ov000_020a95c4() {} +ARM void ItemManager::func_ov000_020a95d4() {} +ARM void ItemManager::func_ov000_020a95d8() {} +ARM void ItemManager::func_ov000_020a95e4() {} + +ARM unk32 ItemManager::func_ov000_020a97fc() { + return 1; +} + +ARM void ItemManager::func_ov000_020a9804() {} +ARM void ItemManager::func_ov000_020a98f0() {} +ARM void ItemManager::func_ov000_020a98f4() {} +ARM void ItemManager::func_ov000_020a995c() {} +ARM void ItemManager::func_ov000_020a99a4() {} +ARM void ItemManager::func_ov000_020a99d8() {} +ARM void ItemManager::func_ov000_020a9a20() {} +ARM void ItemManager::func_ov000_020a9a34() {} +ARM void ItemManager::func_ov000_020a9a50() {} +ARM void ItemManager::func_ov000_020a9a94() {} +ARM void ItemManager::func_ov000_020a9abc() {} +ARM void ItemManager::func_ov000_020a9ae0() {} +ARM void ItemManager::func_ov000_020a9afc() {} +ARM void ItemManager::func_ov000_020a9b10() {} +ARM void ItemManager::func_ov000_020a9b2c() {} +ARM void ItemManager::func_ov000_020a9b3c() {} +ARM void ItemManager::func_ov000_020a9b4c() {} +ARM void ItemManager::func_ov000_020a9c4c() {} + // hasAnyTreasure ARM bool ItemManager::func_ov000_020a9c64() { for (s32 i = 0; i < ARRAY_LEN(this->mUnk_3c); i++) { @@ -189,6 +304,28 @@ ARM void ItemManager::func_ov000_020a9cbc(TreasureType type, s32 amount) { this->mUnk_3c[type] = newAmount; } +ARM unk32 ItemManager::func_ov000_020a9d78(unk32 param1) {} +ARM unk32 ItemManager::func_ov000_020a9e14(unk32 param1) {} +ARM unk32 ItemManager::func_ov000_020a9eb0(unk32 param1) {} +ARM unk32 ItemManager::func_ov000_020a9f4c(unk32 param1) {} + +ARM unk32 ItemManager::func_ov000_020aa02c(ItemId itemId) { + switch (itemId) { + case ItemId_RandCommonTreasure: + return data_ov000_020afde8[ItemManager::func_ov000_020a9d78(-1)]; + case ItemId_RandUncommonTreasure: + return data_ov000_020afde8[ItemManager::func_ov000_020a9e14(-1)]; + case ItemId_RandRareTreasure: + return data_ov000_020afde8[ItemManager::func_ov000_020a9eb0(-1)]; + case ItemId_RandLegendaryTreasure: + return data_ov000_020afde8[ItemManager::func_ov000_020a9f4c(-1)]; + default: + break; + } + + return itemId; +} + // gainTreasureFromItem ARM void ItemManager::func_ov000_020aa0ac(ItemId itemId) { switch (itemId) {