diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 198208cc..6a6116a4 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1381,7 +1381,7 @@ _ZN19func_ov000_0207b628D1Ev kind:function(arm,size=0x14) addr:0x0207b628 _ZN19func_ov000_0207b63cD0Ev kind:function(arm,size=0x1c) addr:0x0207b63c _ZN19func_ov000_0207b658D1Ev kind:function(arm,size=0x30) addr:0x0207b658 _ZN19func_ov000_0207b688D0Ev kind:function(arm,size=0x38) addr:0x0207b688 -_ZN24UnkStruct_ov031_Items_01D1Ev kind:function(arm,size=0x30) addr:0x0207b6c0 +_ZN24UnkStruct_ov031_Items_01D2Ev kind:function(arm,size=0x30) addr:0x0207b6c0 func_ov000_0207b6f0 kind:function(arm,size=0x1c) addr:0x0207b6f0 func_ov000_0207b70c kind:function(arm,size=0x10) addr:0x0207b70c _ZN24UnkStruct_ov031_Items_018vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207b71c @@ -1458,7 +1458,7 @@ _ZN18UnkStruct_027e09c019func_ov000_0207da40Ev kind:function(arm,size=0x20c) add func_ov000_0207dc4c kind:function(arm,size=0x18) addr:0x0207dc4c func_ov000_0207dc64 kind:function(arm,size=0x24) addr:0x0207dc64 func_ov000_0207dc88 kind:function(arm,size=0x210) addr:0x0207dc88 -func_ov000_0207de98 kind:function(arm,size=0xc0) addr:0x0207de98 +_ZN18UnkStruct_027e09c019func_ov000_0207de98E8ActorRefP24UnkStruct_ov000_0207de98P8Actor_38 kind:function(arm,size=0xc0) addr:0x0207de98 func_ov000_0207df58 kind:function(arm,size=0x30) addr:0x0207df58 _ZN5Actor19func_ov000_0207df88EP8Cylinderi kind:function(arm,size=0xd8) addr:0x0207df88 func_ov000_0207e060 kind:function(arm,size=0x68) addr:0x0207e060 @@ -1471,7 +1471,7 @@ func_ov000_0207e254 kind:function(arm,size=0x14) addr:0x0207e254 func_ov000_0207e268 kind:function(arm,size=0x2c) addr:0x0207e268 _ZN5Actor19func_ov000_0207e294EP8Cylinder kind:function(arm,size=0x118) addr:0x0207e294 func_ov000_0207e3ac kind:function(arm,size=0xac) addr:0x0207e3ac -func_ov000_0207e458 kind:function(arm,size=0x84) addr:0x0207e458 +_ZN18UnkStruct_027e09c019func_ov000_0207e458EiiP7VecFx32iS1_8ActorRef kind:function(arm,size=0x84) addr:0x0207e458 func_ov000_0207e4dc kind:function(arm,size=0x84) addr:0x0207e4dc func_ov000_0207e560 kind:function(arm,size=0x2c) addr:0x0207e560 _ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP24UnkStruct_ov031_Items_01 kind:function(arm,size=0xa4) addr:0x0207e58c @@ -1496,9 +1496,9 @@ _ZN19func_ov000_0207ed10D2Ev kind:function(arm,size=0x30) addr:0x0207ed10 func_ov000_0207ed40 kind:function(arm,size=0x44) addr:0x0207ed40 func_ov000_0207ed84 kind:function(arm,size=0x8) addr:0x0207ed84 func_ov000_0207ed8c kind:function(arm,size=0x20) addr:0x0207ed8c -_ZN17Actor_Derived1_94C2Ev kind:function(arm,size=0x20) addr:0x0207edac +_ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x0207edac func_ov000_0207edcc kind:function(arm,size=0x1c) addr:0x0207edcc -_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x0207ede8 +_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x0207ede8 _ZN19func_ov000_0207ee18D0Ev kind:function(arm,size=0x38) addr:0x0207ee18 _ZN19func_ov000_0207ee50D2Ev kind:function(arm,size=0x30) addr:0x0207ee50 func_ov000_0207ee80 kind:function(arm,size=0x4) addr:0x0207ee80 @@ -2277,10 +2277,10 @@ _ZN21ActorProfile_Derived1C2Ej kind:function(arm,size=0x30) addr:0x02097898 func_ov000_020978c8 kind:function(arm,size=0x14) addr:0x020978c8 _ZN21ActorProfile_Derived1C2EjS0_ kind:function(arm,size=0x30) addr:0x020978dc _ZN21ActorProfile_Derived1D2Ev kind:function(arm,size=0x38) addr:0x0209790c -func_ov000_02097944 kind:function(arm,size=0x8) addr:0x02097944 -func_ov000_0209794c kind:function(arm,size=0x20) addr:0x0209794c -func_ov000_0209796c kind:function(arm,size=0x2c) addr:0x0209796c -func_ov000_02097998 kind:function(arm,size=0x1c) addr:0x02097998 +_ZN21ActorProfile_Derived18vfunc_04Ev kind:function(arm,size=0x8) addr:0x02097944 +_ZN21ActorProfile_Derived18vfunc_10Ev kind:function(arm,size=0x20) addr:0x0209794c +_ZN21ActorProfile_Derived18vfunc_14Ev kind:function(arm,size=0x2c) addr:0x0209796c +_ZN21ActorProfile_Derived18vfunc_18Ev kind:function(arm,size=0x1c) addr:0x02097998 func_ov000_020979b4 kind:function(arm,size=0x30) addr:0x020979b4 func_ov000_020979e4 kind:function(arm,size=0x8) addr:0x020979e4 func_ov000_020979ec kind:function(arm,size=0x2c) addr:0x020979ec @@ -2308,7 +2308,7 @@ func_ov000_020981e0 kind:function(arm,size=0x64) addr:0x020981e0 func_ov000_02098244 kind:function(arm,size=0x64) addr:0x02098244 _ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x020982a8 func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0 -func_ov000_020982d8 kind:function(arm,size=0x80) addr:0x020982d8 +_ZN24UnkStruct_ov031_Items_008vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x80) addr:0x020982d8 _ZN19func_ov000_02098358D1Ev kind:function(arm,size=0x14) addr:0x02098358 _ZN19func_ov000_0209836cD0Ev kind:function(arm,size=0x1c) addr:0x0209836c _ZN5ActorC2Ev kind:function(arm,size=0xe8) addr:0x02098388 @@ -2342,12 +2342,12 @@ func_ov000_02098778 kind:function(arm,size=0x88) addr:0x02098778 _ZN5Actor19func_ov000_02098800Eb kind:function(arm,size=0x38) addr:0x02098800 _ZN5Actor19func_ov000_02098838Ev kind:function(arm,size=0x28) addr:0x02098838 func_ov000_02098860 kind:function(arm,size=0xb0) addr:0x02098860 -_ZN5Actor19func_ov000_02098910Eii kind:function(arm,size=0xd0) addr:0x02098910 +_ZN5Actor19func_ov000_02098910EP24UnkStruct_ov031_Items_00i kind:function(arm,size=0xd0) addr:0x02098910 _ZN5Actor19func_ov000_020989e0Ev kind:function(arm,size=0x38) addr:0x020989e0 func_ov000_02098a18 kind:function(arm,size=0x48) addr:0x02098a18 _ZN5Actor19func_ov000_02098a60Ei kind:function(arm,size=0x28) addr:0x02098a60 _ZN5Actor19func_ov000_02098a88Eii kind:function(arm,size=0x2c) addr:0x02098a88 -_ZN5Actor19func_ov000_02098ab4EbiiP7VecFx32 kind:function(arm,size=0x74) addr:0x02098ab4 +_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 func_ov000_02098d10 kind:function(arm,size=0x6c) addr:0x02098d10 diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index 84694e69..dd6b179d 100644 --- a/config/eur/arm9/overlays/ov017/symbols.txt +++ b/config/eur/arm9/overlays/ov017/symbols.txt @@ -78,7 +78,7 @@ func_ov017_020bf99c kind:function(arm,size=0x2c) addr:0x020bf99c _ZN5Actor19func_ov017_020bf9c8EPS_ kind:function(arm,size=0x88) addr:0x020bf9c8 func_ov017_020bfa50 kind:function(arm,size=0x84) addr:0x020bfa50 func_ov017_020bfad4 kind:function(arm,size=0x44) addr:0x020bfad4 -func_ov017_020bfb18 kind:function(arm,size=0x238) addr:0x020bfb18 +_ZN5Actor19func_ov017_020bfb18EP8Actor_9C kind:function(arm,size=0x238) addr:0x020bfb18 _ZN5Actor8vfunc_14Ev kind:function(arm,size=0x4c) addr:0x020bfd50 func_ov017_020bfd9c kind:function(arm,size=0x130) addr:0x020bfd9c _ZN5Actor8vfunc_48Ev kind:function(arm,size=0x80) addr:0x020bfecc diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index 6bb69498..1f3ef488 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -149,7 +149,7 @@ src/031_Land/Actor/ActorUnkFLEN.cpp: .data start:0x021149b8 end:0x02114a38 .bss start:0x02116d38 end:0x02116d84 -src/031_Land/Actor/ActorUnkRLST.cpp: +src/031_Land/Actor/ActorRollingStone.cpp: .text start:0x020f82e0 end:0x020f9dcc .init start:0x02111800 end:0x02111850 .ctor start:0x021127f8 end:0x021127fc diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index 9c56e350..d1883d9a 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -3503,7 +3503,7 @@ from:0x020f8654 kind:load to:0x02114b44 add:0x8 module:overlay(31) from:0x020f8658 kind:load to:0x02116d94 module:overlay(31) from:0x020f865c kind:load to:0x020b1960 add:0x8 module:overlay(0) from:0x020f8660 kind:load to:0x02114a38 add:0x8 module:overlay(31) -from:0x020f8664 kind:load to:0x02114a5c module:overlay(31) +from:0x020f8664 kind:load to:0x02114a54 module:overlay(31) add:0x8 from:0x020f8668 kind:load to:0x027e0130 module:dtcm from:0x020f866c kind:load to:0x020a02d4 module:overlay(0) from:0x020f8670 kind:load to:0x020e5704 module:overlay(31) @@ -3553,7 +3553,7 @@ from:0x020f8d58 kind:arm_call to:0x02098ab4 module:overlay(0) from:0x020f8d88 kind:arm_call to:0x0207e58c module:overlay(0) from:0x020f8dc4 kind:arm_call to:0x0207de98 module:overlay(0) from:0x020f8dcc kind:arm_call to:0x0207bffc module:overlay(0) -from:0x020f8dd8 kind:load to:0x02114a5c module:overlay(31) +from:0x020f8dd8 kind:load to:0x02114a54 module:overlay(31) add:0x8 from:0x020f8ddc kind:load to:0x0203e964 module:main from:0x020f8de0 kind:load to:0x027e09c0 module:dtcm from:0x020f8e10 kind:arm_call to:0x020989e0 module:overlay(0) @@ -3618,7 +3618,7 @@ from:0x020f978c kind:arm_call to:0x020d69d8 module:overlay(24) from:0x020f979c kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f97a4 kind:arm_call to:0x020f98e4 module:overlay(31) from:0x020f97ac kind:arm_call to:0x0207bffc module:overlay(0) -from:0x020f97b8 kind:load to:0x02114a5c module:overlay(31) +from:0x020f97b8 kind:load to:0x02114a54 module:overlay(31) add:0x8 from:0x020f97bc kind:load to:0x0203e964 module:main from:0x020f97c0 kind:load to:0x027e09c0 module:dtcm from:0x020f9860 kind:arm_call_thumb to:0x01ffa1bc module:itcm diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index e4d70241..c09436a9 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -1107,54 +1107,54 @@ _ZN12ActorUnkFLEN19func_ov031_020f81f8Ev kind:function(arm,size=0xa4) addr:0x020 _ZN12ActorUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f829c _ZN12ActorUnkFLEND0Ev kind:function(arm,size=0x1c) addr:0x020f82b0 _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f82cc -_ZN19ActorProfileUnkRLST10GetProfileEv kind:function(arm,size=0xc) addr:0x020f82e0 -_ZN19ActorProfileUnkRLST6CreateEv kind:function(arm,size=0x24) addr:0x020f82ec -_ZN19ActorProfileUnkRLSTC1Ev kind:function(arm,size=0x44) addr:0x020f8310 -_ZN12ActorUnkRLST19func_ov031_020f8354Ev kind:function(arm,size=0x90) addr:0x020f8354 -_ZN12ActorUnkRLST19func_ov031_020f83e4Ev kind:function(arm,size=0xb8) addr:0x020f83e4 -_ZN12ActorUnkRLST19func_ov031_020f849cEv kind:function(arm,size=0x44) addr:0x020f849c -_ZN12ActorUnkRLSTC1Ev kind:function(arm,size=0x194) addr:0x020f84e0 -_ZN12ActorUnkRLST19func_ov031_020f8674Ev kind:function(arm,size=0x14) addr:0x020f8674 -_ZN12ActorUnkRLST19func_ov031_020f8688Ev kind:function(arm,size=0x14) addr:0x020f8688 -_ZN12ActorUnkRLST19func_ov031_020f869cEv kind:function(arm,size=0xf0) addr:0x020f869c -_ZN12ActorUnkRLST19func_ov031_020f878cEv kind:function(arm,size=0x98) addr:0x020f878c -_ZN12ActorUnkRLST19func_ov031_020f8824Ev kind:function(arm,size=0x5c) addr:0x020f8824 -_ZN12ActorUnkRLST19func_ov031_020f8880Ev kind:function(arm,size=0xc8) addr:0x020f8880 -_ZN12ActorUnkRLST19func_ov031_020f8948Ev kind:function(arm,size=0xac) addr:0x020f8948 -_ZN12ActorUnkRLST19func_ov031_020f89f4Ev kind:function(arm,size=0x10) addr:0x020f89f4 -_ZN12ActorUnkRLST19func_ov031_020f8a04Ev kind:function(arm,size=0x28) addr:0x020f8a04 -_ZN12ActorUnkRLST19func_ov031_020f8a2cEv kind:function(arm,size=0xc) addr:0x020f8a2c -_ZN12ActorUnkRLST19func_ov031_020f8a38Ev kind:function(arm,size=0x4) addr:0x020f8a38 -_ZN12ActorUnkRLST19func_ov031_020f8a3cEv kind:function(arm,size=0x1c) addr:0x020f8a3c -_ZN12ActorUnkRLST19func_ov031_020f8a58Ev kind:function(arm,size=0x100) addr:0x020f8a58 -_ZN12ActorUnkRLST19func_ov031_020f8b58Ev kind:function(arm,size=0x6c) addr:0x020f8b58 -_ZN12ActorUnkRLST19func_ov031_020f8bc4Ev kind:function(arm,size=0x224) addr:0x020f8bc4 -_ZN12ActorUnkRLST19func_ov031_020f8de8Ev kind:function(arm,size=0xec) addr:0x020f8de8 -_ZN12ActorUnkRLST19func_ov031_020f8ed4Ev kind:function(arm,size=0x38) addr:0x020f8ed4 -_ZN12ActorUnkRLST19func_ov031_020f8f0cEv kind:function(arm,size=0x4) addr:0x020f8f0c -_ZN12ActorUnkRLST19func_ov031_020f8f10Ev kind:function(arm,size=0x20) addr:0x020f8f10 -_ZN12ActorUnkRLST19func_ov031_020f8f30Ev kind:function(arm,size=0xe8) addr:0x020f8f30 -_ZN12ActorUnkRLST19func_ov031_020f9018Ev kind:function(arm,size=0x38) addr:0x020f9018 -_ZN12ActorUnkRLST19func_ov031_020f9050Ev kind:function(arm,size=0x11c) addr:0x020f9050 -_ZN12ActorUnkRLST19func_ov031_020f916cEv kind:function(arm,size=0x40) addr:0x020f916c -_ZN12ActorUnkRLST19func_ov031_020f91acEv kind:function(arm,size=0xa4) addr:0x020f91ac -_ZN12ActorUnkRLST19func_ov031_020f9250Ev kind:function(arm,size=0x7c) addr:0x020f9250 -_ZN12ActorUnkRLST19func_ov031_020f92ccEv kind:function(arm,size=0x74) addr:0x020f92cc -_ZN12ActorUnkRLST19func_ov031_020f9340Ev kind:function(arm,size=0x7c) addr:0x020f9340 -_ZN12ActorUnkRLST19func_ov031_020f93bcEv kind:function(arm,size=0xd8) addr:0x020f93bc -_ZN12ActorUnkRLST19func_ov031_020f9494Ev kind:function(arm,size=0xc0) addr:0x020f9494 -_ZN12ActorUnkRLST19func_ov031_020f9554Ev kind:function(arm,size=0x278) addr:0x020f9554 -_ZN12ActorUnkRLST19func_ov031_020f97ccEv kind:function(arm,size=0x118) addr:0x020f97cc -_ZN12ActorUnkRLST19func_ov031_020f98e4Ev kind:function(arm,size=0x210) addr:0x020f98e4 -_ZN12ActorUnkRLST19func_ov031_020f9af4Ev kind:function(arm,size=0x4) addr:0x020f9af4 -_ZN12ActorUnkRLST19func_ov031_020f9af8Ev kind:function(arm,size=0xac) addr:0x020f9af8 -_ZN12ActorUnkRLST19func_ov031_020f9ba4Ev kind:function(arm,size=0x11c) addr:0x020f9ba4 -_ZN12ActorUnkRLST19func_ov031_020f9cc0Ev kind:function(arm,size=0x18) addr:0x020f9cc0 -_ZN12ActorUnkRLSTD0Ev kind:function(arm,size=0x1c) addr:0x020f9cd8 -_ZN12ActorUnkRLST19func_ov031_020f9cf4Ev kind:function(arm,size=0x1c) addr:0x020f9cf4 -_ZN12ActorUnkRLSTD1Ev kind:function(arm,size=0x50) addr:0x020f9d10 -_ZN12ActorUnkRLST19func_ov031_020f9d60Ev kind:function(arm,size=0x58) addr:0x020f9d60 -_ZN19ActorProfileUnkRLSTD1Ev kind:function(arm,size=0x14) addr:0x020f9db8 +_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_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 +_ZN20ActorRollingStone_D4D1Ev kind:function(arm,size=0x14) addr:0x020f8674 +_ZN21ActorRollingStone_104D1Ev kind:function(arm,size=0x14) addr:0x020f8688 +_ZN17ActorRollingStone8vfunc_18Ei kind:function(arm,size=0xf0) addr:0x020f869c +_ZN17ActorRollingStone8vfunc_20Ev kind:function(arm,size=0x98) addr:0x020f878c +_ZN17ActorRollingStone8SetStateEs kind:function(arm,size=0x5c) addr:0x020f8824 +_ZN17ActorRollingStone19func_ov031_020f8880Ev kind:function(arm,size=0xc8) addr:0x020f8880 +_ZN17ActorRollingStone8vfunc_2CEi kind:function(arm,size=0xac) addr:0x020f8948 +_ZN17ActorRollingStone19func_ov031_020f89f4Ev kind:function(arm,size=0x10) addr:0x020f89f4 +_ZN17ActorRollingStone19func_ov031_020f8a04Ev kind:function(arm,size=0x28) addr:0x020f8a04 +_ZN17ActorRollingStone19func_ov031_020f8a2cEv kind:function(arm,size=0xc) addr:0x020f8a2c +_ZN17ActorRollingStone19func_ov031_020f8a38Ev kind:function(arm,size=0x4) addr:0x020f8a38 +_ZN17ActorRollingStone19func_ov031_020f8a3cEv kind:function(arm,size=0x1c) addr:0x020f8a3c +_ZN17ActorRollingStone19func_ov031_020f8a58Ev kind:function(arm,size=0x100) addr:0x020f8a58 +_ZN17ActorRollingStone19func_ov031_020f8b58Ev kind:function(arm,size=0x6c) addr:0x020f8b58 +_ZN17ActorRollingStone19func_ov031_020f8bc4Ev kind:function(arm,size=0x224) addr:0x020f8bc4 +_ZN17ActorRollingStone19func_ov031_020f8de8Ev kind:function(arm,size=0xec) addr:0x020f8de8 +_ZN17ActorRollingStone19func_ov031_020f8ed4Ev kind:function(arm,size=0x38) addr:0x020f8ed4 +_ZN17ActorRollingStone19func_ov031_020f8f0cEv kind:function(arm,size=0x4) addr:0x020f8f0c +_ZN17ActorRollingStone19func_ov031_020f8f10Ev kind:function(arm,size=0x20) addr:0x020f8f10 +_ZN17ActorRollingStone19func_ov031_020f8f30Ev kind:function(arm,size=0xe8) addr:0x020f8f30 +_ZN17ActorRollingStone19func_ov031_020f9018Ev kind:function(arm,size=0x38) addr:0x020f9018 +_ZN17ActorRollingStone19func_ov031_020f9050Ev kind:function(arm,size=0x11c) addr:0x020f9050 +_ZN17ActorRollingStone19func_ov031_020f916cEv kind:function(arm,size=0x40) addr:0x020f916c +_ZN17ActorRollingStone19func_ov031_020f91acEv kind:function(arm,size=0xa4) addr:0x020f91ac +_ZN17ActorRollingStone19func_ov031_020f9250Ev kind:function(arm,size=0x7c) addr:0x020f9250 +_ZN17ActorRollingStone19func_ov031_020f92ccEv kind:function(arm,size=0x74) addr:0x020f92cc +_ZN17ActorRollingStone19func_ov031_020f9340Ev kind:function(arm,size=0x7c) addr:0x020f9340 +_ZN17ActorRollingStone19func_ov031_020f93bcEv kind:function(arm,size=0xd8) addr:0x020f93bc +_ZN17ActorRollingStone19func_ov031_020f9494Ev kind:function(arm,size=0xc0) addr:0x020f9494 +_ZN17ActorRollingStone19func_ov031_020f9554Ev kind:function(arm,size=0x278) addr:0x020f9554 +_ZN17ActorRollingStone19func_ov031_020f97ccEv kind:function(arm,size=0x118) addr:0x020f97cc +_ZN17ActorRollingStone19func_ov031_020f98e4Ev kind:function(arm,size=0x210) addr:0x020f98e4 +_ZN17ActorRollingStone19func_ov031_020f9af4Ev kind:function(arm,size=0x4) addr:0x020f9af4 +_ZN17ActorRollingStone19func_ov031_020f9af8Ev kind:function(arm,size=0xac) addr:0x020f9af8 +_ZN17ActorRollingStone19func_ov031_020f9ba4Ev kind:function(arm,size=0x11c) addr:0x020f9ba4 +_ZN17ActorRollingStone19func_ov031_020f9cc0Ev kind:function(arm,size=0x18) addr:0x020f9cc0 +_ZN21ActorRollingStone_104D0Ev kind:function(arm,size=0x1c) addr:0x020f9cd8 +_ZN20ActorRollingStone_D4D0Ev kind:function(arm,size=0x1c) addr:0x020f9cf4 +_ZN17ActorRollingStoneD1Ev kind:function(arm,size=0x50) addr:0x020f9d10 +_ZN17ActorRollingStoneD0Ev kind:function(arm,size=0x58) addr:0x020f9d60 +_ZN24ActorProfileRollingStoneD1Ev kind:function(arm,size=0x14) addr:0x020f9db8 _ZN21ActorProfileArrowDrop10GetProfileEv kind:function(arm,size=0xc) addr:0x020f9dcc _ZN21ActorProfileArrowDrop6CreateEv kind:function(arm,size=0x24) addr:0x020f9dd8 _ZN21ActorProfileArrowDropC1Ev kind:function(arm,size=0x40) addr:0x020f9dfc @@ -2093,7 +2093,7 @@ __sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x021116c0 __sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x02111710 local __sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x02111760 __sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x021117b0 -__sinit_ActorUnkRLST.cpp kind:function(arm,size=0x50) addr:0x02111800 +__sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x02111800 __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x02111850 local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02111988 __sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x021119fc @@ -2157,7 +2157,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 .p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x021127ec local .p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x021127f0 .p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x021127f4 -.p__sinit_ActorUnkRLST.cpp kind:data(word) addr:0x021127f8 +.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x021127f8 .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x021127fc local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x02112800 .p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02112804 @@ -2385,12 +2385,12 @@ _ZTV19ActorProfileUnkNORE kind:data(any) addr:0x02114938 _ZTV12ActorUnkNORE kind:data(any) addr:0x0211495c _ZTV19ActorProfileUnkFLEN kind:data(any) addr:0x021149b8 _ZTV12ActorUnkFLEN kind:data(any) addr:0x021149dc -_ZTV19data_ov031_02114a40 kind:data(any) addr:0x02114a38 -data_ov031_02114a5c kind:data(any) addr:0x02114a5c -_ZTV19data_ov031_02114a70 kind:data(any) addr:0x02114a70 +_ZTV20ActorRollingStone_D4 kind:data(any) addr:0x02114a38 +_ZTV21ActorRollingStone_104 kind:data(any) addr:0x02114a54 +_ZTV24ActorProfileRollingStone kind:data(any) addr:0x02114a70 data_ov031_02114a94 kind:data(any) addr:0x02114a94 data_ov031_02114aec kind:data(any) addr:0x02114aec -_ZTV19data_ov031_02114b44 kind:data(any) addr:0x02114b44 +_ZTV17ActorRollingStone kind:data(any) addr:0x02114b44 data_ov031_02114ba0 kind:data(any) addr:0x02114ba0 local data_ov031_02114bb0 kind:data(any) addr:0x02114bb0 local data_ov031_02114be8 kind:data(any) addr:0x02114be8 local @@ -2593,9 +2593,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkNOREE8sProfileE kind:bss addr:0x02116cfc _ZGVN15ProfileInstanceI19ActorProfileUnkFLENE8sProfileE kind:bss addr:0x02116d38 @10902 kind:bss addr:0x02116d3c _ZN15ProfileInstanceI19ActorProfileUnkFLENE8sProfileE kind:bss addr:0x02116d48 -_ZGVN15ProfileInstanceI19ActorProfileUnkRLSTE8sProfileE kind:bss addr:0x02116d84 +_ZGVN15ProfileInstanceI24ActorProfileRollingStoneE8sProfileE kind:bss addr:0x02116d84 @10908 kind:bss addr:0x02116d88 -_ZN15ProfileInstanceI19ActorProfileUnkRLSTE8sProfileE kind:bss addr:0x02116d94 +_ZN15ProfileInstanceI24ActorProfileRollingStoneE8sProfileE kind:bss addr:0x02116d94 _ZGVN15ProfileInstanceI24ActorProfileTreasureDropE8sProfileE kind:bss addr:0x02116e6c _ZGVN15ProfileInstanceI25ActorProfileRedPotionDropE8sProfileE kind:bss addr:0x02116e70 _ZGVN15ProfileInstanceI20ActorProfileBombDropE8sProfileE kind:bss addr:0x02116e74 diff --git a/config/eur/arm9/overlays/ov093/symbols.txt b/config/eur/arm9/overlays/ov093/symbols.txt index c512f34b..f66e26af 100644 --- a/config/eur/arm9/overlays/ov093/symbols.txt +++ b/config/eur/arm9/overlays/ov093/symbols.txt @@ -31,7 +31,7 @@ func_ov093_021661e0 kind:function(arm,size=0x10) addr:0x021661e0 func_ov093_021661f0 kind:function(arm,size=0x10) addr:0x021661f0 func_ov093_02166200 kind:function(arm,size=0x10) addr:0x02166200 func_ov093_02166210 kind:function(arm,size=0x10) addr:0x02166210 -func_ov093_02166220 kind:function(arm,size=0x10) addr:0x02166220 +_ZN18UnkStruct_027e0d8c19func_ov093_02166220Ev kind:function(arm,size=0x10) addr:0x02166220 func_ov093_02166230 kind:function(arm,size=0x10) addr:0x02166230 func_ov093_02166240 kind:function(arm,size=0x10) addr:0x02166240 func_ov093_02166250 kind:function(arm,size=0x10) addr:0x02166250 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 935ca169..b3929316 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -1379,7 +1379,7 @@ _ZN19func_ov000_0207cce0D1Ev kind:function(arm,size=0x14) addr:0x0207cce0 _ZN19func_ov000_0207ccf4D0Ev kind:function(arm,size=0x1c) addr:0x0207ccf4 _ZN19func_ov000_0207cd10D1Ev kind:function(arm,size=0x30) addr:0x0207cd10 _ZN19func_ov000_0207cd40D0Ev kind:function(arm,size=0x38) addr:0x0207cd40 -_ZN24UnkStruct_ov031_Items_01D1Ev kind:function(arm,size=0x30) addr:0x0207cd78 +_ZN24UnkStruct_ov031_Items_01D2Ev kind:function(arm,size=0x30) addr:0x0207cd78 func_ov000_0207cda8 kind:function(arm,size=0x1c) addr:0x0207cda8 func_ov000_0207cdc4 kind:function(arm,size=0x10) addr:0x0207cdc4 _ZN24UnkStruct_ov031_Items_018vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207cdd4 @@ -1494,9 +1494,9 @@ _ZN19func_ov000_020803c8D2Ev kind:function(arm,size=0x30) addr:0x020803c8 func_ov000_020803f8 kind:function(arm,size=0x44) addr:0x020803f8 func_ov000_0208043c kind:function(arm,size=0x8) addr:0x0208043c func_ov000_02080444 kind:function(arm,size=0x20) addr:0x02080444 -_ZN17Actor_Derived1_94C2Ev kind:function(arm,size=0x20) addr:0x02080464 +_ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x02080464 func_ov000_02080484 kind:function(arm,size=0x1c) addr:0x02080484 -_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x020804a0 +_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x020804a0 _ZN19func_ov000_020804d0D0Ev kind:function(arm,size=0x38) addr:0x020804d0 _ZN19func_ov000_02080508D2Ev kind:function(arm,size=0x30) addr:0x02080508 func_ov000_02080538 kind:function(arm,size=0x4) addr:0x02080538 @@ -2339,12 +2339,12 @@ func_ov000_02099f20 kind:function(arm,size=0x88) addr:0x02099f20 _ZN5Actor19func_ov000_02098800Eb kind:function(arm,size=0x38) addr:0x02099fa8 _ZN5Actor19func_ov000_02098838Ev kind:function(arm,size=0x28) addr:0x02099fe0 func_ov000_0209a008 kind:function(arm,size=0xb0) addr:0x0209a008 -_ZN5Actor19func_ov000_02098910Eii kind:function(arm,size=0xd0) addr:0x0209a0b8 +_ZN5Actor19func_ov000_02098910EP24UnkStruct_ov031_Items_00i kind:function(arm,size=0xd0) addr:0x0209a0b8 _ZN5Actor19func_ov000_020989e0Ev kind:function(arm,size=0x38) addr:0x0209a188 func_ov000_0209a1c0 kind:function(arm,size=0x48) addr:0x0209a1c0 _ZN5Actor19func_ov000_02098a60Ei kind:function(arm,size=0x28) addr:0x0209a208 _ZN5Actor19func_ov000_02098a88Eii kind:function(arm,size=0x2c) addr:0x0209a230 -_ZN5Actor19func_ov000_02098ab4EbiiP7VecFx32 kind:function(arm,size=0x74) addr:0x0209a25c +_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 func_ov000_0209a4dc kind:function(arm,size=0x6c) addr:0x0209a4dc diff --git a/config/jp/arm9/overlays/ov017/symbols.txt b/config/jp/arm9/overlays/ov017/symbols.txt index f23aa68d..281c5a9a 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 -func_ov017_020bfb18 kind:function(arm,size=0x148) addr:0x020bfb18 +_ZN5Actor19func_ov017_020bfb18EP8Actor_9C 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 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 64699b3d..f175ab68 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -147,10 +147,11 @@ src/031_Land/Actor/ActorUnkFLEN.cpp: .data start:0x0211672c end:0x021167ac .bss start:0x02118ad8 end:0x02118b24 -src/031_Land/Actor/ActorUnkRLST.cpp: +src/031_Land/Actor/ActorRollingStone.cpp: .text start:0x020f9d24 end:0x020fb810 .init start:0x0211358c end:0x021135dc .ctor start:0x02114584 end:0x02114588 + .data start:0x021167ac end:0x02116914 .bss start:0x02118b24 end:0x02118c0c src/031_Land/Actor/ActorItemDrop.cpp: diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index ad8ef49e..21ed1bef 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -1106,54 +1106,54 @@ _ZN12ActorUnkFLEN19func_ov031_020f81f8Ev kind:function(arm,size=0xa4) addr:0x020 _ZN12ActorUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f9ce0 _ZN12ActorUnkFLEND0Ev kind:function(arm,size=0x1c) addr:0x020f9cf4 _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f9d10 -_ZN19ActorProfileUnkRLST10GetProfileEv kind:function(arm,size=0xc) addr:0x020f9d24 -_ZN19ActorProfileUnkRLST6CreateEv kind:function(arm,size=0x24) addr:0x020f9d30 -_ZN19ActorProfileUnkRLSTC1Ev kind:function(arm,size=0x44) addr:0x020f9d54 -_ZN12ActorUnkRLST19func_ov031_020f8354Ev kind:function(arm,size=0x90) addr:0x020f9d98 -_ZN12ActorUnkRLST19func_ov031_020f83e4Ev kind:function(arm,size=0xb8) addr:0x020f9e28 -_ZN12ActorUnkRLST19func_ov031_020f849cEv kind:function(arm,size=0x44) addr:0x020f9ee0 -_ZN12ActorUnkRLSTC1Ev kind:function(arm,size=0x194) addr:0x020f9f24 -_ZN12ActorUnkRLST19func_ov031_020f8674Ev kind:function(arm,size=0x14) addr:0x020fa0b8 -_ZN12ActorUnkRLST19func_ov031_020f8688Ev kind:function(arm,size=0x14) addr:0x020fa0cc -_ZN12ActorUnkRLST19func_ov031_020f869cEv kind:function(arm,size=0xf0) addr:0x020fa0e0 -_ZN12ActorUnkRLST19func_ov031_020f878cEv kind:function(arm,size=0x98) addr:0x020fa1d0 -_ZN12ActorUnkRLST19func_ov031_020f8824Ev kind:function(arm,size=0x5c) addr:0x020fa268 -_ZN12ActorUnkRLST19func_ov031_020f8880Ev kind:function(arm,size=0xc8) addr:0x020fa2c4 -_ZN12ActorUnkRLST19func_ov031_020f8948Ev kind:function(arm,size=0xac) addr:0x020fa38c -_ZN12ActorUnkRLST19func_ov031_020f89f4Ev kind:function(arm,size=0x10) addr:0x020fa438 -_ZN12ActorUnkRLST19func_ov031_020f8a04Ev kind:function(arm,size=0x28) addr:0x020fa448 -_ZN12ActorUnkRLST19func_ov031_020f8a2cEv kind:function(arm,size=0xc) addr:0x020fa470 -_ZN12ActorUnkRLST19func_ov031_020f8a38Ev kind:function(arm,size=0x4) addr:0x020fa47c -_ZN12ActorUnkRLST19func_ov031_020f8a3cEv kind:function(arm,size=0x1c) addr:0x020fa480 -_ZN12ActorUnkRLST19func_ov031_020f8a58Ev kind:function(arm,size=0x100) addr:0x020fa49c -_ZN12ActorUnkRLST19func_ov031_020f8b58Ev kind:function(arm,size=0x6c) addr:0x020fa59c -_ZN12ActorUnkRLST19func_ov031_020f8bc4Ev kind:function(arm,size=0x224) addr:0x020fa608 -_ZN12ActorUnkRLST19func_ov031_020f8de8Ev kind:function(arm,size=0xec) addr:0x020fa82c -_ZN12ActorUnkRLST19func_ov031_020f8ed4Ev kind:function(arm,size=0x38) addr:0x020fa918 -_ZN12ActorUnkRLST19func_ov031_020f8f0cEv kind:function(arm,size=0x4) addr:0x020fa950 -_ZN12ActorUnkRLST19func_ov031_020f8f10Ev kind:function(arm,size=0x20) addr:0x020fa954 -_ZN12ActorUnkRLST19func_ov031_020f8f30Ev kind:function(arm,size=0xe8) addr:0x020fa974 -_ZN12ActorUnkRLST19func_ov031_020f9018Ev kind:function(arm,size=0x38) addr:0x020faa5c -_ZN12ActorUnkRLST19func_ov031_020f9050Ev kind:function(arm,size=0x11c) addr:0x020faa94 -_ZN12ActorUnkRLST19func_ov031_020f916cEv kind:function(arm,size=0x40) addr:0x020fabb0 -_ZN12ActorUnkRLST19func_ov031_020f91acEv kind:function(arm,size=0xa4) addr:0x020fabf0 -_ZN12ActorUnkRLST19func_ov031_020f9250Ev kind:function(arm,size=0x7c) addr:0x020fac94 -_ZN12ActorUnkRLST19func_ov031_020f92ccEv kind:function(arm,size=0x74) addr:0x020fad10 -_ZN12ActorUnkRLST19func_ov031_020f9340Ev kind:function(arm,size=0x7c) addr:0x020fad84 -_ZN12ActorUnkRLST19func_ov031_020f93bcEv kind:function(arm,size=0xd8) addr:0x020fae00 -_ZN12ActorUnkRLST19func_ov031_020f9494Ev kind:function(arm,size=0xc0) addr:0x020faed8 -_ZN12ActorUnkRLST19func_ov031_020f9554Ev kind:function(arm,size=0x278) addr:0x020faf98 -_ZN12ActorUnkRLST19func_ov031_020f97ccEv kind:function(arm,size=0x118) addr:0x020fb210 -_ZN12ActorUnkRLST19func_ov031_020f98e4Ev kind:function(arm,size=0x210) addr:0x020fb328 -_ZN12ActorUnkRLST19func_ov031_020f9af4Ev kind:function(arm,size=0x4) addr:0x020fb538 -_ZN12ActorUnkRLST19func_ov031_020f9af8Ev kind:function(arm,size=0xac) addr:0x020fb53c -_ZN12ActorUnkRLST19func_ov031_020f9ba4Ev kind:function(arm,size=0x11c) addr:0x020fb5e8 -_ZN12ActorUnkRLST19func_ov031_020f9cc0Ev kind:function(arm,size=0x18) addr:0x020fb704 -_ZN12ActorUnkRLSTD0Ev kind:function(arm,size=0x1c) addr:0x020fb71c -_ZN12ActorUnkRLST19func_ov031_020f9cf4Ev kind:function(arm,size=0x1c) addr:0x020fb738 -_ZN12ActorUnkRLSTD1Ev kind:function(arm,size=0x50) addr:0x020fb754 -_ZN12ActorUnkRLST19func_ov031_020f9d60Ev kind:function(arm,size=0x58) addr:0x020fb7a4 -_ZN19ActorProfileUnkRLSTD1Ev kind:function(arm,size=0x14) addr:0x020fb7fc +_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_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 +_ZN20ActorRollingStone_D4D1Ev kind:function(arm,size=0x14) addr:0x020fa0b8 +_ZN21ActorRollingStone_104D1Ev kind:function(arm,size=0x14) addr:0x020fa0cc +_ZN17ActorRollingStone8vfunc_18Ei kind:function(arm,size=0xf0) addr:0x020fa0e0 +_ZN17ActorRollingStone8vfunc_20Ev kind:function(arm,size=0x98) addr:0x020fa1d0 +_ZN17ActorRollingStone8SetStateEs kind:function(arm,size=0x5c) addr:0x020fa268 +_ZN17ActorRollingStone19func_ov031_020f8880Ev kind:function(arm,size=0xc8) addr:0x020fa2c4 +_ZN17ActorRollingStone8vfunc_2CEi kind:function(arm,size=0xac) addr:0x020fa38c +_ZN17ActorRollingStone19func_ov031_020f89f4Ev kind:function(arm,size=0x10) addr:0x020fa438 +_ZN17ActorRollingStone19func_ov031_020f8a04Ev kind:function(arm,size=0x28) addr:0x020fa448 +_ZN17ActorRollingStone19func_ov031_020f8a2cEv kind:function(arm,size=0xc) addr:0x020fa470 +_ZN17ActorRollingStone19func_ov031_020f8a38Ev kind:function(arm,size=0x4) addr:0x020fa47c +_ZN17ActorRollingStone19func_ov031_020f8a3cEv kind:function(arm,size=0x1c) addr:0x020fa480 +_ZN17ActorRollingStone19func_ov031_020f8a58Ev kind:function(arm,size=0x100) addr:0x020fa49c +_ZN17ActorRollingStone19func_ov031_020f8b58Ev kind:function(arm,size=0x6c) addr:0x020fa59c +_ZN17ActorRollingStone19func_ov031_020f8bc4Ev kind:function(arm,size=0x224) addr:0x020fa608 +_ZN17ActorRollingStone19func_ov031_020f8de8Ev kind:function(arm,size=0xec) addr:0x020fa82c +_ZN17ActorRollingStone19func_ov031_020f8ed4Ev kind:function(arm,size=0x38) addr:0x020fa918 +_ZN17ActorRollingStone19func_ov031_020f8f0cEv kind:function(arm,size=0x4) addr:0x020fa950 +_ZN17ActorRollingStone19func_ov031_020f8f10Ev kind:function(arm,size=0x20) addr:0x020fa954 +_ZN17ActorRollingStone19func_ov031_020f8f30Ev kind:function(arm,size=0xe8) addr:0x020fa974 +_ZN17ActorRollingStone19func_ov031_020f9018Ev kind:function(arm,size=0x38) addr:0x020faa5c +_ZN17ActorRollingStone19func_ov031_020f9050Ev kind:function(arm,size=0x11c) addr:0x020faa94 +_ZN17ActorRollingStone19func_ov031_020f916cEv kind:function(arm,size=0x40) addr:0x020fabb0 +_ZN17ActorRollingStone19func_ov031_020f91acEv kind:function(arm,size=0xa4) addr:0x020fabf0 +_ZN17ActorRollingStone19func_ov031_020f9250Ev kind:function(arm,size=0x7c) addr:0x020fac94 +_ZN17ActorRollingStone19func_ov031_020f92ccEv kind:function(arm,size=0x74) addr:0x020fad10 +_ZN17ActorRollingStone19func_ov031_020f9340Ev kind:function(arm,size=0x7c) addr:0x020fad84 +_ZN17ActorRollingStone19func_ov031_020f93bcEv kind:function(arm,size=0xd8) addr:0x020fae00 +_ZN17ActorRollingStone19func_ov031_020f9494Ev kind:function(arm,size=0xc0) addr:0x020faed8 +_ZN17ActorRollingStone19func_ov031_020f9554Ev kind:function(arm,size=0x278) addr:0x020faf98 +_ZN17ActorRollingStone19func_ov031_020f97ccEv kind:function(arm,size=0x118) addr:0x020fb210 +_ZN17ActorRollingStone19func_ov031_020f98e4Ev kind:function(arm,size=0x210) addr:0x020fb328 +_ZN17ActorRollingStone19func_ov031_020f9af4Ev kind:function(arm,size=0x4) addr:0x020fb538 +_ZN17ActorRollingStone19func_ov031_020f9af8Ev kind:function(arm,size=0xac) addr:0x020fb53c +_ZN17ActorRollingStone19func_ov031_020f9ba4Ev kind:function(arm,size=0x11c) addr:0x020fb5e8 +_ZN17ActorRollingStone19func_ov031_020f9cc0Ev kind:function(arm,size=0x18) addr:0x020fb704 +_ZN21ActorRollingStone_104D0Ev kind:function(arm,size=0x1c) addr:0x020fb71c +_ZN20ActorRollingStone_D4D0Ev kind:function(arm,size=0x1c) addr:0x020fb738 +_ZN17ActorRollingStoneD1Ev kind:function(arm,size=0x50) addr:0x020fb754 +_ZN17ActorRollingStoneD0Ev kind:function(arm,size=0x58) addr:0x020fb7a4 +_ZN24ActorProfileRollingStoneD1Ev kind:function(arm,size=0x14) addr:0x020fb7fc _ZN21ActorProfileArrowDrop10GetProfileEv kind:function(arm,size=0xc) addr:0x020fb810 _ZN21ActorProfileArrowDrop6CreateEv kind:function(arm,size=0x24) addr:0x020fb81c _ZN21ActorProfileArrowDropC1Ev kind:function(arm,size=0x40) addr:0x020fb840 @@ -2090,7 +2090,7 @@ __sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x0211344c __sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x0211349c local __sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x021134ec __sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x0211353c -__sinit_ActorUnkRLST.cpp kind:function(arm,size=0x50) addr:0x0211358c +__sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x0211358c __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x021135dc local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02113714 __sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x02113788 @@ -2154,7 +2154,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 .p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x02114578 local .p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x0211457c .p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x02114580 -.p__sinit_ActorUnkRLST.cpp kind:data(word) addr:0x02114584 +.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x02114584 .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x02114588 local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x0211458c .p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02114590 @@ -2589,9 +2589,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkNOREE8sProfileE kind:bss addr:0x02118a9c _ZGVN15ProfileInstanceI19ActorProfileUnkFLENE8sProfileE kind:bss addr:0x02118ad8 @30902 kind:bss addr:0x02118adc _ZN15ProfileInstanceI19ActorProfileUnkFLENE8sProfileE kind:bss addr:0x02118ae8 -_ZGVN15ProfileInstanceI19ActorProfileUnkRLSTE8sProfileE kind:bss addr:0x02118b24 +_ZGVN15ProfileInstanceI24ActorProfileRollingStoneE8sProfileE kind:bss addr:0x02118b24 @30908 kind:bss addr:0x02118b28 -_ZN15ProfileInstanceI19ActorProfileUnkRLSTE8sProfileE kind:bss addr:0x02118b34 +_ZN15ProfileInstanceI24ActorProfileRollingStoneE8sProfileE kind:bss addr:0x02118b34 _ZGVN15ProfileInstanceI24ActorProfileTreasureDropE8sProfileE kind:bss addr:0x02118c0c _ZGVN15ProfileInstanceI25ActorProfileRedPotionDropE8sProfileE kind:bss addr:0x02118c10 _ZGVN15ProfileInstanceI20ActorProfileBombDropE8sProfileE kind:bss addr:0x02118c14 diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 27ddabc4..c154c253 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -5,6 +5,7 @@ #include "Actor/ActorRef.hpp" #include "Physics/Cylinder.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_ov031_Items.hpp" #include "flags.h" #include "global.h" #include "math.hpp" @@ -89,30 +90,6 @@ enum ActorFlag_ { ActorFlag_31 = FLAG(0, 31), }; -class Actor_C4; - -struct ActorGrabParams; -extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32); -bool PlayerCharacter_IsNotLink(s32 character); - -struct ActorGrabParams { - /* 00 */ u16 unk_00; - /* 02 */ u16 unk_02; - /* 04 */ - - ActorGrabParams() {} - - ActorGrabParams(unk32 param2, unk32 param3) { - ActorGrabParams local_1c; - func_ov000_0205d500(&local_1c, param3, param2); - *this = local_1c; - } - - void operator=(ActorGrabParams &from) { - *(u32 *) this = *(u32 *) &from; - } -}; - class Actor_9C { public: /* 00 (vtable) */ @@ -134,6 +111,13 @@ public: void func_ov000_02097bec(); }; +class Actor_38 { +public: + /* 00 (base) */ STRUCT_PAD(0x00, 0x08); + /* 08 */ unk16 mUnk_08; + /* 0A */ +}; + typedef s16 ActorState; #define ActorState_None -1 @@ -148,7 +132,7 @@ public: /* 2C */ unk32 mUnk_2C; // gravity? /* 30 */ Cylinder *mUnk_30; /* 34 */ Cylinder *mUnk_34; - /* 38 */ unk32 *mUnk_38; + /* 38 */ Actor_38 *mUnk_38; /* 3C */ Actor_9C *mUnk_3C; /* 40 */ Actor_C4 *mUnk_40; /* 44 */ u16 mUnk_44; @@ -231,7 +215,7 @@ public: void func_ov000_020984f0(); u32 func_ov000_02098800(bool param1); bool func_ov000_02098838(); - unk32 func_ov000_02098910(unk32 param1, unk32 param2); + unk32 func_ov000_02098910(UnkStruct_ov031_Items_00 *param1, unk32 param2); void func_ov000_02098b8c(unk32 param1, unk32 param2); s32 func_ov000_02098518(unk32 *param1); VecFx32 *func_ov000_0209853c(unk32 param1); @@ -244,7 +228,7 @@ public: void func_ov000_020989e0(); bool func_ov000_02098a60(unk32 param1); void func_ov000_02098a88(unk32 param1, unk32 param2); - u32 func_ov000_02098ab4(bool param1, unk32 param2, unk32 param3, VecFx32 *param4); + u32 func_ov000_02098ab4(u8 param1, unk32 param2, unk32 param3, VecFx32 *param4); static void func_ov000_020973f4(ActorRef *pOutRef, UnkStruct_ov000_020b539c *param2, ActorId actorId, ActorParams *pParams, int param5); @@ -253,6 +237,7 @@ public: bool func_ov017_020beeec(unk32 param1); void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); void func_ov017_020bf9c8(Actor *param1); + void func_ov017_020bfb18(Actor_9C *param1); }; class Actor_C4_Base { diff --git a/include/Actor/ActorRollingStone.hpp b/include/Actor/ActorRollingStone.hpp new file mode 100644 index 00000000..17981f23 --- /dev/null +++ b/include/Actor/ActorRollingStone.hpp @@ -0,0 +1,150 @@ +#pragma once + +#include "Actor/Actor.hpp" +#include "Actor/ActorProfile.hpp" +#include "ActorItemBoomerang.hpp" +#include "ActorShotArrow.hpp" +#include "Actor_Derived1.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/UnkStruct_ov031_Items.hpp" +#include "global.h" +#include "types.h" + +enum ActorRollingStoneState_ { + ActorRollingStoneState_0 = 0, + ActorRollingStoneState_1 = 1, + ActorRollingStoneState_2 = 2, + ActorRollingStoneState_3 = 3, + ActorRollingStoneState_4 = 4, + ActorRollingStoneState_5 = 5, + ActorRollingStoneState_6 = 6, + ActorRollingStoneState_7 = 7, + ActorRollingStoneState_8 = 8, + ActorRollingStoneState_9 = 9, + ActorRollingStoneState_10 = 10, + ActorRollingStoneState_MAX +}; + +class ActorRollingStone; + +class ActorRollingStone_104 : public UnkStruct_ov031_Items_00 { +public: + /* 00 (vtable) */ + /* 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 + /* 14 */ +}; + +class ActorRollingStone_D4 : public UnkStruct_ov031_Items_01 { +public: + /* 00 (vtable) */ + /* 2C */ ActorRollingStone *mUnk_2C; + /* 30 */ + + ActorRollingStone_D4(ActorRollingStone *param1) { + this->mUnk_2C = param1; + } + + // data_ov031_02114a40 + /* 10 */ virtual void vfunc_10(Actor *param1) override; // func_ov031_020f849c +}; + +class ActorRollingStone : public Actor { +public: + /* 000 (base) */ + /* 094 */ UnkSystem6_Derived2 mUnk_94; + /* 09C */ unk8 mUnk_9C; + /* 09D */ STRUCT_PAD(0x9D, 0xA0); + /* 0A0 */ Actor_Derived1_94 mUnk_A0; + /* 0AC */ ActorShotArrow_140 mUnk_AC; + /* 0D4 */ ActorRollingStone_D4 mUnk_D4; + /* 104 */ ActorRollingStone_104 mUnk_104; + /* 108 */ u16 mUnk_108; + /* 10A */ STRUCT_PAD(0x10A, 0x10C); + /* 10C */ Mat3p mUnk_10C; + /* 130 */ UnkStruct_PlayerGet_ec mUnk_130[0x2]; + /* 138 */ unk16 mUnk_138; + /* 13C */ Cylinder mUnk_13C; + /* 14C */ unk32 mUnk_14C; + /* 150 */ volatile u16 mUnk_150; + /* 152 */ volatile u16 mUnk_152; + /* 154 */ volatile u16 mUnk_154; + /* 156 */ volatile u16 mUnk_156; + /* 158 */ bool mUnk_158; + /* 159 */ bool mUnk_159; + /* 15A */ s8 mUnk_15A; + /* 15B */ s8 mUnk_15B; + /* 15C */ Actor_Derived1_EC mUnk_15C; + /* 17C */ + + ActorRollingStone(); + + /* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020f869c + /* 20 */ virtual void vfunc_20() override; // func_ov031_020f878c + /* 2C */ virtual void vfunc_2C(unk32 param1) override; // func_ov031_020f8948 + /* 54 */ + + bool IsInternalTimerOut1() { + if (this->mUnk_150 < this->mUnk_152) { + this->mUnk_150++; + return false; + } + + return true; + } + + bool IsInternalTimerOut2() { + if (this->mUnk_154 < this->mUnk_156) { + this->mUnk_154++; + return false; + } + + return true; + } + + void SetState(ActorState state); + void func_ov031_020f8880(); + void func_ov031_020f89f4(); + void func_ov031_020f8a04(); + void func_ov031_020f8a2c(); + void func_ov031_020f8a38(); + void func_ov031_020f8a3c(); + void func_ov031_020f8a58(); + void func_ov031_020f8b58(); + void func_ov031_020f8bc4(); + void func_ov031_020f8de8(); + void func_ov031_020f8ed4(); + void func_ov031_020f8f0c(); + void func_ov031_020f8f10(); + void func_ov031_020f8f30(); + void func_ov031_020f9018(); + void func_ov031_020f9050(); + void func_ov031_020f916c(); + void func_ov031_020f91ac(); + void func_ov031_020f9250(); + void func_ov031_020f92cc(); + void func_ov031_020f9340(); + void func_ov031_020f93bc(); + void func_ov031_020f9494(); + void func_ov031_020f9554(); + void func_ov031_020f97cc(); + void func_ov031_020f98e4(); + void func_ov031_020f9af4(); + void func_ov031_020f9af8(); + bool func_ov031_020f9ba4(); + void func_ov031_020f9cc0(); +}; + +class ActorProfileRollingStone : public ActorProfile_Derived1 { +public: + /* 00 (base) */ + + ActorProfileRollingStone(); + + /* 0C */ virtual Actor *Create(); + + static ActorProfileRollingStone *GetProfile(); +}; diff --git a/include/Actor/ActorUnkRLST.hpp b/include/Actor/ActorUnkRLST.hpp deleted file mode 100644 index 8fa37271..00000000 --- a/include/Actor/ActorUnkRLST.hpp +++ /dev/null @@ -1,82 +0,0 @@ -//! TODO: This file was generated automatically and might contain errors - -#pragma once - -#include "Actor/Actor.hpp" -#include "Actor/ActorProfile.hpp" -#include "global.h" -#include "types.h" - -class ActorUnkRLST_C4 : public Actor_C4 { -public: - ActorUnkRLST_C4(Actor *param1); - - /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; - /* 04 */ virtual void vfunc_04() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C(unk32 param1) override; -}; - -class ActorUnkRLST : public Actor { -public: - /* 00 (base) */ - /* 94 */ - - ActorUnkRLST(); - - /* 4C */ virtual ~ActorUnkRLST() override; - - void func_ov031_020f8354(void); - void func_ov031_020f83e4(void); - void func_ov031_020f849c(void); - void func_ov031_020f8674(void); - void func_ov031_020f8688(void); - void func_ov031_020f869c(void); - void func_ov031_020f878c(void); - void func_ov031_020f8824(void); - void func_ov031_020f8880(void); - void func_ov031_020f8948(void); - void func_ov031_020f89f4(void); - void func_ov031_020f8a04(void); - void func_ov031_020f8a2c(void); - void func_ov031_020f8a38(void); - void func_ov031_020f8a3c(void); - void func_ov031_020f8a58(void); - void func_ov031_020f8b58(void); - void func_ov031_020f8bc4(void); - void func_ov031_020f8de8(void); - void func_ov031_020f8ed4(void); - void func_ov031_020f8f0c(void); - void func_ov031_020f8f10(void); - void func_ov031_020f8f30(void); - void func_ov031_020f9018(void); - void func_ov031_020f9050(void); - void func_ov031_020f916c(void); - void func_ov031_020f91ac(void); - void func_ov031_020f9250(void); - void func_ov031_020f92cc(void); - void func_ov031_020f9340(void); - void func_ov031_020f93bc(void); - void func_ov031_020f9494(void); - void func_ov031_020f9554(void); - void func_ov031_020f97cc(void); - void func_ov031_020f98e4(void); - void func_ov031_020f9af4(void); - void func_ov031_020f9af8(void); - void func_ov031_020f9ba4(void); - void func_ov031_020f9cc0(void); - void func_ov031_020f9cf4(void); - void func_ov031_020f9d60(void); -}; - -class ActorProfileUnkRLST : public ActorProfile_Derived1 { -public: - /* 00 (base) */ - - ActorProfileUnkRLST(); - ~ActorProfileUnkRLST(); - - /* 0C */ virtual Actor *Create(); - - static ActorProfileUnkRLST *GetProfile(); -}; diff --git a/include/Actor/Actor_Derived1.hpp b/include/Actor/Actor_Derived1.hpp index f78149c8..f12a8ec0 100644 --- a/include/Actor/Actor_Derived1.hpp +++ b/include/Actor/Actor_Derived1.hpp @@ -35,11 +35,9 @@ public: class Actor_Derived1_94 { public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk16 mUnk_08; + /* 00 */ Actor_38 mUnk_00; /* 0A */ unk16 mUnk_0A; - /* 0C */ unk32 mUnk_0C; + /* 0C */ Actor_Derived1_94(); ~Actor_Derived1_94(); @@ -48,6 +46,8 @@ public: class Actor_Derived1_94_Derived1 : public Actor_Derived1_94 { public: /* 00 (base) */ + /* 0C */ unk32 mUnk_0C; + /* 10 */ Actor_Derived1_94_Derived1(unk32 param1) { this->mUnk_0C = param1; diff --git a/include/Player/PlayerActorBase.hpp b/include/Player/PlayerActorBase.hpp index 52c1b665..10677117 100644 --- a/include/Player/PlayerActorBase.hpp +++ b/include/Player/PlayerActorBase.hpp @@ -1,15 +1,38 @@ #pragma once -#include "Actor/Actor.hpp" -#include "LinkList.hpp" +#include "Actor/ActorRef.hpp" #include "Render/ModelRender.hpp" #include "Unknown/Common.hpp" -#include "Unknown/UnkStruct_027e09a4.hpp" #include "math.hpp" + #include "types.h" #include +class Actor_C4; + +struct ActorGrabParams; +extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32); +bool PlayerCharacter_IsNotLink(s32 character); + +struct ActorGrabParams { + /* 00 */ u16 unk_00; + /* 02 */ u16 unk_02; + /* 04 */ + + ActorGrabParams() {} + + ActorGrabParams(unk32 param2, unk32 param3) { + ActorGrabParams local_1c; + func_ov000_0205d500(&local_1c, param3, param2); + *this = local_1c; + } + + void operator=(ActorGrabParams &from) { + *(u32 *) this = *(u32 *) &from; + } +}; + class UnkStruct_027e0ce0_40; class PlayerActorBase_70; diff --git a/include/Player/PlayerGet.hpp b/include/Player/PlayerGet.hpp index 45556288..88814768 100644 --- a/include/Player/PlayerGet.hpp +++ b/include/Player/PlayerGet.hpp @@ -6,7 +6,6 @@ #include "Render/ModelRender.hpp" #include "Unknown/Common.hpp" -#include "Unknown/UnkStruct_027e0ce0.hpp" #include "Unknown/UnkStruct_ov000_0208f820.hpp" #include "math.hpp" diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 2fe37f4b..95345ee6 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -914,8 +914,14 @@ struct UnkStackStruct1 { }; extern "C" void func_ov000_02072fd0(UnkStackStruct1 *); +struct UnkSystem7_UnkStruct_00_20 { + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ VecFx32 mUnk_04; +}; + struct UnkSystem7_UnkStruct_00 { - /* 00 */ STRUCT_PAD(0x00, 0x24); + /* 00 */ STRUCT_PAD(0x00, 0x20); + /* 20 */ UnkSystem7_UnkStruct_00_20 *mUnk_20; /* 24 */ unk32 mUnk_24; /* 28 */ unk32 mUnk_28; /* 2C */ unk32 mUnk_2C; diff --git a/include/Unknown/UnkStruct_027e09c0.hpp b/include/Unknown/UnkStruct_027e09c0.hpp index 2c8435c3..677deab8 100644 --- a/include/Unknown/UnkStruct_027e09c0.hpp +++ b/include/Unknown/UnkStruct_027e09c0.hpp @@ -8,6 +8,12 @@ class UnkStruct_027e0cd8_0C_Base; +struct UnkStruct_ov000_0207de98 { + VecFx32 vec; + unk32 param1; + unk32 param2; +}; + class UnkStruct_027e09c0_60 { public: /* 00 */ unk32 mUnk_00; @@ -61,7 +67,9 @@ public: // overlay 0 void func_ov000_0207da40(); + void func_ov000_0207de98(ActorRef param1, UnkStruct_ov000_0207de98 *param2, Actor_38 *param3); void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, UnkStruct_ov031_Items_01 *param4); + bool func_ov000_0207e458(unk32 param1, unk32 param2, VecFx32 *param3, unk32 param4, VecFx32 *param5, ActorRef param6); // overlay 1 void func_ov001_020be394(); diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index a6d2fe18..3291f6e0 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -9,7 +9,6 @@ #include "Player/PlayerLink.hpp" #include "Player/TouchControl.hpp" #include "Save/SaveManager.hpp" -#include "System/SysNew.hpp" #include "input.hpp" #include @@ -731,6 +730,7 @@ public: bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); void func_ov000_0208bc9c(unk32 param1, unk32 param2); void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4); + bool func_ov000_0208be70(VecFx32 param1); G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3); static UnkStruct_027e0ce0_34 *func_ov000_0205c904(); diff --git a/include/Unknown/UnkStruct_027e0cec.hpp b/include/Unknown/UnkStruct_027e0cec.hpp index f1a902d8..9dd7ceb5 100644 --- a/include/Unknown/UnkStruct_027e0cec.hpp +++ b/include/Unknown/UnkStruct_027e0cec.hpp @@ -1,6 +1,5 @@ #pragma once -#include "Player/PlayerGet.hpp" #include "math.hpp" #include "types.h" diff --git a/include/Unknown/UnkStruct_027e0d8c.hpp b/include/Unknown/UnkStruct_027e0d8c.hpp index 1dc11b82..971d8218 100644 --- a/include/Unknown/UnkStruct_027e0d8c.hpp +++ b/include/Unknown/UnkStruct_027e0d8c.hpp @@ -10,8 +10,10 @@ public: UnkStruct_027e0d8c(); ~UnkStruct_027e0d8c(); + // overlay 93 void func_ov093_02166058(); void func_ov093_02166068(); + void func_ov093_02166220(); }; extern UnkStruct_027e0d8c *data_027e0d8c; diff --git a/include/Unknown/UnkStruct_ov000_0208f820.hpp b/include/Unknown/UnkStruct_ov000_0208f820.hpp index aacdd4cc..0c619dc6 100644 --- a/include/Unknown/UnkStruct_ov000_0208f820.hpp +++ b/include/Unknown/UnkStruct_ov000_0208f820.hpp @@ -5,10 +5,11 @@ #include "Actor/ActorRef.hpp" #include "Item/ItemManager.hpp" -#include "Player/PlayerLink.hpp" -#include "System/SysNew.hpp" +#include "Player/PlayerActorBase.hpp" #include "math.hpp" +class PlayerLinkActor_A0; + class UnkStruct_ov000_0208f820_14 { public: /* 00 */ unk8 mUnk_00[0x6C]; @@ -134,7 +135,7 @@ public: this->mItemId = itemId; } - UnkStruct_ov000_0208f820_04() {} + UnkStruct_ov000_0208f820_04() {}; }; class UnkStruct_ov000_0208f820_44 { diff --git a/include/Unknown/UnkStruct_ov031_Items.hpp b/include/Unknown/UnkStruct_ov031_Items.hpp index 6f3c0c8c..25357e35 100644 --- a/include/Unknown/UnkStruct_ov031_Items.hpp +++ b/include/Unknown/UnkStruct_ov031_Items.hpp @@ -10,7 +10,7 @@ public: // data_ov000_020b30d0 /* 00 */ virtual ~UnkStruct_ov031_Items_00(); - /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; + /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; // func_ov000_020982d8 }; class UnkStruct_ov031_Items_01 { diff --git a/include/files.h b/include/files.h index 4b469743..0a84887f 100644 --- a/include/files.h +++ b/include/files.h @@ -1,8 +1,5 @@ #pragma once -#include "Actor/ActorId.hpp" -#include "Actor/ActorRef.hpp" -#include "Map/MapObjectId.hpp" #include "types.h" #include diff --git a/src/000_Second/Actor/Actor_Derived1.cpp b/src/000_Second/Actor/Actor_Derived1.cpp index 69780048..527ca33e 100644 --- a/src/000_Second/Actor/Actor_Derived1.cpp +++ b/src/000_Second/Actor/Actor_Derived1.cpp @@ -38,11 +38,11 @@ Actor_Derived1::Actor_Derived1(ModelRender *param1, unk32 param2) : mUnk_114(-1), mUnk_118(0x1000), mUnk_11C(0x019A) { - this->mUnk_30 = &this->mUnk_104; - this->mUnk_4A[0] = 5; - this->mUnk_44 = 0x1F; - this->mUnk_094.mUnk_08 = 3; - this->mUnk_38 = &this->mUnk_094.mUnk_00; + this->mUnk_30 = &this->mUnk_104; + this->mUnk_4A[0] = 5; + this->mUnk_44 = 0x1F; + this->mUnk_094.mUnk_00.mUnk_08 = 3; + this->mUnk_38 = &this->mUnk_094.mUnk_00; this->mUnk_0B0 |= 0x08; } diff --git a/src/031_Land/Actor/ActorRollingStone.cpp b/src/031_Land/Actor/ActorRollingStone.cpp new file mode 100644 index 00000000..b9e01ca2 --- /dev/null +++ b/src/031_Land/Actor/ActorRollingStone.cpp @@ -0,0 +1,791 @@ +#include "Actor/ActorRollingStone.hpp" + +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09b4.hpp" +#include "Unknown/UnkStruct_027e09c0.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" +#include "Unknown/UnkStruct_027e0d38.hpp" +#include "Unknown/UnkStruct_027e0d8c.hpp" + +extern "C" Mat3p data_027e0130; +extern "C" unk32 data_ov000_020aecf8; + +extern "C" VecFx32 data_ov031_02110b98; +extern "C" VecFx32 data_ov031_02110ba4; +extern "C" VecFx32 data_ov031_02110bb0; +extern "C" VecFx32 data_ov031_02110bbc; + +extern "C" void func_01ff916c(unk32 *, unk32, unk32); +extern "C" void func_01ffa60c(const Mat3p *, Mat3p *, Mat3p *); +extern "C" unk32 func_01ffb9cc(VecFx32 *, VecFx32 *); +extern "C" unk8 func_02017e8c(unk16 *); + +static PTMF data_ov031_02114aec[0xB] = { + ActorRollingStone::func_ov031_020f89f4, // ActorRollingStoneState_0 + ActorRollingStone::func_ov031_020f8a2c, // ActorRollingStoneState_1 + ActorRollingStone::func_ov031_020f8a3c, // ActorRollingStoneState_2 + ActorRollingStone::func_ov031_020f8b58, // ActorRollingStoneState_3 + ActorRollingStone::func_ov031_020f9250, // ActorRollingStoneState_4 + ActorRollingStone::func_ov031_020f9340, // ActorRollingStoneState_5 + ActorRollingStone::func_ov031_020f8ed4, // ActorRollingStoneState_6 + ActorRollingStone::func_ov031_020f8f10, // ActorRollingStoneState_7 + ActorRollingStone::func_ov031_020f9018, // ActorRollingStoneState_8 + ActorRollingStone::func_ov031_020f916c, // ActorRollingStoneState_9 + ActorRollingStone::func_ov031_020f9494, // ActorRollingStoneState_10 +}; + +static PTMF data_ov031_02114a94[0xB] = { + ActorRollingStone::func_ov031_020f8a04, // ActorRollingStoneState_0 + ActorRollingStone::func_ov031_020f8a38, // ActorRollingStoneState_1 + ActorRollingStone::func_ov031_020f8a58, // ActorRollingStoneState_2 + ActorRollingStone::func_ov031_020f8bc4, // ActorRollingStoneState_3 + ActorRollingStone::func_ov031_020f92cc, // ActorRollingStoneState_4 + ActorRollingStone::func_ov031_020f93bc, // ActorRollingStoneState_5 + ActorRollingStone::func_ov031_020f8f0c, // ActorRollingStoneState_6 + ActorRollingStone::func_ov031_020f8f30, // ActorRollingStoneState_7 + ActorRollingStone::func_ov031_020f9050, // ActorRollingStoneState_8 + ActorRollingStone::func_ov031_020f91ac, // ActorRollingStoneState_9 + ActorRollingStone::func_ov031_020f9554, // ActorRollingStoneState_10 +}; + +DECL_PROFILE(ActorProfileRollingStone); + +Actor *ActorProfileRollingStone::Create() { + return new(HeapIndex_2) ActorRollingStone(); +} + +ActorProfileRollingStone::ActorProfileRollingStone() : + ActorProfile_Derived1(ActorId_RLST) { + this->mUnk_04.Init(FLOAT_TO_FX32(0.8f)); +} + +// non-matching +bool ActorRollingStone_104::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) {} + +// non-matching +void ActorRollingStone_104::vfunc_10() {} + +void ActorRollingStone_D4::vfunc_10(Actor *param1) { + if (param1->GetActorId() != ActorId_RLST) { + return; + } + this->mUnk_2C->SetState(ActorRollingStoneState_6); + ((ActorRollingStone *) param1)->SetState(ActorRollingStoneState_6); +} + +// non-matching +ActorRollingStone::ActorRollingStone() : + mUnk_94(G3d_GetModelPtr(GET_PROFILE(ActorProfileRollingStone)->mUnk_3C.mUnk_50)), + mUnk_9C(0x1), + mUnk_AC(this), + mUnk_D4(this), + mUnk_10C(data_027e0130), + mUnk_138(0x0), + mUnk_14C(0x0), + mUnk_150(0x0), + mUnk_152(0x0), + mUnk_154(0x0), + mUnk_156(0x0), + mUnk_158(true), + mUnk_159(false), + mUnk_15A(-0x1), + mUnk_15B(0x0) { + this->mUnk_4A[1] = true; + this->mUnk_AC.mUnk_24 = true; + + this->mUnk_44 = 0x9F; + + this->mUnk_38 = &this->mUnk_A0.mUnk_00; + this->mUnk_38->mUnk_08 = 0x3; +} + +bool ActorRollingStone::vfunc_18(unk32 param1) { + this->mUnk_13C.Init(FLOAT_TO_FX32(0.8f)); + + if (data_027e09a4->mUnk_00.sceneIndex == SceneIndex_f_flame) { + this->mUnk_13C.Init(FLOAT_TO_FX32(0.75f)); + } + + this->mUnk_34 = &this->mUnk_13C; + this->mUnk_30 = &this->mUnk_13C; + this->mUnk_15A = this->mUnk_5C.mUnk_0E; + + this->mUnk_14C = this->mUnk_5C.mParams[0]; + + switch (this->mUnk_5C.mParams[0]) { + case 0x1: + this->mPos.y += FLOAT_TO_FX32(3.6f); + if (this->mUnk_5C.mUnk_1A[0] == 0) { + this->SetState(ActorRollingStoneState_2); + break; + } + if (!this->func_ov000_02098a60(0x0)) { + this->SetState(ActorRollingStoneState_0); + break; + } + return false; + case 0x2: + this->SetState(ActorRollingStoneState_7); + break; + case 0x0: + default: + this->SetState(ActorRollingStoneState_2); + break; + } + return true; +} + +void ActorRollingStone::vfunc_20() { + this->IsTimerOut(); + + CALL_PTMF(PTMF, data_ov031_02114a94[this->mState]); + + if (this->mState == ActorRollingStoneState_10) { + return; + } + + this->func_ov000_02098838(); + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + this->func_ov031_020f97cc(); +} + +void ActorRollingStone::SetState(ActorState state) { + this->mState = state; + this->mUnk_52 = 0xFFFF; + this->mUnk_50 = 0x0; + this->mUnk_38->mUnk_08 = 0x3; + CALL_PTMF(PTMF, data_ov031_02114aec[this->mState]); +} + +void ActorRollingStone::func_ov031_020f8880() { + VecFx32 vec = this->mPos; + vec.y += FLOAT_TO_FX32(0.8f); + + data_027e0cec->func_ov000_0209feac(0x8AF, &vec, 0x4, 0x0, 0x0); + data_027e0cec->func_ov000_0209feac(0x8B0, &vec, 0x4, 0x0, 0x0); + data_027e0cec->func_ov000_0209feac(0x8B1, &vec, 0x4, 0x0, 0x0); + + data_027e09a8->func_ov000_02071b30(0x98A0, &this->mPos, 0x0); + + this->func_ov000_020984d0(); +} + +void ActorRollingStone::vfunc_2C(unk32 param1) { + if (!this->func_01fff5d0(param1, 0x0) || !this->mUnk_158) { + return; + } + VecFx32 sp18; + VecFx32_Init(this->mPos.x, this->mPos.y + FLOAT_TO_FX32(0.8f), this->mPos.z, &sp18); + + VecFx32 spC; + VecFx32_Init(FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), FLOAT_TO_FX32(1.0f), &spC); + + this->mUnk_94.vfunc_10(&spC, &this->mUnk_10C, &sp18); + + data_027e09b4->func_01fff60c(&this->mPos, 0x99A, 0x99A, 0x1F, 0x0, 0x0); +} + +void ActorRollingStone::func_ov031_020f89f4() { + this->mUnk_2C = 0x0; + this->mUnk_158 = false; +} + +void ActorRollingStone::func_ov031_020f8a04() { + if (!this->func_ov000_02098a60(0x0)) { + return; + } + this->SetState(ActorRollingStoneState_2); +} + +void ActorRollingStone::func_ov031_020f8a2c() { + this->mUnk_158 = true; +} + +void ActorRollingStone::func_ov031_020f8a38() {} + +void ActorRollingStone::func_ov031_020f8a3c() { + unk32 data = data_ov000_020aecf8; + this->mUnk_158 = true; + this->mUnk_2C = data; +} + +void ActorRollingStone::func_ov031_020f8a58() { + this->func_ov000_02098910(NULL, 0x10); + if ((this->mUnk_46 & 0x1) != 0) { + if (this->mUnk_15A > 0x0) { + this->SetState(ActorRollingStoneState_10); + } else { + this->SetState(ActorRollingStoneState_3); + } + data_027e09a8->func_ov000_02071b30(0x989E, &this->mPos, 0x0); + return; + } + + if (this->mPos.y <= FLOAT_TO_FX32(-5.0002)) { + this->func_ov000_020984d0(); + return; + } + + this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel); + + UnkStruct_ov000_0207de98 param; + VecFx32_Copy(&this->mPos, ¶m.vec); + param.param1 = 0xB33; + param.param2 = 0x1000; + data_027e09c0->func_ov000_0207de98(this->mRef, ¶m, this->mUnk_38); +} + +void ActorRollingStone::func_ov031_020f8b58() { + this->mUnk_2C = 0x0; + + switch (((u32) (this->mUnk_5C.mInitialAngle + 0x2000) << 0x10) >> 0x1E) { + case 0x1: + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.x = FLOAT_TO_FX32(0.105f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + case 0x3: + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.x = FLOAT_TO_FX32(-0.1052f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + default: + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.105f); + break; + } + this->func_ov031_020f9af4(); +} + +// non-matching +void ActorRollingStone::func_ov031_020f8bc4() { + this->mUnk_3C = &this->mUnk_AC; + this->func_ov031_020f9af8(); + + ActorRollingStone_104 spC = ActorRollingStone_104(); + this->func_ov000_02098910(&spC, 0x10); + + if ((this->mUnk_46 & 0x1C) != 0x0 || (this->mUnk_46 & 0x80) != 0x0) { + if ((this->mUnk_46 & 0x10) == 0x0) { + this->SetState(ActorRollingStoneState_6); + return; + } + } else if ((this->mUnk_46 & 0x1) == 0x0) { + this->SetState(ActorRollingStoneState_5); + return; + } + + this->func_ov031_020f8de8(); + VecFx32 sp38; + unk16 sinValue = SIN((u16) this->mAngle); + unk16 cosValue = COS((u16) this->mAngle); + + sp38.x = MUL_FX32(sinValue, FLOAT_TO_FX32(1.0f)); + sp38.z = MUL_FX32(cosValue, FLOAT_TO_FX32(1.0f)); + sp38.y = FLOAT_TO_FX32(0.0f); + + VecFx32 sp28; + this->vfunc_10(&sp28); + + sp28.z += FLOAT_TO_FX32(0.05f); + + if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28, 0x2, &sp38, this->mRef)) { + return; + } + this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel); + + this->vfunc_10(&this->mUnk_D4.mUnk_0C); + + VecFx32 sp14; + VecFx32_Copy(&this->mPos, &sp14); + + data_027e09c0->func_ov000_0207e58c(this->mRef, 0xB, 0x4, &this->mUnk_D4); + UnkStruct_ov000_0207de98 param; + VecFx32_Copy(&this->mPos, ¶m.vec); + param.param1 = 0xB33; + param.param2 = 0x1000; + data_027e09c0->func_ov000_0207de98(this->mRef, ¶m, this->mUnk_38); +} + +void ActorRollingStone::func_ov031_020f8de8() { + this->IsInternalTimerOut2(); + this->func_ov000_020989e0(); + + if ((this->mUnk_AC.mUnk_08 & 0x3FFFF) == 0) { + return; + } + + switch (this->mUnk_AC.mUnk_1C) { + case 0x4: + data_027e0d38->func_ov031_020d9c44(0x4); + return; + case 0xC: + if ((u32) this->mUnk_154 < (u32) this->mUnk_156) { + return; + } + this->mUnk_156 = 0x14; + this->mUnk_154 = 0x0; + case 0x8: + case 0xD: + this->func_ov017_020bfb18(&this->mUnk_AC); + return; + case 0x1: + this->SetState(ActorRollingStoneState_6); + return; + case 0x0: + case 0x2: + case 0x3: + case 0x5: + case 0x6: + case 0x7: + case 0x9: + case 0xA: + case 0xB: + case 0xE: + case 0xF: + return; + } +} + +void ActorRollingStone::func_ov031_020f8ed4() { + for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) { + ptr->func_ov000_020a0334(); + } + this->func_ov031_020f8880(); +} + +void ActorRollingStone::func_ov031_020f8f0c() {} + +// non-matching +void ActorRollingStone::func_ov031_020f8f10() { + this->mUnk_2C = 0x0; + this->mUnk_158 = false; + this->mUnk_152 = this->mUnk_5C.mParams[1]; + this->mUnk_150 = 0x0; +} + +void ActorRollingStone::func_ov031_020f8f30() { + if (this->mUnk_5C.mUnk_1A[0] != 0x0 && !this->func_ov000_02098a60(0x0)) { + return; + } + + if (!this->IsInternalTimerOut1()) { + return; + } + ActorParams sp14; + sp14.mUnk_28 = 0x0; + sp14.func_ov000_020975f8(); + + sp14.mUnk_28 = this->mRef; + VecFx32 vec = this->mPos; + VecFx32_Copy(&vec, &sp14.mInitialPos); + + sp14.mInitialAngle = this->mAngle; + sp14.mParams[0] = 0x1; + + ActorRef ref; + this->func_ov000_020973f4(&ref, &data_ov000_020b539c_eur, ActorId_RLST, &sp14, 0x0); + this->mUnk_150 = 0; + this->mUnk_152 = this->mUnk_5C.mParams[1]; +} + +void ActorRollingStone::func_ov031_020f9018() { + this->mUnk_2C = 0x0; + + fx32 angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E; + if (angle == 0x1 || angle == 0x3) { + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + } else { + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + } +} + +void ActorRollingStone::func_ov031_020f9050() { + this->mUnk_3C = &this->mUnk_AC; + this->func_ov031_020f8de8(); + + fx32 angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E; + if (angle == 0x1 || angle == 0x3) { + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + func_01ff916c(&this->mVel.x, 0x0, 0x10); + } else { + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + func_01ff916c(&this->mVel.z, 0x0, 0x10); + } + + this->func_ov000_02098910(NULL, 0x10); + + UnkStruct_ov000_0207de98 unk; + VecFx32_Copy(&this->mPos, &unk.vec); + unk.param1 = 0xB33; + unk.param2 = 0x1000; + + data_027e09c0->func_ov000_0207de98(this->mRef, &unk, this->mUnk_38); + + angle = ((u32) (this->mAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E; + if (angle == 0x1 || angle == 0x3) { + if (this->mVel.x != FLOAT_TO_FX32(0.0f)) { + return; + } + this->SetState(ActorRollingStoneState_9); + return; + } + if (this->mVel.z != FLOAT_TO_FX32(0.0f)) { + return; + } + this->SetState(ActorRollingStoneState_9); +} + +void ActorRollingStone::func_ov031_020f916c() { + this->mUnk_2C = 0x0; + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + this->mUnk_44 = 0xBF; + + if (!this->mUnk_159) { + return; + } + + data_027e0d8c->func_ov093_02166220(); +} + +void ActorRollingStone::func_ov031_020f91ac() { + this->mUnk_3C = &this->mUnk_AC; + this->func_ov031_020f8de8(); + + this->func_ov000_02098910(NULL, 0x10); + UnkStruct_ov000_0207de98 unk; + VecFx32_Copy(&this->mPos, &unk.vec); + unk.param1 = 0xB33; + unk.param2 = 0x1000; + + data_027e09c0->func_ov000_0207de98(this->mRef, &unk, this->mUnk_38); + + if (!this->mUnk_159) { + return; + } + if (!this->func_ov031_020f9ba4()) { + return; + } + this->func_ov000_020984d0(); +} + +void ActorRollingStone::func_ov031_020f9250() { + this->vfunc_40(); + + this->mUnk_2C = 0x0; + for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) { + ptr->func_ov000_020a0334(); + } + + this->mUnk_AC.func_ov000_02097bec(); + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + + this->mUnk_13C.pos.x = FLOAT_TO_FX32(0.0f); + this->mUnk_13C.pos.y = FLOAT_TO_FX32(0.5f); + this->mUnk_13C.pos.z = FLOAT_TO_FX32(0.0f); + this->mUnk_13C.size = FLOAT_TO_FX32(0.5f); + + this->mUnk_44 = (s16) this->mUnk_44 & ~0x20; +} + +void ActorRollingStone::func_ov031_020f92cc() { + this->vfunc_44(); + + if (GET_FLAG(this->mFlags, ActorFlag_5)) { + this->SetState(ActorRollingStoneState_6); + return; + } + + this->func_ov000_02098910(NULL, 0x10); + + if ((this->mUnk_46 & 0x1C) == 0x0 && (this->mUnk_46 & 0x80) == 0x0) { + return; + } + + data_027e0d38->func_ov031_020d9c44(0x8); + this->SetState(ActorRollingStoneState_6); +} + +// non-matching +void ActorRollingStone::func_ov031_020f9340() { + fx32 angle = ((u32) (this->mUnk_5C.mInitialAngle + DEG_TO_ANG(45)) << 0x10) >> 0x1E; + this->mUnk_2C = data_ov000_020aecf8; + + switch (angle) { + case 0x1: + this->mVel.x = FLOAT_TO_FX32(0.105f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + case 0x3: + this->mVel.x = FLOAT_TO_FX32(-0.1052f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + default: + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.105f); + break; + } + + this->mUnk_38->mUnk_08 = 0x4; +} + +void ActorRollingStone::func_ov031_020f93bc() { + this->mUnk_3C = &this->mUnk_AC; + this->func_ov000_02098910(&this->mUnk_104, 0x10); + + if ((this->mUnk_46 & 0x1C) == 0x0 && (this->mUnk_46 & 0x80) == 0x0) { + if ((this->mUnk_46 & 0x1) != 0x0) { + if ((this->mUnk_108 & 0x1) != 0x0) { + this->func_ov000_020984d0(); + return; + } + this->SetState(ActorRollingStoneState_3); + data_027e09a8->func_ov000_02071b30(0x989E, &this->mPos, 0x0); + return; + } + } + if (this->mPos.y <= FLOAT_TO_FX32(-5.0002f)) { + this->func_ov000_020984d0(); + return; + } + this->func_ov000_020989e0(); + + this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel); +} + +void ActorRollingStone::func_ov031_020f9494() { + this->mUnk_2C = 0x0; + + switch ((u32) (this->mUnk_5C.mInitialAngle + DEG_TO_ANG(45)) << 0x10 >> 0x1E) { + case 0x1: + this->mVel.x = FLOAT_TO_FX32(0.105f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + case 0x3: + this->mVel.x = FLOAT_TO_FX32(-0.1052f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.0f); + break; + default: + this->mVel.x = FLOAT_TO_FX32(0.0f); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = FLOAT_TO_FX32(0.105f); + break; + } + this->func_ov031_020f9af4(); + + u8 sp00 = this->mUnk_15A; + this->mUnk_15C.func_ov024_020d6680(&this->mPos, &sp00); + + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + VecFx32_Copy(&this->mPos, &this->mPrevPos); +} + +// non-matching +void ActorRollingStone::func_ov031_020f9554() { + this->mUnk_3C = &this->mUnk_AC; + this->func_ov031_020f9af8(); + + ActorRollingStone_104 spC = ActorRollingStone_104(); + this->func_ov000_02098910(&spC, 0x10); + + if ((this->mUnk_46 & 0x1C) != 0x0 || (this->mUnk_46 & 0x80) != 0x0) { + if ((this->mUnk_46 & 0x10) == 0x0) { + this->SetState(ActorRollingStoneState_6); + return; + } + } else if ((this->mUnk_46 & 0x1) == 0x0) { + this->SetState(ActorRollingStoneState_5); + return; + } + + this->func_ov031_020f8de8(); + + VecFx32 sp38; + unk16 sinValue = SIN((u16) this->mAngle); + unk16 cosValue = COS((u16) this->mAngle); + + sp38.x = MUL_FX32(sinValue, FLOAT_TO_FX32(0.25f)); + sp38.y = FLOAT_TO_FX32(0.0f); + sp38.z = MUL_FX32(cosValue, FLOAT_TO_FX32(0.25f)); + + VecFx32 sp28; + this->vfunc_10(&sp28); + + sp28.z += FLOAT_TO_FX32(0.05f); + + if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28, 0x2, &sp38, this->mRef)) { + return; + } + this->func_ov000_02098ab4(0x2, 0x5, 0x1, 0x0); + + this->vfunc_10(&this->mUnk_D4.mUnk_0C); + + data_027e09c0->func_ov000_0207e58c(this->mRef, 0xB, 0x4, &this->mUnk_D4); + + UnkStruct_ov000_0207de98 unk; + VecFx32_Copy(&this->mPos, &unk.vec); + unk.param1 = 0xB33; + unk.param2 = 0x1000; + data_027e09c0->func_ov000_0207de98(this->mRef, &unk, this->mUnk_38); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + + this->mUnk_15C.func_ov024_020d69d8(&this->mPos, &this->mAngle, &this->mVel, 0x1AE, 0xE39, 0x1AE); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + this->func_ov031_020f98e4(); +} + +void ActorRollingStone::func_ov031_020f97cc() { + Mat3p sp00; + + switch ((u32) (this->mUnk_5C.mInitialAngle + DEG_TO_ANG(45)) << 0x10 >> 0x1E) { + case 0x1: + case 0x3: { + fx32 diffX = this->mPos.x - this->mPrevPos.x; + fx32 angleX = -MUL_FX32(diffX, FLOAT_TO_FX32(2.6668f)); + Mat3p_InitZRotation(&sp00, SIN((u16) angleX), COS((u16) angleX)); + break; + } + case 0x0: + case 0x2: { + fx32 diffZ = this->mPos.z - this->mPrevPos.z; + fx32 angleZ = MUL_FX32(diffZ, FLOAT_TO_FX32(2.6668f)); + Mat3p_InitXRotation(&sp00, SIN((u16) angleZ), COS((u16) angleZ)); + break; + } + default: + break; + } + func_01ffa60c(&this->mUnk_10C, &sp00, &this->mUnk_10C); +} + +void ActorRollingStone::func_ov031_020f98e4() { + unk16 sp00 = this->mAngle; + + Mat3p sp34; + switch (func_02017e8c(&sp00)) { + case 0x2: + case 0x6: + fx32 diffX = this->mPos.x - this->mPrevPos.x; + fx32 angleX = -MUL_FX32(diffX, FLOAT_TO_FX32(2.6668f)); + Mat3p_InitZRotation(&sp34, SIN((u16) angleX), COS((u16) angleX)); + break; + case 0x0: + case 0x4: + fx32 diffZ = this->mPos.z - this->mPrevPos.z; + fx32 angleZ = MUL_FX32(diffZ, FLOAT_TO_FX32(2.6668f)); + Mat3p_InitXRotation(&sp34, SIN((u16) angleZ), COS((u16) angleZ)); + break; + case 0x5: + VecFx32 sp28 = data_ov031_02110b98; + + unk32 ret = func_01ffb9cc(&this->mPrevPos, &this->mPos); + fx32 angleRet1 = -MUL_FX32(ret, FLOAT_TO_FX32(2.6668f)); + + Mat3p_func_01ff8248(&sp34, &sp28, SIN((u16) angleRet1), COS((u16) angleRet1)); + break; + case 0x1: + VecFx32 sp1C = data_ov031_02110ba4; + + unk32 ret2 = func_01ffb9cc(&this->mPrevPos, &this->mPos); + fx32 angleRet2 = MUL_FX32(ret2, FLOAT_TO_FX32(2.6668f)); + + Mat3p_func_01ff8248(&sp34, &sp1C, SIN((u16) angleRet2), COS((u16) angleRet2)); + break; + case 0x7: + VecFx32 sp10 = data_ov031_02110bb0; + + unk32 ret3 = func_01ffb9cc(&this->mPrevPos, &this->mPos); + fx32 angleRet3 = MUL_FX32(ret3, FLOAT_TO_FX32(2.6668f)); + + Mat3p_func_01ff8248(&sp34, &sp10, SIN((u16) angleRet3), COS((u16) angleRet3)); + break; + case 0x3: + VecFx32 sp04 = data_ov031_02110bbc; + + unk32 ret4 = func_01ffb9cc(&this->mPrevPos, &this->mPos); + fx32 angleRet4 = -MUL_FX32(ret4, FLOAT_TO_FX32(2.6668f)); + + Mat3p_func_01ff8248(&sp34, &sp04, SIN((u16) angleRet4), COS((u16) angleRet4)); + break; + default: + break; + } + + func_01ffa60c(&this->mUnk_10C, &sp34, &this->mUnk_10C); +} + +void ActorRollingStone::func_ov031_020f9af4() {} + +// non-matching +void ActorRollingStone::func_ov031_020f9af8() { + const fx32 y = this->mPos.y + FLOAT_TO_FX32(0.4f); + const fx32 x = this->mPos.x; + const fx32 z = this->mVel.z; + for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) { + UnkSystem7_UnkStruct_00 *temp = ptr->mUnk_00; + if (temp != NULL) { + temp->mUnk_28 = x + ptr->mUnk_00->mUnk_20->mUnk_04.x; + temp->mUnk_2C = y + ptr->mUnk_00->mUnk_20->mUnk_04.y; + temp->mUnk_30 = z + ptr->mUnk_00->mUnk_20->mUnk_04.z; + } + } + data_027e09a8->func_ov000_02071d34(&this->mRef, 0x989F, &this->mPos, 0x0); +} + +// non-matching +bool ActorRollingStone::func_ov031_020f9ba4() { + if (!data_027e0ce0->func_01fff1a4()) { + VecFx32 *pVec = data_027e0ce0->func_01fff148(0x0); + VecFx32 sp18; + + sp18.x = this->mPos.x - pVec->x; + sp18.y = this->mPos.y - pVec->y; + sp18.z = this->mPos.z - pVec->z; + + return VecFx32_Length(&sp18) > FLOAT_TO_FX32(8.0f); + } + + VecFx32 *pVec1 = data_027e0ce0->func_01fff148(0x0); + VecFx32 *pVec2 = data_027e0ce0->func_01fff148(0x1); + + VecFx32 sp18; + sp18.x = this->mPos.x - pVec1->x; + sp18.y = this->mPos.y - pVec1->y; + sp18.z = this->mPos.z - pVec1->z; + + fx32 x = this->mPos.x - pVec2->x; + fx32 y = this->mPos.y - pVec2->y; + fx32 z = this->mPos.z - pVec2->z; + + if (data_027e0ce0->func_ov000_0208be70(sp18)) { + sp18.x = x; + sp18.y = y; + sp18.z = z; + } + + return VecFx32_Length(&sp18) > FLOAT_TO_FX32(8.0f); +} + +void ActorRollingStone::func_ov031_020f9cc0() { + this->mUnk_159 = true; + this->SetState(ActorRollingStoneState_8); +} diff --git a/src/031_Land/Actor/ActorUnkRLST.cpp b/src/031_Land/Actor/ActorUnkRLST.cpp deleted file mode 100644 index 9f013f58..00000000 --- a/src/031_Land/Actor/ActorUnkRLST.cpp +++ /dev/null @@ -1,60 +0,0 @@ -//! TODO: This file was generated automatically and might contain errors - -#include "Actor/ActorUnkRLST.hpp" -#include "System/SysNew.hpp" - -DECL_PROFILE(ActorProfileUnkRLST); - -Actor *ActorProfileUnkRLST::Create() { - return new(HeapIndex_2) ActorUnkRLST(); -} - -ActorProfileUnkRLST::ActorProfileUnkRLST() : - ActorProfile_Derived1(ActorId_RLST) {} - -ActorUnkRLST::ActorUnkRLST() {} - -void ActorUnkRLST::func_ov031_020f8354(void) {} -void ActorUnkRLST::func_ov031_020f83e4(void) {} -void ActorUnkRLST::func_ov031_020f849c(void) {} -void ActorUnkRLST::func_ov031_020f8674(void) {} -void ActorUnkRLST::func_ov031_020f8688(void) {} -void ActorUnkRLST::func_ov031_020f869c(void) {} -void ActorUnkRLST::func_ov031_020f878c(void) {} -void ActorUnkRLST::func_ov031_020f8824(void) {} -void ActorUnkRLST::func_ov031_020f8880(void) {} -void ActorUnkRLST::func_ov031_020f8948(void) {} -void ActorUnkRLST::func_ov031_020f89f4(void) {} -void ActorUnkRLST::func_ov031_020f8a04(void) {} -void ActorUnkRLST::func_ov031_020f8a2c(void) {} -void ActorUnkRLST::func_ov031_020f8a38(void) {} -void ActorUnkRLST::func_ov031_020f8a3c(void) {} -void ActorUnkRLST::func_ov031_020f8a58(void) {} -void ActorUnkRLST::func_ov031_020f8b58(void) {} -void ActorUnkRLST::func_ov031_020f8bc4(void) {} -void ActorUnkRLST::func_ov031_020f8de8(void) {} -void ActorUnkRLST::func_ov031_020f8ed4(void) {} -void ActorUnkRLST::func_ov031_020f8f0c(void) {} -void ActorUnkRLST::func_ov031_020f8f10(void) {} -void ActorUnkRLST::func_ov031_020f8f30(void) {} -void ActorUnkRLST::func_ov031_020f9018(void) {} -void ActorUnkRLST::func_ov031_020f9050(void) {} -void ActorUnkRLST::func_ov031_020f916c(void) {} -void ActorUnkRLST::func_ov031_020f91ac(void) {} -void ActorUnkRLST::func_ov031_020f9250(void) {} -void ActorUnkRLST::func_ov031_020f92cc(void) {} -void ActorUnkRLST::func_ov031_020f9340(void) {} -void ActorUnkRLST::func_ov031_020f93bc(void) {} -void ActorUnkRLST::func_ov031_020f9494(void) {} -void ActorUnkRLST::func_ov031_020f9554(void) {} -void ActorUnkRLST::func_ov031_020f97cc(void) {} -void ActorUnkRLST::func_ov031_020f98e4(void) {} -void ActorUnkRLST::func_ov031_020f9af4(void) {} -void ActorUnkRLST::func_ov031_020f9af8(void) {} -void ActorUnkRLST::func_ov031_020f9ba4(void) {} -void ActorUnkRLST::func_ov031_020f9cc0(void) {} -void ActorUnkRLST::func_ov031_020f9cf4(void) {} -void ActorUnkRLST::func_ov031_020f9d60(void) {} - -ActorUnkRLST::~ActorUnkRLST() {} -ActorProfileUnkRLST::~ActorProfileUnkRLST() {} diff --git a/src/031_Land/MapObject/MapObjectDoorBase.cpp b/src/031_Land/MapObject/MapObjectDoorBase.cpp index 2de9ac79..c3665b4f 100644 --- a/src/031_Land/MapObject/MapObjectDoorBase.cpp +++ b/src/031_Land/MapObject/MapObjectDoorBase.cpp @@ -4,6 +4,8 @@ #include "Unknown/UnkStruct_0204af1c.hpp" #include "Unknown/UnkStruct_027e0998.hpp" #include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" + #include extern "C" unk32 func_01ffb464(unk32 param1); diff --git a/tools/configure.py b/tools/configure.py index 0bd746bd..2df51171 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -485,7 +485,7 @@ config.libs = [ Object("031_Land/Actor/ActorUnkNORE.cpp"), Object("031_Land/Actor/ActorUnkNTTZ.cpp"), Object("031_Land/Actor/ActorPot.cpp"), - Object("031_Land/Actor/ActorUnkRLST.cpp"), + Object("031_Land/Actor/ActorRollingStone.cpp"), Object("031_Land/Actor/ActorUnkRMTG.cpp"), Object("031_Land/Actor/ActorUnkROCK.cpp"), Object("031_Land/Actor/ActorUnkSCCN.cpp"),