diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 37464969..bfeae0c1 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -128,7 +128,7 @@ func_01ffc520 kind:function(arm,size=0x5c) addr:0x01ffc520 _ZN11ModelRender8vfunc_0CEv kind:function(arm,size=0x24) addr:0x01ffc57c func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0 func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634 -_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 +_ZN19UnkSystem6_Derived213func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 _ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 02214d9f..52c8709a 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1414,7 +1414,7 @@ func_ov000_0207bfe4 kind:function(arm,size=0x4) addr:0x0207bfe4 _ZN19func_ov000_0207bfe8D0Ev kind:function(arm,size=0x14) addr:0x0207bfe8 _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207bffc _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x8) addr:0x0207c000 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x8) addr:0x0207c008 +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x8) addr:0x0207c008 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207c010 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c018 func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c048 @@ -1689,7 +1689,7 @@ func_ov000_02082df8 kind:function(thumb,size=0x5a) addr:0x02082df8 func_ov000_02082e54 kind:function(arm,size=0x24) addr:0x02082e54 _ZN18PlayerActorBase_7019func_ov000_02082e78Eiiii kind:function(arm,size=0x22c) addr:0x02082e78 func_ov000_020830a4 kind:function(arm,size=0x30) addr:0x020830a4 -_ZN18PlayerActorBase_7019func_ov000_020830d4E29UnkStruct_func_ov001_020bbe18jhi kind:function(arm,size=0x334) addr:0x020830d4 +_ZN18PlayerActorBase_7019func_ov000_020830d4E14UnkAngleStructjhi 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 @@ -2288,11 +2288,11 @@ func_ov000_02097a18 kind:function(arm,size=0x70) addr:0x02097a18 func_ov000_02097a88 kind:function(arm,size=0x70) addr:0x02097a88 func_ov000_02097af8 kind:function(arm,size=0x70) addr:0x02097af8 _ZN19func_ov000_02097b68D0Ev kind:function(arm,size=0x1c) addr:0x02097b68 -func_ov000_02097b84 kind:function(arm,size=0x34) addr:0x02097b84 +_ZN8Actor_9CC2Ev kind:function(arm,size=0x34) addr:0x02097b84 _ZN8Actor_9CC1Ev kind:function(arm,size=0x34) addr:0x02097bb8 _ZN8Actor_9C19func_ov000_02097becEv kind:function(arm,size=0x28) addr:0x02097bec -func_ov000_02097c14 kind:function(arm,size=0xc) addr:0x02097c14 -func_ov000_02097c20 kind:function(arm,size=0x80) addr:0x02097c20 +_ZN8Actor_9C8vfunc_00Ev kind:function(arm,size=0xc) addr:0x02097c14 +_ZN8Actor_9C8vfunc_04E8ActorRefiiPi kind:function(arm,size=0x80) addr:0x02097c20 func_ov000_02097ca0 kind:function(arm,size=0x7c) addr:0x02097ca0 _ZN19func_ov000_02097d1cD1Ev kind:function(arm,size=0x14) addr:0x02097d1c _ZN19func_ov000_02097d30D0Ev kind:function(arm,size=0x1c) addr:0x02097d30 @@ -2349,7 +2349,7 @@ _ZN5Actor19func_ov000_02098a60Ei kind:function(arm,size=0x28) addr:0x02098a60 _ZN5Actor19func_ov000_02098a88Eii kind:function(arm,size=0x2c) addr:0x02098a88 _ZN5Actor19func_ov000_02098ab4EhiiP7VecFx32 kind:function(arm,size=0x74) addr:0x02098ab4 _ZN14Actor_Derived2C2Ev kind:function(arm,size=0x64) addr:0x02098b28 -_ZN5Actor19func_ov000_02098b8cEii kind:function(arm,size=0x184) addr:0x02098b8c +_ZN5Actor19func_ov000_02098b8cEiPv kind:function(arm,size=0x184) addr:0x02098b8c func_ov000_02098d10 kind:function(arm,size=0x6c) addr:0x02098d10 func_ov000_02098d7c kind:function(arm,size=0x1b8) addr:0x02098d7c func_ov000_02098f34 kind:function(arm,size=0xd0) addr:0x02098f34 @@ -2362,7 +2362,7 @@ func_ov000_020993d0 kind:function(arm,size=0x80) addr:0x020993d0 func_ov000_02099450 kind:function(arm,size=0x50) addr:0x02099450 func_ov000_020994a0 kind:function(arm,size=0x74) addr:0x020994a0 func_ov000_02099514 kind:function(arm,size=0x74) addr:0x02099514 -_ZN14Actor_Derived28vfunc_54Ev kind:function(arm,size=0x1b0) addr:0x02099588 +_ZN14Actor_Derived28vfunc_54Ei kind:function(arm,size=0x1b0) addr:0x02099588 func_ov000_02099738 kind:function(arm,size=0x2c) addr:0x02099738 func_ov000_02099764 kind:function(arm,size=0x20) addr:0x02099764 func_ov000_02099784 kind:function(arm,size=0x20) addr:0x02099784 @@ -2370,7 +2370,7 @@ func_ov000_020997a4 kind:function(arm,size=0x20) addr:0x020997a4 func_ov000_020997c4 kind:function(arm,size=0x2c) addr:0x020997c4 _ZN14Actor_Derived2D1Ev kind:function(arm,size=0x14) addr:0x020997f0 _ZN14Actor_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x02099804 -func_ov000_02099820 kind:function(arm,size=0x50) addr:0x02099820 +_ZN26UnkStruct_ActorUnkCANS_224C1Ev kind:function(arm,size=0x50) addr:0x02099820 func_ov000_02099870 kind:function(arm,size=0x80) addr:0x02099870 func_ov000_020998f0 kind:function(arm,size=0x11c) addr:0x020998f0 func_ov000_02099a0c kind:function(arm,size=0x10) addr:0x02099a0c @@ -2401,12 +2401,12 @@ _ZN24UnkStruct_ov000_020b31a88vfunc_14Ev kind:function(arm,size=0x8) addr:0x0209 func_ov000_0209a14c kind:function(arm,size=0x24) addr:0x0209a14c func_ov000_0209a170 kind:function(arm,size=0x10) addr:0x0209a170 func_ov000_0209a180 kind:function(arm,size=0x8) addr:0x0209a180 -func_ov000_0209a188 kind:function(thumb,size=0x30) addr:0x0209a188 +_ZN24UnkStruct_ov000_020b31f0C2EPvS0_S0_i kind:function(thumb,size=0x30) addr:0x0209a188 func_ov000_0209a1b8 kind:function(thumb,size=0x34) addr:0x0209a1b8 func_ov000_0209a1ec kind:function(thumb,size=0x3c) addr:0x0209a1ec func_ov000_0209a228 kind:function(thumb,size=0xc) addr:0x0209a228 func_ov000_0209a234 kind:function(thumb,size=0x12) addr:0x0209a234 -func_ov000_0209a248 kind:function(thumb,size=0xc) addr:0x0209a248 +_ZN24UnkStruct_ov000_020b31f0D2Ev kind:function(thumb,size=0xc) addr:0x0209a248 _ZN24UnkStruct_ov000_020b31f08vfunc_08Ev kind:function(arm,size=0x34) addr:0x0209a254 _ZN24UnkStruct_ov000_020b31f08vfunc_0CEv kind:function(arm,size=0x68) addr:0x0209a288 _ZN24UnkStruct_ov000_020b31f08vfunc_28Ev kind:function(arm,size=0x18) addr:0x0209a2f0 @@ -2421,10 +2421,10 @@ _ZN24UnkStruct_ov000_020b31f08vfunc_34Ev kind:function(arm,size=0x38) addr:0x020 func_ov000_0209a70c kind:function(arm,size=0x8) addr:0x0209a70c func_ov000_0209a714 kind:function(arm,size=0x24) addr:0x0209a714 func_ov000_0209a738 kind:function(arm,size=0x2c) addr:0x0209a738 -func_ov000_0209a764 kind:function(thumb,size=0x1c) addr:0x0209a764 +_ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209a764 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209a780 _ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209a79c -_ZN11ModelRender19func_ov000_0209a7b8EPvPFvvE kind:function(arm,size=0xc) addr:0x0209a7b8 +_ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209a7b8 func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209a7c4 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209a7ec func_ov000_0209a814 kind:function(arm,size=0x44) addr:0x0209a814 @@ -2964,7 +2964,7 @@ _Z19func_ov000_020a7840ii kind:function(arm,size=0x84) addr:0x020a7840 _Z27Cutscene_IsAdventureFlagSeti kind:function(arm,size=0x44) addr:0x020a78c4 _ZN21UnkStruct_027e09b8_98C1Ev kind:function(arm,size=0xdc) addr:0x020a7908 func_ov000_020a79e4 kind:function(arm,size=0x6c) addr:0x020a79e4 -func_ov000_020a7a50 kind:function(arm,size=0x20) addr:0x020a7a50 +_ZN24UnkStruct_ov000_020b19f0C2EP10G3d_Model_ kind:function(arm,size=0x20) addr:0x020a7a50 _ZN21UnkStruct_027e09b8_98D1Ev kind:function(arm,size=0xa8) addr:0x020a7a70 func_ov000_020a7b18 kind:function(arm,size=0x1c) addr:0x020a7b18 _ZN21UnkStruct_027e09b8_9819func_ov000_020a7b34Ev kind:function(arm,size=0x74) addr:0x020a7b34 diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index 164ae193..e8a3ed42 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -199,7 +199,7 @@ _ZN9Inventory19func_ov001_020bba6cEv kind:function(thumb,size=0x58) addr:0x020bb _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 +_ZN18PlayerActorBase_7019func_ov001_020bbe18Ei14UnkAngleStructjh kind:function(thumb,size=0x4c) addr:0x020bbe18 _ZN24UnkStruct_027e0ce0_30_00C1EP21UnkStruct_027e0ce0_38P21UnkStruct_027e0ce0_3CiPii kind:function(thumb,size=0x7c) addr:0x020bbe64 _ZN24UnkStruct_027e0ce0_30_00D1Ev kind:function(thumb,size=0x2) addr:0x020bbee0 _ZN21UnkStruct_027e0ce0_30C1Ev kind:function(thumb,size=0x18) addr:0x020bbee4 diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index dc6a6462..4a185847 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e5474 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e5488 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x30) addr:0x020e54a4 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x230) addr:0x020e54d4 +_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x230) addr:0x020e54d4 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e5704 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5710 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e572c @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f32c4 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f32e0 _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3304 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0xac) addr:0x020f3310 -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x350) addr:0x020f33bc +_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x350) addr:0x020f33bc _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f370c _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f374c _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f38b0 @@ -1110,7 +1110,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f82cc _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f82e0 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f82ec _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f8310 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x90) addr:0x020f8354 +_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x90) addr:0x020f8354 _ZN21ActorRollingStone_1048vfunc_10Ev kind:function(arm,size=0xb8) addr:0x020f83e4 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f849c _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f84e0 diff --git a/config/eur/arm9/overlays/ov063/relocs.txt b/config/eur/arm9/overlays/ov063/relocs.txt index 3e6828cd..3bc8490f 100644 --- a/config/eur/arm9/overlays/ov063/relocs.txt +++ b/config/eur/arm9/overlays/ov063/relocs.txt @@ -7,12 +7,12 @@ from:0x02157f28 kind:arm_call_thumb to:0x0209a764 module:overlay(0) from:0x02157f3c kind:arm_call to:0x02057f40 module:overlay(0) from:0x02157f4c kind:arm_call to:0x02057f18 module:overlay(0) from:0x02157f5c kind:arm_call to:0x02057f18 module:overlay(0) -from:0x02157f6c kind:load to:0x02162ee8 module:overlay(63) +from:0x02157f6c kind:load to:0x02162ee0 module:overlay(63) add:0x8 from:0x02157f70 kind:load to:0x02162528 module:overlay(63) from:0x02157f74 kind:load to:0x02162538 module:overlay(63) from:0x02157f78 kind:load to:0x02162548 module:overlay(63) from:0x02157f88 kind:arm_call to:0x02097b84 module:overlay(0) -from:0x02157fa0 kind:load to:0x02162e88 module:overlay(63) +from:0x02157fa0 kind:load to:0x02162e80 module:overlay(63) add:0x8 from:0x02157fc8 kind:arm_call to:0x02097c20 module:overlay(0) from:0x02157ffc kind:arm_call to:0x01ffbbe0 module:itcm from:0x0215800c kind:arm_call to:0x0215a56c module:overlay(63) @@ -33,7 +33,7 @@ from:0x02158230 kind:arm_call to:0x0215a7d4 module:overlay(63) from:0x02158278 kind:arm_call to:0x0209862c module:overlay(0) from:0x021582e8 kind:load to:0x02163008 add:0x8 module:overlay(63) from:0x021582ec kind:load to:0x02163b70 module:overlay(63) -from:0x021582f0 kind:load to:0x02162f14 module:overlay(63) +from:0x021582f0 kind:load to:0x02162f0c module:overlay(63) add:0x8 from:0x021582f4 kind:load to:0x02049be4 module:main from:0x02158300 kind:arm_call_thumb to:0x02057bd4 module:overlay(0) from:0x02158314 kind:arm_call_thumb to:0x0209a248 module:overlay(0) @@ -263,7 +263,7 @@ from:0x0215a790 kind:arm_call to:0x0200e260 module:main from:0x0215a7a0 kind:arm_call to:0x01ffad5c module:itcm from:0x0215a7d0 kind:load to:0x027e0964 module:dtcm from:0x0215a7dc kind:arm_call to:0x020982a8 module:overlay(0) -from:0x0215a800 kind:load to:0x02162ea8 module:overlay(63) +from:0x0215a800 kind:load to:0x02162ea0 module:overlay(63) add:0x8 from:0x0215a80c kind:arm_call to:0x0207bffc module:overlay(0) from:0x0215a820 kind:arm_call to:0x0207bffc module:overlay(0) from:0x0215a828 kind:arm_call to:0x02011ff4 module:main diff --git a/config/eur/arm9/overlays/ov063/symbols.txt b/config/eur/arm9/overlays/ov063/symbols.txt index 5fe58267..f6ee1078 100644 --- a/config/eur/arm9/overlays/ov063/symbols.txt +++ b/config/eur/arm9/overlays/ov063/symbols.txt @@ -1,20 +1,20 @@ _ZN19ActorProfileUnkCANS10GetProfileEv kind:function(arm,size=0xc) addr:0x02157ea0 _ZN19ActorProfileUnkCANS6CreateEv kind:function(arm,size=0x24) addr:0x02157eac _ZN19ActorProfileUnkCANSC1Ev kind:function(arm,size=0x50) addr:0x02157ed0 -_ZN12ActorUnkCANS19func_ov063_02157f20Ev kind:function(arm,size=0x5c) addr:0x02157f20 -_ZN12ActorUnkCANS19func_ov063_02157f7cEv kind:function(arm,size=0x28) addr:0x02157f7c -_ZN12ActorUnkCANS19func_ov063_02157fa4Ev kind:function(arm,size=0x178) addr:0x02157fa4 +_ZN24UnkStruct_ov063_02162ee8C1EP10G3d_Model_ kind:function(arm,size=0x5c) addr:0x02157f20 +_ZN24UnkStruct_ov063_02162e88C1EPv kind:function(arm,size=0x28) addr:0x02157f7c +_ZN24UnkStruct_ov063_02162e888vfunc_04E8ActorRefiiPi kind:function(arm,size=0x178) addr:0x02157fa4 _ZN12ActorUnkCANSC1Ev kind:function(arm,size=0x1dc) addr:0x0215811c -_ZN12ActorUnkCANS19func_ov063_021582f8Ev kind:function(arm,size=0x14) addr:0x021582f8 -_ZN12ActorUnkCANS19func_ov063_0215830cEv kind:function(arm,size=0x14) addr:0x0215830c -_ZN12ActorUnkCANS19func_ov063_02158320Ev kind:function(arm,size=0x68) addr:0x02158320 -_ZN12ActorUnkCANS19func_ov063_02158388Ev kind:function(arm,size=0x9c) addr:0x02158388 +_ZN24UnkStruct_ov063_02162ee8D1Ev kind:function(arm,size=0x14) addr:0x021582f8 +_ZN24UnkStruct_ov063_02162f14D1Ev kind:function(arm,size=0x14) addr:0x0215830c +_ZN12ActorUnkCANS8vfunc_18Ev kind:function(arm,size=0x68) addr:0x02158320 +_ZN12ActorUnkCANS8vfunc_1CEv kind:function(arm,size=0x9c) addr:0x02158388 _ZN12ActorUnkCANS19func_ov063_02158424Ev kind:function(arm,size=0x24) addr:0x02158424 -_ZN12ActorUnkCANS19func_ov063_02158448Ev kind:function(arm,size=0x48) addr:0x02158448 +_ZN12ActorUnkCANS19func_ov063_02158448Ei kind:function(arm,size=0x48) addr:0x02158448 _ZN12ActorUnkCANS19func_ov063_02158490Ev kind:function(arm,size=0x34) addr:0x02158490 -_ZN12ActorUnkCANS19func_ov063_021584c4Ev kind:function(arm,size=0x2c) addr:0x021584c4 -_ZN12ActorUnkCANS19func_ov063_021584f0Ev kind:function(arm,size=0x53c) addr:0x021584f0 -_ZN12ActorUnkCANS19func_ov063_02158a2cEv kind:function(arm,size=0xe0) addr:0x02158a2c +_ZN12ActorUnkCANS8vfunc_24Ev kind:function(arm,size=0x2c) addr:0x021584c4 +_ZN12ActorUnkCANS8vfunc_20Ev kind:function(arm,size=0x53c) addr:0x021584f0 +_ZN12ActorUnkCANS8vfunc_2CEi kind:function(arm,size=0xe0) addr:0x02158a2c _ZN12ActorUnkCANS19func_ov063_02158b0cEv kind:function(arm,size=0x28) addr:0x02158b0c _ZN12ActorUnkCANS19func_ov063_02158b34Ev kind:function(arm,size=0x64) addr:0x02158b34 _ZN12ActorUnkCANS19func_ov063_02158b98Ev kind:function(arm,size=0x1a8) addr:0x02158b98 @@ -38,29 +38,29 @@ _ZN12ActorUnkCANS19func_ov063_02159dfcEv kind:function(arm,size=0x20) addr:0x021 _ZN12ActorUnkCANS19func_ov063_02159e1cEv kind:function(arm,size=0x4) addr:0x02159e1c _ZN12ActorUnkCANS19func_ov063_02159e20Ev kind:function(arm,size=0xa0) addr:0x02159e20 _ZN12ActorUnkCANS19func_ov063_02159ec0Ev kind:function(arm,size=0x7c) addr:0x02159ec0 -_ZN12ActorUnkCANS19func_ov063_02159f3cEv kind:function(arm,size=0x1b4) addr:0x02159f3c +_ZN12ActorUnkCANS19func_ov063_02159f3cEi kind:function(arm,size=0x1b4) addr:0x02159f3c _ZN12ActorUnkCANS19func_ov063_0215a0f0Ev kind:function(arm,size=0x1d0) addr:0x0215a0f0 _ZN12ActorUnkCANS19func_ov063_0215a2c0Ev kind:function(arm,size=0x168) addr:0x0215a2c0 _ZN12ActorUnkCANS19func_ov063_0215a428Ev kind:function(arm,size=0x4c) addr:0x0215a428 _ZN12ActorUnkCANS19func_ov063_0215a474Ev kind:function(arm,size=0xa0) addr:0x0215a474 _ZN12ActorUnkCANS19func_ov063_0215a514Ev kind:function(arm,size=0x58) addr:0x0215a514 -_ZN12ActorUnkCANS19func_ov063_0215a56cEv kind:function(arm,size=0x34) addr:0x0215a56c -_ZN12ActorUnkCANS19func_ov063_0215a5a0Ev kind:function(arm,size=0x1c) addr:0x0215a5a0 +_ZN12ActorUnkCANS19func_ov063_0215a56cEi kind:function(arm,size=0x34) addr:0x0215a56c +_ZN12ActorUnkCANS19func_ov063_0215a5a0EP7VecFx32 kind:function(arm,size=0x1c) addr:0x0215a5a0 _ZN12ActorUnkCANS19func_ov063_0215a5bcEv kind:function(arm,size=0x1c) addr:0x0215a5bc _ZN12ActorUnkCANS19func_ov063_0215a5d8Ev kind:function(arm,size=0x20) addr:0x0215a5d8 -_ZN12ActorUnkCANS19func_ov063_0215a5f8Ev kind:function(arm,size=0x80) addr:0x0215a5f8 -_ZN12ActorUnkCANS19func_ov063_0215a678Ev kind:function(arm,size=0x15c) addr:0x0215a678 -_ZN12ActorUnkCANS19func_ov063_0215a7d4Ev kind:function(arm,size=0x30) addr:0x0215a7d4 -_ZN12ActorUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215a804 -_ZN12ActorUnkCANSD0Ev kind:function(arm,size=0x1c) addr:0x0215a818 -_ZN12ActorUnkCANS19func_ov063_0215a834Ev kind:function(arm,size=0x4c) addr:0x0215a834 -_ZN12ActorUnkCANS19func_ov063_0215a880Ev kind:function(arm,size=0xcc) addr:0x0215a880 -_ZN12ActorUnkCANS19func_ov063_0215a94cEv kind:function(arm,size=0x24) addr:0x0215a94c -_ZN12ActorUnkCANS19func_ov063_0215a970Ev kind:function(arm,size=0x2c) addr:0x0215a970 -_ZN12ActorUnkCANS19func_ov063_0215a99cEv kind:function(arm,size=0x1c) addr:0x0215a99c -_ZN12ActorUnkCANS19func_ov063_0215a9b8Ev kind:function(arm,size=0x1c) addr:0x0215a9b8 -_ZN12ActorUnkCANS19func_ov063_0215a9d4Ev kind:function(arm,size=0x84) addr:0x0215a9d4 -_ZN12ActorUnkCANS19func_ov063_0215aa58Ev kind:function(arm,size=0x8c) addr:0x0215aa58 +_ZN12ActorUnkCANS8vfunc_10EP8Cylinder kind:function(arm,size=0x80) addr:0x0215a5f8 +_ZN12ActorUnkCANS19func_ov063_0215a678EPS_P29UnkStruct_func_ov063_0215a678 kind:function(arm,size=0x15c) addr:0x0215a678 +_ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215a7d4 +_ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215a804 +_ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215a818 +_ZN24UnkStruct_ov063_02162ea88vfunc_08EP24UnkStruct_ov031_020f3310 kind:function(arm,size=0x4c) addr:0x0215a834 +_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0xcc) addr:0x0215a880 +_ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215a94c +_ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215a970 +_ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215a99c +_ZN24UnkStruct_ov063_02162f14D0Ev kind:function(arm,size=0x1c) addr:0x0215a9b8 +_ZN12ActorUnkCANSD1Ev kind:function(arm,size=0x84) addr:0x0215a9d4 +_ZN12ActorUnkCANSD0Ev kind:function(arm,size=0x8c) addr:0x0215aa58 _ZN19ActorProfileUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215aae4 _ZN19ActorProfileUnkCASE10GetProfileEv kind:function(arm,size=0xc) addr:0x0215aaf8 _ZN19ActorProfileUnkCASE6CreateEv kind:function(arm,size=0x24) addr:0x0215ab04 @@ -72,7 +72,7 @@ _ZN12ActorUnkCASE19func_ov063_0215ac4cEv kind:function(arm,size=0x1c) addr:0x021 _ZN12ActorUnkCASE19func_ov063_0215ac68Ev kind:function(arm,size=0x24) addr:0x0215ac68 _ZN12ActorUnkCASE19func_ov063_0215ac8cEv kind:function(arm,size=0x3c) addr:0x0215ac8c _ZN12ActorUnkCASE19func_ov063_0215acc8Ev kind:function(arm,size=0x24) addr:0x0215acc8 -_ZN12ActorUnkCASE19func_ov063_0215acecEv kind:function(arm,size=0x5c) addr:0x0215acec +_ZN12ActorUnkCASE19func_ov063_0215acecEP8ActorRefS0_ kind:function(arm,size=0x5c) addr:0x0215acec _ZN12ActorUnkCASEC1Ev kind:function(arm,size=0x124) addr:0x0215ad48 _ZN12ActorUnkCASE19func_ov063_0215ae6cEv kind:function(arm,size=0x14) addr:0x0215ae6c _ZN12ActorUnkCASE19func_ov063_0215ae80Ev kind:function(arm,size=0x14) addr:0x0215ae80 @@ -93,7 +93,7 @@ _ZN12ActorUnkCASE19func_ov063_0215b2c4Ev kind:function(arm,size=0x4) addr:0x0215 _ZN12ActorUnkCASE19func_ov063_0215b2c8Ev kind:function(arm,size=0x24) addr:0x0215b2c8 _ZN12ActorUnkCASE19func_ov063_0215b2ecEv kind:function(arm,size=0x338) addr:0x0215b2ec _ZN12ActorUnkCASE19func_ov063_0215b624Ev kind:function(arm,size=0xa4) addr:0x0215b624 -_ZN12ActorUnkCASE19func_ov063_0215b6c8Ev kind:function(arm,size=0x5c) addr:0x0215b6c8 +_ZN12ActorUnkCASE19func_ov063_0215b6c8EP7VecFx3214UnkAngleStruct kind:function(arm,size=0x5c) addr:0x0215b6c8 _ZN12ActorUnkCASE19func_ov063_0215b724Ev kind:function(arm,size=0xa8) addr:0x0215b724 _ZN12ActorUnkCASE19func_ov063_0215b7ccEv kind:function(arm,size=0x48) addr:0x0215b7cc _ZN12ActorUnkCASE19func_ov063_0215b814Ev kind:function(arm,size=0x40) addr:0x0215b814 @@ -412,16 +412,16 @@ __sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02162df0 .p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02162e6c .p__sinit_MapObjectUnkMTJR.cpp kind:data(word) addr:0x02162e70 .p__sinit_MapObjectUnkSWCR.cpp kind:data(word) addr:0x02162e74 -data_ov063_02162e88 kind:data(any) addr:0x02162e88 +_ZTV24UnkStruct_ov063_02162e88 kind:data(any) addr:0x02162e80 data_ov063_02162e90 kind:data(any) addr:0x02162e90 -data_ov063_02162ea8 kind:data(any) addr:0x02162ea8 -_ZTV19data_ov063_02162ebc kind:data(any) addr:0x02162ebc -data_ov063_02162ee8 kind:data(any) addr:0x02162ee8 -data_ov063_02162f14 kind:data(any) addr:0x02162f14 +_ZTV24UnkStruct_ov063_02162ea8 kind:data(any) addr:0x02162ea0 +_ZTV19ActorProfileUnkCANS kind:data(any) addr:0x02162ebc +_ZTV24UnkStruct_ov063_02162ee8 kind:data(any) addr:0x02162ee0 +_ZTV24UnkStruct_ov063_02162f14 kind:data(any) addr:0x02162f0c data_ov063_02162f34 kind:data(any) addr:0x02162f34 ambiguous data_ov063_02162f58 kind:data(any) addr:0x02162f58 data_ov063_02162fb0 kind:data(any) addr:0x02162fb0 -_ZTV19data_ov063_02163008 kind:data(any) addr:0x02163008 +_ZTV12ActorUnkCANS kind:data(any) addr:0x02163008 data_ov063_02163068 kind:data(any) addr:0x02163068 data_ov063_02163080 kind:data(any) addr:0x02163080 data_ov063_02163098 kind:data(any) addr:0x02163098 diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index 37464969..bfeae0c1 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -128,7 +128,7 @@ func_01ffc520 kind:function(arm,size=0x5c) addr:0x01ffc520 _ZN11ModelRender8vfunc_0CEv kind:function(arm,size=0x24) addr:0x01ffc57c func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0 func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634 -_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 +_ZN19UnkSystem6_Derived213func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 _ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 15f5756b..1003c07a 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -81,7 +81,7 @@ _ZN19func_ov000_02058f74D0Ev kind:function(arm,size=0x1c) addr:0x02058f74 func_ov000_02058f90 kind:function(thumb,size=0x14) addr:0x02058f90 func_ov000_02058fa4 kind:function(thumb,size=0x14) addr:0x02058fa4 func_ov000_02058fb8 kind:function(arm,size=0x18) addr:0x02058fb8 -func_ov000_02058fd0 kind:function(thumb,size=0x1c) addr:0x02058fd0 +_ZN24UnkStruct_ov000_020b19f0C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x02058fd0 func_ov000_02058fec kind:function(thumb,size=0x1c) addr:0x02058fec func_ov000_02059008 kind:function(arm,size=0x3c) addr:0x02059008 _ZN19func_ov000_02059044D1Ev kind:function(arm,size=0x14) addr:0x02059044 @@ -100,7 +100,7 @@ func_ov000_02059194 kind:function(arm,size=0x20) addr:0x02059194 _ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x020591b4 _ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x020591b8 func_ov000_020591ec kind:function(arm,size=0x2c) addr:0x020591ec -func_ov000_02059218 kind:function(arm,size=0x18) addr:0x02059218 +_ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 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 @@ -1412,7 +1412,7 @@ func_ov000_0207d69c kind:function(arm,size=0x4) addr:0x0207d69c _ZN19func_ov000_0207d6a0D0Ev kind:function(arm,size=0x14) addr:0x0207d6a0 _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207d6b4 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x8) addr:0x0207d6b8 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x8) addr:0x0207d6c0 +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x8) addr:0x0207d6c0 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207d6c8 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207d6d0 func_ov000_0207d700 kind:function(arm,size=0x30) addr:0x0207d700 @@ -1687,7 +1687,7 @@ func_ov000_020844b4 kind:function(thumb,size=0x5a) addr:0x020844b4 func_ov000_02084510 kind:function(arm,size=0x24) addr:0x02084510 _ZN18PlayerActorBase_7019func_ov000_02082e78Eiiii kind:function(arm,size=0x22c) addr:0x02084534 func_ov000_02084760 kind:function(arm,size=0x30) addr:0x02084760 -_ZN18PlayerActorBase_7019func_ov000_020830d4E29UnkStruct_func_ov001_020bbe18jhi kind:function(arm,size=0x334) addr:0x02084790 +_ZN18PlayerActorBase_7019func_ov000_020830d4E14UnkAngleStructjhi 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 @@ -1931,7 +1931,7 @@ func_ov000_0208d2d4 kind:function(arm,size=0x1c) addr:0x0208d2d4 _ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiii kind:function(arm,size=0x40) addr:0x0208d2f0 func_ov000_0208d330 kind:function(arm,size=0x40) addr:0x0208d330 func_ov000_0208d370 kind:function(arm,size=0x88) addr:0x0208d370 -func_ov000_0208d3f8 kind:function(arm,size=0x10) addr:0x0208d3f8 +func_ov000_0208bd20 kind:function(arm,size=0x10) addr:0x0208d3f8 _ZN18UnkStruct_027e0ce019func_ov000_0208bd30Ebiii kind:function(arm,size=0x18) addr:0x0208d408 func_ov000_0208d420 kind:function(arm,size=0x34) addr:0x0208d420 func_ov000_0208d454 kind:function(arm,size=0x10) addr:0x0208d454 @@ -2285,11 +2285,11 @@ func_ov000_020991c0 kind:function(arm,size=0x70) addr:0x020991c0 func_ov000_02099230 kind:function(arm,size=0x70) addr:0x02099230 func_ov000_020992a0 kind:function(arm,size=0x70) addr:0x020992a0 _ZN19func_ov000_02099310D0Ev kind:function(arm,size=0x1c) addr:0x02099310 -func_ov000_0209932c kind:function(arm,size=0x34) addr:0x0209932c +_ZN8Actor_9CC2Ev kind:function(arm,size=0x34) addr:0x0209932c _ZN8Actor_9CC1Ev kind:function(arm,size=0x34) addr:0x02099360 _ZN8Actor_9C19func_ov000_02097becEv kind:function(arm,size=0x28) addr:0x02099394 func_ov000_020993bc kind:function(arm,size=0xc) addr:0x020993bc -func_ov000_020993c8 kind:function(arm,size=0x80) addr:0x020993c8 +_ZN8Actor_9C8vfunc_04E8ActorRefiiPi kind:function(arm,size=0x80) addr:0x020993c8 func_ov000_02099448 kind:function(arm,size=0x7c) addr:0x02099448 _ZN19func_ov000_020994c4D1Ev kind:function(arm,size=0x14) addr:0x020994c4 _ZN19func_ov000_020994d8D0Ev kind:function(arm,size=0x1c) addr:0x020994d8 @@ -2305,7 +2305,7 @@ func_ov000_02099988 kind:function(arm,size=0x64) addr:0x02099988 func_ov000_020999ec kind:function(arm,size=0x64) addr:0x020999ec _ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x02099a50 func_ov000_02099a68 kind:function(arm,size=0x18) addr:0x02099a68 -func_ov000_02099a80 kind:function(arm,size=0x80) addr:0x02099a80 +_ZN24UnkStruct_ov031_Items_008vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x80) addr:0x02099a80 _ZN19func_ov000_02099b00D1Ev kind:function(arm,size=0x14) addr:0x02099b00 _ZN19func_ov000_02099b14D0Ev kind:function(arm,size=0x1c) addr:0x02099b14 _ZN5ActorC2Ev kind:function(arm,size=0xe8) addr:0x02099b30 @@ -2333,7 +2333,7 @@ _ZN5Actor4DropE15ActorGrabParamsPK7VecFx32 kind:function(arm,size=0x3c) addr:0x0 _ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x02099dd4 func_ov000_02099dfc kind:function(arm,size=0x28) addr:0x02099dfc _ZN5Actor19func_ov000_0209867cEi kind:function(arm,size=0x38) addr:0x02099e24 -func_ov000_02099e5c kind:function(arm,size=0x48) addr:0x02099e5c +func_ov000_020986b4 kind:function(arm,size=0x48) addr:0x02099e5c func_ov000_02099ea4 kind:function(arm,size=0x7c) addr:0x02099ea4 func_ov000_02099f20 kind:function(arm,size=0x88) addr:0x02099f20 _ZN5Actor19func_ov000_02098800Eb kind:function(arm,size=0x38) addr:0x02099fa8 @@ -2346,20 +2346,20 @@ _ZN5Actor19func_ov000_02098a60Ei kind:function(arm,size=0x28) addr:0x0209a208 _ZN5Actor19func_ov000_02098a88Eii kind:function(arm,size=0x2c) addr:0x0209a230 _ZN5Actor19func_ov000_02098ab4EhiiP7VecFx32 kind:function(arm,size=0x74) addr:0x0209a25c _ZN14Actor_Derived2C2Ev kind:function(arm,size=0x64) addr:0x0209a2d0 -_ZN5Actor19func_ov000_02098b8cEii kind:function(arm,size=0x1a8) addr:0x0209a334 +_ZN5Actor19func_ov000_02098b8cEiPv kind:function(arm,size=0x1a8) addr:0x0209a334 func_ov000_0209a4dc kind:function(arm,size=0x6c) addr:0x0209a4dc -func_ov000_0209a548 kind:function(arm,size=0x1b8) addr:0x0209a548 -func_ov000_0209a700 kind:function(arm,size=0xd0) addr:0x0209a700 +func_ov000_02098d7c kind:function(arm,size=0x1b8) addr:0x0209a548 +func_ov000_02098f34 kind:function(arm,size=0xd0) addr:0x0209a700 _ZN14Actor_Derived28vfunc_30EP14Actor_vfunc_30 kind:function(arm,size=0xc) addr:0x0209a7d0 func_ov000_0209a7dc kind:function(arm,size=0xb0) addr:0x0209a7dc func_ov000_0209a88c kind:function(arm,size=0x21c) addr:0x0209a88c func_ov000_0209aaa8 kind:function(arm,size=0x90) addr:0x0209aaa8 func_ov000_0209ab38 kind:function(arm,size=0x64) addr:0x0209ab38 func_ov000_0209ab9c kind:function(arm,size=0x80) addr:0x0209ab9c -func_ov000_0209ac1c kind:function(arm,size=0x50) addr:0x0209ac1c -func_ov000_0209ac6c kind:function(arm,size=0x74) addr:0x0209ac6c +func_ov000_02099450 kind:function(arm,size=0x50) addr:0x0209ac1c +func_ov000_020994a0 kind:function(arm,size=0x74) addr:0x0209ac6c func_ov000_0209ace0 kind:function(arm,size=0x74) addr:0x0209ace0 -_ZN14Actor_Derived28vfunc_54Ev kind:function(arm,size=0x1b0) addr:0x0209ad54 +_ZN14Actor_Derived28vfunc_54Ei kind:function(arm,size=0x1b0) addr:0x0209ad54 func_ov000_0209af04 kind:function(arm,size=0x2c) addr:0x0209af04 func_ov000_0209af30 kind:function(arm,size=0x20) addr:0x0209af30 func_ov000_0209af50 kind:function(arm,size=0x20) addr:0x0209af50 @@ -2367,10 +2367,10 @@ func_ov000_0209af70 kind:function(arm,size=0x20) addr:0x0209af70 func_ov000_0209af90 kind:function(arm,size=0x2c) addr:0x0209af90 _ZN19func_ov000_0209afbcD1Ev kind:function(arm,size=0x14) addr:0x0209afbc _ZN19func_ov000_0209afd0D0Ev kind:function(arm,size=0x1c) addr:0x0209afd0 -func_ov000_0209afec kind:function(arm,size=0x50) addr:0x0209afec +_ZN26UnkStruct_ActorUnkCANS_224C1Ev kind:function(arm,size=0x50) addr:0x0209afec func_ov000_0209b03c kind:function(arm,size=0x80) addr:0x0209b03c func_ov000_0209b0bc kind:function(arm,size=0x11c) addr:0x0209b0bc -func_ov000_0209b1d8 kind:function(arm,size=0x10) addr:0x0209b1d8 +func_ov000_02099a0c kind:function(arm,size=0x10) addr:0x0209b1d8 func_ov000_0209b1e8 kind:function(arm,size=0xc) addr:0x0209b1e8 func_ov000_0209b1f4 kind:function(thumb,size=0x54) addr:0x0209b1f4 func_ov000_0209b248 kind:function(thumb,size=0x48) addr:0x0209b248 @@ -2398,12 +2398,12 @@ _ZN24UnkStruct_ov000_020b31a88vfunc_14Ev kind:function(arm,size=0x8) addr:0x0209 func_ov000_0209b918 kind:function(arm,size=0x24) addr:0x0209b918 func_ov000_0209b93c kind:function(arm,size=0x10) addr:0x0209b93c func_ov000_0209b94c kind:function(arm,size=0x8) addr:0x0209b94c -func_ov000_0209b954 kind:function(thumb,size=0x30) addr:0x0209b954 +_ZN24UnkStruct_ov000_020b31f0C2EPvS0_S0_i kind:function(thumb,size=0x30) addr:0x0209b954 func_ov000_0209b984 kind:function(thumb,size=0x34) addr:0x0209b984 func_ov000_0209b9b8 kind:function(thumb,size=0x3c) addr:0x0209b9b8 func_ov000_0209b9f4 kind:function(thumb,size=0xc) addr:0x0209b9f4 func_ov000_0209ba00 kind:function(thumb,size=0x12) addr:0x0209ba00 -func_ov000_0209ba14 kind:function(thumb,size=0xc) addr:0x0209ba14 +_ZN24UnkStruct_ov000_020b31f0D2Ev kind:function(thumb,size=0xc) addr:0x0209ba14 func_ov000_0209ba20 kind:function(arm,size=0x34) addr:0x0209ba20 func_ov000_0209ba54 kind:function(arm,size=0x68) addr:0x0209ba54 func_ov000_0209babc kind:function(arm,size=0x18) addr:0x0209babc @@ -2418,10 +2418,10 @@ func_ov000_0209bea0 kind:function(arm,size=0x38) addr:0x0209bea0 func_ov000_0209bed8 kind:function(arm,size=0x8) addr:0x0209bed8 func_ov000_0209bee0 kind:function(arm,size=0x24) addr:0x0209bee0 func_ov000_0209bf04 kind:function(arm,size=0x2c) addr:0x0209bf04 -func_ov000_0209bf30 kind:function(thumb,size=0x1c) addr:0x0209bf30 +_ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209bf30 func_ov000_0209bf4c kind:function(thumb,size=0x1c) addr:0x0209bf4c -func_ov000_0209bf68 kind:function(arm,size=0x1c) addr:0x0209bf68 -_ZN11ModelRender19func_ov000_0209a7b8EPvPFvvE kind:function(arm,size=0xc) addr:0x0209bf84 +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209bf68 +_ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209bf84 func_ov000_0209bf90 kind:function(arm,size=0x28) addr:0x0209bf90 func_ov000_0209bfb8 kind:function(arm,size=0x28) addr:0x0209bfb8 func_ov000_0209bfe0 kind:function(arm,size=0x44) addr:0x0209bfe0 @@ -3243,11 +3243,11 @@ data_ov000_020af45e kind:data(any) addr:0x020af45e data_ov000_020af468 kind:data(any) addr:0x020af468 data_ov000_020af490 kind:data(any) addr:0x020af490 data_ov000_020af494 kind:data(any) addr:0x020af494 -data_ov000_020af498 kind:data(any) addr:0x020af498 -data_ov000_020af49c kind:data(any) addr:0x020af49c -data_ov000_020af4a0 kind:data(any) addr:0x020af4a0 -data_ov000_020af4a4 kind:data(any) addr:0x020af4a4 -data_ov000_020af4a8 kind:data(any) addr:0x020af4a8 +data_ov000_020aecf0 kind:data(any) addr:0x020af498 +data_ov000_020aecf4 kind:data(any) addr:0x020af49c +data_ov000_020aecf8 kind:data(any) addr:0x020af4a0 +data_ov000_020aecfc kind:data(any) addr:0x020af4a4 +data_ov000_020aed00 kind:data(any) addr:0x020af4a8 data_ov000_020af4ac kind:data(any) addr:0x020af4ac data_ov000_020af4b0 kind:data(any) addr:0x020af4b0 data_ov000_020af4b4 kind:data(any) addr:0x020af4b4 diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index d58cdd23..6cdb21d4 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -199,7 +199,7 @@ _ZN9Inventory19func_ov001_020bba6cEv kind:function(thumb,size=0x58) addr:0x020bd _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 +_ZN18PlayerActorBase_7019func_ov001_020bbe18Ei14UnkAngleStructjh kind:function(thumb,size=0x4c) addr:0x020bd660 _ZN24UnkStruct_027e0ce0_30_00C1EP21UnkStruct_027e0ce0_38P21UnkStruct_027e0ce0_3CiPii kind:function(thumb,size=0x7c) addr:0x020bd6ac _ZN24UnkStruct_027e0ce0_30_00D1Ev kind:function(thumb,size=0x2) addr:0x020bd728 _ZN21UnkStruct_027e0ce0_30C1Ev kind:function(thumb,size=0x18) addr:0x020bd72c diff --git a/config/jp/arm9/overlays/ov017/symbols.txt b/config/jp/arm9/overlays/ov017/symbols.txt index faab24f3..4f5a0798 100644 --- a/config/jp/arm9/overlays/ov017/symbols.txt +++ b/config/jp/arm9/overlays/ov017/symbols.txt @@ -36,7 +36,7 @@ func_ov017_020bf774 kind:function(arm,size=0x150) addr:0x020bf774 func_ov017_020bf8c4 kind:function(arm,size=0x10) addr:0x020bf8c4 func_ov017_020bf8d4 kind:function(arm,size=0x38) addr:0x020bf8d4 func_ov017_020bf90c kind:function(arm,size=0x20c) addr:0x020bf90c -_ZN5Actor19func_ov017_020bfb18EP8Actor_9C kind:function(arm,size=0x148) addr:0x020bfb18 +func_ov017_020bfb18 kind:function(arm,size=0x148) addr:0x020bfb18 func_ov017_020bfc60 kind:function(arm,size=0x18) addr:0x020bfc60 func_ov017_020bfc78 kind:function(arm,size=0x45c) addr:0x020bfc78 func_ov017_020c00d4 kind:function(arm,size=0x124) addr:0x020c00d4 @@ -56,29 +56,29 @@ func_ov017_020c06b0 kind:function(arm,size=0x20) addr:0x020c06b0 func_ov017_020c06d0 kind:function(arm,size=0x28) addr:0x020c06d0 func_ov017_020c06f8 kind:function(arm,size=0x20) addr:0x020c06f8 _ZN5Actor19func_ov017_020beeecEi kind:function(arm,size=0x60) addr:0x020c0718 -func_ov017_020c0778 kind:function(arm,size=0x3c) addr:0x020c0778 +func_ov017_020bef4c kind:function(arm,size=0x3c) addr:0x020c0778 func_ov017_020c07b4 kind:function(arm,size=0x9c) addr:0x020c07b4 func_ov017_020c0850 kind:function(arm,size=0x2c) addr:0x020c0850 -func_ov017_020c087c kind:function(arm,size=0x128) addr:0x020c087c -func_ov017_020c09a4 kind:function(arm,size=0x10c) addr:0x020c09a4 +func_ov017_020bf050 kind:function(arm,size=0x128) addr:0x020c087c +func_ov017_020bf178 kind:function(arm,size=0x10c) addr:0x020c09a4 func_ov017_020c0ab0 kind:function(arm,size=0x54) addr:0x020c0ab0 func_ov017_020c0b04 kind:function(arm,size=0x108) addr:0x020c0b04 func_ov017_020c0c0c kind:function(arm,size=0xd0) addr:0x020c0c0c func_ov017_020c0cdc kind:function(arm,size=0xc4) addr:0x020c0cdc func_ov017_020c0da0 kind:function(arm,size=0x50) addr:0x020c0da0 _ZN5Actor19func_ov017_020bf5c4EP7VecFx32iiii kind:function(arm,size=0x70) addr:0x020c0df0 -func_ov017_020c0e60 kind:function(arm,size=0x54) addr:0x020c0e60 -func_ov017_020c0eb4 kind:function(arm,size=0x88) addr:0x020c0eb4 +func_ov017_020bf634 kind:function(arm,size=0x54) addr:0x020c0e60 +func_ov017_020bf688 kind:function(arm,size=0x88) addr:0x020c0eb4 func_ov017_020c0f3c kind:function(arm,size=0x98) addr:0x020c0f3c func_ov017_020c0fd4 kind:function(arm,size=0xec) addr:0x020c0fd4 -func_ov017_020c10c0 kind:function(arm,size=0x60) addr:0x020c10c0 +func_ov017_020bf894 kind:function(arm,size=0x60) addr:0x020c10c0 _ZN5Actor8vfunc_40Ev kind:function(arm,size=0x44) addr:0x020c1120 _ZN5Actor8vfunc_44Ev kind:function(arm,size=0x64) addr:0x020c1164 func_ov017_020bf99c kind:function(arm,size=0x2c) addr:0x020c11c8 _ZN5Actor19func_ov017_020bf9c8EPS_ kind:function(arm,size=0x88) addr:0x020c11f4 func_ov017_020c127c kind:function(arm,size=0x84) addr:0x020c127c func_ov017_020c1300 kind:function(arm,size=0x44) addr:0x020c1300 -func_ov017_020c1344 kind:function(arm,size=0x238) addr:0x020c1344 +_ZN5Actor19func_ov017_020bfb18EP8Actor_9C kind:function(arm,size=0x238) addr:0x020c1344 _ZN5Actor8vfunc_14Ev kind:function(arm,size=0x4c) addr:0x020c157c func_ov017_020c15c8 kind:function(arm,size=0x130) addr:0x020c15c8 _ZN5Actor8vfunc_48Ev kind:function(arm,size=0x80) addr:0x020c16f8 diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 6da4685f..711122d9 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e6e60 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e6e74 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x30) addr:0x020e6e90 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x230) addr:0x020e6ec0 +_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x230) addr:0x020e6ec0 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e70f0 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e70fc _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e7118 @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f4cc0 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f4cdc _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f4d00 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0xac) addr:0x020f4d0c -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x3f8) addr:0x020f4db8 +_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x3f8) addr:0x020f4db8 _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f51b0 _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f51f0 _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f5354 @@ -1109,7 +1109,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f9d10 _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f9d24 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f9d30 _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f9d54 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x90) addr:0x020f9d98 +_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0x90) addr:0x020f9d98 _ZN21ActorRollingStone_1048vfunc_10Ev kind:function(arm,size=0xb8) addr:0x020f9e28 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f9ee0 _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f9f24 diff --git a/config/jp/arm9/overlays/ov063/relocs.txt b/config/jp/arm9/overlays/ov063/relocs.txt index 9989d57c..702ce7f9 100644 --- a/config/jp/arm9/overlays/ov063/relocs.txt +++ b/config/jp/arm9/overlays/ov063/relocs.txt @@ -7,12 +7,12 @@ from:0x02159c68 kind:arm_call_thumb to:0x0209bf30 module:overlay(0) from:0x02159c7c kind:arm_call to:0x020594c0 module:overlay(0) from:0x02159c8c kind:arm_call to:0x02059498 module:overlay(0) from:0x02159c9c kind:arm_call to:0x02059498 module:overlay(0) -from:0x02159cac kind:load to:0x02164d08 module:overlay(63) +from:0x02159cac kind:load to:0x02164d00 module:overlay(63) add:0x8 from:0x02159cb0 kind:load to:0x02164340 module:overlay(63) from:0x02159cb4 kind:load to:0x02164350 module:overlay(63) from:0x02159cb8 kind:load to:0x02164360 module:overlay(63) from:0x02159cc8 kind:arm_call to:0x0209932c module:overlay(0) -from:0x02159ce0 kind:load to:0x02164ca8 module:overlay(63) +from:0x02159ce0 kind:load to:0x02164ca0 module:overlay(63) add:0x8 from:0x02159d08 kind:arm_call to:0x020993c8 module:overlay(0) from:0x02159d3c kind:arm_call to:0x01ffbbe0 module:itcm from:0x02159d4c kind:arm_call to:0x0215c308 module:overlay(63) @@ -33,7 +33,7 @@ from:0x02159f70 kind:arm_call to:0x0215c570 module:overlay(63) from:0x02159fb8 kind:arm_call to:0x02099dd4 module:overlay(0) from:0x0215a028 kind:load to:0x02164e28 add:0x8 module:overlay(63) from:0x0215a02c kind:load to:0x02165990 module:overlay(63) -from:0x0215a030 kind:load to:0x02164d34 module:overlay(63) +from:0x0215a030 kind:load to:0x02164d2c module:overlay(63) add:0x8 from:0x0215a034 kind:load to:0x0204b164 module:main from:0x0215a040 kind:arm_call_thumb to:0x02059154 module:overlay(0) from:0x0215a054 kind:arm_call_thumb to:0x0209ba14 module:overlay(0) @@ -266,7 +266,7 @@ from:0x0215c52c kind:arm_call to:0x0200e260 module:main from:0x0215c53c kind:arm_call to:0x01ffad5c module:itcm from:0x0215c56c kind:load to:0x027e0964 module:dtcm from:0x0215c578 kind:arm_call to:0x02099a50 module:overlay(0) -from:0x0215c59c kind:load to:0x02164cc8 module:overlay(63) +from:0x0215c59c kind:load to:0x02164cc0 module:overlay(63) add:0x8 from:0x0215c5a8 kind:arm_call to:0x0207d6b4 module:overlay(0) from:0x0215c5bc kind:arm_call to:0x0207d6b4 module:overlay(0) from:0x0215c5c4 kind:arm_call to:0x02011ff4 module:main diff --git a/config/jp/arm9/overlays/ov063/symbols.txt b/config/jp/arm9/overlays/ov063/symbols.txt index 96d0921a..c4157741 100644 --- a/config/jp/arm9/overlays/ov063/symbols.txt +++ b/config/jp/arm9/overlays/ov063/symbols.txt @@ -1,20 +1,20 @@ _ZN19ActorProfileUnkCANS10GetProfileEv kind:function(arm,size=0xc) addr:0x02159be0 _ZN19ActorProfileUnkCANS6CreateEv kind:function(arm,size=0x24) addr:0x02159bec _ZN19ActorProfileUnkCANSC1Ev kind:function(arm,size=0x50) addr:0x02159c10 -_ZN12ActorUnkCANS19func_ov063_02157f20Ev kind:function(arm,size=0x5c) addr:0x02159c60 -_ZN12ActorUnkCANS19func_ov063_02157f7cEv kind:function(arm,size=0x28) addr:0x02159cbc -_ZN12ActorUnkCANS19func_ov063_02157fa4Ev kind:function(arm,size=0x178) addr:0x02159ce4 +_ZN24UnkStruct_ov063_02162ee8C1EP10G3d_Model_ kind:function(arm,size=0x5c) addr:0x02159c60 +_ZN24UnkStruct_ov063_02162e88C1EPv kind:function(arm,size=0x28) addr:0x02159cbc +_ZN24UnkStruct_ov063_02162e888vfunc_04E8ActorRefiiPi kind:function(arm,size=0x178) addr:0x02159ce4 _ZN12ActorUnkCANSC1Ev kind:function(arm,size=0x1dc) addr:0x02159e5c -_ZN12ActorUnkCANS19func_ov063_021582f8Ev kind:function(arm,size=0x14) addr:0x0215a038 -_ZN12ActorUnkCANS19func_ov063_0215830cEv kind:function(arm,size=0x14) addr:0x0215a04c -_ZN12ActorUnkCANS19func_ov063_02158320Ev kind:function(arm,size=0x68) addr:0x0215a060 -_ZN12ActorUnkCANS19func_ov063_02158388Ev kind:function(arm,size=0x9c) addr:0x0215a0c8 +_ZN24UnkStruct_ov063_02162ee8D1Ev kind:function(arm,size=0x14) addr:0x0215a038 +_ZN24UnkStruct_ov063_02162f14D1Ev kind:function(arm,size=0x14) addr:0x0215a04c +_ZN12ActorUnkCANS8vfunc_18Ev kind:function(arm,size=0x68) addr:0x0215a060 +_ZN12ActorUnkCANS8vfunc_1CEv kind:function(arm,size=0x9c) addr:0x0215a0c8 _ZN12ActorUnkCANS19func_ov063_02158424Ev kind:function(arm,size=0x24) addr:0x0215a164 -_ZN12ActorUnkCANS19func_ov063_02158448Ev kind:function(arm,size=0x48) addr:0x0215a188 +_ZN12ActorUnkCANS19func_ov063_02158448Ei kind:function(arm,size=0x48) addr:0x0215a188 _ZN12ActorUnkCANS19func_ov063_02158490Ev kind:function(arm,size=0x34) addr:0x0215a1d0 -_ZN12ActorUnkCANS19func_ov063_021584c4Ev kind:function(arm,size=0x2c) addr:0x0215a204 -_ZN12ActorUnkCANS19func_ov063_021584f0Ev kind:function(arm,size=0x53c) addr:0x0215a230 -_ZN12ActorUnkCANS19func_ov063_02158a2cEv kind:function(arm,size=0xe0) addr:0x0215a76c +_ZN12ActorUnkCANS8vfunc_24Ev kind:function(arm,size=0x2c) addr:0x0215a204 +_ZN12ActorUnkCANS8vfunc_20Ev kind:function(arm,size=0x53c) addr:0x0215a230 +_ZN12ActorUnkCANS8vfunc_2CEi kind:function(arm,size=0xe0) addr:0x0215a76c _ZN12ActorUnkCANS19func_ov063_02158b0cEv kind:function(arm,size=0x28) addr:0x0215a84c _ZN12ActorUnkCANS19func_ov063_02158b34Ev kind:function(arm,size=0x64) addr:0x0215a874 _ZN12ActorUnkCANS19func_ov063_02158b98Ev kind:function(arm,size=0x1a8) addr:0x0215a8d8 @@ -38,29 +38,29 @@ _ZN12ActorUnkCANS19func_ov063_02159dfcEv kind:function(arm,size=0x20) addr:0x021 _ZN12ActorUnkCANS19func_ov063_02159e1cEv kind:function(arm,size=0x4) addr:0x0215bb84 _ZN12ActorUnkCANS19func_ov063_02159e20Ev kind:function(arm,size=0xa0) addr:0x0215bb88 _ZN12ActorUnkCANS19func_ov063_02159ec0Ev kind:function(arm,size=0x7c) addr:0x0215bc28 -_ZN12ActorUnkCANS19func_ov063_02159f3cEv kind:function(arm,size=0x1b4) addr:0x0215bca4 +_ZN12ActorUnkCANS19func_ov063_02159f3cEi kind:function(arm,size=0x1b4) addr:0x0215bca4 _ZN12ActorUnkCANS19func_ov063_0215a0f0Ev kind:function(arm,size=0x1d0) addr:0x0215be58 _ZN12ActorUnkCANS19func_ov063_0215a2c0Ev kind:function(arm,size=0x180) addr:0x0215c028 _ZN12ActorUnkCANS19func_ov063_0215a428Ev kind:function(arm,size=0x4c) addr:0x0215c1a8 _ZN12ActorUnkCANS19func_ov063_0215a474Ev kind:function(arm,size=0xbc) addr:0x0215c1f4 _ZN12ActorUnkCANS19func_ov063_0215a514Ev kind:function(arm,size=0x58) addr:0x0215c2b0 -_ZN12ActorUnkCANS19func_ov063_0215a56cEv kind:function(arm,size=0x34) addr:0x0215c308 -_ZN12ActorUnkCANS19func_ov063_0215a5a0Ev kind:function(arm,size=0x1c) addr:0x0215c33c +_ZN12ActorUnkCANS19func_ov063_0215a56cEi kind:function(arm,size=0x34) addr:0x0215c308 +_ZN12ActorUnkCANS19func_ov063_0215a5a0EP7VecFx32 kind:function(arm,size=0x1c) addr:0x0215c33c _ZN12ActorUnkCANS19func_ov063_0215a5bcEv kind:function(arm,size=0x1c) addr:0x0215c358 _ZN12ActorUnkCANS19func_ov063_0215a5d8Ev kind:function(arm,size=0x20) addr:0x0215c374 -_ZN12ActorUnkCANS19func_ov063_0215a5f8Ev kind:function(arm,size=0x80) addr:0x0215c394 -_ZN12ActorUnkCANS19func_ov063_0215a678Ev kind:function(arm,size=0x15c) addr:0x0215c414 -_ZN12ActorUnkCANS19func_ov063_0215a7d4Ev kind:function(arm,size=0x30) addr:0x0215c570 -_ZN12ActorUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215c5a0 -_ZN12ActorUnkCANSD0Ev kind:function(arm,size=0x1c) addr:0x0215c5b4 -_ZN12ActorUnkCANS19func_ov063_0215a834Ev kind:function(arm,size=0x4c) addr:0x0215c5d0 -_ZN12ActorUnkCANS19func_ov063_0215a880Ev kind:function(arm,size=0xcc) addr:0x0215c61c -_ZN12ActorUnkCANS19func_ov063_0215a94cEv kind:function(arm,size=0x24) addr:0x0215c6e8 -_ZN12ActorUnkCANS19func_ov063_0215a970Ev kind:function(arm,size=0x2c) addr:0x0215c70c -_ZN12ActorUnkCANS19func_ov063_0215a99cEv kind:function(arm,size=0x1c) addr:0x0215c738 -_ZN12ActorUnkCANS19func_ov063_0215a9b8Ev kind:function(arm,size=0x1c) addr:0x0215c754 -_ZN12ActorUnkCANS19func_ov063_0215a9d4Ev kind:function(arm,size=0x84) addr:0x0215c770 -_ZN12ActorUnkCANS19func_ov063_0215aa58Ev kind:function(arm,size=0x8c) addr:0x0215c7f4 +_ZN12ActorUnkCANS8vfunc_10EP8Cylinder kind:function(arm,size=0x80) addr:0x0215c394 +_ZN12ActorUnkCANS19func_ov063_0215a678EPS_P29UnkStruct_func_ov063_0215a678 kind:function(arm,size=0x15c) addr:0x0215c414 +_ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215c570 +_ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215c5a0 +_ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215c5b4 +_ZN24UnkStruct_ov063_02162ea88vfunc_08EP24UnkStruct_ov031_020f3310 kind:function(arm,size=0x4c) addr:0x0215c5d0 +_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4ii kind:function(arm,size=0xcc) addr:0x0215c61c +_ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215c6e8 +_ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215c70c +_ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215c738 +_ZN24UnkStruct_ov063_02162f14D0Ev kind:function(arm,size=0x1c) addr:0x0215c754 +_ZN12ActorUnkCANSD1Ev kind:function(arm,size=0x84) addr:0x0215c770 +_ZN12ActorUnkCANSD0Ev kind:function(arm,size=0x8c) addr:0x0215c7f4 _ZN19ActorProfileUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215c880 _ZN19ActorProfileUnkCASE10GetProfileEv kind:function(arm,size=0xc) addr:0x0215c894 _ZN19ActorProfileUnkCASE6CreateEv kind:function(arm,size=0x24) addr:0x0215c8a0 @@ -72,7 +72,7 @@ _ZN12ActorUnkCASE19func_ov063_0215ac4cEv kind:function(arm,size=0x1c) addr:0x021 _ZN12ActorUnkCASE19func_ov063_0215ac68Ev kind:function(arm,size=0x24) addr:0x0215ca04 _ZN12ActorUnkCASE19func_ov063_0215ac8cEv kind:function(arm,size=0x3c) addr:0x0215ca28 _ZN12ActorUnkCASE19func_ov063_0215acc8Ev kind:function(arm,size=0x24) addr:0x0215ca64 -_ZN12ActorUnkCASE19func_ov063_0215acecEv kind:function(arm,size=0x5c) addr:0x0215ca88 +_ZN12ActorUnkCASE19func_ov063_0215acecEP8ActorRefS0_ kind:function(arm,size=0x5c) addr:0x0215ca88 _ZN12ActorUnkCASEC1Ev kind:function(arm,size=0x124) addr:0x0215cae4 _ZN12ActorUnkCASE19func_ov063_0215ae6cEv kind:function(arm,size=0x14) addr:0x0215cc08 _ZN12ActorUnkCASE19func_ov063_0215ae80Ev kind:function(arm,size=0x14) addr:0x0215cc1c @@ -93,7 +93,7 @@ _ZN12ActorUnkCASE19func_ov063_0215b2c4Ev kind:function(arm,size=0x4) addr:0x0215 _ZN12ActorUnkCASE19func_ov063_0215b2c8Ev kind:function(arm,size=0x24) addr:0x0215d064 _ZN12ActorUnkCASE19func_ov063_0215b2ecEv kind:function(arm,size=0x338) addr:0x0215d088 _ZN12ActorUnkCASE19func_ov063_0215b624Ev kind:function(arm,size=0xa4) addr:0x0215d3c0 -_ZN12ActorUnkCASE19func_ov063_0215b6c8Ev kind:function(arm,size=0x5c) addr:0x0215d464 +_ZN12ActorUnkCASE19func_ov063_0215b6c8EP7VecFx3214UnkAngleStruct kind:function(arm,size=0x5c) addr:0x0215d464 _ZN12ActorUnkCASE19func_ov063_0215b724Ev kind:function(arm,size=0xa8) addr:0x0215d4c0 _ZN12ActorUnkCASE19func_ov063_0215b7ccEv kind:function(arm,size=0x48) addr:0x0215d568 _ZN12ActorUnkCASE19func_ov063_0215b814Ev kind:function(arm,size=0x40) addr:0x0215d5b0 @@ -361,9 +361,9 @@ func_ov063_021621bc kind:function(arm,size=0xc8) addr:0x02163fd4 func_ov063_02162284 kind:function(arm,size=0x250) addr:0x0216409c func_ov063_021624d4 kind:function(arm,size=0x8) addr:0x021642ec func_ov063_021624dc kind:function(arm,size=0x48) addr:0x021642f4 -data_ov063_02164340 kind:data(any) addr:0x02164340 -data_ov063_02164350 kind:data(any) addr:0x02164350 -data_ov063_02164360 kind:data(any) addr:0x02164360 +data_ov063_02162528 kind:data(any) addr:0x02164340 +data_ov063_02162538 kind:data(any) addr:0x02164350 +data_ov063_02162548 kind:data(any) addr:0x02164360 data_ov063_02164370 kind:data(any) addr:0x02164370 data_ov063_02164380 kind:data(any) addr:0x02164380 data_ov063_02162578 kind:data(any) addr:0x02164390 @@ -414,19 +414,19 @@ __sinit_MapObjectUnkSWCR.cpp kind:function(arm,size=0x50) addr:0x02164c08 .p__sinit_MapObjectUnkLTRW.cpp kind:data(word) addr:0x02164c84 .p__sinit_MapObjectUnkMTJR.cpp kind:data(word) addr:0x02164c88 .p__sinit_MapObjectUnkSWCR.cpp kind:data(word) addr:0x02164c8c -data_ov063_02164ca8 kind:data(any) addr:0x02164ca8 -data_ov063_02164cb0 kind:data(any) addr:0x02164cb0 -data_ov063_02164cc8 kind:data(any) addr:0x02164cc8 -_ZTV19data_ov063_02164cdc kind:data(any) addr:0x02164cdc -data_ov063_02164d08 kind:data(any) addr:0x02164d08 -data_ov063_02164d34 kind:data(any) addr:0x02164d34 -data_ov063_02164d78 kind:data(any) addr:0x02164d78 -data_ov063_02164dd0 kind:data(any) addr:0x02164dd0 -_ZTV19data_ov063_02164e28 kind:data(any) addr:0x02164e28 -data_ov063_02164e88 kind:data(any) addr:0x02164e88 -data_ov063_02164ea0 kind:data(any) addr:0x02164ea0 -data_ov063_02164eb8 kind:data(any) addr:0x02164eb8 -data_ov063_02164ed0 kind:data(any) addr:0x02164ed0 +_ZTV24UnkStruct_ov063_02162e88 kind:data(any) addr:0x02164ca0 +data_ov063_02162e90 kind:data(any) addr:0x02164cb0 +_ZTV24UnkStruct_ov063_02162ea8 kind:data(any) addr:0x02164cc0 +_ZTV19ActorProfileUnkCANS kind:data(any) addr:0x02164cdc +_ZTV24UnkStruct_ov063_02162ee8 kind:data(any) addr:0x02164d00 +_ZTV24UnkStruct_ov063_02162f14 kind:data(any) addr:0x02164d2c +data_ov063_02162f58 kind:data(any) addr:0x02164d78 +data_ov063_02162fb0 kind:data(any) addr:0x02164dd0 +_ZTV12ActorUnkCANS kind:data(any) addr:0x02164e28 +data_ov063_02163068 kind:data(any) addr:0x02164e88 +data_ov063_02163080 kind:data(any) addr:0x02164ea0 +data_ov063_02163098 kind:data(any) addr:0x02164eb8 +data_ov063_021630b0 kind:data(any) addr:0x02164ed0 data_ov063_02164ee8 kind:data(any) addr:0x02164ee8 data_ov063_02164f00 kind:data(any) addr:0x02164f00 data_ov063_02164f30 kind:data(any) addr:0x02164f30 diff --git a/config/jp/arm9/overlays/ov084/relocs.txt b/config/jp/arm9/overlays/ov084/relocs.txt index f78384ab..6929f6b4 100644 --- a/config/jp/arm9/overlays/ov084/relocs.txt +++ b/config/jp/arm9/overlays/ov084/relocs.txt @@ -451,7 +451,7 @@ from:0x021576a0 kind:arm_call to:0x0215776c module:overlay(84) from:0x021576b4 kind:arm_call to:0x01ffb6e4 module:itcm from:0x02157708 kind:arm_call to:0x0215776c module:overlay(84) from:0x02157714 kind:load to:0x02164ca0 module:overlay(84) -from:0x02157718 kind:load to:0x02164ca8 module:overlay(84) +from:0x02157718 kind:load to:0x02164ca0 module:overlay(84) add:0x8 from:0x0215771c kind:load to:0x021650d0 module:overlay(84) from:0x02157720 kind:load to:0x02164cac module:overlay(84) from:0x02157724 kind:load to:0x02164ccc module:overlay(84) diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index f8d7c42a..71e91628 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -104,7 +104,8 @@ public: /* 20 */ /* 00 */ virtual void vfunc_00(); // corresponds to func_ov000_02097c14 - /* 04 */ virtual void vfunc_04(); // corresponds to func_ov000_02097c20 + /* 04 */ virtual unk32 vfunc_04(ActorRef param1, unk32 param2, unk32 param3, + unk32 *param4) override; // corresponds to func_ov000_02097c20 /* 08 */ Actor_9C(); @@ -134,8 +135,8 @@ public: /* 10 */ VecFx32 mPrevPos; /* 1C */ VecFx32 mVel; /* 28 */ union { - s16 mAngle; - UnkAngleStruct mAngleStruct; + /* 28 */ fx16 mAngle; + /* 28 */ UnkAngleStruct mAngleStruct; }; /* 2A */ unk16 mUnk_2A; /* 2C */ unk32 mUnk_2C; // gravity? @@ -226,7 +227,7 @@ public: u32 func_ov000_02098800(bool param1); bool func_ov000_02098838(); unk32 func_ov000_02098910(UnkStruct_ov031_Items_00 *param1, unk32 param2); - void func_ov000_02098b8c(unk32 param1, unk32 param2); + void func_ov000_02098b8c(unk32 param1, void *param2); s32 func_ov000_02098518(unk32 *param1); VecFx32 *func_ov000_0209853c(unk32 param1); s32 func_ov000_02098554(); @@ -304,7 +305,7 @@ public: /* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1); /* 4C */ WEAK virtual ~Actor_Derived2() {} - /* 54 */ virtual void vfunc_54(); + /* 54 */ virtual void vfunc_54(unk32 param1); }; extern UnkStruct_ov000_020b539c data_ov000_020b539c_eur; diff --git a/include/Actor/ActorItemBoomerang.hpp b/include/Actor/ActorItemBoomerang.hpp index 32d39534..55eeb064 100644 --- a/include/Actor/ActorItemBoomerang.hpp +++ b/include/Actor/ActorItemBoomerang.hpp @@ -36,7 +36,7 @@ public: /* 00 */ virtual ~ActorItemBoomerang_11C() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override; + /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override; }; class ActorItemBoomerang_A0 : public UnkStruct_ov031_Items_01 { diff --git a/include/Actor/ActorProfile.hpp b/include/Actor/ActorProfile.hpp index 917d140c..69ead0fb 100644 --- a/include/Actor/ActorProfile.hpp +++ b/include/Actor/ActorProfile.hpp @@ -36,7 +36,7 @@ public: ~ActorProfile(); /* 00 */ virtual Actor *Create() = 0; - /* 04 */ virtual void vfunc_04(); + /* 04 */ virtual unk32 vfunc_04(); /* 08 */ virtual void vfunc_08(); /* 0C */ virtual void vfunc_0C(); /* 10 */ virtual void vfunc_10(); @@ -59,7 +59,7 @@ public: ActorProfile_Derived1(ActorId actorId1, ActorId actorId2); ~ActorProfile_Derived1(); - /* 04 */ virtual void vfunc_04() override; + /* 04 */ virtual unk32 vfunc_04() override; /* 10 */ virtual void vfunc_10() override; /* 14 */ virtual void vfunc_14() override; /* 18 */ virtual void vfunc_18() override; @@ -73,10 +73,10 @@ public: ActorProfile_Derived2(ActorId actorId1, ActorId actorId2) : ActorProfile_Derived1(actorId1, actorId2) {} - /* 04 */ virtual void vfunc_04() override; // func_ov000_02097944 - /* 10 */ virtual void vfunc_10() override; // func_ov000_0209794c - /* 14 */ virtual void vfunc_14() override; // func_ov000_0209796c - /* 18 */ virtual void vfunc_18() override; // func_ov000_02097998 + /* 04 */ virtual unk32 vfunc_04() override; // func_ov000_02097944 + /* 10 */ virtual void vfunc_10() override; // func_ov000_0209794c + /* 14 */ virtual void vfunc_14() override; // func_ov000_0209796c + /* 18 */ virtual void vfunc_18() override; // func_ov000_02097998 }; // typedef ActorProfile *(*GetActorProfile)(); diff --git a/include/Actor/ActorRollingStone.hpp b/include/Actor/ActorRollingStone.hpp index 17981f23..ed4e2806 100644 --- a/include/Actor/ActorRollingStone.hpp +++ b/include/Actor/ActorRollingStone.hpp @@ -33,8 +33,9 @@ public: /* 04 */ // data_ov031_02114a5c - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override; // func_ov031_020f8354 - /* 10 */ virtual void vfunc_10() override; // func_ov031_020f83e4 + /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, + unk32 param3) override; // func_ov031_020f8354 + /* 10 */ virtual void vfunc_10() override; // func_ov031_020f83e4 /* 14 */ }; diff --git a/include/Actor/ActorShotArrow.hpp b/include/Actor/ActorShotArrow.hpp index 12344032..af3ecfcf 100644 --- a/include/Actor/ActorShotArrow.hpp +++ b/include/Actor/ActorShotArrow.hpp @@ -50,7 +50,7 @@ public: // data_ov031_02114288 /* 00 */ virtual ~ActorShotArrow_178() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override; + /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override; void func_ov031_020f3304(); }; diff --git a/include/Actor/ActorUnkCANS.hpp b/include/Actor/ActorUnkCANS.hpp index 2b577c7d..08a2e4b4 100644 --- a/include/Actor/ActorUnkCANS.hpp +++ b/include/Actor/ActorUnkCANS.hpp @@ -1,44 +1,170 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "Actor/ActorUnkCASE.hpp" +#include "Actor/ActorUnkZLSL_ZSRS.hpp" +#include "Actor/Actor_Derived1.hpp" +#include "Physics/Cylinder.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/UnkStruct_ov031_Items.hpp" #include "global.h" +#include "nitro/fx.h" +#include "nitro/types.h" +#include "nns/g3d/g3d.h" #include "types.h" -class ActorUnkCANS_C4 : public Actor_C4 { -public: - ActorUnkCANS_C4(Actor *param1); - - /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; - /* 04 */ virtual bool vfunc_04() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C(unk32 param1) override; +// Try to match vfunc_0C but poor results +struct UnkStruct_02162ea8_vfunc_0C { + /* 00 */ union { + unk32 mUnk_00; + Vec2bCpp vec; + }; + /* 04 */ union { + unk32 mUnk_04; + struct { + u8 mUnk_04_0; + u8 mUnk_04_1; + u8 mUnk_04_2; + u8 mUnk_04_3; + }; + }; }; -class ActorUnkCANS : public Actor { +class UnkStruct_ov063_02162ea8 : public UnkStruct_ov031_Items_00 { public: /* 00 (base) */ - /* 94 */ + /* 04 */ STRUCT_PAD(0x4, 0x8); + /* 08 */ VecFx32 mUnk_08; + /* 14 */ + + UnkStruct_ov063_02162ea8(); + + /* 00 (base) */ virtual ~UnkStruct_ov063_02162ea8(); + /* 08 */ virtual bool vfunc_08(UnkStruct_ov031_020f3310 *param1) override; + /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override; +}; + +class UnkStruct_ov000_020b19f0 : public ModelRender { +public: + UnkStruct_ov000_020b19f0(G3d_Model *pModel); +}; + +class UnkStruct_ov000_020b3268 : public UnkStruct_ov000_020b19f0 { +public: + UnkStruct_ov000_020b3268(G3d_Model *pModel); +}; + +class UnkStruct_ov063_02162ee8 : public UnkStruct_ov000_020b3268 { +public: + /* 00 (base) */ + /* 60 */ STRUCT_PAD(0x60, 0x6C); + /* 6C */ unk32 mUnk_6C; + /* 70 */ unk32 mUnk_70; + /* 74 */ unk32 mUnk_74; + /* 78 */ + + UnkStruct_ov063_02162ee8(G3d_Model *pModel); +}; + +class UnkStruct_ov063_02162f14 : public UnkStruct_ov000_020b31f0 { +public: + /* 2C */ + /* 2C */ UnkSystem5 mUnk_2C; + /* 4C */ unk32 mUnk_4C; + /* 50 */ STRUCT_PAD(0x50, 0x7C); + /* 7C */ UnkSystem5 mUnk_7C; + /* 9C */ unk32 mUnk_9C; + + UnkStruct_ov063_02162f14(void *param3, unk32 param4) : + UnkStruct_ov000_020b31f0(&mUnk_2C, &mUnk_7C, param3, param4), + mUnk_2C(&mUnk_4C, NULL), + mUnk_7C(&mUnk_9C, NULL) { + if (param4 != 0) { + *(unk32 *) &mUnk_7C = mUnk_10; + *(unk32 *) &mUnk_2C = mUnk_10; + } + } + + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; + /* 3C */ virtual void vfunc_3C(void) override; +}; + +class UnkStruct_ov063_02162e88 : public Actor_9C { +public: + /* 20 */ void *mUnk_20; // ActorUnkCANS* + /* 24 */ + + UnkStruct_ov063_02162e88(void *param1); + + /* 04 */ virtual unk32 vfunc_04(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4) override; +}; + +class UnkStruct_func_ov063_0215a678 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches + /* 08 */ unk32 mUnk_08; + /* 0C */ STRUCT_PAD(0x0C, 0x92); + /* 92 */ s8 mUnk_92; + /* 93 */ STRUCT_PAD(0x93, 0xAE); + /* AE */ u8 mUnk_AE; +}; + +class UnkStruct_ActorUnkCANS_224 { +public: + /* 00 (base) */ + /* 04 */ + + UnkStruct_ActorUnkCANS_224(); // func_ov000_02099820 +}; + +class ActorUnkCANS : public Actor_Derived2 { +public: + /* 000 (base) */ + /* 0AE */ STRUCT_PAD(0xAE, 0xB0); + /* 0B0 */ UnkStruct_ov063_02162ee8 mUnk_B0; + /* 128 */ UnkStruct_ov063_02162f14 mUnk_128; + /* 1C8 */ STRUCT_PAD(0x1C8, 0x1F4); + /* 1F4 */ Actor_Derived1_94 mUnk_1F4; + /* 200 */ UnkStruct_ov063_02162e88 mUnk_200; + /* 224 */ UnkStruct_ActorUnkCANS_224 mUnk_224; + /* 226 */ STRUCT_PAD(0x226, 0x22C); + /* 22C */ unk16 mUnk_22C; + /* 22E */ unk16 mUnk_22E; + /* 230 */ STRUCT_PAD(0x230, 0x234); + /* 234 */ volatile u16 mUnk_234; + /* 236 */ u16 mUnk_236; + /* 238 */ volatile u16 mUnk_238; + /* 23A */ u16 mUnk_23A; + /* 23C */ UnkStruct_ov063_02162ea8 mUnk_23C; + /* 250 */ VecFx32 mUnk_250; + /* 25C */ unk32 mUnk_25C; + /* 260 */ unk32 mUnk_260; + /* 264 */ unk32 mUnk_264; + /* 268 */ ActorUnkCASE *mUnk_268; + /* 26C */ fx16 mUnk_26C; // Some kind of angle, probably + /* 26E */ STRUCT_PAD(0x26E, 0x270); + /* 270 */ unk32 mUnk_270; + /* 274 */ u16 mUnk_274; + /* 276 */ s8 mUnk_276; + /* 277 */ s8 mUnk_277; + /* 278 */ ActorUnkCANS(); + /* 10 */ virtual void vfunc_10(Cylinder *param1); + /* 18 */ virtual unk32 vfunc_18(void); + /* 1C */ virtual void vfunc_1C(void); + /* 20 */ virtual void vfunc_20(void); + /* 24 */ virtual void vfunc_24(void); + /* 2C */ virtual void vfunc_2C(unk32 param1); /* 4C */ virtual ~ActorUnkCANS() override; - void func_ov063_02157f20(void); - void func_ov063_02157f7c(void); - void func_ov063_02157fa4(void); - void func_ov063_021582f8(void); - void func_ov063_0215830c(void); - void func_ov063_02158320(void); - void func_ov063_02158388(void); + unk32 func_ov063_02157fa4(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4); void func_ov063_02158424(void); - void func_ov063_02158448(void); + void func_ov063_02158448(unk32 param1); void func_ov063_02158490(void); - void func_ov063_021584c4(void); - void func_ov063_021584f0(void); - void func_ov063_02158a2c(void); void func_ov063_02158b0c(void); void func_ov063_02158b34(void); void func_ov063_02158b98(void); @@ -62,27 +188,17 @@ public: void func_ov063_02159e1c(void); void func_ov063_02159e20(void); void func_ov063_02159ec0(void); - void func_ov063_02159f3c(void); - void func_ov063_0215a0f0(void); - void func_ov063_0215a2c0(void); + unk32 func_ov063_02159f3c(unk32 param1); + unk32 func_ov063_0215a0f0(void); + unk32 func_ov063_0215a2c0(void); void func_ov063_0215a428(void); - void func_ov063_0215a474(void); - void func_ov063_0215a514(void); - void func_ov063_0215a56c(void); - void func_ov063_0215a5a0(void); - void func_ov063_0215a5bc(void); - void func_ov063_0215a5d8(void); - void func_ov063_0215a5f8(void); - void func_ov063_0215a678(void); - void func_ov063_0215a7d4(void); - void func_ov063_0215a834(void); - void func_ov063_0215a880(void); - void func_ov063_0215a94c(void); - void func_ov063_0215a970(void); - void func_ov063_0215a99c(void); - void func_ov063_0215a9b8(void); - void func_ov063_0215a9d4(void); - void func_ov063_0215aa58(void); + unk32 func_ov063_0215a474(void); + unk32 func_ov063_0215a514(void); + unk32 func_ov063_0215a56c(unk32 param1); + void func_ov063_0215a5a0(VecFx32 *param1); + unk32 func_ov063_0215a5bc(void); + unk32 func_ov063_0215a5d8(void); + static void func_ov063_0215a678(ActorUnkCANS *param1, UnkStruct_func_ov063_0215a678 *param2); }; class ActorProfileUnkCANS : public ActorProfile_Derived1 { diff --git a/include/Actor/ActorUnkCASE.hpp b/include/Actor/ActorUnkCASE.hpp index 53878763..d08fe810 100644 --- a/include/Actor/ActorUnkCASE.hpp +++ b/include/Actor/ActorUnkCASE.hpp @@ -4,6 +4,7 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "Actor/ActorRef.hpp" #include "global.h" #include "types.h" @@ -33,7 +34,7 @@ public: void func_ov063_0215ac68(void); void func_ov063_0215ac8c(void); void func_ov063_0215acc8(void); - void func_ov063_0215acec(void); + static void func_ov063_0215acec(ActorRef *ref1, ActorRef ref2); // copy ? void func_ov063_0215ae6c(void); void func_ov063_0215ae80(void); void func_ov063_0215ae94(void); @@ -53,7 +54,7 @@ public: void func_ov063_0215b2c8(void); void func_ov063_0215b2ec(void); void func_ov063_0215b624(void); - void func_ov063_0215b6c8(void); + void func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle); void func_ov063_0215b724(void); void func_ov063_0215b7cc(void); void func_ov063_0215b814(void); diff --git a/include/Actor/ActorUnkZLSL_ZSRS.hpp b/include/Actor/ActorUnkZLSL_ZSRS.hpp index f6775e02..03edd5fc 100644 --- a/include/Actor/ActorUnkZLSL_ZSRS.hpp +++ b/include/Actor/ActorUnkZLSL_ZSRS.hpp @@ -3,10 +3,13 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" #include "Actor_Derived1.hpp" +#include "Player/PlayerGet.hpp" #include "Render/ModelRender.hpp" #include "global.h" #include "types.h" +// --- Actor ZLSL --- + class UnkStruct_ov031_0211361c { public: // data_ov031_0211361c @@ -42,7 +45,16 @@ public: class UnkStruct_ov000_020b31a8 { public: /* 00 (vtable) */ - /* 04 */ + /* 04 */ UnkSystem5 *mUnk_04; + /* 08 */ ModelRender *mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk8 mUnk_18; // deduced from strb [..., 0x18] + /* 19 */ STRUCT_PAD(0x19, 0x1C); + /* 1C */ + + UnkStruct_ov000_020b31a8(unk32 param1, unk32 param2, unk32 param3); // data_ov000_020b31a8 /* 00 */ virtual ~UnkStruct_ov000_020b31a8(); @@ -54,7 +66,7 @@ public: /* 1C */ virtual void vfunc_1C(ActorUnkZLSL_AnimationTag param1, unk32 param2, unk32 param3, unk32 param4); /* 20 */ virtual void vfunc_20(); /* 24 */ virtual void vfunc_24(); - /* 28 */ virtual void vfunc_28(); + /* 28 */ virtual UnkStruct_PlayerGet_50 *vfunc_28(); /* 2C */ virtual void vfunc_2C(); /* 30 */ virtual s8 vfunc_30(); /* 34 */ virtual void vfunc_34(); @@ -65,11 +77,9 @@ public: class ActorUnkZLSL_27CC : public UnkStruct_ov000_020b31a8 { public: /* 00 (base) */ - /* 04 */ unk32 mUnk_04; - /* 08 */ ModelRender *mUnk_08; - /* 0C */ STRUCT_PAD(0x0C, 0x18); - /* 18 */ s8 mUnk_18; - /* 19 */ + /* 1C */ + + ActorUnkZLSL_27CC(); // data_ov031_0211369c /* 30 */ virtual s8 vfunc_30() override; @@ -90,7 +100,15 @@ public: class UnkStruct_ov000_020b31f0 : public UnkStruct_ov000_020b31a8 { public: /* 00 (vtable) */ - /* 04 */ + /* 1C */ UnkSystem5 *mUnk_1C; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk8 mUnk_28; // deduced from strb [..., 0x18] + /* 29 */ STRUCT_PAD(0x29, 0x2A); + /* 2A */ unk16 mUnk_2A; + /* 2C */ + + UnkStruct_ov000_020b31f0(void *param1, void *param2, void *param3, unk32 param4); // data_ov000_020b31f0 /* 00 */ virtual ~UnkStruct_ov000_020b31f0() override; @@ -98,9 +116,9 @@ public: /* 0C */ virtual void vfunc_0C() override; /* 10 */ virtual UnkSystem5 *vfunc_10() override; /* 14 */ virtual void vfunc_14() override; - /* 1C */ virtual void vfunc_1C(char param1[], unk32 param2, unk32 param3, unk32 param4) override; + /* 1C */ virtual void vfunc_1C(ActorUnkZLSL_AnimationTag param1, unk32 param2, unk32 param3, unk32 param4) override; /* 20 */ virtual void vfunc_20() override; - /* 28 */ virtual void vfunc_28() override; + /* 28 */ virtual UnkStruct_PlayerGet_50 *vfunc_28() override; /* 2C */ virtual void vfunc_2C() override; /* 30 */ virtual s8 vfunc_30() override; /* 34 */ virtual void vfunc_34() override; @@ -118,6 +136,8 @@ public: /* 1C */ UnkSystem5 *mUnk_1C; /* 20 */ + UnkStruct_ov031_0211372c(void *param1, void *param2, void *param3, unk32 param4); + // data_ov031_0211372c /* 18 */ virtual void vfunc_18() override; /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; @@ -130,6 +150,8 @@ public: /* 00 (base) */ /* 20 */ + UnkStruct_ov031_02113d14(); + // data_ov031_02113d14 /* 00 */ virtual ~UnkStruct_ov031_02113d14(); }; diff --git a/include/Actor/Actor_Derived1.hpp b/include/Actor/Actor_Derived1.hpp index 729492f9..11715874 100644 --- a/include/Actor/Actor_Derived1.hpp +++ b/include/Actor/Actor_Derived1.hpp @@ -214,7 +214,7 @@ public: void func_ov000_020a9a94(); void func_ov000_020a9abc(); - static void func_ov000_020a9804(); + static void func_ov000_020a9804(void *param1, unk32 param2); // overlay 1 void func_ov001_020bff2c(); diff --git a/include/Player/PlayerActorBase.hpp b/include/Player/PlayerActorBase.hpp index 63df1e20..347d0ddb 100644 --- a/include/Player/PlayerActorBase.hpp +++ b/include/Player/PlayerActorBase.hpp @@ -313,10 +313,6 @@ struct UnkStruct_func_ov000_020830d4 { u32 mUnk_0C; }; -struct UnkStruct_func_ov001_020bbe18 { - u16 mUnk_00; -}; - class PlayerActorBase_70 { private: /* 000 */ BOOL mIsNotLink; @@ -364,10 +360,10 @@ public: // 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); + void func_ov000_020830d4(UnkAngleStruct param1, u32 param2, u8 param3, unk32 param4); // overlay 1 - void func_ov001_020bbe18(unk32 param1, UnkStruct_func_ov001_020bbe18 param2, u32 param3, u8 param4); + void func_ov001_020bbe18(unk32 param1, UnkAngleStruct param2, u32 param3, u8 param4); }; class PlayerActorBase_74 { @@ -432,7 +428,7 @@ public: /* 24 */ VecFx32 mAccel; /* 30 */ union { u16 mAngle; - UnkStruct_func_ov001_020bbe18 mAngleStruct; + UnkAngleStruct mAngleStruct; }; /* 32 */ u8 mInvincibilityTimer; /* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index 3acef02f..0ee7f1e4 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -1,7 +1,9 @@ #pragma once #include "global.h" +#include "math.hpp" #include "nitro/fx.h" +#include "profile.hpp" #include "types.h" #include @@ -9,7 +11,7 @@ class UnkSystem5; extern "C" void *func_ov000_02057750(size_t allocSize); -typedef void (*UnkSystem4_UnkCallback)(void); +typedef void (*UnkSystem4_UnkCallback)(void *, unk32); class UnkSystem4_vfunc_1C_B4 { public: @@ -109,7 +111,7 @@ public: /* 00 */ virtual ~UnkSystem6_Derived2() {} /* 0C */ virtual void vfunc_0C() override; - void func_01ffc6d4(u16 angle, VecFx32 *pos); + void func_01ffc6d4(UnkAngleStruct angleStruct, VecFx32 *pos); }; class ModelRender_ov000_020b198c : public ModelRenderBase { diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index cc7952a0..012c0420 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -289,7 +289,8 @@ public: class UnkStruct_ov031_020e54d4 { public: - /* 00 */ STRUCT_PAD(0x00, 0x08); + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ unk32 mUnk_04; /* 08 */ u32 mUnk_08; }; @@ -301,7 +302,7 @@ public: // data_ov000_020b2838 /* 00 */ virtual ~UnkStruct_027e0ce0_38_Base(); /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1); - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2); + /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3); /* 10 */ virtual void vfunc_10(); /* 14 */ }; diff --git a/src/000_Second/Actor/Actor_Derived1.cpp b/src/000_Second/Actor/Actor_Derived1.cpp index 0c8cc28a..ed18c8e0 100644 --- a/src/000_Second/Actor/Actor_Derived1.cpp +++ b/src/000_Second/Actor/Actor_Derived1.cpp @@ -222,7 +222,7 @@ unk32 Actor_Derived1::vfunc_A8() { return 1; } -void Actor_Derived1::func_ov000_020a9804() {} +void Actor_Derived1::func_ov000_020a9804(void *param1, unk32 param2) {} void Actor_Derived1::vfunc_20() {} // non-matching diff --git a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp index 014adc73..154e5480 100644 --- a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp +++ b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp @@ -1,3 +1,4 @@ +#include "Actor/Actor.hpp" #include "Player/PlayerActorBase.hpp" #include "System/SysNew.hpp" #include "Unknown/UnkStruct_027e09a4.hpp" @@ -68,7 +69,7 @@ PlayerActorBase_70::~PlayerActorBase_70() { delete this->mUnk_00C.GetUnk08(); } -void PlayerActorBase_70::func_ov001_020bbe18(unk32 param1, UnkStruct_func_ov001_020bbe18 param2, u32 param3, u8 param4) { +void PlayerActorBase_70::func_ov001_020bbe18(unk32 param1, UnkAngleStruct param2, u32 param3, u8 param4) { this->mUnk_129 = true; this->mUnk_12A = true; diff --git a/src/031_Land/Actor/ActorItemBoomerang.cpp b/src/031_Land/Actor/ActorItemBoomerang.cpp index 119404e7..03fa8cc3 100644 --- a/src/031_Land/Actor/ActorItemBoomerang.cpp +++ b/src/031_Land/Actor/ActorItemBoomerang.cpp @@ -317,7 +317,7 @@ void ActorItemBoomerang::func_ov031_020e52a0() { // non-matching void ActorItemBoomerang::vfunc_2C(unk32 param1) { if (Actor::func_01fff5d0(param1, 0x0)) { - this->mUnk_94.func_01ffc6d4((u16) this->mAngle, &this->mPos); + this->mUnk_94.func_01ffc6d4(this->mAngleStruct, &this->mPos); data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x400, 0x400, 0x1F, 0x0, 0x1); } } @@ -365,7 +365,7 @@ bool ActorItemBoomerang_11C::vfunc_08(const UnkStruct_ov031_020f3310 *param1) { return func_ov000_020982d8(); } -bool ActorItemBoomerang_11C::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) { +bool ActorItemBoomerang_11C::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) { u32 val = (param1->mUnk_08 >> 9) & 7; if (val == 0x2) { this->mUnk_08->func_ov031_020e5034(0x1); @@ -412,7 +412,7 @@ bool ActorItemBoomerang_11C::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, un } } - UnkStruct_027e0ce0_38_Base::vfunc_0C(param1, param2); + UnkStruct_027e0ce0_38_Base::vfunc_0C(param1, param2, param3); } void ActorItemBoomerang_Unknown::func_ov031_020e5704() { diff --git a/src/031_Land/Actor/ActorRollingStone.cpp b/src/031_Land/Actor/ActorRollingStone.cpp index 41cca559..21c8c416 100644 --- a/src/031_Land/Actor/ActorRollingStone.cpp +++ b/src/031_Land/Actor/ActorRollingStone.cpp @@ -61,7 +61,7 @@ ActorProfileRollingStone::ActorProfileRollingStone() : } // non-matching -bool ActorRollingStone_104::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) {} +bool ActorRollingStone_104::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) {} // non-matching void ActorRollingStone_104::vfunc_10() {} diff --git a/src/031_Land/Actor/ActorShotArrow.cpp b/src/031_Land/Actor/ActorShotArrow.cpp index 6a1948a3..7ee3092f 100644 --- a/src/031_Land/Actor/ActorShotArrow.cpp +++ b/src/031_Land/Actor/ActorShotArrow.cpp @@ -988,7 +988,7 @@ bool ActorShotArrow_178::vfunc_08(const UnkStruct_ov031_020f3310 *param1) { } // non-matching -bool ActorShotArrow_178::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) {} +bool ActorShotArrow_178::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) {} ActorShotArrow_194::ActorShotArrow_194(ActorShotArrow *param1) { this->mUnk_2C = param1; diff --git a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp index 580e2186..1dedf746 100644 --- a/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp +++ b/src/031_Land/Actor/ActorUnkZLSL_ZSRS.cpp @@ -1422,7 +1422,7 @@ void ActorUnkZLSL_27CC::vfunc_3C() { } void ActorUnkZLSL_27CC::vfunc_38(unk32 param1, unk32 param2) { - func_ov000_020578a4(this->mUnk_04); + func_ov000_020578a4((unk32) this->mUnk_04); } s8 ActorUnkZLSL_27CC::vfunc_30() { diff --git a/src/063_Shrine/Actor/ActorUnkCANS.cpp b/src/063_Shrine/Actor/ActorUnkCANS.cpp index c5a0cb7f..986382e8 100644 --- a/src/063_Shrine/Actor/ActorUnkCANS.cpp +++ b/src/063_Shrine/Actor/ActorUnkCANS.cpp @@ -1,7 +1,102 @@ -//! TODO: This file was generated automatically and might contain errors - #include "Actor/ActorUnkCANS.hpp" -#include "System/SysNew.hpp" +#include "Actor/Actor.hpp" +#include "Actor/ActorId.hpp" +#include "Actor/ActorItemBoomerang.hpp" +#include "Actor/ActorManager.hpp" +#include "Actor/ActorRef.hpp" +#include "Actor/ActorShotArrow.hpp" +#include "Actor/ActorUnkCASE.hpp" +#include "Actor/ActorUnkZLSL_ZSRS.hpp" +#include "Map/MapObjectId.hpp" +#include "MapObject/MapObject.hpp" +#include "MapObject/MapObjectManager.hpp" +#include "Physics/Cylinder.hpp" +#include "Player/PlayerGet.hpp" +#include "Render/ModelRender.hpp" +#include "Save/AdventureFlags.hpp" +#include "System/Random.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e09c0.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0d38.hpp" +#include "flags.h" +#include "math.hpp" +#include "nitro/fx.h" +#include "nitro/math.h" +#include "nitro/types.h" +#include "nns/g3d/g3d.h" +#include "profile.hpp" +#include "types.h" + +extern const char data_ov063_02162528[0x10]; // = "mCANS1"; +extern const char data_ov063_02162538[0x10]; // = "Rarm1"; +extern const char data_ov063_02162548[0x10]; // = "locator1"; + +static PTMF data_ov063_02162fb0[0xA] = { + ActorUnkCANS::func_ov063_02158db0, ActorUnkCANS::func_ov063_02159100, ActorUnkCANS::func_ov063_02159258, + ActorUnkCANS::func_ov063_02159494, ActorUnkCANS::func_ov063_02159618, ActorUnkCANS::func_ov063_02159784, + ActorUnkCANS::func_ov063_021599e4, ActorUnkCANS::func_ov063_02159d68, ActorUnkCANS::func_ov063_02159e1c, + ActorUnkCANS::func_ov063_02159ec0, +}; + +static PTMF data_ov063_02162f58[0xA] = { + ActorUnkCANS::func_ov063_02158d40, ActorUnkCANS::func_ov063_021590c8, ActorUnkCANS::func_ov063_021591f4, + ActorUnkCANS::func_ov063_02159408, ActorUnkCANS::func_ov063_021595a4, ActorUnkCANS::func_ov063_02159714, + ActorUnkCANS::func_ov063_021598fc, ActorUnkCANS::func_ov063_02159ca8, ActorUnkCANS::func_ov063_02159dfc, + ActorUnkCANS::func_ov063_02159e20, +}; + +/* Contains a string somewhere with info such as "attack" or "guard" */ +extern ActorUnkZLSL_AnimationTag data_ov063_02163068; // = {0, 0x6B6C6177, 0x41, 0, 0, 0}; +extern ActorUnkZLSL_AnimationTag data_ov063_02163080; +extern ActorUnkZLSL_AnimationTag data_ov063_02163098; +extern ActorUnkZLSL_AnimationTag data_ov063_021630b0; + +extern VecFx32 data_027e07d4; +extern Mat4x3p data_027e0964; +extern UnkStruct_027e09c0 *data_027e09c0; +extern u16 data_ov000_020aed00; +extern u16 data_ov000_020aecf0[0x4]; +extern u16 data_ov000_020aecf4[0x4]; //! INFO: Unsure about the size +extern unk32 data_ov000_020aecf8[0x2]; //! INFO: Unsure about the size +extern unk32 data_ov000_020aecfc[0x2]; //! INFO: Unsure about the size +extern Cylinder data_ov063_02162e90; + +extern "C" void func_01ff916c(unk32 *param1, unk32 param2, unk32 param3); +extern "C" unk32 func_01ff9258(unk32, unk32); +extern "C" unk32 func_01ff930c(s16 *, unk16, unk32); +extern "C" void func_01ff9638(VecFx32 *param1, fx16 param2); +extern "C" fx32 func_01ff9a5c(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *); +extern "C" fx32 func_01ffb428(unk32, unk32); +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *); +extern "C" unk32 func_01ffbbe0(unk32 param1, unk32 param2); +extern "C" void func_01ffc6d4(ModelRender *param1, UnkAngleStruct param2, VecFx32 *param3); +extern "C" void func_0200eab0(G3d_Model *, unk32, u8); +extern "C" void func_ov000_020578a4(UnkSystem5 *param1, unk32 param2, unk32 param3); +extern "C" void func_ov000_02057c98(ModelRender *param1, UnkSystem5 *param2); +#if IS_JP +extern "C" unk32 func_ov000_0205c384(VecFx32 *param1, VecFx32 *param2); +#endif +extern "C" void func_ov000_0208bd20(UnkStruct_027e0ce0 *param1, unk32 param2, unk32 param3, unk32 param4); +extern "C" void func_ov000_020986b4(s16 *param1, ActorUnkCANS *param2, unk32 param3); +extern "C" void func_ov000_02098f34(ActorUnkCANS *param1, unk16 *param2); +extern "C" unk32 func_ov000_02098d7c(ActorUnkCANS *param1, UnkStruct_ov063_02162e88 *param2); +extern "C" unk32 func_ov000_02099450(ActorUnkCANS *param1, void *param2, VecFx32 *param3, unk32 param4, u16 param5); +extern "C" void func_ov000_020994a0(ActorUnkCANS *); +extern "C" unk32 func_ov000_02099a0c(void *param1); +extern "C" void func_ov017_020bf050(ActorUnkCANS *param1, UnkStruct_ov063_02162e88 *param2, unk32 param3); +extern "C" void func_ov017_020bf178(ActorUnkCANS *param1, UnkStruct_ov063_02162e88 *param2, unk32 param3); +extern "C" void func_ov017_020bf634(ActorUnkCANS *param1, unk16 *param2, unk32 param3, unk32 param4); +extern "C" void func_ov017_020bf688(ActorUnkCANS *param1); +extern "C" void func_ov017_020bf894(ActorUnkCANS *param1, void *param2); +extern "C" unk32 func_ov017_020bef4c(ActorUnkCANS *param1, unk32 param2); +#if IS_JP +extern "C" void func_ov026_020f46a8(Actor *param1, VecFx32 *param2, bool param3); +#endif + +extern "C" void G3d_GetCurrentMtx(Mat4x3p *mtx1, Mat3p *mtx2); DECL_PROFILE(ActorProfileUnkCANS); @@ -10,67 +105,1165 @@ Actor *ActorProfileUnkCANS::Create() { } ActorProfileUnkCANS::ActorProfileUnkCANS() : - ActorProfile_Derived1(ActorId_CANS) {} + ActorProfile_Derived1(ActorId_CANS) { + mUnk_24 = 0x43415345; + VecFx32_Init(0, 0xCCD, 0, &mUnk_04.pos); + mUnk_04.size = 0xCCD; +} -ActorUnkCANS::ActorUnkCANS() {} +UnkStruct_ov063_02162ea8::UnkStruct_ov063_02162ea8() { + VecFx32_Init(0, 0, 0, &mUnk_08); +} +UnkStruct_ov063_02162ea8::~UnkStruct_ov063_02162ea8() {} -void ActorUnkCANS::func_ov063_02157f20(void) {} -void ActorUnkCANS::func_ov063_02157f7c(void) {} -void ActorUnkCANS::func_ov063_02157fa4(void) {} -void ActorUnkCANS::func_ov063_021582f8(void) {} -void ActorUnkCANS::func_ov063_0215830c(void) {} -void ActorUnkCANS::func_ov063_02158320(void) {} -void ActorUnkCANS::func_ov063_02158388(void) {} -void ActorUnkCANS::func_ov063_02158424(void) {} -void ActorUnkCANS::func_ov063_02158448(void) {} -void ActorUnkCANS::func_ov063_02158490(void) {} -void ActorUnkCANS::func_ov063_021584c4(void) {} -void ActorUnkCANS::func_ov063_021584f0(void) {} -void ActorUnkCANS::func_ov063_02158a2c(void) {} -void ActorUnkCANS::func_ov063_02158b0c(void) {} -void ActorUnkCANS::func_ov063_02158b34(void) {} -void ActorUnkCANS::func_ov063_02158b98(void) {} -void ActorUnkCANS::func_ov063_02158d40(void) {} -void ActorUnkCANS::func_ov063_02158db0(void) {} -void ActorUnkCANS::func_ov063_021590c8(void) {} -void ActorUnkCANS::func_ov063_02159100(void) {} -void ActorUnkCANS::func_ov063_021591f4(void) {} -void ActorUnkCANS::func_ov063_02159258(void) {} -void ActorUnkCANS::func_ov063_02159408(void) {} -void ActorUnkCANS::func_ov063_02159494(void) {} -void ActorUnkCANS::func_ov063_021595a4(void) {} -void ActorUnkCANS::func_ov063_02159618(void) {} -void ActorUnkCANS::func_ov063_02159714(void) {} -void ActorUnkCANS::func_ov063_02159784(void) {} -void ActorUnkCANS::func_ov063_021598fc(void) {} -void ActorUnkCANS::func_ov063_021599e4(void) {} -void ActorUnkCANS::func_ov063_02159ca8(void) {} -void ActorUnkCANS::func_ov063_02159d68(void) {} -void ActorUnkCANS::func_ov063_02159dfc(void) {} +bool UnkStruct_ov063_02162ea8::vfunc_08(UnkStruct_ov031_020f3310 *param1) { + bool retVal = UnkStruct_ov031_Items_00::vfunc_08(param1); + if (retVal && func_01ff9258(param1->mUnk_08.x, param1->mUnk_08.z) > 0) { + // VecFx16_Copy2VecFx32(¶m1->mUnk_08, &mUnk_08); + // Better match + unk16 tmp1 = param1->mUnk_08.x; + unk16 tmp3 = param1->mUnk_08.z; + unk16 tmp2 = param1->mUnk_08.y; + mUnk_08.x = tmp1; + mUnk_08.y = tmp2; + mUnk_08.z = tmp3; + } + return retVal; +} + +bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) { + UnkStruct_02162ea8_vfunc_0C *param2Struct = (UnkStruct_02162ea8_vfunc_0C *) ¶m2; + if ((*(u16 *) ¶m2Struct->mUnk_04 & 0x1000) != 0) { + UnkStruct_02162ea8_vfunc_0C tmp; + tmp.mUnk_04 = *(volatile unk32 *) ¶m2Struct->mUnk_04; + + Vec2bCpp vec; + *(unk32 *) &vec = tmp.mUnk_04; + + MapObject *mapObject = gpMapObjManager->func_01fff498(vec); + + if (mapObject != NULL) { + MapObjectId id = mapObject->GetMapObjectId(); + if (id == MapObjectId_Grass || id == MapObjectId_LEVS || id == MapObjectId_STSH) { + return false; + } + } + } + return UnkStruct_027e0ce0_38_Base::vfunc_0C((const UnkStruct_ov031_020e54d4 *) param2Struct->mUnk_04, param2, + param2Struct->mUnk_04); +} +UnkStruct_ov000_020b19f0::UnkStruct_ov000_020b19f0(G3d_Model *pModel) : + ModelRender(pModel) {} + +UnkStruct_ov000_020b3268::UnkStruct_ov000_020b3268(G3d_Model *pModel) : + UnkStruct_ov000_020b19f0(pModel) {} + +UnkStruct_ov063_02162ee8::UnkStruct_ov063_02162ee8(G3d_Model *pModel) : + UnkStruct_ov000_020b3268(pModel), + mUnk_6C(ModelRenderBase::func_ov000_02057f40(data_ov063_02162528)), + mUnk_70(ModelRenderBase::func_ov000_02057f18(data_ov063_02162538)), + mUnk_74(ModelRenderBase::func_ov000_02057f18(data_ov063_02162548)) {} + +void UnkStruct_ov063_02162f14::vfunc_38(unk32 param1, unk32 param2) { + func_ov000_020578a4(mUnk_04, param1, param2); + func_ov000_020578a4(mUnk_1C, param1, param2); +} + +void UnkStruct_ov063_02162f14::vfunc_3C() { + mUnk_08->func_ov000_02057c98(mUnk_04); + mUnk_08->func_ov000_02057c98(mUnk_1C); +} + +UnkStruct_ov063_02162e88::UnkStruct_ov063_02162e88(void *param1) : + mUnk_20(param1) {} + +unk32 UnkStruct_ov063_02162e88::vfunc_04(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4) { + + unk32 ret1 = Actor_9C::vfunc_04(param1, param2, param3, param4); + + if (ret1 == 0) { + return ret1; + } + + if (param2 != 3) { + return ret1; + } + + if (((ActorUnkCANS *) mUnk_20)->func_ov063_0215a56c((unk16) func_01ffbbe0(param4[0], param4[2])) != 0 && + param1.type != 0) { + ActorShotArrow *ret4 = (ActorShotArrow *) gpActorManager->func_01fff3b4(param1); + + if (ret4 != NULL && ret4->GetActorId() == ActorId_ShotArrow) { + u16 angle = ((ActorUnkCANS *) mUnk_20)->mAngle; + fx32 sin_val = MUL_FX32(SIN(angle), FLOAT_TO_FX32(1.f)); + fx32 cos_val = MUL_FX32(COS(angle), FLOAT_TO_FX32(1.f)); + VecFx32 vec; + // VecFx32_Init doesn't match + vec.x = sin_val; + vec.z = cos_val; + vec.y = 0; +#if !IS_JP + ret4->func_ov031_020f2cac(&vec, true); +#else + func_ov026_020f46a8(ret4, &vec, true); +#endif + return 0; + } + + return 1; + } + return ret1; +} + +ActorUnkCANS::ActorUnkCANS() : + mUnk_B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCANS)->vfunc_04())->mUnk_50)), + mUnk_128(&mUnk_B0, GET_PROFILE(ActorProfileUnkCANS)->vfunc_04()), + mUnk_1F4(), + mUnk_200(this), + mUnk_224(), + mUnk_234(0), + mUnk_236(0), + mUnk_238(0), + mUnk_23A(0), + mUnk_250(mUnk_5C.mInitialPos), + mUnk_274(0), + mUnk_270(0xCD) { + mFlags[0] |= 0x40; + Actor_38 *actor_38 = (Actor_38 *) &mUnk_1F4; + mUnk_38 = actor_38; + actor_38->mUnk_08 = 4; + this->func_ov000_0209862c(4); + mUnk_200.mUnk_04 &= 0xFFFFBFFF; + mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1; + mUnk_48 = 4; + mUnk_270 *= mUnk_276; +} + +void ActorUnkCANS::vfunc_10(Cylinder *param1) { + Cylinder *cylinder = this->mUnk_34; + *param1 = *cylinder; + VecFx32_Add(¶m1->pos, &this->mPos, ¶m1->pos); + + if (this->mUnk_268 != NULL) { + fx16 angle = this->mAngle; + VecFx32 pos; + VecFx32_Init(FLOAT_TO_FX32(0.25f), 0, 0, &pos); + func_01ff9638(&pos, angle); + VecFx32_Add(¶m1->pos, &pos, ¶m1->pos); + } +} + +// return bool ? +unk32 ActorUnkCANS::vfunc_18(void) { + this->mUnk_B0.func_ov000_02057c38(6, 2); + this->mUnk_B0.func_ov000_0209a7b8(this, (UnkSystem4_UnkCallback) ActorUnkCANS::func_ov063_0215a678); + + ActorRef var; + ActorManager *actorManager = gpActorManager; + + ActorUnkCASE::func_ov063_0215acec(&var, this->mRef); + this->mUnk_268 = (ActorUnkCASE *) actorManager->func_01fff3b4(var); + + return 1; +} + +void ActorUnkCANS::vfunc_1C(void) { + mUnk_26C = mUnk_5C.mInitialAngle; + + s16 var; + func_ov000_020986b4((s16 *) &var, this, 0); + + s16 r2_val = var; + s16 r3_val = *((volatile s16 *) &var); + + var = r2_val - mUnk_26C; + int iVar2 = (s16) (r3_val - (s16) (mUnk_26C - DEG_TO_ANG(180))); + + int iVar1 = var; + + iVar2 = ABS(iVar2); + iVar1 = ABS(iVar1); + + if (iVar1 > iVar2) { + mUnk_26C += DEG_TO_ANG(180); + mAngle += DEG_TO_ANG(180); + } + + this->func_ov063_02158448(0); +} + +void ActorUnkCANS::vfunc_20(void) { + if (mUnk_238 < mUnk_23A) { + mUnk_238++; + } + + if (!func_ov017_020bef4c(this, 0x4000) && mUnk_48 != 0 && mState != 4) { + return; + } + mUnk_3C = (Actor_9C *) &mUnk_200; + + CALL_PTMF(PTMF, data_ov063_02162fb0[mState]); + + func_ov017_020bf894(this, &mUnk_224); + this->func_ov000_02098838(); + + VecFx32_Copy(&mPos, &mPrevPos); + VecFx32_Add(&mPos, &mVel, &mPos); + + if (mUnk_268 != NULL) { + mUnk_268->func_ov063_0215b6c8(&mUnk_250, mAngleStruct); + } + + this->func_ov000_02098b8c(1, &mUnk_23C); + unk16 ret1 = func_01ffbbe0(mUnk_23C.mUnk_08.x, mUnk_23C.mUnk_08.z); + unk32 res3 = (unk16) ((unk16) func_01ffbbe0(mVel.x, mVel.z) - ret1 - 0x8000); + + if ((mUnk_46 & 1) != 0) { + mVel.y = 0; + } + + if ((mUnk_46 & 0x3c) != 0) { + res3 = ABS(res3); + + if (res3 < 0x2000) { + VecFx32_Init(0, 0, 0, &mVel); + VecFx32_Copy(&mPrevPos, &mPos); + } + } + unk32 iVar5; + + if (mUnk_48 > 0) { + unk32 var; + if ((mUnk_234 < mUnk_236)) { + mUnk_234++; + var = 0; + } else { + var = 1; + } + + if (var == 0) { + if (mUnk_268 != NULL) { + //! INFO: mUnk_268 is NOT an ActorUnkCANS*, this is a placeholder as mUnk_1F4 is not yet defined in + //! ActorUnkCASE (current type of *mUnk_268) + *(char *) &((ActorUnkCANS *) mUnk_268)->mUnk_1F4 = 0; + } + } else { + + this->func_ov000_020989e0(); + + if (((*(u32 *) &mUnk_200.mUnk_08) & 0x3FFFF) != 0) { + + mUnk_236 = func_ov000_02098d7c(this, &mUnk_200); + mUnk_234 = 0; + + iVar5 = this->func_ov063_0215a56c((unk16) func_01ffbbe0(*(u32 *) &mUnk_200.mUnk_10, mUnk_200.mUnk_18)); + + switch (mUnk_200.mUnk_1C) { + case 12: + if (iVar5 != 0) { + Actor *iVar6 = gpActorManager->func_01fff3b4(mUnk_200.mUnk_0C.data); + if (iVar6 != 0) { + ((ActorItemBoomerang *) iVar6)->func_ov031_020e49b0(0x8D70); + } + if (mState != 4) { + this->func_ov063_02158448(5); + } + } else { + func_ov017_020bf178(this, &mUnk_200, 1); + func_ov000_02099a0c(&mUnk_224); + this->func_ov063_02158448(4); + } + break; + case 4: { + if (mUnk_268 == NULL) { + if (data_027e0d38->func_ov031_020d9c04(1, 0, 0) != 0) { + this->func_ov063_02158448(10); + } + } else { + data_027e0d38->func_ov031_020d9c44(data_ov000_020aed00); + if (mState != 4) { + this->func_ov063_02158448(5); + } + } + break; + } + case 13: + if (iVar5 == 0) { + this->func_ov063_02158490(); + } + break; + case 8: + if (iVar5 != 0) { + if (mUnk_200.mUnk_0C.type_index == 0x102) { + unk32 uVar1 = 0; + if (mUnk_200.mUnk_0C.type_index == 0x102) { + if (mUnk_200.mUnk_0C.unk_id == 1 || mUnk_200.mUnk_0C.unk_id == 3) { + uVar1 = 1; + }; + } + func_ov000_0208bd20(data_027e0ce0, uVar1 != 0, 0x8c98, 0); + } else { + data_027e09a8->func_ov000_02071b30(0x8C98, &mPos, 0); + } + if (mState != 4) { + this->func_ov063_02158448(5); + } + } else { + this->func_ov063_02158490(); + } + break; + case 3: + if (iVar5 != 0) { + if (mState != 4) { + this->func_ov063_02158448(5); + } + break; + } + this->func_ov063_02158490(); + break; + case 0: + case 1: + case 2: + case 5: + case 6: + case 7: + case 9: + case 10: + case 11: + default: + if (iVar5 != 0) { + this->func_ov017_020bfb18((Actor_9C *) &mUnk_200); + if (mState != 4) { + this->func_ov063_02158448(5); + } + } else { + this->func_ov063_02158490(); + } + break; + } + } + if (mUnk_268 != NULL) { + //! INFO: mUnk_268 is NOT an ActorUnkCANS*, this is a placeholder as mUnk_1F4 is not yet defined in + //! ActorUnkCASE (current type of *mUnk_268) + *(char *) &((ActorUnkCANS *) mUnk_268)->mUnk_1F4 = (char) iVar5; + } + } + } + + mUnk_128.vfunc_34(); + + if (GET_FLAG(mFlags, ActorFlag_Alive) && mUnk_48 <= 0) { + return; + } + + // unk32 puVar11[0xF]; + + if (mUnk_268 != NULL) { + VecFx32 a; + UnkStruct_ov000_0207de98 b; + VecFx32 *aPtr = &a; + // VecFx32 *aPtr = (VecFx32 *) &puVar11[0xD]; + + VecFx32_Init(0x4CD, 0, 0, aPtr); + + func_01ff9638(aPtr, mAngle); + VecFx32_Add(aPtr, &mPos, aPtr); + + VecFx32_Copy(aPtr, &b.vec); + + // puVar11[0xB] = 0xF33; + // puVar11[0xC] = 0x1000; + b.param1 = 0xF33; + b.param2 = 0x1000; + + data_027e09c0->func_ov000_0207de98(mRef, &b, mUnk_38); + } else { + VecFx32 a; + UnkStruct_ov000_0207de98 b; + VecFx32 *aPtr = &a; + // VecFx32 *aPtr = (VecFx32 *) &puVar11[0x5]; + + *aPtr = mPos; + VecFx32_Copy(aPtr, &b.vec); + + // puVar11[3] = 0xA66; + // puVar11[4] = 0x1000; + b.param1 = 0xA66; + b.param2 = 0x1000; + + data_027e09c0->func_ov000_0207de98(mRef, &b, mUnk_38); + } +} + +void ActorUnkCANS::vfunc_24(void) { + if (data_027e09b8->HasAdventureFlag(AdventureFlag_VisitedIslandSanctuaryFirstTime)) { + this->vfunc_20(); + } +} + +void ActorUnkCANS::vfunc_2C(unk32 param1) { + if (!this->func_01fff5d0(param1, 0)) { + return; + } + + ((UnkSystem6_Derived2 *) &mUnk_B0)->func_01ffc6d4(mAngleStruct, &mPos); + + if (mUnk_268 != NULL) { + VecFx32 vec; + VecFx32_Init(0x4CD, 0, 0, &vec); + + func_01ff9638(&vec, mAngle); + VecFx32_Add(&vec, &mPos, &vec); + + this->func_ov017_020bf5c4(&vec, 0xD9A, 0x930 - 0x1F, 0x1F, mAngle); + } else { + this->func_ov017_020bf5c4(&mPos, 0x800, 0x555, 0x1F, mAngle); + } +} + +void ActorUnkCANS::func_ov063_02158424(void) { + mUnk_274 = 0; + if (mState == 6) { + mUnk_23A = 0x14; + mUnk_238 = 0; + } +} + +void ActorUnkCANS::func_ov063_02158448(unk32 param1) { + this->func_ov063_02158424(); + mState = param1; + CALL_PTMF(PTMF, data_ov063_02162f58[mState]); +} + +void ActorUnkCANS::func_ov063_02158490(void) { + mUnk_48 -= mUnk_200.mUnk_1E; + func_ov017_020bf050(this, &mUnk_200, 1); + this->func_ov063_02158448(2); +} + +void ActorUnkCANS::func_ov063_02158b0c(void) { + mUnk_268 = NULL; + ((u16 *) mUnk_38)[4] = 1; + mUnk_34 = &data_ov063_02162e90; + mUnk_30 = &data_ov063_02162e90; +} + +void ActorUnkCANS::func_ov063_02158b34(void) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0); +} + +void ActorUnkCANS::func_ov063_02158b98(void) { + if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0x11000) || + mUnk_128.vfunc_28()->func_02015080(0x21000)) { + data_027e09a8->func_ov000_02071b30(0x985F, &mPos, 0); + } + + if ((mUnk_46 & 0x3C) != 0) { + unk32 iVar5 = (unk16) ((mUnk_26C * 0x4000 + mUnk_276) - (unk16) func_01ffbbe0(mUnk_23C.mUnk_08.x, mUnk_23C.mUnk_08.z)); + iVar5 = ABS(iVar5); + + if (DEG_TO_ANG(90) < iVar5) { + mUnk_276 *= -1; + } + } + + func_01ff916c(&mUnk_270, mUnk_276 * 0xCD, 0xCD); + u16 angle = (fx16) (fx32) (mUnk_26C + 0x4000); + mVel.x = MUL_FX32(SIN(angle), mUnk_270); + mVel.z = MUL_FX32(COS(angle), mUnk_270); + + if (this->func_ov063_0215a514() != 0) { + this->func_ov063_02158448(8); + return; + } + + if (this->func_ov063_02159f3c(0x3000) != 0) { + this->func_ov063_02158448(1); + } +} + +void ActorUnkCANS::func_ov063_02158d40(void) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1800, 0x19A, 0); + mUnk_23A = 0; + mUnk_238 = 0; +} + +void ActorUnkCANS::func_ov063_02158db0(void) { + if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xD000) || + mUnk_128.vfunc_28()->func_02015080(0x19000) || mUnk_128.vfunc_28()->func_02015080(0x25000)) { + data_027e09a8->func_ov000_02071b30(0x985F, &mPos, 0); + } + + s16 var; + s16 *varPtr = &var; + func_ov000_020986b4(varPtr, this, 0); + + unk32 val = (unk16) ((mUnk_26C * 0x4000 + mUnk_276) - *varPtr); + val = ABS(val); + if (DEG_TO_ANG(90) < val) { + mUnk_276 *= -1; + } + + fx32 ret1 = func_01ffb428(mUnk_270 + 0x66, 0xCD); + u32 threshold = (u16) (mUnk_270 / 2) * ((u32) ret1 << 0x4 >> 0x10) + 0x4CD; + + VecFx32 vec = {mPos.x, mPos.y, mPos.z}; + + vec.x = MUL_FX32(SIN((u16) mUnk_26C), ret1); + vec.z = MUL_FX32(COS((u16) mUnk_26C), mPos.z); + + unk32 param2 = func_01ff9a5c(data_027e0ce0->func_01fff148(0), &mPos, &vec) < threshold ? 0 : mUnk_276 * 0x3AE; + + func_01ff916c(&mUnk_270, param2, 0xCD); + + s16 iVar5b = mUnk_26C + 0x4000; + fx32 sin_val = SIN((u16) iVar5b); + fx32 cos_val = COS((u16) iVar5b); + mVel.x = MUL_FX32(sin_val, mUnk_270); + mVel.z = MUL_FX32(cos_val, mUnk_270); + + if (this->func_ov063_0215a514()) { + this->func_ov063_02158448(8); + return; + } + + if (!this->func_ov063_02159f3c(0x4000)) { + this->func_ov063_02158448(0); + return; + } + + if (!this->func_ov063_0215a0f0()) { + return; + } + + if (this->func_ov063_0215a474()) { + this->func_ov063_02158448(6); + return; + } + + this->func_ov063_02158448(3); +} + +void ActorUnkCANS::func_ov063_021590c8(void) { + func_ov017_020bf634(this, (unk16 *) &mUnk_200.mUnk_10, this->func_ov063_0215a5bc(), this->func_ov063_0215a5d8()); + ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); +} + +void ActorUnkCANS::func_ov063_02159100(void) { + func_ov017_020bf688(this); + + if (!GET_FLAG(this->mFlags, 5)) { + return; + } + + if (mUnk_48 <= 0) { + if (mUnk_268 != NULL) { + mUnk_268->func_ov000_020984d0(); + } + this->vfunc_54(0); + return; + } + + u16 *tmpArr = (u16 *) &mUnk_22C; + if (tmpArr[0] < tmpArr[1]) { + this->func_ov063_02158448(4); + return; + } + + if (this->func_ov063_0215a514() != 0) { + this->func_ov063_02158448(8); + return; + } + + if (mAngle != mUnk_26C) { + mState = 8; + return; + } + + if (mUnk_268 == NULL) { + this->func_ov063_02158448(7); + return; + } + + if (this->func_ov063_02159f3c(0x3000)) { + this->func_ov063_02158448(1); + return; + } + + this->func_ov063_02158448(0); +} + +void ActorUnkCANS::func_ov063_021591f4(void) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0); +} + +void ActorUnkCANS::func_ov063_02159258(void) { + if (mUnk_128.vfunc_28()->func_02015080(0x6000) || mUnk_128.vfunc_28()->func_02015080(0xF000)) { + data_027e09a8->func_ov000_02071b30(0x9860, &mPos, 0); + } + + if (mUnk_128.vfunc_28()->func_02015080(0x25000)) { + data_027e09a8->func_ov000_02071b30(0x9861, &mPos, 0); + } + + func_01ff916c(&mUnk_270, 0, 0xCD); + + unk32 val = mUnk_270; + fx16 angle = mUnk_26C + DEG_TO_ANG(90); + fx32 sin_val = SIN((u16) angle); + fx32 cos_val = COS((u16) angle); + mVel.x = MUL_FX32(sin_val, val); + mVel.z = MUL_FX32(cos_val, val); + + if (!mUnk_270 && this->func_ov063_0215a514()) { + this->func_ov063_02158448(8); + } else if (!mUnk_270 && mUnk_238 >= mUnk_23A && this->func_ov063_0215a474()) { + this->func_ov063_02158448(6); + } else if (!this->func_ov063_0215a2c0()) { + this->func_ov063_02158448(1); + } +} + +void ActorUnkCANS::func_ov063_02159408(void) { + func_ov000_02099450(this, &mUnk_224, &data_027e07d4, 0, data_ov000_020aecf0[0]); + mUnk_128.vfunc_1C(data_ov063_02163068, 0, 0x19A, 0); + ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); +} + +void ActorUnkCANS::func_ov063_02159494(void) { + func_ov000_020994a0(this); + + if (GET_FLAG(mFlags, ActorFlag_5) == 0) { + return; + } + + if (this->func_ov063_0215a514()) { + this->func_ov063_02158448(8); + return; + } + + if (mAngle != mUnk_26C) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0); + mState = 8; + return; + } + + if (mUnk_268 == NULL) { + this->func_ov063_02158448(7); + } else { + if (this->func_ov063_02159f3c(0x3000)) { + this->func_ov063_02158448(1); + } else { + + this->func_ov063_02158448(0); + } + } +} + +void ActorUnkCANS::func_ov063_021595a4(void) { + mVel.x = 0; + mVel.z = 0; + mUnk_270 = 0; + mUnk_128.vfunc_1C(data_ov063_021630b0, 0x1000, 0x400, 0); + ((Actor_9C *) &mUnk_200)->func_ov000_02097bec(); +} + +void ActorUnkCANS::func_ov063_02159618(void) { + if (!mUnk_128.vfunc_28()->func_01ff8fa8()) { + return; + } + + if (mAngle != mUnk_26C) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0); + mState = 8; + return; + } + + if (this->func_ov063_0215a474()) { + this->func_ov063_02158448(6); + } else if (this->func_ov063_02159f3c(0x3000)) { + this->func_ov063_02158448(1); + } else { + this->func_ov063_02158448(0); + } +} + +void ActorUnkCANS::func_ov063_02159714(void) { + mVel.x = 0; + mVel.z = 0; + mUnk_270 = 0; + mUnk_128.vfunc_1C(data_ov063_02163098, 0x1000, 0x19A, 0); +} + +void ActorUnkCANS::func_ov063_02159784(void) { + if (mUnk_128.vfunc_28()->func_02015080(0x7000)) { + data_027e09a8->func_ov000_02071b30(0x9862, &mPos, 0); + } + + if (0x7000 <= *(int *) (mUnk_128.vfunc_28() + 8) && *(int *) (mUnk_128.vfunc_28() + 8) <= 0xF000) { +#if IS_JP + fx32 yDiff = data_027e0ce0->func_01fff148(0)->y - mPos.y; + fx32 yDiffAbs = ABS(yDiff); + + if (yDiffAbs < FLOAT_TO_FX32(.5f)) +#endif + { + + Cylinder vec1; + vec1.Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(1.2f)); + + this->func_ov063_0215a5a0(&vec1.pos); + + VecFx32 vec2 = *data_027e0ce0->func_01fff148(0); + func_01ffb714(&vec2, &mPos, &vec2); + + data_027e09c0->func_ov000_0207e458(2, 0, &vec1.pos, 3, &vec2, 0); + } + } + + if (!mUnk_128.vfunc_28()->func_01ff8fa8()) { + return; + } + + if (this->func_ov063_0215a514()) { + this->func_ov063_02158448(8); + } else if (this->func_ov063_0215a2c0()) { + this->func_ov063_02158448(3); + } else { + this->func_ov063_02158448(1); + } +} + +void ActorUnkCANS::func_ov063_021598fc(void) { + mUnk_128.vfunc_1C(data_ov063_02163080, 0x1333, 0x19A, 0); + mUnk_52 = gRandom.Next32(0x15) + 10; + mUnk_50 = 0; + mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1; +} + +void ActorUnkCANS::func_ov063_021599e4(void) { + if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xA000) || + mUnk_128.vfunc_28()->func_02015080(0x13000) || mUnk_128.vfunc_28()->func_02015080(0x1C000)) { + data_027e09a8->func_ov000_02071b30(0x9864, &mPos, 0); + } + + if (mUnk_46 & 0x3C) { + unk16 ret1 = func_01ffbbe0(mUnk_23C.mUnk_08.x, mUnk_23C.mUnk_08.z); + unk32 iVar9 = ABS((unk16) ((mUnk_26C * 0x4000 + mUnk_276) - ret1)); + + if (DEG_TO_ANG(90) < iVar9) { + mUnk_50 = 0; + mUnk_276 *= -1; + mUnk_52 = 0x1E; + } + } + + unk32 flag; + if (mUnk_50 < mUnk_52) { + mUnk_50++; + flag = 0; + } else { + flag = 1; + } + + if (flag) { + mUnk_276 *= -1; + mUnk_52 = gRandom.Next32(0x15) + 10; + mUnk_50 = 0; + } + + func_01ff916c(&mUnk_270, mUnk_276 * 0x19A, 0xCD); + fx16 angle1 = mUnk_26C - FLOAT_TO_FX32(8.f); + fx16 angle2 = mUnk_26C + FLOAT_TO_FX32(4.f); + u64 sin_val1 = SIN((u16) angle1); + s64 cos_val1 = COS((u16) angle1); + s64 sin_val2 = SIN((u16) angle2); + s64 cos_val2 = COS((u16) angle2); + mVel.x = MUL_FX32(sin_val1, FLOAT_TO_FX32(0.02f)) + MUL_FX32(sin_val2, mUnk_270); // *0.02f <=> / 50 + mVel.z = MUL_FX32(cos_val1, FLOAT_TO_FX32(0.02f)) + MUL_FX32(cos_val2, mUnk_270); + + if (this->func_ov063_0215a514()) { + this->func_ov063_02158448(8); + } +} + +void ActorUnkCANS::func_ov063_02159ca8(void) { + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0); + mVel.x = 0; + mVel.z = 0; + mUnk_270 = 0; + volatile u16 var; + func_ov000_020986b4((s16 *) &var, this, 0); + + var = (s16) var - mUnk_26C; + if ((s16) var > 0) { + mAngle++; + } else { + mAngle--; + } + + mUnk_26C += -FLOAT_TO_FX32(8.f); +} + +void ActorUnkCANS::func_ov063_02159d68(void) { + if (this->func_ov063_0215a514()) { + mUnk_26C += -FLOAT_TO_FX32(8.f); + } + + if (!func_01ff930c(&mAngle, mUnk_26C, 0x71C)) { + return; + } + + VecFx32_Init(0, 0, 0, &mUnk_23C.mUnk_08); + + if (mUnk_268 != NULL) { + if (this->func_ov063_0215a474()) { + this->func_ov063_02158448(3); + return; + } + this->func_ov063_02158448(1); + } else { + this->func_ov063_02158448(7); + } +} + +void ActorUnkCANS::func_ov063_02159dfc(void) { + mVel.x = 0; + mVel.z = 0; + mUnk_270 = 0; + mUnk_200.func_ov000_02097bec(); +} + +// Empty (matched) void ActorUnkCANS::func_ov063_02159e1c(void) {} -void ActorUnkCANS::func_ov063_02159e20(void) {} -void ActorUnkCANS::func_ov063_02159ec0(void) {} -void ActorUnkCANS::func_ov063_02159f3c(void) {} -void ActorUnkCANS::func_ov063_0215a0f0(void) {} -void ActorUnkCANS::func_ov063_0215a2c0(void) {} -void ActorUnkCANS::func_ov063_0215a428(void) {} -void ActorUnkCANS::func_ov063_0215a474(void) {} -void ActorUnkCANS::func_ov063_0215a514(void) {} -void ActorUnkCANS::func_ov063_0215a56c(void) {} -void ActorUnkCANS::func_ov063_0215a5a0(void) {} -void ActorUnkCANS::func_ov063_0215a5bc(void) {} -void ActorUnkCANS::func_ov063_0215a5d8(void) {} -void ActorUnkCANS::func_ov063_0215a5f8(void) {} -void ActorUnkCANS::func_ov063_0215a678(void) {} -void ActorUnkCANS::func_ov063_0215a7d4(void) {} -void ActorUnkCANS::func_ov063_0215a834(void) {} -void ActorUnkCANS::func_ov063_0215a880(void) {} -void ActorUnkCANS::func_ov063_0215a94c(void) {} -void ActorUnkCANS::func_ov063_0215a970(void) {} -void ActorUnkCANS::func_ov063_0215a99c(void) {} -void ActorUnkCANS::func_ov063_0215a9b8(void) {} -void ActorUnkCANS::func_ov063_0215a9d4(void) {} -void ActorUnkCANS::func_ov063_0215aa58(void) {} + +void ActorUnkCANS::func_ov063_02159e20(void) { + func_ov000_02098f34(this, (unk16 *) &mUnk_200.mUnk_10); + + vfunc_40(); + + mUnk_2C = 0; + *(s16 *) &mUnk_44 &= 0xFFDF; + + mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0); + + mUnk_200.func_ov000_02097bec(); + + mUnk_38->mUnk_08 = 3; +} + +void ActorUnkCANS::func_ov063_02159ec0(void) { + this->vfunc_44(); + + if (!GET_FLAG(mFlags, ActorFlag_5)) { + return; + } + + mUnk_38->mUnk_08 = 1; + mUnk_2C = data_ov000_020aecf8[0]; + mAngle = mUnk_26C; + + func_ov000_02099a0c(&mUnk_224); + + mUnk_200.mUnk_10 = 0; + mUnk_200.mUnk_14 = 0; + mUnk_200.mUnk_18 = 0; + + this->func_ov063_02158448(4); + + *(s16 *) &mUnk_44 |= 0x20; +} + +// return bool ? +unk32 ActorUnkCANS::func_ov063_02159f3c(unk32 param1) { + s16 var; + func_ov000_020986b4((s16 *) &var, this, 0); + + s32 val = ABS((s16) (var - mUnk_26C)); + if (val >= DEG_TO_ANG(90)) { + return false; + } + + fx32 factor = FLOAT_TO_FX32(10.f); + + fx16 angle1 = mUnk_26C - FLOAT_TO_FX32(4.f); + s32 sin_val1 = MUL_FX32(SIN((u16) angle1), factor); + s32 cos_val1 = MUL_FX32(COS((u16) angle1), factor); + fx16 angle2 = mUnk_26C + FLOAT_TO_FX32(4.f); + s32 sin_val2 = MUL_FX32(SIN((u16) angle2), factor); + s32 cos_val2 = MUL_FX32(COS((u16) angle2), factor); + + VecFx32 vec1; // = {mPos.x, mPos.y, mPos.z}; + // VecFx32_Copy(&mPos, &vec1); + // VecFx32_Init(mPos.x + MUL_FX32(sin_val1, factor), mPos.y, mPos.z + + // MUL_FX32(cos_val1, factor), &vec1); vec1.y = mPos.y; + vec1.y = mPos.y; + vec1.x = mPos.x; + vec1.z = mPos.z; + vec1.x += (sin_val1); + vec1.z += (cos_val1); + + VecFx32 vec2; // = {*(volatile fx32 *) &mPos.x, *(volatile fx32 *) &mPos.y, *(volatile fx32 *) &mPos.z}; + // VecFx32_Copy(&mPos, &vec2); + // VecFx32_Init(mPos.x + MUL_FX32(sin_val2, factor), mPos.y, mPos.z + MUL_FX32(cos_val2, factor), &vec2); + // vec2.y = mPos.y; + vec2.x = mPos.x; + vec2.y = mPos.y; + vec2.z = mPos.z; + vec2.x += (sin_val2); + vec2.z += (cos_val2); + + return func_01ff9a5c(data_027e0ce0->func_01fff148(0), &vec1, &vec2) < param1; +} + +// return bool ? +unk32 ActorUnkCANS::func_ov063_0215a0f0(void) { + s16 var1; + func_ov000_020986b4((s16 *) &var1, this, 0); + + s32 val1 = ABS((s16) (var1 - mUnk_26C)); + if (DEG_TO_ANG(90) <= val1) { + return false; + } + + s16 ret1 = func_01ffbbe0(mUnk_23C.mUnk_08.x, mUnk_23C.mUnk_08.z); + s16 var2; + func_ov000_020986b4((s16 *) &var2, this, 0); + s32 val2 = (s16) (var2 - ret1); + + if (mUnk_46 & 0x3C) { + val2 = ABS(val2); + if (DEG_TO_ANG(90) < val2) { + return true; + } + } + + unk32 val3; + if (mVel.x != 0 || mVel.y != 0 || mVel.z != 0) { + s16 var4; + func_ov000_020986b4((s16 *) &var4, this, 0); + s16 val4_0 = var4; + unk32 ret2 = func_01ffbbe0(mVel.x, mVel.z); + s32 val4 = ABS((s16) ((s16) ret2 - val4_0)); + if (val4 < DEG_TO_ANG(90)) { + return false; + } + } + + fx16 angle = mUnk_26C; + s32 sin_val = SIN((u16) angle); + s32 cos_val = COS((u16) angle); + s16 sin_mul = MUL_FX32(sin_val, 0x4000); + s16 cos_mul = MUL_FX32(cos_val, 0x4000); + VecFx32 vec; //= {mPos.x, mPos.y, mPos.z}; + vec.y = mPos.y; + vec.x = mPos.x + sin_mul + sin_val; + vec.z = mPos.z + cos_mul + cos_val; + + return func_01ff9a5c(data_027e0ce0->func_01fff148(0), &mPos, &vec) < 0x4CD; +} + +unk32 ActorUnkCANS::func_ov063_0215a2c0(void) { + s16 var1; + func_ov000_020986b4((s16 *) &var1, this, 0); + unk32 val1 = ABS((s16) (var1 - mUnk_26C)); + + if (DEG_TO_ANG(90) <= val1) { + return 0; + } + + s16 ret1 = func_01ffbbe0(mUnk_23C.mUnk_08.x, mUnk_23C.mUnk_08.z); + s16 var2; + func_ov000_020986b4((s16 *) &var2, this, 0); + s16 val2 = (var2 - ret1); + + if (mUnk_46 & 0x3C) { + unk32 val3 = ABS(val2); + if (DEG_TO_ANG(90) < val3) { + return 1; + } + } + + VecFx32 stackVec; + + stackVec.y = mPos.y; + + s16 angleVal = mUnk_26C; + u32 sin_val = (fx16) SIN(angleVal); + u32 cos_val = (fx16) COS(angleVal); + + stackVec.x = mPos.x + (((sin_val * 0x4000 + 0x800) >> 0xC) | + (((((u32) (s32) (s16) SIN(angleVal)) >> 0x12) + (0xFFFFF7FF < sin_val)) * 0x100000)); + stackVec.z = mPos.z + (((cos_val * 0x4000 + 0x800) >> 0xC) | + (((((u32) (s32) (s16) COS(angleVal)) >> 0x12) + (0xFFFFF7FF < cos_val)) * 0x100000)); + + VecFx32 *otherVec = data_027e0ce0->func_01fff148(0); + + // Copy otherVec on the stack (JP only) + VecFx32 otherVecStack; + otherVecStack = *otherVec; + otherVecStack.y = mPos.y; + + VecFx32 *otherVecPtr = IS_JP ? &otherVecStack : otherVec; + + return func_01ff9a5c(otherVecPtr, &mPos, &stackVec) < 0xB33; +} + +void ActorUnkCANS::func_ov063_0215a428(void) { + // A not very clean code to access 22C and 22E matching the asm + u16 *values = (u16 *) &mUnk_22C; + if (values[0] < values[1]) { + this->func_ov063_02158448(4); + } else if (mUnk_268 == NULL) { + this->func_ov063_02158448(7); + } else { + this->func_ov063_02158448(0); + } +} + +// return bool ? +unk32 ActorUnkCANS::func_ov063_0215a474(void) { + s16 var; + VecFx32 stackVec; + + func_ov000_020986b4((s16 *) &var, this, 0); + + s32 val = ABS((s16) (var - mAngle)); + if (val >= DEG_TO_ANG(90)) { + return false; + } + + this->func_ov063_0215a5a0(&stackVec); + + VecFx32 *otherVec = data_027e0ce0->func_01fff148(0); + +#if IS_JP + unk32 ret; + if (func_ov000_0205c384(otherVec, &mPos)) { + otherVec = data_027e0ce0->func_01fff148(0); + ret = func_01ff9258(otherVec->x - stackVec.x, otherVec->z - stackVec.z) < 0x1266; + } else { + ret = 0; + } + return ret; +#else + return func_01ff9258(otherVec->x - stackVec.x, otherVec->z - stackVec.z) < 0x1266; +#endif +} + +unk32 ActorUnkCANS::func_ov063_0215a514(void) { + s16 var; + + func_ov000_020986b4((s16 *) &var, this, 0); + + var = (volatile s16) var - mUnk_26C; + return 0x4AAB < ABS(var); +} + +// return bool ? +unk32 ActorUnkCANS::func_ov063_0215a56c(unk32 param1) { + if (mUnk_268 == NULL) { + return false; + } + + return DEG_TO_ANG(90) <= ABS((s16) (param1 - mAngle)); +} + +void ActorUnkCANS::func_ov063_0215a5a0(VecFx32 *param1) { + // Does not match instruction order + VecFx32 vec; + vec.x = ((VecFx32 *) &mUnk_250)->x; + vec.y = ((VecFx32 *) &mUnk_250)->y; + vec.z = ((VecFx32 *) &mUnk_250)->z; + param1->z = vec.z; + param1->x = vec.x; + param1->y = vec.y; +} + +unk32 ActorUnkCANS::func_ov063_0215a5bc(void) { + if (mUnk_268 != NULL) { + return 10; + } + return data_ov000_020aecf4[0]; +} + +unk32 ActorUnkCANS::func_ov063_0215a5d8(void) { + if (mUnk_268 != NULL) { + return 0x385; + } + return data_ov000_020aecfc[0]; +} + +void ActorUnkCANS::func_ov063_0215a678(ActorUnkCANS *actor, UnkStruct_func_ov063_0215a678 *param2) { + ModelRender *modelRender = param2->mUnk_04; + u8 var1; + if (actor->mUnk_268 == NULL) { + var1 = 0; + } else { + var1 = 0x1F; + } + func_0200eab0(modelRender->mpModel, actor->mUnk_B0.mUnk_6C, var1); + + unk32 var2 = param2->mUnk_08 & 0x10 ? param2->mUnk_AE : -1; + if (var2 == actor->mUnk_B0.mUnk_70) { + if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] == 2) { + param2->mUnk_92 = 3; + ((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 3; + return; + } + + if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] != 3) { + return; + } + + Mat4x3p matx1; + Mat4x3p matx2; + G3d_GetCurrentMtx(&matx1, NULL); + func_01ffad5c(&matx1, &data_027e0964, &matx2); + + VecFx32 vec; + // VecFx32_Copy(&matx2.wColumn, &actor->mUnk_250); + vec.x = matx2.wColumn.x; + vec.z = matx2.wColumn.z; + vec.y = matx2.wColumn.y; + actor->mUnk_250.x = vec.x; + actor->mUnk_250.y = vec.y; + actor->mUnk_250.z = vec.z; + + param2->mUnk_92 = 2; + ((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 2; + return; + } + + unk32 var3 = param2->mUnk_08 & 0x10 ? param2->mUnk_AE : -1; + if (var3 == actor->mUnk_B0.mUnk_74) { + if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] == 2) { + param2->mUnk_92 = 3; + ((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 3; + return; + } + + if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] != 3) { + return; + } + + Mat4x3p matx3; + Mat4x3p matx4; + G3d_GetCurrentMtx(&matx3, NULL); + func_01ffad5c(&matx3, &data_027e0964, &matx4); + + VecFx32 vec; + vec.x = matx4.wColumn.x; + vec.z = matx4.wColumn.z; + vec.y = matx4.wColumn.y; + actor->mUnk_25C = vec.x; + actor->mUnk_260 = vec.y; + actor->mUnk_264 = vec.z; + + param2->mUnk_92 = 2; + ((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 2; + } +} ActorUnkCANS::~ActorUnkCANS() {} ActorProfileUnkCANS::~ActorProfileUnkCANS() {} diff --git a/src/063_Shrine/Actor/ActorUnkCASE.cpp b/src/063_Shrine/Actor/ActorUnkCASE.cpp index 5f84d1f3..58dabde7 100644 --- a/src/063_Shrine/Actor/ActorUnkCASE.cpp +++ b/src/063_Shrine/Actor/ActorUnkCASE.cpp @@ -1,7 +1,9 @@ //! TODO: This file was generated automatically and might contain errors #include "Actor/ActorUnkCASE.hpp" +#include "Actor/ActorRef.hpp" #include "System/SysNew.hpp" +#include "nitro/fx.h" DECL_PROFILE(ActorProfileUnkCASE); @@ -21,7 +23,7 @@ void ActorUnkCASE::func_ov063_0215ac4c(void) {} void ActorUnkCASE::func_ov063_0215ac68(void) {} void ActorUnkCASE::func_ov063_0215ac8c(void) {} void ActorUnkCASE::func_ov063_0215acc8(void) {} -void ActorUnkCASE::func_ov063_0215acec(void) {} +void ActorUnkCASE::func_ov063_0215acec(ActorRef *ref1, ActorRef ref2) {}; void ActorUnkCASE::func_ov063_0215ae6c(void) {} void ActorUnkCASE::func_ov063_0215ae80(void) {} void ActorUnkCASE::func_ov063_0215ae94(void) {} @@ -41,7 +43,7 @@ void ActorUnkCASE::func_ov063_0215b2c4(void) {} void ActorUnkCASE::func_ov063_0215b2c8(void) {} void ActorUnkCASE::func_ov063_0215b2ec(void) {} void ActorUnkCASE::func_ov063_0215b624(void) {} -void ActorUnkCASE::func_ov063_0215b6c8(void) {} +void ActorUnkCASE::func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle) {} void ActorUnkCASE::func_ov063_0215b724(void) {} void ActorUnkCASE::func_ov063_0215b7cc(void) {} void ActorUnkCASE::func_ov063_0215b814(void) {}