diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 4d1ba562..3e938347 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -64,8 +64,8 @@ _ZN4Game19func_ov000_0205770cEv kind:function(arm,size=0x14) addr:0x0205770c _ZN19func_ov000_02057720D1Ev kind:function(arm,size=0x14) addr:0x02057720 _ZN19func_ov000_02057734D0Ev kind:function(arm,size=0x1c) addr:0x02057734 func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057750 -func_ov000_0205775c kind:function(thumb,size=0x20) addr:0x0205775c -func_ov000_0205777c kind:function(thumb,size=0xe) addr:0x0205777c +_ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x0205775c +_ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x0205777c _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205778c _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x020577a4 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577f8 @@ -104,8 +104,8 @@ func_ov000_02057c98 kind:function(arm,size=0x18) addr:0x02057c98 func_ov000_02057cb0 kind:function(arm,size=0x18) addr:0x02057cb0 func_ov000_02057cc8 kind:function(arm,size=0x2c) addr:0x02057cc8 func_ov000_02057cf4 kind:function(arm,size=0x2c) addr:0x02057cf4 -func_ov000_02057d20 kind:function(thumb,size=0x1c) addr:0x02057d20 -func_ov000_02057d3c kind:function(arm,size=0x30) addr:0x02057d3c +_ZN11ModelRender19func_ov000_02057d20Eh kind:function(thumb,size=0x1c) addr:0x02057d20 +_ZN11ModelRender19func_ov000_02057d3cEP18G3d_BoneMtxStruct_ kind:function(arm,size=0x30) addr:0x02057d3c func_ov000_02057d6c kind:function(arm,size=0x18) addr:0x02057d6c _ZN11ModelRender8vfunc_20Ev kind:function(arm,size=0x18) addr:0x02057d84 func_ov000_02057d9c kind:function(arm,size=0x2c) addr:0x02057d9c @@ -116,10 +116,10 @@ _ZN15ModelRenderBaseD1Ev kind:function(thumb,size=0x2) addr:0x02057ec4 _ZN15ModelRenderBaseD0Ev kind:function(thumb,size=0xc) addr:0x02057ec8 _ZN15ModelRenderBaseD2Ev kind:function(thumb,size=0x2) addr:0x02057ed4 func_ov000_02057ed8 kind:function(arm,size=0x8) addr:0x02057ed8 -func_ov000_02057ee0 kind:function(arm,size=0x14) addr:0x02057ee0 +_ZNK15ModelRenderBase19func_ov000_02057ee0Ev kind:function(arm,size=0x14) addr:0x02057ee0 func_ov000_02057ef4 kind:function(arm,size=0x24) addr:0x02057ef4 -func_ov000_02057f18 kind:function(arm,size=0x28) addr:0x02057f18 -func_ov000_02057f40 kind:function(arm,size=0x34) addr:0x02057f40 +_ZN15ModelRenderBase19func_ov000_02057f18EPKv kind:function(arm,size=0x28) addr:0x02057f18 +_ZN15ModelRenderBase19func_ov000_02057f40EPKv kind:function(arm,size=0x34) addr:0x02057f40 func_ov000_02057f74 kind:function(arm,size=0x24) addr:0x02057f74 func_ov000_02057f98 kind:function(arm,size=0x28) addr:0x02057f98 func_ov000_02057fc0 kind:function(arm,size=0x28) addr:0x02057fc0 @@ -1687,16 +1687,16 @@ func_ov000_02082de0 kind:function(arm,size=0xc) addr:0x02082de0 func_ov000_02082dec kind:function(arm,size=0xc) addr:0x02082dec func_ov000_02082df8 kind:function(thumb,size=0x5a) addr:0x02082df8 func_ov000_02082e54 kind:function(arm,size=0x24) addr:0x02082e54 -func_ov000_02082e78 kind:function(arm,size=0x22c) addr:0x02082e78 +_ZN18PlayerActorBase_7019func_ov000_02082e78Eiiii kind:function(arm,size=0x22c) addr:0x02082e78 func_ov000_020830a4 kind:function(arm,size=0x30) addr:0x020830a4 -func_ov000_020830d4 kind:function(arm,size=0x334) addr:0x020830d4 -func_ov000_02083408 kind:function(thumb,size=0x44) addr:0x02083408 -func_ov000_0208344c kind:function(thumb,size=0x2) addr:0x0208344c +_ZN18PlayerActorBase_7019func_ov000_020830d4E29UnkStruct_func_ov001_020bbe18jhi kind:function(arm,size=0x334) addr:0x020830d4 +_ZN21PlayerActorBase_70_6CC1EiPvP10G3d_Model_ kind:function(thumb,size=0x44) addr:0x02083408 +_ZN21PlayerActorBase_70_6CD1Ev kind:function(thumb,size=0x2) addr:0x0208344c func_ov000_02083450 kind:function(arm,size=0xc) addr:0x02083450 func_ov000_0208345c kind:function(arm,size=0x2e0) addr:0x0208345c func_ov000_0208373c kind:function(arm,size=0x24) addr:0x0208373c func_ov000_02083760 kind:function(arm,size=0x40) addr:0x02083760 -func_ov000_020837a0 kind:function(thumb,size=0x14) addr:0x020837a0 +_ZN21PlayerActorBase_70_30C1EiP22ModelRender_UnkSystem1S1_ kind:function(thumb,size=0x14) addr:0x020837a0 func_ov000_020837b4 kind:function(arm,size=0x74) addr:0x020837b4 func_ov000_02083828 kind:function(arm,size=0x34) addr:0x02083828 func_ov000_0208385c kind:function(arm,size=0x7c) addr:0x0208385c @@ -1761,7 +1761,7 @@ func_ov000_020861a0 kind:function(arm,size=0xf8) addr:0x020861a0 func_ov000_02086298 kind:function(arm,size=0x16c) addr:0x02086298 func_ov000_02086404 kind:function(arm,size=0xf4) addr:0x02086404 func_ov000_020864f8 kind:function(arm,size=0x114) addr:0x020864f8 -_ZN14PlayerActor_9CC1Ev kind:function(thumb,size=0xf8) addr:0x0208660c +_ZN18PlayerLinkActor_9CC1EP21UnkStruct_027e0ce0_40ji kind:function(thumb,size=0xf8) addr:0x0208660c func_ov000_02086704 kind:function(thumb,size=0x54) addr:0x02086704 func_ov000_02086758 kind:function(arm,size=0x9c) addr:0x02086758 func_ov000_020867f4 kind:function(arm,size=0x3c) addr:0x020867f4 @@ -1851,15 +1851,15 @@ func_ov000_020898d8 kind:function(arm,size=0x24) addr:0x020898d8 func_ov000_020898fc kind:function(arm,size=0x14) addr:0x020898fc func_ov000_02089910 kind:function(arm,size=0x2c) addr:0x02089910 func_ov000_0208993c kind:function(arm,size=0x4c) addr:0x0208993c -func_ov000_02089988 kind:function(thumb,size=0xa) addr:0x02089988 -func_ov000_02089994 kind:function(thumb,size=0x2) addr:0x02089994 +_ZN18PlayerLinkActor_A4C1EP15PlayerActorBaseP18PlayerLinkActor_A0 kind:function(thumb,size=0xa) addr:0x02089988 +_ZN18PlayerLinkActor_A4D1Ev kind:function(thumb,size=0x2) addr:0x02089994 func_ov000_02089998 kind:function(arm,size=0x184) addr:0x02089998 func_ov000_02089b1c kind:function(arm,size=0x3c) addr:0x02089b1c func_ov000_02089b58 kind:function(arm,size=0x64) addr:0x02089b58 func_ov000_02089bbc kind:function(arm,size=0x64) addr:0x02089bbc func_ov000_02089c20 kind:function(arm,size=0xbc) addr:0x02089c20 func_ov000_02089cdc kind:function(arm,size=0xe8) addr:0x02089cdc -func_ov000_02089dc4 kind:function(arm,size=0x28) addr:0x02089dc4 +_ZN18PlayerActorBase_5C19func_ov000_02089dc4Ev kind:function(arm,size=0x28) addr:0x02089dc4 func_ov000_02089dec kind:function(arm,size=0x68) addr:0x02089dec func_ov000_02089e54 kind:function(arm,size=0x88) addr:0x02089e54 func_ov000_02089edc kind:function(arm,size=0x30) addr:0x02089edc @@ -1868,8 +1868,8 @@ func_ov000_02089f4c kind:function(arm,size=0x28) addr:0x02089f4c func_ov000_02089f74 kind:function(arm,size=0x24) addr:0x02089f74 func_ov000_02089f98 kind:function(arm,size=0x18) addr:0x02089f98 func_ov000_02089fb0 kind:function(arm,size=0xe0) addr:0x02089fb0 -func_ov000_0208a090 kind:function(arm,size=0x60) addr:0x0208a090 -_ZN22UnkStruct_PlayerGet_64C1EPii kind:function(arm,size=0x10) addr:0x0208a0f0 +_ZN22PlayerActorBase_70_134C1Ev kind:function(arm,size=0x60) addr:0x0208a090 +_ZN22UnkStruct_PlayerGet_64C1EPv kind:function(arm,size=0x10) addr:0x0208a0f0 func_ov000_0208a100 kind:function(arm,size=0x64) addr:0x0208a100 _ZN22UnkStruct_PlayerGet_64D1Ev kind:function(arm,size=0x64) addr:0x0208a164 func_ov000_0208a1c8 kind:function(thumb,size=0x48) addr:0x0208a1c8 @@ -1956,9 +1956,9 @@ func_ov000_0208bf88 kind:function(arm,size=0x24) addr:0x0208bf88 func_ov000_0208bfac kind:function(arm,size=0x10) addr:0x0208bfac func_ov000_0208bfbc kind:function(arm,size=0x14) addr:0x0208bfbc func_ov000_0208bfd0 kind:function(arm,size=0x14) addr:0x0208bfd0 -func_ov000_0208bfe4 kind:function(thumb,size=0x3c) addr:0x0208bfe4 +_ZN20ModelRender_Derived3C2EiP10G3d_Model_ kind:function(thumb,size=0x3c) addr:0x0208bfe4 func_ov000_0208c020 kind:function(thumb,size=0x38) addr:0x0208c020 -func_ov000_0208c058 kind:function(thumb,size=0x48) addr:0x0208c058 +_ZN20ModelRender_Derived319func_ov000_0208c058Ei kind:function(thumb,size=0x48) addr:0x0208c058 func_ov000_0208c0a0 kind:function(arm,size=0x40) addr:0x0208c0a0 func_ov000_0208c0e0 kind:function(arm,size=0x28) addr:0x0208c0e0 func_ov000_0208c108 kind:function(arm,size=0x74) addr:0x0208c108 @@ -1972,14 +1972,14 @@ _ZN19func_ov000_0208c6b4D0Ev kind:function(arm,size=0x1c) addr:0x0208c6b4 func_ov000_0208c6d0 kind:function(thumb,size=0x2) addr:0x0208c6d0 func_ov000_0208c6d4 kind:function(arm,size=0x50) addr:0x0208c6d4 func_ov000_0208c724 kind:function(arm,size=0x68) addr:0x0208c724 -func_ov000_0208c78c kind:function(thumb,size=0x24) addr:0x0208c78c +_ZN21PlayerActorBase_70_1CC1EP18PlayerActorBase_70 kind:function(thumb,size=0x24) addr:0x0208c78c func_ov000_0208c7b0 kind:function(arm,size=0x40) addr:0x0208c7b0 func_ov000_0208c7f0 kind:function(arm,size=0x1c) addr:0x0208c7f0 func_ov000_0208c80c kind:function(arm,size=0x68) addr:0x0208c80c -func_ov000_0208c874 kind:function(thumb,size=0x18) addr:0x0208c874 +_ZN21PlayerActorBase_70_E4C1Ev kind:function(thumb,size=0x18) addr:0x0208c874 func_ov000_0208c88c kind:function(arm,size=0x6c) addr:0x0208c88c -func_ov000_0208c8f8 kind:function(thumb,size=0x1a) addr:0x0208c8f8 -func_ov000_0208c914 kind:function(thumb,size=0x4c) addr:0x0208c914 +_ZN15PlayerActorBase19func_ov000_0208c8f8EP7VecFx32 kind:function(thumb,size=0x1a) addr:0x0208c8f8 +_ZN15PlayerActorBase19func_ov000_0208c914Ev kind:function(thumb,size=0x4c) addr:0x0208c914 func_ov000_0208c960 kind:function(thumb,size=0x3c) addr:0x0208c960 func_ov000_0208c99c kind:function(arm,size=0x6c) addr:0x0208c99c func_ov000_0208ca08 kind:function(arm,size=0xc0) addr:0x0208ca08 @@ -2003,12 +2003,12 @@ func_ov000_0208d1dc kind:function(arm,size=0x58) addr:0x0208d1dc func_ov000_0208d234 kind:function(arm,size=0x174) addr:0x0208d234 func_ov000_0208d3a8 kind:function(arm,size=0x28) addr:0x0208d3a8 func_ov000_0208d3d0 kind:function(arm,size=0x2c) addr:0x0208d3d0 -func_ov000_0208d3fc kind:function(thumb,size=0x90) addr:0x0208d3fc +_ZN15PlayerActorBase19func_ov000_0208d3fcEv kind:function(thumb,size=0x90) addr:0x0208d3fc func_ov000_0208d48c kind:function(arm,size=0x114) addr:0x0208d48c func_ov000_0208d5a0 kind:function(arm,size=0x6c) addr:0x0208d5a0 func_ov000_0208d60c kind:function(arm,size=0x148) addr:0x0208d60c func_ov000_0208d754 kind:function(arm,size=0x9c) addr:0x0208d754 -func_ov000_0208d7f0 kind:function(arm,size=0x100) addr:0x0208d7f0 +_ZN15PlayerActorBase19func_ov000_0208d7f0Eb kind:function(arm,size=0x100) addr:0x0208d7f0 func_ov000_0208d8f0 kind:function(arm,size=0x38) addr:0x0208d8f0 func_ov000_0208d928 kind:function(arm,size=0x18) addr:0x0208d928 func_ov000_0208d940 kind:function(arm,size=0x194) addr:0x0208d940 @@ -2069,7 +2069,7 @@ func_ov000_0208ee94 kind:function(arm,size=0x8c) addr:0x0208ee94 func_ov000_0208ef20 kind:function(arm,size=0x68) addr:0x0208ef20 func_ov000_0208ef88 kind:function(thumb,size=0x34) addr:0x0208ef88 func_ov000_0208efbc kind:function(thumb,size=0x12) addr:0x0208efbc -func_ov000_0208efd0 kind:function(thumb,size=0x14) addr:0x0208efd0 +_ZN21PlayerLinkActor_9C_3419func_ov000_0208efd0EP7VecFx32 kind:function(thumb,size=0x14) addr:0x0208efd0 func_ov000_0208efe4 kind:function(arm,size=0x28) addr:0x0208efe4 func_ov000_0208f00c kind:function(arm,size=0x430) addr:0x0208f00c func_ov000_0208f43c kind:function(arm,size=0x120) addr:0x0208f43c @@ -2114,7 +2114,7 @@ func_ov000_0209167c kind:function(arm,size=0x40) addr:0x0209167c _ZN19func_ov000_020916bcD0Ev kind:function(arm,size=0x48) addr:0x020916bc func_ov000_02091704 kind:function(arm,size=0xe4) addr:0x02091704 func_ov000_020917e8 kind:function(arm,size=0x4c4) addr:0x020917e8 -_ZN14PlayerActor_A0C1Ev kind:function(thumb,size=0x1f4) addr:0x02091cac +_ZN18PlayerLinkActor_A0C1EiP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02091cac func_ov000_02091ea0 kind:function(arm,size=0x18) addr:0x02091ea0 func_ov000_02091eb8 kind:function(arm,size=0x50) addr:0x02091eb8 func_ov000_02091f08 kind:function(arm,size=0x28) addr:0x02091f08 @@ -2142,9 +2142,9 @@ func_ov000_02093650 kind:function(arm,size=0x4c) addr:0x02093650 func_ov000_0209369c kind:function(arm,size=0x28) addr:0x0209369c func_ov000_020936c4 kind:function(arm,size=0x28) addr:0x020936c4 _ZN27UnkStruct_ov000_0208f820_3019func_ov000_020936ecEv kind:function(arm,size=0x2c) addr:0x020936ec -func_ov000_02093718 kind:function(arm,size=0x38) addr:0x02093718 +_ZN18PlayerLinkActor_A019func_ov000_02093718Ev kind:function(arm,size=0x38) addr:0x02093718 func_ov000_02093750 kind:function(arm,size=0x3c) addr:0x02093750 -func_ov000_0209378c kind:function(arm,size=0x58) addr:0x0209378c +_ZN18PlayerLinkActor_A019func_ov000_0209378cEv kind:function(arm,size=0x58) addr:0x0209378c func_ov000_020937e4 kind:function(arm,size=0xc0) addr:0x020937e4 func_ov000_020938a4 kind:function(arm,size=0x2c) addr:0x020938a4 func_ov000_020938d0 kind:function(arm,size=0x2c) addr:0x020938d0 @@ -3579,7 +3579,7 @@ data_ov000_020b2b28 kind:data(any) addr:0x020b2b28 data_ov000_020b2b2c kind:data(any) addr:0x020b2b2c data_ov000_020b2b38 kind:data(any) addr:0x020b2b38 data_ov000_020b2b44 kind:data(any) addr:0x020b2b44 -data_ov000_020b2b70 kind:data(any) addr:0x020b2b70 +_ZTV20ModelRender_Derived4 kind:data(any) addr:0x020b2b68 data_ov000_020b2b9c kind:data(any) addr:0x020b2b9c data_ov000_020b2ba0 kind:data(any) addr:0x020b2ba0 data_ov000_020b2bb0 kind:data(any) addr:0x020b2bb0 diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt index cebc10d9..0ff04dae 100644 --- a/config/eur/arm9/overlays/ov001/delinks.txt +++ b/config/eur/arm9/overlays/ov001/delinks.txt @@ -70,6 +70,7 @@ src/001_SceneInit/Item/ItemManager_001.cpp: .text start:0x020bb87c end:0x020bbac4 src/001_SceneInit/Player/PlayerActorBase_70_001.cpp: + complete .text start:0x020bbac4 end:0x020bbe64 src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp: @@ -87,8 +88,17 @@ src/001_SceneInit/code_020bc2c8_001.cpp: src/001_SceneInit/UnkStruct_027e0ce0_001.cpp: .text start:0x020bc34c end:0x020bc768 -src/001_SceneInit/Player/Player_001.cpp: - .text start:0x020bc768 end:0x020bcca0 +src/001_SceneInit/UnkStruct_027e0cdc_001.cpp: + complete + .text start:0x020bc768 end:0x020bc794 + +src/001_SceneInit/Player/PlayerActorBase_001.cpp: + complete + .text start:0x020bc794 end:0x020bc99c + +src/001_SceneInit/Player/PlayerLinkActor_001.cpp: + complete + .text start:0x020bc99c end:0x020bcca0 src/001_SceneInit/CargoManager_001.cpp: complete diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 906b2e5d..52af54c7 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -1342,7 +1342,7 @@ from:0x020bc7c8 kind:thumb_call_arm to:0x02057d3c module:overlay(0) from:0x020bc7d6 kind:thumb_call_arm to:0x02057f18 module:overlay(0) from:0x020bc7f0 kind:thumb_call_arm to:0x02057f40 module:overlay(0) from:0x020bc80a kind:thumb_call to:0x0208c058 module:overlay(0) -from:0x020bc814 kind:load to:0x020b2b70 module:overlay(0) +from:0x020bc814 kind:load to:0x020b2b68 module:overlay(0) add:0x8 from:0x020bc818 kind:load to:0x020c26bc module:overlay(1) from:0x020bc81c kind:load to:0x020c264c module:overlay(1) from:0x020bc860 kind:thumb_call_arm to:0x0208a0f0 module:overlay(0) @@ -1355,7 +1355,7 @@ from:0x020bc8c8 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bc8d0 kind:thumb_call_arm to:0x020db190 module:overlay(31) from:0x020bc8f8 kind:thumb_call to:0x0205c584 module:overlay(0) from:0x020bc91a kind:thumb_call to:0x0208c914 module:overlay(0) -from:0x020bc920 kind:thumb_call_arm to:0x020ea868 module:overlays(21,31) +from:0x020bc920 kind:thumb_call_arm to:0x020ea868 module:overlay(21) from:0x020bc930 kind:thumb_call_arm to:0x0205fc20 module:overlay(0) from:0x020bc93c kind:load to:0x027e09a4 module:dtcm from:0x020bc940 kind:load to:0x020ab4dc module:overlay(0) diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index a37e44e1..9a4786dd 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -196,10 +196,10 @@ _ZN9Inventory19func_ov001_020bb8bcEPK13InvImportData kind:function(thumb,size=0x _ZN9Inventory19func_ov001_020bb9f8Ev kind:function(thumb,size=0x5c) addr:0x020bb9f8 _ZN9Inventory19func_ov001_020bba54Ev kind:function(thumb,size=0x18) addr:0x020bba54 _ZN9Inventory19func_ov001_020bba6cEv kind:function(thumb,size=0x58) addr:0x020bba6c -func_ov001_020bbac4 kind:function(thumb,size=0x5c) addr:0x020bbac4 -_ZN18PlayerActorBase_70C1Ev kind:function(thumb,size=0x260) addr:0x020bbb20 -func_ov001_020bbd80 kind:function(thumb,size=0x96) addr:0x020bbd80 -func_ov001_020bbe18 kind:function(thumb,size=0x4c) addr:0x020bbe18 +_Z19func_ov001_020bbac4iP10G3d_Model_ib kind:function(thumb,size=0x5c) addr:0x020bbac4 +_ZN18PlayerActorBase_70C1Eii kind:function(thumb,size=0x260) addr:0x020bbb20 +_ZN18PlayerActorBase_70D1Ev kind:function(thumb,size=0x96) addr:0x020bbd80 +_ZN18PlayerActorBase_7019func_ov001_020bbe18Ei29UnkStruct_func_ov001_020bbe18jh kind:function(thumb,size=0x4c) addr:0x020bbe18 func_ov001_020bbe64 kind:function(thumb,size=0x7c) addr:0x020bbe64 func_ov001_020bbee0 kind:function(thumb,size=0x2) addr:0x020bbee0 func_ov001_020bbee4 kind:function(thumb,size=0x18) addr:0x020bbee4 @@ -232,32 +232,32 @@ _ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:f _ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bc6fc func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bc750 func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bc75c -func_ov001_020bc768 kind:function(thumb,size=0x20) addr:0x020bc768 -func_ov001_020bc788 kind:function(thumb,size=0xc) addr:0x020bc788 -func_ov001_020bc794 kind:function(thumb,size=0x8c) addr:0x020bc794 -_ZN15PlayerActorBaseC2Ev kind:function(thumb,size=0x124) addr:0x020bc820 -func_ov001_020bc944 kind:function(thumb,size=0x28) addr:0x020bc944 -func_ov001_020bc96c kind:function(thumb,size=0x2e) addr:0x020bc96c -_ZN11PlayerActorC1Ev kind:function(thumb,size=0x138) addr:0x020bc99c -_ZN15PlayerActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020bcad4 -func_ov001_020bcae0 kind:function(thumb,size=0x80) addr:0x020bcae0 -func_ov001_020bcb60 kind:function(thumb,size=0x10) addr:0x020bcb60 -func_ov001_020bcb70 kind:function(thumb,size=0x36) addr:0x020bcb70 -func_ov001_020bcba8 kind:function(thumb,size=0x26) addr:0x020bcba8 -func_ov001_020bcbd0 kind:function(thumb,size=0x98) addr:0x020bcbd0 -func_ov001_020bcc68 kind:function(thumb,size=0x20) addr:0x020bcc68 -_ZN15PlayerActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020bcc88 -func_ov001_020bcc94 kind:function(thumb,size=0xc) addr:0x020bcc94 +_ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bc768 +_ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bc788 +_ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bc794 +_ZN15PlayerActorBaseC2EiiiP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020bc820 +_ZN15PlayerActorBaseD2Ev kind:function(thumb,size=0x28) addr:0x020bc944 +_ZN15PlayerActorBase19func_ov001_020bc96cEv kind:function(thumb,size=0x2e) addr:0x020bc96c +_ZN15PlayerLinkActorC1EiiP21UnkStruct_027e0ce0_40Pb kind:function(thumb,size=0x138) addr:0x020bc99c +_ZN19PlayerLinkActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020bcad4 +_ZN15PlayerLinkActorD1Ev kind:function(thumb,size=0x80) addr:0x020bcae0 +_ZN15PlayerLinkActor19func_ov001_020bcb60Ei kind:function(thumb,size=0x10) addr:0x020bcb60 +_ZN15PlayerLinkActor19func_ov001_020bcb70Ev kind:function(thumb,size=0x36) addr:0x020bcb70 +_ZN15PlayerLinkActor19func_ov001_020bcba8Ev kind:function(thumb,size=0x26) addr:0x020bcba8 +_ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x98) addr:0x020bcbd0 +_ZN18UnkStruct_027e0d347DestroyEv kind:function(thumb,size=0x20) addr:0x020bcc68 +_ZN19PlayerLinkActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020bcc88 +_ZN8InstanceI18UnkStruct_027e0d34ED2Ev kind:function(thumb,size=0xc) addr:0x020bcc94 func_ov001_020bcca0 kind:function(thumb,size=0x46) addr:0x020bcca0 func_ov001_020bcce8 kind:function(thumb,size=0x2) addr:0x020bcce8 func_ov001_020bccec kind:function(thumb,size=0x2fe) addr:0x020bccec func_ov001_020bcfec kind:function(thumb,size=0xb8) addr:0x020bcfec _ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd0a4Eb kind:function(thumb,size=0x148) addr:0x020bd0a4 func_ov001_020bd1ec kind:function(thumb,size=0x80) addr:0x020bd1ec -func_ov001_020bd26c kind:function(thumb,size=0x74) addr:0x020bd26c -func_ov001_020bd2e0 kind:function(thumb,size=0x78) addr:0x020bd2e0 -func_ov001_020bd358 kind:function(thumb,size=0x30) addr:0x020bd358 -func_ov001_020bd388 kind:function(thumb,size=0x128) addr:0x020bd388 +_ZN18PlayerLinkActor_A0D1Ev kind:function(thumb,size=0x74) addr:0x020bd26c +_ZN18PlayerLinkActor_A019func_ov001_020bd2e0Ev kind:function(thumb,size=0x78) addr:0x020bd2e0 +_ZN18PlayerLinkActor_A019func_ov001_020bd358Ev kind:function(thumb,size=0x30) addr:0x020bd358 +_ZN18PlayerLinkActor_A019func_ov001_020bd388Ebb kind:function(thumb,size=0x128) addr:0x020bd388 func_ov001_020bd4b0 kind:function(thumb,size=0x40) addr:0x020bd4b0 func_ov001_020bd4f0 kind:function(thumb,size=0x22) addr:0x020bd4f0 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bd514 diff --git a/config/eur/arm9/overlays/ov021/symbols.txt b/config/eur/arm9/overlays/ov021/symbols.txt index 5ca64fa8..69bec4ce 100644 --- a/config/eur/arm9/overlays/ov021/symbols.txt +++ b/config/eur/arm9/overlays/ov021/symbols.txt @@ -85,7 +85,7 @@ func_ov021_020ebc3c kind:function(thumb,size=0x28) addr:0x020ebc3c func_ov021_020ebc64 kind:function(thumb,size=0x2) addr:0x020ebc64 func_ov021_020ebc68 kind:function(arm,size=0x4c) addr:0x020ebc68 func_ov021_020ebcb4 kind:function(arm,size=0xec) addr:0x020ebcb4 -func_ov021_020ebda0 kind:function(arm,size=0x50) addr:0x020ebda0 +_ZN15PlayerLinkActor19func_ov021_020ebda0Ev kind:function(arm,size=0x50) addr:0x020ebda0 func_ov021_020ebdf0 kind:function(arm,size=0x58) addr:0x020ebdf0 func_ov021_020ebe48 kind:function(arm,size=0x24) addr:0x020ebe48 func_ov021_020ebe6c kind:function(arm,size=0x178) addr:0x020ebe6c diff --git a/config/eur/arm9/overlays/ov024/symbols.txt b/config/eur/arm9/overlays/ov024/symbols.txt index 99ae1596..007fb011 100644 --- a/config/eur/arm9/overlays/ov024/symbols.txt +++ b/config/eur/arm9/overlays/ov024/symbols.txt @@ -461,11 +461,11 @@ _ZN27UnkStruct_ov024_020d86a0_00C1EP24UnkStruct_ov024_020d86a0 kind:function(arm _ZN27UnkStruct_ov024_020d86a0_00D1Ev kind:function(arm,size=0x14) addr:0x020d16bc _ZN27UnkStruct_ov024_020d86a0_00D0Ev kind:function(arm,size=0x1c) addr:0x020d16d0 _ZN27UnkStruct_ov024_020d86a0_008vfunc_0CEv kind:function(arm,size=0x10) addr:0x020d16ec -_ZN20PlayerActor_A0_38_048vfunc_00Ev kind:function(arm,size=0x80) addr:0x020d16fc -_ZN20PlayerActor_A0_38_188vfunc_00Ev kind:function(arm,size=0x200) addr:0x020d177c -_ZN17PlayerActor_A0_38C1Ev kind:function(thumb,size=0x44) addr:0x020d197c -_ZN17PlayerActor_A0_38D1Ev kind:function(thumb,size=0x16) addr:0x020d19c0 -_ZN17PlayerActor_A0_3819func_ov024_020d19d8Ev kind:function(thumb,size=0x20) addr:0x020d19d8 +_ZN24PlayerLinkActor_A0_38_048vfunc_00Ev kind:function(arm,size=0x80) addr:0x020d16fc +_ZN24PlayerLinkActor_A0_38_188vfunc_00Ev kind:function(arm,size=0x200) addr:0x020d177c +_ZN21PlayerLinkActor_A0_38C1Ev kind:function(thumb,size=0x44) addr:0x020d197c +_ZN21PlayerLinkActor_A0_38D1Ev kind:function(thumb,size=0x16) addr:0x020d19c0 +_ZN21PlayerLinkActor_A0_3819func_ov024_020d19d8Ev kind:function(thumb,size=0x20) addr:0x020d19d8 _Z20SetCreditsEndingTypes kind:function(arm,size=0x10) addr:0x020d19f8 _Z20GetCreditsEndingTypev kind:function(arm,size=0x10) addr:0x020d1a08 _ZN17UnkDataStruct4_1419func_ov024_020d1a18Ei kind:function(arm,size=0x10) addr:0x020d1a18 @@ -819,8 +819,8 @@ data_ov024_020d822c kind:data(byte[4]) addr:0x020d822c data_ov024_020d8230 kind:data(byte[4]) addr:0x020d8230 data_ov024_020d8234 kind:data(byte[4]) addr:0x020d8234 data_ov024_020d8238 kind:data(byte[4]) addr:0x020d8238 -_ZTV20PlayerActor_A0_38_18 kind:data(any) addr:0x020d823c -_ZTV20PlayerActor_A0_38_04 kind:data(any) addr:0x020d8248 +_ZTV24PlayerLinkActor_A0_38_18 kind:data(any) addr:0x020d823c +_ZTV24PlayerLinkActor_A0_38_04 kind:data(any) addr:0x020d8248 sCreditsEndingType kind:data(byte[2]) addr:0x020d8254 local _ZTV14UnkDataStruct4 kind:data(any) addr:0x020d8258 @2128 kind:data(byte[6]) addr:0x020d8268 local diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 2486ed79..088b3a5b 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -44,7 +44,7 @@ func_ov031_020d9658 kind:function(thumb,size=0x1a) addr:0x020d9658 func_ov031_020d9674 kind:function(arm,size=0x10) addr:0x020d9674 _ZN18UnkStruct_027e0d3019func_ov031_020d9684EtP7VecFx32 kind:function(arm,size=0x10) addr:0x020d9684 func_ov031_020d9694 kind:function(arm,size=0x10) addr:0x020d9694 -func_ov031_020d96a4 kind:function(thumb,size=0x22) addr:0x020d96a4 +_ZN15PlayerLinkActor19func_ov031_020d96a4EP18PlayerLinkActor_A0P21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x22) addr:0x020d96a4 func_ov031_020d96c8 kind:function(thumb,size=0x18) addr:0x020d96c8 func_ov031_020d96e0 kind:function(thumb,size=0x4) addr:0x020d96e0 func_ov031_020d96e4 kind:function(arm,size=0x10) addr:0x020d96e4 @@ -136,10 +136,10 @@ func_ov031_020dae3c kind:function(arm,size=0x50) addr:0x020dae3c func_ov031_020dae8c kind:function(arm,size=0x15c) addr:0x020dae8c func_ov031_020dafe8 kind:function(arm,size=0x40) addr:0x020dafe8 func_ov031_020db028 kind:function(arm,size=0xd4) addr:0x020db028 -func_ov031_020db0fc kind:function(arm,size=0x24) addr:0x020db0fc +_ZN19PlayerLinkActor_13419func_ov031_020db0fcEv kind:function(arm,size=0x24) addr:0x020db0fc func_ov031_020db120 kind:function(arm,size=0x40) addr:0x020db120 func_ov031_020db160 kind:function(arm,size=0x30) addr:0x020db160 -_ZN18PlayerActorBase_74C1Ev kind:function(arm,size=0x24) addr:0x020db190 +_ZN18PlayerActorBase_7419func_ov001_020db190Ev kind:function(arm,size=0x24) addr:0x020db190 func_ov031_020db1b4 kind:function(arm,size=0xfc) addr:0x020db1b4 func_ov031_020db2b0 kind:function(arm,size=0x2c) addr:0x020db2b0 func_ov031_020db2dc kind:function(arm,size=0x5c) addr:0x020db2dc @@ -218,7 +218,7 @@ func_ov031_020dcb0c kind:function(arm,size=0x54) addr:0x020dcb0c func_ov031_020dcb60 kind:function(arm,size=0xbc) addr:0x020dcb60 func_ov031_020dcc1c kind:function(arm,size=0xa0) addr:0x020dcc1c func_ov031_020dccbc kind:function(thumb,size=0x32) addr:0x020dccbc -func_ov031_020dccf0 kind:function(thumb,size=0x30) addr:0x020dccf0 +_ZN15PlayerLinkActor19func_ov031_020dccf0Ev kind:function(thumb,size=0x30) addr:0x020dccf0 func_ov031_020dcd20 kind:function(arm,size=0x3c) addr:0x020dcd20 func_ov031_020dcd5c kind:function(thumb,size=0x12) addr:0x020dcd5c func_ov031_020dcd70 kind:function(thumb,size=0x1e) addr:0x020dcd70 diff --git a/config/eur/arm9/overlays/ov093/symbols.txt b/config/eur/arm9/overlays/ov093/symbols.txt index 38366725..6c3039d4 100644 --- a/config/eur/arm9/overlays/ov093/symbols.txt +++ b/config/eur/arm9/overlays/ov093/symbols.txt @@ -47,8 +47,8 @@ func_ov093_021662f8 kind:function(arm,size=0x10) addr:0x021662f8 func_ov093_02166308 kind:function(arm,size=0x10) addr:0x02166308 func_ov093_02166318 kind:function(arm,size=0x14) addr:0x02166318 func_ov093_0216632c kind:function(thumb,size=0x7c) addr:0x0216632c -func_ov093_021663a8 kind:function(thumb,size=0x24) addr:0x021663a8 -func_ov093_021663cc kind:function(thumb,size=0x2) addr:0x021663cc +_ZN21PlayerActorBase_70_DCC1EiP10G3d_Model_ kind:function(thumb,size=0x24) addr:0x021663a8 +_ZN21PlayerActorBase_70_DCD1Ev kind:function(thumb,size=0x2) addr:0x021663cc func_ov093_021663d0 kind:function(arm,size=0x12c) addr:0x021663d0 func_ov093_021664fc kind:function(arm,size=0x24) addr:0x021664fc func_ov093_02166520 kind:function(arm,size=0x20) addr:0x02166520 @@ -152,7 +152,7 @@ func_ov093_0216c608 kind:function(arm,size=0xa4) addr:0x0216c608 func_ov093_0216c6ac kind:function(arm,size=0x18) addr:0x0216c6ac func_ov093_0216c6c4 kind:function(arm,size=0xf4) addr:0x0216c6c4 func_ov093_0216c7b8 kind:function(arm,size=0xac) addr:0x0216c7b8 -func_ov093_0216c864 kind:function(thumb,size=0x98) addr:0x0216c864 +_ZN20ModelRender_Derived5C1EiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x98) addr:0x0216c864 func_ov093_0216c8fc kind:function(thumb,size=0x44) addr:0x0216c8fc func_ov093_0216c940 kind:function(thumb,size=0x50) addr:0x0216c940 func_ov093_0216c990 kind:function(arm,size=0xa8) addr:0x0216c990 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index d76808c8..7e08a950 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -63,9 +63,9 @@ _ZN4Game19func_ov000_020576d0Ev kind:function(arm,size=0x3c) addr:0x02058c50 _ZN4Game19func_ov000_0205770cEv kind:function(arm,size=0x14) addr:0x02058c8c _ZN19func_ov000_02058ca0D1Ev kind:function(arm,size=0x14) addr:0x02058ca0 _ZN19func_ov000_02058cb4D0Ev kind:function(arm,size=0x1c) addr:0x02058cb4 -func_ov000_02058cd0 kind:function(thumb,size=0xc) addr:0x02058cd0 -func_ov000_02058cdc kind:function(thumb,size=0x20) addr:0x02058cdc -func_ov000_02058cfc kind:function(thumb,size=0xe) addr:0x02058cfc +func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02058cd0 +_ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x02058cdc +_ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x02058cfc _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x02058d0c _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x02058d24 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x02058d78 @@ -104,8 +104,8 @@ func_ov000_02059218 kind:function(arm,size=0x18) addr:0x02059218 func_ov000_02059230 kind:function(arm,size=0x18) addr:0x02059230 func_ov000_02059248 kind:function(arm,size=0x2c) addr:0x02059248 func_ov000_02059274 kind:function(arm,size=0x2c) addr:0x02059274 -func_ov000_020592a0 kind:function(thumb,size=0x1c) addr:0x020592a0 -func_ov000_020592bc kind:function(arm,size=0x30) addr:0x020592bc +_ZN11ModelRender19func_ov000_02057d20Eh kind:function(thumb,size=0x1c) addr:0x020592a0 +_ZN11ModelRender19func_ov000_02057d3cEP18G3d_BoneMtxStruct_ kind:function(arm,size=0x30) addr:0x020592bc func_ov000_020592ec kind:function(arm,size=0x18) addr:0x020592ec _ZN11ModelRender8vfunc_20Ev kind:function(arm,size=0x18) addr:0x02059304 func_ov000_0205931c kind:function(arm,size=0x2c) addr:0x0205931c @@ -116,10 +116,10 @@ _ZN15ModelRenderBaseD1Ev kind:function(thumb,size=0x2) addr:0x02059444 _ZN15ModelRenderBaseD0Ev kind:function(thumb,size=0xc) addr:0x02059448 _ZN15ModelRenderBaseD2Ev kind:function(thumb,size=0x2) addr:0x02059454 func_ov000_02059458 kind:function(arm,size=0x8) addr:0x02059458 -func_ov000_02059460 kind:function(arm,size=0x14) addr:0x02059460 +_ZNK15ModelRenderBase19func_ov000_02057ee0Ev kind:function(arm,size=0x14) addr:0x02059460 func_ov000_02059474 kind:function(arm,size=0x24) addr:0x02059474 -func_ov000_02059498 kind:function(arm,size=0x28) addr:0x02059498 -func_ov000_020594c0 kind:function(arm,size=0x34) addr:0x020594c0 +_ZN15ModelRenderBase19func_ov000_02057f18EPKv kind:function(arm,size=0x28) addr:0x02059498 +_ZN15ModelRenderBase19func_ov000_02057f40EPKv kind:function(arm,size=0x34) addr:0x020594c0 func_ov000_020594f4 kind:function(arm,size=0x24) addr:0x020594f4 func_ov000_02059518 kind:function(arm,size=0x28) addr:0x02059518 func_ov000_02059540 kind:function(arm,size=0x28) addr:0x02059540 @@ -320,7 +320,7 @@ func_ov000_0205d934 kind:function(arm,size=0x14) addr:0x0205d934 func_ov000_0205d948 kind:function(arm,size=0x74) addr:0x0205d948 func_ov000_0205d9bc kind:function(arm,size=0x74) addr:0x0205d9bc func_ov000_0205da30 kind:function(arm,size=0xdc) addr:0x0205da30 -func_ov000_0205db0c kind:function(thumb,size=0x1a) addr:0x0205db0c +func_ov000_0205c584 kind:function(thumb,size=0x1a) addr:0x0205db0c func_ov000_0205db28 kind:function(arm,size=0x18) addr:0x0205db28 func_ov000_0205db40 kind:function(arm,size=0x18) addr:0x0205db40 func_ov000_0205db58 kind:function(arm,size=0xd4) addr:0x0205db58 @@ -365,7 +365,7 @@ func_ov000_0205e8f0 kind:function(arm,size=0x24) addr:0x0205e8f0 func_ov000_0205e914 kind:function(arm,size=0x20) addr:0x0205e914 func_ov000_0205e934 kind:function(arm,size=0xcc) addr:0x0205e934 func_ov000_0205ea00 kind:function(arm,size=0x88) addr:0x0205ea00 -func_ov000_0205ea88 kind:function(arm,size=0x24) addr:0x0205ea88 +func_ov000_0205d500 kind:function(arm,size=0x24) addr:0x0205ea88 func_ov000_0205eaac kind:function(arm,size=0x38) addr:0x0205eaac func_ov000_0205eae4 kind:function(arm,size=0x38) addr:0x0205eae4 func_ov000_0205eb1c kind:function(arm,size=0x38) addr:0x0205eb1c @@ -1685,16 +1685,16 @@ func_ov000_0208449c kind:function(arm,size=0xc) addr:0x0208449c func_ov000_020844a8 kind:function(arm,size=0xc) addr:0x020844a8 func_ov000_020844b4 kind:function(thumb,size=0x5a) addr:0x020844b4 func_ov000_02084510 kind:function(arm,size=0x24) addr:0x02084510 -func_ov000_02084534 kind:function(arm,size=0x22c) addr:0x02084534 +_ZN18PlayerActorBase_7019func_ov000_02082e78Eiiii kind:function(arm,size=0x22c) addr:0x02084534 func_ov000_02084760 kind:function(arm,size=0x30) addr:0x02084760 -func_ov000_02084790 kind:function(arm,size=0x334) addr:0x02084790 -func_ov000_02084ac4 kind:function(thumb,size=0x44) addr:0x02084ac4 -func_ov000_02084b08 kind:function(thumb,size=0x2) addr:0x02084b08 +_ZN18PlayerActorBase_7019func_ov000_020830d4E29UnkStruct_func_ov001_020bbe18jhi kind:function(arm,size=0x334) addr:0x02084790 +_ZN21PlayerActorBase_70_6CC1EiPvP10G3d_Model_ kind:function(thumb,size=0x44) addr:0x02084ac4 +_ZN21PlayerActorBase_70_6CD1Ev kind:function(thumb,size=0x2) addr:0x02084b08 func_ov000_02084b0c kind:function(arm,size=0xc) addr:0x02084b0c func_ov000_02084b18 kind:function(arm,size=0x2e0) addr:0x02084b18 func_ov000_02084df8 kind:function(arm,size=0x24) addr:0x02084df8 func_ov000_02084e1c kind:function(arm,size=0x40) addr:0x02084e1c -func_ov000_02084e5c kind:function(thumb,size=0x14) addr:0x02084e5c +_ZN21PlayerActorBase_70_30C1EiP22ModelRender_UnkSystem1S1_ kind:function(thumb,size=0x14) addr:0x02084e5c func_ov000_02084e70 kind:function(arm,size=0x74) addr:0x02084e70 func_ov000_02084ee4 kind:function(arm,size=0x34) addr:0x02084ee4 func_ov000_02084f18 kind:function(arm,size=0x7c) addr:0x02084f18 @@ -1759,7 +1759,7 @@ func_ov000_02087874 kind:function(arm,size=0xf8) addr:0x02087874 func_ov000_0208796c kind:function(arm,size=0x16c) addr:0x0208796c func_ov000_02087ad8 kind:function(arm,size=0xf4) addr:0x02087ad8 func_ov000_02087bcc kind:function(arm,size=0x114) addr:0x02087bcc -_ZN14PlayerActor_9CC1Ev kind:function(thumb,size=0xf8) addr:0x02087ce0 +_ZN18PlayerLinkActor_9CC1EP21UnkStruct_027e0ce0_40ji kind:function(thumb,size=0xf8) addr:0x02087ce0 func_ov000_02087dd8 kind:function(thumb,size=0x54) addr:0x02087dd8 func_ov000_02087e2c kind:function(arm,size=0x9c) addr:0x02087e2c func_ov000_02087ec8 kind:function(arm,size=0x3c) addr:0x02087ec8 @@ -1849,15 +1849,15 @@ func_ov000_0208afac kind:function(arm,size=0x24) addr:0x0208afac func_ov000_0208afd0 kind:function(arm,size=0x14) addr:0x0208afd0 func_ov000_0208afe4 kind:function(arm,size=0x2c) addr:0x0208afe4 func_ov000_0208b010 kind:function(arm,size=0x4c) addr:0x0208b010 -func_ov000_0208b05c kind:function(thumb,size=0xa) addr:0x0208b05c -func_ov000_0208b068 kind:function(thumb,size=0x2) addr:0x0208b068 +_ZN18PlayerLinkActor_A4C1EP15PlayerActorBaseP18PlayerLinkActor_A0 kind:function(thumb,size=0xa) addr:0x0208b05c +_ZN18PlayerLinkActor_A4D1Ev kind:function(thumb,size=0x2) addr:0x0208b068 func_ov000_0208b06c kind:function(arm,size=0x184) addr:0x0208b06c func_ov000_0208b1f0 kind:function(arm,size=0x3c) addr:0x0208b1f0 func_ov000_0208b22c kind:function(arm,size=0x64) addr:0x0208b22c func_ov000_0208b290 kind:function(arm,size=0x64) addr:0x0208b290 func_ov000_0208b2f4 kind:function(arm,size=0xbc) addr:0x0208b2f4 func_ov000_0208b3b0 kind:function(arm,size=0xe8) addr:0x0208b3b0 -func_ov000_0208b498 kind:function(arm,size=0x28) addr:0x0208b498 +_ZN18PlayerActorBase_5C19func_ov000_02089dc4Ev kind:function(arm,size=0x28) addr:0x0208b498 func_ov000_0208b4c0 kind:function(arm,size=0x68) addr:0x0208b4c0 func_ov000_0208b528 kind:function(arm,size=0x88) addr:0x0208b528 func_ov000_0208b5b0 kind:function(arm,size=0x30) addr:0x0208b5b0 @@ -1866,8 +1866,8 @@ func_ov000_0208b620 kind:function(arm,size=0x28) addr:0x0208b620 func_ov000_0208b648 kind:function(arm,size=0x24) addr:0x0208b648 func_ov000_0208b66c kind:function(arm,size=0x18) addr:0x0208b66c func_ov000_0208b684 kind:function(arm,size=0xe0) addr:0x0208b684 -func_ov000_0208b764 kind:function(arm,size=0x60) addr:0x0208b764 -_ZN22UnkStruct_PlayerGet_64C1EPii kind:function(arm,size=0x10) addr:0x0208b7c4 +_ZN22PlayerActorBase_70_134C1Ev kind:function(arm,size=0x60) addr:0x0208b764 +_ZN22UnkStruct_PlayerGet_64C1EPv kind:function(arm,size=0x10) addr:0x0208b7c4 func_ov000_0208b7d4 kind:function(arm,size=0x64) addr:0x0208b7d4 _ZN22UnkStruct_PlayerGet_64D1Ev kind:function(arm,size=0x64) addr:0x0208b838 func_ov000_0208b89c kind:function(thumb,size=0x48) addr:0x0208b89c @@ -1954,9 +1954,9 @@ func_ov000_0208d660 kind:function(arm,size=0x24) addr:0x0208d660 func_ov000_0208d684 kind:function(arm,size=0x10) addr:0x0208d684 func_ov000_0208d694 kind:function(arm,size=0x14) addr:0x0208d694 func_ov000_0208d6a8 kind:function(arm,size=0x14) addr:0x0208d6a8 -func_ov000_0208d6bc kind:function(thumb,size=0x3c) addr:0x0208d6bc +_ZN20ModelRender_Derived3C2EiP10G3d_Model_ kind:function(thumb,size=0x3c) addr:0x0208d6bc func_ov000_0208d6f8 kind:function(thumb,size=0x38) addr:0x0208d6f8 -func_ov000_0208d730 kind:function(thumb,size=0x48) addr:0x0208d730 +_ZN20ModelRender_Derived319func_ov000_0208c058Ei kind:function(thumb,size=0x48) addr:0x0208d730 func_ov000_0208d778 kind:function(arm,size=0x40) addr:0x0208d778 func_ov000_0208d7b8 kind:function(arm,size=0x28) addr:0x0208d7b8 func_ov000_0208d7e0 kind:function(arm,size=0x74) addr:0x0208d7e0 @@ -1970,14 +1970,14 @@ _ZN19func_ov000_0208dd8cD0Ev kind:function(arm,size=0x1c) addr:0x0208dd8c func_ov000_0208dda8 kind:function(thumb,size=0x2) addr:0x0208dda8 func_ov000_0208ddac kind:function(arm,size=0x50) addr:0x0208ddac func_ov000_0208ddfc kind:function(arm,size=0x68) addr:0x0208ddfc -func_ov000_0208de64 kind:function(thumb,size=0x24) addr:0x0208de64 +_ZN21PlayerActorBase_70_1CC1EP18PlayerActorBase_70 kind:function(thumb,size=0x24) addr:0x0208de64 func_ov000_0208de88 kind:function(arm,size=0x40) addr:0x0208de88 func_ov000_0208dec8 kind:function(arm,size=0x1c) addr:0x0208dec8 func_ov000_0208dee4 kind:function(arm,size=0x68) addr:0x0208dee4 -func_ov000_0208df4c kind:function(thumb,size=0x18) addr:0x0208df4c +_ZN21PlayerActorBase_70_E4C1Ev kind:function(thumb,size=0x18) addr:0x0208df4c func_ov000_0208df64 kind:function(arm,size=0x6c) addr:0x0208df64 -func_ov000_0208dfd0 kind:function(thumb,size=0x1a) addr:0x0208dfd0 -func_ov000_0208dfec kind:function(thumb,size=0x4c) addr:0x0208dfec +_ZN15PlayerActorBase19func_ov000_0208c8f8EP7VecFx32 kind:function(thumb,size=0x1a) addr:0x0208dfd0 +_ZN15PlayerActorBase19func_ov000_0208c914Ev kind:function(thumb,size=0x4c) addr:0x0208dfec func_ov000_0208e038 kind:function(thumb,size=0x3c) addr:0x0208e038 func_ov000_0208e074 kind:function(arm,size=0x6c) addr:0x0208e074 func_ov000_0208e0e0 kind:function(arm,size=0xc0) addr:0x0208e0e0 @@ -2001,12 +2001,12 @@ func_ov000_0208e8b8 kind:function(arm,size=0x58) addr:0x0208e8b8 func_ov000_0208e910 kind:function(arm,size=0x174) addr:0x0208e910 func_ov000_0208ea84 kind:function(arm,size=0x28) addr:0x0208ea84 func_ov000_0208eaac kind:function(arm,size=0x2c) addr:0x0208eaac -func_ov000_0208ead8 kind:function(thumb,size=0x90) addr:0x0208ead8 +_ZN15PlayerActorBase19func_ov000_0208d3fcEv kind:function(thumb,size=0x90) addr:0x0208ead8 func_ov000_0208eb68 kind:function(arm,size=0x114) addr:0x0208eb68 func_ov000_0208ec7c kind:function(arm,size=0x6c) addr:0x0208ec7c func_ov000_0208ece8 kind:function(arm,size=0x148) addr:0x0208ece8 func_ov000_0208ee30 kind:function(arm,size=0x9c) addr:0x0208ee30 -func_ov000_0208eecc kind:function(arm,size=0x100) addr:0x0208eecc +_ZN15PlayerActorBase19func_ov000_0208d7f0Eb kind:function(arm,size=0x100) addr:0x0208eecc func_ov000_0208efcc kind:function(arm,size=0x38) addr:0x0208efcc func_ov000_0208f004 kind:function(arm,size=0x18) addr:0x0208f004 func_ov000_0208f01c kind:function(arm,size=0x194) addr:0x0208f01c @@ -2053,9 +2053,9 @@ func_ov000_02090098 kind:function(thumb,size=0x10) addr:0x02090098 func_ov000_020900a8 kind:function(thumb,size=0x10) addr:0x020900a8 func_ov000_020900b8 kind:function(thumb,size=0x18) addr:0x020900b8 func_ov000_020900d0 kind:function(thumb,size=0x7c) addr:0x020900d0 -func_ov000_0209014c kind:function(thumb,size=0x6c) addr:0x0209014c -func_ov000_020901b8 kind:function(thumb,size=0x68) addr:0x020901b8 -func_ov000_02090220 kind:function(thumb,size=0x4c) addr:0x02090220 +func_ov000_0208ea70 kind:function(thumb,size=0x6c) addr:0x0209014c +func_ov000_0208eadc kind:function(thumb,size=0x68) addr:0x020901b8 +func_ov000_0208eb44 kind:function(thumb,size=0x4c) addr:0x02090220 func_ov000_0209026c kind:function(arm,size=0x104) addr:0x0209026c func_ov000_02090370 kind:function(arm,size=0x60) addr:0x02090370 func_ov000_020903d0 kind:function(thumb,size=0x1c) addr:0x020903d0 @@ -2067,7 +2067,7 @@ func_ov000_02090570 kind:function(arm,size=0x8c) addr:0x02090570 func_ov000_020905fc kind:function(arm,size=0x68) addr:0x020905fc func_ov000_02090664 kind:function(thumb,size=0x34) addr:0x02090664 func_ov000_02090698 kind:function(thumb,size=0x12) addr:0x02090698 -func_ov000_020906ac kind:function(thumb,size=0x14) addr:0x020906ac +_ZN21PlayerLinkActor_9C_3419func_ov000_0208efd0EP7VecFx32 kind:function(thumb,size=0x14) addr:0x020906ac func_ov000_020906c0 kind:function(arm,size=0x28) addr:0x020906c0 func_ov000_020906e8 kind:function(arm,size=0x430) addr:0x020906e8 func_ov000_02090b18 kind:function(arm,size=0x120) addr:0x02090b18 @@ -2112,7 +2112,7 @@ func_ov000_02092d58 kind:function(arm,size=0x40) addr:0x02092d58 _ZN19func_ov000_02092d98D0Ev kind:function(arm,size=0x48) addr:0x02092d98 func_ov000_02092de0 kind:function(arm,size=0xe4) addr:0x02092de0 func_ov000_02092ec4 kind:function(arm,size=0x4c4) addr:0x02092ec4 -_ZN14PlayerActor_A0C1Ev kind:function(thumb,size=0x1f4) addr:0x02093388 +_ZN18PlayerLinkActor_A0C1EiP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02093388 func_ov000_0209357c kind:function(arm,size=0x18) addr:0x0209357c func_ov000_02093594 kind:function(arm,size=0x50) addr:0x02093594 func_ov000_020935e4 kind:function(arm,size=0x28) addr:0x020935e4 @@ -2140,9 +2140,9 @@ func_ov000_02094d2c kind:function(arm,size=0x4c) addr:0x02094d2c func_ov000_02094d78 kind:function(arm,size=0x28) addr:0x02094d78 func_ov000_02094da0 kind:function(arm,size=0x28) addr:0x02094da0 _ZN27UnkStruct_ov000_0208f820_3019func_ov000_020936ecEv kind:function(arm,size=0x2c) addr:0x02094dc8 -func_ov000_02094df4 kind:function(arm,size=0x38) addr:0x02094df4 +_ZN18PlayerLinkActor_A019func_ov000_02093718Ev kind:function(arm,size=0x38) addr:0x02094df4 func_ov000_02094e2c kind:function(arm,size=0x3c) addr:0x02094e2c -func_ov000_02094e68 kind:function(arm,size=0x58) addr:0x02094e68 +_ZN18PlayerLinkActor_A019func_ov000_0209378cEv kind:function(arm,size=0x58) addr:0x02094e68 func_ov000_02094ec0 kind:function(arm,size=0xc0) addr:0x02094ec0 func_ov000_02094f80 kind:function(arm,size=0x2c) addr:0x02094f80 func_ov000_02094fac kind:function(arm,size=0x2c) addr:0x02094fac @@ -3174,7 +3174,7 @@ data_ov000_020ac890 kind:data(any) addr:0x020ac890 data_ov000_020ac8bc kind:data(any) addr:0x020ac8bc data_ov000_020ac918 kind:data(any) addr:0x020ac918 data_ov000_020ab1ac kind:data(any) addr:0x020ac9ac -data_ov000_020acb14 kind:data(any) addr:0x020acb14 +data_ov000_020ab314 kind:data(any) addr:0x020acb14 data_ov000_020acb18 kind:data(any) addr:0x020acb18 data_ov000_020acb1c kind:data(any) addr:0x020acb1c data_ov000_020acb20 kind:data(any) addr:0x020acb20 @@ -3192,7 +3192,7 @@ data_ov000_020acbd0 kind:data(any) addr:0x020acbd0 data_ov000_020acbd4 kind:data(any) addr:0x020acbd4 data_ov000_020acbd8 kind:data(any) addr:0x020acbd8 data_ov000_020acbec kind:data(any) addr:0x020acbec -data_ov000_020accdc kind:data(any) addr:0x020accdc +data_ov000_020ab4dc kind:data(any) addr:0x020accdc data_ov000_020acd5c kind:data(any) addr:0x020acd5c data_ov000_020acddc kind:data(any) addr:0x020acddc data_ov000_020aceb0 kind:data(any) addr:0x020aceb0 @@ -3579,7 +3579,7 @@ data_ov000_020b4328 kind:data(any) addr:0x020b4328 data_ov000_020b432c kind:data(any) addr:0x020b432c data_ov000_020b4338 kind:data(any) addr:0x020b4338 data_ov000_020b4344 kind:data(any) addr:0x020b4344 -data_ov000_020b4370 kind:data(any) addr:0x020b4370 +_ZTV20ModelRender_Derived4 kind:data(any) addr:0x020b4368 data_ov000_020b439c kind:data(any) addr:0x020b439c data_ov000_020b43a0 kind:data(any) addr:0x020b43a0 data_ov000_020b43b0 kind:data(any) addr:0x020b43b0 diff --git a/config/jp/arm9/overlays/ov001/delinks.txt b/config/jp/arm9/overlays/ov001/delinks.txt index 5daa9819..663fb022 100644 --- a/config/jp/arm9/overlays/ov001/delinks.txt +++ b/config/jp/arm9/overlays/ov001/delinks.txt @@ -70,6 +70,7 @@ src/001_SceneInit/Item/ItemManager_001.cpp: .text start:0x020bd0c4 end:0x020bd30c src/001_SceneInit/Player/PlayerActorBase_70_001.cpp: + complete .text start:0x020bd30c end:0x020bd6ac src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp: @@ -87,8 +88,17 @@ src/001_SceneInit/code_020bc2c8_001.cpp: src/001_SceneInit/UnkStruct_027e0ce0_001.cpp: .text start:0x020bdb94 end:0x020bdfb0 -src/001_SceneInit/Player/Player_001.cpp: - .text start:0x020bdfb0 end:0x020be4e8 +src/001_SceneInit/UnkStruct_027e0cdc_001.cpp: + complete + .text start:0x020bdfb0 end:0x020bdfdc + +src/001_SceneInit/Player/PlayerActorBase_001.cpp: + complete + .text start:0x020bdfdc end:0x020be1e4 + +src/001_SceneInit/Player/PlayerLinkActor_001.cpp: + complete + .text start:0x020be1e4 end:0x020be4e8 src/001_SceneInit/CargoManager_001.cpp: complete diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index 31839b86..b5c0dbfa 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -1343,7 +1343,7 @@ from:0x020be010 kind:thumb_call_arm to:0x020592bc module:overlay(0) from:0x020be01e kind:thumb_call_arm to:0x02059498 module:overlay(0) from:0x020be038 kind:thumb_call_arm to:0x020594c0 module:overlay(0) from:0x020be052 kind:thumb_call to:0x0208d730 module:overlay(0) -from:0x020be05c kind:load to:0x020b4370 module:overlay(0) +from:0x020be05c kind:load to:0x020b4368 module:overlay(0) add:0x8 from:0x020be060 kind:load to:0x020c3f10 module:overlay(1) from:0x020be064 kind:load to:0x020c3ea0 module:overlay(1) from:0x020be0a8 kind:thumb_call_arm to:0x0208b7c4 module:overlay(0) diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 72559b6d..3401b065 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -196,10 +196,10 @@ _ZN9Inventory19func_ov001_020bb8bcEPK13InvImportData kind:function(thumb,size=0x _ZN9Inventory19func_ov001_020bb9f8Ev kind:function(thumb,size=0x5c) addr:0x020bd240 _ZN9Inventory19func_ov001_020bba54Ev kind:function(thumb,size=0x18) addr:0x020bd29c _ZN9Inventory19func_ov001_020bba6cEv kind:function(thumb,size=0x58) addr:0x020bd2b4 -func_ov001_020bbac4 kind:function(thumb,size=0x5c) addr:0x020bd30c -_ZN18PlayerActorBase_70C1Ev kind:function(thumb,size=0x260) addr:0x020bd368 -func_ov001_020bbd80 kind:function(thumb,size=0x96) addr:0x020bd5c8 -func_ov001_020bbe18 kind:function(thumb,size=0x4c) addr:0x020bd660 +_Z19func_ov001_020bbac4iP10G3d_Model_ib kind:function(thumb,size=0x5c) addr:0x020bd30c +_ZN18PlayerActorBase_70C1Eii kind:function(thumb,size=0x260) addr:0x020bd368 +_ZN18PlayerActorBase_70D1Ev kind:function(thumb,size=0x96) addr:0x020bd5c8 +_ZN18PlayerActorBase_7019func_ov001_020bbe18Ei29UnkStruct_func_ov001_020bbe18jh kind:function(thumb,size=0x4c) addr:0x020bd660 func_ov001_020bbe64 kind:function(thumb,size=0x7c) addr:0x020bd6ac func_ov001_020bbee0 kind:function(thumb,size=0x2) addr:0x020bd728 func_ov001_020bbee4 kind:function(thumb,size=0x18) addr:0x020bd72c @@ -232,32 +232,32 @@ _ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:f _ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bdf44 func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bdf98 func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bdfa4 -func_ov001_020bc768 kind:function(thumb,size=0x20) addr:0x020bdfb0 -func_ov001_020bc788 kind:function(thumb,size=0xc) addr:0x020bdfd0 -func_ov001_020bc794 kind:function(thumb,size=0x8c) addr:0x020bdfdc -_ZN15PlayerActorBaseC2Ev kind:function(thumb,size=0x124) addr:0x020be068 -func_ov001_020bc944 kind:function(thumb,size=0x28) addr:0x020be18c -func_ov001_020bc96c kind:function(thumb,size=0x2e) addr:0x020be1b4 -_ZN11PlayerActorC1Ev kind:function(thumb,size=0x138) addr:0x020be1e4 -_ZN15PlayerActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020be31c -func_ov001_020bcae0 kind:function(thumb,size=0x80) addr:0x020be328 -func_ov001_020bcb60 kind:function(thumb,size=0x10) addr:0x020be3a8 -func_ov001_020bcb70 kind:function(thumb,size=0x36) addr:0x020be3b8 -func_ov001_020bcba8 kind:function(thumb,size=0x26) addr:0x020be3f0 -func_ov001_020bcbd0 kind:function(thumb,size=0x98) addr:0x020be418 -func_ov001_020bcc68 kind:function(thumb,size=0x20) addr:0x020be4b0 -_ZN15PlayerActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020be4d0 -func_ov001_020bcc94 kind:function(thumb,size=0xc) addr:0x020be4dc +_ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bdfb0 +_ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bdfd0 +_ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bdfdc +_ZN15PlayerActorBaseC2EiiiP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020be068 +_ZN15PlayerActorBaseD2Ev kind:function(thumb,size=0x28) addr:0x020be18c +_ZN15PlayerActorBase19func_ov001_020bc96cEv kind:function(thumb,size=0x2e) addr:0x020be1b4 +_ZN15PlayerLinkActorC1EiiP21UnkStruct_027e0ce0_40Pb kind:function(thumb,size=0x138) addr:0x020be1e4 +_ZN19PlayerLinkActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020be31c +_ZN15PlayerLinkActorD1Ev kind:function(thumb,size=0x80) addr:0x020be328 +_ZN15PlayerLinkActor19func_ov001_020bcb60Ei kind:function(thumb,size=0x10) addr:0x020be3a8 +_ZN15PlayerLinkActor19func_ov001_020bcb70Ev kind:function(thumb,size=0x36) addr:0x020be3b8 +_ZN15PlayerLinkActor19func_ov001_020bcba8Ev kind:function(thumb,size=0x26) addr:0x020be3f0 +_ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x98) addr:0x020be418 +_ZN18UnkStruct_027e0d347DestroyEv kind:function(thumb,size=0x20) addr:0x020be4b0 +_ZN19PlayerLinkActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020be4d0 +_ZN8InstanceI18UnkStruct_027e0d34ED2Ev kind:function(thumb,size=0xc) addr:0x020be4dc func_ov001_020bcca0 kind:function(thumb,size=0x46) addr:0x020be4e8 func_ov001_020bcce8 kind:function(thumb,size=0x2) addr:0x020be530 func_ov001_020bccec kind:function(thumb,size=0x2fe) addr:0x020be534 func_ov001_020bcfec kind:function(thumb,size=0xb8) addr:0x020be834 _ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd0a4Eb kind:function(thumb,size=0x148) addr:0x020be8ec func_ov001_020bd1ec kind:function(thumb,size=0x80) addr:0x020bea34 -func_ov001_020bd26c kind:function(thumb,size=0x74) addr:0x020beab4 -func_ov001_020bd2e0 kind:function(thumb,size=0x78) addr:0x020beb28 -func_ov001_020bd358 kind:function(thumb,size=0x30) addr:0x020beba0 -func_ov001_020bd388 kind:function(thumb,size=0x128) addr:0x020bebd0 +_ZN18PlayerLinkActor_A0D1Ev kind:function(thumb,size=0x74) addr:0x020beab4 +_ZN18PlayerLinkActor_A019func_ov001_020bd2e0Ev kind:function(thumb,size=0x78) addr:0x020beb28 +_ZN18PlayerLinkActor_A019func_ov001_020bd358Ev kind:function(thumb,size=0x30) addr:0x020beba0 +_ZN18PlayerLinkActor_A019func_ov001_020bd388Ebb kind:function(thumb,size=0x128) addr:0x020bebd0 func_ov001_020bd4b0 kind:function(thumb,size=0x40) addr:0x020becf8 func_ov001_020bd4f0 kind:function(thumb,size=0x22) addr:0x020bed38 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bed5c @@ -497,8 +497,8 @@ data_ov001_020c25fc kind:data(any) addr:0x020c3e50 data_ov001_020c2624 kind:data(any) addr:0x020c3e78 local data_ov001_020c262e kind:data(any) addr:0x020c3e82 local data_ov001_020c2638 kind:data(any) addr:0x020c3e8c local -data_ov001_020c3ea0 kind:data(any) addr:0x020c3ea0 -data_ov001_020c3f10 kind:data(any) addr:0x020c3f10 +data_ov001_020c264c kind:data(any) addr:0x020c3ea0 +data_ov001_020c26bc kind:data(any) addr:0x020c3f10 data_ov001_020c3f90 kind:data(any) addr:0x020c3f90 data_ov001_020c3fa4 kind:data(any) addr:0x020c3fa4 data_ov001_020c3fb2 kind:data(any) addr:0x020c3fb2 diff --git a/config/jp/arm9/overlays/ov021/symbols.txt b/config/jp/arm9/overlays/ov021/symbols.txt index 81e47787..a5acc5b2 100644 --- a/config/jp/arm9/overlays/ov021/symbols.txt +++ b/config/jp/arm9/overlays/ov021/symbols.txt @@ -45,7 +45,7 @@ _ZN30UnkStruct_027e0cd8_0C_Derived3C1EP18UnkStruct_027e0cd8 kind:function(arm,si func_ov021_020ec090 kind:function(arm,size=0x28) addr:0x020ec090 _ZN19func_ov021_020ec0b8D1Ev kind:function(arm,size=0x14) addr:0x020ec0b8 _ZN19func_ov021_020ec0ccD0Ev kind:function(arm,size=0x1c) addr:0x020ec0cc -func_ov021_020ec0e8 kind:function(arm,size=0x14) addr:0x020ec0e8 +func_ov021_020ea868 kind:function(arm,size=0x14) addr:0x020ec0e8 func_ov021_020ec0fc kind:function(arm,size=0x1c) addr:0x020ec0fc func_ov021_020ec118 kind:function(arm,size=0x40) addr:0x020ec118 func_ov021_020ec158 kind:function(arm,size=0x28) addr:0x020ec158 @@ -85,7 +85,7 @@ func_ov021_020ed4bc kind:function(thumb,size=0x28) addr:0x020ed4bc func_ov021_020ed4e4 kind:function(thumb,size=0x2) addr:0x020ed4e4 func_ov021_020ed4e8 kind:function(arm,size=0x4c) addr:0x020ed4e8 func_ov021_020ed534 kind:function(arm,size=0xec) addr:0x020ed534 -func_ov021_020ed620 kind:function(arm,size=0x50) addr:0x020ed620 +_ZN15PlayerLinkActor19func_ov021_020ebda0Ev kind:function(arm,size=0x50) addr:0x020ed620 func_ov021_020ed670 kind:function(arm,size=0x58) addr:0x020ed670 func_ov021_020ed6c8 kind:function(arm,size=0x24) addr:0x020ed6c8 func_ov021_020ed6ec kind:function(arm,size=0x178) addr:0x020ed6ec diff --git a/config/jp/arm9/overlays/ov024/symbols.txt b/config/jp/arm9/overlays/ov024/symbols.txt index 57d021a8..de5a0dfa 100644 --- a/config/jp/arm9/overlays/ov024/symbols.txt +++ b/config/jp/arm9/overlays/ov024/symbols.txt @@ -461,11 +461,11 @@ _ZN27UnkStruct_ov024_020d86a0_00C1EP24UnkStruct_ov024_020d86a0 kind:function(arm _ZN27UnkStruct_ov024_020d86a0_00D1Ev kind:function(arm,size=0x14) addr:0x020d3010 _ZN27UnkStruct_ov024_020d86a0_00D0Ev kind:function(arm,size=0x1c) addr:0x020d3024 _ZN27UnkStruct_ov024_020d86a0_008vfunc_0CEv kind:function(arm,size=0x10) addr:0x020d3040 -_ZN20PlayerActor_A0_38_048vfunc_00Ev kind:function(arm,size=0x80) addr:0x020d3050 -_ZN20PlayerActor_A0_38_188vfunc_00Ev kind:function(arm,size=0x200) addr:0x020d30d0 -_ZN17PlayerActor_A0_38C1Ev kind:function(thumb,size=0x44) addr:0x020d32d0 -_ZN17PlayerActor_A0_38D1Ev kind:function(thumb,size=0x16) addr:0x020d3314 -_ZN17PlayerActor_A0_3819func_ov024_020d19d8Ev kind:function(thumb,size=0x20) addr:0x020d332c +_ZN24PlayerLinkActor_A0_38_048vfunc_00Ev kind:function(arm,size=0x80) addr:0x020d3050 +_ZN24PlayerLinkActor_A0_38_188vfunc_00Ev kind:function(arm,size=0x200) addr:0x020d30d0 +_ZN21PlayerLinkActor_A0_38C1Ev kind:function(thumb,size=0x44) addr:0x020d32d0 +_ZN21PlayerLinkActor_A0_38D1Ev kind:function(thumb,size=0x16) addr:0x020d3314 +_ZN21PlayerLinkActor_A0_3819func_ov024_020d19d8Ev kind:function(thumb,size=0x20) addr:0x020d332c _Z20SetCreditsEndingTypes kind:function(arm,size=0x10) addr:0x020d334c _Z20GetCreditsEndingTypev kind:function(arm,size=0x10) addr:0x020d335c _ZN17UnkDataStruct4_1419func_ov024_020d1a18Ei kind:function(arm,size=0x10) addr:0x020d336c @@ -819,8 +819,8 @@ data_ov024_020d822c kind:data(byte[4]) addr:0x020d9bcc data_ov024_020d8230 kind:data(byte[4]) addr:0x020d9bd0 data_ov024_020d8234 kind:data(byte[4]) addr:0x020d9bd4 data_ov024_020d8238 kind:data(byte[4]) addr:0x020d9bd8 -_ZTV20PlayerActor_A0_38_18 kind:data(any) addr:0x020d9bdc -_ZTV20PlayerActor_A0_38_04 kind:data(any) addr:0x020d9be8 +_ZTV24PlayerLinkActor_A0_38_18 kind:data(any) addr:0x020d9bdc +_ZTV24PlayerLinkActor_A0_38_04 kind:data(any) addr:0x020d9be8 sCreditsEndingType kind:data(byte[2]) addr:0x020d9bf4 local _ZTV14UnkDataStruct4 kind:data(any) addr:0x020d9bf8 @2128 kind:data(byte[6]) addr:0x020d9c08 local diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 48a5aec9..fbefaaef 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -8,8 +8,8 @@ func_ov031_020da670 kind:function(arm,size=0x28) addr:0x020da670 func_ov031_020da698 kind:function(arm,size=0x70) addr:0x020da698 func_ov031_020da708 kind:function(arm,size=0x74) addr:0x020da708 func_ov031_020da77c kind:function(arm,size=0x14) addr:0x020da77c -func_ov031_020da790 kind:function(arm,size=0x7c) addr:0x020da790 -func_ov031_020da80c kind:function(arm,size=0x1c) addr:0x020da80c +_ZN24UnkStruct_ov031_Items_02C1Eii kind:function(arm,size=0x7c) addr:0x020da790 +_ZN24UnkStruct_ov031_Items_02D1Ev kind:function(arm,size=0x1c) addr:0x020da80c func_ov031_020da828 kind:function(arm,size=0x9c) addr:0x020da828 func_ov031_020da8c4 kind:function(arm,size=0x34) addr:0x020da8c4 func_ov031_020da8f8 kind:function(arm,size=0x40) addr:0x020da8f8 @@ -34,17 +34,17 @@ func_ov031_020daec4 kind:function(arm,size=0x44) addr:0x020daec4 _ZN19func_ov031_020daf08D1Ev kind:function(arm,size=0x14) addr:0x020daf08 _ZN19func_ov031_020daf1cD0Ev kind:function(arm,size=0x1c) addr:0x020daf1c func_ov031_020daf38 kind:function(thumb,size=0x1a) addr:0x020daf38 -func_ov031_020daf54 kind:function(arm,size=0x14) addr:0x020daf54 -func_ov031_020daf68 kind:function(arm,size=0x24) addr:0x020daf68 +_ZN18UnkStruct_027e0d2c19func_ov031_020d95b4Ev kind:function(arm,size=0x14) addr:0x020daf54 +_ZN18UnkStruct_027e0d2c19func_ov031_020d95c8E8ActorRef kind:function(arm,size=0x24) addr:0x020daf68 func_ov031_020daf8c kind:function(arm,size=0x30) addr:0x020daf8c func_ov031_020dafbc kind:function(arm,size=0x10) addr:0x020dafbc -func_ov031_020dafcc kind:function(arm,size=0x1c) addr:0x020dafcc +_ZN18UnkStruct_027e0d2c19func_ov031_020d962cEP7VecFx32iS1_P8ActorRef kind:function(arm,size=0x1c) addr:0x020dafcc func_ov031_020dafe8 kind:function(arm,size=0x10) addr:0x020dafe8 func_ov031_020daff8 kind:function(thumb,size=0x1a) addr:0x020daff8 func_ov031_020db014 kind:function(arm,size=0x10) addr:0x020db014 -func_ov031_020db024 kind:function(arm,size=0x10) addr:0x020db024 +_ZN18UnkStruct_027e0d3019func_ov031_020d9684EtP7VecFx32 kind:function(arm,size=0x10) addr:0x020db024 func_ov031_020db034 kind:function(arm,size=0x10) addr:0x020db034 -func_ov031_020db044 kind:function(thumb,size=0x22) addr:0x020db044 +_ZN15PlayerLinkActor19func_ov031_020d96a4EP18PlayerLinkActor_A0P21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x22) addr:0x020db044 func_ov031_020db068 kind:function(thumb,size=0x18) addr:0x020db068 func_ov031_020db080 kind:function(thumb,size=0x4) addr:0x020db080 func_ov031_020db084 kind:function(arm,size=0x10) addr:0x020db084 @@ -136,10 +136,10 @@ func_ov031_020dc7dc kind:function(arm,size=0x50) addr:0x020dc7dc func_ov031_020dc82c kind:function(arm,size=0x15c) addr:0x020dc82c func_ov031_020dc988 kind:function(arm,size=0x40) addr:0x020dc988 func_ov031_020dc9c8 kind:function(arm,size=0xd4) addr:0x020dc9c8 -func_ov031_020dca9c kind:function(arm,size=0x24) addr:0x020dca9c +_ZN19PlayerLinkActor_13419func_ov031_020db0fcEv kind:function(arm,size=0x24) addr:0x020dca9c func_ov031_020dcac0 kind:function(arm,size=0x40) addr:0x020dcac0 func_ov031_020dcb00 kind:function(arm,size=0x30) addr:0x020dcb00 -_ZN18PlayerActorBase_74C1Ev kind:function(arm,size=0x24) addr:0x020dcb30 +_ZN18PlayerActorBase_7419func_ov001_020db190Ev kind:function(arm,size=0x24) addr:0x020dcb30 func_ov031_020dcb54 kind:function(arm,size=0xfc) addr:0x020dcb54 func_ov031_020dcc50 kind:function(arm,size=0x2c) addr:0x020dcc50 func_ov031_020dcc7c kind:function(arm,size=0x5c) addr:0x020dcc7c @@ -218,7 +218,7 @@ func_ov031_020de4ac kind:function(arm,size=0x54) addr:0x020de4ac func_ov031_020de500 kind:function(arm,size=0xbc) addr:0x020de500 func_ov031_020de5bc kind:function(arm,size=0xa0) addr:0x020de5bc func_ov031_020de65c kind:function(thumb,size=0x32) addr:0x020de65c -func_ov031_020de690 kind:function(thumb,size=0x30) addr:0x020de690 +_ZN15PlayerLinkActor19func_ov031_020dccf0Ev kind:function(thumb,size=0x30) addr:0x020de690 func_ov031_020de6c0 kind:function(arm,size=0x3c) addr:0x020de6c0 func_ov031_020de6fc kind:function(thumb,size=0x12) addr:0x020de6fc func_ov031_020de710 kind:function(thumb,size=0x1e) addr:0x020de710 diff --git a/config/jp/arm9/overlays/ov093/symbols.txt b/config/jp/arm9/overlays/ov093/symbols.txt index e566d39b..4dba9191 100644 --- a/config/jp/arm9/overlays/ov093/symbols.txt +++ b/config/jp/arm9/overlays/ov093/symbols.txt @@ -47,8 +47,8 @@ func_ov093_02168558 kind:function(arm,size=0x10) addr:0x02168558 func_ov093_02168568 kind:function(arm,size=0x10) addr:0x02168568 func_ov093_02168578 kind:function(arm,size=0x14) addr:0x02168578 func_ov093_0216858c kind:function(thumb,size=0x7c) addr:0x0216858c -func_ov093_02168608 kind:function(thumb,size=0x24) addr:0x02168608 -func_ov093_0216862c kind:function(thumb,size=0x2) addr:0x0216862c +_ZN21PlayerActorBase_70_DCC1EiP10G3d_Model_ kind:function(thumb,size=0x24) addr:0x02168608 +_ZN21PlayerActorBase_70_DCD1Ev kind:function(thumb,size=0x2) addr:0x0216862c func_ov093_02168630 kind:function(arm,size=0x12c) addr:0x02168630 func_ov093_0216875c kind:function(arm,size=0x24) addr:0x0216875c func_ov093_02168780 kind:function(arm,size=0x20) addr:0x02168780 @@ -153,7 +153,7 @@ func_ov093_0216e894 kind:function(arm,size=0xa4) addr:0x0216e894 func_ov093_0216e938 kind:function(arm,size=0x18) addr:0x0216e938 func_ov093_0216e950 kind:function(arm,size=0xf4) addr:0x0216e950 func_ov093_0216ea44 kind:function(arm,size=0xac) addr:0x0216ea44 -func_ov093_0216eaf0 kind:function(thumb,size=0x98) addr:0x0216eaf0 +_ZN20ModelRender_Derived5C1EiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x98) addr:0x0216eaf0 func_ov093_0216eb88 kind:function(thumb,size=0x44) addr:0x0216eb88 func_ov093_0216ebcc kind:function(thumb,size=0x50) addr:0x0216ebcc func_ov093_0216ec1c kind:function(arm,size=0xa8) addr:0x0216ec1c diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index f407bb9c..27ddabc4 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -91,10 +91,26 @@ enum ActorFlag_ { class Actor_C4; +struct ActorGrabParams; +extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32); +bool PlayerCharacter_IsNotLink(s32 character); + struct ActorGrabParams { /* 00 */ u16 unk_00; /* 02 */ u16 unk_02; /* 04 */ + + ActorGrabParams() {} + + ActorGrabParams(unk32 param2, unk32 param3) { + ActorGrabParams local_1c; + func_ov000_0205d500(&local_1c, param3, param2); + *this = local_1c; + } + + void operator=(ActorGrabParams &from) { + *(u32 *) this = *(u32 *) &from; + } }; class Actor_9C { diff --git a/include/Player/Player.hpp b/include/Player/Player.hpp deleted file mode 100644 index 917d37e9..00000000 --- a/include/Player/Player.hpp +++ /dev/null @@ -1,207 +0,0 @@ -#pragma once - -#include "Actor/Actor.hpp" -#include "LinkList.hpp" -#include "Unknown/Common.hpp" -#include "Unknown/UnkStruct_ov000_0208f820.hpp" -#include "math.hpp" -#include "types.h" - -class UnkStruct_027e0ce0_40; - -class PlayerActorBase_5C { -public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0C */ unk32 mUnk_0C; - /* 10 */ void *mUnk_10; - /* 14 */ -}; - -class PlayerActorBase_70 { -public: - /* 000 */ STRUCT_PAD(0x00, 0x160); - /* 160 */ - - PlayerActorBase_70(); -}; - -class PlayerActorBase_74 { -public: - /* 00 */ STRUCT_PAD(0x00, 0x34); - /* 34 */ - - PlayerActorBase_74(); -}; - -class PlayerActorBase { -public: - /* 00 */ VecFx32 mPos; - /* 0C */ VecFx32 mPrevPos; - /* 18 */ VecFx32 mVel; - /* 24 */ VecFx32 mAccel; - /* 30 */ u16 mAngle; - /* 32 */ u8 mInvincibilityTimer; - /* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen - /* 34 */ ActorRef mGrabActor; - /* 38 */ UnkStruct_PlayerGet_64 mUnk_38; - /* 44 */ unk32 mUnk_44; - /* 48 */ unk32 mUnk_48; - /* 4C */ unk32 mUnk_4C; - /* 50 */ ActorGrabParams mUnk_50; - /* 54 */ unk32 mUnk_54; - /* 58 */ UnkStruct_027e0ce0_40 *mUnk_58; - /* 5C */ PlayerActorBase_5C mUnk_5C; - /* 70 */ PlayerActorBase_70 *mUnk_70; - /* 74 */ PlayerActorBase_74 *mUnk_74; - /* 78 */ STRUCT_PAD(0x78, 0x84); - /* 84 */ UnkStruct_ov019_020d24c8_28_258 mUnk_84; - /* 9C */ - - PlayerActorBase(); -}; - -class PlayerActor_9C { -public: - /* 000 (vtable) */ - /* 004 */ STRUCT_PAD(0x04, 0x154); - /* 154 */ - - PlayerActor_9C(); - - // data_ov000_020b2a8c - /* 00 */ virtual ~PlayerActor_9C(); -}; - -class PlayerActor_A0_38; - -class PlayerActor_A0_38_04_Base : public LinkList { -public: - /* 00 (vtable) */ - /* 04 (base) */ - /* 0C */ unk32 mUnk_0C; - /* 10 */ PlayerActor_A0_38 *mUnk_10; - /* 14 */ - - PlayerActor_A0_38_04_Base(PlayerActor_A0_38 *param1) { - this->mUnk_0C = 0; - this->mUnk_10 = param1; - } - - /* 00 */ virtual void vfunc_00(); -}; - -class PlayerActor_A0_38_04 : public PlayerActor_A0_38_04_Base { -public: - /* 00 (vtable) */ - /* 04 (base) */ - /* 0C */ - - PlayerActor_A0_38_04(PlayerActor_A0_38 *param1) : - PlayerActor_A0_38_04_Base(param1) {} - - // data_ov024_020d8250 - /* 00 */ virtual void vfunc_00() override; -}; - -class PlayerActor_A0_38_18 : public PlayerActor_A0_38_04_Base { -public: - /* 00 (vtable) */ - /* 04 (base) */ - /* 0C */ - - PlayerActor_A0_38_18(PlayerActor_A0_38 *param1) : - PlayerActor_A0_38_04_Base(param1) {} - - // data_ov024_020d8244 - /* 00 */ virtual void vfunc_00() override; -}; - -class PlayerActor_A0_38 { -public: - /* 00 */ unk16 mUnk_00; - /* 02 */ unk16 mUnk_02; - /* 04 */ PlayerActor_A0_38_04 mUnk_04; - /* 18 */ PlayerActor_A0_38_18 mUnk_18; - /* 2C */ Vec2s mUnk_2C; - /* 30 */ u16 mUnk_30; - /* 32 */ unk16 mUnk_32; - /* 34 */ u16 mUnk_34; - /* 36 */ bool mUnk_36; - /* 37 */ bool mUnk_37; - /* 38 */ - - PlayerActor_A0_38(); - ~PlayerActor_A0_38(); - - void func_ov024_020d19d8(); -}; - -class PlayerActor_A0 { -public: - /* 00 */ STRUCT_PAD(0x00, 0x38); - /* 38 */ PlayerActor_A0_38 *mUnk_38; - /* 3C */ STRUCT_PAD(0x3C, 0x94); - /* 94 */ - - PlayerActor_A0(); -}; - -class PlayerActor_A4 { -public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk8 mUnk_08; - /* 09 */ unk8 mUnk_09; - /* 0A */ unk8 mUnk_0A; - /* 0B */ unk8 mUnk_0B; - /* 0C */ -}; - -class PlayerActor_134 { -public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ - - PlayerActor_134() { - this->mUnk_00 = 0; - this->mUnk_04 = 0; - } -}; - -class PlayerActor_1B0 : public UnkSystem7 { -public: - /* 00 (base) */ - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0C */ - - PlayerActor_1B0(); - ~PlayerActor_1B0(); -}; - -class PlayerActor : public PlayerActorBase { -public: - /* 000 (base) */ - /* 09C */ PlayerActor_9C *mUnk_9C; - /* 0A0 */ PlayerActor_A0 *mUnk_A0; - /* 0A4 */ PlayerActor_A4 mUnk_A4; - /* 0B0 */ unk32 mUnk_B0; - /* 0B4 */ unk8 mUnk_B4; - /* 0B5 */ unk8 mUnk_B5; - /* 0B6 */ unk8 mUnk_B6; - /* 0B7 */ unk8 mUnk_B7; - /* 0B8 */ unk8 mUnk_B8; - /* 0B9 */ unk8 mUnk_B9; - /* 0BA */ unk8 mUnk_BA; - /* 0BB */ unk8 mUnk_BB; - /* 0BC */ CellAnimObject mUnk_BC; - /* 134 */ PlayerActor_134 *mUnk_134; - /* 138 */ CellAnimObject mUnk_138; // sanctuary link icon animation - /* 1B0 */ PlayerActor_1B0 mUnk_1B0[3]; - /* 1D4 */ - - PlayerActor(); //! TODO: params -}; diff --git a/include/Player/PlayerActorBase.hpp b/include/Player/PlayerActorBase.hpp new file mode 100644 index 00000000..c296e8ad --- /dev/null +++ b/include/Player/PlayerActorBase.hpp @@ -0,0 +1,426 @@ +#pragma once + +#include "Actor/Actor.hpp" +#include "LinkList.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/Common.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_ov000_0208f820.hpp" +#include "math.hpp" +#include "types.h" + +#include + +class UnkStruct_027e0ce0_40; +class PlayerActorBase_70; + +typedef s32 PlayerCharacter; +enum PlayerCharacter_ { + /* 0 */ PlayerCharacter_Link = 0, + /* 1 */ PlayerCharacter_Phantom = 1, + /* 2 */ PlayerCharacter_Zelda = 2, + /* 3 */ PlayerCharacter_Max, +}; + +struct UnkStruct_ov000_020ab4dc { + /* 00 */ const char *mpDirectory; + /* 04 */ const char mUnk_04[16]; + /* 14 */ const char mUnk_14[16]; + /* 24 */ const char mUnk_24[16]; + /* 34 */ const char mUnk_34[16]; + /* 44 */ const char mUnk_44[16]; + /* 54 */ STRUCT_PAD(0x54, 0x66); + /* 66 */ s16 mUnk_66; + /* 66 */ unk16 mUnk_68; + /* 66 */ unk16 mUnk_6A; + /* 66 */ unk16 mUnk_6C; + /* 66 */ unk16 mUnk_6E; + /* 66 */ unk16 mUnk_70; + /* 66 */ unk16 mUnk_72; + /* 74 */ s16 mUnk_74; + /* 78 */ STRUCT_PAD(0x78, 0x9C); + /* 9C */ +}; +extern const UnkStruct_ov000_020ab4dc data_ov000_020ab4dc[PlayerCharacter_Max]; + +extern "C" G3d_Model *func_ov000_0208eadc(PlayerCharacter, unk32, bool); +extern "C" G3d_Model *func_ov000_0208eb44(PlayerCharacter, unk32, bool); + +inline bool PlayerCharacter_IsNotLink(PlayerCharacter character) { + bool ret = false; + + if (character != PlayerCharacter_Link) { + ret = true; + } + + return ret; +} + +inline bool PlayerCharacter_IsNotLink2(PlayerCharacter character) { + bool ret = true; + + if (character == PlayerCharacter_Link) { + ret = false; + } + + return ret; +} + +class ModelRender_Derived3 : public ModelRender { +public: + /* 00 (base) */ + /* 60 */ + + ModelRender_Derived3(PlayerCharacter character, G3d_Model *pModel); + + // data_ov000_020b2b44 + /* 00 */ virtual ~ModelRender_Derived3() override {} + + void func_ov000_0208c058(unk32 param1); +}; + +class ModelRender_Derived4 : public ModelRender_Derived3 { +public: + /* 00 (base) */ + /* 60 */ STRUCT_PAD(0x60, 0x78); + /* 78 */ unk32 mUnk_78; + /* 7C */ unk32 mUnk_7C[9]; + /* A0 */ unk32 mUnk_A0[7]; + /* BC */ unk32 mUnk_BC; + /* C0 */ + + ModelRender_Derived4(PlayerCharacter character, unk32 param2, G3d_Model *pModel, G3d_BoneMtxStruct *pCacheJntAnm); + + // data_ov000_020b2b70 + /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; +}; + +class ModelRender_Derived5 : public ModelRender_Derived3 { +public: + /* 00 (base) */ + /* 60 */ STRUCT_PAD(0x60, 0xA8); + /* A8 */ + + ModelRender_Derived5(PlayerCharacter character, G3d_Model *pModel, G3d_BoneMtxStruct *pCacheJntAnm); + + // data_ov093_021787e8 + /* 00 */ virtual ~ModelRender_Derived5() override {} + /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; +}; + +class PlayerActorBase_38 { +private: + /* 00 */ UnkStruct_PlayerGet_64 mUnk_00; + +public: + PlayerActorBase_38(void *param1) : + mUnk_00(param1) { + this->mUnk_00.mUnk_08 = 0; + } + + void Reset() { + this->mUnk_00.~UnkStruct_PlayerGet_64(); + this->mUnk_00.mUnk_08 = 0; + } +}; + +class PlayerActorBase_5C { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ void *mUnk_10; + /* 14 */ + + void func_ov000_02089dc4(); +}; + +class PlayerActorBase_70_0C { +private: + /* 00 */ G3d_Model *mpModel1; + /* 04 */ G3d_Model *mpModel2; + /* 08 */ ModelRender_Derived3 *mUnk_08; + /* 0C */ ModelRender_Derived3 *mUnk_0C; + /* 10 */ + +public: + // clang-format off + G3d_Model* GetModel1() const { return this->mpModel1; } + G3d_Model* GetModel2() const { return this->mpModel2; } + ModelRender_Derived3* GetUnk08() const { return this->mUnk_08; } + ModelRender_Derived3* GetUnk0C() const { return this->mUnk_0C; } + // clang-format on + + PlayerActorBase_70_0C(PlayerCharacter character, unk32 param2) : + mpModel1(func_ov000_0208eadc(character, param2, true)), + mpModel2(func_ov000_0208eb44(character, param2, true)) { + ModelRender_Derived3 *unk_08; + ModelRender_Derived3 *unk_0C; + G3d_Model *pModel; + + { + pModel = mpModel1; + + if (!PlayerCharacter_IsNotLink2(character)) { + unk_08 = new(HeapIndex_1) ModelRender_Derived4(character, param2, pModel, NULL); + } else { + unk_08 = new(HeapIndex_1) ModelRender_Derived5(character, pModel, NULL); + } + + this->mUnk_08 = unk_08; + } + + { + pModel = mpModel2; + + if (!PlayerCharacter_IsNotLink(character)) { + unk_0C = new(HeapIndex_1) ModelRender_Derived4(character, param2, pModel, unk_08->mRenderObj.cacheJntAnm); + } else { + unk_0C = new(HeapIndex_1) ModelRender_Derived5(character, pModel, unk_08->mRenderObj.cacheJntAnm); + } + + this->mUnk_0C = unk_0C; + } + } +}; + +class PlayerActorBase_70_1C : public UnkStruct_PlayerGet_74_base { +private: + /* 00 (base) */ + /* 04 */ STRUCT_PAD(0x04, 0x2C); + /* 2C */ + +public: + PlayerActorBase_70_1C(PlayerActorBase_70 *pParent); + + // data_ov000_020b2b9c + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; +}; + +class PlayerActorBase_70_30 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x1C); + /* 1C */ + +public: + PlayerActorBase_70_30(PlayerCharacter character, ModelRender_UnkSystem1 *param2, ModelRender_UnkSystem1 *param3); +}; + +class PlayerActorBase_70_6C { +private: + /* 00 */ UnkSystem5 mUnk_00; + /* 20 */ STRUCT_PAD(0x20, 0x70); + /* 70 */ + +public: + PlayerActorBase_70_6C(PlayerCharacter character, void *pBTX, G3d_Model *pModel); + ~PlayerActorBase_70_6C(); +}; + +class PlayerActorBase_70_DC { +private: + /* 00 */ UnkSystem5 mUnk_00; + /* 20 */ STRUCT_PAD(0x20, 0x60); + /* 60 */ + +public: + PlayerActorBase_70_DC(PlayerCharacter character, G3d_Model *pModel); + ~PlayerActorBase_70_DC(); +}; + +class PlayerActorBase_70_E0 { +private: + /* 00 */ unk32 mUnk_00; + +public: + PlayerActorBase_70_E0(ModelRender_Derived3 *pUnk_08, PlayerCharacter character) { + unk32 value; + + if (pUnk_08->mpModel != NULL) { + value = pUnk_08->func_ov000_02057f18(data_ov000_020ab4dc[character].mUnk_14); + } else { + value = -1; + } + + this->mUnk_00 = value; + } +}; + +class PlayerActorBase_70_E4 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x30); + /* 30 */ + +public: + PlayerActorBase_70_E4(); +}; + +class PlayerActorBase_70_134 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x28); + /* 28 */ + +public: + PlayerActorBase_70_134(); +}; + +struct UnkStruct_func_ov000_020830d4 { + u16 mUnk_00; + u16 mUnk_04; + u8 mUnk_08; + u32 mUnk_0C; +}; + +struct UnkStruct_func_ov001_020bbe18 { + u16 mUnk_00; +}; + +class PlayerActorBase_70 { +private: + /* 000 */ BOOL mIsNotLink; + /* 004 */ PlayerCharacter mCharacter; + /* 008 */ unk32 mUnk_008; + /* 014 */ PlayerActorBase_70_0C mUnk_00C; + /* 01C */ PlayerActorBase_70_1C *mUnk_01C; + /* 020 */ ModelRender_UnkSystem1 *mUnk_020; + /* 024 */ ModelRender_UnkSystem1 *mUnk_024; + /* 028 */ ModelRender_UnkSystem1 *mUnk_028; + /* 02C */ ModelRender_UnkSystem1 *mUnk_02C; + /* 030 */ PlayerActorBase_70_30 mUnk_030; + /* 04C */ PlayerActorBase_70_30 mUnk_04C; + /* 068 */ unk16 mUnk_068; + /* 06A */ unk16 mUnk_06A; + /* 06C */ PlayerActorBase_70_6C mUnk_06C; + /* 0DC */ PlayerActorBase_70_DC *mUnk_0DC; + /* 0E0 */ PlayerActorBase_70_E0 mUnk_0E0; + /* 0E4 */ PlayerActorBase_70_E4 mUnk_0E4; + /* 114 */ Mat4x3p *mUnk_114; + /* 118 */ unk32 mUnk_118; + /* 11C */ unk32 mUnk_11C; + /* 120 */ unk32 mUnk_120; + /* 124 */ unk16 mUnk_124; + /* 126 */ bool mUnk_126; + /* 127 */ bool mUnk_127; + /* 128 */ bool mUnk_128; + /* 129 */ bool mUnk_129; + /* 12A */ bool mUnk_12A; + /* 12B */ bool mUnk_12B; + /* 12C */ bool mUnk_12C; + /* 12D */ bool mUnk_12D; + /* 12E */ bool mUnk_12E; + /* 12F */ bool mUnk_12F; + /* 130 */ bool mUnk_130; + /* 131 */ bool mUnk_131; + /* 132 */ unk16 mUnk_132; + /* 134 */ PlayerActorBase_70_134 mUnk_134; + /* 15C */ unk32 mUnk_15C; + /* 160 */ + +public: + PlayerActorBase_70(PlayerCharacter character, unk32 param2); + ~PlayerActorBase_70(); + + // overlay 0 + void func_ov000_02082e78(unk32 param1, unk32 param2, unk32 param3, unk32 param4); + void func_ov000_020830d4(UnkStruct_func_ov001_020bbe18 param1, u32 param2, u8 param3, unk32 param4); + + // overlay 1 + void func_ov001_020bbe18(unk32 param1, UnkStruct_func_ov001_020bbe18 param2, u32 param3, u8 param4); +}; + +class PlayerActorBase_74 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x34); + /* 34 */ + +public: + PlayerActorBase_74() { + this->func_ov001_020db190(); + } + + void func_ov001_020db190(); +}; + +struct PlayerActorBase_78_04 { + STRUCT_PAD(0x00, 0x0C); + + void func_ov000_0205c584(unk32 param1, unk32 param2); +}; + +class PlayerActorBase_78 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ + +public: + void func_ov000_0205c584(volatile unk32 param1, volatile unk32 param2); +}; + +class PlayerLinkActor_9C_34 { +private: + /* 00 */ unk32 mUnk_00; + /* 04 */ VecFx32 mUnk_04; + /* 10 */ VecFx32 mUnk_10; + +public: + void func_ov000_0208efd0(VecFx32 *pVec); +}; + +class PlayerLinkActor_9C { +public: + /* 000 (vtable) */ + /* 004 */ STRUCT_PAD(0x04, 0x34); + /* 034 */ PlayerLinkActor_9C_34 mUnk_34; + /* 004 */ STRUCT_PAD(0x50, 0xF4); + /* 0F4 */ unk32 mUnk_0F4; + /* 0F8 */ STRUCT_PAD(0xF8, 0x154); + /* 154 */ + + PlayerLinkActor_9C(UnkStruct_027e0ce0_40 *param1, u32 rawGrabParams, PlayerCharacter character); + + // data_ov000_020b2a8c + /* 00 */ virtual ~PlayerLinkActor_9C(); +}; + +class PlayerActorBase { +public: + /* 00 */ VecFx32 mPos; + /* 0C */ VecFx32 mPrevPos; + /* 18 */ VecFx32 mVel; + /* 24 */ VecFx32 mAccel; + /* 30 */ union { + u16 mAngle; + UnkStruct_func_ov001_020bbe18 mAngleStruct; + }; + /* 32 */ u8 mInvincibilityTimer; + /* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen + /* 34 */ ActorRef mGrabActor; + /* 38 */ PlayerActorBase_38 mUnk_38; + /* 44 */ unk32 mUnk_44; + /* 48 */ PlayerCharacter mCharacter; + /* 4C */ unk32 mUnk_4C; + /* 50 */ ActorGrabParams mUnk_50; + /* 54 */ unk32 mUnk_54; + /* 58 */ UnkStruct_027e0ce0_40 *mUnk_58; + /* 5C */ PlayerActorBase_5C mUnk_5C; + /* 70 */ PlayerActorBase_70 *mUnk_70; + /* 74 */ PlayerActorBase_74 *mUnk_74; + /* 78 */ PlayerActorBase_78 mUnk_78; + /* 84 */ UnkStruct_ov019_020d24c8_28_258_00 mUnk_84; + /* 8C */ unk32 mUnk_8C; + /* 90 */ PlayerLinkActor_9C *mUnk_90; + /* 94 */ + + PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 param3, UnkStruct_027e0ce0_40 *param4); + ~PlayerActorBase(); + + // overlay 0 + void func_ov000_0208c8f8(VecFx32 *pVec); + void func_ov000_0208c914(); + void func_ov000_0208d3fc(); + void func_ov000_0208d7f0(bool param1); + + // overlay 1 + void func_ov001_020bc96c(); // ResetState? or just Reset? idk +}; diff --git a/include/Player/PlayerGet.hpp b/include/Player/PlayerGet.hpp index de0e1557..45556288 100644 --- a/include/Player/PlayerGet.hpp +++ b/include/Player/PlayerGet.hpp @@ -101,15 +101,6 @@ public: } }; -class UnkStruct_PlayerGet_74_base { -public: - /* 00 (vtable) */ - - /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3); - - UnkStruct_PlayerGet_74_base(); -}; - class UnkStruct_PlayerGet_74 : public UnkStruct_PlayerGet_74_base { public: /* 00 (base) */ diff --git a/include/Player/PlayerLink.hpp b/include/Player/PlayerLink.hpp new file mode 100644 index 00000000..1aac5563 --- /dev/null +++ b/include/Player/PlayerLink.hpp @@ -0,0 +1,175 @@ +#pragma once + +#include "Player/PlayerActorBase.hpp" + +class UnkStruct_027e0ce0_40; +class PlayerLinkActor_A0_38; + +class PlayerLinkActor_A0_38_04_Base : public LinkList { +public: + /* 00 (vtable) */ + /* 04 (base) */ + /* 0C */ unk32 mUnk_0C; + /* 10 */ PlayerLinkActor_A0_38 *mUnk_10; + /* 14 */ + + PlayerLinkActor_A0_38_04_Base(PlayerLinkActor_A0_38 *param1) { + this->mUnk_0C = 0; + this->mUnk_10 = param1; + } + + /* 00 */ virtual void vfunc_00(); +}; + +class PlayerLinkActor_A0_38_04 : public PlayerLinkActor_A0_38_04_Base { +public: + /* 00 (vtable) */ + /* 04 (base) */ + /* 0C */ + + PlayerLinkActor_A0_38_04(PlayerLinkActor_A0_38 *param1) : + PlayerLinkActor_A0_38_04_Base(param1) {} + + // data_ov024_020d8250 + /* 00 */ virtual void vfunc_00() override; +}; + +class PlayerLinkActor_A0_38_18 : public PlayerLinkActor_A0_38_04_Base { +public: + /* 00 (vtable) */ + /* 04 (base) */ + /* 0C */ + + PlayerLinkActor_A0_38_18(PlayerLinkActor_A0_38 *param1) : + PlayerLinkActor_A0_38_04_Base(param1) {} + + // data_ov024_020d8244 + /* 00 */ virtual void vfunc_00() override; +}; + +class PlayerLinkActor_A0_38 { +public: + /* 00 */ unk16 mUnk_00; + /* 02 */ unk16 mUnk_02; + /* 04 */ PlayerLinkActor_A0_38_04 mUnk_04; + /* 18 */ PlayerLinkActor_A0_38_18 mUnk_18; + /* 2C */ Vec2s mUnk_2C; + /* 30 */ u16 mUnk_30; + /* 32 */ unk16 mUnk_32; + /* 34 */ u16 mUnk_34; + /* 36 */ bool mUnk_36; + /* 37 */ bool mUnk_37; + /* 38 */ + + PlayerLinkActor_A0_38(); + ~PlayerLinkActor_A0_38(); + + void func_ov024_020d19d8(); +}; + +class PlayerLinkActor_A0 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x38); + /* 38 */ PlayerLinkActor_A0_38 *mUnk_38; + /* 3C */ STRUCT_PAD(0x3C, 0x94); + /* 94 */ + + PlayerLinkActor_A0(unk32 param1, UnkStruct_027e0ce0_40 *param2, PlayerActorBase *pPlayer, PlayerLinkActor_9C *param4); + ~PlayerLinkActor_A0(); + + // overlay 0 + u32 func_ov000_02093718(); + u8 func_ov000_0209378c(); // bool? + + // overlay 1 + void func_ov001_020bd2e0(); + void func_ov001_020bd358(); + void func_ov001_020bd388(bool param1, bool param2); +}; + +class PlayerLinkActor_A4 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ bool mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0A */ unk8 mUnk_0A; + /* 0B */ unk8 mUnk_0B; + /* 0C */ + + PlayerLinkActor_A4(PlayerActorBase *pPlayer, PlayerLinkActor_A0 *param2); + ~PlayerLinkActor_A4(); +}; + +class PlayerLinkActor_134 { +public: + /* 00 */ UnkStruct_PlayerGet_ec mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ + + PlayerLinkActor_134() : + mUnk_00(NULL) { + this->mUnk_04 = 0; + } + + ~PlayerLinkActor_134() { + this->func_ov031_020db0fc(); + } + + // overlay 31 + void func_ov031_020db0fc(); +}; + +class PlayerLinkActor_1B0 : public UnkSystem7 { +public: + /* 00 (base) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ + + PlayerLinkActor_1B0(); + // ~PlayerLinkActor_1B0() {} +}; + +class PlayerLinkActor : public PlayerActorBase { +public: + /* 000 (base) */ + /* 094 */ bool *mUnk_094; + /* 098 */ unk32 mUnk_098; + /* 09C */ PlayerLinkActor_9C *mUnk_09C; + /* 0A0 */ PlayerLinkActor_A0 *mUnk_0A0; + /* 0A4 */ PlayerLinkActor_A4 mUnk_0A4; + /* 0B0 */ u32 mUnk_0B0; + /* 0B4 */ bool mUnk_0B4; + /* 0B5 */ bool mUnk_0B5; + /* 0B6 */ bool mUnk_0B6; + /* 0B7 */ bool mUnk_0B7; + /* 0B8 */ bool mUnk_0B8; + /* 0B9 */ bool mUnk_0B9; + /* 0BA */ bool mUnk_0BA; + /* 0BB */ bool mUnk_0BB; + /* 0BC */ CellAnimObject mUnk_0BC; + /* 134 */ PlayerLinkActor_134 *mUnk_134; + /* 138 */ CellAnimObject mUnk_138; // sanctuary link icon animation + /* 1B0 */ PlayerLinkActor_1B0 mUnk_1B0[3]; + /* 1D4 */ + + PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4); + ~PlayerLinkActor(); + + // overlay 1 + void func_ov001_020bcb60(unk32 param1); + void func_ov001_020bcb70(); + void func_ov001_020bcba8(); + void func_ov001_020bcbd0(VecFx32 *pVec); + + // overlay 21 + void func_ov021_020ebda0(); + void func_ov021_020ebda0(int); + + // overlay 31 + void func_ov031_020d96a4(PlayerLinkActor_A0 *param1, UnkStruct_027e0ce0_40 *param2); + void func_ov031_020d96a4(int, PlayerLinkActor_A0 *param1, UnkStruct_027e0ce0_40 *param2); + void func_ov031_020dccf0(); + void func_ov031_020dccf0(int); +}; diff --git a/include/Player/PlayerPhantom.hpp b/include/Player/PlayerPhantom.hpp new file mode 100644 index 00000000..8d2fd7a5 --- /dev/null +++ b/include/Player/PlayerPhantom.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "Player/PlayerActorBase.hpp" + +class UnkStruct_027e0ce0_40; + +class PlayerPhantomActor : public PlayerActorBase { +public: + /* 000 (base) */ + /* 094 */ unk32 mUnk_94; + /* 098 */ unk32 mUnk_98; + + PlayerPhantomActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4); +}; diff --git a/include/Player/PlayerZelda.hpp b/include/Player/PlayerZelda.hpp new file mode 100644 index 00000000..b1ef3af7 --- /dev/null +++ b/include/Player/PlayerZelda.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "Player/PlayerActorBase.hpp" + +class UnkStruct_027e0ce0_40 : + + class PlayerZeldaActor : public PlayerActorBase { +public: + /* 000 (base) */ + /* 094 */ unk32 mUnk_94; + /* 098 */ unk32 mUnk_98; + + PlayerZeldaActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4); +}; diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index c751a70a..27ff6087 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -6,6 +6,8 @@ #include +extern "C" void *func_ov000_02057750(size_t allocSize); + typedef void (*UnkSystem4_UnkCallback)(void); class UnkSystem4_vfunc_1C_B4 { @@ -43,6 +45,10 @@ public: /* 14 */ virtual void vfunc_14(Mat3p *param1, VecFx32 *param2) = 0; /* 18 */ virtual void vfunc_18(VecFx32 *param1) = 0; /* 1C */ + + unk32 func_ov000_02057f18(const void *param1); + unk32 func_ov000_02057f40(const void *param1); + const G3d_Model_14 *func_ov000_02057ee0() const; }; class ModelRender : public ModelRenderBase { @@ -65,6 +71,8 @@ public: /* 20 */ virtual void vfunc_20(); void func_ov000_02057c38(unk32 param1, unk32 param2); + void func_ov000_02057d20(u8 numBones); + void func_ov000_02057d3c(G3d_BoneMtxStruct *pCacheJntAnm); void func_ov000_0209a7b8(void *param1, UnkSystem4_UnkCallback param2); }; @@ -190,3 +198,22 @@ public: // data_ov024_020d84bc /* 00 */ virtual ~ModelRender_Derived2() override {} }; + +class ModelRender_UnkSystem1 { +public: + /* 00 */ UnkSystem5 mUnk_00; + /* 20 */ + + ModelRender_UnkSystem1(G3d_Model *pModel, size_t allocSize) : + mUnk_00(func_ov000_02057750(allocSize), pModel) {} + + ~ModelRender_UnkSystem1(); +}; + +class ModelRender_UnkSystem1_Derived1 : public ModelRender_UnkSystem1 { +public: + /* 00 (base) */ + /* 20 */ + + ModelRender_UnkSystem1_Derived1(G3d_Model *pModel, size_t allocSize); +}; diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index dd2b7906..33485059 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -218,14 +218,17 @@ struct UnkStruct_ov019_020d24c8_28_258_00 { /* 04 */ unk32 mUnk_04; /* 08 */ - UnkStruct_ov019_020d24c8_28_258_00() { - this->mUnk_00 = NULL; - this->mUnk_04 = 0; - } + UnkStruct_ov019_020d24c8_28_258_00() {} UnkStruct_ov019_020d24c8_28_258_00(void *param1, unk32 param2) : mUnk_00(param1), mUnk_04(param2) {} + + void Init() { + this->mUnk_00 = NULL; + this->mUnk_04 = 0; + } + void func_ov000_0205fc20(unk32 param1, unk32 param2, void *param3, void *param4); }; @@ -233,6 +236,9 @@ struct UnkStruct_ov019_020d24c8_28_258_00_Derived1 : public UnkStruct_ov019_020d /* 00 (base) */ /* 08 */ unk32 mUnk_08; /* 0C */ + + UnkStruct_ov019_020d24c8_28_258_00_Derived1() : + UnkStruct_ov019_020d24c8_28_258_00(NULL, 0) {} }; class UnkStruct_ov019_020d24c8_28_258 : public UnkStruct_ov019_020d24c8_28_258_00 { @@ -248,12 +254,14 @@ public: /* 16 */ unk16 mUnk_16; /* 18 */ - UnkStruct_ov019_020d24c8_28_258() { + UnkStruct_ov019_020d24c8_28_258() : + UnkStruct_ov019_020d24c8_28_258_00(NULL, 0) { this->mPos.x = 0; this->mPos.y = 0; }; - UnkStruct_ov019_020d24c8_28_258(s16 param1, unk32 param2) { + UnkStruct_ov019_020d24c8_28_258(s16 param1, unk32 param2) : + UnkStruct_ov019_020d24c8_28_258_00(NULL, 0) { this->UnknownAction(param1, param2); } @@ -1220,3 +1228,12 @@ public: // data_ov000_020b24c4 /* 00 */ virtual void vfunc_00(); }; + +class UnkStruct_PlayerGet_74_base { +public: + /* 00 (vtable) */ + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3); + + UnkStruct_PlayerGet_74_base(); +}; diff --git a/include/Unknown/UnkStruct_027e0cdc.hpp b/include/Unknown/UnkStruct_027e0cdc.hpp index 739a47c1..724d0ec5 100644 --- a/include/Unknown/UnkStruct_027e0cdc.hpp +++ b/include/Unknown/UnkStruct_027e0cdc.hpp @@ -3,15 +3,16 @@ #include "global.h" #include "types.h" -class UnkStruct_027e0cdc { +class UnkStruct_027e0cdc : public AutoInstance { public: /* 00 */ unk32 mUnk_00; UnkStruct_027e0cdc(); - ~UnkStruct_027e0cdc(); unk32 func_ov000_02082a28(unk32 param1); unk32 func_ov000_02082a48(unk32 param1); + + static void Destroy(); }; extern UnkStruct_027e0cdc *data_027e0cdc; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index b37a2e32..fdcb5f6c 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -6,7 +6,7 @@ #include "Actor/ActorRef.hpp" #include "Item/ItemManager.hpp" #include "LinkList.hpp" -#include "Player/Player.hpp" +#include "Player/PlayerLink.hpp" #include "Player/TouchControl.hpp" #include "Save/SaveManager.hpp" #include "System/SysNew.hpp" @@ -367,9 +367,9 @@ public: /* 148 */ void *mUnk_148; /* 14C */ UnkStruct_027e0ce0_40_14C *mUnk_14C; /* 150 */ UnkStruct_027e0ce0_40_150 *mUnk_150; - /* 154 */ PlayerActor mPlayer; + /* 154 */ PlayerLinkActor mPlayer; /* 328 */ UnkStruct_027e0ce0_40_328 *mUnk_328; - /* 32C */ PlayerActor *mpPlayer; // set to mPlayer + /* 32C */ PlayerLinkActor *mpPlayer; // set to mPlayer /* 330 */ UnkStruct_027e0ce0_40_328 *mUnk_330; // set to mUnk_328 /* 334 */ ItemFlag mEquippedItem; /* 338 */ bool mIsSceneTowerInteriorStairs; diff --git a/include/Unknown/UnkStruct_027e0cf8.hpp b/include/Unknown/UnkStruct_027e0cf8.hpp index 4c43f2a4..d4ecba0f 100644 --- a/include/Unknown/UnkStruct_027e0cf8.hpp +++ b/include/Unknown/UnkStruct_027e0cf8.hpp @@ -142,7 +142,8 @@ public: /* 1B */ bool mUnk_1B; /* 1C */ - UnkStruct_027e0cf8_0C_00() {} + UnkStruct_027e0cf8_0C_00() : + mUnk_00(NULL, 0) {} void func_ov024_020cff1c(); }; diff --git a/include/Unknown/UnkStruct_027e0d34.hpp b/include/Unknown/UnkStruct_027e0d34.hpp index d372ca85..f8f2ff1b 100644 --- a/include/Unknown/UnkStruct_027e0d34.hpp +++ b/include/Unknown/UnkStruct_027e0d34.hpp @@ -9,13 +9,15 @@ public: bool func_ov000_02093bc8(unk32 param1); }; -class UnkStruct_027e0d34 { +class UnkStruct_027e0d34 : public AutoInstance { public: /* 00 */ unk32 mUnk_00; /* 04 */ UnkStruct_027e0d34_04 *mUnk_04; UnkStruct_027e0d34(); - ~UnkStruct_027e0d34(); + + // overlay 1 + static void Destroy(); // overlay 31 bool func_ov031_020d97e4(); diff --git a/include/Unknown/UnkStruct_ov000_0208f820.hpp b/include/Unknown/UnkStruct_ov000_0208f820.hpp index 79882493..f79cfafd 100644 --- a/include/Unknown/UnkStruct_ov000_0208f820.hpp +++ b/include/Unknown/UnkStruct_ov000_0208f820.hpp @@ -32,7 +32,7 @@ public: /* 0A */ unk16 mUnk_0A; /* 0C */ - UnkStruct_PlayerGet_64(void *param1, unk32 param2); + UnkStruct_PlayerGet_64(void *param1); ~UnkStruct_PlayerGet_64(); void func_ov000_0208a100(); diff --git a/include/types.h b/include/types.h index e16b7633..e82faf1b 100644 --- a/include/types.h +++ b/include/types.h @@ -40,8 +40,8 @@ typedef void (*UnkCallback)(u16 param1); template class Instance { public: - Instance(); - ~Instance(); + Instance(); //! TODO: should this be inlined? + ~Instance(); //! TODO: should this be inlined? }; template class AutoInstance : public Instance { diff --git a/libs/nitro/include/nitro/fx.h b/libs/nitro/include/nitro/fx.h index 006d1155..2011e0d0 100644 --- a/libs/nitro/include/nitro/fx.h +++ b/libs/nitro/include/nitro/fx.h @@ -34,6 +34,15 @@ typedef union VecFx32 { /* 0c */ }; fx32 coords[3]; + +//! TODO: figure out a better way... +#ifdef VECFX32_CTORS + VecFx32(fx32 _x, fx32 _y, fx32 _z) : + x(_x), + y(_y), + z(_z) {} + VecFx32() {} +#endif } VecFx32; typedef union MtxFx22 { diff --git a/libs/nns/include/nns/g3d/g3d.h b/libs/nns/include/nns/g3d/g3d.h index e0b5317e..c4cace22 100644 --- a/libs/nns/include/nns/g3d/g3d.h +++ b/libs/nns/include/nns/g3d/g3d.h @@ -56,6 +56,27 @@ typedef struct G3d_Animation_ { /* 1C */ } G3d_Animation; +typedef struct G3d_Model_14_ { + /* 00 */ u8 unk_14; + /* 01 */ u8 scalingHandler; // Determines which of the G3d_gScaleHandlers to use for this model + /* 02 */ u8 textureHandler; // Determines which of the G3d_gTextureHandlers to use for this model + /* 03 */ u8 numBones; // number of nodes + /* 04 */ u8 numMat; // number of materials + /* 05 */ u8 numMesh; // number of meshes + /* 06 */ u8 unk_1A; + /* 07 */ u8 unk_1B; + /* 08 */ fx32 upScale; + /* 0C */ fx32 downScale; + /* 10 */ u16 numVertex; // number of vertices + /* 12 */ u16 numPolygon; // number of polygons + /* 14 */ u16 numTriangle; // number of triangles + /* 16 */ u16 numQuad; // number of quads + /* 18 */ fx16 boundingBoxMin[3]; // bounding box lower vertex + /* 1E */ fx16 boundingBoxMax[3]; // bounding box upper vertex + /* 24 */ s32 unk_38; + /* 28 */ s32 unk_3C; +} G3d_Model_14; // size = 0x2C + // Structure representing the NSBMD model file typedef struct G3d_Model_ { /* 00 */ u32 size; // size of the model in bytes @@ -63,25 +84,9 @@ typedef struct G3d_Model_ { /* 08 */ u32 offMat; // offset of the material list /* 0C */ u32 offMesh; // offset of the mesh list /* 10 */ u32 offInvBMtx; // offset of the InvBindMatrix list - /* 14 */ u8 dummy1; - /* 15 */ u8 scalingHandler; // Determines which of the G3d_gScaleHandlers to use for this model - /* 16 */ u8 textureHandler; // Determines which of the G3d_gTextureHandlers to use for this model - /* 17 */ u8 numBones; // number of nodes - /* 18 */ u8 numMat; // number of materials - /* 19 */ u8 numMesh; // number of meshes - /* 1A */ u8 dummy2[2]; - /* 1C */ fx32 upScale; - /* 20 */ fx32 downScale; - /* 24 */ u16 numVertex; // number of vertices - /* 26 */ u16 numPolygon; // number of polygons - /* 28 */ u16 numTriangle; // number of triangles - /* 2A */ u16 numQuad; // number of quads - /* 2C */ fx16 boundingBoxMin[3]; // bounding box lower vertex - /* 32 */ fx16 boundingBoxMax[3]; // bounding box upper vertex - /* 38 */ u8 dummy3[8]; + /* 14 */ G3d_Model_14 unk_14; /* 40 */ G3d_NameList boneList; // bone list - /* 4C */ -} G3d_Model; +} G3d_Model; // size = 0x4C static inline G3d_NameList *G3d_GetBoneList(const G3d_Model *mdl) { return mdl != NULL ? (G3d_NameList *) &mdl->boneList : NULL; diff --git a/libs/nns/src/g3d/sbc.c b/libs/nns/src/g3d/sbc.c index 7b3cf0fc..6326208f 100644 --- a/libs/nns/src/g3d/sbc.c +++ b/libs/nns/src/g3d/sbc.c @@ -84,11 +84,11 @@ void G3d_InitRenderState(G3d_RenderState *renderState, G3d_RenderObject *renderO renderState->boneList = G3d_GetBoneList(renderObj->model); renderState->materialList = G3d_GetMat(renderObj->model); renderState->meshList = G3d_GetMesh(renderObj->model); - renderState->jntScalingHandler = G3d_gScaleHandlers[renderObj->model->scalingHandler]; - renderState->jntSRTHandler = G3d_gSRTTransformHandlers[renderObj->model->scalingHandler]; - renderState->textureHandler = G3d_gTextureHandlers[renderObj->model->textureHandler]; - renderState->upScale = renderObj->model->upScale; - renderState->downScale = renderObj->model->downScale; + renderState->jntScalingHandler = G3d_gScaleHandlers[renderObj->model->unk_14.scalingHandler]; + renderState->jntSRTHandler = G3d_gSRTTransformHandlers[renderObj->model->unk_14.scalingHandler]; + renderState->textureHandler = G3d_gTextureHandlers[renderObj->model->unk_14.textureHandler]; + renderState->upScale = renderObj->model->unk_14.upScale; + renderState->downScale = renderObj->model->unk_14.downScale; if (renderObj->callbackFunction && renderObj->callbackIdx < 32) { renderState->callbackFuncs[renderObj->callbackIdx] = renderObj->callbackFunction; diff --git a/src/001_SceneInit/Player/PlayerActorBase_001.cpp b/src/001_SceneInit/Player/PlayerActorBase_001.cpp new file mode 100644 index 00000000..f5b5c0c2 --- /dev/null +++ b/src/001_SceneInit/Player/PlayerActorBase_001.cpp @@ -0,0 +1,85 @@ +#define VECFX32_CTORS //! TODO: remove this hack + +#include "Player/PlayerActorBase.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" + +extern const char data_ov001_020c264c[][16]; +extern const char data_ov001_020c26bc[][16]; +extern "C" u16 *func_ov021_020ea868(int); +extern "C" void func_ov000_0205c584(void *, int, int); + +ModelRender_Derived4::ModelRender_Derived4(PlayerCharacter character, unk32 param2, G3d_Model *pModel, + G3d_BoneMtxStruct *pCacheJntAnm) : + ModelRender_Derived3(character, pModel), + mUnk_78(param2), + mUnk_BC(0) { + + if (pCacheJntAnm == NULL) { + this->func_ov000_02057d20(this->func_ov000_02057ee0()->numBones); + } else { + this->func_ov000_02057d3c(pCacheJntAnm); + } + + for (u32 i = 0; i < ARRAY_LEN(this->mUnk_7C); i++) { + this->mUnk_7C[i] = this->func_ov000_02057f18(&data_ov001_020c26bc[i]); + } + + for (u32 i = 0; i < ARRAY_LEN(this->mUnk_A0); i++) { + this->mUnk_A0[i] = this->func_ov000_02057f40(&data_ov001_020c264c[i]); + } + + this->func_ov000_0208c058(this->mUnk_7C[1]); +} + +PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 param3, UnkStruct_027e0ce0_40 *param4) : + mPos(0, 0, 0), + mPrevPos(0, 0, 0), + mVel(0, 0, 0), + mAccel(0, 0, 0), + mAngle(0), + mInvincibilityTimer(0), + mInvincibilityIconTimer(0), + mGrabActor(0), + mUnk_38(&this->mGrabActor), + mUnk_44(PlayerCharacter_IsNotLink(character)), + mCharacter(character), + mUnk_4C(param2), + mUnk_50(param2, this->mUnk_44), + mUnk_54(param3), + mUnk_58(param4) { + this->mUnk_5C.mUnk_04 = 0; + this->mUnk_5C.mUnk_10 = &this->mUnk_5C.mUnk_08; + this->mUnk_5C.func_ov000_02089dc4(); + + this->mUnk_70 = new(HeapIndex_1) PlayerActorBase_70(character, param2); + this->mUnk_74 = data_027e09a4->IsLand() ? new(HeapIndex_1) PlayerActorBase_74() : NULL; + + const UnkStruct_ov000_020ab4dc *ptr = &data_ov000_020ab4dc[(u32) this->mCharacter]; + s32 sVar1 = ptr->mUnk_74; + const UnkStruct_ov000_020ab4dc *new_var5 = &data_ov000_020ab4dc[this->mCharacter]; + func_ov000_0205c584(&this->mUnk_78, sVar1, new_var5->mUnk_66 / 2); + + this->mUnk_84.Init(); + this->mUnk_90 = 0; + + if (this->mUnk_4C == -1) { + this->func_ov000_0208c914(); + } else { + u16 temp = func_ov021_020ea868(this->mUnk_4C)[8]; + this->mUnk_84.func_ov000_0205fc20(0x78, temp, NULL, NULL); + } +} + +PlayerActorBase::~PlayerActorBase() { + delete this->mUnk_74; + delete this->mUnk_70; +} + +void PlayerActorBase::func_ov001_020bc96c() { + STACK_PAD(0x04); + this->mUnk_38.Reset(); + this->mUnk_5C.func_ov000_02089dc4(); + new(this->mUnk_74) PlayerActorBase_74(); + this->mGrabActor.Reset(); +} diff --git a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp index e69de29b..aa620878 100644 --- a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp +++ b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp @@ -0,0 +1,80 @@ +#include "Player/PlayerActorBase.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" + +extern "C" void *func_ov000_0208ea70(PlayerCharacter, unk32, bool); // returns pointer to .NSBTX + +extern unk16 data_ov000_020ab314; + +ModelRender_UnkSystem1 *func_ov001_020bbac4(BOOL isNotLink, G3d_Model *pModel, unk32 param3, bool param4) { + if (param4 && data_027e09a4->mUnk_60 == 1) { + return NULL; + } + + return isNotLink == true ? new(HeapIndex_1) ModelRender_UnkSystem1(pModel, 0x3C) + : new(HeapIndex_1) ModelRender_UnkSystem1_Derived1(pModel, 0); +} + +PlayerActorBase_70::PlayerActorBase_70(PlayerCharacter character, unk32 param2) : + mIsNotLink(PlayerCharacter_IsNotLink(character)), + mCharacter(character), + mUnk_008(param2), + mUnk_00C(character, param2), + mUnk_01C(new(HeapIndex_1) PlayerActorBase_70_1C(this)), + mUnk_020(func_ov001_020bbac4(this->mIsNotLink, this->mUnk_00C.GetModel1(), 0x01, false)), + mUnk_024(func_ov001_020bbac4(this->mIsNotLink, this->mUnk_00C.GetModel1(), 0x01, true)), + mUnk_028(func_ov001_020bbac4(this->mIsNotLink, this->mUnk_00C.GetModel1(), 0x00, false)), + mUnk_02C(func_ov001_020bbac4(this->mIsNotLink, this->mUnk_00C.GetModel1(), 0x00, true)), + mUnk_030(character, this->mUnk_020, this->mUnk_024), + mUnk_04C(character, this->mUnk_028, this->mUnk_02C), + mUnk_068(0x400), + mUnk_06A(0x400), + mUnk_06C(character, func_ov000_0208ea70(character, param2, true), this->mUnk_00C.GetUnk08()->mpModel), + mUnk_0DC(this->mIsNotLink == true ? new(HeapIndex_1) PlayerActorBase_70_DC(character, this->mUnk_00C.GetUnk08()->mpModel) + : NULL), + mUnk_0E0(this->mUnk_00C.GetUnk08(), character), + mUnk_114(param2 == -1 && character == PlayerCharacter_Link ? new(HeapIndex_1) Mat4x3p[PlayerCharacter_Max] : NULL), + mUnk_118(false), + mUnk_11C(false), + mUnk_120(false), + mUnk_124(false), + mUnk_126(false), + mUnk_127(false), + mUnk_128(false), + mUnk_129(true), + mUnk_12A(true), + mUnk_12B(false), + mUnk_12C(false), + mUnk_12D(false), + mUnk_131(false), + mUnk_132(data_ov000_020ab314), + mUnk_15C(0x20000) { + if (this->mUnk_114 != NULL) { + for (u32 i = 0; i < PlayerCharacter_Max; i++) { + Mat4x3p_InitIdentity(&this->mUnk_114[i]); + } + } +} + +PlayerActorBase_70::~PlayerActorBase_70() { + delete[] this->mUnk_114; + delete this->mUnk_0DC; + delete this->mUnk_02C; + delete this->mUnk_028; + delete this->mUnk_024; + delete this->mUnk_020; + delete this->mUnk_01C; + delete this->mUnk_00C.GetUnk0C(); + delete this->mUnk_00C.GetUnk08(); +} + +void PlayerActorBase_70::func_ov001_020bbe18(unk32 param1, UnkStruct_func_ov001_020bbe18 param2, u32 param3, u8 param4) { + this->mUnk_129 = true; + this->mUnk_12A = true; + + if (this->mIsNotLink == true) { + this->func_ov000_02082e78(0x00, param1, 0x01, 0x00); + } + + this->func_ov000_020830d4(param2, param3, param4, 0x00); +} diff --git a/src/001_SceneInit/Player/PlayerLinkActor_001.cpp b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp new file mode 100644 index 00000000..d65515d9 --- /dev/null +++ b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp @@ -0,0 +1,107 @@ +#include "Player/PlayerActorBase.hpp" +#include "Player/PlayerLink.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0d34.hpp" + +PlayerLinkActor::PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4) : + PlayerActorBase(PlayerCharacter_Link, param1, param2, param3), + mUnk_094(param4), + mUnk_098(0), + mUnk_09C(new(HeapIndex_1) PlayerLinkActor_9C(param3, *(u32 *) &this->mUnk_50, this->mCharacter)), + mUnk_0A0(new(HeapIndex_1) PlayerLinkActor_A0(param2, param3, this, this->mUnk_09C)), + mUnk_0A4(this, this->mUnk_0A0), + mUnk_0B0(-1), + mUnk_0B4(false), + mUnk_0B5(false), + mUnk_0B6(false), + mUnk_0B7(false), + mUnk_0B8(false), + mUnk_0B9(false), + mUnk_0BA(false), + mUnk_0BB(false), + mUnk_134(param1 == -1 ? new(HeapIndex_1) PlayerLinkActor_134() : NULL) { + this->mUnk_90 = this->mUnk_09C; + + //! TODO: dark magic + PlayerLinkActor *new_var = this; + PlayerLinkActor **new_var3 = &new_var; + if ((*new_var3)->mUnk_4C == -1) { + (*new_var3)->func_ov031_020d96a4(this->mUnk_0A0, this->mUnk_58); + this->func_ov031_020dccf0(); + } else { + this->func_ov021_020ebda0(); + } +} + +PlayerLinkActor::~PlayerLinkActor() { + if (data_027e09a4->mUnk_60 == 0) { + UnkStruct_027e0d34::Destroy(); + } + + delete this->mUnk_134; + delete this->mUnk_0A0; + delete this->mUnk_09C; +} + +void PlayerLinkActor::func_ov001_020bcb60(unk32 param1) { + this->mUnk_098 = param1; + this->mUnk_09C->mUnk_0F4 = param1; +} + +void PlayerLinkActor::func_ov001_020bcb70() { + this->func_ov001_020bc96c(); + this->mUnk_0B4 = false; + this->mUnk_0B5 = false; + this->mUnk_0B8 = false; + this->mUnk_0A0->func_ov001_020bd2e0(); + this->mUnk_0A4.mUnk_08 = false; + this->func_ov000_0208d7f0(false); +} + +void PlayerLinkActor::func_ov001_020bcba8() { + if (this->mUnk_134 != NULL) { + this->mUnk_134->func_ov031_020db0fc(); + } + + if (!this->mUnk_0B6) { + this->mUnk_0A0->func_ov001_020bd358(); + } +} + +void PlayerLinkActor::func_ov001_020bcbd0(VecFx32 *pVec) { + this->func_ov000_0208c8f8(pVec); + this->mUnk_90->mUnk_34.func_ov000_0208efd0(pVec); + + PlayerActorBase_70 *unk_70 = this->mUnk_70; + unk_70->func_ov001_020bbe18(0, this->mAngleStruct, this->mUnk_0A0->func_ov000_02093718(), + this->mUnk_0A0->func_ov000_0209378c()); + + bool uVar1 = false; + if (this->mUnk_094 != 0) { + uVar1 = *this->mUnk_094; + } + + this->mUnk_0A0->func_ov001_020bd388(uVar1, this->mUnk_0B6); + this->mUnk_0B6 = false; + + this->mUnk_0B9 = data_027e0cd8->func_ov000_02082124(); + this->mUnk_0BA = false; + this->mUnk_0BB = false; + + this->func_ov000_0208d3fc(); +} + +void UnkStruct_027e0d34::Destroy() { + if (data_027e0d34 != NULL) { + delete data_027e0d34; + } +} + +PlayerLinkActor_1B0::PlayerLinkActor_1B0() : + UnkSystem7(NULL), + mUnk_04(-1), + mUnk_08(0) {} + +DECL_INSTANCE_DTOR(UnkStruct_027e0d34, data_027e0d34); diff --git a/src/001_SceneInit/Player/Player_001.cpp b/src/001_SceneInit/Player/Player_001.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/src/001_SceneInit/UnkStruct_027e0cdc_001.cpp b/src/001_SceneInit/UnkStruct_027e0cdc_001.cpp new file mode 100644 index 00000000..6e0ce2dd --- /dev/null +++ b/src/001_SceneInit/UnkStruct_027e0cdc_001.cpp @@ -0,0 +1,9 @@ +#include "Unknown/UnkStruct_027e0cdc.hpp" + +void UnkStruct_027e0cdc::Destroy() { + if (data_027e0cdc != NULL) { + delete data_027e0cdc; + } +} + +DECL_INSTANCE_DTOR(UnkStruct_027e0cdc, data_027e0cdc); diff --git a/src/024_MainGame/Player/PlayerActor_A0_38_024.cpp b/src/024_MainGame/Player/PlayerActor_A0_38_024.cpp index 2b000a7a..0aa5df58 100644 --- a/src/024_MainGame/Player/PlayerActor_A0_38_024.cpp +++ b/src/024_MainGame/Player/PlayerActor_A0_38_024.cpp @@ -1,4 +1,4 @@ -#include "Player/Player.hpp" +#include "Player/PlayerLink.hpp" extern "C" void func_ov000_0205be34(void *thisx, unk16 param1); extern "C" void func_ov000_0205be44(void *thisx, Vec2s *param1, Vec2s *param2, bool param3, bool param4); @@ -16,7 +16,7 @@ static const Vec2s data_ov024_020d822c(0x20, 0x10); static const Vec2s data_ov024_020d8228(0x20, 0x40); static const Vec2s data_ov024_020d8224(0x40, 0x40); -void PlayerActor_A0_38_04::vfunc_00() { +void PlayerLinkActor_A0_38_04::vfunc_00() { UnkStruct_auStack_14 spC; Vec2s sp8; Vec2s sp4; @@ -46,7 +46,7 @@ void PlayerActor_A0_38_04::vfunc_00() { func_ov000_0205be44(&spC, &sp8, &sp4, var_r3, var_r4); } -void PlayerActor_A0_38_18::vfunc_00() { +void PlayerLinkActor_A0_38_18::vfunc_00() { UnkStruct_auStack_14 sp3C; UnkStruct_auStack_14 sp38; UnkStruct_auStack_14 sp34; @@ -119,7 +119,7 @@ void PlayerActor_A0_38_18::vfunc_00() { THUMB_BEGIN -PlayerActor_A0_38::PlayerActor_A0_38() : +PlayerLinkActor_A0_38::PlayerLinkActor_A0_38() : mUnk_00(0xC0), mUnk_02(0x80), mUnk_04(this), @@ -127,9 +127,9 @@ PlayerActor_A0_38::PlayerActor_A0_38() : this->func_ov024_020d19d8(); } -PlayerActor_A0_38::~PlayerActor_A0_38() {} +PlayerLinkActor_A0_38::~PlayerLinkActor_A0_38() {} -void PlayerActor_A0_38::func_ov024_020d19d8() { +void PlayerLinkActor_A0_38::func_ov024_020d19d8() { this->mUnk_2C.x = 0x8000; this->mUnk_2C.y = 0x8000; this->mUnk_30 = 0; diff --git a/src/024_MainGame/Train/UnkStruct_027e0cf8_00_0C_024.cpp b/src/024_MainGame/Train/UnkStruct_027e0cf8_00_0C_024.cpp index a104c5ea..053829cf 100644 --- a/src/024_MainGame/Train/UnkStruct_027e0cf8_00_0C_024.cpp +++ b/src/024_MainGame/Train/UnkStruct_027e0cf8_00_0C_024.cpp @@ -424,7 +424,9 @@ void UnkStruct_027e0cf8_0C_00::func_ov024_020cff1c() { this->mUnk_1B = false; } -UnkStruct_027e0cf8_0C::UnkStruct_027e0cf8_0C() { +UnkStruct_027e0cf8_0C::UnkStruct_027e0cf8_0C() : + mUnk_150(NULL, 0), + mUnk_15C(NULL, 0) { this->mUnk_168.x = 0; this->mUnk_168.y = 0; this->mUnk_16C = 0; diff --git a/tools/configure.py b/tools/configure.py index 705e3270..d3fe0cc2 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -208,7 +208,9 @@ config.libs = [ Object("001_SceneInit/code_020bc234_001.cpp"), Object("001_SceneInit/code_020bc2c8_001.cpp"), Object("001_SceneInit/UnkStruct_027e0ce0_001.cpp"), - Object("001_SceneInit/Player/Player_001.cpp"), + Object("001_SceneInit/UnkStruct_027e0cdc_001.cpp"), + Object("001_SceneInit/Player/PlayerActorBase_001.cpp"), + Object("001_SceneInit/Player/PlayerLinkActor_001.cpp"), Object("001_SceneInit/CargoManager_001.cpp"), Object("001_SceneInit/PassengerManager_001.cpp"), Object("001_SceneInit/UnkStruct_027e0cf8_08_00_001.cpp"),