diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 037efe47..29f2daa7 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1783,7 +1783,7 @@ func_ov000_020a5d50 kind:function(arm,size=0xc) addr:0x20a5d50 func_ov000_020a5d5c kind:function(arm,size=0x18) addr:0x20a5d5c func_ov000_020a5d74 kind:function(arm,size=0x94) addr:0x20a5d74 func_ov000_020a5e08 kind:function(arm,size=0x94) addr:0x20a5e08 -_Z19func_ov000_020a5e9cPi kind:function(arm,size=0x5c) addr:0x20a5e9c +_ZN23UnkStruct_027e0d38_UnkC19func_ov000_020a5e9cEv kind:function(arm,size=0x5c) addr:0x20a5e9c func_ov000_020a5ef8 kind:function(arm,size=0x30) addr:0x20a5ef8 func_ov000_020a5f28 kind:function(arm,size=0x30) addr:0x20a5f28 func_ov000_020a5f58 kind:function(arm,size=0x14) addr:0x20a5f58 @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a8844 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a8954 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8994 -_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a89bc +_ZN13LinkStateBase18func_ov00_020a89bcEP24LinkStateBase_UnkStruct1i kind:function(arm,size=0x4c) addr:0x20a89bc _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a8a08 _ZN13LinkStateBase18func_ov00_020a8a4cEPKvi kind:function(arm,size=0x44) addr:0x20a8a4c _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a90 @@ -2450,11 +2450,11 @@ _ZN13ActorNaviBase8vfunc_ccEPi kind:function(arm,size=0x2cc) addr:0x20b88c4 _ZN13ActorNaviBase12GetOffsetPosEP5Vec3p kind:function(arm,size=0x1c) addr:0x20b8b90 _ZN13ActorNaviBase8vfunc_38Ev kind:function(arm,size=0x18) addr:0x20b8bac _ZN13ActorNaviBase8vfunc_d0Ev kind:function(arm,size=0x8c) addr:0x20b8bc4 -_ZN13ActorNaviBase19func_ov000_020b8c50Ev kind:function(arm,size=0x48) addr:0x20b8c50 +_ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20b8c50 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c98 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8d34 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9178 -_ZN13ActorNaviBase9SetActiveEb kind:function(arm,size=0x15c) addr:0x20b917c +_ZN13ActorNaviBase9SetActiveEi kind:function(arm,size=0x15c) addr:0x20b917c _ZN13ActorNaviBase17TeleportAboveLinkEv kind:function(arm,size=0x58) addr:0x20b92d8 _ZN13ActorNaviBase8vfunc_e0Ev kind:function(arm,size=0x42c) addr:0x20b9330 _ZN13ActorNaviBase8vfunc_e4Ev kind:function(arm,size=0x14) addr:0x20b975c @@ -2645,7 +2645,7 @@ _ZNK9EquipItem8vfunc_4cEv kind:function(arm,size=0x8) addr:0x20be988 _ZN9EquipItem12GetPlayerPosEv kind:function(arm,size=0xc) addr:0x20be990 _ZN9EquipItem19func_ov000_020be99cEP5Vec3p kind:function(arm,size=0x48) addr:0x20be99c _ZN9EquipItem19func_ov000_020be9e4Eiiis kind:function(arm,size=0x14c) addr:0x20be9e4 -_ZN9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20beb30 +_ZNK9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20beb30 _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x20beb5c _ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x20beb90 _ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x20beba8 diff --git a/config/eur/arm9/overlays/ov005/relocs.txt b/config/eur/arm9/overlays/ov005/relocs.txt index aaf7b5ff..3c32e51f 100644 --- a/config/eur/arm9/overlays/ov005/relocs.txt +++ b/config/eur/arm9/overlays/ov005/relocs.txt @@ -2519,7 +2519,7 @@ from:0x0211266c kind:load to:0x02199020 module:overlays(40,53,55) from:0x02112674 kind:load to:0x0219911c module:overlays(40,56) from:0x0211267c kind:load to:0x02199edc module:overlays(40,57) from:0x02112684 kind:load to:0x0219a47c module:overlays(53,58) -from:0x0211268c kind:load to:0x021990a4 module:overlays(40,59) +from:0x0211268c kind:load to:0x021990a4 module:overlay(59) from:0x02112694 kind:load to:0x02199654 module:overlays(40,55) from:0x0211269c kind:load to:0x02199654 module:overlays(40,55) from:0x021126a4 kind:load to:0x02105dac module:overlay(5) diff --git a/config/eur/arm9/overlays/ov005/symbols.txt b/config/eur/arm9/overlays/ov005/symbols.txt index a0c2e66b..05f10939 100644 --- a/config/eur/arm9/overlays/ov005/symbols.txt +++ b/config/eur/arm9/overlays/ov005/symbols.txt @@ -154,7 +154,7 @@ _ZN13LinkStateRoll19func_ov005_02107208Ej kind:function(arm,size=0xc) addr:0x210 _ZN13LinkStateRoll19func_ov005_02107214Ev kind:function(arm,size=0x1a4) addr:0x2107214 _ZN13LinkStateRoll19func_ov005_021073b8Ev kind:function(arm,size=0x204) addr:0x21073b8 _ZN13LinkStateRoll19func_ov005_021075bcEv kind:function(arm,size=0x2b4) addr:0x21075bc -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2107870 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2107870 local _ZN13LinkStateRoll19func_ov005_02107880Ev kind:function(arm,size=0xd4) addr:0x2107880 _ZN13LinkStateRoll19func_ov005_02107954Eiii kind:function(arm,size=0x220) addr:0x2107954 _ZN13LinkStateRoll19func_ov005_02107b74EPiss kind:function(arm,size=0x60) addr:0x2107b74 diff --git a/config/eur/arm9/overlays/ov014/relocs.txt b/config/eur/arm9/overlays/ov014/relocs.txt index 32eaed4d..99f8055c 100644 --- a/config/eur/arm9/overlays/ov014/relocs.txt +++ b/config/eur/arm9/overlays/ov014/relocs.txt @@ -5848,7 +5848,7 @@ from:0x02150524 kind:arm_call to:0x0208ccdc module:overlay(0) from:0x02150604 kind:load to:0x02050f54 module:main from:0x02150608 kind:load to:0x027e0f68 module:dtcm from:0x02150624 kind:load to:0x027e1058 module:dtcm -from:0x02150628 kind:load to:0x0211c0a4 module:overlays(9,12) +from:0x02150628 kind:load to:0x0211c0a4 module:overlay(9) from:0x02150632 kind:thumb_call to:0x020fab28 module:overlay(3) from:0x02150648 kind:thumb_call_arm to:0x0204f614 module:main from:0x02150654 kind:thumb_call to:0x0211cebc module:overlay(9) @@ -7145,7 +7145,7 @@ from:0x02155cec kind:load to:0x02155cb8 module:overlay(14) from:0x02155cf0 kind:load to:0x02155cb4 module:overlay(14) from:0x02155cfc kind:load to:0x0212319c module:overlay(14) from:0x02155d00 kind:load to:0x0212315c module:overlay(14) -from:0x02155d04 kind:load to:0x02199b94 module:overlays(40,53) +from:0x02155d04 kind:load to:0x02199b94 module:overlay(53) from:0x02155d08 kind:load to:0x020c173c module:overlay(0) from:0x02155d0c kind:load to:0x021237ec module:overlay(14) from:0x02155d10 kind:load to:0x02123254 module:overlay(14) @@ -7198,7 +7198,7 @@ from:0x02155de8 kind:load to:0x02155db4 module:overlay(14) from:0x02155dec kind:load to:0x02155db0 module:overlay(14) from:0x02155df8 kind:load to:0x021238a8 module:overlay(14) from:0x02155dfc kind:load to:0x02123858 module:overlay(14) -from:0x02155e00 kind:load to:0x0219a568 module:overlays(53,57) +from:0x02155e00 kind:load to:0x0219a568 module:overlay(57) from:0x02155e04 kind:load to:0x020c173c module:overlay(0) from:0x02155e08 kind:load to:0x02123ff1 module:overlay(14) from:0x02155e0c kind:load to:0x02123994 module:overlay(14) @@ -9888,25 +9888,25 @@ from:0x02158d40 kind:load to:0x0211bd14 module:overlay(9) from:0x02158d44 kind:load to:0x0211bd58 module:overlay(9) from:0x02158d48 kind:load to:0x0213c505 module:overlay(14) from:0x02158d4c kind:load to:0x0213c5bc module:overlay(14) -from:0x02158d58 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158d58 kind:load to:0x02198d00 module:overlay(54) from:0x02158d5c kind:load to:0x0213cf9d module:overlay(14) from:0x02158d60 kind:load to:0x0213cfa9 module:overlay(14) from:0x02158d64 kind:load to:0x0213cfbc module:overlay(14) -from:0x02158d68 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158d6c kind:load to:0x02198d68 module:overlays(40,54) -from:0x02158d70 kind:load to:0x02198d2c module:overlays(40,54,55) +from:0x02158d68 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158d6c kind:load to:0x02198d68 module:overlay(54) +from:0x02158d70 kind:load to:0x02198d2c module:overlay(54) from:0x02158d74 kind:load to:0x020be8e0 module:overlay(0) from:0x02158d78 kind:load to:0x020beb5c module:overlay(0) from:0x02158d7c kind:load to:0x020be8fc module:overlay(0) from:0x02158d80 kind:load to:0x020be904 module:overlay(0) from:0x02158d84 kind:load to:0x020be964 module:overlay(0) -from:0x02158d88 kind:load to:0x02198e04 module:overlays(40,54) +from:0x02158d88 kind:load to:0x02198e04 module:overlay(54) from:0x02158d8c kind:load to:0x020be96c module:overlay(0) -from:0x02158d90 kind:load to:0x02198e4c module:overlays(40,54) +from:0x02158d90 kind:load to:0x02198e4c module:overlay(54) from:0x02158d94 kind:load to:0x020beb90 module:overlay(0) -from:0x02158d98 kind:load to:0x02198d30 module:overlays(40,54) +from:0x02158d98 kind:load to:0x02198d30 module:overlay(54) from:0x02158d9c kind:load to:0x02198d38 module:overlays(40,54) -from:0x02158da0 kind:load to:0x02198d48 module:overlays(40,54) +from:0x02158da0 kind:load to:0x02198d48 module:overlay(54) from:0x02158da4 kind:load to:0x020be988 module:overlay(0) from:0x02158dc8 kind:load to:0x02158dc4 module:overlay(14) from:0x02158dcc kind:load to:0x02158dc0 module:overlay(14) @@ -9921,36 +9921,36 @@ from:0x02158df4 kind:load to:0x0213d011 module:overlay(14) from:0x02158df8 kind:load to:0x0213d03d module:overlay(14) from:0x02158dfc kind:load to:0x0213d17c module:overlay(14) from:0x02158e00 kind:load to:0x0213d079 module:overlay(14) -from:0x02158e04 kind:load to:0x021993e8 module:overlays(40,53,56) -from:0x02158e08 kind:load to:0x02199064 module:overlays(40,53) -from:0x02158e0c kind:load to:0x021990d0 module:overlays(40,53) +from:0x02158e04 kind:load to:0x021993e8 module:overlay(53) +from:0x02158e08 kind:load to:0x02199064 module:overlay(53) +from:0x02158e0c kind:load to:0x021990d0 module:overlay(53) from:0x02158e10 kind:load to:0x020beb5c module:overlay(0) from:0x02158e14 kind:load to:0x020be8fc module:overlay(0) from:0x02158e18 kind:load to:0x0213d06c module:overlay(14) from:0x02158e1c kind:load to:0x020be964 module:overlay(0) -from:0x02158e20 kind:load to:0x0219913c module:overlays(40,53) +from:0x02158e20 kind:load to:0x0219913c module:overlay(53) from:0x02158e24 kind:load to:0x020be96c module:overlay(0) -from:0x02158e28 kind:load to:0x02199318 module:overlays(40,53) +from:0x02158e28 kind:load to:0x02199318 module:overlay(53) from:0x02158e2c kind:load to:0x020beb90 module:overlay(0) from:0x02158e30 kind:load to:0x020be970 module:overlay(0) from:0x02158e34 kind:load to:0x020be978 module:overlay(0) from:0x02158e38 kind:load to:0x020be980 module:overlay(0) from:0x02158e3c kind:load to:0x020be988 module:overlay(0) -from:0x02158e48 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158e48 kind:load to:0x02198d00 module:overlay(55) from:0x02158e4c kind:load to:0x0213d214 module:overlay(14) from:0x02158e50 kind:load to:0x0213d1f8 module:overlay(14) from:0x02158e54 kind:load to:0x0213d1f0 module:overlay(14) -from:0x02158e58 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158e5c kind:load to:0x02198d2c module:overlays(40,54,55) -from:0x02158e60 kind:load to:0x02198d8c module:overlays(40,55) +from:0x02158e58 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158e5c kind:load to:0x02198d2c module:overlay(55) +from:0x02158e60 kind:load to:0x02198d8c module:overlay(55) from:0x02158e64 kind:load to:0x020be8e0 module:overlay(0) from:0x02158e68 kind:load to:0x020beb5c module:overlay(0) from:0x02158e6c kind:load to:0x020be8fc module:overlay(0) from:0x02158e70 kind:load to:0x020be904 module:overlay(0) from:0x02158e74 kind:load to:0x020be964 module:overlay(0) -from:0x02158e78 kind:load to:0x02198da4 module:overlays(40,55) +from:0x02158e78 kind:load to:0x02198da4 module:overlay(55) from:0x02158e7c kind:load to:0x020be96c module:overlay(0) -from:0x02158e80 kind:load to:0x02198df8 module:overlays(40,55,56) +from:0x02158e80 kind:load to:0x02198df8 module:overlay(55) from:0x02158e84 kind:load to:0x020beb90 module:overlay(0) from:0x02158e88 kind:load to:0x020be970 module:overlay(0) from:0x02158e8c kind:load to:0x020be978 module:overlay(0) @@ -9970,36 +9970,36 @@ from:0x02158ee8 kind:load to:0x0213d315 module:overlay(14) from:0x02158eec kind:load to:0x0213d359 module:overlay(14) from:0x02158ef0 kind:load to:0x0213d3cc module:overlay(14) from:0x02158ef4 kind:load to:0x0213d3a1 module:overlay(14) -from:0x02158ef8 kind:load to:0x021990b4 module:overlays(40,57) -from:0x02158efc kind:load to:0x021992f4 module:overlays(40,57) -from:0x02158f00 kind:load to:0x0219935c module:overlays(40,57) +from:0x02158ef8 kind:load to:0x021990b4 module:overlay(57) +from:0x02158efc kind:load to:0x021992f4 module:overlay(57) +from:0x02158f00 kind:load to:0x0219935c module:overlay(57) from:0x02158f04 kind:load to:0x020beb5c module:overlay(0) from:0x02158f08 kind:load to:0x020be8fc module:overlay(0) from:0x02158f0c kind:load to:0x020be904 module:overlay(0) from:0x02158f10 kind:load to:0x020be964 module:overlay(0) -from:0x02158f14 kind:load to:0x02199744 module:overlays(40,57) +from:0x02158f14 kind:load to:0x02199744 module:overlay(57) from:0x02158f18 kind:load to:0x020be96c module:overlay(0) -from:0x02158f1c kind:load to:0x021998f0 module:overlays(40,55,57) +from:0x02158f1c kind:load to:0x021998f0 module:overlay(57) from:0x02158f20 kind:load to:0x020beb90 module:overlay(0) from:0x02158f24 kind:load to:0x020be970 module:overlay(0) from:0x02158f28 kind:load to:0x020be978 module:overlay(0) from:0x02158f2c kind:load to:0x020be980 module:overlay(0) from:0x02158f30 kind:load to:0x020be988 module:overlay(0) -from:0x02158f3c kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158f3c kind:load to:0x02198d00 module:overlay(56) from:0x02158f40 kind:load to:0x0213ead5 module:overlay(14) from:0x02158f44 kind:load to:0x0213eae1 module:overlay(14) from:0x02158f48 kind:load to:0x0213eaf4 module:overlay(14) -from:0x02158f4c kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158f50 kind:load to:0x02198d4c module:overlays(40,56) -from:0x02158f54 kind:load to:0x02198d84 module:overlays(40,56) +from:0x02158f4c kind:load to:0x0210ba89 module:overlay(4) +from:0x02158f50 kind:load to:0x02198d4c module:overlay(56) +from:0x02158f54 kind:load to:0x02198d84 module:overlay(56) from:0x02158f58 kind:load to:0x020be8e0 module:overlay(0) from:0x02158f5c kind:load to:0x020beb5c module:overlay(0) from:0x02158f60 kind:load to:0x020be8fc module:overlay(0) from:0x02158f64 kind:load to:0x020be904 module:overlay(0) from:0x02158f68 kind:load to:0x020be964 module:overlay(0) -from:0x02158f6c kind:load to:0x02198de4 module:overlays(40,53,56) +from:0x02158f6c kind:load to:0x02198de4 module:overlay(56) from:0x02158f70 kind:load to:0x020be96c module:overlay(0) -from:0x02158f74 kind:load to:0x02198df8 module:overlays(40,55,56) +from:0x02158f74 kind:load to:0x02198df8 module:overlay(56) from:0x02158f78 kind:load to:0x020beb90 module:overlay(0) from:0x02158f7c kind:load to:0x020be970 module:overlay(0) from:0x02158f80 kind:load to:0x020be978 module:overlay(0) @@ -10009,10 +10009,10 @@ from:0x02158f94 kind:load to:0x02198fc1 module:overlay(58) from:0x02158f98 kind:load to:0x0213eb5d module:overlay(14) from:0x02158f9c kind:load to:0x0213eb7d module:overlay(14) from:0x02158fa0 kind:load to:0x0213ecac module:overlay(14) -from:0x02158fa4 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158fa8 kind:load to:0x02199284 module:overlays(40,58) -from:0x02158fac kind:load to:0x0219903d module:overlays(40,58) -from:0x02158fb0 kind:load to:0x02199061 module:overlays(40,58) +from:0x02158fa4 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158fa8 kind:load to:0x02199284 module:overlay(58) +from:0x02158fac kind:load to:0x0219903d module:overlay(58) +from:0x02158fb0 kind:load to:0x02199061 module:overlay(58) from:0x02158fb4 kind:load to:0x020beb5c module:overlay(0) from:0x02158fb8 kind:load to:0x020be8fc module:overlay(0) from:0x02158fbc kind:load to:0x020be904 module:overlay(0) @@ -10030,16 +10030,16 @@ from:0x02158ff0 kind:load to:0x0213ede5 module:overlay(14) from:0x02158ff4 kind:load to:0x0213edf1 module:overlay(14) from:0x02158ff8 kind:load to:0x0213ee08 module:overlay(14) from:0x02158ffc kind:load to:0x0213ee05 module:overlay(14) -from:0x02159000 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) -from:0x02159004 kind:load to:0x02198e3c module:overlays(40,59) -from:0x02159008 kind:load to:0x02198e58 module:overlays(40,59) +from:0x02159000 kind:load to:0x02198d00 module:overlay(59) +from:0x02159004 kind:load to:0x02198e3c module:overlay(59) +from:0x02159008 kind:load to:0x02198e58 module:overlay(59) from:0x0215900c kind:load to:0x020beb5c module:overlay(0) from:0x02159010 kind:load to:0x020be8fc module:overlay(0) from:0x02159014 kind:load to:0x020be904 module:overlay(0) -from:0x02159018 kind:load to:0x02198fcc module:overlays(40,59) -from:0x0215901c kind:load to:0x02198e6c module:overlays(40,59) +from:0x02159018 kind:load to:0x02198fcc module:overlay(59) +from:0x0215901c kind:load to:0x02198e6c module:overlay(59) from:0x02159020 kind:load to:0x020be96c module:overlay(0) -from:0x02159024 kind:load to:0x02198fc8 module:overlays(40,59) +from:0x02159024 kind:load to:0x02198fc8 module:overlay(59) from:0x02159028 kind:load to:0x0213ee10 module:overlay(14) from:0x0215902c kind:load to:0x020be970 module:overlay(0) from:0x02159030 kind:load to:0x020be978 module:overlay(0) @@ -10061,9 +10061,9 @@ from:0x02159094 kind:load to:0x020bb46c module:overlay(0) from:0x02159098 kind:load to:0x020bb4dc module:overlay(0) from:0x0215909c kind:load to:0x020bba60 module:overlay(0) from:0x021590a0 kind:load to:0x0213efd1 module:overlay(14) -from:0x021590a4 kind:load to:0x0210ab21 module:overlays(4,7) +from:0x021590a4 kind:load to:0x0210ab21 module:overlay(4) from:0x021590a8 kind:load to:0x0213f334 module:overlay(14) -from:0x021590ac kind:load to:0x0210eaa0 module:overlays(5,7) +from:0x021590ac kind:load to:0x0210eaa0 module:overlay(5) from:0x021590b0 kind:load to:0x0213f104 module:overlay(14) from:0x021590b4 kind:load to:0x020bbed4 module:overlay(0) from:0x021590b8 kind:load to:0x020bcad8 module:overlay(0) @@ -10107,7 +10107,7 @@ from:0x021591ac kind:load to:0x02183744 module:overlay(40) from:0x021591b0 kind:load to:0x02141b30 module:overlay(14) from:0x021591b4 kind:load to:0x0213ff34 module:overlay(14) from:0x021591b8 kind:load to:0x0213fee5 module:overlay(14) -from:0x021591bc kind:load to:0x0210b679 module:overlays(4,7) +from:0x021591bc kind:load to:0x0210b679 module:overlay(4) from:0x021591c0 kind:load to:0x021400c0 module:overlay(14) from:0x021591c4 kind:load to:0x020b471c module:overlay(0) from:0x021591c8 kind:load to:0x021402c0 module:overlay(14) @@ -11338,41 +11338,41 @@ from:0x0215a7b0 kind:load to:0x0215a78c module:overlay(14) from:0x0215a7b4 kind:load to:0x0215a788 module:overlay(14) from:0x0215a7b8 kind:load to:0x0215a784 module:overlay(14) from:0x0215a7bc kind:load to:0x0215a780 module:overlay(14) -from:0x0215a7c8 kind:load to:0x021991a8 module:overlays(40,55) +from:0x0215a7c8 kind:load to:0x021991a8 module:overlay(55) from:0x0215a7cc kind:load to:0x021515e9 module:overlay(14) from:0x0215a7d0 kind:load to:0x021515f5 module:overlay(14) from:0x0215a7d4 kind:load to:0x02151608 module:overlay(14) -from:0x0215a7d8 kind:load to:0x0210ba89 module:overlays(4,7) +from:0x0215a7d8 kind:load to:0x0210ba89 module:overlay(4) from:0x0215a7dc kind:load to:0x02151610 module:overlay(14) -from:0x0215a7e0 kind:load to:0x021991ac module:overlays(40,55) -from:0x0215a7e4 kind:load to:0x021991b0 module:overlays(40,55) +from:0x0215a7e0 kind:load to:0x021991ac module:overlay(55) +from:0x0215a7e4 kind:load to:0x021991b0 module:overlay(55) from:0x0215a7e8 kind:load to:0x020beb5c module:overlay(0) from:0x0215a7ec kind:load to:0x020be8fc module:overlay(0) from:0x0215a7f0 kind:load to:0x020be904 module:overlay(0) from:0x0215a7f4 kind:load to:0x020be964 module:overlay(0) -from:0x0215a7f8 kind:load to:0x02199274 module:overlays(40,55) +from:0x0215a7f8 kind:load to:0x02199274 module:overlay(55) from:0x0215a7fc kind:load to:0x020be96c module:overlay(0) -from:0x0215a800 kind:load to:0x02199278 module:overlays(40,55) +from:0x0215a800 kind:load to:0x02199278 module:overlay(55) from:0x0215a804 kind:load to:0x020beb90 module:overlay(0) from:0x0215a808 kind:load to:0x020be970 module:overlay(0) from:0x0215a80c kind:load to:0x020be978 module:overlay(0) from:0x0215a810 kind:load to:0x020be980 module:overlay(0) from:0x0215a814 kind:load to:0x020be988 module:overlay(0) -from:0x0215a820 kind:load to:0x021991a8 module:overlays(40,55) +from:0x0215a820 kind:load to:0x021991a8 module:overlay(55) from:0x0215a824 kind:load to:0x021515a9 module:overlay(14) from:0x0215a828 kind:load to:0x021515b5 module:overlay(14) from:0x0215a82c kind:load to:0x021515c8 module:overlay(14) -from:0x0215a830 kind:load to:0x0210ba89 module:overlays(4,7) +from:0x0215a830 kind:load to:0x0210ba89 module:overlay(4) from:0x0215a834 kind:load to:0x02151610 module:overlay(14) -from:0x0215a838 kind:load to:0x021991ac module:overlays(40,55) -from:0x0215a83c kind:load to:0x021991b0 module:overlays(40,55) +from:0x0215a838 kind:load to:0x021991ac module:overlay(55) +from:0x0215a83c kind:load to:0x021991b0 module:overlay(55) from:0x0215a840 kind:load to:0x020beb5c module:overlay(0) from:0x0215a844 kind:load to:0x020be8fc module:overlay(0) from:0x0215a848 kind:load to:0x020be904 module:overlay(0) from:0x0215a84c kind:load to:0x020be964 module:overlay(0) -from:0x0215a850 kind:load to:0x02199274 module:overlays(40,55) +from:0x0215a850 kind:load to:0x02199274 module:overlay(55) from:0x0215a854 kind:load to:0x020be96c module:overlay(0) -from:0x0215a858 kind:load to:0x02199278 module:overlays(40,55) +from:0x0215a858 kind:load to:0x02199278 module:overlay(55) from:0x0215a85c kind:load to:0x020beb90 module:overlay(0) from:0x0215a860 kind:load to:0x020be970 module:overlay(0) from:0x0215a864 kind:load to:0x020be978 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov059/delinks.txt b/config/eur/arm9/overlays/ov059/delinks.txt index ff7e5c38..630335cc 100644 --- a/config/eur/arm9/overlays/ov059/delinks.txt +++ b/config/eur/arm9/overlays/ov059/delinks.txt @@ -4,3 +4,12 @@ .data start:0x0219b140 end:0x0219b1c0 kind:data align:32 .bss start:0x0219b1c0 end:0x0219b1c0 kind:bss align:32 + +src/59_Hammer/Player/EquipHammer.cpp: + complete + .text start:0x02198d00 end:0x0219933c + .data start:0x0219b140 end:0x0219b1c0 + +src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: + .text start:0x0219933c end:0x0219b110 + .rodata start:0x0219b110 end:0x0219b124 diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt index 6375ea18..6cb01a6f 100644 --- a/config/eur/arm9/overlays/ov059/symbols.txt +++ b/config/eur/arm9/overlays/ov059/symbols.txt @@ -1,5 +1,5 @@ _ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198d00 -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198e2c local +_ZN11EquipHammer16GetLinkStateItemEv kind:function(arm,size=0x10) addr:0x2198e2c _ZN11EquipHammer8vfunc_18Ev kind:function(arm,size=0x1c) addr:0x2198e3c _ZN11EquipHammer8vfunc_1cEv kind:function(arm,size=0x14) addr:0x2198e58 _ZN11EquipHammer8vfunc_30Ev kind:function(arm,size=0x24) addr:0x2198e6c @@ -10,30 +10,30 @@ _ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) add _ZN11EquipHammer19func_ov059_02198fa8Ei kind:function(arm,size=0x20) addr:0x2198fa8 _ZN11EquipHammer8vfunc_38Ei kind:function(arm,size=0x4) addr:0x2198fc8 _ZN11EquipHammer8vfunc_2cEv kind:function(arm,size=0x14) addr:0x2198fcc -_ZN11EquipHammer19func_ov059_02198fe0Ev kind:function(arm,size=0x1c) addr:0x2198fe0 +_ZN11EquipHammer15IsHammerChargedEv kind:function(arm,size=0x1c) addr:0x2198fe0 _ZN13LinkStateItem19func_ov059_02198ffcEv kind:function(arm,size=0x80) addr:0x2198ffc _ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x219907c _ZN13LinkStateItem19func_ov059_021990a4Ev kind:function(arm,size=0x268) addr:0x21990a4 _Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x219930c _ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x219931c -_ZN13ActorNaviBase19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c -_ZN13ActorNaviBase19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac -_ZN13ActorNaviBase19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08 -_ZN13ActorNaviBase19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8 -_ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14 -_ZN13ActorNaviBase19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4 -_ZN13ActorNaviBase19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219b020 +_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c +_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac +_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08 +_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8 +_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14 +_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4 +_ZN9ActorNavi19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219b020 data_ov059_0219b110 kind:data(any) addr:0x219b110 -data_ov059_0219b140 kind:data(any) addr:0x219b140 -data_ov059_0219b144 kind:data(any) addr:0x219b144 -data_ov059_0219b148 kind:data(any) addr:0x219b148 -data_ov059_0219b14c kind:data(any) addr:0x219b14c -data_ov059_0219b150 kind:data(any) addr:0x219b150 -data_ov059_0219b154 kind:data(any) addr:0x219b154 -data_ov059_0219b158 kind:data(any) addr:0x219b158 -data_ov059_0219b15c kind:data(any) addr:0x219b15c -data_ov059_0219b160 kind:data(any) addr:0x219b160 -data_ov059_0219b180 kind:data(any) addr:0x219b180 -data_ov059_0219b190 kind:data(any) addr:0x219b190 -data_ov059_0219b1a0 kind:data(any) addr:0x219b1a0 -data_ov059_0219b1b0 kind:data(any) addr:0x219b1b0 +@1761 kind:data(any) addr:0x219b140 local +@1760 kind:data(any) addr:0x219b144 local +@1759 kind:data(any) addr:0x219b148 local +@1758 kind:data(any) addr:0x219b14c local +@1757 kind:data(any) addr:0x219b150 local +@1756 kind:data(any) addr:0x219b154 local +@1755 kind:data(any) addr:0x219b158 local +@1754 kind:data(any) addr:0x219b15c local +gShipParts kind:data(any) addr:0x219b160 local +data_ov059_0219b180 kind:data(any) addr:0x219b180 local +data_ov059_0219b190 kind:data(any) addr:0x219b190 local +data_ov059_0219b1a0 kind:data(any) addr:0x219b1a0 local +data_ov059_0219b1b0 kind:data(any) addr:0x219b1b0 local diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index ff058d9f..0ed21e2d 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1783,7 +1783,7 @@ func_ov000_020a5d50 kind:function(arm,size=0xc) addr:0x20a5cf0 func_ov000_020a5d5c kind:function(arm,size=0x18) addr:0x20a5cfc func_ov000_020a5d74 kind:function(arm,size=0x94) addr:0x20a5d14 func_ov000_020a5e08 kind:function(arm,size=0x94) addr:0x20a5da8 -func_ov000_020a5e9c kind:function(arm,size=0x5c) addr:0x20a5e3c +_ZN23UnkStruct_027e0d38_UnkC19func_ov000_020a5e9cEv kind:function(arm,size=0x5c) addr:0x20a5e3c func_ov000_020a5ef8 kind:function(arm,size=0x30) addr:0x20a5e98 func_ov000_020a5f28 kind:function(arm,size=0x30) addr:0x20a5ec8 func_ov000_020a5f58 kind:function(arm,size=0x14) addr:0x20a5ef8 @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a87e4 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a88f4 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8934 -_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a895c +_ZN13LinkStateBase18func_ov00_020a89bcEP24LinkStateBase_UnkStruct1i kind:function(arm,size=0x4c) addr:0x20a895c _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a89a8 _ZN13LinkStateBase18func_ov00_020a8a4cEPKvi kind:function(arm,size=0x44) addr:0x20a89ec _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a30 @@ -2450,11 +2450,11 @@ _ZN13ActorNaviBase8vfunc_ccEPi kind:function(arm,size=0x2cc) addr:0x20b8864 _ZN13ActorNaviBase12GetOffsetPosEP5Vec3p kind:function(arm,size=0x1c) addr:0x20b8b30 _ZN13ActorNaviBase8vfunc_38Ev kind:function(arm,size=0x18) addr:0x20b8b4c _ZN13ActorNaviBase8vfunc_d0Ev kind:function(arm,size=0x8c) addr:0x20b8b64 -_ZN13ActorNaviBase19func_ov000_020b8c50Ev kind:function(arm,size=0x48) addr:0x20b8bf0 +_ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20b8bf0 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c38 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8cd4 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9118 -_ZN13ActorNaviBase9SetActiveEb kind:function(arm,size=0x15c) addr:0x20b911c +_ZN13ActorNaviBase9SetActiveEi kind:function(arm,size=0x15c) addr:0x20b911c _ZN13ActorNaviBase17TeleportAboveLinkEv kind:function(arm,size=0x58) addr:0x20b9278 _ZN13ActorNaviBase8vfunc_e0Ev kind:function(arm,size=0x42c) addr:0x20b92d0 _ZN13ActorNaviBase8vfunc_e4Ev kind:function(arm,size=0x14) addr:0x20b96fc @@ -2645,7 +2645,7 @@ _ZNK9EquipItem8vfunc_4cEv kind:function(arm,size=0x8) addr:0x20be928 _ZN9EquipItem12GetPlayerPosEv kind:function(arm,size=0xc) addr:0x20be930 _ZN9EquipItem19func_ov000_020be99cEP5Vec3p kind:function(arm,size=0x48) addr:0x20be93c _ZN9EquipItem19func_ov000_020be9e4Eiiis kind:function(arm,size=0x14c) addr:0x20be984 -_ZN9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20bead0 +_ZNK9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20bead0 _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x20beafc _ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x20beb30 _ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x20beb48 diff --git a/config/usa/arm9/overlays/ov005/relocs.txt b/config/usa/arm9/overlays/ov005/relocs.txt index eeed1b5e..fe57d0e2 100644 --- a/config/usa/arm9/overlays/ov005/relocs.txt +++ b/config/usa/arm9/overlays/ov005/relocs.txt @@ -2519,7 +2519,7 @@ from:0x021125ec kind:load to:0x02198f80 module:overlays(40,53,55) from:0x021125f4 kind:load to:0x0219907c module:overlays(40,56) from:0x021125fc kind:load to:0x02199e3c module:overlays(40,57) from:0x02112604 kind:load to:0x0219a3dc module:overlays(53,58) -from:0x0211260c kind:load to:0x02199004 module:overlays(40,59) +from:0x0211260c kind:load to:0x02199004 module:overlay(59) from:0x02112614 kind:load to:0x021995b4 module:overlays(40,55) from:0x0211261c kind:load to:0x021995b4 module:overlays(40,55) from:0x02112624 kind:load to:0x02105d2c module:overlay(5) diff --git a/config/usa/arm9/overlays/ov005/symbols.txt b/config/usa/arm9/overlays/ov005/symbols.txt index 26670bd8..603d9a2e 100644 --- a/config/usa/arm9/overlays/ov005/symbols.txt +++ b/config/usa/arm9/overlays/ov005/symbols.txt @@ -154,7 +154,7 @@ _ZN13LinkStateRoll19func_ov005_02107208Ej kind:function(arm,size=0xc) addr:0x210 _ZN13LinkStateRoll19func_ov005_02107214Ev kind:function(arm,size=0x1a4) addr:0x2107194 _ZN13LinkStateRoll19func_ov005_021073b8Ev kind:function(arm,size=0x204) addr:0x2107338 _ZN13LinkStateRoll19func_ov005_021075bcEv kind:function(arm,size=0x2b4) addr:0x210753c -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x21077f0 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x21077f0 local _ZN13LinkStateRoll19func_ov005_02107880Ev kind:function(arm,size=0xd4) addr:0x2107800 _ZN13LinkStateRoll19func_ov005_02107954Eiii kind:function(arm,size=0x220) addr:0x21078d4 _ZN13LinkStateRoll19func_ov005_02107b74EPiss kind:function(arm,size=0x60) addr:0x2107af4 diff --git a/config/usa/arm9/overlays/ov014/relocs.txt b/config/usa/arm9/overlays/ov014/relocs.txt index 46843a25..42a2431a 100644 --- a/config/usa/arm9/overlays/ov014/relocs.txt +++ b/config/usa/arm9/overlays/ov014/relocs.txt @@ -5848,7 +5848,7 @@ from:0x02150480 kind:arm_call to:0x0208cc7c module:overlay(0) from:0x02150560 kind:load to:0x02050f10 module:main from:0x02150564 kind:load to:0x027e0f68 module:dtcm from:0x02150580 kind:load to:0x027e1058 module:dtcm -from:0x02150584 kind:load to:0x0211c024 module:overlays(9,12) +from:0x02150584 kind:load to:0x0211c024 module:overlay(9) from:0x0215058e kind:thumb_call to:0x020faa9c module:overlay(3) from:0x021505a4 kind:thumb_call_arm to:0x0204f5d0 module:main from:0x021505b0 kind:thumb_call to:0x0211ce3c module:overlay(9) @@ -7145,7 +7145,7 @@ from:0x02155c4c kind:load to:0x02155c18 module:overlay(14) from:0x02155c50 kind:load to:0x02155c14 module:overlay(14) from:0x02155c5c kind:load to:0x0212311c module:overlay(14) from:0x02155c60 kind:load to:0x021230dc module:overlay(14) -from:0x02155c64 kind:load to:0x02199af4 module:overlays(40,53) +from:0x02155c64 kind:load to:0x02199af4 module:overlay(53) from:0x02155c68 kind:load to:0x020c16dc module:overlay(0) from:0x02155c6c kind:load to:0x0212376c module:overlay(14) from:0x02155c70 kind:load to:0x021231d4 module:overlay(14) @@ -7198,7 +7198,7 @@ from:0x02155d48 kind:load to:0x02155d14 module:overlay(14) from:0x02155d4c kind:load to:0x02155d10 module:overlay(14) from:0x02155d58 kind:load to:0x02123828 module:overlay(14) from:0x02155d5c kind:load to:0x021237d8 module:overlay(14) -from:0x02155d60 kind:load to:0x0219a4c8 module:overlays(53,57) +from:0x02155d60 kind:load to:0x0219a4c8 module:overlay(57) from:0x02155d64 kind:load to:0x020c16dc module:overlay(0) from:0x02155d68 kind:load to:0x02123f71 module:overlay(14) from:0x02155d6c kind:load to:0x02123914 module:overlay(14) @@ -9888,25 +9888,25 @@ from:0x02158ca0 kind:load to:0x0211bc94 module:overlay(9) from:0x02158ca4 kind:load to:0x0211bcd8 module:overlay(9) from:0x02158ca8 kind:load to:0x0213c461 module:overlay(14) from:0x02158cac kind:load to:0x0213c518 module:overlay(14) -from:0x02158cb8 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158cb8 kind:load to:0x02198c60 module:overlay(54) from:0x02158cbc kind:load to:0x0213cef9 module:overlay(14) from:0x02158cc0 kind:load to:0x0213cf05 module:overlay(14) from:0x02158cc4 kind:load to:0x0213cf18 module:overlay(14) -from:0x02158cc8 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158ccc kind:load to:0x02198cc8 module:overlays(40,54) -from:0x02158cd0 kind:load to:0x02198c8c module:overlays(40,54,55) +from:0x02158cc8 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158ccc kind:load to:0x02198cc8 module:overlay(54) +from:0x02158cd0 kind:load to:0x02198c8c module:overlay(54) from:0x02158cd4 kind:load to:0x020be880 module:overlay(0) from:0x02158cd8 kind:load to:0x020beafc module:overlay(0) from:0x02158cdc kind:load to:0x020be89c module:overlay(0) from:0x02158ce0 kind:load to:0x020be8a4 module:overlay(0) from:0x02158ce4 kind:load to:0x020be904 module:overlay(0) -from:0x02158ce8 kind:load to:0x02198d64 module:overlays(40,54) +from:0x02158ce8 kind:load to:0x02198d64 module:overlay(54) from:0x02158cec kind:load to:0x020be90c module:overlay(0) -from:0x02158cf0 kind:load to:0x02198dac module:overlays(40,54) +from:0x02158cf0 kind:load to:0x02198dac module:overlay(54) from:0x02158cf4 kind:load to:0x020beb30 module:overlay(0) -from:0x02158cf8 kind:load to:0x02198c90 module:overlays(40,54) +from:0x02158cf8 kind:load to:0x02198c90 module:overlay(54) from:0x02158cfc kind:load to:0x02198c98 module:overlays(40,54) -from:0x02158d00 kind:load to:0x02198ca8 module:overlays(40,54) +from:0x02158d00 kind:load to:0x02198ca8 module:overlay(54) from:0x02158d04 kind:load to:0x020be928 module:overlay(0) from:0x02158d28 kind:load to:0x02158d24 module:overlay(14) from:0x02158d2c kind:load to:0x02158d20 module:overlay(14) @@ -9921,36 +9921,36 @@ from:0x02158d54 kind:load to:0x0213cf6d module:overlay(14) from:0x02158d58 kind:load to:0x0213cf99 module:overlay(14) from:0x02158d5c kind:load to:0x0213d0d8 module:overlay(14) from:0x02158d60 kind:load to:0x0213cfd5 module:overlay(14) -from:0x02158d64 kind:load to:0x02199348 module:overlays(40,53,56) -from:0x02158d68 kind:load to:0x02198fc4 module:overlays(40,53) -from:0x02158d6c kind:load to:0x02199030 module:overlays(40,53) +from:0x02158d64 kind:load to:0x02199348 module:overlay(53) +from:0x02158d68 kind:load to:0x02198fc4 module:overlay(53) +from:0x02158d6c kind:load to:0x02199030 module:overlay(53) from:0x02158d70 kind:load to:0x020beafc module:overlay(0) from:0x02158d74 kind:load to:0x020be89c module:overlay(0) from:0x02158d78 kind:load to:0x0213cfc8 module:overlay(14) from:0x02158d7c kind:load to:0x020be904 module:overlay(0) -from:0x02158d80 kind:load to:0x0219909c module:overlays(40,53) +from:0x02158d80 kind:load to:0x0219909c module:overlay(53) from:0x02158d84 kind:load to:0x020be90c module:overlay(0) -from:0x02158d88 kind:load to:0x02199278 module:overlays(40,53) +from:0x02158d88 kind:load to:0x02199278 module:overlay(53) from:0x02158d8c kind:load to:0x020beb30 module:overlay(0) from:0x02158d90 kind:load to:0x020be910 module:overlay(0) from:0x02158d94 kind:load to:0x020be918 module:overlay(0) from:0x02158d98 kind:load to:0x020be920 module:overlay(0) from:0x02158d9c kind:load to:0x020be928 module:overlay(0) -from:0x02158da8 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158da8 kind:load to:0x02198c60 module:overlay(55) from:0x02158dac kind:load to:0x0213d170 module:overlay(14) from:0x02158db0 kind:load to:0x0213d154 module:overlay(14) from:0x02158db4 kind:load to:0x0213d14c module:overlay(14) -from:0x02158db8 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158dbc kind:load to:0x02198c8c module:overlays(40,54,55) -from:0x02158dc0 kind:load to:0x02198cec module:overlays(40,55) +from:0x02158db8 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158dbc kind:load to:0x02198c8c module:overlay(55) +from:0x02158dc0 kind:load to:0x02198cec module:overlay(55) from:0x02158dc4 kind:load to:0x020be880 module:overlay(0) from:0x02158dc8 kind:load to:0x020beafc module:overlay(0) from:0x02158dcc kind:load to:0x020be89c module:overlay(0) from:0x02158dd0 kind:load to:0x020be8a4 module:overlay(0) from:0x02158dd4 kind:load to:0x020be904 module:overlay(0) -from:0x02158dd8 kind:load to:0x02198d04 module:overlays(40,55) +from:0x02158dd8 kind:load to:0x02198d04 module:overlay(55) from:0x02158ddc kind:load to:0x020be90c module:overlay(0) -from:0x02158de0 kind:load to:0x02198d58 module:overlays(40,55,56) +from:0x02158de0 kind:load to:0x02198d58 module:overlay(55) from:0x02158de4 kind:load to:0x020beb30 module:overlay(0) from:0x02158de8 kind:load to:0x020be910 module:overlay(0) from:0x02158dec kind:load to:0x020be918 module:overlay(0) @@ -9970,36 +9970,36 @@ from:0x02158e48 kind:load to:0x0213d271 module:overlay(14) from:0x02158e4c kind:load to:0x0213d2b5 module:overlay(14) from:0x02158e50 kind:load to:0x0213d328 module:overlay(14) from:0x02158e54 kind:load to:0x0213d2fd module:overlay(14) -from:0x02158e58 kind:load to:0x02199014 module:overlays(40,57) -from:0x02158e5c kind:load to:0x02199254 module:overlays(40,57) -from:0x02158e60 kind:load to:0x021992bc module:overlays(40,57) +from:0x02158e58 kind:load to:0x02199014 module:overlay(57) +from:0x02158e5c kind:load to:0x02199254 module:overlay(57) +from:0x02158e60 kind:load to:0x021992bc module:overlay(57) from:0x02158e64 kind:load to:0x020beafc module:overlay(0) from:0x02158e68 kind:load to:0x020be89c module:overlay(0) from:0x02158e6c kind:load to:0x020be8a4 module:overlay(0) from:0x02158e70 kind:load to:0x020be904 module:overlay(0) -from:0x02158e74 kind:load to:0x021996a4 module:overlays(40,57) +from:0x02158e74 kind:load to:0x021996a4 module:overlay(57) from:0x02158e78 kind:load to:0x020be90c module:overlay(0) -from:0x02158e7c kind:load to:0x02199850 module:overlays(40,55,57) +from:0x02158e7c kind:load to:0x02199850 module:overlay(57) from:0x02158e80 kind:load to:0x020beb30 module:overlay(0) from:0x02158e84 kind:load to:0x020be910 module:overlay(0) from:0x02158e88 kind:load to:0x020be918 module:overlay(0) from:0x02158e8c kind:load to:0x020be920 module:overlay(0) from:0x02158e90 kind:load to:0x020be928 module:overlay(0) -from:0x02158e9c kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158e9c kind:load to:0x02198c60 module:overlay(56) from:0x02158ea0 kind:load to:0x0213ea31 module:overlay(14) from:0x02158ea4 kind:load to:0x0213ea3d module:overlay(14) from:0x02158ea8 kind:load to:0x0213ea50 module:overlay(14) -from:0x02158eac kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158eb0 kind:load to:0x02198cac module:overlays(40,56) -from:0x02158eb4 kind:load to:0x02198ce4 module:overlays(40,56) +from:0x02158eac kind:load to:0x0210ba09 module:overlay(4) +from:0x02158eb0 kind:load to:0x02198cac module:overlay(56) +from:0x02158eb4 kind:load to:0x02198ce4 module:overlay(56) from:0x02158eb8 kind:load to:0x020be880 module:overlay(0) from:0x02158ebc kind:load to:0x020beafc module:overlay(0) from:0x02158ec0 kind:load to:0x020be89c module:overlay(0) from:0x02158ec4 kind:load to:0x020be8a4 module:overlay(0) from:0x02158ec8 kind:load to:0x020be904 module:overlay(0) -from:0x02158ecc kind:load to:0x02198d44 module:overlays(40,53,56) +from:0x02158ecc kind:load to:0x02198d44 module:overlay(56) from:0x02158ed0 kind:load to:0x020be90c module:overlay(0) -from:0x02158ed4 kind:load to:0x02198d58 module:overlays(40,55,56) +from:0x02158ed4 kind:load to:0x02198d58 module:overlay(56) from:0x02158ed8 kind:load to:0x020beb30 module:overlay(0) from:0x02158edc kind:load to:0x020be910 module:overlay(0) from:0x02158ee0 kind:load to:0x020be918 module:overlay(0) @@ -10009,8 +10009,8 @@ from:0x02158ef4 kind:load to:0x02198f21 module:overlay(58) from:0x02158ef8 kind:load to:0x0213eab9 module:overlay(14) from:0x02158efc kind:load to:0x0213ead9 module:overlay(14) from:0x02158f00 kind:load to:0x0213ec08 module:overlay(14) -from:0x02158f04 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158f08 kind:load to:0x021991e4 module:overlays(40,58) +from:0x02158f04 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158f08 kind:load to:0x021991e4 module:overlay(58) from:0x02158f0c kind:load to:0x02198f9d module:overlay(58) from:0x02158f10 kind:load to:0x02198fc1 module:overlay(58) from:0x02158f14 kind:load to:0x020beafc module:overlay(0) @@ -10030,16 +10030,16 @@ from:0x02158f50 kind:load to:0x0213ed41 module:overlay(14) from:0x02158f54 kind:load to:0x0213ed4d module:overlay(14) from:0x02158f58 kind:load to:0x0213ed64 module:overlay(14) from:0x02158f5c kind:load to:0x0213ed61 module:overlay(14) -from:0x02158f60 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) -from:0x02158f64 kind:load to:0x02198d9c module:overlays(40,59) -from:0x02158f68 kind:load to:0x02198db8 module:overlays(40,59) +from:0x02158f60 kind:load to:0x02198c60 module:overlay(59) +from:0x02158f64 kind:load to:0x02198d9c module:overlay(59) +from:0x02158f68 kind:load to:0x02198db8 module:overlay(59) from:0x02158f6c kind:load to:0x020beafc module:overlay(0) from:0x02158f70 kind:load to:0x020be89c module:overlay(0) from:0x02158f74 kind:load to:0x020be8a4 module:overlay(0) -from:0x02158f78 kind:load to:0x02198f2c module:overlays(40,59) -from:0x02158f7c kind:load to:0x02198dcc module:overlays(40,59) +from:0x02158f78 kind:load to:0x02198f2c module:overlay(59) +from:0x02158f7c kind:load to:0x02198dcc module:overlay(59) from:0x02158f80 kind:load to:0x020be90c module:overlay(0) -from:0x02158f84 kind:load to:0x02198f28 module:overlays(40,59) +from:0x02158f84 kind:load to:0x02198f28 module:overlay(59) from:0x02158f88 kind:load to:0x0213ed6c module:overlay(14) from:0x02158f8c kind:load to:0x020be910 module:overlay(0) from:0x02158f90 kind:load to:0x020be918 module:overlay(0) @@ -10061,9 +10061,9 @@ from:0x02158ff4 kind:load to:0x020bb40c module:overlay(0) from:0x02158ff8 kind:load to:0x020bb47c module:overlay(0) from:0x02158ffc kind:load to:0x020bba00 module:overlay(0) from:0x02159000 kind:load to:0x0213ef2d module:overlay(14) -from:0x02159004 kind:load to:0x0210aaa1 module:overlays(4,7) +from:0x02159004 kind:load to:0x0210aaa1 module:overlay(4) from:0x02159008 kind:load to:0x0213f290 module:overlay(14) -from:0x0215900c kind:load to:0x0210ea20 module:overlays(5,7) +from:0x0215900c kind:load to:0x0210ea20 module:overlay(5) from:0x02159010 kind:load to:0x0213f060 module:overlay(14) from:0x02159014 kind:load to:0x020bbe74 module:overlay(0) from:0x02159018 kind:load to:0x020bca78 module:overlay(0) @@ -10107,7 +10107,7 @@ from:0x0215910c kind:load to:0x021836a4 module:overlay(40) from:0x02159110 kind:load to:0x02141a8c module:overlay(14) from:0x02159114 kind:load to:0x0213fe90 module:overlay(14) from:0x02159118 kind:load to:0x0213fe41 module:overlay(14) -from:0x0215911c kind:load to:0x0210b5f9 module:overlays(4,7) +from:0x0215911c kind:load to:0x0210b5f9 module:overlay(4) from:0x02159120 kind:load to:0x0214001c module:overlay(14) from:0x02159124 kind:load to:0x020b46bc module:overlay(0) from:0x02159128 kind:load to:0x0214021c module:overlay(14) @@ -11338,41 +11338,41 @@ from:0x0215a710 kind:load to:0x0215a6ec module:overlay(14) from:0x0215a714 kind:load to:0x0215a6e8 module:overlay(14) from:0x0215a718 kind:load to:0x0215a6e4 module:overlay(14) from:0x0215a71c kind:load to:0x0215a6e0 module:overlay(14) -from:0x0215a728 kind:load to:0x02199108 module:overlays(40,55) +from:0x0215a728 kind:load to:0x02199108 module:overlay(55) from:0x0215a72c kind:load to:0x02151545 module:overlay(14) from:0x0215a730 kind:load to:0x02151551 module:overlay(14) from:0x0215a734 kind:load to:0x02151564 module:overlay(14) -from:0x0215a738 kind:load to:0x0210ba09 module:overlays(4,7) +from:0x0215a738 kind:load to:0x0210ba09 module:overlay(4) from:0x0215a73c kind:load to:0x0215156c module:overlay(14) -from:0x0215a740 kind:load to:0x0219910c module:overlays(40,55) -from:0x0215a744 kind:load to:0x02199110 module:overlays(40,55) +from:0x0215a740 kind:load to:0x0219910c module:overlay(55) +from:0x0215a744 kind:load to:0x02199110 module:overlay(55) from:0x0215a748 kind:load to:0x020beafc module:overlay(0) from:0x0215a74c kind:load to:0x020be89c module:overlay(0) from:0x0215a750 kind:load to:0x020be8a4 module:overlay(0) from:0x0215a754 kind:load to:0x020be904 module:overlay(0) -from:0x0215a758 kind:load to:0x021991d4 module:overlays(40,55) +from:0x0215a758 kind:load to:0x021991d4 module:overlay(55) from:0x0215a75c kind:load to:0x020be90c module:overlay(0) -from:0x0215a760 kind:load to:0x021991d8 module:overlays(40,55) +from:0x0215a760 kind:load to:0x021991d8 module:overlay(55) from:0x0215a764 kind:load to:0x020beb30 module:overlay(0) from:0x0215a768 kind:load to:0x020be910 module:overlay(0) from:0x0215a76c kind:load to:0x020be918 module:overlay(0) from:0x0215a770 kind:load to:0x020be920 module:overlay(0) from:0x0215a774 kind:load to:0x020be928 module:overlay(0) -from:0x0215a780 kind:load to:0x02199108 module:overlays(40,55) +from:0x0215a780 kind:load to:0x02199108 module:overlay(55) from:0x0215a784 kind:load to:0x02151505 module:overlay(14) from:0x0215a788 kind:load to:0x02151511 module:overlay(14) from:0x0215a78c kind:load to:0x02151524 module:overlay(14) -from:0x0215a790 kind:load to:0x0210ba09 module:overlays(4,7) +from:0x0215a790 kind:load to:0x0210ba09 module:overlay(4) from:0x0215a794 kind:load to:0x0215156c module:overlay(14) -from:0x0215a798 kind:load to:0x0219910c module:overlays(40,55) -from:0x0215a79c kind:load to:0x02199110 module:overlays(40,55) +from:0x0215a798 kind:load to:0x0219910c module:overlay(55) +from:0x0215a79c kind:load to:0x02199110 module:overlay(55) from:0x0215a7a0 kind:load to:0x020beafc module:overlay(0) from:0x0215a7a4 kind:load to:0x020be89c module:overlay(0) from:0x0215a7a8 kind:load to:0x020be8a4 module:overlay(0) from:0x0215a7ac kind:load to:0x020be904 module:overlay(0) -from:0x0215a7b0 kind:load to:0x021991d4 module:overlays(40,55) +from:0x0215a7b0 kind:load to:0x021991d4 module:overlay(55) from:0x0215a7b4 kind:load to:0x020be90c module:overlay(0) -from:0x0215a7b8 kind:load to:0x021991d8 module:overlays(40,55) +from:0x0215a7b8 kind:load to:0x021991d8 module:overlay(55) from:0x0215a7bc kind:load to:0x020beb30 module:overlay(0) from:0x0215a7c0 kind:load to:0x020be910 module:overlay(0) from:0x0215a7c4 kind:load to:0x020be918 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov059/delinks.txt b/config/usa/arm9/overlays/ov059/delinks.txt index 10677e25..febe3396 100644 --- a/config/usa/arm9/overlays/ov059/delinks.txt +++ b/config/usa/arm9/overlays/ov059/delinks.txt @@ -4,3 +4,11 @@ .data start:0x0219b0a0 end:0x0219b120 kind:data align:32 .bss start:0x0219b120 end:0x0219b120 kind:bss align:32 +src/59_Hammer/Player/EquipHammer.cpp: + complete + .text start:0x02198c60 end:0x0219929c + .data start:0x0219b0a0 end:0x0219b120 + +src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: + .text start:0x0219929c end:0x0219b070 + .rodata start:0x0219b070 end:0x0219b084 diff --git a/config/usa/arm9/overlays/ov059/symbols.txt b/config/usa/arm9/overlays/ov059/symbols.txt index 02aeeed4..20717913 100644 --- a/config/usa/arm9/overlays/ov059/symbols.txt +++ b/config/usa/arm9/overlays/ov059/symbols.txt @@ -1,5 +1,5 @@ _ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198c60 -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198d8c local +_ZN11EquipHammer16GetLinkStateItemEv kind:function(arm,size=0x10) addr:0x2198d8c _ZN11EquipHammer8vfunc_18Ev kind:function(arm,size=0x1c) addr:0x2198d9c _ZN11EquipHammer8vfunc_1cEv kind:function(arm,size=0x14) addr:0x2198db8 _ZN11EquipHammer8vfunc_30Ev kind:function(arm,size=0x24) addr:0x2198dcc @@ -10,30 +10,30 @@ _ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) add _ZN11EquipHammer19func_ov059_02198fa8Ei kind:function(arm,size=0x20) addr:0x2198f08 _ZN11EquipHammer8vfunc_38Ei kind:function(arm,size=0x4) addr:0x2198f28 _ZN11EquipHammer8vfunc_2cEv kind:function(arm,size=0x14) addr:0x2198f2c -_ZN11EquipHammer19func_ov059_02198fe0Ev kind:function(arm,size=0x1c) addr:0x2198f40 +_ZN11EquipHammer15IsHammerChargedEv kind:function(arm,size=0x1c) addr:0x2198f40 _ZN13LinkStateItem19func_ov059_02198ffcEv kind:function(arm,size=0x80) addr:0x2198f5c _ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x2198fdc _ZN13LinkStateItem19func_ov059_021990a4Ev kind:function(arm,size=0x268) addr:0x2199004 _Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x219926c _ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x219927c -_ZN13ActorNaviBase19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219929c -_ZN13ActorNaviBase19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a00c -_ZN13ActorNaviBase19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219a968 -_ZN13ActorNaviBase19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219ab08 -_ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219ae74 -_ZN13ActorNaviBase19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219af24 -_ZN13ActorNaviBase19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219af80 +_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219929c +_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a00c +_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219a968 +_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219ab08 +_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219ae74 +_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219af24 +_ZN9ActorNavi19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219af80 data_ov059_0219b110 kind:data(any) addr:0x219b070 -data_ov059_0219b140 kind:data(any) addr:0x219b0a0 -data_ov059_0219b144 kind:data(any) addr:0x219b0a4 -data_ov059_0219b148 kind:data(any) addr:0x219b0a8 -data_ov059_0219b14c kind:data(any) addr:0x219b0ac -data_ov059_0219b150 kind:data(any) addr:0x219b0b0 -data_ov059_0219b154 kind:data(any) addr:0x219b0b4 -data_ov059_0219b158 kind:data(any) addr:0x219b0b8 -data_ov059_0219b15c kind:data(any) addr:0x219b0bc -data_ov059_0219b160 kind:data(any) addr:0x219b0c0 -data_ov059_0219b180 kind:data(any) addr:0x219b0e0 -data_ov059_0219b190 kind:data(any) addr:0x219b0f0 -data_ov059_0219b1a0 kind:data(any) addr:0x219b100 -data_ov059_0219b1b0 kind:data(any) addr:0x219b110 +@1761 kind:data(any) addr:0x219b0a0 local +@1760 kind:data(any) addr:0x219b0a4 local +@1759 kind:data(any) addr:0x219b0a8 local +@1758 kind:data(any) addr:0x219b0ac local +@1757 kind:data(any) addr:0x219b0b0 local +@1756 kind:data(any) addr:0x219b0b4 local +@1755 kind:data(any) addr:0x219b0b8 local +@1754 kind:data(any) addr:0x219b0bc local +gShipParts kind:data(any) addr:0x219b0c0 local +data_ov059_0219b180 kind:data(any) addr:0x219b0e0 local +data_ov059_0219b190 kind:data(any) addr:0x219b0f0 local +data_ov059_0219b1a0 kind:data(any) addr:0x219b100 local +data_ov059_0219b1b0 kind:data(any) addr:0x219b110 local diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index f8a86acc..1a15e666 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -25,18 +25,18 @@ public: /* 294 */ ModelRender mUnk_294; /* 2f0 */ void *mUnk_2f0; /* 2f4 */ unk8 mUnk_2f4[0x40]; - /* 334 */ unk32 mUnk_334; - /* 338 */ unk32 mUnk_338; - /* 33c */ unk32 mUnk_33c; + /* 334 */ Vec3p mUnk_334; /* 340 */ unk16 mUnk_340; /* 342 */ unk8 mUnk_342[0x2]; - /* 344 */ unk32 mUnk_344; + /* 344 */ u32 mUnk_344; /* 348 */ unk32 mUnk_348; - /* 34c */ unk8 mUnk_34c[0x68]; + /* 34c */ unk8 mUnk_34c[0x38]; + /* 384 */ Mat3p mUnk_384; + /* 3a8 */ unk8 mUnk_3a8[0xC]; /* 3b4 */ EquipHammer *mHammer; /* 3b8 */ unk32 mUnk_3b8; /* 3bc */ unk32 mUnk_3bc; - /* 3c0 */ unk8 mUnk_3c0[0x8]; + /* 3c0 */ u8 mUnk_3c0[0x8]; /* 3c8 */ /* 00 */ virtual ~ActorNavi() override; @@ -52,7 +52,7 @@ public: /* d0 */ virtual void vfunc_d0() override; /* d4 */ virtual void vfunc_d4() override; /* d8 */ virtual void vfunc_d8() override; - /* dc */ virtual void SetActive(bool active) override; + /* dc */ virtual void SetActive(unk32 active) override; /* e0 */ virtual void vfunc_e0() override; /* e8 */ virtual void vfunc_e8() override; /* ec */ virtual void vfunc_ec() override; @@ -61,5 +61,13 @@ public: void func_ov000_020b8200(); void func_ov000_020b853c(); + bool func_ov059_0219933c(u32 param1); + void func_ov059_0219a0ac(); + void func_ov059_0219aa08(); + void func_ov059_0219aba8(u32 param1); + bool func_ov059_0219af14(); + bool func_ov059_0219afc4(); + void func_ov059_0219b020(); + ActorNavi(); }; diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index c7dd7cea..4427853a 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -25,7 +25,8 @@ public: /* 164 */ unk32 mUnk_164; /* 168 */ ModelRender mUnk_168; /* 1c4 */ unk8 mUnk_1c4[0xc]; - /* 1d0 */ unk8 mUnk_1d0[0x24]; + /* 1d0 */ void *mUnk_1d0; + /* 1d4 */ unk8 mUnk_1d4[0x20]; /* 1f4 */ unk8 mUnk_1f4[0x20]; /* 214 */ unk16 mUnk_214; /* 216 */ unk8 mUnk_216[0xc]; @@ -70,14 +71,14 @@ public: /* d0 */ virtual void vfunc_d0(); /* d4 */ virtual void vfunc_d4(); /* d8 */ virtual void vfunc_d8(); - /* dc */ virtual void SetActive(bool active); + /* dc */ virtual void SetActive(unk32 active); /* e0 */ virtual void vfunc_e0(); /* e4 */ virtual void vfunc_e4(); /* e8 */ virtual void vfunc_e8(); /* ec */ virtual void vfunc_ec(); /* f0 */ - void func_ov000_020b8c50(); + void func_ov000_020b8c50(unk32); void func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3); void TeleportAboveLink(); void func_ov000_020b9770(s32 param1); @@ -95,12 +96,4 @@ public: static void func_ov000_020bb0e0(); ActorNaviBase(); - - bool func_ov059_0219933c(u32 param1); - void func_ov059_0219a0ac(); - void func_ov059_0219aa08(); - void func_ov059_0219aba8(u32 param1); - bool func_ov059_0219af14(); - bool func_ov059_0219afc4(); - void func_ov059_0219b020(); }; diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index e544c60c..ba565f60 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -3,6 +3,12 @@ #include "global.h" #include "types.h" +struct UnkStruct_027e0d38_UnkC { + /* 00 */ unk32 mUnk_00; + + s32 func_ov000_020a5e9c(void); +}; + struct UnkStruct_027e0d38_Unk28 { /* 00 */ unk8 mUnk_00[0x34]; /* 34 */ bool mUnk_34; @@ -16,7 +22,7 @@ struct UnkStruct_027e0d38 { /* 01 */ unk8 mUnk_01[3]; // padding? /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; + /* 0c */ UnkStruct_027e0d38_UnkC mUnk_0c; /* 10 */ unk32 mUnk_10; /* 14 */ unk32 mUnk_14; /* 18 */ unk32 mUnk_18; diff --git a/include/DTCM/UnkStruct_027e0fd4.hpp b/include/DTCM/UnkStruct_027e0fd4.hpp index 4d931bd5..e8e89954 100644 --- a/include/DTCM/UnkStruct_027e0fd4.hpp +++ b/include/DTCM/UnkStruct_027e0fd4.hpp @@ -128,3 +128,5 @@ public: void func_ov000_020b6ba4(s32 param1, s32 param2); bool func_ov000_020b6e70(); }; + +extern UnkStruct_027e0fd4 *data_027e0fd4; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 3de57def..5931165b 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -99,6 +99,11 @@ public: ~ItemManager(); void Init(); + // Access to members + inline u8 GetUnk_14d(void) { + return mUnk_14d; + } + // Save/load void Save(SaveItemManager *save); void Load(const SaveItemManager *save); @@ -204,6 +209,8 @@ public: // Unknown void func_ov00_020ae4dc(s32 param1); + void func_ov000_020c0c44(void *); + void func_ov000_020c0e5c(void *, unk32); }; extern ItemManager *gItemManager; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index b1018279..88308e4b 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -41,7 +41,7 @@ public: /* 10 */ bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4); - bool func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length); + bool func_01ffbf5c(struct UnkStruct *param1, Vec3p *param2, Vec3p *param3, s32 length); bool func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); bool func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 27e046c5..2ac0322a 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -4,19 +4,29 @@ #include "Player/EquipItem.hpp" +// how long players should wait until the hammer is charged (aka bigger and more powerful) +#define HAMMER_CHARGE_TIMER 40 + +//! TODO: change "state" to "flags"? see `vfunc_2c` +typedef enum EquipHammerState { + /* 0x00000 */ EQUIP_HAMMER_STATE_IDLE = (0 << 16), + /* 0x10000 */ EQUIP_HAMMER_STATE_CHARGING = (1 << 16), + /* 0x20000 */ EQUIP_HAMMER_STATE_CHARGED = (2 << 16), +} EquipHammerState; + class LinkStateItem; class EquipHammer : public EquipItem { private: /* 00 (base) */ /* 09 */ unk8 mUnk_09[3]; - /* 0c */ Vec3p mUnk_0c; - /* 18 */ unk32 mUnk_18; - /* 1c */ unk8 mUnk_1c; - /* 1d */ unk8 mUnk_1d; - /* 1e */ unk8 mUnk_1e[2]; - /* 20 */ unk32 mUnk_20; - /* 24 */ void *mUnk_24; + /* 0c */ Vec3p mUnk_0c; // hammer's position when it hits a surface? not updated if the hammer can't touch a surface + /* 18 */ EquipHammerState mState; + /* 1c */ bool mIsHeld; // holding the input from the touchscreen + /* 1d */ bool mIsReleased; // released the input from the touchscreen + /* 1e */ unk8 mUnk_1e[2]; // unused? + /* 20 */ s32 mChargeTimer; // charging timer to make it bigger, set to 40 frames by default + /* 24 */ unk32 mUnk_24; // timer that prevents the charge? /* 28 */ unk32 mUnk_28; /* 2c */ @@ -36,10 +46,25 @@ public: EquipHammer(); + static LinkStateItem *GetLinkStateItem(); void func_ov059_02198e90(); bool func_ov059_02198ebc(); bool func_ov059_02198ed4(); void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3); void func_ov059_02198fa8(unk32 param1); - bool func_ov059_02198fe0(); + bool IsHammerCharged(); + + inline s32 GetState(void) { + return mState; + } + + inline bool IsReleased(void) { + return mIsReleased; + } + + inline unk32 GetChargeTimer(void) { + return mChargeTimer; + } }; + +extern EquipHammer *GetEquipHammer(); diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index 6702bc48..79165634 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -41,5 +41,5 @@ public: Vec3p *GetPlayerPos(); void func_ov000_020be99c(Vec3p *param1); void func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4); - u16 GetAmmo(); + s16 GetAmmo() const; }; diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 14f4603d..8f5ebd6c 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -24,6 +24,12 @@ enum LinkStateId_ { LinkStateId_COUNT }; +struct LinkStateBase_UnkStruct1 { + /* 00 */ unk32 mUnk_00; + /* 04 */ Vec3p mUnk_04; + /* 10 */ +}; + class LinkStateItem; class LinkStateBase : public SysObject { @@ -88,14 +94,14 @@ public: void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); void func_ov00_020a8954(bool param1, unk32 *param2); void func_ov00_020a8994(); - void func_ov00_020a89bc(unk32 param1, unk32 param2); + void func_ov00_020a89bc(LinkStateBase_UnkStruct1 *param1, unk32 param2); void func_ov00_020a8a08(unk32 param1); void func_ov00_020a8a4c(const void *param1, unk32 param2); void func_ov00_020a8a90(unk32 param1); void func_ov00_020a8ab0(unk32 param1); void func_ov00_020a8ad0(unk32 param1); void func_ov00_020a8b04(s32 param1, bool param2); - void func_ov00_020a8b3c(s32 param1); + unk32 func_ov00_020a8b3c(s32 param1); bool func_ov00_020a8b80(); bool HasFlags_PlayerLinkBase_Unk48(u16 flags); unk8 Get_PlayerLinkBase_Unk5e(); @@ -154,4 +160,5 @@ public: LinkStateBase *GetLinkState(LinkStateId index); +extern LinkStateBase *gLinkState; extern LinkStateBase **gLinkStates; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index cba602f8..c96f75d1 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -19,14 +19,12 @@ public: /* 20 */ unk16 mUnk_20; /* 22 */ unk8 mUnk_22[2]; /* 24 */ s8 mUnk_24; - /* 25 */ unk8 mUnk_25[7]; + /* 25 */ u8 mUnk_25[7]; /* 2c */ unk16 mUnk_2c; /* 2e */ unk8 mUnk_2e[2]; /* 30 */ void *mUnk_30; /* 34 */ unk32 mUnk_34; - /* 38 */ unk32 mUnk_38; - /* 3c */ void *mUnk_3c; - /* 40 */ unk32 mUnk_40; + /* 38 */ Vec3p mUnk_38; /* 44 */ unk32 mUnk_44; /* 48 */ void *mUnk_48; /* 4c */ unk32 mUnk_4c; diff --git a/src/00_Core/Actor/Navi/ActorNavi.cpp b/src/00_Core/Actor/Navi/ActorNavi.cpp index 7c195178..41a2015a 100644 --- a/src/00_Core/Actor/Navi/ActorNavi.cpp +++ b/src/00_Core/Actor/Navi/ActorNavi.cpp @@ -18,7 +18,7 @@ FairyId ActorNavi::GetFairyId() {} s32 ActorNavi::vfunc_b8() {} void ActorNavi::vfunc_d4() {} void ActorNavi::vfunc_d0() {} -void ActorNavi::SetActive(bool active) {} +void ActorNavi::SetActive(unk32 active) {} void ActorNavi::vfunc_e0() {} void ActorNavi::vfunc_d8() {} void ActorNavi::vfunc_20(bool param1) {} diff --git a/src/00_Core/Actor/Navi/ActorNaviBase.cpp b/src/00_Core/Actor/Navi/ActorNaviBase.cpp index 677d677b..39eb0bb5 100644 --- a/src/00_Core/Actor/Navi/ActorNaviBase.cpp +++ b/src/00_Core/Actor/Navi/ActorNaviBase.cpp @@ -8,11 +8,11 @@ bool ActorNaviBase::vfunc_cc(unk32 *param1) {} void ActorNaviBase::GetOffsetPos(Vec3p *pos) {} unk32 ActorNaviBase::vfunc_38() {} void ActorNaviBase::vfunc_d0() {} -void ActorNaviBase::func_ov000_020b8c50() {} +void ActorNaviBase::func_ov000_020b8c50(unk32) {} void ActorNaviBase::func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3) {} void ActorNaviBase::vfunc_d4() {} void ActorNaviBase::vfunc_d8() {} -void ActorNaviBase::SetActive(bool active) {} +void ActorNaviBase::SetActive(unk32 active) {} void ActorNaviBase::TeleportAboveLink() {} void ActorNaviBase::vfunc_e0() {} void ActorNaviBase::vfunc_e4() {} diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index e26cc57e..0351a7a6 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -45,7 +45,6 @@ extern void func_ov000_02096324(unk32 *param_1, unk32 *param_2); extern s32 *func_ov000_02096418(s32 *param_1); extern void func_ov000_0209d6e8(unk32 *param_1, unk32 *param_2); extern s32 func_ov000_0209d71c(s32 *param_1, s32 param_2); -extern unk32 func_ov000_020a5e9c(unk32 *param_1); extern void func_ov000_020c3348(ActorSpawnOptions *param_1); extern void func_ov000_020d70a4(unk32 *param_1, unk32 param_2, unk32 param_3, unk32 param_4); extern void func_ov000_020d72b8(unk32 *param_1); @@ -221,18 +220,18 @@ ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) { *(u8 *) ((int) param_3 + 5) = 4; } else { this->func_ov00_02082348((unk32 *) &local_40[1]); - *param_3 = func_ov000_020a5e9c((unk32 *) &local_40[1]); + *param_3 = ((UnkStruct_027e0d38_UnkC *) &local_40[1])->func_ov000_020a5e9c(); *(unk8 *) (param_3 + 1) = local_40[1].mUnk_12; *(u8 *) ((int) param_3 + 5) = local_40[1].mUnk_13; } - param_3[2] = func_ov000_020a5e9c((unk32 *) ((unk32) (data_027e0d38->mUnk_28) + 0x1c)); - *(u8 *) (param_3 + 4) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x2e); - *(unk16 *) (param_3 + 5) = *(unk16 *) ((int) data_027e0d38->mUnk_28 + 0x36); - pvVar3 = data_027e0d38->mUnk_28; - param_3[6] = *(unk32 *) ((int) pvVar3 + 0x38); // Likely Vec3p - param_3[7] = *(unk32 *) ((int) pvVar3 + 0x3c); - param_3[8] = *(unk32 *) ((int) pvVar3 + 0x40); - param_3[3] = func_ov000_020a5e9c((unk32 *) ((unk32) data_027e0d38->mUnk_28 + 0x44)); + param_3[2] = ((UnkStruct_027e0d38_UnkC *) ((unk32) (data_027e0d38->mUnk_28) + 0x1c))->func_ov000_020a5e9c(); + *(u8 *) (param_3 + 4) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x2e); + *(unk16 *) (param_3 + 5) = *(unk16 *) ((int) data_027e0d38->mUnk_28 + 0x36); + pvVar3 = data_027e0d38->mUnk_28; + param_3[6] = *(unk32 *) ((int) pvVar3 + 0x38); // Likely Vec3p + param_3[7] = *(unk32 *) ((int) pvVar3 + 0x3c); + param_3[8] = *(unk32 *) ((int) pvVar3 + 0x40); + param_3[3] = ((UnkStruct_027e0d38_UnkC *) ((unk32) data_027e0d38->mUnk_28 + 0x44))->func_ov000_020a5e9c(); *(u8 *) ((int) param_3 + 0x11) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x56); pvVar3 = data_027e0d38->mUnk_28; param_3[9] = *(unk32 *) ((int) pvVar3 + 0x5c); // Likely Vec3p @@ -249,7 +248,7 @@ ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) { local_40[0].mUnk_13 = *(u8 *) ((int) pvVar3 + 0x83); local_40[0].mUnk_14 = *(u8 *) ((int) pvVar3 + 0x84); local_40[0].mUnk_15 = *(u8 *) ((int) pvVar3 + 0x85); - uVar2 = func_ov000_020a5e9c((unk32 *) &local_40[0]); + uVar2 = ((UnkStruct_027e0d38_UnkC *) &local_40[0])->func_ov000_020a5e9c(); param_3[0x70] = uVar2; *(u8 *) ((int) param_3 + 0x1be) = local_40[0].mUnk_12; *(u8 *) ((int) param_3 + 0x1bf) = local_40[0].mUnk_13; @@ -445,7 +444,7 @@ ARM void MapManager::func_ov00_02082808(bool param_2) { } iVar1 = this->func_ov00_02084740(); if (param_2) { - iVar2 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c); + iVar2 = data_027e0d38->mUnk_0c.func_ov000_020a5e9c(); if (iVar2 == 0) { func_ov015_021849a4(&data_ov015_02190458); } @@ -457,7 +456,7 @@ ARM void MapManager::func_ov00_02082808(bool param_2) { } func_ov000_020d70a4(&data_ov000_020eec68, iVar1, 0, 0x7f); } - iVar1 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c); + iVar1 = data_027e0d38->mUnk_0c.func_ov000_020a5e9c(); if (iVar1 == 0) { return; } @@ -1765,7 +1764,7 @@ bool MapManager::func_ov00_020849dc() { } ARM bool MapManager::func_ov00_020849f8() { - switch (func_ov000_020a5e9c(&data_027e0d38->mUnk_0c)) { + switch (data_027e0d38->mUnk_0c.func_ov000_020a5e9c()) { case 5: return true; default: if (this->GetMapData_Unk_06() != 0 && !this->func_ov00_020849c0()) { diff --git a/src/00_Core/Player/EquipItem.cpp b/src/00_Core/Player/EquipItem.cpp index 9256b13a..8751b91d 100644 --- a/src/00_Core/Player/EquipItem.cpp +++ b/src/00_Core/Player/EquipItem.cpp @@ -14,6 +14,6 @@ s32 EquipItem::vfunc_4c() const {} Vec3p *EquipItem::GetPlayerPos() {} void EquipItem::func_ov000_020be99c(Vec3p *param1) {} void EquipItem::func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4) {} -u16 EquipItem::GetAmmo() {} +s16 EquipItem::GetAmmo() const {} void EquipItem::GiveAmmo(u32 amount) {} bool EquipItem::GetHitbox(Cylinder *hitbox) const {} diff --git a/src/00_Core/Player/LinkStateBase.cpp b/src/00_Core/Player/LinkStateBase.cpp index 37215e6f..a750d276 100644 --- a/src/00_Core/Player/LinkStateBase.cpp +++ b/src/00_Core/Player/LinkStateBase.cpp @@ -44,14 +44,14 @@ bool LinkStateBase::func_ov00_020a8774(Vec3p *param1, s32 angle) {} void LinkStateBase::func_ov00_020a8844(Vec3p *param1, bool param2, bool param3) {} void LinkStateBase::func_ov00_020a8954(bool param1, unk32 *param2) {} void LinkStateBase::func_ov00_020a8994() {} -void LinkStateBase::func_ov00_020a89bc(unk32 param1, unk32 param2) {} +void LinkStateBase::func_ov00_020a89bc(LinkStateBase_UnkStruct1 *param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a08(unk32 param1) {} void LinkStateBase::func_ov00_020a8a4c(const void *param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a90(unk32 param1) {} void LinkStateBase::func_ov00_020a8ab0(unk32 param1) {} void LinkStateBase::func_ov00_020a8ad0(unk32 param1) {} void LinkStateBase::func_ov00_020a8b04(s32 param1, bool param2) {} -void LinkStateBase::func_ov00_020a8b3c(s32 param1) {} +unk32 LinkStateBase::func_ov00_020a8b3c(s32 param1) {} bool LinkStateBase::func_ov00_020a8b80() {} bool LinkStateBase::HasFlags_PlayerLinkBase_Unk48(u16 flags) {} unk8 LinkStateBase::Get_PlayerLinkBase_Unk5e() {} diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 406fe1da..10b41064 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -600,12 +600,10 @@ ARM void PlayerControl::ResetAim() { mAim = gVec3p_ZERO; } -extern "C" s32 func_ov000_020a5e9c(unk32 *param1); - ARM bool PlayerControl::UpdateAimWorld(Vec3p *param1) { Vec3p pos = gPlayerPos; - s32 iVar2 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c); + s32 iVar2 = data_027e0d38->mUnk_0c.func_ov000_020a5e9c(); if (iVar2 == 0x2f && *(s32 *) (*(s32 *) ((s32) data_027e0f64 + 0x4) + 0x15c) == 0x31) { return this->func_ov024_02178348(param1); } diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index 109a14b4..840da600 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -1,9 +1,320 @@ #include "Actor/Navi/ActorNaviBase.hpp" +#include "Actor/Navi/ActorNavi.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "Item/ItemManager.hpp" +#include "Map/MapManager.hpp" +#include "Player/LinkStateItem.hpp" +#include "Player/PlayerBase.hpp" +#include "Player/PlayerControl.hpp" -bool ActorNaviBase::func_ov059_0219933c(u32 param1) {} -void ActorNaviBase::func_ov059_0219a0ac() {} -void ActorNaviBase::func_ov059_0219aa08() {} -void ActorNaviBase::func_ov059_0219aba8(u32 param1) {} -bool ActorNaviBase::func_ov059_0219af14() {} -bool ActorNaviBase::func_ov059_0219afc4() {} -void ActorNaviBase::func_ov059_0219b020() {} +extern unk32 data_ov000_020dc7d0; +extern unk32 data_ov000_020dc7e4; +extern u32 data_ov000_020e9370[]; +extern "C" void Vec3p_RotateY(u32, Vec3p *); +extern "C" void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, + int param_7, char param_8, char param_9, char param_10); + +ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {} +ARM void ActorNavi::func_ov059_0219a0ac() {} + +// non-matching +ARM void ActorNavi::func_ov059_0219aa08() { + int iVar1; + s64 lVar2; + u16 uVar3; + u32 uVar4; + Vec3p VStack_60; + Vec3p uStack_54; + Mat3p MStack_48; + Vec3p VStack_24; + + if (this->mUnk_3c0[0] != 0) { + VStack_24.x = this->mPos.x; + VStack_24.y = this->mPos.y + 0x333; // FLOAT_TO_Q20(0.2)? + VStack_24.z = this->mPos.z; + + uVar3 = this->mUnk_340 - 0x4000; // FLOAT_TO_Q20(12.0)? + Mat3p_InitYRotation(&MStack_48, SIN(uVar3), COS(uVar3)); + + uStack_54.x = uStack_54.y = uStack_54.z = this->mUnk_344; + this->mUnk_294.vfunc_38(); + this->mUnk_294.SetTransform(&uStack_54, &MStack_48, &VStack_24); + lVar2 = 0x666 * this->mUnk_344; + uVar4 = lVar2; + + this->mUnk_334.x = + ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + + Mat3p_MultiplyVec(&this->mUnk_334, &this->mUnk_384, &this->mUnk_334); + Vec3p_RotateY(uVar3, &this->mUnk_334); + Vec3p_Add(&this->mUnk_334, &VStack_24, &this->mUnk_334); + VStack_60.z = this->mUnk_334.z; + VStack_60.x = this->mUnk_334.x; + lVar2 = 0x333 * this->mUnk_344; + uVar4 = lVar2; + VStack_60.y = this->mUnk_334.y + 0x800; + uVar4 = ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x333 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + func_ov005_02102c2c(&data_ov000_020e9370[0], 0, &VStack_60, uVar4, uVar4, 0, 0x10, 0, 0, 0); + } +} + +struct UnkStruct { + /* 00 */ u16 mUnk_00; + /* 02 */ unk16 mUnk_02; + /* 04 */ unk16 mUnk_04; + /* 06 */ unk16 mUnk_06; + /* 08 */ unk16 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ unk8 mUnk_10; + /* 11 */ unk8 mUnk_11; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + /* 14 */ Vec3p mUnk_14; + /* 14 */ unk8 mUnk_20[4]; + /* 24 */ +}; + +// non-matching +ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { + bool bVar1; + LinkStateItem *uVar1; + ItemManager *pIVar3; + int uVar4; + int iVar5; + int uVar6; + bool bVar7; + Vec3p local_134; + Vec3p local_128; + Vec3p local_11c; + Vec3p local_110; + Vec3p local_104; + Vec3p local_e4; + + UnkStruct auStack_e0; + u16 local_bc; + unk16 local_ba; + unk16 local_b8; + unk16 local_b6; + unk16 local_b4; + unk32 local_92; + unk32 local_91; + unk32 local_90; + unk32 local_8f; + unk32 local_88; + unk32 local_87; + unk32 local_86; + unk32 local_85; + unk32 local_84; + unk32 local_83; + UnkStruct auStack_80; + u16 local_5c; + unk16 local_5a; + unk16 local_58; + unk16 local_56; + unk16 local_54; + unk32 local_32; + unk32 local_31; + unk32 local_30; + unk32 local_2f; + unk32 local_28; + unk32 local_27; + unk32 local_26; + unk32 local_25; + unk32 local_24; + unk32 local_23; + ItemManager *puVar1; + + switch (param1) { + case 3: + uVar1 = EquipHammer::GetLinkStateItem(); + + if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { + break; + } + + local_11c.x = data_027e0fd4->mUnk_020.pos.x; + local_11c.z = data_027e0fd4->mUnk_020.pos.z; + + iVar5 = gPlayerPos.y + FLOAT_TO_Q20(0.5); + uVar4 = this->mPos.x; + uVar6 = this->mPos.z; + + auStack_80.mUnk_00 = -1; + auStack_80.mUnk_02 = 0; + auStack_80.mUnk_04 = 0; + auStack_80.mUnk_06 = 0; + auStack_80.mUnk_08 = 0; + auStack_80.mUnk_09 = 0; + auStack_80.mUnk_0a = 0; + auStack_80.mUnk_0b = 0; + auStack_80.mUnk_0c = 0; + auStack_80.mUnk_0d = 0; + auStack_80.mUnk_0e = 0; + auStack_80.mUnk_0f = 0; + auStack_80.mUnk_10 = 0; + auStack_80.mUnk_11 = 0; + auStack_80.mUnk_12 = 0; + local_11c.y = iVar5; + + local_110.x = uVar4; + local_110.y = iVar5; + // local_110.z = uVar6; + + local_e4.x = local_11c.x; + local_e4.y = iVar5; + local_e4.z = local_11c.z; + + local_5a = local_5c; + local_58 = local_5c; + local_56 = local_5c; + + if (gMapManager->func_01ffbf5c(&auStack_80, &local_110, &local_11c, this->mUnk_08c.size) ? false : true) { + this->mPos = local_e4; + this->mPrevPos = local_e4; + this->mOffsetPos = local_e4; + } else { + this->mOffsetPos.x = uVar4; + this->mOffsetPos.y = iVar5; + this->mOffsetPos.z = uVar6; + } + break; + case 4: + uVar1 = EquipHammer::GetLinkStateItem(); + + if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { + break; + } + + auStack_e0.mUnk_14.x = data_027e0fd4->mUnk_020.pos.x; + auStack_e0.mUnk_14.y = gPlayerPos.y + FLOAT_TO_Q20(0.5); + auStack_e0.mUnk_14.z = data_027e0fd4->mUnk_020.pos.z; + + bVar1 = gPlayerControl->UpdateAimWorld(&local_104); + bVar7 = false; + local_104.y = auStack_e0.mUnk_14.y; + auStack_80.mUnk_00 = -1; + auStack_80.mUnk_02 = 0; + auStack_80.mUnk_04 = 0; + auStack_80.mUnk_06 = 0; + auStack_80.mUnk_08 = 0; + auStack_80.mUnk_09 = 0; + auStack_80.mUnk_0a = 0; + auStack_80.mUnk_0b = 0; + auStack_80.mUnk_0c = 0; + auStack_80.mUnk_0d = 0; + auStack_80.mUnk_0e = 0; + auStack_80.mUnk_0f = 0; + auStack_80.mUnk_10 = 0; + auStack_80.mUnk_11 = 0; + auStack_80.mUnk_12 = 0; + local_ba = local_bc; + local_b8 = local_bc; + local_b6 = local_bc; + + if (bVar1) { + local_128 = auStack_e0.mUnk_14; + + // local_134.x = local_104.x; + // local_134.y = auStack_e0.mUnk_14.y; + // local_134.z = local_104.z; + + if (!gMapManager->func_01ffbf5c(&auStack_e0, &local_134, &local_128, this->mUnk_08c.size)) { + bVar7 = true; + } + } + + if (!bVar7) { + this->mPos = auStack_e0.mUnk_14; + this->mPrevPos = auStack_e0.mUnk_14; + this->mOffsetPos = auStack_e0.mUnk_14; + } + break; + default: this->func_ov000_020b853c(); break; + } + + pIVar3 = gItemManager; + switch (param1) { + case 3: + pIVar3->func_ov00_020ad538(data_ov000_020dc7d0); + pIVar3->func_ov000_020c0c44(&this->mUnk_2f0); + pIVar3->func_ov000_020c0e5c(&this->mUnk_2f0, 0); + break; + case 4: + this->mUnk_348 = 0; + pIVar3->func_ov00_020ad538(data_ov000_020dc7e4); + pIVar3->func_ov000_020c0c44(&this->mUnk_2f0); + pIVar3->func_ov000_020c0e5c(&this->mUnk_2f0, 1); + break; + default: break; + } +} + +ARM bool ActorNavi::func_ov059_0219af14() { + int iVar1; + + if (this->mUnk_3c0[2] != 0) { + return false; + } + + iVar1 = this->mUnk_130; + + switch (this->mUnk_130) { + case 3: + if (this->mUnk_348 > 0) { + this->mVel.x = 0; + this->mVel.y = 0; + this->mVel.z = 0; + this->mUnk_348--; + return true; + } + break; + case 4: + if (this->mHammer->IsReleased()) { + this->mVel.y = this->mOffsetPos.y - this->mPos.y; + return true; + } else { + this->func_ov000_020b8c50(0x3000); + this->mVel.y = this->mOffsetPos.y - this->mPos.y; + return true; + } + default: break; + } + + return false; +} + +ARM bool ActorNavi::func_ov059_0219afc4() { + this->mUnk_3c0[2] = 0; + this->func_ov059_0219933c(0); + + switch (this->mUnk_130) { + case 3: this->mOffsetPos.y = gPlayerPos.y + 0x1666; return true; + case 4: return true; + default: break; + } + + return false; +} + +ARM void ActorNavi::func_ov059_0219b020() { + if (gItemManager->GetEquippedFairy() != FairyId_Courage) { + ItemManager *itemMgr = gItemManager; + + this->mPrevPos = this->mOffsetPos = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos; + } else { + this->mOffsetPos = this->mPos; + } + + gPlayerControl->mAimWorld = this->mOffsetPos; + + this->mHammer = GetEquipHammer(); + this->mUnk_3c0[0] = 0x0; + this->mUnk_3c0[2] = 0x0; + this->SetActive(3); +} diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 00fbd208..cfccec9b 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,21 +1,236 @@ #include "Player/EquipHammer.hpp" +#include "Actor/Navi/ActorNavi.hpp" +#include "DTCM/UnkStruct_027e0d38.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "Item/ItemManager.hpp" +#include "Map/MapManager.hpp" #include "Player/LinkStateItem.hpp" +#include "Player/PlayerControl.hpp" +#include "Player/PlayerLink.hpp" -bool EquipHammer::IsUsable(unk32 param1) const {} -LinkStateItem *GetLinkStateItem() {} -void EquipHammer::vfunc_18() {} -void EquipHammer::vfunc_1c() {} -void EquipHammer::vfunc_30() {} -void EquipHammer::func_ov059_02198e90() {} -bool EquipHammer::func_ov059_02198ebc() {} -bool EquipHammer::func_ov059_02198ed4() {} -void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) {} -void EquipHammer::func_ov059_02198fa8(unk32 param1) {} -void EquipHammer::vfunc_38(unk32 param1) {} -u32 EquipHammer::vfunc_2c() {} -bool EquipHammer::func_ov059_02198fe0() {} -void LinkStateItem::func_ov059_02198ffc() {} -void LinkStateItem::func_ov059_0219907c() {} -void LinkStateItem::func_ov059_021990a4() {} -EquipHammer *GetEquipHammer() {} -void LinkStateItem::StopUsingHammer() {} +static char *gShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"}; + +extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); + +ARM bool EquipHammer::IsUsable(unk32 param1) const { + ActorNavi *pAVar3; + + if (this->GetAmmo() <= 0) { + return false; + } + + if (data_027e0fd4->mUnk_0f0 != 0 || data_027e0fd4->mUnk_0f8 != 0) { + return false; + } + + pAVar3 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage); + + if (pAVar3 == NULL || pAVar3->mUnk_3b8 != 0) { + return false; + } + + if (gItemManager->GetUnk_14d() != 0) { + return false; + } + + if (param1 != 0) { + LinkStateItem *pLVar4 = GetLinkStateItem(); + + if (pLVar4->mUnk_25[2] != 0 && pLVar4->mUnk_25[3] == 0) { + return false; + } + + if (data_027e0fd4->mUnk_0c6 < 0 && data_027e0d38->mUnk_0c.func_ov000_020a5e9c() != 0x2f) { + bool bVar5 = false; + + if (gPlayerLink->GetStateId() == 4 && gLinkState != NULL && gLinkState->mSubState == 0) { + bVar5 = true; + } + + if (!bVar5) { + return false; + } + } + } + + return true; +} + +static LinkStateBase_UnkStruct1 data_ov059_0219b180 = {0x39, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(64.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b190 = {0x3c, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(5.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b1a0 = {0x3d, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(3.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b1b0 = {0x3e, {FLOAT_TO_Q20(1.2), 0, FLOAT_TO_Q20(6.0)}}; + +ARM LinkStateItem *EquipHammer::GetLinkStateItem() { + return (LinkStateItem *) GetLinkState(LinkStateId_Item); +} + +ARM void EquipHammer::vfunc_18() { + this->mIsHeld = false; + this->mIsReleased = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; + this->mUnk_28 = 0x1000; +} + +ARM void EquipHammer::vfunc_1c() { + this->mIsHeld = false; + this->mIsReleased = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; +} + +ARM void EquipHammer::vfunc_30() { + if (this->mUnk_24 > 0) { + this->mUnk_24--; + + if (this->mUnk_24 <= 1) { + this->mState = EQUIP_HAMMER_STATE_IDLE; + } + } +} + +ARM void EquipHammer::func_ov059_02198e90() { + if (this->mUnk_24 <= 0 && !this->mIsHeld) { + this->mIsHeld = true; + this->mChargeTimer = HAMMER_CHARGE_TIMER; + } +} + +ARM bool EquipHammer::func_ov059_02198ebc() { + if (this->mUnk_24 <= 0) { + this->mIsReleased = true; + } + + return true; +} + +ARM bool EquipHammer::func_ov059_02198ed4() { + if (this->mChargeTimer > 0) { + this->mState = EQUIP_HAMMER_STATE_CHARGING; + this->mChargeTimer--; + return this->mChargeTimer == 0; + } + + this->mState = EQUIP_HAMMER_STATE_CHARGED; + return false; +} + +ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) { + Vec3p local_18; + + this->mUnk_0c = *vec; + + if (this->mIsReleased) { + this->mIsReleased = false; + + if (param3 == 0) { + local_18 = this->mUnk_0c; + MapManager::func_ov00_020858b0(gMapManager, &local_18, this->mChargeTimer == 0); + } + } + + this->mIsHeld = false; + this->mUnk_24 = 4; + this->mUnk_28 = param2; +} + +ARM void EquipHammer::func_ov059_02198fa8(unk32 param1) { + this->mIsReleased = false; + this->mIsHeld = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; + this->mUnk_24 = 4; + this->mUnk_28 = param1; +} + +ARM void EquipHammer::vfunc_38(unk32 param1) {} + +ARM u32 EquipHammer::vfunc_2c() { + //! TODO: fake? + return (this->mState + (s32) ((u32) (this->mState >> 0xB) >> 0x14)) >> 0xC; +} + +ARM bool EquipHammer::IsHammerCharged() { + return this->mState == EQUIP_HAMMER_STATE_CHARGED && this->mChargeTimer == 0; +} + +ARM void LinkStateItem::func_ov059_02198ffc() { + Vec3p local_14; + Vec3p local_20; + s16 dest; + + local_14 = this->mUnk_38; + local_20 = *this->GetPlayerPos(); + + Vec3p_Sub(&local_14, &local_20, &local_14); + dest = Atan2(local_14.x, local_14.z); + ApproachAngle_thunk(this->GetPlayerAngle(), dest, 0x2000); +} + +ARM void LinkStateItem::func_ov059_0219907c() { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + this->mUnk_25[2] = 0; + this->mUnk_25[3] = 0; +} + +#define CHECK_0219b160(value) ((value) == this->Get_PlayerControlData_Unk100()) + +ARM void LinkStateItem::func_ov059_021990a4() { + EquipHammer *pEVar4; + ActorNavi *pAVar5; + + if (this->mUnk_25[0x2] != 0 && this->mUnk_25[0x3] == 0) { + return; + } + + pEVar4 = GetEquipHammer(); + pAVar5 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage); + + if (CHECK_0219b160(data_ov059_0219b180.mUnk_00)) { + this->mUnk_38 = gPlayerControl->mAimWorld; + + if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetState() <= 0) { + pEVar4->func_ov059_02198e90(); + + if (this->mUnk_25[2] != 0 && this->mUnk_25[3] != 0) { + this->LookAt(&this->mUnk_38); + } + + this->func_ov00_020a89bc(&data_ov059_0219b190, 1); + } + } else { + if (CHECK_0219b160(data_ov059_0219b1b0.mUnk_00)) { + if (this->func_ov00_020a8b3c(1) != 0 || gPlayerControl->UpdateAimWorld(&this->mUnk_38)) { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + } + } else if (CHECK_0219b160(data_ov059_0219b190.mUnk_00) || CHECK_0219b160(data_ov059_0219b1a0.mUnk_00)) { + gPlayerControl->UpdateAimWorld(&this->mUnk_38); + pEVar4->func_ov059_02198e90(); + + if (this->mUnk_25[0x2] != 0 && this->mUnk_25[0x3] != 0) { + this->LookAt(&this->mUnk_38); + } + + if (gPlayerControl->CheckTouching(1) ? false : true) { + if (pEVar4->GetState() > 0) { + pEVar4->func_ov059_02198ebc(); + this->func_ov00_020a89bc(&data_ov059_0219b1b0, 1); + } + } else if (!CHECK_0219b160(data_ov059_0219b1a0.mUnk_00) && pEVar4->GetChargeTimer() <= 0) { + this->func_ov00_020a89bc(&data_ov059_0219b1a0, 1); + } + } else { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + } + } + + if (this->mUnk_25[0x2] == 0 || this->mUnk_25[0x3] == 0) { + this->func_ov059_02198ffc(); + } +} + +ARM EquipHammer *GetEquipHammer() { + return (EquipHammer *) ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer); +} + +ARM void LinkStateItem::StopUsingHammer() { + ((ActorNavi *) gItemManager->GetFairy(FairyId_Courage))->func_ov000_020b853c(); +} diff --git a/src/ITCM/Map/MapManager.cpp b/src/ITCM/Map/MapManager.cpp index 1ed5d73e..467b0990 100644 --- a/src/ITCM/Map/MapManager.cpp +++ b/src/ITCM/Map/MapManager.cpp @@ -1,6 +1,6 @@ #include "Map/MapManager.hpp" bool MapManager::func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4) {} -bool MapManager::func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length) {} +bool MapManager::func_01ffbf5c(struct UnkStruct *param1, Vec3p *param2, Vec3p *param3, s32 length) {} bool MapManager::func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {} bool MapManager::func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {}