From 418954b3cd8329eb5be853d2b6ebc87a355ea271 Mon Sep 17 00:00:00 2001 From: Alessevan <44125445+Alessevan@users.noreply.github.com> Date: Sun, 2 Aug 2026 08:49:14 -0400 Subject: [PATCH] Begin decompiling of ZLSL / ZSRS (#107) * feat: add vtables * fix: compilation issues * fix: actorderived1 data * fix: link * feat: more delink * feat: add MORE functions * feat: decompile functions * feat: advance * feat: improve decompiling * style: improve style * feat: update * feat: update * feat: update * feat: add some matching bytes pausing switching to another actor temporarly * feat: add .data for jp version * refactor: reorder fonctions * feat: update symbols * feat: fix eur build * feat: update Actor_Derived1 symbols * refactor: cleanup * refactor: move UnkAngleStruct * feat: update jp symbols (Yanis) --- config/eur/arm9/overlays/ov000/symbols.txt | 74 +- config/eur/arm9/overlays/ov031/delinks.txt | 3 +- config/eur/arm9/overlays/ov031/relocs.txt | 14 +- config/eur/arm9/overlays/ov031/symbols.txt | 234 +-- config/eur/arm9/overlays/ov040/symbols.txt | 2 +- config/eur/arm9/overlays/ov071/symbols.txt | 4 +- config/eur/arm9/overlays/ov090/symbols.txt | 2 +- config/eur/arm9/overlays/ov093/symbols.txt | 6 +- config/jp/arm9/overlays/ov000/symbols.txt | 52 +- config/jp/arm9/overlays/ov031/delinks.txt | 3 +- config/jp/arm9/overlays/ov031/relocs.txt | 10 +- config/jp/arm9/overlays/ov031/symbols.txt | 264 +-- config/jp/arm9/overlays/ov040/symbols.txt | 2 +- config/jp/arm9/overlays/ov090/symbols.txt | 2 +- config/jp/arm9/symbols.txt | 4 +- include/Actor/Actor.hpp | 9 +- include/Actor/ActorProfile.hpp | 14 + include/Actor/ActorUnkFTRN.hpp | 2 +- include/Actor/ActorUnkLBCK.hpp | 2 +- include/Actor/ActorUnkRAT0.hpp | 7 +- include/Actor/ActorUnkRB1T.hpp | 5 +- include/Actor/ActorUnkRPMT.hpp | 10 +- include/Actor/ActorUnkZLSL_ZSRS.hpp | 358 ++++- include/Actor/Actor_Derived1.hpp | 64 +- include/Render/ModelRender.hpp | 1 + include/Unknown/UnkStruct_027e09a8.hpp | 3 + include/Unknown/UnkStruct_027e09bc.hpp | 1 + include/Unknown/UnkStruct_027e09c0.hpp | 1 + include/Unknown/UnkStruct_027e0cd8.hpp | 1 + include/Unknown/UnkStruct_027e0ce0.hpp | 1 + include/Unknown/UnkStruct_027e0d8c.hpp | 6 + include/Unknown/UnkStruct_ov024_020d8660.hpp | 10 + include/math.hpp | 4 + src/000_Second/Actor/Actor_Derived1.cpp | 22 +- src/001_SceneInit/Actor/ActorManager_001.cpp | 3 +- .../Actor/Actor_Derived1_EC_024.cpp | 2 +- src/031_Land/Actor/ActorRupee.cpp | 35 +- src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp | 1419 ++++++++++++++++- src/040_MapB1/Actor/ActorUnkFTRN.cpp | 2 +- src/041_MapB2/Actor/ActorUnkRPMT.cpp | 3 +- 40 files changed, 2245 insertions(+), 416 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 23a455db..02214d9f 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -71,7 +71,7 @@ _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x020 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577f8 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02057830 func_ov000_0205786c kind:function(arm,size=0x38) addr:0x0205786c -func_ov000_020578a4 kind:function(arm,size=0x20) addr:0x020578a4 +_ZN10UnkSystem519func_ov000_020578a4Eii kind:function(arm,size=0x20) addr:0x020578a4 func_ov000_020578c4 kind:function(arm,size=0x24) addr:0x020578c4 _ZN26ModelRender_ov000_020b198cC1EP10G3d_Model_c kind:function(thumb,size=0x20) addr:0x020578e8 func_ov000_02057908 kind:function(arm,size=0x34) addr:0x02057908 @@ -1053,7 +1053,7 @@ _ZN18UnkStruct_027e09a819func_ov000_020716dcEi kind:function(arm,size=0x24) addr func_ov000_02071700 kind:function(arm,size=0x48) addr:0x02071700 func_ov000_02071748 kind:function(arm,size=0x2c) addr:0x02071748 func_ov000_02071774 kind:function(arm,size=0x58) addr:0x02071774 -func_ov000_020717cc kind:function(arm,size=0x48) addr:0x020717cc +_ZN18UnkStruct_027e09a819func_ov000_020717ccEiP7VecFx32 kind:function(arm,size=0x48) addr:0x020717cc func_ov000_02071814 kind:function(arm,size=0x58) addr:0x02071814 func_ov000_0207186c kind:function(arm,size=0x68) addr:0x0207186c func_ov000_020718d4 kind:function(arm,size=0x60) addr:0x020718d4 @@ -1062,9 +1062,9 @@ func_ov000_02071994 kind:function(arm,size=0x1c) addr:0x02071994 func_ov000_020719b0 kind:function(arm,size=0xc4) addr:0x020719b0 func_ov000_02071a74 kind:function(arm,size=0xbc) addr:0x02071a74 _ZN18UnkStruct_027e09a819func_ov000_02071b30EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x02071b30 -func_ov000_02071bd4 kind:function(arm,size=0x90) addr:0x02071bd4 +_ZN18UnkStruct_027e09a819func_ov000_02071bd4EiP7VecFx32i kind:function(arm,size=0x90) addr:0x02071bd4 func_ov000_02071c64 kind:function(arm,size=0x2c) addr:0x02071c64 -func_ov000_02071c90 kind:function(arm,size=0xa4) addr:0x02071c90 +_ZN18UnkStruct_027e09a819func_ov000_02071c90EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x02071c90 _ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,size=0xb0) addr:0x02071d34 func_ov000_02071de4 kind:function(arm,size=0xa0) addr:0x02071de4 func_ov000_02071e84 kind:function(arm,size=0x14) addr:0x02071e84 @@ -1272,7 +1272,7 @@ func_ov000_0207872c kind:function(arm,size=0x1c) addr:0x0207872c func_ov000_02078748 kind:function(arm,size=0x1c) addr:0x02078748 _ZN21UnkStruct_027e09bc_0C19func_ov000_02078764EP7VecFx32Pvi kind:function(arm,size=0x54) addr:0x02078764 func_ov000_020787b8 kind:function(arm,size=0x7c) addr:0x020787b8 -func_ov000_02078834 kind:function(arm,size=0x9c) addr:0x02078834 +_ZN21UnkStruct_027e09bc_0C19func_ov000_02078834EP7VecFx32S1_ii kind:function(arm,size=0x9c) addr:0x02078834 func_ov000_020788d0 kind:function(arm,size=0x68) addr:0x020788d0 func_ov000_02078938 kind:function(arm,size=0x44) addr:0x02078938 func_ov000_0207897c kind:function(arm,size=0x9c) addr:0x0207897c @@ -1498,7 +1498,7 @@ func_ov000_0207ed84 kind:function(arm,size=0x8) addr:0x0207ed84 func_ov000_0207ed8c kind:function(arm,size=0x20) addr:0x0207ed8c _ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x0207edac func_ov000_0207edcc kind:function(arm,size=0x1c) addr:0x0207edcc -_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x0207ede8 +_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x0207ede8 _ZN19func_ov000_0207ee18D0Ev kind:function(arm,size=0x38) addr:0x0207ee18 _ZN19func_ov000_0207ee50D2Ev kind:function(arm,size=0x30) addr:0x0207ee50 func_ov000_0207ee80 kind:function(arm,size=0x4) addr:0x0207ee80 @@ -1575,7 +1575,7 @@ func_ov000_020808d4 kind:function(arm,size=0x20) addr:0x020808d4 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvP8Vec2bCpph kind:function(arm,size=0x5c) addr:0x020808f4 func_ov000_02080950 kind:function(arm,size=0x48) addr:0x02080950 func_ov000_02080998 kind:function(arm,size=0x40) addr:0x02080998 -func_ov000_020809d8 kind:function(arm,size=0x6c) addr:0x020809d8 +_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020809d8Eii kind:function(arm,size=0x6c) addr:0x020809d8 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x02080a44 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02080a5c _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02080a78 @@ -2381,23 +2381,23 @@ func_ov000_02099ac4 kind:function(thumb,size=0x28) addr:0x02099ac4 func_ov000_02099aec kind:function(thumb,size=0x2) addr:0x02099aec _ZN19func_ov000_02099af0D0Ev kind:function(thumb,size=0xc) addr:0x02099af0 func_ov000_02099afc kind:function(thumb,size=0x2) addr:0x02099afc -func_ov000_02099b00 kind:function(arm,size=0x38) addr:0x02099b00 -func_ov000_02099b38 kind:function(arm,size=0x68) addr:0x02099b38 -func_ov000_02099ba0 kind:function(arm,size=0x110) addr:0x02099ba0 -func_ov000_02099cb0 kind:function(arm,size=0x84) addr:0x02099cb0 +_ZN24UnkStruct_ov000_020b31a88vfunc_08Ev kind:function(arm,size=0x38) addr:0x02099b00 +_ZN24UnkStruct_ov000_020b31a88vfunc_0CEv kind:function(arm,size=0x68) addr:0x02099b38 +_ZN24UnkStruct_ov000_020b31a88vfunc_20Ev kind:function(arm,size=0x110) addr:0x02099ba0 +_ZN24UnkStruct_ov000_020b31a88vfunc_1CE25ActorUnkZLSL_AnimationTagiii kind:function(arm,size=0x84) addr:0x02099cb0 func_ov000_02099d34 kind:function(arm,size=0xa8) addr:0x02099d34 func_ov000_02099ddc kind:function(arm,size=0x7c) addr:0x02099ddc func_ov000_02099e58 kind:function(arm,size=0x98) addr:0x02099e58 func_ov000_02099ef0 kind:function(arm,size=0x74) addr:0x02099ef0 func_ov000_02099f64 kind:function(arm,size=0x94) addr:0x02099f64 func_ov000_02099ff8 kind:function(arm,size=0x74) addr:0x02099ff8 -func_ov000_0209a06c kind:function(arm,size=0x78) addr:0x0209a06c -func_ov000_0209a0e4 kind:function(arm,size=0x10) addr:0x0209a0e4 -func_ov000_0209a0f4 kind:function(arm,size=0x18) addr:0x0209a0f4 -func_ov000_0209a10c kind:function(arm,size=0x18) addr:0x0209a10c -func_ov000_0209a124 kind:function(arm,size=0x18) addr:0x0209a124 -func_ov000_0209a13c kind:function(arm,size=0x8) addr:0x0209a13c -func_ov000_0209a144 kind:function(arm,size=0x8) addr:0x0209a144 +_ZN24UnkStruct_ov000_020b31a88vfunc_24Ev kind:function(arm,size=0x78) addr:0x0209a06c +_ZN24UnkStruct_ov000_020b31a88vfunc_18Ev kind:function(arm,size=0x10) addr:0x0209a0e4 +_ZN24UnkStruct_ov000_020b31a88vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209a0f4 +_ZN24UnkStruct_ov000_020b31a88vfunc_2CEv kind:function(arm,size=0x18) addr:0x0209a10c +_ZN24UnkStruct_ov000_020b31a88vfunc_34Ev kind:function(arm,size=0x18) addr:0x0209a124 +_ZN24UnkStruct_ov000_020b31a88vfunc_10Ev kind:function(arm,size=0x8) addr:0x0209a13c +_ZN24UnkStruct_ov000_020b31a88vfunc_14Ev kind:function(arm,size=0x8) addr:0x0209a144 func_ov000_0209a14c kind:function(arm,size=0x24) addr:0x0209a14c func_ov000_0209a170 kind:function(arm,size=0x10) addr:0x0209a170 func_ov000_0209a180 kind:function(arm,size=0x8) addr:0x0209a180 @@ -2407,24 +2407,24 @@ func_ov000_0209a1ec kind:function(thumb,size=0x3c) addr:0x0209a1ec func_ov000_0209a228 kind:function(thumb,size=0xc) addr:0x0209a228 func_ov000_0209a234 kind:function(thumb,size=0x12) addr:0x0209a234 func_ov000_0209a248 kind:function(thumb,size=0xc) addr:0x0209a248 -func_ov000_0209a254 kind:function(arm,size=0x34) addr:0x0209a254 -func_ov000_0209a288 kind:function(arm,size=0x68) addr:0x0209a288 -func_ov000_0209a2f0 kind:function(arm,size=0x18) addr:0x0209a2f0 -func_ov000_0209a308 kind:function(arm,size=0x18) addr:0x0209a308 -func_ov000_0209a320 kind:function(arm,size=0x14) addr:0x0209a320 -func_ov000_0209a334 kind:function(arm,size=0x14) addr:0x0209a334 -func_ov000_0209a348 kind:function(arm,size=0x14) addr:0x0209a348 -func_ov000_0209a35c kind:function(arm,size=0x88) addr:0x0209a35c -func_ov000_0209a3e4 kind:function(arm,size=0x238) addr:0x0209a3e4 +_ZN24UnkStruct_ov000_020b31f08vfunc_08Ev kind:function(arm,size=0x34) addr:0x0209a254 +_ZN24UnkStruct_ov000_020b31f08vfunc_0CEv kind:function(arm,size=0x68) addr:0x0209a288 +_ZN24UnkStruct_ov000_020b31f08vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209a2f0 +_ZN24UnkStruct_ov000_020b31f08vfunc_2CEv kind:function(arm,size=0x18) addr:0x0209a308 +_ZN24UnkStruct_ov000_020b31f08vfunc_10Ev kind:function(arm,size=0x14) addr:0x0209a320 +_ZN24UnkStruct_ov000_020b31f08vfunc_14Ev kind:function(arm,size=0x14) addr:0x0209a334 +_ZN24UnkStruct_ov000_020b31f08vfunc_30Ev kind:function(arm,size=0x14) addr:0x0209a348 +_ZN24UnkStruct_ov000_020b31a88vfunc_1CEv kind:function(arm,size=0x88) addr:0x0209a35c +_ZN24UnkStruct_ov000_020b31f08vfunc_20Ev kind:function(arm,size=0x238) addr:0x0209a3e4 func_ov000_0209a61c kind:function(arm,size=0xb8) addr:0x0209a61c -func_ov000_0209a6d4 kind:function(arm,size=0x38) addr:0x0209a6d4 +_ZN24UnkStruct_ov000_020b31f08vfunc_34Ev kind:function(arm,size=0x38) addr:0x0209a6d4 func_ov000_0209a70c kind:function(arm,size=0x8) addr:0x0209a70c func_ov000_0209a714 kind:function(arm,size=0x24) addr:0x0209a714 func_ov000_0209a738 kind:function(arm,size=0x2c) addr:0x0209a738 func_ov000_0209a764 kind:function(thumb,size=0x1c) addr:0x0209a764 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209a780 -func_ov000_0209a79c kind:function(arm,size=0x1c) addr:0x0209a79c -func_ov000_0209a7b8 kind:function(arm,size=0xc) addr:0x0209a7b8 +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209a79c +_ZN11ModelRender19func_ov000_0209a7b8EPvPFvvE kind:function(arm,size=0xc) addr:0x0209a7b8 func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209a7c4 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209a7ec func_ov000_0209a814 kind:function(arm,size=0x44) addr:0x0209a814 @@ -3024,7 +3024,7 @@ _ZN14Actor_Derived119func_ov000_020a8ae0Ei kind:function(arm,size=0x14) addr:0x0 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 -_ZN14Actor_Derived1C1EP11ModelRenderi kind:function(arm,size=0x110) addr:0x020a8bb0 +_ZN14Actor_Derived1C1EP11ModelRenderP20Actor_Derived1_94_0C kind:function(arm,size=0x110) addr:0x020a8bb0 _ZN14Actor_Derived1D1Ev kind:function(arm,size=0x20) addr:0x020a8cc0 _ZN14Actor_Derived1D0Ev kind:function(arm,size=0x28) addr:0x020a8ce0 _ZN14Actor_Derived1D2Ev kind:function(arm,size=0x20) addr:0x020a8d08 @@ -3043,24 +3043,24 @@ _ZN14Actor_Derived18vfunc_90Ev kind:function(arm,size=0x8) addr:0x020a8f64 _ZN14Actor_Derived18vfunc_94Ev kind:function(arm,size=0xc) addr:0x020a8f6c _ZN14Actor_Derived18vfunc_60Ev kind:function(arm,size=0x68) addr:0x020a8f78 _ZN14Actor_Derived18vfunc_64Ev kind:function(arm,size=0x14) addr:0x020a8fe0 -_ZN14Actor_Derived119func_ov000_020a8ff4Ev kind:function(arm,size=0x158) addr:0x020a8ff4 +_ZN14Actor_Derived119func_ov000_020a8ff4EP7VecFx32 kind:function(arm,size=0x158) addr:0x020a8ff4 _ZN14Actor_Derived18vfunc_6CEv kind:function(arm,size=0x4) addr:0x020a914c _ZN14Actor_Derived18vfunc_68Ev kind:function(arm,size=0x50) addr:0x020a9150 -_ZN14Actor_Derived18vfunc_7CEv kind:function(arm,size=0x8) addr:0x020a91a0 -_ZN14Actor_Derived18vfunc_80Ev kind:function(arm,size=0x8) addr:0x020a91a8 +_ZN14Actor_Derived18vfunc_7CEi kind:function(arm,size=0x8) addr:0x020a91a0 +_ZN14Actor_Derived18vfunc_80Eii kind:function(arm,size=0x8) addr:0x020a91a8 _ZN14Actor_Derived18vfunc_84Ev kind:function(arm,size=0x8) addr:0x020a91b0 _ZN14Actor_Derived119func_ov000_020a91b8EP7VecFx32i kind:function(arm,size=0x48) addr:0x020a91b8 _ZN14Actor_Derived119func_ov000_020a9200Ev kind:function(arm,size=0x1c) addr:0x020a9200 _ZN14Actor_Derived18vfunc_70Ev kind:function(arm,size=0x24) addr:0x020a921c _ZN14Actor_Derived18vfunc_74Ev kind:function(arm,size=0x4) addr:0x020a9240 _ZN14Actor_Derived18vfunc_78Ev kind:function(arm,size=0x4) addr:0x020a9244 -_ZN14Actor_Derived119func_ov000_020a9248Ev kind:function(arm,size=0x88) addr:0x020a9248 +_ZN14Actor_Derived119func_ov000_020a9248Ei kind:function(arm,size=0x88) addr:0x020a9248 _ZN14Actor_Derived18vfunc_5CEv kind:function(arm,size=0x178) addr:0x020a92d0 -_ZN14Actor_Derived18vfunc_98Ei kind:function(arm,size=0x68) addr:0x020a9448 +_ZN14Actor_Derived18vfunc_98Ej kind:function(arm,size=0x68) addr:0x020a9448 _ZN14Actor_Derived119func_ov000_020a94b0Ev kind:function(arm,size=0xe8) addr:0x020a94b0 _ZN14Actor_Derived18vfunc_9CEv kind:function(arm,size=0x2c) addr:0x020a9598 _ZN14Actor_Derived18vfunc_A0Ev kind:function(arm,size=0x10) addr:0x020a95c4 -_ZN14Actor_Derived18vfunc_AcEv kind:function(arm,size=0x4) addr:0x020a95d4 +_ZN14Actor_Derived18vfunc_ACEv kind:function(arm,size=0x4) addr:0x020a95d4 _ZN14Actor_Derived119func_ov000_020a95d8Ev kind:function(arm,size=0xc) addr:0x020a95d8 _ZN14Actor_Derived18vfunc_A4Ev kind:function(arm,size=0x218) addr:0x020a95e4 _ZN14Actor_Derived18vfunc_A8Ev kind:function(arm,size=0x8) addr:0x020a97fc diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index 2fb82616..ab1047c8 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -59,13 +59,14 @@ src/031_Land/Actor/ActorRupee.cpp: .text start:0x020e8cb8 end:0x020ea02c .init start:0x02111270 end:0x02111308 .ctor start:0x021127b8 end:0x021127bc - .data start:0x02113488 end:0x02113520 + .data start:0x02113488 end:0x021135f0 .bss start:0x021166e8 end:0x0211672c src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp: .text start:0x020ea02c end:0x020ee8cc .init start:0x02111308 end:0x0211139c .ctor start:0x021127bc end:0x021127c0 + .data start:0x021135f0 end:0x02113d64 .bss start:0x0211672c end:0x02116858 src/031_Land/Actor/ActorHeart.cpp: diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index 2914b7c8..2b859b43 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -1897,7 +1897,7 @@ from:0x020ea07e kind:thumb_call_arm to:0x0209767c module:overlay(0) from:0x020ea0ac kind:load to:0x02113620 add:0x8 module:overlay(31) from:0x020ea0bc kind:thumb_call_arm to:0x01fff458 module:itcm from:0x020ea0e8 kind:thumb_call_arm to:0x020a8b48 module:overlay(0) -from:0x020ea0f4 kind:load to:0x02113670 module:overlay(31) +from:0x020ea0f4 kind:load to:0x02113668 module:overlay(31) add:0x8 from:0x020ea0fc kind:load to:0x01ffc57c module:itcm from:0x020ea114 kind:thumb_call_arm to:0x020975f8 module:overlay(0) from:0x020ea12c kind:thumb_call_arm to:0x020973f4 module:overlay(0) @@ -1923,10 +1923,10 @@ from:0x020ea476 kind:thumb_call_arm to:0x020eeb58 module:overlay(31) from:0x020ea480 kind:load to:0x027e0ce0 module:dtcm from:0x020ea484 kind:load to:0x02116780 module:overlay(31) from:0x020ea48c kind:load to:0x02113944 add:0x8 module:overlay(31) -from:0x020ea490 kind:load to:0x0211372c module:overlay(31) +from:0x020ea490 kind:load to:0x02113724 module:overlay(31) add:0x8 from:0x020ea494 kind:load to:0x02113880 add:0x8 module:overlay(31) -from:0x020ea49c kind:load to:0x021136e4 module:overlay(31) -from:0x020ea4a4 kind:load to:0x0211369c module:overlay(31) +from:0x020ea49c kind:load to:0x021136dc module:overlay(31) add:0x8 +from:0x020ea4a4 kind:load to:0x02113694 module:overlay(31) add:0x8 from:0x020ea4ac kind:load to:0x020e17f4 module:overlay(31) from:0x020ea4b0 kind:load to:0x020e33ac module:overlay(31) from:0x020ea4b8 kind:load to:0x027e0d3c module:dtcm @@ -2363,7 +2363,7 @@ from:0x020ee6cc kind:load to:0x027e0cec module:dtcm from:0x020ee704 kind:arm_call to:0x02016fbc module:main from:0x020ee740 kind:arm_call to:0x01fff350 module:itcm from:0x020ee758 kind:load to:0x027e0ce4 module:dtcm -from:0x020ee75c kind:load to:0x0211361c module:overlay(31) +from:0x020ee75c kind:load to:0x02113614 module:overlay(31) add:0x8 from:0x020ee77c kind:arm_call to:0x02057c98 module:overlay(0) from:0x020ee790 kind:load to:0x020578a4 module:overlay(0) from:0x020ee7a4 kind:arm_call_thumb to:0x02057bd4 module:overlay(0) @@ -2387,7 +2387,7 @@ from:0x020ee8ac kind:arm_call to:0x0209790c module:overlay(0) from:0x020ee8c0 kind:arm_call to:0x02097724 module:overlay(0) from:0x020ee906 kind:thumb_call to:0x0209a1ec module:overlay(0) from:0x020ee91e kind:thumb_call_arm to:0x02034060 module:main -from:0x020ee930 kind:load to:0x02113d14 module:overlay(31) +from:0x020ee930 kind:load to:0x02113d0c module:overlay(31) add:0x8 from:0x020ee938 kind:load to:0x02113d08 module:overlay(31) from:0x020ee940 kind:thumb_call to:0x0209a248 module:overlay(0) from:0x020ee94c kind:thumb_call to:0x0209a248 module:overlay(0) @@ -3853,7 +3853,7 @@ from:0x020fb5d8 kind:arm_call_thumb to:0x02099a28 module:overlay(0) from:0x020fb5f0 kind:arm_call_thumb to:0x0205778c module:overlay(0) from:0x020fb608 kind:load to:0x02114f00 add:0x8 module:overlay(31) from:0x020fb60c kind:load to:0x02117044 module:overlay(31) -from:0x020fb610 kind:load to:0x0211369c module:overlay(31) +from:0x020fb610 kind:load to:0x02113694 module:overlay(31) add:0x8 from:0x020fb690 kind:arm_call to:0x02099ff8 module:overlay(0) from:0x020fb6c8 kind:load to:0x02114ed0 module:overlay(31) from:0x020fb744 kind:arm_call to:0x01ffb428 module:itcm diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index e76dc511..dc6a6462 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -612,122 +612,122 @@ _ZN19ActorProfileUnkZSRSC1Ev kind:function(thumb,size=0x1c) addr:0x020ea038 _ZN19ActorProfileUnkZLSL10GetProfileEv kind:function(thumb,size=0x8) addr:0x020ea054 _ZN19ActorProfileUnkZLSL6CreateEv kind:function(thumb,size=0x1c) addr:0x020ea05c _ZN19ActorProfileUnkZLSLC1Ev kind:function(thumb,size=0x3c) addr:0x020ea078 -func_ov031_020ea0b4 kind:function(thumb,size=0x30) addr:0x020ea0b4 -func_ov031_020ea0e4 kind:function(thumb,size=0x14) addr:0x020ea0e4 -func_ov031_020ea0f8 kind:function(thumb,size=0x8) addr:0x020ea0f8 +_ZN24UnkStruct_ov031_0211361c19func_ov031_020ea0b4EP5Actor kind:function(thumb,size=0x30) addr:0x020ea0b4 +_ZN26ModelRender_ov031_02113670C2EP10G3d_Model_ kind:function(thumb,size=0x14) addr:0x020ea0e4 +_ZN26ModelRender_ov031_021136708vfunc_0CEv kind:function(thumb,size=0x8) addr:0x020ea0f8 func_ov031_020ea100 kind:function(thumb,size=0x40) addr:0x020ea100 -func_ov031_020ea140 kind:function(thumb,size=0x3b4) addr:0x020ea140 -func_ov031_020ea4f4 kind:function(thumb,size=0xc) addr:0x020ea4f4 -func_ov031_020ea500 kind:function(thumb,size=0xc) addr:0x020ea500 -func_ov031_020ea50c kind:function(thumb,size=0xc) addr:0x020ea50c -func_ov031_020ea518 kind:function(thumb,size=0xc) addr:0x020ea518 -func_ov031_020ea524 kind:function(thumb,size=0xa4) addr:0x020ea524 -func_ov031_020ea5c8 kind:function(thumb,size=0xac) addr:0x020ea5c8 -func_ov031_020ea674 kind:function(arm,size=0x24) addr:0x020ea674 -func_ov031_020ea698 kind:function(arm,size=0x10c) addr:0x020ea698 -func_ov031_020ea7a4 kind:function(arm,size=0x4) addr:0x020ea7a4 -func_ov031_020ea7a8 kind:function(arm,size=0xbc) addr:0x020ea7a8 -func_ov031_020ea864 kind:function(arm,size=0x4) addr:0x020ea864 -func_ov031_020ea868 kind:function(arm,size=0x4) addr:0x020ea868 -func_ov031_020ea86c kind:function(arm,size=0x4) addr:0x020ea86c -func_ov031_020ea870 kind:function(arm,size=0x50) addr:0x020ea870 -func_ov031_020ea8c0 kind:function(arm,size=0x4) addr:0x020ea8c0 -func_ov031_020ea8c4 kind:function(arm,size=0x4) addr:0x020ea8c4 -func_ov031_020ea8c8 kind:function(arm,size=0x4) addr:0x020ea8c8 -func_ov031_020ea8cc kind:function(arm,size=0x19c) addr:0x020ea8cc -func_ov031_020eaa68 kind:function(arm,size=0x20) addr:0x020eaa68 -func_ov031_020eaa88 kind:function(arm,size=0x4) addr:0x020eaa88 -func_ov031_020eaa8c kind:function(arm,size=0x80) addr:0x020eaa8c -func_ov031_020eab0c kind:function(arm,size=0x34) addr:0x020eab0c -func_ov031_020eab40 kind:function(arm,size=0x124) addr:0x020eab40 -func_ov031_020eac64 kind:function(arm,size=0x7c) addr:0x020eac64 -func_ov031_020eace0 kind:function(arm,size=0x2c) addr:0x020eace0 -func_ov031_020ead0c kind:function(arm,size=0x6c) addr:0x020ead0c -func_ov031_020ead78 kind:function(arm,size=0x4) addr:0x020ead78 -func_ov031_020ead7c kind:function(arm,size=0x234) addr:0x020ead7c -func_ov031_020eafb0 kind:function(arm,size=0x30) addr:0x020eafb0 -func_ov031_020eafe0 kind:function(arm,size=0x178) addr:0x020eafe0 -func_ov031_020eb158 kind:function(arm,size=0x30) addr:0x020eb158 -func_ov031_020eb188 kind:function(arm,size=0x90) addr:0x020eb188 -func_ov031_020eb218 kind:function(arm,size=0x98) addr:0x020eb218 -func_ov031_020eb2b0 kind:function(arm,size=0x348) addr:0x020eb2b0 -func_ov031_020eb5f8 kind:function(arm,size=0x24) addr:0x020eb5f8 -func_ov031_020eb61c kind:function(arm,size=0x43c) addr:0x020eb61c -func_ov031_020eba58 kind:function(arm,size=0x34) addr:0x020eba58 -func_ov031_020eba8c kind:function(arm,size=0x54c) addr:0x020eba8c -func_ov031_020ebfd8 kind:function(arm,size=0x50) addr:0x020ebfd8 -func_ov031_020ec028 kind:function(arm,size=0xc) addr:0x020ec028 -func_ov031_020ec034 kind:function(arm,size=0x24) addr:0x020ec034 -func_ov031_020ec058 kind:function(arm,size=0x4) addr:0x020ec058 -func_ov031_020ec05c kind:function(arm,size=0x4c) addr:0x020ec05c -func_ov031_020ec0a8 kind:function(arm,size=0x2c) addr:0x020ec0a8 -func_ov031_020ec0d4 kind:function(arm,size=0x58) addr:0x020ec0d4 -func_ov031_020ec12c kind:function(arm,size=0x38) addr:0x020ec12c -func_ov031_020ec164 kind:function(arm,size=0xc) addr:0x020ec164 -func_ov031_020ec170 kind:function(arm,size=0x64) addr:0x020ec170 -func_ov031_020ec1d4 kind:function(arm,size=0xfc) addr:0x020ec1d4 -func_ov031_020ec2d0 kind:function(arm,size=0x100) addr:0x020ec2d0 -func_ov031_020ec3d0 kind:function(arm,size=0xcc) addr:0x020ec3d0 -func_ov031_020ec49c kind:function(arm,size=0xb0) addr:0x020ec49c -func_ov031_020ec54c kind:function(arm,size=0xa4) addr:0x020ec54c -func_ov031_020ec5f0 kind:function(arm,size=0xe8) addr:0x020ec5f0 -func_ov031_020ec6d8 kind:function(arm,size=0x8c) addr:0x020ec6d8 -func_ov031_020ec764 kind:function(arm,size=0x40) addr:0x020ec764 -func_ov031_020ec7a4 kind:function(arm,size=0x40) addr:0x020ec7a4 -func_ov031_020ec7e4 kind:function(arm,size=0x7c) addr:0x020ec7e4 -func_ov031_020ec860 kind:function(arm,size=0x5c) addr:0x020ec860 -func_ov031_020ec8bc kind:function(arm,size=0x8) addr:0x020ec8bc -func_ov031_020ec8c4 kind:function(arm,size=0xac) addr:0x020ec8c4 -func_ov031_020ec970 kind:function(arm,size=0x270) addr:0x020ec970 -func_ov031_020ecbe0 kind:function(arm,size=0x88) addr:0x020ecbe0 -func_ov031_020ecc68 kind:function(arm,size=0x240) addr:0x020ecc68 -func_ov031_020ecea8 kind:function(arm,size=0x208) addr:0x020ecea8 -func_ov031_020ed0b0 kind:function(arm,size=0x310) addr:0x020ed0b0 -func_ov031_020ed3c0 kind:function(arm,size=0xbc) addr:0x020ed3c0 -func_ov031_020ed47c kind:function(arm,size=0x68) addr:0x020ed47c -func_ov031_020ed4e4 kind:function(arm,size=0x78) addr:0x020ed4e4 -func_ov031_020ed55c kind:function(arm,size=0x170) addr:0x020ed55c -func_ov031_020ed6cc kind:function(arm,size=0x1e0) addr:0x020ed6cc -func_ov031_020ed8ac kind:function(arm,size=0x3d4) addr:0x020ed8ac -func_ov031_020edc80 kind:function(arm,size=0x94) addr:0x020edc80 -func_ov031_020edd14 kind:function(arm,size=0x40) addr:0x020edd14 -func_ov031_020edd54 kind:function(arm,size=0xdc) addr:0x020edd54 -func_ov031_020ede30 kind:function(arm,size=0x168) addr:0x020ede30 -func_ov031_020edf98 kind:function(arm,size=0x44) addr:0x020edf98 -func_ov031_020edfdc kind:function(arm,size=0x24) addr:0x020edfdc -func_ov031_020ee000 kind:function(arm,size=0x1f4) addr:0x020ee000 -func_ov031_020ee1f4 kind:function(arm,size=0xd4) addr:0x020ee1f4 -func_ov031_020ee2c8 kind:function(arm,size=0x120) addr:0x020ee2c8 -func_ov031_020ee3e8 kind:function(arm,size=0x34) addr:0x020ee3e8 -func_ov031_020ee41c kind:function(arm,size=0xa8) addr:0x020ee41c -func_ov031_020ee4c4 kind:function(arm,size=0x190) addr:0x020ee4c4 -func_ov031_020ee654 kind:function(arm,size=0x7c) addr:0x020ee654 -func_ov031_020ee6d0 kind:function(arm,size=0x54) addr:0x020ee6d0 -func_ov031_020ee724 kind:function(arm,size=0x3c) addr:0x020ee724 -func_ov031_020ee760 kind:function(arm,size=0x24) addr:0x020ee760 -func_ov031_020ee784 kind:function(arm,size=0x10) addr:0x020ee784 -func_ov031_020ee794 kind:function(arm,size=0x8) addr:0x020ee794 -_ZN19func_ov031_020ee79cD0Ev kind:function(arm,size=0x1c) addr:0x020ee79c -_ZN19func_ov031_020ee7b8D0Ev kind:function(arm,size=0x1c) addr:0x020ee7b8 -_ZN19func_ov031_020ee7d4D0Ev kind:function(arm,size=0x1c) addr:0x020ee7d4 -func_ov031_020ee7f0 kind:function(arm,size=0x24) addr:0x020ee7f0 -func_ov031_020ee814 kind:function(arm,size=0x2c) addr:0x020ee814 -_ZN19func_ov031_020ee840D0Ev kind:function(arm,size=0x1c) addr:0x020ee840 -_ZN19func_ov031_020ee85cD0Ev kind:function(arm,size=0x28) addr:0x020ee85c -_ZN19func_ov031_020ee884D2Ev kind:function(arm,size=0x20) addr:0x020ee884 -_ZN19ActorProfileUnkZSRSD1Ev kind:function(arm,size=0x14) addr:0x020ee8a4 +_ZN12ActorUnkZLSLC1Ev kind:function(thumb,size=0x3b4) addr:0x020ea140 +_ZN24UnkStruct_ov031_0211372cD1Ev kind:function(thumb,size=0xc) addr:0x020ea4f4 +_ZN26ModelRender_ov031_02113670D1Ev kind:function(thumb,size=0xc) addr:0x020ea500 +_ZN17ActorUnkZLSL_2700D1Ev kind:function(thumb,size=0xc) addr:0x020ea50c +_ZN17ActorUnkZLSL_27CCD1Ev kind:function(thumb,size=0xc) addr:0x020ea518 +_ZN12ActorUnkZLSLD1Ev kind:function(thumb,size=0xa4) addr:0x020ea524 +_ZN12ActorUnkZLSLD0Ev kind:function(thumb,size=0xac) addr:0x020ea5c8 +_ZN12ActorUnkZLSL19func_ov031_020ea674Ev kind:function(arm,size=0x24) addr:0x020ea674 +_ZN12ActorUnkZLSL8vfunc_18Ei kind:function(arm,size=0x10c) addr:0x020ea698 +_ZN12ActorUnkZLSL8vfunc_ACEv kind:function(arm,size=0x4) addr:0x020ea7a4 +_ZN12ActorUnkZLSL19func_ov031_020ea7a8Ev kind:function(arm,size=0xbc) addr:0x020ea7a8 +_ZN12ActorUnkZLSL19func_ov031_020ea864Ev kind:function(arm,size=0x4) addr:0x020ea864 +_ZN12ActorUnkZLSL19func_ov031_020ea868Ev kind:function(arm,size=0x4) addr:0x020ea868 +_ZN12ActorUnkZLSL19func_ov031_020ea86cEv kind:function(arm,size=0x4) addr:0x020ea86c +_ZN12ActorUnkZLSL8vfunc_58Es kind:function(arm,size=0x50) addr:0x020ea870 +_ZN12ActorUnkZLSL19func_ov031_020ea8c0Ev kind:function(arm,size=0x4) addr:0x020ea8c0 +_ZN12ActorUnkZLSL19func_ov031_020ea8c4Ev kind:function(arm,size=0x4) addr:0x020ea8c4 +_ZN12ActorUnkZLSL19func_ov031_020ea8c8Ev kind:function(arm,size=0x4) addr:0x020ea8c8 +_ZN12ActorUnkZLSL8vfunc_20Ev kind:function(arm,size=0x19c) addr:0x020ea8cc +_ZN12ActorUnkZLSL19func_ov031_020eaa68Ev kind:function(arm,size=0x20) addr:0x020eaa68 +_ZN12ActorUnkZLSL19func_ov031_020eaa88Ev kind:function(arm,size=0x4) addr:0x020eaa88 +_ZN12ActorUnkZLSL19func_ov031_020eaa8cEv kind:function(arm,size=0x80) addr:0x020eaa8c +_ZN12ActorUnkZLSL19func_ov031_020eab0cEv kind:function(arm,size=0x34) addr:0x020eab0c +_ZN12ActorUnkZLSL19func_ov031_020eab40Ei kind:function(arm,size=0x124) addr:0x020eab40 +_ZN12ActorUnkZLSL19func_ov031_020eac64Ev kind:function(arm,size=0x7c) addr:0x020eac64 +_ZN12ActorUnkZLSL19func_ov031_020eace0Ev kind:function(arm,size=0x2c) addr:0x020eace0 +_ZN12ActorUnkZLSL19func_ov031_020ead0cEv kind:function(arm,size=0x6c) addr:0x020ead0c +_ZN12ActorUnkZLSL19func_ov031_020ead78Ev kind:function(arm,size=0x4) addr:0x020ead78 +_ZN12ActorUnkZLSL19func_ov031_020ead7cEv kind:function(arm,size=0x234) addr:0x020ead7c +_ZN12ActorUnkZLSL19func_ov031_020eafb0Ev kind:function(arm,size=0x30) addr:0x020eafb0 +_ZN12ActorUnkZLSL19func_ov031_020eafe0Ev kind:function(arm,size=0x178) addr:0x020eafe0 +_ZN12ActorUnkZLSL19func_ov031_020eb158Ev kind:function(arm,size=0x30) addr:0x020eb158 +_ZN12ActorUnkZLSL19func_ov031_020eb188Ev kind:function(arm,size=0x90) addr:0x020eb188 +_ZN12ActorUnkZLSL19func_ov031_020eb218Ev kind:function(arm,size=0x98) addr:0x020eb218 +_ZN12ActorUnkZLSL19func_ov031_020eb2b0EP7VecFx32i kind:function(arm,size=0x348) addr:0x020eb2b0 +_ZN12ActorUnkZLSL19func_ov031_020eb5f8Ev kind:function(arm,size=0x24) addr:0x020eb5f8 +_ZN12ActorUnkZLSL19func_ov031_020eb61cEv kind:function(arm,size=0x43c) addr:0x020eb61c +_ZN12ActorUnkZLSL19func_ov031_020eba58Ev kind:function(arm,size=0x34) addr:0x020eba58 +_ZN12ActorUnkZLSL19func_ov031_020eba8cEv kind:function(arm,size=0x54c) addr:0x020eba8c +_ZN12ActorUnkZLSL19func_ov031_020ebfd8Ev kind:function(arm,size=0x50) addr:0x020ebfd8 +_ZN12ActorUnkZLSL19func_ov031_020ec028Ev kind:function(arm,size=0xc) addr:0x020ec028 +_ZN12ActorUnkZLSL19func_ov031_020ec034Ev kind:function(arm,size=0x24) addr:0x020ec034 +_ZN12ActorUnkZLSL19func_ov031_020ec058Ev kind:function(arm,size=0x4) addr:0x020ec058 +_ZN12ActorUnkZLSL19func_ov031_020ec05cEv kind:function(arm,size=0x4c) addr:0x020ec05c +_ZN12ActorUnkZLSL19func_ov031_020ec0a8Ev kind:function(arm,size=0x2c) addr:0x020ec0a8 +_ZN12ActorUnkZLSL19func_ov031_020ec0d4Ev kind:function(arm,size=0x58) addr:0x020ec0d4 +_ZN12ActorUnkZLSL19func_ov031_020ec12cEv kind:function(arm,size=0x38) addr:0x020ec12c +_ZN12ActorUnkZLSL19func_ov031_020ec164Ev kind:function(arm,size=0xc) addr:0x020ec164 +_ZN12ActorUnkZLSL19func_ov031_020ec170Ev kind:function(arm,size=0x64) addr:0x020ec170 +_ZN12ActorUnkZLSL8vfunc_2CEi kind:function(arm,size=0xfc) addr:0x020ec1d4 +_ZN12ActorUnkZLSL8vfunc_7CEi kind:function(arm,size=0x100) addr:0x020ec2d0 +_ZN12ActorUnkZLSL19func_ov031_020ec3d0Ev kind:function(arm,size=0xcc) addr:0x020ec3d0 +_ZN12ActorUnkZLSL19func_ov031_020ec49cEv kind:function(arm,size=0xb0) addr:0x020ec49c +_ZN12ActorUnkZLSL19func_ov031_020ec54cEv kind:function(arm,size=0xa4) addr:0x020ec54c +_ZN12ActorUnkZLSL8vfunc_B0Ev kind:function(arm,size=0xe8) addr:0x020ec5f0 +_ZN12ActorUnkZLSL19func_ov031_020ec6d8Eb kind:function(arm,size=0x8c) addr:0x020ec6d8 +_ZN12ActorUnkZLSL8vfunc_6CEv kind:function(arm,size=0x40) addr:0x020ec764 +_ZN12ActorUnkZLSL8vfunc_70Ev kind:function(arm,size=0x40) addr:0x020ec7a4 +_ZN12ActorUnkZLSL8vfunc_68Ev kind:function(arm,size=0x7c) addr:0x020ec7e4 +_ZN12ActorUnkZLSL8vfunc_88Ev kind:function(arm,size=0x5c) addr:0x020ec860 +_ZN12ActorUnkZLSL8vfunc_8CEv kind:function(arm,size=0x8) addr:0x020ec8bc +_ZN12ActorUnkZLSL19func_ov031_020ec8c4Ev kind:function(arm,size=0xac) addr:0x020ec8c4 +_ZN12ActorUnkZLSL8vfunc_98Ej kind:function(arm,size=0x270) addr:0x020ec970 +_ZN12ActorUnkZLSL19func_ov031_020ecbe0Ev kind:function(arm,size=0x88) addr:0x020ecbe0 +_ZN12ActorUnkZLSL19func_ov031_020ecc68Ei kind:function(arm,size=0x240) addr:0x020ecc68 +_ZN12ActorUnkZLSL19func_ov031_020ecea8E14UnkAngleStructiii kind:function(arm,size=0x208) addr:0x020ecea8 +_ZN12ActorUnkZLSL19func_ov031_020ed0b0Ev kind:function(arm,size=0x310) addr:0x020ed0b0 +_ZN12ActorUnkZLSL19func_ov031_020ed3c0Ev kind:function(arm,size=0xbc) addr:0x020ed3c0 +_ZN24UnkStruct_ov031_020ecc6819func_ov031_020ed47cEP12ActorUnkZLSLi kind:function(arm,size=0x68) addr:0x020ed47c +_ZN12ActorUnkZLSL19func_ov031_020ed4e4Eii kind:function(arm,size=0x78) addr:0x020ed4e4 +_ZN12ActorUnkZLSL19func_ov031_020ed55cEv kind:function(arm,size=0x170) addr:0x020ed55c +_ZN12ActorUnkZLSL19func_ov031_020ed6ccEi kind:function(arm,size=0x1e0) addr:0x020ed6cc +_ZN12ActorUnkZLSL19func_ov031_020ed8acEi kind:function(arm,size=0x3d4) addr:0x020ed8ac +_ZN12ActorUnkZLSL19func_ov031_020edc80Ev kind:function(arm,size=0x94) addr:0x020edc80 +_ZN12ActorUnkZLSL19func_ov031_020edd14EP7VecFx32 kind:function(arm,size=0x40) addr:0x020edd14 +_ZN12ActorUnkZLSL19func_ov031_020edd54Ev kind:function(arm,size=0xdc) addr:0x020edd54 +_ZN12ActorUnkZLSL19func_ov031_020ede30Ev kind:function(arm,size=0x168) addr:0x020ede30 +_ZN12ActorUnkZLSL19func_ov031_020edf98Ev kind:function(arm,size=0x44) addr:0x020edf98 +_ZNK12ActorUnkZLSL12GetOffsetPosEP7VecFx32 kind:function(arm,size=0x24) addr:0x020edfdc +_ZN12ActorUnkZLSL8vfunc_A4Ev kind:function(arm,size=0x1f4) addr:0x020ee000 +_ZN12ActorUnkZLSL19func_ov031_020ee1f4Ev kind:function(arm,size=0xd4) addr:0x020ee1f4 +_ZN12ActorUnkZLSL19func_ov031_020ee2c8Ev kind:function(arm,size=0x120) addr:0x020ee2c8 +_ZN12ActorUnkZLSL8vfunc_B4Ev kind:function(arm,size=0x34) addr:0x020ee3e8 +_ZN12ActorUnkZLSL19func_ov031_020ee41cEv kind:function(arm,size=0xa8) addr:0x020ee41c +_ZN12ActorUnkZLSL19func_ov031_020ee4c4E14UnkAngleStruct kind:function(arm,size=0x190) addr:0x020ee4c4 +_ZN12ActorUnkZLSL19func_ov031_020ee654Ev kind:function(arm,size=0x7c) addr:0x020ee654 +_ZN12ActorUnkZLSL8vfunc_80Eii kind:function(arm,size=0x54) addr:0x020ee6d0 +_ZN12ActorUnkZLSL19func_ov031_020ee724Ev kind:function(arm,size=0x3c) addr:0x020ee724 +_ZN17ActorUnkZLSL_27CC8vfunc_3CEv kind:function(arm,size=0x24) addr:0x020ee760 +_ZN17ActorUnkZLSL_27CC8vfunc_38Eii kind:function(arm,size=0x10) addr:0x020ee784 +_ZN17ActorUnkZLSL_27CC8vfunc_30Ev kind:function(arm,size=0x8) addr:0x020ee794 +_ZN26ModelRender_ov031_02113670D0Ev kind:function(arm,size=0x1c) addr:0x020ee79c +_ZN17ActorUnkZLSL_2700D0Ev kind:function(arm,size=0x1c) addr:0x020ee7b8 +_ZN17ActorUnkZLSL_27CCD0Ev kind:function(arm,size=0x1c) addr:0x020ee7d4 +_ZN24UnkStruct_ov031_0211372c8vfunc_3CEv kind:function(arm,size=0x24) addr:0x020ee7f0 +_ZN24UnkStruct_ov031_0211372c8vfunc_38Eii kind:function(arm,size=0x2c) addr:0x020ee814 +_ZN24UnkStruct_ov031_0211372cD0Ev kind:function(arm,size=0x1c) addr:0x020ee840 +_ZN19ActorProfileUnkZSRSD0Ev kind:function(arm,size=0x28) addr:0x020ee85c +_ZN19ActorProfileUnkZSRSD2Ev kind:function(arm,size=0x20) addr:0x020ee884 +_ZN19ActorProfileUnkZLSLD2Ev kind:function(arm,size=0x14) addr:0x020ee8a4 _ZN19ActorProfileUnkZLSLD1Ev kind:function(arm,size=0x14) addr:0x020ee8b8 func_ov031_020ee8cc kind:function(arm,size=0x28) addr:0x020ee8cc func_ov031_020ee8f4 kind:function(thumb,size=0x48) addr:0x020ee8f4 func_ov031_020ee93c kind:function(thumb,size=0xc) addr:0x020ee93c func_ov031_020ee948 kind:function(thumb,size=0x12) addr:0x020ee948 func_ov031_020ee95c kind:function(thumb,size=0xc) addr:0x020ee95c -func_ov031_020ee968 kind:function(arm,size=0x17c) addr:0x020ee968 -func_ov031_020eeae4 kind:function(arm,size=0x34) addr:0x020eeae4 +_ZN24UnkStruct_ov031_0211372c8vfunc_18Ev kind:function(arm,size=0x17c) addr:0x020ee968 +_ZN24UnkStruct_ov031_0211372c8vfunc_40Ev kind:function(arm,size=0x34) addr:0x020eeae4 func_ov031_020eeb18 kind:function(arm,size=0x40) addr:0x020eeb18 func_ov031_020eeb58 kind:function(arm,size=0x150) addr:0x020eeb58 -func_ov031_020eeca8 kind:function(arm,size=0x40) addr:0x020eeca8 -func_ov031_020eece8 kind:function(arm,size=0xc) addr:0x020eece8 +_ZN17ActorUnkZLSL_169019func_ov031_020eeca8Ev kind:function(arm,size=0x40) addr:0x020eeca8 +_ZN17ActorUnkZLSL_169019func_ov031_020eece8Ev kind:function(arm,size=0xc) addr:0x020eece8 _ZN17ActorProfileHeart10GetProfileEv kind:function(arm,size=0xc) addr:0x020eecf4 _ZN17ActorProfileHeart6CreateEv kind:function(arm,size=0x24) addr:0x020eed00 _ZN17ActorProfileHeartC1Ev kind:function(arm,size=0x40) addr:0x020eed24 @@ -2298,17 +2298,17 @@ data_ov031_021135f0 kind:data(any) addr:0x021135f0 data_ov031_021135f4 kind:data(any) addr:0x021135f4 data_ov031_021135f8 kind:data(any) addr:0x021135f8 data_ov031_021135fc kind:data(any) addr:0x021135fc -data_ov031_0211361c kind:data(any) addr:0x0211361c -_ZTV19data_ov031_02113620 kind:data(any) addr:0x02113620 -_ZTV19data_ov031_02113644 kind:data(any) addr:0x02113644 -data_ov031_02113670 kind:data(any) addr:0x02113670 -data_ov031_0211369c kind:data(any) addr:0x0211369c -data_ov031_021136e4 kind:data(any) addr:0x021136e4 -data_ov031_0211372c kind:data(any) addr:0x0211372c +_ZTV24UnkStruct_ov031_0211361c kind:data(any) addr:0x02113614 +_ZTV19ActorProfileUnkZLSL kind:data(any) addr:0x02113620 +_ZTV19ActorProfileUnkZSRS kind:data(any) addr:0x02113644 +_ZTV26ModelRender_ov031_02113670 kind:data(any) addr:0x02113668 +_ZTV17ActorUnkZLSL_27CC kind:data(any) addr:0x02113694 +_ZTV17ActorUnkZLSL_2700 kind:data(any) addr:0x021136dc +_ZTV24UnkStruct_ov031_0211372c kind:data(any) addr:0x02113724 data_ov031_02113770 kind:data(any) addr:0x02113770 data_ov031_021137f8 kind:data(any) addr:0x021137f8 -_ZTV19data_ov031_02113880 kind:data(any) addr:0x02113880 -_ZTV19data_ov031_02113944 kind:data(any) addr:0x02113944 +_ZTV12ActorUnkZLSL kind:data(any) addr:0x02113880 +_ZTV12ActorUnkZSRS kind:data(any) addr:0x02113944 data_ov031_02113a08 kind:data(any) addr:0x02113a08 data_ov031_02113a20 kind:data(any) addr:0x02113a20 data_ov031_02113a38 kind:data(any) addr:0x02113a38 @@ -2322,7 +2322,7 @@ data_ov031_02113ae0 kind:data(any) addr:0x02113ae0 data_ov031_02113af8 kind:data(any) addr:0x02113af8 data_ov031_02113b58 kind:data(any) addr:0x02113b58 data_ov031_02113d08 kind:data(any) addr:0x02113d08 -data_ov031_02113d14 kind:data(any) addr:0x02113d14 +_ZTV19data_ov031_02113d14 kind:data(any) addr:0x02113d0c data_ov031_02113d3c kind:data(any) addr:0x02113d3c ambiguous data_ov031_02113d58 kind:data(any) addr:0x02113d58 data_ov031_02113d64 kind:data(any) addr:0x02113d64 diff --git a/config/eur/arm9/overlays/ov040/symbols.txt b/config/eur/arm9/overlays/ov040/symbols.txt index 1f9c48d3..2baf2feb 100644 --- a/config/eur/arm9/overlays/ov040/symbols.txt +++ b/config/eur/arm9/overlays/ov040/symbols.txt @@ -40,7 +40,7 @@ _ZN12ActorUnkFTRN19func_ov040_02125dc0Ev kind:function(arm,size=0x1b0) addr:0x02 _ZN12ActorUnkFTRN19func_ov040_02125f70Ev kind:function(arm,size=0xbc) addr:0x02125f70 _ZN12ActorUnkFTRN19func_ov040_0212602cEv kind:function(arm,size=0x64) addr:0x0212602c _ZN12ActorUnkFTRN19func_ov040_02126090Ev kind:function(arm,size=0x4c) addr:0x02126090 -_ZN12ActorUnkFTRN19func_ov040_021260dcEv kind:function(arm,size=0x20) addr:0x021260dc +_ZN12ActorUnkFTRN19func_ov040_021260dcEi kind:function(arm,size=0x20) addr:0x021260dc _ZN12ActorUnkFTRN19func_ov040_021260fcEv kind:function(arm,size=0x48) addr:0x021260fc _ZN12ActorUnkFTRN19func_ov040_02126144Ev kind:function(arm,size=0xd0) addr:0x02126144 _ZN12ActorUnkFTRN19func_ov040_02126214Ev kind:function(arm,size=0x130) addr:0x02126214 diff --git a/config/eur/arm9/overlays/ov071/symbols.txt b/config/eur/arm9/overlays/ov071/symbols.txt index 48927533..638569aa 100644 --- a/config/eur/arm9/overlays/ov071/symbols.txt +++ b/config/eur/arm9/overlays/ov071/symbols.txt @@ -57,8 +57,8 @@ func_ov071_02153e38 kind:function(arm,size=0xc0) addr:0x02153e38 func_ov071_02153ef8 kind:function(arm,size=0x5c) addr:0x02153ef8 func_ov071_02153f54 kind:function(arm,size=0x134) addr:0x02153f54 func_ov071_02154088 kind:function(arm,size=0x24) addr:0x02154088 -func_ov071_021540ac kind:function(arm,size=0xa0) addr:0x021540ac -func_ov071_0215414c kind:function(arm,size=0x64) addr:0x0215414c +_ZN5Actor19func_ov071_021540acEi kind:function(arm,size=0xa0) addr:0x021540ac +_ZN5Actor19func_ov071_0215414cEv kind:function(arm,size=0x64) addr:0x0215414c func_ov071_021541b0 kind:function(arm,size=0x34) addr:0x021541b0 func_ov071_021541e4 kind:function(arm,size=0x248) addr:0x021541e4 func_ov071_0215442c kind:function(arm,size=0xbc) addr:0x0215442c diff --git a/config/eur/arm9/overlays/ov090/symbols.txt b/config/eur/arm9/overlays/ov090/symbols.txt index 620bdaef..a6931638 100644 --- a/config/eur/arm9/overlays/ov090/symbols.txt +++ b/config/eur/arm9/overlays/ov090/symbols.txt @@ -14,7 +14,7 @@ _ZN12ActorUnkSZRD19func_ov090_02165e00Ev kind:function(arm,size=0x14) addr:0x021 _ZN12ActorUnkSZRDD1Ev kind:function(arm,size=0x7c) addr:0x02165e14 _ZN12ActorUnkSZRDD0Ev kind:function(arm,size=0x84) addr:0x02165e90 _ZN12ActorUnkSZRD19func_ov090_02165f14Ev kind:function(arm,size=0x1d4) addr:0x02165f14 -_ZN12ActorUnkSZRD19func_ov090_021660e8Ev kind:function(arm,size=0xa4) addr:0x021660e8 +_ZN18UnkStruct_027e0d8c19func_ov090_021660e8Ev kind:function(arm,size=0xa4) addr:0x021660e8 _ZN12ActorUnkSZRD19func_ov090_0216618cEv kind:function(arm,size=0x198) addr:0x0216618c _ZN12ActorUnkSZRD19func_ov090_02166324Ev kind:function(arm,size=0xa4) addr:0x02166324 _ZN12ActorUnkSZRD19func_ov090_021663c8Ev kind:function(arm,size=0xe0) addr:0x021663c8 diff --git a/config/eur/arm9/overlays/ov093/symbols.txt b/config/eur/arm9/overlays/ov093/symbols.txt index 69c59eb6..6920aa5d 100644 --- a/config/eur/arm9/overlays/ov093/symbols.txt +++ b/config/eur/arm9/overlays/ov093/symbols.txt @@ -11,12 +11,12 @@ func_ov093_02166048 kind:function(arm,size=0x10) addr:0x02166048 _ZN18UnkStruct_027e0d8c19func_ov093_02166058Ev kind:function(arm,size=0x10) addr:0x02166058 _ZN18UnkStruct_027e0d8c19func_ov093_02166068Ev kind:function(arm,size=0x10) addr:0x02166068 func_ov093_02166078 kind:function(arm,size=0x30) addr:0x02166078 -func_ov093_021660a8 kind:function(arm,size=0x20) addr:0x021660a8 +_ZN18UnkStruct_027e0d8c19func_ov093_021660a8E8ActorRef kind:function(arm,size=0x20) addr:0x021660a8 func_ov093_021660c8 kind:function(arm,size=0x10) addr:0x021660c8 func_ov093_021660d8 kind:function(arm,size=0x10) addr:0x021660d8 func_ov093_021660e8 kind:function(arm,size=0x10) addr:0x021660e8 -func_ov093_021660f8 kind:function(arm,size=0x10) addr:0x021660f8 -func_ov093_02166108 kind:function(arm,size=0x10) addr:0x02166108 +_ZN18UnkStruct_027e0d8c19func_ov093_021660f8Ev kind:function(arm,size=0x10) addr:0x021660f8 +_ZN18UnkStruct_027e0d8c19func_ov093_02166108Ev kind:function(arm,size=0x10) addr:0x02166108 func_ov093_02166118 kind:function(arm,size=0x10) addr:0x02166118 func_ov093_02166128 kind:function(arm,size=0x10) addr:0x02166128 func_ov093_02166138 kind:function(arm,size=0x18) addr:0x02166138 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 72b3f85b..15f5756b 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -71,7 +71,7 @@ _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x020 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x02058d78 func_ov000_02058db0 kind:function(arm,size=0x3c) addr:0x02058db0 func_ov000_02058dec kind:function(arm,size=0x38) addr:0x02058dec -func_ov000_02058e24 kind:function(arm,size=0x20) addr:0x02058e24 +func_ov000_020578a4 kind:function(arm,size=0x20) addr:0x02058e24 func_ov000_02058e44 kind:function(arm,size=0x24) addr:0x02058e44 func_ov000_02058e68 kind:function(thumb,size=0x20) addr:0x02058e68 func_ov000_02058e88 kind:function(arm,size=0x34) addr:0x02058e88 @@ -1054,7 +1054,7 @@ _ZN18UnkStruct_027e09a819func_ov000_020716dcEi kind:function(arm,size=0x24) addr func_ov000_02072db8 kind:function(arm,size=0x48) addr:0x02072db8 func_ov000_02072e00 kind:function(arm,size=0x2c) addr:0x02072e00 func_ov000_02072e2c kind:function(arm,size=0x58) addr:0x02072e2c -func_ov000_02072e84 kind:function(arm,size=0x48) addr:0x02072e84 +_ZN18UnkStruct_027e09a819func_ov000_020717ccEiP7VecFx32 kind:function(arm,size=0x48) addr:0x02072e84 func_ov000_02072ecc kind:function(arm,size=0x58) addr:0x02072ecc func_ov000_02072f24 kind:function(arm,size=0x68) addr:0x02072f24 func_ov000_02072f8c kind:function(arm,size=0x60) addr:0x02072f8c @@ -1065,7 +1065,7 @@ func_ov000_0207312c kind:function(arm,size=0xbc) addr:0x0207312c _ZN18UnkStruct_027e09a819func_ov000_02071b30EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x020731e8 func_ov000_0207328c kind:function(arm,size=0x90) addr:0x0207328c func_ov000_0207331c kind:function(arm,size=0x2c) addr:0x0207331c -func_ov000_02073348 kind:function(arm,size=0xa4) addr:0x02073348 +_ZN18UnkStruct_027e09a819func_ov000_02071c90EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x02073348 _ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,size=0xb0) addr:0x020733ec func_ov000_0207349c kind:function(arm,size=0xa0) addr:0x0207349c func_ov000_0207353c kind:function(arm,size=0x14) addr:0x0207353c @@ -1456,7 +1456,7 @@ _ZN18UnkStruct_027e09c019func_ov000_0207da40Ev kind:function(arm,size=0x20c) add func_ov000_0207f304 kind:function(arm,size=0x18) addr:0x0207f304 func_ov000_0207f31c kind:function(arm,size=0x24) addr:0x0207f31c func_ov000_0207f340 kind:function(arm,size=0x210) addr:0x0207f340 -func_ov000_0207f550 kind:function(arm,size=0xc0) addr:0x0207f550 +_ZN18UnkStruct_027e09c019func_ov000_0207de98E8ActorRefP24UnkStruct_ov000_0207de98P8Actor_38 kind:function(arm,size=0xc0) addr:0x0207f550 func_ov000_0207f610 kind:function(arm,size=0x30) addr:0x0207f610 _ZN5Actor19func_ov000_0207df88EP8Cylinderi kind:function(arm,size=0xd8) addr:0x0207f640 func_ov000_0207f718 kind:function(arm,size=0x68) addr:0x0207f718 @@ -1496,7 +1496,7 @@ func_ov000_0208043c kind:function(arm,size=0x8) addr:0x0208043c func_ov000_02080444 kind:function(arm,size=0x20) addr:0x02080444 _ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x02080464 func_ov000_02080484 kind:function(arm,size=0x1c) addr:0x02080484 -_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x020804a0 +_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x020804a0 _ZN19func_ov000_020804d0D0Ev kind:function(arm,size=0x38) addr:0x020804d0 _ZN19func_ov000_02080508D2Ev kind:function(arm,size=0x30) addr:0x02080508 func_ov000_02080538 kind:function(arm,size=0x4) addr:0x02080538 @@ -1573,7 +1573,7 @@ func_ov000_02081f8c kind:function(arm,size=0x20) addr:0x02081f8c _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvP8Vec2bCpph kind:function(arm,size=0x5c) addr:0x02081fac func_ov000_02082008 kind:function(arm,size=0x48) addr:0x02082008 func_ov000_02082050 kind:function(arm,size=0x40) addr:0x02082050 -func_ov000_02082090 kind:function(arm,size=0x6c) addr:0x02082090 +_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020809d8Eii kind:function(arm,size=0x6c) addr:0x02082090 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x020820fc _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02082114 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02082130 @@ -2378,23 +2378,23 @@ func_ov000_0209b290 kind:function(thumb,size=0x28) addr:0x0209b290 func_ov000_0209b2b8 kind:function(thumb,size=0x2) addr:0x0209b2b8 _ZN19func_ov000_0209b2bcD0Ev kind:function(thumb,size=0xc) addr:0x0209b2bc func_ov000_0209b2c8 kind:function(thumb,size=0x2) addr:0x0209b2c8 -func_ov000_0209b2cc kind:function(arm,size=0x38) addr:0x0209b2cc -func_ov000_0209b304 kind:function(arm,size=0x68) addr:0x0209b304 -func_ov000_0209b36c kind:function(arm,size=0x110) addr:0x0209b36c -func_ov000_0209b47c kind:function(arm,size=0x84) addr:0x0209b47c +_ZN24UnkStruct_ov000_020b31a88vfunc_08Ev kind:function(arm,size=0x38) addr:0x0209b2cc +_ZN24UnkStruct_ov000_020b31a88vfunc_0CEv kind:function(arm,size=0x68) addr:0x0209b304 +_ZN24UnkStruct_ov000_020b31a88vfunc_20Ev kind:function(arm,size=0x110) addr:0x0209b36c +_ZN24UnkStruct_ov000_020b31a88vfunc_1CE25ActorUnkZLSL_AnimationTagiii kind:function(arm,size=0x84) addr:0x0209b47c func_ov000_0209b500 kind:function(arm,size=0xa8) addr:0x0209b500 -func_ov000_0209b5a8 kind:function(arm,size=0x7c) addr:0x0209b5a8 +_ZN17ActorUnkZLSL_270019func_ov000_02099ddcE25ActorUnkZLSL_AnimationTagi kind:function(arm,size=0x7c) addr:0x0209b5a8 func_ov000_0209b624 kind:function(arm,size=0x98) addr:0x0209b624 func_ov000_0209b6bc kind:function(arm,size=0x74) addr:0x0209b6bc func_ov000_0209b730 kind:function(arm,size=0x94) addr:0x0209b730 func_ov000_0209b7c4 kind:function(arm,size=0x74) addr:0x0209b7c4 -func_ov000_0209b838 kind:function(arm,size=0x78) addr:0x0209b838 -func_ov000_0209b8b0 kind:function(arm,size=0x10) addr:0x0209b8b0 -func_ov000_0209b8c0 kind:function(arm,size=0x18) addr:0x0209b8c0 -func_ov000_0209b8d8 kind:function(arm,size=0x18) addr:0x0209b8d8 -func_ov000_0209b8f0 kind:function(arm,size=0x18) addr:0x0209b8f0 -func_ov000_0209b908 kind:function(arm,size=0x8) addr:0x0209b908 -func_ov000_0209b910 kind:function(arm,size=0x8) addr:0x0209b910 +_ZN24UnkStruct_ov000_020b31a88vfunc_24Ev kind:function(arm,size=0x78) addr:0x0209b838 +_ZN24UnkStruct_ov000_020b31a88vfunc_18Ev kind:function(arm,size=0x10) addr:0x0209b8b0 +_ZN24UnkStruct_ov000_020b31a88vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209b8c0 +_ZN24UnkStruct_ov000_020b31a88vfunc_2CEv kind:function(arm,size=0x18) addr:0x0209b8d8 +_ZN24UnkStruct_ov000_020b31a88vfunc_34Ev kind:function(arm,size=0x18) addr:0x0209b8f0 +_ZN24UnkStruct_ov000_020b31a88vfunc_10Ev kind:function(arm,size=0x8) addr:0x0209b908 +_ZN24UnkStruct_ov000_020b31a88vfunc_14Ev kind:function(arm,size=0x8) addr:0x0209b910 func_ov000_0209b918 kind:function(arm,size=0x24) addr:0x0209b918 func_ov000_0209b93c kind:function(arm,size=0x10) addr:0x0209b93c func_ov000_0209b94c kind:function(arm,size=0x8) addr:0x0209b94c @@ -2421,7 +2421,7 @@ func_ov000_0209bf04 kind:function(arm,size=0x2c) addr:0x0209bf04 func_ov000_0209bf30 kind:function(thumb,size=0x1c) addr:0x0209bf30 func_ov000_0209bf4c kind:function(thumb,size=0x1c) addr:0x0209bf4c func_ov000_0209bf68 kind:function(arm,size=0x1c) addr:0x0209bf68 -func_ov000_0209bf84 kind:function(arm,size=0xc) addr:0x0209bf84 +_ZN11ModelRender19func_ov000_0209a7b8EPvPFvvE kind:function(arm,size=0xc) addr:0x0209bf84 func_ov000_0209bf90 kind:function(arm,size=0x28) addr:0x0209bf90 func_ov000_0209bfb8 kind:function(arm,size=0x28) addr:0x0209bfb8 func_ov000_0209bfe0 kind:function(arm,size=0x44) addr:0x0209bfe0 @@ -3023,7 +3023,7 @@ _ZN14Actor_Derived119func_ov000_020a8ae0Ei kind:function(arm,size=0x14) addr:0x0 func_ov000_020aa2f4 kind:function(arm,size=0x54) addr:0x020aa2f4 func_ov000_020aa348 kind:function(arm,size=0x34) addr:0x020aa348 func_ov000_020aa37c kind:function(arm,size=0x34) addr:0x020aa37c -_ZN14Actor_Derived1C1EP11ModelRenderi kind:function(arm,size=0x110) addr:0x020aa3b0 +_ZN14Actor_Derived1C1EP11ModelRenderP20Actor_Derived1_94_0C kind:function(arm,size=0x110) addr:0x020aa3b0 _ZN14Actor_Derived1D1Ev kind:function(arm,size=0x20) addr:0x020aa4c0 _ZN14Actor_Derived1D0Ev kind:function(arm,size=0x28) addr:0x020aa4e0 _ZN14Actor_Derived1D2Ev kind:function(arm,size=0x20) addr:0x020aa508 @@ -3042,24 +3042,24 @@ _ZN14Actor_Derived18vfunc_90Ev kind:function(arm,size=0x8) addr:0x020aa764 _ZN14Actor_Derived18vfunc_94Ev kind:function(arm,size=0xc) addr:0x020aa76c _ZN14Actor_Derived18vfunc_60Ev kind:function(arm,size=0x68) addr:0x020aa778 _ZN14Actor_Derived18vfunc_64Ev kind:function(arm,size=0x14) addr:0x020aa7e0 -_ZN14Actor_Derived119func_ov000_020a8ff4Ev kind:function(arm,size=0x158) addr:0x020aa7f4 +_ZN14Actor_Derived119func_ov000_020a8ff4EP7VecFx32 kind:function(arm,size=0x158) addr:0x020aa7f4 _ZN14Actor_Derived18vfunc_6CEv kind:function(arm,size=0x4) addr:0x020aa94c _ZN14Actor_Derived18vfunc_68Ev kind:function(arm,size=0x50) addr:0x020aa950 -_ZN14Actor_Derived18vfunc_7CEv kind:function(arm,size=0x8) addr:0x020aa9a0 -_ZN14Actor_Derived18vfunc_80Ev kind:function(arm,size=0x8) addr:0x020aa9a8 +_ZN14Actor_Derived18vfunc_7CEi kind:function(arm,size=0x8) addr:0x020aa9a0 +_ZN14Actor_Derived18vfunc_80Eii kind:function(arm,size=0x8) addr:0x020aa9a8 _ZN14Actor_Derived18vfunc_84Ev kind:function(arm,size=0x8) addr:0x020aa9b0 _ZN14Actor_Derived119func_ov000_020a91b8EP7VecFx32i kind:function(arm,size=0x48) addr:0x020aa9b8 _ZN14Actor_Derived119func_ov000_020a9200Ev kind:function(arm,size=0x1c) addr:0x020aaa00 _ZN14Actor_Derived18vfunc_70Ev kind:function(arm,size=0x24) addr:0x020aaa1c _ZN14Actor_Derived18vfunc_74Ev kind:function(arm,size=0x4) addr:0x020aaa40 _ZN14Actor_Derived18vfunc_78Ev kind:function(arm,size=0x4) addr:0x020aaa44 -_ZN14Actor_Derived119func_ov000_020a9248Ev kind:function(arm,size=0x88) addr:0x020aaa48 +_ZN14Actor_Derived119func_ov000_020a9248Ei kind:function(arm,size=0x88) addr:0x020aaa48 _ZN14Actor_Derived18vfunc_5CEv kind:function(arm,size=0x178) addr:0x020aaad0 -_ZN14Actor_Derived18vfunc_98Ei kind:function(arm,size=0x68) addr:0x020aac48 +_ZN14Actor_Derived18vfunc_98Ej kind:function(arm,size=0x68) addr:0x020aac48 _ZN14Actor_Derived119func_ov000_020a94b0Ev kind:function(arm,size=0xe8) addr:0x020aacb0 _ZN14Actor_Derived18vfunc_9CEv kind:function(arm,size=0x2c) addr:0x020aad98 _ZN14Actor_Derived18vfunc_A0Ev kind:function(arm,size=0x10) addr:0x020aadc4 -_ZN14Actor_Derived18vfunc_AcEv kind:function(arm,size=0x4) addr:0x020aadd4 +_ZN14Actor_Derived18vfunc_ACEv kind:function(arm,size=0x4) addr:0x020aadd4 _ZN14Actor_Derived119func_ov000_020a95d8Ev kind:function(arm,size=0xc) addr:0x020aadd8 _ZN14Actor_Derived18vfunc_A4Ev kind:function(arm,size=0x218) addr:0x020aade4 _ZN14Actor_Derived18vfunc_A8Ev kind:function(arm,size=0x8) addr:0x020aaffc diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 56bfc6fa..6452d215 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -58,13 +58,14 @@ src/031_Land/Actor/ActorRupee.cpp: .text start:0x020ea6a4 end:0x020eba18 .init start:0x02112fe0 end:0x02113078 .ctor start:0x02114544 end:0x02114548 - .data start:0x02115228 end:0x021152c0 + .data start:0x02115228 end:0x02115390 .bss start:0x02118488 end:0x021184cc src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp: .text start:0x020eba18 end:0x020f02b8 .init start:0x02113078 end:0x0211310c .ctor start:0x02114548 end:0x0211454c + .data start:0x02115390 end:0x02115b04 .bss start:0x021184cc end:0x021185f8 src/031_Land/Actor/ActorHeart.cpp: diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index cb8302fc..f5dd6e59 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -1898,7 +1898,7 @@ from:0x020eba6a kind:thumb_call_arm to:0x02098e24 module:overlay(0) from:0x020eba98 kind:load to:0x021153c0 add:0x8 module:overlay(31) from:0x020ebaa8 kind:thumb_call_arm to:0x01fff458 module:itcm from:0x020ebad4 kind:thumb_call_arm to:0x020aa348 module:overlay(0) -from:0x020ebae0 kind:load to:0x02115410 module:overlay(31) +from:0x020ebae0 kind:load to:0x02115408 module:overlay(31) add:0x8 from:0x020ebae8 kind:load to:0x01ffc57c module:itcm from:0x020ebb00 kind:thumb_call_arm to:0x02098dac module:overlay(0) from:0x020ebb18 kind:thumb_call_arm to:0x02098ba8 module:overlay(0) @@ -1924,10 +1924,10 @@ from:0x020ebe62 kind:thumb_call_arm to:0x020f0544 module:overlay(31) from:0x020ebe6c kind:load to:0x027e0ce0 module:dtcm from:0x020ebe70 kind:load to:0x02118520 module:overlay(31) from:0x020ebe78 kind:load to:0x021156e4 add:0x8 module:overlay(31) -from:0x020ebe7c kind:load to:0x021154cc module:overlay(31) +from:0x020ebe7c kind:load to:0x021154c4 module:overlay(31) add:0x8 from:0x020ebe80 kind:load to:0x02115620 add:0x8 module:overlay(31) -from:0x020ebe88 kind:load to:0x02115484 module:overlay(31) -from:0x020ebe90 kind:load to:0x0211543c module:overlay(31) +from:0x020ebe88 kind:load to:0x0211547c module:overlay(31) add:0x8 +from:0x020ebe90 kind:load to:0x02115434 module:overlay(31) add:0x8 from:0x020ebe98 kind:load to:0x020e31c8 module:overlay(31) from:0x020ebe9c kind:load to:0x020e4d98 module:overlay(31) from:0x020ebea4 kind:load to:0x027e0d3c module:dtcm @@ -3852,7 +3852,7 @@ from:0x020fd030 kind:arm_call_thumb to:0x0209b1f4 module:overlay(0) from:0x020fd048 kind:arm_call_thumb to:0x02058d0c module:overlay(0) from:0x020fd060 kind:load to:0x02116c74 add:0x8 module:overlay(31) from:0x020fd064 kind:load to:0x02118de4 module:overlay(31) -from:0x020fd068 kind:load to:0x0211543c module:overlay(31) +from:0x020fd068 kind:load to:0x02115434 module:overlay(31) add:0x8 from:0x020fd0e8 kind:arm_call to:0x0209b7c4 module:overlay(0) from:0x020fd120 kind:load to:0x02116c44 module:overlay(31) from:0x020fd19c kind:arm_call to:0x01ffb428 module:itcm diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 96ae261c..6da4685f 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -612,122 +612,122 @@ _ZN19ActorProfileUnkZSRSC1Ev kind:function(thumb,size=0x1c) addr:0x020eba24 _ZN19ActorProfileUnkZLSL10GetProfileEv kind:function(thumb,size=0x8) addr:0x020eba40 _ZN19ActorProfileUnkZLSL6CreateEv kind:function(thumb,size=0x1c) addr:0x020eba48 _ZN19ActorProfileUnkZLSLC1Ev kind:function(thumb,size=0x3c) addr:0x020eba64 -func_ov031_020ebaa0 kind:function(thumb,size=0x30) addr:0x020ebaa0 +_ZN24UnkStruct_ov031_0211361c19func_ov031_020ea0b4EP5Actor kind:function(thumb,size=0x30) addr:0x020ebaa0 func_ov031_020ebad0 kind:function(thumb,size=0x14) addr:0x020ebad0 -func_ov031_020ebae4 kind:function(thumb,size=0x8) addr:0x020ebae4 +_ZN26ModelRender_ov031_021136708vfunc_0CEv kind:function(thumb,size=0x8) addr:0x020ebae4 func_ov031_020ea100 kind:function(thumb,size=0x40) addr:0x020ebaec -func_ov031_020ebb2c kind:function(thumb,size=0x3b4) addr:0x020ebb2c +_ZN12ActorUnkZLSLC1Ev kind:function(thumb,size=0x3b4) addr:0x020ebb2c func_ov031_020ebee0 kind:function(thumb,size=0xc) addr:0x020ebee0 -func_ov031_020ebeec kind:function(thumb,size=0xc) addr:0x020ebeec -func_ov031_020ebef8 kind:function(thumb,size=0xc) addr:0x020ebef8 -func_ov031_020ebf04 kind:function(thumb,size=0xc) addr:0x020ebf04 -func_ov031_020ebf10 kind:function(thumb,size=0xa4) addr:0x020ebf10 -func_ov031_020ebfb4 kind:function(thumb,size=0xac) addr:0x020ebfb4 -func_ov031_020ec060 kind:function(arm,size=0x24) addr:0x020ec060 -func_ov031_020ec084 kind:function(arm,size=0x10c) addr:0x020ec084 -func_ov031_020ec190 kind:function(arm,size=0x4) addr:0x020ec190 -func_ov031_020ec194 kind:function(arm,size=0xbc) addr:0x020ec194 -func_ov031_020ec250 kind:function(arm,size=0x4) addr:0x020ec250 -func_ov031_020ec254 kind:function(arm,size=0x4) addr:0x020ec254 -func_ov031_020ec258 kind:function(arm,size=0x4) addr:0x020ec258 -func_ov031_020ec25c kind:function(arm,size=0x50) addr:0x020ec25c -func_ov031_020ec2ac kind:function(arm,size=0x4) addr:0x020ec2ac -func_ov031_020ec2b0 kind:function(arm,size=0x4) addr:0x020ec2b0 -func_ov031_020ec2b4 kind:function(arm,size=0x4) addr:0x020ec2b4 -func_ov031_020ec2b8 kind:function(arm,size=0x19c) addr:0x020ec2b8 -func_ov031_020ec454 kind:function(arm,size=0x20) addr:0x020ec454 -func_ov031_020ec474 kind:function(arm,size=0x4) addr:0x020ec474 -func_ov031_020ec478 kind:function(arm,size=0x80) addr:0x020ec478 -func_ov031_020ec4f8 kind:function(arm,size=0x34) addr:0x020ec4f8 -func_ov031_020ec52c kind:function(arm,size=0x124) addr:0x020ec52c -func_ov031_020ec650 kind:function(arm,size=0x7c) addr:0x020ec650 -func_ov031_020ec6cc kind:function(arm,size=0x2c) addr:0x020ec6cc -func_ov031_020ec6f8 kind:function(arm,size=0x6c) addr:0x020ec6f8 -func_ov031_020ec764 kind:function(arm,size=0x4) addr:0x020ec764 -func_ov031_020ec768 kind:function(arm,size=0x234) addr:0x020ec768 -func_ov031_020ec99c kind:function(arm,size=0x30) addr:0x020ec99c -func_ov031_020ec9cc kind:function(arm,size=0x178) addr:0x020ec9cc -func_ov031_020ecb44 kind:function(arm,size=0x30) addr:0x020ecb44 -func_ov031_020ecb74 kind:function(arm,size=0x90) addr:0x020ecb74 -func_ov031_020ecc04 kind:function(arm,size=0x98) addr:0x020ecc04 -func_ov031_020ecc9c kind:function(arm,size=0x348) addr:0x020ecc9c -func_ov031_020ecfe4 kind:function(arm,size=0x24) addr:0x020ecfe4 -func_ov031_020ed008 kind:function(arm,size=0x43c) addr:0x020ed008 -func_ov031_020ed444 kind:function(arm,size=0x34) addr:0x020ed444 -func_ov031_020ed478 kind:function(arm,size=0x54c) addr:0x020ed478 -func_ov031_020ed9c4 kind:function(arm,size=0x50) addr:0x020ed9c4 -func_ov031_020eda14 kind:function(arm,size=0xc) addr:0x020eda14 -func_ov031_020eda20 kind:function(arm,size=0x24) addr:0x020eda20 -func_ov031_020eda44 kind:function(arm,size=0x4) addr:0x020eda44 -func_ov031_020eda48 kind:function(arm,size=0x4c) addr:0x020eda48 -func_ov031_020eda94 kind:function(arm,size=0x2c) addr:0x020eda94 -func_ov031_020edac0 kind:function(arm,size=0x58) addr:0x020edac0 -func_ov031_020edb18 kind:function(arm,size=0x38) addr:0x020edb18 -func_ov031_020edb50 kind:function(arm,size=0xc) addr:0x020edb50 -func_ov031_020edb5c kind:function(arm,size=0x64) addr:0x020edb5c -func_ov031_020edbc0 kind:function(arm,size=0xfc) addr:0x020edbc0 -func_ov031_020edcbc kind:function(arm,size=0x100) addr:0x020edcbc -func_ov031_020eddbc kind:function(arm,size=0xcc) addr:0x020eddbc -func_ov031_020ede88 kind:function(arm,size=0xb0) addr:0x020ede88 -func_ov031_020edf38 kind:function(arm,size=0xa4) addr:0x020edf38 -func_ov031_020edfdc kind:function(arm,size=0xe8) addr:0x020edfdc -func_ov031_020ee0c4 kind:function(arm,size=0x8c) addr:0x020ee0c4 -func_ov031_020ee150 kind:function(arm,size=0x40) addr:0x020ee150 -func_ov031_020ee190 kind:function(arm,size=0x40) addr:0x020ee190 -func_ov031_020ee1d0 kind:function(arm,size=0x7c) addr:0x020ee1d0 -func_ov031_020ee24c kind:function(arm,size=0x5c) addr:0x020ee24c -func_ov031_020ee2a8 kind:function(arm,size=0x8) addr:0x020ee2a8 -func_ov031_020ee2b0 kind:function(arm,size=0xac) addr:0x020ee2b0 -func_ov031_020ee35c kind:function(arm,size=0x270) addr:0x020ee35c -func_ov031_020ee5cc kind:function(arm,size=0x88) addr:0x020ee5cc -func_ov031_020ee654 kind:function(arm,size=0x240) addr:0x020ee654 -func_ov031_020ee894 kind:function(arm,size=0x208) addr:0x020ee894 -func_ov031_020eea9c kind:function(arm,size=0x310) addr:0x020eea9c -func_ov031_020eedac kind:function(arm,size=0xbc) addr:0x020eedac -func_ov031_020eee68 kind:function(arm,size=0x68) addr:0x020eee68 -func_ov031_020eeed0 kind:function(arm,size=0x78) addr:0x020eeed0 -func_ov031_020eef48 kind:function(arm,size=0x170) addr:0x020eef48 -func_ov031_020ef0b8 kind:function(arm,size=0x1e0) addr:0x020ef0b8 -func_ov031_020ef298 kind:function(arm,size=0x3d4) addr:0x020ef298 -func_ov031_020ef66c kind:function(arm,size=0x94) addr:0x020ef66c -func_ov031_020ef700 kind:function(arm,size=0x40) addr:0x020ef700 -func_ov031_020ef740 kind:function(arm,size=0xdc) addr:0x020ef740 -func_ov031_020ef81c kind:function(arm,size=0x168) addr:0x020ef81c -func_ov031_020ef984 kind:function(arm,size=0x44) addr:0x020ef984 -func_ov031_020ef9c8 kind:function(arm,size=0x24) addr:0x020ef9c8 -func_ov031_020ef9ec kind:function(arm,size=0x1f4) addr:0x020ef9ec -func_ov031_020efbe0 kind:function(arm,size=0xd4) addr:0x020efbe0 -func_ov031_020efcb4 kind:function(arm,size=0x120) addr:0x020efcb4 -func_ov031_020efdd4 kind:function(arm,size=0x34) addr:0x020efdd4 -_ZN20Actor_ov031_02113fd44DropE15ActorGrabParamsPK7VecFx32 kind:function(arm,size=0xa8) addr:0x020efe08 -func_ov031_020efeb0 kind:function(arm,size=0x190) addr:0x020efeb0 -func_ov031_020f0040 kind:function(arm,size=0x7c) addr:0x020f0040 -func_ov031_020f00bc kind:function(arm,size=0x54) addr:0x020f00bc -func_ov031_020f0110 kind:function(arm,size=0x3c) addr:0x020f0110 -func_ov031_020f014c kind:function(arm,size=0x24) addr:0x020f014c -func_ov031_020f0170 kind:function(arm,size=0x10) addr:0x020f0170 -func_ov031_020f0180 kind:function(arm,size=0x8) addr:0x020f0180 -_ZN19func_ov031_020f0188D0Ev kind:function(arm,size=0x1c) addr:0x020f0188 -_ZN19func_ov031_020f01a4D0Ev kind:function(arm,size=0x1c) addr:0x020f01a4 -_ZN19func_ov031_020f01c0D0Ev kind:function(arm,size=0x1c) addr:0x020f01c0 -func_ov031_020f01dc kind:function(arm,size=0x24) addr:0x020f01dc -func_ov031_020f0200 kind:function(arm,size=0x2c) addr:0x020f0200 -_ZN19func_ov031_020f022cD0Ev kind:function(arm,size=0x1c) addr:0x020f022c -_ZN19func_ov031_020f0248D0Ev kind:function(arm,size=0x28) addr:0x020f0248 -_ZN19func_ov031_020f0270D2Ev kind:function(arm,size=0x20) addr:0x020f0270 -_ZN19ActorProfileUnkZSRSD1Ev kind:function(arm,size=0x14) addr:0x020f0290 +_ZN26ModelRender_ov031_02113670D1Ev kind:function(thumb,size=0xc) addr:0x020ebeec +_ZN17ActorUnkZLSL_2700D1Ev kind:function(thumb,size=0xc) addr:0x020ebef8 +_ZN17ActorUnkZLSL_27CCD1Ev kind:function(thumb,size=0xc) addr:0x020ebf04 +_ZN12ActorUnkZLSLD1Ev kind:function(thumb,size=0xa4) addr:0x020ebf10 +_ZN12ActorUnkZLSLD0Ev kind:function(thumb,size=0xac) addr:0x020ebfb4 +_ZN12ActorUnkZLSL19func_ov031_020ea674Ev kind:function(arm,size=0x24) addr:0x020ec060 +_ZN12ActorUnkZLSL8vfunc_18Ei kind:function(arm,size=0x10c) addr:0x020ec084 +_ZN12ActorUnkZLSL8vfunc_ACEv kind:function(arm,size=0x4) addr:0x020ec190 +_ZN12ActorUnkZLSL19func_ov031_020ea7a8Ev kind:function(arm,size=0xbc) addr:0x020ec194 +_ZN12ActorUnkZLSL19func_ov031_020ea864Ev kind:function(arm,size=0x4) addr:0x020ec250 +_ZN12ActorUnkZLSL19func_ov031_020ea868Ev kind:function(arm,size=0x4) addr:0x020ec254 +_ZN12ActorUnkZLSL19func_ov031_020ea86cEv kind:function(arm,size=0x4) addr:0x020ec258 +_ZN12ActorUnkZLSL8vfunc_58Es kind:function(arm,size=0x50) addr:0x020ec25c +_ZN12ActorUnkZLSL19func_ov031_020ea8c0Ev kind:function(arm,size=0x4) addr:0x020ec2ac +_ZN12ActorUnkZLSL19func_ov031_020ea8c4Ev kind:function(arm,size=0x4) addr:0x020ec2b0 +_ZN12ActorUnkZLSL19func_ov031_020ea8c8Ev kind:function(arm,size=0x4) addr:0x020ec2b4 +_ZN12ActorUnkZLSL8vfunc_20Ev kind:function(arm,size=0x19c) addr:0x020ec2b8 +_ZN12ActorUnkZLSL19func_ov031_020eaa68Ev kind:function(arm,size=0x20) addr:0x020ec454 +_ZN12ActorUnkZLSL19func_ov031_020eaa88Ev kind:function(arm,size=0x4) addr:0x020ec474 +_ZN12ActorUnkZLSL19func_ov031_020eaa8cEv kind:function(arm,size=0x80) addr:0x020ec478 +_ZN12ActorUnkZLSL19func_ov031_020eab0cEv kind:function(arm,size=0x34) addr:0x020ec4f8 +_ZN12ActorUnkZLSL19func_ov031_020eab40Ei kind:function(arm,size=0x124) addr:0x020ec52c +_ZN12ActorUnkZLSL19func_ov031_020eac64Ev kind:function(arm,size=0x7c) addr:0x020ec650 +_ZN12ActorUnkZLSL19func_ov031_020eace0Ev kind:function(arm,size=0x2c) addr:0x020ec6cc +_ZN12ActorUnkZLSL19func_ov031_020ead0cEv kind:function(arm,size=0x6c) addr:0x020ec6f8 +_ZN12ActorUnkZLSL19func_ov031_020ead78Ev kind:function(arm,size=0x4) addr:0x020ec764 +_ZN12ActorUnkZLSL19func_ov031_020ead7cEv kind:function(arm,size=0x234) addr:0x020ec768 +_ZN12ActorUnkZLSL19func_ov031_020eafb0Ev kind:function(arm,size=0x30) addr:0x020ec99c +_ZN12ActorUnkZLSL19func_ov031_020eafe0Ev kind:function(arm,size=0x178) addr:0x020ec9cc +_ZN12ActorUnkZLSL19func_ov031_020eb158Ev kind:function(arm,size=0x30) addr:0x020ecb44 +_ZN12ActorUnkZLSL19func_ov031_020eb188Ev kind:function(arm,size=0x90) addr:0x020ecb74 +_ZN12ActorUnkZLSL19func_ov031_020eb218Ev kind:function(arm,size=0x98) addr:0x020ecc04 +_ZN12ActorUnkZLSL19func_ov031_020eb2b0EP7VecFx32i kind:function(arm,size=0x348) addr:0x020ecc9c +_ZN12ActorUnkZLSL19func_ov031_020eb5f8Ev kind:function(arm,size=0x24) addr:0x020ecfe4 +_ZN12ActorUnkZLSL19func_ov031_020eb61cEv kind:function(arm,size=0x43c) addr:0x020ed008 +_ZN12ActorUnkZLSL19func_ov031_020eba58Ev kind:function(arm,size=0x34) addr:0x020ed444 +_ZN12ActorUnkZLSL19func_ov031_020eba8cEv kind:function(arm,size=0x54c) addr:0x020ed478 +_ZN12ActorUnkZLSL19func_ov031_020ebfd8Ev kind:function(arm,size=0x50) addr:0x020ed9c4 +_ZN12ActorUnkZLSL19func_ov031_020ec028Ev kind:function(arm,size=0xc) addr:0x020eda14 +_ZN12ActorUnkZLSL19func_ov031_020ec034Ev kind:function(arm,size=0x24) addr:0x020eda20 +_ZN12ActorUnkZLSL19func_ov031_020ec058Ev kind:function(arm,size=0x4) addr:0x020eda44 +_ZN12ActorUnkZLSL19func_ov031_020ec05cEv kind:function(arm,size=0x4c) addr:0x020eda48 +_ZN12ActorUnkZLSL19func_ov031_020ec0a8Ev kind:function(arm,size=0x2c) addr:0x020eda94 +_ZN12ActorUnkZLSL19func_ov031_020ec0d4Ev kind:function(arm,size=0x58) addr:0x020edac0 +_ZN12ActorUnkZLSL19func_ov031_020ec12cEv kind:function(arm,size=0x38) addr:0x020edb18 +_ZN12ActorUnkZLSL19func_ov031_020ec164Ev kind:function(arm,size=0xc) addr:0x020edb50 +_ZN12ActorUnkZLSL19func_ov031_020ec170Ev kind:function(arm,size=0x64) addr:0x020edb5c +_ZN12ActorUnkZLSL8vfunc_2CEi kind:function(arm,size=0xfc) addr:0x020edbc0 +_ZN12ActorUnkZLSL8vfunc_7CEi kind:function(arm,size=0x100) addr:0x020edcbc +_ZN12ActorUnkZLSL19func_ov031_020ec3d0Ev kind:function(arm,size=0xcc) addr:0x020eddbc +_ZN12ActorUnkZLSL19func_ov031_020ec49cEv kind:function(arm,size=0xb0) addr:0x020ede88 +_ZN12ActorUnkZLSL19func_ov031_020ec54cEv kind:function(arm,size=0xa4) addr:0x020edf38 +_ZN12ActorUnkZLSL8vfunc_B0Ev kind:function(arm,size=0xe8) addr:0x020edfdc +_ZN12ActorUnkZLSL19func_ov031_020ec6d8Eb kind:function(arm,size=0x8c) addr:0x020ee0c4 +_ZN12ActorUnkZLSL8vfunc_6CEv kind:function(arm,size=0x40) addr:0x020ee150 +_ZN12ActorUnkZLSL8vfunc_70Ev kind:function(arm,size=0x40) addr:0x020ee190 +_ZN12ActorUnkZLSL8vfunc_68Ev kind:function(arm,size=0x7c) addr:0x020ee1d0 +_ZN12ActorUnkZLSL8vfunc_88Ev kind:function(arm,size=0x5c) addr:0x020ee24c +_ZN12ActorUnkZLSL8vfunc_8CEv kind:function(arm,size=0x8) addr:0x020ee2a8 +_ZN12ActorUnkZLSL19func_ov031_020ec8c4Ev kind:function(arm,size=0xac) addr:0x020ee2b0 +_ZN12ActorUnkZLSL8vfunc_98Ej kind:function(arm,size=0x270) addr:0x020ee35c +_ZN12ActorUnkZLSL19func_ov031_020ecbe0Ev kind:function(arm,size=0x88) addr:0x020ee5cc +_ZN12ActorUnkZLSL19func_ov031_020ecc68Ei kind:function(arm,size=0x240) addr:0x020ee654 +_ZN12ActorUnkZLSL19func_ov031_020ecea8E14UnkAngleStructiii kind:function(arm,size=0x208) addr:0x020ee894 +_ZN12ActorUnkZLSL19func_ov031_020ed0b0Ev kind:function(arm,size=0x310) addr:0x020eea9c +_ZN12ActorUnkZLSL19func_ov031_020ed3c0Ev kind:function(arm,size=0xbc) addr:0x020eedac +_ZN24UnkStruct_ov031_020ecc6819func_ov031_020ed47cEP12ActorUnkZLSLi kind:function(arm,size=0x68) addr:0x020eee68 +_ZN12ActorUnkZLSL19func_ov031_020ed4e4Eii kind:function(arm,size=0x78) addr:0x020eeed0 +_ZN12ActorUnkZLSL19func_ov031_020ed55cEv kind:function(arm,size=0x170) addr:0x020eef48 +_ZN12ActorUnkZLSL19func_ov031_020ed6ccEi kind:function(arm,size=0x1e0) addr:0x020ef0b8 +_ZN12ActorUnkZLSL19func_ov031_020ed8acEi kind:function(arm,size=0x3d4) addr:0x020ef298 +_ZN12ActorUnkZLSL19func_ov031_020edc80Ev kind:function(arm,size=0x94) addr:0x020ef66c +_ZN12ActorUnkZLSL19func_ov031_020edd14EP7VecFx32 kind:function(arm,size=0x40) addr:0x020ef700 +_ZN12ActorUnkZLSL19func_ov031_020edd54Ev kind:function(arm,size=0xdc) addr:0x020ef740 +_ZN12ActorUnkZLSL19func_ov031_020ede30Ev kind:function(arm,size=0x168) addr:0x020ef81c +_ZN12ActorUnkZLSL19func_ov031_020edf98Ev kind:function(arm,size=0x44) addr:0x020ef984 +_ZNK12ActorUnkZLSL12GetOffsetPosEP7VecFx32 kind:function(arm,size=0x24) addr:0x020ef9c8 +_ZN12ActorUnkZLSL8vfunc_A4Ev kind:function(arm,size=0x1f4) addr:0x020ef9ec +_ZN12ActorUnkZLSL19func_ov031_020ee1f4Ev kind:function(arm,size=0xd4) addr:0x020efbe0 +_ZN12ActorUnkZLSL19func_ov031_020ee2c8Ev kind:function(arm,size=0x120) addr:0x020efcb4 +_ZN12ActorUnkZLSL8vfunc_B4Ev kind:function(arm,size=0x34) addr:0x020efdd4 +_ZN12ActorUnkZLSL19func_ov031_020ee41cEv kind:function(arm,size=0xa8) addr:0x020efe08 +_ZN12ActorUnkZLSL19func_ov031_020ee4c4E14UnkAngleStruct kind:function(arm,size=0x190) addr:0x020efeb0 +_ZN12ActorUnkZLSL19func_ov031_020ee654Ev kind:function(arm,size=0x7c) addr:0x020f0040 +_ZN12ActorUnkZLSL8vfunc_80Eii kind:function(arm,size=0x54) addr:0x020f00bc +_ZN12ActorUnkZLSL19func_ov031_020ee724Ev kind:function(arm,size=0x3c) addr:0x020f0110 +_ZN17ActorUnkZLSL_27CC8vfunc_3CEv kind:function(arm,size=0x24) addr:0x020f014c +_ZN17ActorUnkZLSL_27CC8vfunc_38Eii kind:function(arm,size=0x10) addr:0x020f0170 +_ZN17ActorUnkZLSL_27CC8vfunc_30Ev kind:function(arm,size=0x8) addr:0x020f0180 +_ZN26ModelRender_ov031_02113670D0Ev kind:function(arm,size=0x1c) addr:0x020f0188 +_ZN17ActorUnkZLSL_2700D0Ev kind:function(arm,size=0x1c) addr:0x020f01a4 +_ZN17ActorUnkZLSL_27CCD0Ev kind:function(arm,size=0x1c) addr:0x020f01c0 +_ZN24UnkStruct_ov031_0211372c8vfunc_3CEv kind:function(arm,size=0x24) addr:0x020f01dc +_ZN24UnkStruct_ov031_0211372c8vfunc_38Eii kind:function(arm,size=0x2c) addr:0x020f0200 +_ZN19func_ov031_020f0188D0Ev kind:function(arm,size=0x1c) addr:0x020f022c +_ZN12ActorUnkZSRSD0Ev kind:function(arm,size=0x28) addr:0x020f0248 +_ZN12ActorUnkZSRSD1Ev kind:function(arm,size=0x20) addr:0x020f0270 +_ZN19ActorProfileUnkZLSLD2Ev kind:function(arm,size=0x14) addr:0x020f0290 _ZN19ActorProfileUnkZLSLD1Ev kind:function(arm,size=0x14) addr:0x020f02a4 func_ov031_020f02b8 kind:function(arm,size=0x28) addr:0x020f02b8 func_ov031_020f02e0 kind:function(thumb,size=0x48) addr:0x020f02e0 func_ov031_020f0328 kind:function(thumb,size=0xc) addr:0x020f0328 func_ov031_020f0334 kind:function(thumb,size=0x12) addr:0x020f0334 -func_ov031_020f0348 kind:function(thumb,size=0xc) addr:0x020f0348 +_ZN24UnkStruct_ov031_02113d14D1Ev kind:function(thumb,size=0xc) addr:0x020f0348 func_ov031_020f0354 kind:function(arm,size=0x17c) addr:0x020f0354 func_ov031_020f04d0 kind:function(arm,size=0x34) addr:0x020f04d0 func_ov031_020f0504 kind:function(arm,size=0x40) addr:0x020f0504 func_ov031_020f0544 kind:function(arm,size=0x150) addr:0x020f0544 -func_ov031_020f0694 kind:function(arm,size=0x40) addr:0x020f0694 -func_ov031_020f06d4 kind:function(arm,size=0xc) addr:0x020f06d4 +_ZN17ActorUnkZLSL_169019func_ov031_020eeca8Ev kind:function(arm,size=0x40) addr:0x020f0694 +_ZN17ActorUnkZLSL_169019func_ov031_020eece8Ev kind:function(arm,size=0xc) addr:0x020f06d4 _ZN17ActorProfileHeart10GetProfileEv kind:function(arm,size=0xc) addr:0x020f06e0 _ZN17ActorProfileHeart6CreateEv kind:function(arm,size=0x24) addr:0x020f06ec _ZN17ActorProfileHeartC1Ev kind:function(arm,size=0x40) addr:0x020f0710 @@ -2291,36 +2291,36 @@ _ZTV17ActorProfileRupee kind:data(any) addr:0x02115240 _ZTV10ActorRupee kind:data(any) addr:0x02115264 data_ov031_021152c0 kind:data(any) addr:0x021152c0 data_ov031_02115328 kind:data(any) addr:0x02115328 -data_ov031_02115390 kind:data(any) addr:0x02115390 -data_ov031_02115394 kind:data(any) addr:0x02115394 -data_ov031_02115398 kind:data(any) addr:0x02115398 -data_ov031_0211539c kind:data(any) addr:0x0211539c -data_ov031_021153bc kind:data(any) addr:0x021153bc -_ZTV19data_ov031_021153c0 kind:data(any) addr:0x021153c0 -_ZTV19data_ov031_021153e4 kind:data(any) addr:0x021153e4 -data_ov031_02115410 kind:data(any) addr:0x02115410 -data_ov031_0211543c kind:data(any) addr:0x0211543c -data_ov031_02115484 kind:data(any) addr:0x02115484 -data_ov031_021154cc kind:data(any) addr:0x021154cc -data_ov031_02115510 kind:data(any) addr:0x02115510 -data_ov031_02115598 kind:data(any) addr:0x02115598 -_ZTV19data_ov031_02115620 kind:data(any) addr:0x02115620 -_ZTV19data_ov031_021156e4 kind:data(any) addr:0x021156e4 -data_ov031_021157a8 kind:data(any) addr:0x021157a8 -data_ov031_021157c0 kind:data(any) addr:0x021157c0 -data_ov031_021157d8 kind:data(any) addr:0x021157d8 -data_ov031_021157f0 kind:data(any) addr:0x021157f0 -data_ov031_02115808 kind:data(any) addr:0x02115808 -data_ov031_02115820 kind:data(any) addr:0x02115820 -data_ov031_02115838 kind:data(any) addr:0x02115838 -data_ov031_02115850 kind:data(any) addr:0x02115850 -data_ov031_02115868 kind:data(any) addr:0x02115868 -data_ov031_02115880 kind:data(any) addr:0x02115880 -data_ov031_02115898 kind:data(any) addr:0x02115898 -data_ov031_021158f8 kind:data(any) addr:0x021158f8 +data_ov031_021135f0 kind:data(any) addr:0x02115390 +data_ov031_021135f4 kind:data(any) addr:0x02115394 +data_ov031_021135f8 kind:data(any) addr:0x02115398 +data_ov031_021135fc kind:data(any) addr:0x0211539c +data_ov031_0211361c kind:data(any) addr:0x021153bc +_ZTV19ActorProfileUnkZLSL kind:data(any) addr:0x021153c0 +_ZTV19ActorProfileUnkZSRS kind:data(any) addr:0x021153e4 +_ZTV26ModelRender_ov031_02113670 kind:data(any) addr:0x02115408 +_ZTV17ActorUnkZLSL_27CC kind:data(any) addr:0x02115434 +_ZTV17ActorUnkZLSL_2700 kind:data(any) addr:0x0211547c +_ZTV19data_ov031_021154cc kind:data(any) addr:0x021154c4 +data_ov031_02113770 kind:data(any) addr:0x02115510 +data_ov031_021137f8 kind:data(any) addr:0x02115598 +_ZTV12ActorUnkZLSL kind:data(any) addr:0x02115620 +_ZTV12ActorUnkZSRS kind:data(any) addr:0x021156e4 +data_ov031_02113a08 kind:data(any) addr:0x021157a8 +data_ov031_02113a20 kind:data(any) addr:0x021157c0 +data_ov031_02113a38 kind:data(any) addr:0x021157d8 +data_ov031_02113a50 kind:data(any) addr:0x021157f0 +data_ov031_02113a68 kind:data(any) addr:0x02115808 +data_ov031_02113a80 kind:data(any) addr:0x02115820 +data_ov031_02113a98 kind:data(any) addr:0x02115838 +data_ov031_02113ab0 kind:data(any) addr:0x02115850 +data_ov031_02113ac8 kind:data(any) addr:0x02115868 +data_ov031_02113ae0 kind:data(any) addr:0x02115880 +data_ov031_02113af8 kind:data(any) addr:0x02115898 +data_ov031_02113b58 kind:data(any) addr:0x021158f8 data_ov031_02115aa8 kind:data(any) addr:0x02115aa8 data_ov031_02115ab4 kind:data(any) addr:0x02115ab4 -data_ov031_02115af8 kind:data(any) addr:0x02115af8 +data_ov031_02113d58 kind:data(any) addr:0x02115af8 data_ov031_02113d64 kind:data(any) addr:0x02115b04 data_ov031_02113d74 kind:data(any) addr:0x02115b14 data_ov031_02113da4 kind:data(any) addr:0x02115b44 diff --git a/config/jp/arm9/overlays/ov040/symbols.txt b/config/jp/arm9/overlays/ov040/symbols.txt index 76e271c3..91265bd9 100644 --- a/config/jp/arm9/overlays/ov040/symbols.txt +++ b/config/jp/arm9/overlays/ov040/symbols.txt @@ -40,7 +40,7 @@ _ZN12ActorUnkFTRN19func_ov040_02125dc0Ev kind:function(arm,size=0x1b0) addr:0x02 _ZN12ActorUnkFTRN19func_ov040_02125f70Ev kind:function(arm,size=0xbc) addr:0x02127c14 _ZN12ActorUnkFTRN19func_ov040_0212602cEv kind:function(arm,size=0x64) addr:0x02127cd0 _ZN12ActorUnkFTRN19func_ov040_02126090Ev kind:function(arm,size=0x4c) addr:0x02127d34 -_ZN12ActorUnkFTRN19func_ov040_021260dcEv kind:function(arm,size=0x20) addr:0x02127d80 +_ZN12ActorUnkFTRN19func_ov040_021260dcEi kind:function(arm,size=0x20) addr:0x02127d80 _ZN12ActorUnkFTRN19func_ov040_021260fcEv kind:function(arm,size=0x48) addr:0x02127da0 _ZN12ActorUnkFTRN19func_ov040_02126144Ev kind:function(arm,size=0xd0) addr:0x02127de8 _ZN12ActorUnkFTRN19func_ov040_02126214Ev kind:function(arm,size=0x130) addr:0x02127eb8 diff --git a/config/jp/arm9/overlays/ov090/symbols.txt b/config/jp/arm9/overlays/ov090/symbols.txt index 45baf6e0..586036d2 100644 --- a/config/jp/arm9/overlays/ov090/symbols.txt +++ b/config/jp/arm9/overlays/ov090/symbols.txt @@ -14,7 +14,7 @@ _ZN12ActorUnkSZRD19func_ov090_02165e00Ev kind:function(arm,size=0x14) addr:0x021 _ZN12ActorUnkSZRDD1Ev kind:function(arm,size=0x7c) addr:0x02168074 _ZN12ActorUnkSZRDD0Ev kind:function(arm,size=0x84) addr:0x021680f0 _ZN12ActorUnkSZRD19func_ov090_02165f14Ev kind:function(arm,size=0x1d4) addr:0x02168174 -_ZN12ActorUnkSZRD19func_ov090_021660e8Ev kind:function(arm,size=0xa4) addr:0x02168348 +_ZN18UnkStruct_027e0d8c19func_ov090_021660e8Ev kind:function(arm,size=0xa4) addr:0x02168348 _ZN12ActorUnkSZRD19func_ov090_0216618cEv kind:function(arm,size=0x198) addr:0x021683ec _ZN12ActorUnkSZRD19func_ov090_02166324Ev kind:function(arm,size=0xa4) addr:0x02168584 _ZN12ActorUnkSZRD19func_ov090_021663c8Ev kind:function(arm,size=0xe0) addr:0x02168628 diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 2fe724bd..28edcd72 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -839,7 +839,7 @@ func_02016778 kind:function(arm,size=0xd0) addr:0x02016778 func_02016848 kind:function(arm,size=0xa8) addr:0x02016848 func_020168f0 kind:function(arm,size=0x38) addr:0x020168f0 func_02016928 kind:function(arm,size=0x44) addr:0x02016928 -func_0201696c kind:function(arm,size=0x9c) addr:0x0201696c +func_020169d4 kind:function(arm,size=0x9c) addr:0x0201696c func_02016a08 kind:function(arm,size=0x70) addr:0x02016a08 func_02016a78 kind:function(arm,size=0xac) addr:0x02016a78 func_02016b24 kind:function(arm,size=0xdc) addr:0x02016b24 @@ -848,7 +848,7 @@ func_02016c88 kind:function(arm,size=0x8c) addr:0x02016c88 func_02016d14 kind:function(arm,size=0xf8) addr:0x02016d14 func_02016e0c kind:function(arm,size=0x68) addr:0x02016e0c func_02016e74 kind:function(arm,size=0xe0) addr:0x02016e74 -func_02016f54 kind:function(arm,size=0xf0) addr:0x02016f54 +func_02016fbc kind:function(arm,size=0xf0) addr:0x02016f54 func_02017044 kind:function(arm,size=0xac) addr:0x02017044 func_020170f0 kind:function(arm,size=0x38) addr:0x020170f0 func_02017128 kind:function(arm,size=0x54) addr:0x02017128 diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index cd270019..f8d7c42a 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -133,7 +133,10 @@ public: /* 04 */ VecFx32 mPos; /* 10 */ VecFx32 mPrevPos; /* 1C */ VecFx32 mVel; - /* 28 */ fx16 mAngle; + /* 28 */ union { + s16 mAngle; + UnkAngleStruct mAngleStruct; + }; /* 2A */ unk16 mUnk_2A; /* 2C */ unk32 mUnk_2C; // gravity? /* 30 */ Cylinder *mUnk_30; @@ -245,6 +248,10 @@ public: void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); void func_ov017_020bf9c8(Actor *param1); void func_ov017_020bfb18(Actor_9C *param1); + + // overlay 71 (might be temporary) + void func_ov071_021540ac(unk32 param1); + void func_ov071_0215414c(); }; class Actor_C4_Base { diff --git a/include/Actor/ActorProfile.hpp b/include/Actor/ActorProfile.hpp index cf2941e2..917d140c 100644 --- a/include/Actor/ActorProfile.hpp +++ b/include/Actor/ActorProfile.hpp @@ -65,4 +65,18 @@ public: /* 18 */ virtual void vfunc_18() override; }; +class ActorProfile_Derived2 : public ActorProfile_Derived1 { +public: + /* 00 (base) */ + /* D8 */ + + ActorProfile_Derived2(ActorId actorId1, ActorId actorId2) : + ActorProfile_Derived1(actorId1, actorId2) {} + + /* 04 */ virtual void vfunc_04() override; // func_ov000_02097944 + /* 10 */ virtual void vfunc_10() override; // func_ov000_0209794c + /* 14 */ virtual void vfunc_14() override; // func_ov000_0209796c + /* 18 */ virtual void vfunc_18() override; // func_ov000_02097998 +}; + // typedef ActorProfile *(*GetActorProfile)(); diff --git a/include/Actor/ActorUnkFTRN.hpp b/include/Actor/ActorUnkFTRN.hpp index fc089c95..2b48e3b1 100644 --- a/include/Actor/ActorUnkFTRN.hpp +++ b/include/Actor/ActorUnkFTRN.hpp @@ -59,7 +59,7 @@ public: void func_ov040_02125f70(void); void func_ov040_0212602c(void); void func_ov040_02126090(void); - void func_ov040_021260dc(void); + void func_ov040_021260dc(unk32 param1); void func_ov040_021260fc(void); void func_ov040_02126144(void); void func_ov040_02126214(void); diff --git a/include/Actor/ActorUnkLBCK.hpp b/include/Actor/ActorUnkLBCK.hpp index 6e4703d0..cc051f51 100644 --- a/include/Actor/ActorUnkLBCK.hpp +++ b/include/Actor/ActorUnkLBCK.hpp @@ -25,7 +25,7 @@ public: ActorUnkLBCK(); /* 4C */ virtual ~ActorUnkLBCK() override; - /* 58 */ virtual void vfunc_58(unk32 param1) override; + /* 58 */ virtual void vfunc_58(ActorState param1) override; // overlay 1 void func_ov001_020bff34(); diff --git a/include/Actor/ActorUnkRAT0.hpp b/include/Actor/ActorUnkRAT0.hpp index 270d7832..0cf6bd03 100644 --- a/include/Actor/ActorUnkRAT0.hpp +++ b/include/Actor/ActorUnkRAT0.hpp @@ -7,6 +7,11 @@ #include "global.h" #include "types.h" +enum ActorUnkRAT0State_ { + ActorUnkRAT0State_0, + ActorUnkRAT0State_MAX +}; + class ActorUnkRAT0_C4 : public Actor_C4 { public: ActorUnkRAT0_C4(Actor *param1); @@ -63,7 +68,7 @@ public: void func_ov053_0213c910(void); void func_ov053_0213c91c(void); void func_ov053_0213c940(void); - void func_ov053_0213c984(void); + static void func_ov053_0213c984(void); void func_ov053_0213c9b0(void); void func_ov053_0213c9cc(void); void func_ov053_0213ca50(void); diff --git a/include/Actor/ActorUnkRB1T.hpp b/include/Actor/ActorUnkRB1T.hpp index 13c57dde..9271ca5b 100644 --- a/include/Actor/ActorUnkRB1T.hpp +++ b/include/Actor/ActorUnkRB1T.hpp @@ -21,7 +21,8 @@ public: class ActorUnkRB1T : public Actor_Derived1 { public: /* 000 (base) */ - /* 120 */ unk32 mUnk_120; + /* 120 */ + Actor_Derived1_94_0C *mUnk_120; /* 124 */ STRUCT_PAD(0x124, 0x20C); /* 20C */ ModelRender mUnk_20C; // actually a derived class of a derived class /* 26C */ STRUCT_PAD(0x26C, 0x280); @@ -45,7 +46,7 @@ public: ActorUnkRB1T(); /* 4C */ virtual ~ActorUnkRB1T() override; - /* 58 */ virtual void vfunc_58(unk32 param1); + /* 58 */ virtual void vfunc_58(ActorState param1); void func_ov026_0211e3cc(void); bool func_ov026_0211e3e0(unk32 param1); diff --git a/include/Actor/ActorUnkRPMT.hpp b/include/Actor/ActorUnkRPMT.hpp index 34f36e37..f2744e14 100644 --- a/include/Actor/ActorUnkRPMT.hpp +++ b/include/Actor/ActorUnkRPMT.hpp @@ -17,10 +17,18 @@ public: /* 0C */ virtual void vfunc_0C(unk32 param1) override; }; +enum ActorUnkRPMTState_ { + ActorUnkRPMTState_0 = 0, + ActorUnkRPMTState_1 = 1, + ActorUnkRPMTState_MAX +}; + class ActorUnkRPMT : public Actor { public: /* 00 (base) */ - /* 94 */ + /* 94 */ STRUCT_PAD(0x94, 0xA4); + /* A4 */ bool mUnk_A4; + /* A5 */ ActorUnkRPMT(); diff --git a/include/Actor/ActorUnkZLSL_ZSRS.hpp b/include/Actor/ActorUnkZLSL_ZSRS.hpp index 1d6d13b5..f6775e02 100644 --- a/include/Actor/ActorUnkZLSL_ZSRS.hpp +++ b/include/Actor/ActorUnkZLSL_ZSRS.hpp @@ -1,40 +1,346 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "Actor_Derived1.hpp" +#include "Render/ModelRender.hpp" #include "global.h" #include "types.h" -// --- Actor ZLSL --- - -class ActorUnkZLSL_C4 : public Actor_C4 { +class UnkStruct_ov031_0211361c { public: - ActorUnkZLSL_C4(Actor *param1); - - /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; - /* 04 */ virtual bool vfunc_04() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C(unk32 param1) override; + // data_ov031_0211361c + virtual bool func_ov031_020ea0b4(Actor *param1); }; -class ActorUnkZLSL : public Actor { +// NPC Renderer ? +class ModelRender_ov000_020b4d64 : public ModelRender { public: /* 00 (base) */ - /* 94 */ + /* 60 */ + + ModelRender_ov000_020b4d64(G3d_Model *pModel) : + ModelRender(pModel) {} + + // data_ov000_020b4d64 + /* 0C */ virtual void vfunc_0C() override; + /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; +}; + +class ModelRender_ov031_02113670 : public ModelRender_ov000_020b4d64 { +public: + /* 00 (base) */ + /* 60 */ + + ModelRender_ov031_02113670(G3d_Model *pModel) : + ModelRender_ov000_020b4d64(pModel) {} + + // data_ov031_02113670 + /* 0C */ virtual void vfunc_0C() override; +}; + +class UnkStruct_ov000_020b31a8 { +public: + /* 00 (vtable) */ + /* 04 */ + + // data_ov000_020b31a8 + /* 00 */ virtual ~UnkStruct_ov000_020b31a8(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ virtual UnkSystem5 *vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual void vfunc_18(); + /* 1C */ virtual void vfunc_1C(ActorUnkZLSL_AnimationTag param1, unk32 param2, unk32 param3, unk32 param4); + /* 20 */ virtual void vfunc_20(); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(); + /* 2C */ virtual void vfunc_2C(); + /* 30 */ virtual s8 vfunc_30(); + /* 34 */ virtual void vfunc_34(); + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2); + /* 3C */ virtual void vfunc_3C(); +}; + +class ActorUnkZLSL_27CC : public UnkStruct_ov000_020b31a8 { +public: + /* 00 (base) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ ModelRender *mUnk_08; + /* 0C */ STRUCT_PAD(0x0C, 0x18); + /* 18 */ s8 mUnk_18; + /* 19 */ + + // data_ov031_0211369c + /* 30 */ virtual s8 vfunc_30() override; + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; + /* 3C */ virtual void vfunc_3C() override; +}; + +class ActorUnkZLSL_2700 : public ActorUnkZLSL_27CC { +public: + /* 00 (base) */ + /* 04 */ + + // data_ov031_021136e4 + + void func_ov000_02099ddc(ActorUnkZLSL_AnimationTag param1, unk32 param2); +}; + +class UnkStruct_ov000_020b31f0 : public UnkStruct_ov000_020b31a8 { +public: + /* 00 (vtable) */ + /* 04 */ + + // data_ov000_020b31f0 + /* 00 */ virtual ~UnkStruct_ov000_020b31f0() override; + /* 08 */ virtual void vfunc_08() override; + /* 0C */ virtual void vfunc_0C() override; + /* 10 */ virtual UnkSystem5 *vfunc_10() override; + /* 14 */ virtual void vfunc_14() override; + /* 1C */ virtual void vfunc_1C(char param1[], unk32 param2, unk32 param3, unk32 param4) override; + /* 20 */ virtual void vfunc_20() override; + /* 28 */ virtual void vfunc_28() override; + /* 2C */ virtual void vfunc_2C() override; + /* 30 */ virtual s8 vfunc_30() override; + /* 34 */ virtual void vfunc_34() override; + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; + /* 3C */ virtual void vfunc_3C() override; + /* 40 */ virtual void vfunc_40(); +}; + +class UnkStruct_ov031_0211372c : public UnkStruct_ov000_020b31f0 { +public: + /* 00 (base) */ + /* 04 */ UnkSystem5 *mUnk_04; + /* 08 */ ModelRender *mUnk_08; + /* 0C */ STRUCT_PAD(0x0C, 0x1C); + /* 1C */ UnkSystem5 *mUnk_1C; + /* 20 */ + + // data_ov031_0211372c + /* 18 */ virtual void vfunc_18() override; + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; + /* 3C */ virtual void vfunc_3C() override; + /* 40 */ virtual void vfunc_40() override; +}; + +class UnkStruct_ov031_02113d14 : public UnkStruct_ov031_0211372c { +public: + /* 00 (base) */ + /* 20 */ + + // data_ov031_02113d14 + /* 00 */ virtual ~UnkStruct_ov031_02113d14(); +}; + +class ActorUnkZLSL; + +class UnkStruct_ov031_020ecc68 { +public: + /* 08 */ unk16 sp_08; + /* 0A */ unk16 sp_0A; + /* 0C */ unk16 sp_0C; + /* 0E */ unk16 sp_0E; + /* 10 */ unk32 sp_10; + /* 14 */ VecFx32 sp_14; + /* 20 */ u16 sp_20; + /* 22 */ u16 sp_22; + /* 24 */ u16 sp_24; + /* 26 */ u16 sp_26; + /* 28 */ VecFx32 sp_28; + /* 34 */ UnkStackStruct1 sp_34; + + void func_ov031_020ed47c(ActorUnkZLSL *param1, unk32 param2); +}; + +// --- Actor ZLSL --- + +enum ActorUnkZLSLState_ { + ActorUnkZLSLState_0 = 0, + ActorUnkZLSLState_1 = 1, + ActorUnkZLSLState_2 = 2, + ActorUnkZLSLState_3 = 3, + ActorUnkZLSLState_4 = 4, + ActorUnkZLSLState_5 = 5, + ActorUnkZLSLState_6 = 6, + ActorUnkZLSLState_7 = 7, + ActorUnkZLSLState_8 = 8, + ActorUnkZLSLState_9 = 9, + ActorUnkZLSLState_10 = 10, + ActorUnkZLSLState_11 = 11, + ActorUnkZLSLState_12 = 12, + ActorUnkZLSLState_13 = 13, + ActorUnkZLSLState_14 = 14, + ActorUnkZLSLState_15 = 15, + ActorUnkZLSLState_16 = 16, + ActorUnkZLSLState_MAX +}; + +class ActorUnkZLSL_1690 { +public: + /* 00 */ unk32 mUnk_00; + + void func_ov031_020eeca8(); + void func_ov031_020eece8(); +}; + +class ActorUnkZLSL : public Actor_Derived1 { +public: + /* 0000 (base) */ + /* 0120 */ STRUCT_PAD(0x120, 0x1620); + /* 1620 */ ModelRender_ov031_02113670 mUnk_1620; + /* 1680 */ STRUCT_PAD(0x1680, 0x1690); + /* 1690 */ ActorUnkZLSL_1690 mUnk_1690; + /* 1694 */ STRUCT_PAD(0x1694, 0x2700); + /* 2700 */ ActorUnkZLSL_2700 mUnk_2700; + /* 2704 */ STRUCT_PAD(0x271C, 0x276C); + /* 276C */ ModelRender_ov031_02113670 mUnk_276C; + /* 27CC */ ActorUnkZLSL_27CC mUnk_27CC; + /* 1694 */ STRUCT_PAD(0x27E8, 0x2800); + /* 2800 */ unk32 mUnk_2800; + /* 2804 */ STRUCT_PAD(0x2804, 0x2828); + /* 2828 */ UnkStruct_PlayerGet_ec mUnk_2828; + /* 282C */ unk32 mUnk_282C; + /* 2830 */ unk32 mUnk_2830; + /* 2834 */ STRUCT_PAD(0x2834, 0x2838); + /* 2838 */ unk32 mUnk_2838; + /* 283C */ unk32 mUnk_283C; + /* 2840 */ STRUCT_PAD(0x2840, 0x2844); + /* 2844 */ unk32 mUnk_2844; + /* 2848 */ unk32 mUnk_2848; + /* 284C */ STRUCT_PAD(0x284C, 0x2850); + /* 2850 */ unk32 mUnk_2850; + /* 2854 */ unk32 mUnk_2854; + /* 2858 */ STRUCT_PAD(0x2858, 0x285C); + /* 285C */ unk32 mUnk_285C; + /* 2860 */ unk32 mUnk_2860; + /* 2864 */ STRUCT_PAD(0x2864, 0x286A); + /* 286A */ unk16 mUnk_286A; + /* 286C */ unk16 mUnk_286C; + /* 286E */ unk16 mUnk_286E; + /* 2870 */ unk16 mUnk_2870; + /* 2872 */ s16 mUnk_2872; + /* 2874 */ bool mUnk_2874; + /* 2875 */ STRUCT_PAD(0x2875, 0x2878); + /* 2878 */ VecFx32 mUnk_2878; + /* 2884 */ unk32 mUnk_2884; + /* 2888 */ fx32 mUnk_2888; + /* 288C */ unk32 mUnk_288C; + /* 2890 */ fx32 mUnk_2890; + /* 2894 */ Cylinder mUnk_2894; + /* 28A4 */ VecFx32 mUnk_28A4; + /* 28B0 */ VecFx32 mUnk_28B0; + /* 28BC */ unk32 mUnk_28BC; + /* 28C0 */ unk32 mUnk_28C0; + /* 28C4 */ unk32 mUnk_28C4; + /* 28C8 */ unk32 mUnk_28C8; + /* 2894 */ STRUCT_PAD(0x28CC, 0x28DC); + /* 28DC */ ActorRef mUnk_28DC; + /* 28E0 */ STRUCT_PAD(0x28E0, 0x28E4); + /* 28E4 */ unk16 mUnk_28E4; + /* 28E6 */ STRUCT_PAD(0x28E6, 0x28E8); + /* 28E8 */ VecFx32 mUnk_28E8; + /* 28F4 */ VecFx32 mUnk_28F4; + /* 2900 */ u16 mUnk_2900; + /* 2902 */ STRUCT_PAD(0x2902, 0x2904); + /* 2904 */ unk32 mUnk_2904; + /* 2908 */ ActorUnkZLSL(); + // data_ov031_02113880 + /* 00 */ virtual void GetOffsetPos(VecFx32 *pPos) const override; + /* 18 */ virtual bool vfunc_18(unk32 param1) override; + /* 20 */ virtual void vfunc_20() override; + /* 2C */ virtual void vfunc_2C(unk32 param1) override; /* 4C */ virtual ~ActorUnkZLSL() override; + /* 58 */ virtual void vfunc_58(ActorState state) override; + /* 68 */ virtual void vfunc_68() override; + /* 6C */ virtual void vfunc_6C() override; + /* 70 */ virtual void vfunc_70() override; + /* 7C */ virtual unk32 vfunc_7C(unk32 param1) override; + /* 80 */ virtual unk32 vfunc_80(unk32 param1, unk32 param2) override; + /* 88 */ virtual bool vfunc_88() override; + /* 8C */ virtual bool vfunc_8C() override; + /* 98 */ virtual void vfunc_98(u32 param1) override; + /* A4 */ virtual void vfunc_A4() override; + /* AC */ virtual void vfunc_AC() override; + /* B0 */ virtual void vfunc_B0() override; + /* B4 */ virtual void vfunc_B4() override; + + void func_ov031_020ea674(); + void func_ov031_020ea7a8(); + void func_ov031_020ecbe0(); + void func_ov031_020eaa68(); + void func_ov031_020ea86c(); + void func_ov031_020ea868(); + void func_ov031_020ea864(); + void func_ov031_020eac64(); + void func_ov031_020ead0c(); + void func_ov031_020ec034(); + void func_ov031_020ec05c(); + void func_ov031_020ec0d4(); + void func_ov031_020eb5f8(); + void func_ov031_020ead7c(); + void func_ov031_020eb188(); + void func_ov031_020ebfd8(); + void func_ov031_020eafe0(); + void func_ov031_020eaa8c(); + void func_ov031_020ec164(); + void func_ov031_020eba58(); + static void func_ov031_020ee1f4(); + bool func_ov031_020ee724(); + + // not sure where they go + void func_ov031_020ea8c0(); + void func_ov031_020ea8c4(); + void func_ov031_020ea8c8(); + void func_ov031_020eaa88(); + void func_ov031_020eab0c(); + void func_ov031_020eab40(unk32 param1); + void func_ov031_020eace0(); + void func_ov031_020ead78(); + void func_ov031_020eafb0(); + void func_ov031_020eb158(); + void func_ov031_020eb218(); + bool func_ov031_020eb2b0(VecFx32 *param1, unk32 param2); + void func_ov031_020eb61c(); + void func_ov031_020eba8c(); + void func_ov031_020ec028(); + void func_ov031_020ec058(); + void func_ov031_020ec0a8(); + void func_ov031_020ec12c(); + void func_ov031_020ec170(); + bool func_ov031_020ec3d0(); + bool func_ov031_020ec49c(); + unk32 func_ov031_020ec54c(); + void func_ov031_020ec6d8(bool param1); + bool func_ov031_020ec8c4(); + void func_ov031_020ecc68(unk32 param1); + void func_ov031_020ecea8(UnkAngleStruct param1, unk32 param2, unk32 param3, unk32 param4); + void func_ov031_020ed0b0(); + void func_ov031_020ed3c0(); + void func_ov031_020ed4e4(unk32 param1, unk32 param2); + void func_ov031_020ed55c(); + bool func_ov031_020ed6cc(unk32 param1); + bool func_ov031_020ed8ac(unk32 param1); + void func_ov031_020edc80(); + void func_ov031_020edd14(VecFx32 *param1); + void func_ov031_020edd54(); + void func_ov031_020ede30(); + void func_ov031_020edf98(); + unk16 func_ov031_020ee2c8(); + void func_ov031_020ee41c(); + void func_ov031_020ee4c4(UnkAngleStruct angle); + void func_ov031_020ee654(); }; -class ActorProfileUnkZLSL : public ActorProfile_Derived1 { +class ActorProfileUnkZLSL : public ActorProfile { public: /* 00 (base) */ ActorProfileUnkZLSL(); - ~ActorProfileUnkZLSL(); /* 0C */ virtual Actor *Create(); @@ -43,32 +349,22 @@ public: // --- Actor ZSRS --- -class ActorUnkZSRS_C4 : public Actor_C4 { +class ActorUnkZSRS : public Actor_Derived1 { public: - ActorUnkZSRS_C4(Actor *param1); - - /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; - /* 04 */ virtual bool vfunc_04() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C(unk32 param1) override; -}; - -class ActorUnkZSRS : public Actor { -public: - /* 00 (base) */ - /* 94 */ + /* 000 (base) */ + /* 120 */ UnkStruct_ov031_02113d14 mUnk_0120; + /* 140 */ ActorUnkZSRS(); - /* 4C */ virtual ~ActorUnkZSRS() override; + // data_ov031_02113944 }; -class ActorProfileUnkZSRS : public ActorProfile_Derived1 { +class ActorProfileUnkZSRS : public ActorProfile_Derived2 { public: /* 00 (base) */ ActorProfileUnkZSRS(); - ~ActorProfileUnkZSRS(); /* 0C */ virtual Actor *Create(); diff --git a/include/Actor/Actor_Derived1.hpp b/include/Actor/Actor_Derived1.hpp index 6143c4a2..729492f9 100644 --- a/include/Actor/Actor_Derived1.hpp +++ b/include/Actor/Actor_Derived1.hpp @@ -33,6 +33,40 @@ public: ActorUnk_vfunc_B0(); }; +class Actor_Derived1_94_vfunc_10 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ unk32 mUnk_04; + /* 08 */ STRUCT_PAD(0x04, 0x08); + /* 0C */ unk32 mUnk_0C; + /* 10 */ +}; + +struct ActorUnkZLSL_AnimationTag { + unk32 index; + char name[0x14]; +}; + +class Actor_Derived1_94_0C { +public: + /* 00 (vtable) */ + /* 04 */ + + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ virtual Actor_Derived1_94_vfunc_10 *vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual void vfunc_18(); + /* 1C */ virtual void vfunc_1C(ActorUnkZLSL_AnimationTag param1, unk32 param2, unk32 param3, unk32 param4); + /* 20 */ virtual void vfunc_20(); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(); + /* 2C */ virtual void vfunc_2C(); + /* 30 */ virtual unk32 vfunc_30(); +}; + class Actor_Derived1_94 { public: /* 00 */ Actor_38 mUnk_00; @@ -46,10 +80,10 @@ public: class Actor_Derived1_94_Derived1 : public Actor_Derived1_94 { public: /* 00 (base) */ - /* 0C */ unk32 mUnk_0C; + /* 0C */ Actor_Derived1_94_0C *mUnk_0C; /* 10 */ - Actor_Derived1_94_Derived1(unk32 param1) { + Actor_Derived1_94_Derived1(Actor_Derived1_94_0C *param1) { this->mUnk_0C = param1; } }; @@ -116,9 +150,9 @@ public: /* 0DC */ unk16 mUnk_0DE; /* 0E0 */ unk16 mUnk_0E0; /* 0E0 */ unk16 mUnk_0E2; - /* 0E4 */ void *mUnk_0E4; // callback - /* 0E8 */ unk16 mUnk_0E8; - /* 0E8 */ unk16 mUnk_0EA; + /* 0E4 */ void (*mUnk_0E4)(); // callback + /* 0E8 */ volatile u16 mUnk_0E8; + /* 0E8 */ volatile u16 mUnk_0EA; /* 0EC */ Actor_Derived1_EC mUnk_0EC; /* 104 */ Cylinder mUnk_104; /* 114 */ unk32 mUnk_114; @@ -133,7 +167,7 @@ public: /* 2C */ virtual void vfunc_2C(unk32 param1) override; /* 4C */ virtual ~Actor_Derived1(); /* 54 */ virtual void vfunc_54(unk32 param1); - /* 58 */ virtual void vfunc_58(unk32 param1) = 0; + /* 58 */ virtual void vfunc_58(ActorState param1) = 0; /* 5C */ virtual void vfunc_5C(); /* 60 */ virtual void vfunc_60(); /* 64 */ virtual bool vfunc_64(); @@ -142,25 +176,25 @@ public: /* 70 */ virtual void vfunc_70(); /* 74 */ virtual void vfunc_74(); /* 78 */ virtual void vfunc_78(); - /* 7C */ virtual unk32 vfunc_7C(); - /* 80 */ virtual unk32 vfunc_80(); + /* 7C */ virtual unk32 vfunc_7C(unk32 param1); + /* 80 */ virtual unk32 vfunc_80(unk32 param1, unk32 param2); /* 84 */ virtual unk32 vfunc_84(); - /* 88 */ virtual unk32 vfunc_88(); - /* 8C */ virtual unk32 vfunc_8C(); + /* 88 */ virtual bool vfunc_88(); + /* 8C */ virtual bool vfunc_8C(); /* 90 */ virtual unk32 vfunc_90(); /* 94 */ virtual void vfunc_94(); - /* 98 */ virtual void vfunc_98(unk32 param1); + /* 98 */ virtual void vfunc_98(u32 param1); /* 9C */ virtual void vfunc_9C(); /* A0 */ virtual unk32 vfunc_A0(); /* A4 */ virtual void vfunc_A4(); /* A8 */ virtual unk32 vfunc_A8(); - /* AC */ virtual void vfunc_Ac(); + /* AC */ virtual void vfunc_AC(); /* B0 */ virtual void vfunc_B0(); /* B4 */ virtual void vfunc_B4(); /* B8 */ virtual void vfunc_B8(); /* BC */ - Actor_Derived1(ModelRender *param1, unk32 param2); + Actor_Derived1(ModelRender *param1, Actor_Derived1_94_0C *param2); // overlay 0 void func_ov000_020a8ae0(fx32 param1); @@ -168,10 +202,10 @@ public: bool func_ov000_020a8dd0(); void func_ov000_020a8df0(ActorRef param1, unk32 param2); void func_ov000_020a8e9c(VecFx32 *param1); - void func_ov000_020a8ff4(); + bool func_ov000_020a8ff4(VecFx32 *param1); void func_ov000_020a91b8(VecFx32 *param1, unk32 param2); void func_ov000_020a9200(); - void func_ov000_020a9248(); + bool func_ov000_020a9248(unk32 param1); void func_ov000_020a94b0(); void func_ov000_020a95d8(); void func_ov000_020a9a20(); diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index 99e3e9e6..3acef02f 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -154,6 +154,7 @@ public: void func_ov000_020577a4(unk32 param1, unk32 param2, unk32 param3); void func_ov000_020577f8(unk32 param1); + void func_ov000_020578a4(unk32 param1, unk32 param2); }; class UnkSystem5_Derived1 : public UnkSystem5 { diff --git a/include/Unknown/UnkStruct_027e09a8.hpp b/include/Unknown/UnkStruct_027e09a8.hpp index 20120162..2671436c 100644 --- a/include/Unknown/UnkStruct_027e09a8.hpp +++ b/include/Unknown/UnkStruct_027e09a8.hpp @@ -8,7 +8,10 @@ public: // overlay 0 void func_ov000_020713bc(); void func_ov000_020716dc(unk32 param1); + void func_ov000_020717cc(unk32 param1, VecFx32 *pPos); u16 func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3); + void func_ov000_02071bd4(unk32 param1, VecFx32 *pPos, unk32 param3); + void func_ov000_02071c90(unk32 param1, VecFx32 *pPos, unk32 param3); void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4); void func_ov000_02071eac(VecFx32 *pPos); diff --git a/include/Unknown/UnkStruct_027e09bc.hpp b/include/Unknown/UnkStruct_027e09bc.hpp index fdf71836..f5654fff 100644 --- a/include/Unknown/UnkStruct_027e09bc.hpp +++ b/include/Unknown/UnkStruct_027e09bc.hpp @@ -31,6 +31,7 @@ public: void func_ov000_02078230(unk32 param1); bool func_ov000_0207834c(VecFx32 *param1, unk32 param2, unk32 param3); bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3); + void func_ov000_02078834(VecFx32 *param1, VecFx32 *param2, unk32 param3, unk32 param4); void func_ov000_02078ba4(); void func_ov000_02078cec(); void func_ov000_0207a1e0(unk32 param1); diff --git a/include/Unknown/UnkStruct_027e09c0.hpp b/include/Unknown/UnkStruct_027e09c0.hpp index 94561de5..a701ee3e 100644 --- a/include/Unknown/UnkStruct_027e09c0.hpp +++ b/include/Unknown/UnkStruct_027e09c0.hpp @@ -68,6 +68,7 @@ public: // overlay 0 void func_ov000_0207da40(); + s16 func_ov000_0207dc88(Actor **, Actor_38 *); void func_ov000_0207de98(ActorRef param1, UnkStruct_ov000_0207de98 *param2, Actor_38 *param3); void func_ov000_0207e240(ActorUnkSCCN_B8 *param1); void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, UnkStruct_ov031_Items_01 *param4); diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index bd3fd4b1..79bc40d1 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -279,6 +279,7 @@ public: UnkStruct_func_ov000_02080620 *func_ov000_02080620(); bool func_ov000_02080658(unk32 param1, EntranceInfo *param2); void func_ov000_020808f4(void *param1, Vec2bCpp *param2, u8 param3); + void func_ov000_020809d8(unk32 param1, unk32 param2); unk32 func_ov000_02080a44(); void func_ov000_02080a5c(VecFx32 *param1); void func_ov000_02080a78(VecFx32 *param1); diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index 40907866..cc7952a0 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -769,6 +769,7 @@ public: void func_ov000_0208a218(InvImportData *pInvData); void func_ov000_0208a2c4(unk32 param1, unk32 param2); void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3); + void func_ov000_0208ba94(unk32 param1, VecFx32 *param2); void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3); bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); void func_ov000_0208bc9c(unk32 param1, unk32 param2); diff --git a/include/Unknown/UnkStruct_027e0d8c.hpp b/include/Unknown/UnkStruct_027e0d8c.hpp index 971d8218..d25d547f 100644 --- a/include/Unknown/UnkStruct_027e0d8c.hpp +++ b/include/Unknown/UnkStruct_027e0d8c.hpp @@ -10,9 +10,15 @@ public: UnkStruct_027e0d8c(); ~UnkStruct_027e0d8c(); + // overlay 90 + void func_ov090_021660e8(); // in ActorUnkSZRD too + // overlay 93 void func_ov093_02166058(); void func_ov093_02166068(); + void func_ov093_021660a8(ActorRef param1); + void func_ov093_021660f8(); + void func_ov093_02166108(); void func_ov093_02166220(); }; diff --git a/include/Unknown/UnkStruct_ov024_020d8660.hpp b/include/Unknown/UnkStruct_ov024_020d8660.hpp index 58d62145..e92661e7 100644 --- a/include/Unknown/UnkStruct_ov024_020d8660.hpp +++ b/include/Unknown/UnkStruct_ov024_020d8660.hpp @@ -26,6 +26,16 @@ public: /* 30 */ }; +class UnkActorSystem1_Derived1 : public UnkActorSystem1 { +public: + /* 00 (base) */ + /* 05 */ + + // ? + /* 24 */ virtual unk32 vfunc_24() override; + /* 28 */ virtual unk32 vfunc_28() override; +}; + struct UnkActorSystem_Infos1 { /* 0C */ s16 mUnk_00; /* 0E */ unk16 mUnk_02; diff --git a/include/math.hpp b/include/math.hpp index 9de19b02..264cee7f 100644 --- a/include/math.hpp +++ b/include/math.hpp @@ -367,3 +367,7 @@ union Vec2sb { y = Y; } }; + +struct UnkAngleStruct { + u16 angle; +}; diff --git a/src/000_Second/Actor/Actor_Derived1.cpp b/src/000_Second/Actor/Actor_Derived1.cpp index 527ca33e..0c8cc28a 100644 --- a/src/000_Second/Actor/Actor_Derived1.cpp +++ b/src/000_Second/Actor/Actor_Derived1.cpp @@ -14,7 +14,7 @@ void Actor_Derived1::func_ov000_020a8ae0(fx32 param1) { this->mVel.y = posY; } -Actor_Derived1::Actor_Derived1(ModelRender *param1, unk32 param2) : +Actor_Derived1::Actor_Derived1(ModelRender *param1, Actor_Derived1_94_0C *param2) : mUnk_094(param2), mUnk_0A4(param1), mUnk_0B0(0), @@ -31,7 +31,7 @@ Actor_Derived1::Actor_Derived1(ModelRender *param1, unk32 param2) : mUnk_0DC(0x2AAB), mUnk_0DE(0xEAAB), mUnk_0E0(0x1555), - mUnk_0E4(0), + mUnk_0E4(NULL), mUnk_0E8(0), mUnk_0EA(0), mUnk_104(this->mUnk_34->size), @@ -127,11 +127,11 @@ void Actor_Derived1::vfunc_B0() { } } -unk32 Actor_Derived1::vfunc_88() { +bool Actor_Derived1::vfunc_88() { return 1; } -unk32 Actor_Derived1::vfunc_8C() { +bool Actor_Derived1::vfunc_8C() { return 1; } @@ -157,23 +157,23 @@ bool Actor_Derived1::vfunc_64() { return GET_FLAG(this->mFlags, ActorFlag_Interacting); } -void Actor_Derived1::func_ov000_020a8ff4() {} +bool Actor_Derived1::func_ov000_020a8ff4(VecFx32 *param1) {} void Actor_Derived1::vfunc_6C() {} void Actor_Derived1::vfunc_68() { UNSET_FLAG(this->mFlags, ActorFlag_Interacting); this->func_ov000_020a9200(); - this->vfunc_Ac(); + this->vfunc_AC(); this->mUnk_0B0 &= ~0x01; this->mUnk_0B0 &= ~0x10; } -unk32 Actor_Derived1::vfunc_7C() { +unk32 Actor_Derived1::vfunc_7C(unk32 param1) { return 1; } -unk32 Actor_Derived1::vfunc_80() { +unk32 Actor_Derived1::vfunc_80(unk32 param1, unk32 param2) { return -1; } @@ -203,9 +203,9 @@ void Actor_Derived1::vfunc_70() { void Actor_Derived1::vfunc_74() {} void Actor_Derived1::vfunc_78() {} -void Actor_Derived1::func_ov000_020a9248() {} +bool Actor_Derived1::func_ov000_020a9248(unk32 param1) {} void Actor_Derived1::vfunc_5C() {} -void Actor_Derived1::vfunc_98(unk32 param1) {} +void Actor_Derived1::vfunc_98(u32 param1) {} void Actor_Derived1::func_ov000_020a94b0() {} void Actor_Derived1::vfunc_9C() {} @@ -214,7 +214,7 @@ unk32 Actor_Derived1::vfunc_A0() { return 1; } -void Actor_Derived1::vfunc_Ac() {} +void Actor_Derived1::vfunc_AC() {} void Actor_Derived1::func_ov000_020a95d8() {} void Actor_Derived1::vfunc_A4() {} diff --git a/src/001_SceneInit/Actor/ActorManager_001.cpp b/src/001_SceneInit/Actor/ActorManager_001.cpp index bebd876a..191760f7 100644 --- a/src/001_SceneInit/Actor/ActorManager_001.cpp +++ b/src/001_SceneInit/Actor/ActorManager_001.cpp @@ -13,10 +13,11 @@ extern "C" { void func_ov000_020977e4(); void func_ov021_020f8818(); -void func_ov031_020ea100(); void func_ov071_0215e8d4(); } +extern "C" void func_ov031_020ea100(); + struct UnkStruct_ov000_020ab1ac { /* 00 */ u32 mUnk_00; /* 04 */ u32 mUnk_04; diff --git a/src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp b/src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp index 665b4264..fe6024d5 100644 --- a/src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp +++ b/src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp @@ -7,7 +7,7 @@ struct UnkFuncStruct1 { extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *); extern "C" u16 func_01ffbbe0(fx32 x, fx32 z); -extern "C" void func_01ff930c(s16 *, unk16, unk32); +extern "C" unk32 func_01ff930c(s16 *, unk16, unk32); extern "C" unk32 func_01ff9258(int, int); extern "C" fx32 func_02017f54(s16 *pAngle, UnkFuncStruct1); diff --git a/src/031_Land/Actor/ActorRupee.cpp b/src/031_Land/Actor/ActorRupee.cpp index 91cbd13c..f4e847b0 100644 --- a/src/031_Land/Actor/ActorRupee.cpp +++ b/src/031_Land/Actor/ActorRupee.cpp @@ -7,6 +7,38 @@ #include "Unknown/UnkStruct_027e0cec.hpp" #include "Unknown/UnkStruct_027e0d34.hpp" +static PTMF data_ov031_02113588[0xD] = { + ActorRupee::func_ov031_020e91a8, // ActorRupeeState_0 + ActorRupee::func_ov031_020e9254, // ActorRupeeState_1 + ActorRupee::func_ov031_020e9310, // ActorRupeeState_2 + ActorRupee::func_ov031_020e942c, // ActorRupeeState_3 + ActorRupee::func_ov031_020e9434, // ActorRupeeState_4 + ActorRupee::func_ov031_020e951c, // ActorRupeeState_5 + ActorRupee::func_ov031_020e9450, // ActorRupeeState_6 + ActorRupee::func_ov031_020e95ac, // ActorRupeeState_7 + ActorRupee::func_ov031_020e95c0, // ActorRupeeState_8 + ActorRupee::func_ov031_020e9624, // ActorRupeeState_9 + ActorRupee::func_ov031_020e96bc, // ActorRupeeState_10 + ActorRupee::func_ov031_020e9740, // ActorRupeeState_11 + ActorRupee::func_ov031_020e98c4, // ActorRupeeState_12 +}; + +static PTMF data_ov031_02113520[0xD] = { + ActorRupee::func_ov031_020e9108, // ActorRupeeState_0 + ActorRupee::func_ov031_020e9234, // ActorRupeeState_1 + ActorRupee::func_ov031_020e92e0, // ActorRupeeState_2 + ActorRupee::func_ov031_020e9428, // ActorRupeeState_3 + ActorRupee::func_ov031_020e9430, // ActorRupeeState_4 + ActorRupee::func_ov031_020e94d4, // ActorRupeeState_5 + ActorRupee::func_ov031_020e9438, // ActorRupeeState_6 + ActorRupee::func_ov031_020e9598, // ActorRupeeState_7 + ActorRupee::func_ov031_020e95b0, // ActorRupeeState_8 + ActorRupee::func_ov031_020e9610, // ActorRupeeState_9 + ActorRupee::func_ov031_020e9638, // ActorRupeeState_10 + ActorRupee::func_ov031_020e970c, // ActorRupeeState_11 + ActorRupee::func_ov031_020e9838, // ActorRupeeState_12 +}; + extern "C" void func_01ffedac(u16 *, VecFx32 *); extern "C" void func_01fff05c(u32 *, UnkStruct_027e0cd8_0C_Base *, VecFx32 *); extern "C" unk32 func_02017158(); @@ -520,8 +552,6 @@ void ActorRupee::func_ov031_020e98c4() { this->SetState(ActorRupeeState_1); } -extern PTMF data_ov031_02113520[13]; - void ActorRupee::SetState(ActorState state) { this->mState = state; this->mUnk_52 = -1; @@ -532,7 +562,6 @@ void ActorRupee::SetState(ActorState state) { extern "C" void func_01fff17c(unk16 *, UnkStruct_027e0ce0 *, unk32); extern "C" void func_02018114(unk16 *, unk32); -extern PTMF data_ov031_02113588[13]; // non-matching void ActorRupee::vfunc_20() { diff --git a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp index 3312d24b..580e2186 100644 --- a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp +++ b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp @@ -1,12 +1,121 @@ -//! TODO: This file was generated automatically and might contain errors - #include "Actor/ActorUnkZLSL_ZSRS.hpp" + +#include "Actor/ActorManager.hpp" +#include "Actor/ActorUnkFTRN.hpp" +#include "Actor/ActorUnkRAT0.hpp" +#include "Actor/ActorUnkRPMT.hpp" +#include "Actor/ActorUnkZSTG.hpp" +#include "Player/PlayerGet.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e09bc.hpp" +#include "Unknown/UnkStruct_027e09c0.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" +#include "Unknown/UnkStruct_027e0d8c.hpp" +#include "Unknown/UnkStruct_ov000_020b51b8.hpp" +#include "Unknown/UnkStruct_ov024_020d8660.hpp" + +extern "C" UnkActorSystem1_Derived1 data_ov060_02163ff4; +extern "C" const char *data_ov031_02110acc; // 3\x13\x00\x00 + +extern "C" void func_01ff916c(void *, int, int); +extern "C" unk32 func_01ff9258(fx32, fx32); +extern "C" unk32 func_01ff930c(s16 *, s16, unk32); +extern "C" void func_01ff9318(void *, unk32, unk32); +extern "C" void func_01ff9364(s16 *, UnkAngleStruct); +extern "C" void func_01ff93c0(VecFx32 *, unk32); +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" fx16 func_01ffbbe0(fx32, fx32); +extern "C" void func_01ffe6c4(Actor **, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, UnkStruct_ov031_Items_00 *); +extern "C" void func_01fff17c(unk16 *, UnkStruct_027e0ce0 *, unk32); +extern "C" void func_02015300(unk32 *); +extern "C" unk16 func_02016958(VecFx32 *, VecFx32 *); +extern "C" void func_020169d4(VecFx32 *, VecFx32 *, unk16 *, const char *); +extern "C" bool func_02016c68(VecFx32 *, VecFx32 *, ActorRef); +extern "C" Actor *func_02016fbc(ActorId, VecFx32 *, unk32); + +extern "C" void func_ov000_020578a4(unk32); +extern "C" void func_ov000_02057c98(ModelRender *, UnkSystem5 *); + +static char data_ov031_021135f0[0x4] = "\x00 "; +static char data_ov031_021135f4[0x4] = "3\x03"; +static char data_ov031_021135f8[0x4] = "\x00\x10"; +static ActorUnkZLSL_AnimationTag data_ov031_021135fc = {0, "wait"}; +static PTMF data_ov031_021137f8[0x11] = { + ActorUnkZLSL::func_ov031_020eaa88, // ActorUnkZLSLState_0 + ActorUnkZLSL::func_ov031_020ea8c8, // ActorUnkZLSLState_1 + ActorUnkZLSL::func_ov031_020ea8c4, // ActorUnkZLSLState_2 + ActorUnkZLSL::func_ov031_020ea8c0, // ActorUnkZLSLState_3 + ActorUnkZLSL::func_ov031_020eace0, // ActorUnkZLSLState_4 + ActorUnkZLSL::func_ov031_020ead78, // ActorUnkZLSLState_5 + ActorUnkZLSL::func_ov031_020ec058, // ActorUnkZLSLState_6 + ActorUnkZLSL::func_ov031_020ec0a8, // ActorUnkZLSLState_7 + ActorUnkZLSL::func_ov031_020ec12c, // ActorUnkZLSLState_8 + ActorUnkZLSL::func_ov031_020eb61c, // ActorUnkZLSLState_9 + ActorUnkZLSL::func_ov031_020eafb0, // ActorUnkZLSLState_10 + ActorUnkZLSL::func_ov031_020eb218, // ActorUnkZLSLState_11 + ActorUnkZLSL::func_ov031_020ec028, // ActorUnkZLSLState_12 + ActorUnkZLSL::func_ov031_020eb158, // ActorUnkZLSLState_13 + ActorUnkZLSL::func_ov031_020eab0c, // ActorUnkZLSLState_14 + ActorUnkZLSL::func_ov031_020ec170, // ActorUnkZLSLState_15 + ActorUnkZLSL::func_ov031_020eba8c, // ActorUnkZLSLState_16 +}; +static PTMF data_ov031_02113770[0x11] = { + ActorUnkZLSL::func_ov031_020eaa68, // ActorUnkZLSLState_0 + ActorUnkZLSL::func_ov031_020ea86c, // ActorUnkZLSLState_1 + ActorUnkZLSL::func_ov031_020ea868, // ActorUnkZLSLState_2 + ActorUnkZLSL::func_ov031_020ea864, // ActorUnkZLSLState_3 + ActorUnkZLSL::func_ov031_020eac64, // ActorUnkZLSLState_4 + ActorUnkZLSL::func_ov031_020ead0c, // ActorUnkZLSLState_5 + ActorUnkZLSL::func_ov031_020ec034, // ActorUnkZLSLState_6 + ActorUnkZLSL::func_ov031_020ec05c, // ActorUnkZLSLState_7 + ActorUnkZLSL::func_ov031_020ec0d4, // ActorUnkZLSLState_8 + ActorUnkZLSL::func_ov031_020eb5f8, // ActorUnkZLSLState_9 + ActorUnkZLSL::func_ov031_020ead7c, // ActorUnkZLSLState_10 + ActorUnkZLSL::func_ov031_020eb188, // ActorUnkZLSLState_11 + ActorUnkZLSL::func_ov031_020ebfd8, // ActorUnkZLSLState_12 + ActorUnkZLSL::func_ov031_020eafe0, // ActorUnkZLSLState_13 + ActorUnkZLSL::func_ov031_020eaa8c, // ActorUnkZLSLState_14 + ActorUnkZLSL::func_ov031_020ec164, // ActorUnkZLSLState_15 + ActorUnkZLSL::func_ov031_020eba58, // ActorUnkZLSLState_16 +}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a08 = {0, "blink"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a20 = {0x01, "happy"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a38 = {0x02, "levitate_s"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a50 = {0x03, "sad"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a68 = {0x04, "fear"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a80 = {0x05, "clap_s"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113a98 = {0x06, "surprise"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113ab0 = {0x07, "trouble_s"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113ac8 = {0x08, "trouble_move"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113ae0 = {0x09, "appear_s"}; +static ActorUnkZLSL_AnimationTag data_ov031_02113af8[0x4] = { + {0x0A, "session_s"}, + {0x0B, "turn"}, + {0x0C, "gloomy"}, + {0x0D, "sing"}, +}; +static ActorUnkZLSL_AnimationTag data_ov031_02113b58[0x12] = { + {0x00, "levitate_s"}, {0x01, "move_s"}, {0x02, "talk_s"}, {0x03, "pflute"}, {0x04, "turn"}, + {0x05, "happy"}, {0x06, "levitate_s"}, {0x07, "move_s"}, {0x08, "sad_s"}, {0x09, "happy_s"}, + {0x0A, "fear_s"}, {0x0B, "clap_s"}, {0x0C, "surprise_s"}, {0x0D, "trouble_s"}, {0x0E, "trouble_move_s"}, + {0x0F, "appear_s"}, {0x10, "talk_s"}, {0x11, "session_s"}, +}; +static unk32 data_ov031_02113d08 = 0; +// data_ov031_02113d14 +// data_ov031_02113d3c +static char data_ov031_02113d58[0x0B] = "Npc/ZLDA/"; // --- Actor ZSRS --- THUMB_BEGIN +void ModelRender_ov031_02113670::vfunc_0C() { + ModelRender::vfunc_0C(); +} + DECL_PROFILE(ActorProfileUnkZSRS); Actor *ActorProfileUnkZSRS::Create() { @@ -14,9 +123,10 @@ Actor *ActorProfileUnkZSRS::Create() { } ActorProfileUnkZSRS::ActorProfileUnkZSRS() : - ActorProfile_Derived1(ActorId_ZSRS, ActorId_ZSRS) {} + ActorProfile_Derived2(ActorId_ZSRS, ActorId_ZSRS) {} -ActorUnkZSRS::ActorUnkZSRS() {} +ActorUnkZSRS::ActorUnkZSRS() : + Actor_Derived1(NULL, 0x0) {} // --- Actor ZLSL --- @@ -27,11 +137,1304 @@ Actor *ActorProfileUnkZLSL::Create() { } ActorProfileUnkZLSL::ActorProfileUnkZLSL() : - ActorProfile_Derived1(ActorId_ZLSL) {} + ActorProfile(ActorId_ZLSL) { + this->mUnk_04.size = 0x666; + this->mUnk_1C = 0x1000; + this->mUnk_1A = 0x1800; + this->mUnk_04.pos.x = FLOAT_TO_FX32(0.0f); + this->mUnk_04.pos.z = FLOAT_TO_FX32(0.0f); + this->mUnk_04.pos.y = FLOAT_TO_FX32(0.5f); + this->mUnk_18 = 0x0; +} -ActorUnkZLSL::ActorUnkZLSL() {} +ActorUnkZLSL::ActorUnkZLSL() : + Actor_Derived1(NULL, 0x0), + mUnk_1620(NULL), + mUnk_276C(NULL) {} +void func_ov031_020ea100() {} + +bool UnkStruct_ov031_0211361c::func_ov031_020ea0b4(Actor *param1) { + if (param1 != NULL && param1->GetActorId() == ActorId_RAT0 && param1->mState == ActorUnkRAT0State_0 && + param1->mUnk_5C.mParams[1] == 0x1) { + return true; + } + return false; +} THUMB_END -ActorProfileUnkZLSL::~ActorProfileUnkZLSL() {} -ActorProfileUnkZSRS::~ActorProfileUnkZSRS() {} +void ActorUnkZLSL::func_ov031_020ea674() { + this->func_ov031_020ecbe0(); + this->vfunc_58(ActorUnkZLSLState_8); +} + +bool ActorUnkZLSL::vfunc_18(unk32 param1) { + this->mUnk_1620.func_ov000_02057c38(0x6, 0x2); + this->mUnk_1620.func_ov000_0209a7b8(this, this->func_ov000_020a9804); + + this->mUnk_0E4 = ActorUnkZLSL::func_ov031_020ee1f4; + + this->mUnk_27CC.vfunc_1C(data_ov031_021135fc, 0x1000, 0x11F, 0x0); + + this->func_ov031_020ea674(); + + this->mUnk_44 = 0xD; + this->mUnk_282C = 0x937; + this->mUnk_2830 = 0x2; + this->mUnk_283C = 0x2; + this->mUnk_2848 = 0x2; + this->mUnk_2854 = 0x2; + this->mUnk_2860 = 0x2; + this->mUnk_2838 = 0x933; + this->mUnk_2844 = 0x934; + this->mUnk_2850 = 0x935; + this->mUnk_285C = 0x936; + this->mUnk_30 = &this->mUnk_2894; + this->mUnk_34 = &this->mUnk_2894; + + return true; +} + +void ActorUnkZLSL::vfunc_AC() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea7a8() { + this->mUnk_0B0 &= 0xFFEF; + this->mUnk_2900 &= 0xFFFE; + + this->mUnk_2870 = 0x0; + this->mUnk_0B0 &= 0xFFFB; + SET_FLAG(this->mFlags, ActorFlag_Visible); + + VecFx32_Copy(&this->mPos, &this->mUnk_2878); + + this->mUnk_2888 = FLOAT_TO_FX32(0.0f); + this->mUnk_288C = 0x0; + this->mUnk_2C = 0x0; + this->mUnk_286A = 0x0; + this->mUnk_286C = 0x0; + this->mUnk_28B0.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28B0.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28B0.z = FLOAT_TO_FX32(0.0f); + this->mUnk_28BC = 0x0; + this->mUnk_28C0 = 0x0; + this->mUnk_28C4 = 0x0; + + this->mUnk_0B0 &= 0xFFF7; + this->mUnk_2900 |= 0x30; +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea864() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea868() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea86c() {} + +void ActorUnkZLSL::vfunc_58(ActorState state) { + this->mState = state; + this->mUnk_286E = 0x0; + + this->func_ov031_020ea7a8(); + + CALL_PTMF(PTMF, data_ov031_02113770[this->mState]); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea8c0() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea8c4() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ea8c8() {} + +void ActorUnkZLSL::vfunc_20() { + UnkAngleStruct angleTmp = {.angle = this->mAngle}; + CALL_PTMF(PTMF, data_ov031_021137f8[this->mState]); + + if (!GET_FLAG(this->mFlags, ActorFlag_Visible)) { + return; + } + this->func_ov031_020ee4c4(angleTmp); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + if (this->mState != ActorUnkZLSLState_9 && this->mState != ActorUnkZLSLState_16) { + this->func_ov031_020edc80(); + this->vfunc_A4(); + } + + this->func_ov031_020ee654(); + this->mUnk_1690.func_ov031_020eeca8(); + this->func_ov031_020ee41c(); + + if (GET_FLAG(this->mFlags, ActorFlag_Alive) && (this->mUnk_2900 & 0x1)) { + func_01ff916c(&this->mUnk_2890, 0x666, 0x29); + + VecFx32 vec = this->mPos; + fx32 val = this->mUnk_2890; + fx32 offset = this->func_ov000_0209853c(0)->y; + vec.y = val + offset; + + UnkStruct_ov000_0207de98 unk; + + unk.vec.x = vec.x; + unk.vec.y = vec.y; + unk.vec.z = vec.z; + unk.param1 = val; + unk.param2 = 0x1000; + + data_027e09c0->func_ov000_0207de98(this->mRef, &unk, this->mUnk_38); + } + + this->mUnk_2894.Init(this->mUnk_2890); +} + +void ActorUnkZLSL::func_ov031_020eaa68() { + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + + this->vfunc_98(0x0); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020eaa88() {} + +void ActorUnkZLSL::func_ov031_020eaa8c() { + this->mUnk_2890 = FLOAT_TO_FX32(0.0f); + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->mUnk_2900 |= 0x1; + + if ((this->mUnk_2900 & 0x4) != 0x0) { + this->vfunc_98(0xA); + this->mUnk_4A[0] = 0x0; + this->mUnk_0B0 |= 0x10; + } else { + this->vfunc_98(0x0); + this->mUnk_4A[0] = 0x5; + } + this->mUnk_2884 = 0x0; +} + +void ActorUnkZLSL::func_ov031_020eab0c() { + if ((this->mUnk_2900 & 0x4) != 0x0) { + return; + } + this->func_ov031_020eab40(0x1800); + this->vfunc_60(); +} + +void ActorUnkZLSL::func_ov031_020eab40(unk32 param1) { + VecFx32 vec; + VecFx32_Copy(this->func_ov000_0209853c(0x0), &vec); + + VecFx32 *pVec = this->func_ov000_0209853c(0x0); + + VecFx32 oVec; + func_01ffb714(&this->mPos, pVec, &oVec); + + oVec.y = FLOAT_TO_FX32(0.0f); + VecFx32_TryNormalize(&oVec); + + func_01ff93c0(&oVec, param1); + + oVec.y += FLOAT_TO_FX32(0.5f); + VecFx32_Add(&vec, &oVec, &vec); + + func_01ffb714(&vec, &this->mPos, &oVec); + + func_01ff93c0(&oVec, FLOAT_TO_FX32(0.05f)); + + VecFx32_Add(&this->mVel, &oVec, &this->mVel); + func_01ff93c0(&this->mVel, FLOAT_TO_FX32(0.8f)); + + if (VecFx32_Length(&this->mVel) > FLOAT_TO_FX32(0.1001f)) { + VecFx32_TryNormalize(&this->mVel); + func_01ff93c0(&this->mVel, FLOAT_TO_FX32(0.1001f)); + } + VecFx32 *pVec2 = this->func_ov000_0209853c(0x0); + + func_01ff930c(&this->mAngle, func_02016958(&this->mPos, pVec2), 0x71C); +} + +void ActorUnkZLSL::func_ov031_020eac64() { + this->mUnk_2884 = 0x0; + this->mUnk_2888 = this->mPos.y; + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->mUnk_0B0 |= 0x1; + + if ((this->mUnk_0B0 & 0x2) != 0x0) { + if (this->func_ov000_020a9248(0x2000)) { + this->vfunc_58(ActorUnkZLSLState_5); + return; + } + } + this->vfunc_98(0x1); +} + +void ActorUnkZLSL::func_ov031_020eace0() { + if (!this->func_ov031_020ec8c4()) { + return; + } + this->vfunc_58(ActorUnkZLSLState_5); +} + +void ActorUnkZLSL::func_ov031_020ead0c() { + this->mUnk_2888 = this->mPos.y; + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + + if (this->mUnk_094.mUnk_0C->vfunc_30() != 0x1) { + if (this->mUnk_094.mUnk_0C->vfunc_30() != 0x0) { + return; + } + } + this->vfunc_98(0x2); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ead78() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ead7c() { + ActorUnkRPMT *actor = (ActorUnkRPMT *) func_02016fbc(ActorId_RPMT, &this->mPos, 0x0); + if (actor != NULL && actor->mState == ActorUnkRPMTState_1) { + this->mUnk_0B0 |= 0x8; + } + VecFx32 vec = *this->func_ov000_0209853c(0x0); + if (this->mUnk_0B0 & 0x8) { + if (data_027e0ce0->func_01fff1a4()) { + data_027e0ce0->func_ov000_0208ba94(0x1, &vec); + } + } + VecFx32 oVec; + VecFx32_Copy(&vec, &oVec); + oVec = this->mPos; + + this->mUnk_28E4 = this->func_ov031_020ee2c8(); + + this->func_ov031_020ec6d8(true); + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + this->mUnk_2884 = 0x0; + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->mUnk_52 = 0xA; + this->mUnk_50 = 0x0; + this->mUnk_2884 = 0x0; + this->mUnk_2888 = 0x0; +} + +void ActorUnkZLSL::func_ov031_020eafb0() { + if (!this->func_ov031_020ed8ac(0x800)) { + return; + } + this->vfunc_58(ActorUnkZLSLState_4); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020eafe0() { + this->func_ov000_0209853c(0x0); + this->mUnk_28E4 = 0x2AAB; + + s16 tab[2]; + func_01fff17c(tab, data_027e0ce0, 0x0); + + tab[1] = tab[0] + this->mUnk_28E4; + VecFx32 vec; + func_020169d4(&vec, this->func_ov000_0209853c(0x0), ((fx16 *) tab + 1), data_ov031_02110acc); + if (func_02016c68(this->func_ov000_0209853c(0x0), &vec, this->mRef)) { + } +} + +void ActorUnkZLSL::func_ov031_020eb158() { + if (!this->func_ov031_020ed6cc(0x1800)) { + return; + } + this->vfunc_58(ActorUnkZLSLState_14); +} + +void ActorUnkZLSL::func_ov031_020eb188() { + this->mUnk_2900 |= 0x40; + this->vfunc_98(0xF); + + func_02015300(&this->mUnk_094.mUnk_0C->vfunc_10()->mUnk_04); + this->mUnk_4A[0] = 0x0; + this->mUnk_2888 = FLOAT_TO_FX32(0.3f); + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->mUnk_2900 |= 0x1; + VecFx32_Copy(&this->mPos, &this->mUnk_2878); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020eb218() { + if ((this->mUnk_2900 & 0x10) != 0x0) { + if (!this->mUnk_2874) { + this->mUnk_2900 &= 0xFFEF; + data_027e09a8->func_ov000_02071c90(0x139, &this->mPos, 0x0); + } + } + VecFx32 *vec = this->func_ov000_0209853c(0x0); + if (!this->func_ov031_020eb2b0(vec, 0xA000)) { + return; + } + this->vfunc_58(ActorUnkZLSLState_8); +} + +// non-matching +bool ActorUnkZLSL::func_ov031_020eb2b0(VecFx32 *param1, unk32 param2) { + func_01ff916c(&this->mUnk_2800, param1->y, 0xCD); + unk16 res = func_02016958(&this->mPos, param1); + func_01ff930c(&this->mAngle, res, 0x71C); + + VecFx32 vec = *param1; + vec.y += 0x800; + if (!this->mUnk_2874) { + if (this->mUnk_094.mUnk_0C->vfunc_10()->mUnk_0C < 0xA000) { + func_01ff916c(&this->mUnk_2800, 0xCD - 0x400, 0xCD + 0xCD); + } + } +} + +void ActorUnkZLSL::func_ov031_020eb5f8() { + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + this->func_ov031_020ec6d8(true); +} + +class ActorUnkZLSL_020eb61ec_16C_vfunc_10 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ UnkStruct_PlayerGet_50 mUnk_04; +}; + +class ActorUnkZLSL_020eb61ec_16C { +public: + /* 00 (vtable) */ + /* 04 */ + + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ virtual ActorUnkZLSL_020eb61ec_16C_vfunc_10 *vfunc_10(); +}; + +// related to ov071 ? +class ActorUnkZLSL_020eb61ec : public Actor { +public: + /* 000 (base) */ + /* 094 */ STRUCT_PAD(0x94, 0x16C); + /* 16C */ ActorUnkZLSL_020eb61ec_16C mUnk_16C; +}; + +void ActorUnkZLSL::func_ov031_020eb61c() { + ActorUnkZLSL_020eb61ec *actor = (ActorUnkZLSL_020eb61ec *) gpActorManager->func_01fff3b4(this->mUnk_28DC); + + VecFx32 vec; + switch (this->mUnk_286E) { + case 0x0: + if (data_027e09b8->func_01ffd420()) { + return; + } + this->func_ov031_020ecc68(0x0); + actor->func_ov071_021540ac(0x19); + this->mUnk_52 = 0x14; + this->mUnk_50 = 0x0; + ++this->mUnk_286E; + break; + case 0x1: + if (this->mUnk_28C8 < 0x0) { + return; + } + if (data_027e09b8->func_ov000_020732ec(this->mUnk_28C8) == 0x0) { + return; + } + if (this->IsTimerOut()) { + this->func_ov031_020eafe0(); + ++this->mUnk_286E; + } + this->func_ov031_020ed4e4(0xF, 0x93F); + break; + case 0x2: + this->func_ov031_020edd14(&vec); + vec.y = this->mPos.y; + if (this->func_ov031_020ed6cc(0xC00)) { + this->mUnk_52 = 0xF; + this->mUnk_50 = 0x0; + ++this->mUnk_286E; + } + this->mAngle = func_02016958(&this->mPos, &vec); + VecFx32_Copy(&this->mPos, &vec); + vec.y += FLOAT_TO_FX32(0.5f); + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x3: + if (this->IsTimerOut()) { + ++this->mUnk_286E; + this->mUnk_2884 = 0x0; + this->func_ov031_020eb188(); + } + VecFx32_Copy(&this->mPos, &vec); + vec.y += FLOAT_TO_FX32(0.5f); + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x4: + if (this->func_ov031_020eb2b0(&actor->mPos, 0xA000)) { + data_027e09a8->func_ov000_02071bd4(0x8D5B, &this->mPos, 0x0); + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + actor->func_ov071_0215414c(); + ++this->mUnk_286E; + data_027e0cec->func_ov000_020a0110(&this->mUnk_2828); + } + VecFx32_Copy(&this->mPos, &vec); + vec.y += 0x800; + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x5: + if (actor->mUnk_16C.vfunc_10()->mUnk_04.func_01ff8fa8()) { + ++this->mUnk_286E; + data_027e0d8c->func_ov093_021660a8(this->mUnk_28DC); + actor->func_ov071_021540ac(0x1A); + this->mUnk_52 = 0x1E; + this->mUnk_50 = 0x0; + } + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x6: + if (this->IsTimerOut()) { + data_027e09b8->func_ov000_020732fc(this->mUnk_28C8); + this->mUnk_28A4.x = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(1.0f); + this->vfunc_58(ActorUnkZLSLState_8); + } + this->func_ov031_020ed4e4(0x5, 0x93F); + default: + break; + } +} + +void ActorUnkZLSL::func_ov031_020eba58() { + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + this->func_ov031_020ec6d8(true); + this->mUnk_0B0 |= 0x8; +} + +void ActorUnkZLSL::func_ov031_020eba8c() { + ActorUnkZLSL_020eb61ec *actor = (ActorUnkZLSL_020eb61ec *) gpActorManager->func_01fff3b4(this->mUnk_28DC); + + VecFx32 vec; + switch (this->mUnk_286E) { + case 0x0: + if (data_027e09b8->func_01ffd420()) { + return; + } + this->func_ov031_020ecc68(0x1); + actor->func_ov071_021540ac(0x19); + this->mUnk_52 = 0x14; + this->mUnk_50 = 0x0; + ++this->mUnk_286E; + break; + case 0x1: + if (this->mUnk_28C8 < 0x0) { + return; + } + if (data_027e09b8->func_ov000_020732ec(this->mUnk_28C8) == 0x0) { + return; + } + if (this->IsTimerOut()) { + this->func_ov031_020ead7c(); + data_027e0d8c->func_ov090_021660e8(); + data_027e0d8c->func_ov093_021660f8(); + ++this->mUnk_286E; + } + this->func_ov031_020ed4e4(0xF, 0x93F); + break; + case 0x2: + this->func_ov031_020edd14(&vec); + vec.y = this->mPos.y; + if (this->func_ov031_020ed8ac(0x800)) { + this->mUnk_52 = 0xF; + this->mUnk_50 = 0x0; + ++this->mUnk_286E; + } + this->mAngle = func_02016958(&this->mPos, &vec); + VecFx32_Copy(&this->mPos, &vec); + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x3: + if (this->IsTimerOut()) { + data_027e0d8c->func_ov093_02166108(); + ++this->mUnk_286E; + this->mUnk_2884 = 0x0; + this->mUnk_52 = 0x1E; + this->mUnk_50 = 0x0; + this->func_ov031_020eb188(); + } + VecFx32_Copy(&this->mPos, &vec); + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x5, 0x93F); + break; + case 0x4: + VecFx32 *pVec = this->func_ov000_0209853c(0x0); + if (func_01ff9258(this->mPos.x - pVec->x, this->mPos.z - pVec->z) > 0x3000) { + this->func_ov031_020eb2b0(&actor->mPos, 0x666); + } else { + this->func_ov031_020eb2b0(&actor->mPos, 0xA000); + } + VecFx32_Copy(&this->mPos, &vec); + VecFx32_Copy(&vec, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0xA, 0x93F); + + if (!this->IsTimerOut()) { + break; + } + ++this->mUnk_286E; + + pVec = this->func_ov000_0209853c(0x1); + if (func_01ff9258(actor->mPos.x - pVec->x, actor->mPos.z - pVec->z) <= 0x3000) { + break; + } + this->func_ov031_020ed3c0(); + + this->mUnk_52 = 0xF; + this->mUnk_50 = 0x0; + break; + case 0x5: + if (!this->IsTimerOut()) { + break; + } + if (!this->func_ov031_020eb2b0(&actor->mPos, 0xA000)) { + return; + } + + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + + actor->func_ov071_0215414c(); + + ++this->mUnk_286E; + + data_027e09a8->func_ov000_02071bd4(0x8D5B, &this->mPos, 0x0); + data_027e0cec->func_ov000_020a0110(&this->mUnk_2828); + break; + case 0x6: + if (actor->mUnk_16C.vfunc_10()->mUnk_04.func_01ff8fa8() == 0x0) { + return; + } + ++this->mUnk_286E; + data_027e0d8c->func_ov093_021660a8(this->mUnk_28DC); + actor->func_ov071_021540ac(0x1A); + this->mUnk_52 = 0x1E; + this->mUnk_50 = 0x0; + break; + case 0x7: + if (!this->IsTimerOut()) { + return; + } + data_027e09b8->func_ov000_020732fc(this->mUnk_28C8); + + this->mUnk_28A4.x = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(1.0f); + + this->vfunc_58(ActorUnkZLSLState_8); + break; + default: + break; + } +} + +void ActorUnkZLSL::func_ov031_020ebfd8() { + this->mUnk_28A4.x = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(1.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(1.0f); + this->func_ov031_020ec6d8(false); + this->mAngle = func_02016958(&this->mPos, this->func_ov000_0209853c(0x0)); + this->func_ov031_020eb188(); +} + +void ActorUnkZLSL::func_ov031_020ec028() { + this->func_ov031_020eb218(); +} + +void ActorUnkZLSL::func_ov031_020ec034() { + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->vfunc_98(0x1); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ec058() {} + +void ActorUnkZLSL::func_ov031_020ec05c() { + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + + if (this->func_ov000_020a9248(0x2000) == 0x0) { + this->vfunc_98(0x1); + return; + } + this->vfunc_58(ActorUnkZLSLState_0); +} + +void ActorUnkZLSL::func_ov031_020ec0a8() { + if (!this->func_ov031_020ec8c4()) { + return; + } + this->vfunc_58(ActorUnkZLSLState_0); +} + +void ActorUnkZLSL::func_ov031_020ec0d4() { + this->mUnk_28A4.x = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.y = FLOAT_TO_FX32(0.0f); + this->mUnk_28A4.z = FLOAT_TO_FX32(0.0f); + + UNSET_FLAG(this->mFlags, ActorFlag_Visible); + + this->vfunc_98(0x0); + + this->mUnk_4A[0] = false; + data_027e0cec->func_ov000_020a0110(&this->mUnk_2828); +} + +void ActorUnkZLSL::func_ov031_020ec12c() { + this->func_ov031_020ecbe0(); + + VecFx32_Copy(this->func_ov000_0209853c(0x0), &this->mUnk_2878); +} + +void ActorUnkZLSL::func_ov031_020ec164() { + this->func_ov031_020ead7c(); +} + +void ActorUnkZLSL::func_ov031_020ec170() { + this->mUnk_0B0 |= 0x10; + + if (this->mUnk_286E == 0x0) { + if (this->func_ov031_020ed8ac(0x800)) { + this->vfunc_98(0x11); + ++this->mUnk_286E; + } + } + + this->mAngle = 0x0; +} + +void ActorUnkZLSL::vfunc_2C(unk32 param1) { + Mat3p sp00; + if (this->mUnk_28A4.x == FLOAT_TO_FX32(0.0f) && this->mUnk_28A4.y == FLOAT_TO_FX32(0.0f) && + this->mUnk_28A4.z == FLOAT_TO_FX32(0.0f)) { + return; + } + switch (this->mUnk_2874) { + case false: + Mat3p_InitYRotation(&sp00, SIN((u16) this->mAngle), COS((u16) this->mAngle)); + this->mUnk_1620.vfunc_10(&this->mUnk_28A4, &sp00, &this->mPos); + break; + case true: + Mat3p_InitYRotation(&sp00, SIN(1), COS(0)); + this->mUnk_276C.vfunc_10(&this->mUnk_28A4, &sp00, &this->mPos); + break; + default: + break; + } + this->mUnk_1690.func_ov031_020eece8(); +} + +unk32 ActorUnkZLSL::vfunc_7C(unk32 param1) { + switch (param1) { + case 0x0: + return this->func_ov031_020ec54c(); + case 0x1: + this->mUnk_2900 |= 0x2; + break; + case 0x2: + data_ov024_020d8660->func_ov024_020c4a8c(&data_ov060_02163ff4); + break; + case 0x3: + this->mUnk_2900 |= 0x6; + ActorUnkRAT0::func_ov053_0213c984(); + break; + case 0x4: + this->vfunc_58(ActorUnkZLSLState_11); + break; + case 0x5: + this->vfunc_58(ActorUnkZLSLState_8); + break; + case 0x6: + return this->func_ov031_020ec49c(); + case 0x7: + data_ov000_020b51b8.func_ov000_0206c9a8(0x13A, 0x0, 0x7F, 0x0); + break; + case 0x8: + return this->func_ov031_020ec3d0(); + case 0x9: + data_027e0cd8->mUnk_0C->func_ov000_020809d8(0x28, -1); + default: + break; + } + return 0x1; +} + +bool ActorUnkZLSL::func_ov031_020ec3d0() { + bool var = false; + switch (this->mUnk_2872) { + case 0x0: + data_ov000_020b51b8.func_ov000_0206d0bc(0x0); + this->mUnk_52 = 0x0; + this->mUnk_50 = 0x0; + ++this->mUnk_2872; + break; + case 0x1: + if (!this->IsTimerOut()) { + break; + } + data_ov000_020b51b8.func_ov000_0206c9a8(0x4E, 0x0, 0x7F, 0x0); + data_027e09a8->func_ov000_020717cc(0x8C3C, &this->mPos); + var = true; + break; + default: + break; + } + if (var == true) { + this->mUnk_2872 = 0x0; + } + return var; +} + +bool ActorUnkZLSL::func_ov031_020ec49c() { + bool var = false; + switch (this->mUnk_2872) { + case 0x0: + data_ov000_020b51b8.func_ov000_0206d0bc(0xA); + this->mUnk_52 = 0xA; + this->mUnk_50 = 0x0; + ++this->mUnk_2872; + break; + case 0x1: + if (!this->IsTimerOut()) { + break; + } + data_ov000_020b5214.func_ov000_0206db44(0x988A); + var = true; + break; + default: + break; + } + if (var == 0x1) { + this->mUnk_2872 = 0x0; + } + return var; +} + +unk32 ActorUnkZLSL::func_ov031_020ec54c() { + ActorUnkFTRN *val = (ActorUnkFTRN *) func_02016fbc(ActorId_FieldTrain, &this->mPos, 0x0); + + bool var = false; + switch (this->mUnk_2872) { + case 0x0: + if (this->mState == ActorUnkZLSLState_8) { + var = true; + break; + } + this->vfunc_58(ActorUnkZLSLState_11); + ++this->mUnk_2872; + break; + case 0x1: + if (this->mState != ActorUnkZLSLState_8) { + break; + } + var = true; + val->func_ov040_021260dc(0x0); + break; + default: + break; + } + if (var == 0x1) { + this->mUnk_2872 = 0x0; + } + return var; +} + +void ActorUnkZLSL::vfunc_B0() { + if (data_027e09b8->func_01ffd420() != 0x0) { + return; + } + ActorUnk_vfunc_B0 stack = ActorUnk_vfunc_B0(); + stack.mUnk_32 = 0x1; + stack.mpActor = this; + + unk32 var = this->mUnk_2904; + if (var == 0x0) { + ActorUnkZSTG *actor = (ActorUnkZSTG *) func_02016fbc(ActorId_ZSTG, &this->mPos, 0x0); + if (actor != NULL) { + var = actor->mUnk_5C.mUnk_20; + if (actor->mUnk_5C.mParams[1] == 0x1) { + stack.mUnk_32 = 0x0; + } + } + } else { + ActorUnkZSTG *actor = (ActorUnkZSTG *) func_02016fbc(ActorId_ZSTG, &this->mPos, 0x0); + if (actor != NULL) { + if (actor->mUnk_5C.mParams[1] == 0x1) { + stack.mUnk_32 = 0x0; + } + } + } + + stack.mUnk_0C = var; + stack.mUnk_14 = 0x0; + stack.mUnk_18 = -1; + stack.mUnk_1C = -1; + stack.mUnk_20 = false; + stack.mUnk_21 = false; + + this->GetOffsetPos(&stack.mUnk_34); + this->mUnk_0B4 = data_027e09b8->func_ov000_02073470(&stack, 0x0); +} + +void ActorUnkZLSL::func_ov031_020ec6d8(bool param1) { + if (param1 != true && this->mUnk_2874 == true && (this->mUnk_2900 & 0x20)) { + data_027e09a8->func_ov000_02071c90(0x138, &this->mPos, 0x0); + this->mUnk_2900 |= 0x1; + } + if (param1 != true) { + data_027e0cec->func_ov000_020a0110(&this->mUnk_2828); + } + this->mUnk_2874 = param1; +} + +void ActorUnkZLSL::vfunc_6C() { + if (!this->mUnk_2874 && this->mUnk_28A4.z == FLOAT_TO_FX32(1.0f)) { + this->vfunc_58(ActorUnkZLSLState_4); + return; + } + this->vfunc_58(ActorUnkZLSLState_10); +} + +void ActorUnkZLSL::vfunc_70() { + if (!this->mUnk_2874 && this->mUnk_28A4.z == FLOAT_TO_FX32(1.0f)) { + this->vfunc_58(ActorUnkZLSLState_4); + return; + } + this->vfunc_58(ActorUnkZLSLState_10); +} + +void ActorUnkZLSL::vfunc_68() { + if (this->mState != ActorUnkZLSLState_8) { + if (this->mUnk_2900 & 0x2) { + this->vfunc_58(ActorUnkZLSLState_14); + } else { + this->vfunc_58(ActorUnkZLSLState_11); + } + } + this->mUnk_2900 &= 0xFFFD; + UNSET_FLAG(this->mFlags, ActorFlag_Interacting); + this->func_ov000_020a9200(); + this->mUnk_0B0 &= 0xFFFE; +} + +bool ActorUnkZLSL::vfunc_88() { + if (this->func_ov031_020ee724()) { + return true; + } + if (!this->mUnk_2874 && this->mUnk_28A4.z == FLOAT_TO_FX32(1.0f)) { + return true; + } + if (this->mState != ActorUnkZLSLState_10) { + this->vfunc_58(ActorUnkZLSLState_10); + } + return false; +} + +bool ActorUnkZLSL::vfunc_8C() { + return true; +} + +bool ActorUnkZLSL::func_ov031_020ec8c4() { + VecFx32 vec; + UnkAngleStruct angleStruct; + if (!this->func_ov000_020a8ff4(&vec)) { + angleStruct.angle = this->mAngle; + } else { + angleStruct.angle = func_02016958(&this->mPos, &vec); + } + + if (this->mUnk_0B0 & 0x2) { + func_01ff9364(&this->mAngle, angleStruct); + + s16 angle = angleStruct.angle - this->mAngle; + if (ABS(angle) < 0x2000) { + return true; + } + } + + return func_01ff930c(&this->mAngle, angleStruct.angle, 0x71C); +} + +// non-matching +void ActorUnkZLSL::vfunc_98(u32 param1) { + if (param1 < 0x12) { + bool flag = (this->mUnk_2900 & 0x40) != 0; + + this->mUnk_094.mUnk_0C->vfunc_1C(*(ActorUnkZLSL_AnimationTag *) (this->mUnk_0B8 + 0x18 * param1), 0x1000, 0x19A, flag); + + switch (param1) { + case 0x0: + case 0x7: + case 0x12: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a38, 0x1000); + break; + case 0x1: + case 0x2: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a08, 0x1000); + break; + case 0x5: + case 0x9: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a20, 0x1000); + break; + case 0x8: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a50, 0x1000); + break; + case 0xA: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a68, 0x1000); + break; + case 0xB: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a80, 0x1000); + break; + case 0xC: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113a98, 0x1000); + break; + case 0xD: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113ab0, 0x1000); + break; + case 0xE: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113ac8, 0x1000); + break; + case 0xF: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113ae0, 0x1000); + break; + case 0x11: + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113af8[0], 0x1000); + break; + default: + break; + } + } else if (param1 >= 0x32 && param1 < 0x40) { + this->mUnk_2700.func_ov000_02099ddc(data_ov031_02113af8[param1 - 0x32], 0x1000); + } + + this->mUnk_2900 &= ~0x40; +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ecbe0() { + s16 sp[2]; + + func_01fff17c(sp, data_027e0ce0, 0x0); + + sp[1] = sp[0] + FLOAT_TO_FX32(2.6668f); + func_020169d4(&this->mPos, this->func_ov000_0209853c(0x0), ((fx16 *) sp + 1), data_ov031_021135f4); + this->mPos.y += FLOAT_TO_FX32(0.5f); + this->mPrevPos.x = this->mPos.x; + this->mPrevPos.y = this->mPos.y; + this->mPrevPos.z = this->mPos.z; +} + +extern "C" void func_ov000_02072fd0(UnkStackStruct1 *); +extern "C" unk32 func_01ffb9cc(VecFx32 *, VecFx32 *); + +class ActorUnkZLSL_020ecc68 : public Actor { +public: + /* 000 (base) */ + /* 094 */ STRUCT_PAD(0x94, 0x530); + /* 530 */ unk32 mUnk_530; +}; + +// non-matching +void ActorUnkZLSL::func_ov031_020ecc68(unk32 param1) { + UnkStruct_ov031_020ecc68 stack; + Actor *actor = gpActorManager->func_01fff3b4(this->mUnk_28DC); + if (param1 != 0x0) { + VecFx32 *vec = this->func_ov000_0209853c(0x1); + if (func_01ff9258(actor->mPos.x - vec->x, actor->mPos.z - vec->z) > 0x3000) { + this->func_ov031_020ed0b0(); + } else { + UnkAngleStruct angleStruct = this->mAngleStruct; + angleStruct.angle = 0x2000; + this->func_ov031_020ecea8(angleStruct, 0x6000, 0x4800, 0x0); + } + } else { + UnkAngleStruct angleStruct = this->mAngleStruct; + angleStruct.angle = 0x2000; + this->func_ov031_020ecea8(angleStruct, 0x6000, 0x4800, 0x0); + } + func_ov000_02072fd0(&stack.sp_34); + stack.sp_34.mUnk_08 = -0x1; + stack.sp_34.mUnk_00 = 0x80; + stack.sp_34.mUnk_3B = 0x4; + stack.sp_34.mUnk_38 |= 0x80; + stack.sp_34.mUnk_3A = 0x2; + + VecFx32_Copy(&this->mUnk_28F4, &stack.sp_34.mUnk_0C); + + stack.func_ov031_020ed47c(this, 0x93F); + + stack.sp_34.mUnk_18 = stack.sp_08; + stack.sp_34.mUnk_1A = stack.sp_0A; + stack.sp_34.mUnk_1C = stack.sp_0C; + stack.sp_34.mUnk_1E = stack.sp_0E; + stack.sp_34.mUnk_20 = stack.sp_10; + stack.sp_34.mUnk_24 = stack.sp_14; + stack.sp_34.mUnk_30 = stack.sp_20; + stack.sp_34.mUnk_32 = stack.sp_22; + stack.sp_34.mUnk_34 = stack.sp_24; + stack.sp_34.mUnk_36 = stack.sp_26; + + this->mUnk_28C8 = data_027e09b8->func_ov000_02073388(&stack.sp_34, 0x0); + + unk32 val = func_01ffb9cc(&this->mUnk_28F4, &this->mUnk_28E8); + func_01ffb714(&this->mUnk_28E8, &this->mUnk_28F4, &stack.sp_28); + + VecFx32_TryNormalize(&stack.sp_28); + + func_01ff93c0(&stack.sp_28, val - 0x1000); + + VecFx32_Copy(&this->mUnk_28F4, &this->mUnk_28E8); + VecFx32_Add(&this->mUnk_28E8, &stack.sp_28, &this->mUnk_28E8); + + actor = gpActorManager->func_01fff3b4(this->mUnk_28DC); + if (actor != NULL) { + ((ActorUnkZLSL_020ecc68 *) actor)->mUnk_530 = this->mUnk_28C8; + } +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ecea8(UnkAngleStruct param1, unk32 param2, unk32 param3, unk32 param4) {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ed0b0() {} + +void ActorUnkZLSL::func_ov031_020ed3c0() { + VecFx32 sp14; + VecFx32 sp08; + UnkAngleStruct angleStruct; + + sp14 = this->mUnk_28B0; + angleStruct.angle = 0xE39; + + this->func_ov031_020ecea8(angleStruct, 0x7000, 0x4800, 0x1); + + VecFx32_Copy(&sp14, &this->mUnk_28B0); + + this->func_ov031_020edd14(&sp08); + sp08.y += 0x800; + VecFx32_Copy(&sp08, &this->mUnk_28F4); + + this->func_ov031_020ed4e4(0x0, 0x93F); +} + +// non-matching +void UnkStruct_ov031_020ecc68::func_ov031_020ed47c(ActorUnkZLSL *param1, unk32 param2) {} + +void ActorUnkZLSL::func_ov031_020ed4e4(unk32 param1, unk32 param2) { + if (this->mUnk_28C8 < 0x0) { + return; + } + if (data_027e09b8->func_ov000_020732ec(this->mUnk_28C8) == 0x0) { + return; + } + data_027e09bc->mUnk_0C->func_ov000_02078834(&this->mUnk_28F4, &this->mUnk_28E8, param2, param1); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ed55c() {} + +// non-matching +bool ActorUnkZLSL::func_ov031_020ed6cc(unk32 param1) {} + +// non-matching +bool ActorUnkZLSL::func_ov031_020ed8ac(unk32 param1) {} + +// non-matching +void ActorUnkZLSL::func_ov031_020edc80() { + unk32 var_r6 = 0; + Actor *actor = NULL; + func_01ffe6c4(&actor, this->mRef, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, &this->mPos, NULL); + if (this->mUnk_2900 & 1) { + var_r6 = data_027e09c0->func_ov000_0207dc88(&actor, this->mUnk_38); + } + unk32 temp_r6 = var_r6 | actor->func_ov000_0207df88(this->mUnk_30, 0x10); + this->mUnk_46 = (s16) (temp_r6 | actor->func_ov000_0207e294(this->mUnk_30)); +} + +void ActorUnkZLSL::func_ov031_020edd14(VecFx32 *param1) { + VecFx32_Copy(&gpActorManager->func_01fff3b4(this->mUnk_28DC)->mPos, param1); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020edd54() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ede30() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020edf98() {} + +// non-matching +void ActorUnkZLSL::GetOffsetPos(VecFx32 *pPos) const { + VecFx32_Init(this->mUnk_2878.x, this->mUnk_2878.y + this->mYOffset, this->mUnk_2878.z, pPos); +} + +// non-matching +void ActorUnkZLSL::vfunc_A4() { + VecFx32 sp0C; + if ((this->mUnk_0B0 & 0x10) || !this->func_ov000_020a8ff4(&sp0C)) { + func_01ff930c(&this->mUnk_0D8, 0x0, 0x71C); + return; + } + VecFx32 sp00 = this->mPos; + sp00.y = sp00.y + this->mYOffset - FLOAT_TO_FX32(0.5f); + func_01ffb714(&sp0C, &sp00, &sp0C); + + s16 var_r4 = this->mAngle - func_01ffbbe0(sp0C.x, sp0C.z); + if (this->mUnk_0E8 < this->mUnk_0EA) { + ++this->mUnk_0E8; + } + unk32 var_r0 = var_r4; + if (var_r4 < 0) { + var_r0 = -var_r4; + } + if ((var_r0 <= 0x4000 && func_01ff9258(sp0C.x, sp0C.z) < 0x2000) || this->mUnk_0B0 & 1) { + if (var_r4 >= 0x2AAB) { + var_r4 = 0x2AAB; + } else if (var_r4 <= -0x2AAB) { + var_r4 = -0x2AAB; + } + u16 temp_r0_2 = (u16) func_01ffbbe0(sp0C.y, func_01ff9258(sp0C.x, sp0C.z)); + s16 var_r2 = temp_r0_2; + if (temp_r0_2 <= 0x18E4) { + var_r2 = 0x18E4; + } else if (var_r2 <= -0x18E4) { + var_r2 = -0x18E4; + } + this->mUnk_0CC = (s16) var_r4; + this->mUnk_0CE = var_r2; + this->mUnk_0EA = 0x32; + this->mUnk_0E8 = 0x0; + } else if ((u32) this->mUnk_0E8 >= (u32) this->mUnk_0EA) { + this->mUnk_0CE = 0x0; + this->mUnk_0CC = 0x0; + } else { + if ((s32) var_r4 < 0x0) { + var_r4 = 0 - var_r4; + } + if ((s32) var_r4 >= 0x71C7) { + this->mUnk_0D0 = 0x0; + } + } + + func_01ff916c(&this->mUnk_0D0, 0x1EC, 0x19); + unk16 temp_r1 = this->mUnk_0CC; + if (this->mState != ActorUnkZLSLState_4) { + func_01ff9318(&this->mUnk_0D8, temp_r1, this->mUnk_0D0); + } else { + func_01ff930c(&this->mUnk_0D8, temp_r1, 0x71C); + } + func_01ff9318(&this->mUnk_0DA, this->mUnk_0CE, this->mUnk_0D0); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ee1f4() {} + +// non-matching +unk16 ActorUnkZLSL::func_ov031_020ee2c8() {} + +void ActorUnkZLSL::vfunc_B4() { + if (this->mState == ActorUnkZLSLState_8) { + this->vfunc_58(ActorUnkZLSLState_10); + return; + } + this->vfunc_58(ActorUnkZLSLState_0); +} + +// non-matching +void ActorUnkZLSL::func_ov031_020ee41c() {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ee4c4(UnkAngleStruct angle) {} + +// non-matching +void ActorUnkZLSL::func_ov031_020ee654() {} + +// non-matching +unk32 ActorUnkZLSL::vfunc_80(unk32 param1, unk32 param2) { + u32 value = (u16) ((u8) (param1 + 1) | param2 << 0x8); + if (value == 0x201) { + ActorUnkRPMT *actor = (ActorUnkRPMT *) func_02016fbc(ActorId_RPMT, &this->mPos, 0x0); + if (actor != NULL) { + return actor->mUnk_A4; + } + } + return false; +} + +bool ActorUnkZLSL::func_ov031_020ee724() { + UnkStruct_ov031_0211361c stack; + + Actor **actor = gpActorManager->func_01fff350(&stack, gpActorManager->mActorTable); + return *actor != NULL; +} + +void ActorUnkZLSL_27CC::vfunc_3C() { + func_ov000_02057c98(this->mUnk_08, this->vfunc_10()); +} + +void ActorUnkZLSL_27CC::vfunc_38(unk32 param1, unk32 param2) { + func_ov000_020578a4(this->mUnk_04); +} + +s8 ActorUnkZLSL_27CC::vfunc_30() { + return this->mUnk_18; +} + +void UnkStruct_ov031_0211372c::vfunc_3C() { + func_ov000_02057c98(this->mUnk_08, this->mUnk_04); + func_ov000_02057c98(this->mUnk_08, this->mUnk_1C); +} + +void UnkStruct_ov031_0211372c::vfunc_38(unk32 param1, unk32 param2) { + this->mUnk_04->func_ov000_020578a4(param1, param2); + this->mUnk_1C->func_ov000_020578a4(param1, param2); +} diff --git a/src/040_MapB1/Actor/ActorUnkFTRN.cpp b/src/040_MapB1/Actor/ActorUnkFTRN.cpp index 5cdaf45f..6ed3ca9e 100644 --- a/src/040_MapB1/Actor/ActorUnkFTRN.cpp +++ b/src/040_MapB1/Actor/ActorUnkFTRN.cpp @@ -56,7 +56,7 @@ void ActorUnkFTRN::func_ov040_02125dc0(void) {} void ActorUnkFTRN::func_ov040_02125f70(void) {} void ActorUnkFTRN::func_ov040_0212602c(void) {} void ActorUnkFTRN::func_ov040_02126090(void) {} -void ActorUnkFTRN::func_ov040_021260dc(void) {} +void ActorUnkFTRN::func_ov040_021260dc(unk32 param1) {} void ActorUnkFTRN::func_ov040_021260fc(void) {} void ActorUnkFTRN::func_ov040_02126144(void) {} void ActorUnkFTRN::func_ov040_02126214(void) {} diff --git a/src/041_MapB2/Actor/ActorUnkRPMT.cpp b/src/041_MapB2/Actor/ActorUnkRPMT.cpp index c81278e6..3d361d49 100644 --- a/src/041_MapB2/Actor/ActorUnkRPMT.cpp +++ b/src/041_MapB2/Actor/ActorUnkRPMT.cpp @@ -12,7 +12,8 @@ Actor *ActorProfileUnkRPMT::Create() { ActorProfileUnkRPMT::ActorProfileUnkRPMT() : ActorProfile(ActorId_RPMT) {} -ActorUnkRPMT::ActorUnkRPMT() {} +ActorUnkRPMT::ActorUnkRPMT() : + mUnk_A4(false) {} void ActorUnkRPMT::func_ov041_0212a848(void) {} void ActorUnkRPMT::func_ov041_0212a850(void) {}