diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 2959fdf7..55e8dc41 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -159,7 +159,7 @@ _ZNK18UnkStruct_027e09a421GetCurrentCourseEntryEv kind:function(arm,size=0x20) a _ZN18UnkStruct_027e09b813func_01ffd420Ev kind:function(arm,size=0x1c) addr:0x01ffd420 func_01ffd43c kind:function(arm,size=0x60) addr:0x01ffd43c func_01ffd49c kind:function(arm,size=0x1a4) addr:0x01ffd49c -func_01ffd640 kind:function(arm,size=0x128) addr:0x01ffd640 +_ZN21UnkStruct_027e09bc_0C13func_01ffd640EP7VecFx32 kind:function(arm,size=0x128) addr:0x01ffd640 func_01ffd768 kind:function(arm,size=0x138) addr:0x01ffd768 func_01ffd8a0 kind:function(arm,size=0x190) addr:0x01ffd8a0 func_01ffda30 kind:function(arm,size=0x2ec) addr:0x01ffda30 @@ -203,7 +203,7 @@ _ZN12ActorManager13func_01fff350EPvPP5Actor kind:function(arm,size=0x64) addr:0x _ZN12ActorManager13func_01fff3b4E8ActorRef kind:function(arm,size=0x8c) addr:0x01fff3b4 func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440 _ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458 -_ZN5Actor8vfunc_10Ev kind:function(arm,size=0x34) addr:0x01fff464 +_ZN5Actor8vfunc_10EP7VecFx32 kind:function(arm,size=0x34) addr:0x01fff464 _ZN16MapObjectManager13func_01fff498E5Vec2b kind:function(arm,size=0x34) addr:0x01fff498 _ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc _ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 5e4aa25b..c25ef019 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -66,7 +66,7 @@ _ZN19func_ov000_02057734D0Ev kind:function(arm,size=0x1c) addr:0x02057734 func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057750 func_ov000_0205775c kind:function(thumb,size=0x20) addr:0x0205775c func_ov000_0205777c kind:function(thumb,size=0xe) addr:0x0205777c -_ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205778c +_ZN10UnkSystem5C2EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205778c _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x020577a4 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577f8 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02057830 @@ -350,7 +350,7 @@ func_ov000_0205ca34 kind:function(arm,size=0x40) addr:0x0205ca34 func_ov000_0205ca74 kind:function(arm,size=0x40) addr:0x0205ca74 func_ov000_0205cab4 kind:function(arm,size=0x28) addr:0x0205cab4 func_ov000_0205cadc kind:function(arm,size=0xe8) addr:0x0205cadc -func_ov000_0205cbc4 kind:function(arm,size=0x17c) addr:0x0205cbc4 +_ZN5Actor19func_ov000_0205cbc4EjP7VecFx32 kind:function(arm,size=0x17c) addr:0x0205cbc4 func_ov000_0205cd40 kind:function(arm,size=0x11c) addr:0x0205cd40 func_ov000_0205ce5c kind:function(arm,size=0x128) addr:0x0205ce5c func_ov000_0205cf84 kind:function(arm,size=0x178) addr:0x0205cf84 @@ -1069,7 +1069,7 @@ _ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,siz func_ov000_02071de4 kind:function(arm,size=0xa0) addr:0x02071de4 func_ov000_02071e84 kind:function(arm,size=0x14) addr:0x02071e84 func_ov000_02071e98 kind:function(arm,size=0x14) addr:0x02071e98 -func_ov000_02071eac kind:function(arm,size=0x8c) addr:0x02071eac +_ZN18UnkStruct_027e09a819func_ov000_02071eacEP7VecFx32 kind:function(arm,size=0x8c) addr:0x02071eac func_ov000_02071f38 kind:function(arm,size=0x50) addr:0x02071f38 func_ov000_02071f88 kind:function(arm,size=0x10) addr:0x02071f88 _ZN21UnkStruct_027e09ac_1419func_ov000_02071f98Ev kind:function(arm,size=0x13c) addr:0x02071f98 @@ -1381,10 +1381,10 @@ _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 -_ZN19func_ov000_0207b6c0D2Ev kind:function(arm,size=0x30) addr:0x0207b6c0 +_ZN23ActorShotArrow_194_BaseD2Ev 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 -func_ov000_0207b71c kind:function(arm,size=0x38) addr:0x0207b71c +_ZN23ActorShotArrow_194_Base8vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207b71c func_ov000_0207b754 kind:function(arm,size=0x80) addr:0x0207b754 func_ov000_0207b7d4 kind:function(arm,size=0x40) addr:0x0207b7d4 func_ov000_0207b814 kind:function(arm,size=0x80) addr:0x0207b814 @@ -1412,7 +1412,7 @@ func_ov000_0207bcfc kind:function(arm,size=0x88) addr:0x0207bcfc func_ov000_0207bd84 kind:function(arm,size=0x260) addr:0x0207bd84 func_ov000_0207bfe4 kind:function(arm,size=0x4) addr:0x0207bfe4 _ZN19func_ov000_0207bfe8D0Ev kind:function(arm,size=0x14) addr:0x0207bfe8 -func_ov000_0207bffc kind:function(arm,size=0x4) addr:0x0207bffc +_ZN23ActorShotArrow_178_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207bffc _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x0207c000 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEv kind:function(arm,size=0x8) addr:0x0207c008 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207c010 @@ -1469,12 +1469,12 @@ func_ov000_0207e20c kind:function(arm,size=0x34) addr:0x0207e20c func_ov000_0207e240 kind:function(arm,size=0x14) addr:0x0207e240 func_ov000_0207e254 kind:function(arm,size=0x14) addr:0x0207e254 func_ov000_0207e268 kind:function(arm,size=0x2c) addr:0x0207e268 -func_ov000_0207e294 kind:function(arm,size=0x118) addr:0x0207e294 +_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 func_ov000_0207e4dc kind:function(arm,size=0x84) addr:0x0207e4dc func_ov000_0207e560 kind:function(arm,size=0x2c) addr:0x0207e560 -func_ov000_0207e58c kind:function(arm,size=0xa4) addr:0x0207e58c +_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP18ActorShotArrow_194 kind:function(arm,size=0xa4) addr:0x0207e58c func_ov000_0207e630 kind:function(arm,size=0x38) addr:0x0207e630 func_ov000_0207e668 kind:function(arm,size=0x50) addr:0x0207e668 func_ov000_0207e6b8 kind:function(arm,size=0x14) addr:0x0207e6b8 @@ -1577,8 +1577,8 @@ func_ov000_02080950 kind:function(arm,size=0x48) addr:0x02080950 func_ov000_02080998 kind:function(arm,size=0x40) addr:0x02080998 func_ov000_020809d8 kind:function(arm,size=0x6c) addr:0x020809d8 _ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x02080a44 -func_ov000_02080a5c kind:function(arm,size=0x1c) addr:0x02080a5c -func_ov000_02080a78 kind:function(arm,size=0x18) addr:0x02080a78 +_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02080a5c +_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02080a78 func_ov000_02080a90 kind:function(arm,size=0x1c) addr:0x02080a90 func_ov000_02080aac kind:function(arm,size=0x18) addr:0x02080aac func_ov000_02080ac4 kind:function(arm,size=0x68) addr:0x02080ac4 @@ -1930,11 +1930,11 @@ func_ov000_0208bbb4 kind:function(arm,size=0x10) addr:0x0208bbb4 func_ov000_0208bbc4 kind:function(arm,size=0x10) addr:0x0208bbc4 func_ov000_0208bbd4 kind:function(arm,size=0x2c) addr:0x0208bbd4 func_ov000_0208bc00 kind:function(arm,size=0x1c) addr:0x0208bc00 -func_ov000_0208bc1c kind:function(arm,size=0x40) addr:0x0208bc1c +_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiii kind:function(arm,size=0x40) addr:0x0208bc1c func_ov000_0208bc5c kind:function(arm,size=0x40) addr:0x0208bc5c _ZN18UnkStruct_027e0ce019func_ov000_0208bc9cEii kind:function(arm,size=0x84) addr:0x0208bc9c func_ov000_0208bd20 kind:function(arm,size=0x10) addr:0x0208bd20 -func_ov000_0208bd30 kind:function(arm,size=0x18) addr:0x0208bd30 +_ZN18UnkStruct_027e0ce019func_ov000_0208bd30Ebiii kind:function(arm,size=0x18) addr:0x0208bd30 func_ov000_0208bd48 kind:function(arm,size=0x34) addr:0x0208bd48 func_ov000_0208bd7c kind:function(arm,size=0x10) addr:0x0208bd7c func_ov000_0208bd8c kind:function(arm,size=0x10) addr:0x0208bd8c @@ -2306,7 +2306,7 @@ func_ov000_020980e0 kind:function(arm,size=0x80) addr:0x020980e0 func_ov000_02098160 kind:function(arm,size=0x80) addr:0x02098160 func_ov000_020981e0 kind:function(arm,size=0x64) addr:0x020981e0 func_ov000_02098244 kind:function(arm,size=0x64) addr:0x02098244 -func_ov000_020982a8 kind:function(arm,size=0x18) addr:0x020982a8 +_ZN23ActorShotArrow_178_BaseC2Ev 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 _ZN19func_ov000_02098358D1Ev kind:function(arm,size=0x14) addr:0x02098358 @@ -2339,7 +2339,7 @@ func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c func_ov000_020986b4 kind:function(arm,size=0x48) addr:0x020986b4 func_ov000_020986fc kind:function(arm,size=0x7c) addr:0x020986fc func_ov000_02098778 kind:function(arm,size=0x88) addr:0x02098778 -func_ov000_02098800 kind:function(arm,size=0x38) addr:0x02098800 +_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 @@ -2347,7 +2347,7 @@ _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 -func_ov000_02098ab4 kind:function(arm,size=0x74) addr:0x02098ab4 +_ZN5Actor19func_ov000_02098ab4EbiiP7VecFx32 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 @@ -2670,7 +2670,7 @@ func_ov000_0209fe6c kind:function(arm,size=0x18) addr:0x0209fe6c func_ov000_0209fe84 kind:function(arm,size=0x1c) addr:0x0209fe84 func_ov000_0209fea0 kind:function(arm,size=0xc) addr:0x0209fea0 _ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP7VecFx32iii kind:function(arm,size=0x78) addr:0x0209feac -func_ov000_0209ff24 kind:function(arm,size=0x28) addr:0x0209ff24 +_ZN18UnkStruct_027e0cec19func_ov000_0209ff24EiP7VecFx32P7VecFx16i kind:function(arm,size=0x28) addr:0x0209ff24 func_ov000_0209ff4c kind:function(arm,size=0x40) addr:0x0209ff4c _ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32i kind:function(arm,size=0x74) addr:0x0209ff8c func_ov000_020a0000 kind:function(arm,size=0xa0) addr:0x020a0000 diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index fb3a09fe..84694e69 100644 --- a/config/eur/arm9/overlays/ov017/symbols.txt +++ b/config/eur/arm9/overlays/ov017/symbols.txt @@ -55,7 +55,7 @@ func_ov017_020bee64 kind:function(arm,size=0x20) addr:0x020bee64 func_ov017_020bee84 kind:function(arm,size=0x20) addr:0x020bee84 func_ov017_020beea4 kind:function(arm,size=0x28) addr:0x020beea4 func_ov017_020beecc kind:function(arm,size=0x20) addr:0x020beecc -func_ov017_020beeec kind:function(arm,size=0x60) addr:0x020beeec +_ZN5Actor19func_ov017_020beeecEi kind:function(arm,size=0x60) addr:0x020beeec func_ov017_020bef4c kind:function(arm,size=0x3c) addr:0x020bef4c func_ov017_020bef88 kind:function(arm,size=0x9c) addr:0x020bef88 func_ov017_020bf024 kind:function(arm,size=0x2c) addr:0x020bf024 @@ -103,7 +103,7 @@ _ZN19MapObjectSwitchStep8vfunc_08Ev kind:function(arm,size=0x1ac) addr:0x020c05a _ZN19MapObjectSwitchStep8vfunc_14Ev kind:function(arm,size=0x28) addr:0x020c074c func_ov017_020c0774 kind:function(arm,size=0x130) addr:0x020c0774 func_ov017_020c08a4 kind:function(arm,size=0x20) addr:0x020c08a4 -func_ov017_020c08c4 kind:function(arm,size=0xac) addr:0x020c08c4 +_ZN18UnkStruct_027e09b419func_ov017_020c08c4EP7VecFx32iiiii kind:function(arm,size=0xac) addr:0x020c08c4 func_ov017_020c0970 kind:function(arm,size=0xc0) addr:0x020c0970 func_ov017_020c0a30 kind:function(arm,size=0x3c) addr:0x020c0a30 func_ov017_020c0a6c kind:function(arm,size=0xb8) addr:0x020c0a6c diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index ad45db46..83cb4669 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -94,10 +94,11 @@ src/031_Land/Actor/ActorUnkNITF.cpp: .ctor start:0x021127d0 end:0x021127d4 .bss start:0x02116a24 end:0x02116a70 -src/031_Land/Actor/ActorUnkAROW.cpp: +src/031_Land/Actor/ActorShotArrow.cpp: .text start:0x020f1390 end:0x020f3d7c .init start:0x02111548 end:0x02111598 .ctor start:0x021127d4 end:0x021127d8 + .data start:0x02114264 end:0x0211439c .bss start:0x02116a70 end:0x02116abc src/031_Land/Actor/ActorUnkATTG.cpp: diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index bd2f355e..e3ad6ba8 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -2959,7 +2959,7 @@ from:0x020f3208 kind:load to:0x0203e964 module:main from:0x020f320c kind:load to:0x027e0964 module:dtcm from:0x020f324c kind:arm_call to:0x020f3258 module:overlay(31) from:0x020f3294 kind:arm_call to:0x020982a8 module:overlay(0) -from:0x020f32c0 kind:load to:0x02114288 module:overlay(31) +from:0x020f32c0 kind:load to:0x02114280 module:overlay(31) add:0x8 from:0x020f32d4 kind:arm_call to:0x0207bffc module:overlay(0) from:0x020f32f0 kind:arm_call to:0x0207bffc module:overlay(0) from:0x020f32f8 kind:arm_call to:0x02011ff4 module:main @@ -2976,7 +2976,7 @@ from:0x020f3670 kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f3680 kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f36dc kind:arm_call to:0x020f2cac module:overlay(31) from:0x020f36f4 kind:load to:0x027e0ce8 module:dtcm -from:0x020f3748 kind:load to:0x0211426c module:overlay(31) +from:0x020f3748 kind:load to:0x02114264 module:overlay(31) add:0x8 from:0x020f3778 kind:arm_call to:0x01ff93c0 module:itcm from:0x020f3798 kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f37a8 kind:arm_call to:0x01ffb714 module:itcm @@ -2995,7 +2995,7 @@ from:0x020f3a00 kind:arm_call to:0x020f374c module:overlay(31) from:0x020f3a20 kind:arm_call to:0x02153064 module:overlay(84) from:0x020f3a38 kind:arm_call to:0x020f311c module:overlay(31) from:0x020f3a74 kind:arm_call to:0x020f374c module:overlay(31) -from:0x020f3a90 kind:arm_call to:0x0215bbf0 module:overlays(62,75) +from:0x020f3a90 kind:arm_call to:0x0215bbf0 module:overlay(75) from:0x020f3aa8 kind:arm_call to:0x02160864 module:overlay(75) from:0x020f3acc kind:arm_call to:0x020f1878 module:overlay(31) from:0x020f3b10 kind:arm_call to:0x01fff3b4 module:itcm diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 902ec1ef..044ee7c7 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -8,8 +8,8 @@ func_ov031_020d8cd0 kind:function(arm,size=0x28) addr:0x020d8cd0 func_ov031_020d8cf8 kind:function(arm,size=0x70) addr:0x020d8cf8 func_ov031_020d8d68 kind:function(arm,size=0x74) addr:0x020d8d68 func_ov031_020d8ddc kind:function(arm,size=0x14) addr:0x020d8ddc -func_ov031_020d8df0 kind:function(arm,size=0x7c) addr:0x020d8df0 -func_ov031_020d8e6c kind:function(arm,size=0x1c) addr:0x020d8e6c +_ZN18ActorShotArrow_1DCC1Eii kind:function(arm,size=0x7c) addr:0x020d8df0 +_ZN18ActorShotArrow_1DCD1Ev kind:function(arm,size=0x1c) addr:0x020d8e6c func_ov031_020d8e88 kind:function(arm,size=0x9c) addr:0x020d8e88 func_ov031_020d8f24 kind:function(arm,size=0x34) addr:0x020d8f24 func_ov031_020d8f58 kind:function(arm,size=0x40) addr:0x020d8f58 @@ -42,7 +42,7 @@ func_ov031_020d962c kind:function(arm,size=0x1c) addr:0x020d962c func_ov031_020d9648 kind:function(arm,size=0x10) addr:0x020d9648 func_ov031_020d9658 kind:function(thumb,size=0x1a) addr:0x020d9658 func_ov031_020d9674 kind:function(arm,size=0x10) addr:0x020d9674 -func_ov031_020d9684 kind:function(arm,size=0x10) addr:0x020d9684 +_ZN18UnkStruct_027e0d3019func_ov031_020d9684EtP7VecFx32 kind:function(arm,size=0x10) addr:0x020d9684 func_ov031_020d9694 kind:function(arm,size=0x10) addr:0x020d9694 func_ov031_020d96a4 kind:function(thumb,size=0x22) addr:0x020d96a4 func_ov031_020d96c8 kind:function(thumb,size=0x18) addr:0x020d96c8 @@ -870,68 +870,68 @@ _ZN12ActorUnkNITF19func_ov031_020f1308Ev kind:function(arm,size=0xc) addr:0x020f _ZN12ActorUnkNITFD1Ev kind:function(arm,size=0x30) addr:0x020f1314 _ZN12ActorUnkNITFD0Ev kind:function(arm,size=0x38) addr:0x020f1344 _ZN19ActorProfileUnkNITFD1Ev kind:function(arm,size=0x14) addr:0x020f137c -_ZN19ActorProfileUnkAROW10GetProfileEv kind:function(arm,size=0xc) addr:0x020f1390 -_ZN19ActorProfileUnkAROW6CreateEv kind:function(arm,size=0x24) addr:0x020f139c -_ZN19ActorProfileUnkAROWC1Ev kind:function(arm,size=0x44) addr:0x020f13c0 -_ZN12ActorUnkAROW19func_ov031_020f1404Ev kind:function(arm,size=0x18) addr:0x020f1404 -_ZN12ActorUnkAROWC1Ev kind:function(arm,size=0x1ec) addr:0x020f141c -_ZN12ActorUnkAROW19func_ov031_020f1608Ev kind:function(arm,size=0x14) addr:0x020f1608 -_ZN12ActorUnkAROWD1Ev kind:function(arm,size=0x8c) addr:0x020f161c -_ZN12ActorUnkAROWD0Ev kind:function(arm,size=0x94) addr:0x020f16a8 -_ZN12ActorUnkAROW19func_ov031_020f173cEv kind:function(arm,size=0x12c) addr:0x020f173c -_ZN12ActorUnkAROW19func_ov031_020f1868Ev kind:function(arm,size=0xc) addr:0x020f1868 -_ZN12ActorUnkAROW19func_ov031_020f1874Ev kind:function(arm,size=0x4) addr:0x020f1874 -_ZN12ActorUnkAROW19func_ov031_020f1878Ev kind:function(arm,size=0x44) addr:0x020f1878 -_ZN12ActorUnkAROW19func_ov031_020f18bcEv kind:function(arm,size=0x9c) addr:0x020f18bc -_ZN12ActorUnkAROW19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f1958 -_ZN12ActorUnkAROW19func_ov031_020f195cEv kind:function(arm,size=0x108) addr:0x020f195c -_ZN12ActorUnkAROW19func_ov031_020f1a64Ev kind:function(arm,size=0xa0) addr:0x020f1a64 -_ZN12ActorUnkAROW19func_ov031_020f1b04Ev kind:function(arm,size=0x120) addr:0x020f1b04 -_ZN12ActorUnkAROW19func_ov031_020f1c24Ev kind:function(arm,size=0x58) addr:0x020f1c24 -_ZN12ActorUnkAROW19func_ov031_020f1c7cEv kind:function(arm,size=0x158) addr:0x020f1c7c -_ZN12ActorUnkAROW19func_ov031_020f1dd4Ev kind:function(arm,size=0x68) addr:0x020f1dd4 -_ZN12ActorUnkAROW19func_ov031_020f1e3cEv kind:function(arm,size=0x118) addr:0x020f1e3c -_ZN12ActorUnkAROW19func_ov031_020f1f54Ev kind:function(arm,size=0xbc) addr:0x020f1f54 -_ZN12ActorUnkAROW19func_ov031_020f2010Ev kind:function(arm,size=0x5c) addr:0x020f2010 -_ZN12ActorUnkAROW19func_ov031_020f206cEv kind:function(arm,size=0x50) addr:0x020f206c -_ZN12ActorUnkAROW19func_ov031_020f20bcEv kind:function(arm,size=0x78) addr:0x020f20bc -_ZN12ActorUnkAROW19func_ov031_020f2134Ev kind:function(arm,size=0x2c) addr:0x020f2134 -_ZN12ActorUnkAROW19func_ov031_020f2160Ev kind:function(arm,size=0x7c) addr:0x020f2160 -_ZN12ActorUnkAROW19func_ov031_020f21dcEv kind:function(arm,size=0x38) addr:0x020f21dc -_ZN12ActorUnkAROW19func_ov031_020f2214Ev kind:function(arm,size=0x5c) addr:0x020f2214 -_ZN12ActorUnkAROW19func_ov031_020f2270Ev kind:function(arm,size=0x10) addr:0x020f2270 -_ZN12ActorUnkAROW19func_ov031_020f2280Ev kind:function(arm,size=0x1c) addr:0x020f2280 -_ZN12ActorUnkAROW19func_ov031_020f229cEv kind:function(arm,size=0x38) addr:0x020f229c -_ZN12ActorUnkAROW19func_ov031_020f22d4Ev kind:function(arm,size=0x3c) addr:0x020f22d4 -_ZN12ActorUnkAROW19func_ov031_020f2310Ev kind:function(arm,size=0x344) addr:0x020f2310 -_ZN12ActorUnkAROW19func_ov031_020f2654Ev kind:function(arm,size=0x140) addr:0x020f2654 -_ZN12ActorUnkAROW19func_ov031_020f2794Ev kind:function(arm,size=0x118) addr:0x020f2794 -_ZN12ActorUnkAROW19func_ov031_020f28acEv kind:function(arm,size=0x2e0) addr:0x020f28ac -_ZN12ActorUnkAROW19func_ov031_020f2b8cEv kind:function(arm,size=0x30) addr:0x020f2b8c -_ZN12ActorUnkAROW19func_ov031_020f2bbcEv kind:function(arm,size=0x30) addr:0x020f2bbc -_ZN12ActorUnkAROW19func_ov031_020f2becEv kind:function(arm,size=0x1c) addr:0x020f2bec -_ZN12ActorUnkAROW19func_ov031_020f2c08Ev kind:function(arm,size=0xa4) addr:0x020f2c08 -_ZN12ActorUnkAROW19func_ov031_020f2cacEv kind:function(arm,size=0x244) addr:0x020f2cac -_ZN12ActorUnkAROW19func_ov031_020f2ef0Ev kind:function(arm,size=0x6c) addr:0x020f2ef0 -_ZN12ActorUnkAROW19func_ov031_020f2f5cEv kind:function(arm,size=0x40) addr:0x020f2f5c -_ZN12ActorUnkAROW19func_ov031_020f2f9cEv kind:function(arm,size=0x64) addr:0x020f2f9c -_ZN12ActorUnkAROW19func_ov031_020f3000Ev kind:function(arm,size=0x11c) addr:0x020f3000 -_ZN12ActorUnkAROW19func_ov031_020f311cEv kind:function(arm,size=0xf4) addr:0x020f311c -_ZN12ActorUnkAROW19func_ov031_020f3210Ev kind:function(arm,size=0x48) addr:0x020f3210 -_ZN12ActorUnkAROW19func_ov031_020f3258Ev kind:function(arm,size=0x30) addr:0x020f3258 -_ZN12ActorUnkAROW19func_ov031_020f3288Ev kind:function(arm,size=0x3c) addr:0x020f3288 -_ZN12ActorUnkAROW19func_ov031_020f32c4Ev kind:function(arm,size=0x1c) addr:0x020f32c4 -_ZN12ActorUnkAROW19func_ov031_020f32e0Ev kind:function(arm,size=0x24) addr:0x020f32e0 -_ZN12ActorUnkAROW19func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3304 -_ZN12ActorUnkAROW19func_ov031_020f3310Ev kind:function(arm,size=0xac) addr:0x020f3310 -_ZN12ActorUnkAROW19func_ov031_020f33bcEv kind:function(arm,size=0x350) addr:0x020f33bc -_ZN12ActorUnkAROW19func_ov031_020f370cEv kind:function(arm,size=0x40) addr:0x020f370c -_ZN12ActorUnkAROW19func_ov031_020f374cEv kind:function(arm,size=0x164) addr:0x020f374c -_ZN12ActorUnkAROW19func_ov031_020f38b0Ev kind:function(arm,size=0x388) addr:0x020f38b0 -_ZN12ActorUnkAROW19func_ov031_020f3c38Ev kind:function(arm,size=0xcc) addr:0x020f3c38 -_ZN12ActorUnkAROW19func_ov031_020f3d04Ev kind:function(arm,size=0x48) addr:0x020f3d04 -_ZN12ActorUnkAROW19func_ov031_020f3d4cEv kind:function(arm,size=0x1c) addr:0x020f3d4c -_ZN19ActorProfileUnkAROWD1Ev kind:function(arm,size=0x14) addr:0x020f3d68 +_ZN21ActorProfileShotArrow10GetProfileEv kind:function(arm,size=0xc) addr:0x020f1390 +_ZN21ActorProfileShotArrow6CreateEv kind:function(arm,size=0x24) addr:0x020f139c +_ZN21ActorProfileShotArrowC1Ev kind:function(arm,size=0x44) addr:0x020f13c0 +_Z19func_ov031_020f1404v kind:function(arm,size=0x18) addr:0x020f1404 +_ZN14ActorShotArrowC1Ev kind:function(arm,size=0x1ec) addr:0x020f141c +_ZN18ActorShotArrow_194D1Ev kind:function(arm,size=0x14) addr:0x020f1608 +_ZN14ActorShotArrowD1Ev kind:function(arm,size=0x8c) addr:0x020f161c +_ZN14ActorShotArrowD0Ev kind:function(arm,size=0x94) addr:0x020f16a8 +_ZN14ActorShotArrow8vfunc_18Ei kind:function(arm,size=0x12c) addr:0x020f173c +_ZN14ActorShotArrow19func_ov031_020f1868Ev kind:function(arm,size=0xc) addr:0x020f1868 +_ZN14ActorShotArrow19func_ov031_020f1874Ev kind:function(arm,size=0x4) addr:0x020f1874 +_ZN14ActorShotArrow8SetStateEj kind:function(arm,size=0x44) addr:0x020f1878 +_ZN14ActorShotArrow8vfunc_24Ev kind:function(arm,size=0x9c) addr:0x020f18bc +_ZN14ActorShotArrow19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f1958 +_ZN14ActorShotArrow8vfunc_20Ev kind:function(arm,size=0x108) addr:0x020f195c +_ZN14ActorShotArrow19func_ov031_020f1a64Ev kind:function(arm,size=0xa0) addr:0x020f1a64 +_ZN14ActorShotArrow19func_ov031_020f1b04Ev kind:function(arm,size=0x120) addr:0x020f1b04 +_ZN14ActorShotArrow19func_ov031_020f1c24Ev kind:function(arm,size=0x58) addr:0x020f1c24 +_ZN14ActorShotArrow19func_ov031_020f1c7cEv kind:function(arm,size=0x158) addr:0x020f1c7c +_ZN14ActorShotArrow19func_ov031_020f1dd4Ev kind:function(arm,size=0x68) addr:0x020f1dd4 +_ZN14ActorShotArrow19func_ov031_020f1e3cEv kind:function(arm,size=0x118) addr:0x020f1e3c +_ZN14ActorShotArrow19func_ov031_020f1f54Ev kind:function(arm,size=0xbc) addr:0x020f1f54 +_ZN14ActorShotArrow19func_ov031_020f2010Ev kind:function(arm,size=0x5c) addr:0x020f2010 +_ZN14ActorShotArrow19func_ov031_020f206cEv kind:function(arm,size=0x50) addr:0x020f206c +_ZN14ActorShotArrow19func_ov031_020f20bcEv kind:function(arm,size=0x78) addr:0x020f20bc +_ZN14ActorShotArrow19func_ov031_020f2134Ev kind:function(arm,size=0x2c) addr:0x020f2134 +_ZN14ActorShotArrow19func_ov031_020f2160Ev kind:function(arm,size=0x7c) addr:0x020f2160 +_ZN14ActorShotArrow19func_ov031_020f21dcEv kind:function(arm,size=0x38) addr:0x020f21dc +_ZN14ActorShotArrow19func_ov031_020f2214Ev kind:function(arm,size=0x5c) addr:0x020f2214 +_ZN14ActorShotArrow19func_ov031_020f2270Ev kind:function(arm,size=0x10) addr:0x020f2270 +_ZN14ActorShotArrow19func_ov031_020f2280Ev kind:function(arm,size=0x1c) addr:0x020f2280 +_ZN14ActorShotArrow19func_ov031_020f229cEv kind:function(arm,size=0x38) addr:0x020f229c +_ZN14ActorShotArrow19func_ov031_020f22d4EP5Mat3pP7VecFx32 kind:function(arm,size=0x3c) addr:0x020f22d4 +_ZN14ActorShotArrow8vfunc_2CEi kind:function(arm,size=0x344) addr:0x020f2310 +_ZN14ActorShotArrow19func_ov031_020f2654EP5Mat3p kind:function(arm,size=0x140) addr:0x020f2654 +_ZN14ActorShotArrow19func_ov031_020f2794Es kind:function(arm,size=0x118) addr:0x020f2794 +_ZN14ActorShotArrow19func_ov031_020f28acEv kind:function(arm,size=0x2e0) addr:0x020f28ac +_ZN14ActorShotArrow19func_ov031_020f2b8cEv kind:function(arm,size=0x30) addr:0x020f2b8c +_ZN14ActorShotArrow19func_ov031_020f2bbcEv kind:function(arm,size=0x30) addr:0x020f2bbc +_ZN14ActorShotArrow19func_ov031_020f2becEv kind:function(arm,size=0x1c) addr:0x020f2bec +_ZN14ActorShotArrow19func_ov031_020f2c08Es kind:function(arm,size=0xa4) addr:0x020f2c08 +_ZN14ActorShotArrow19func_ov031_020f2cacEP7VecFx32b kind:function(arm,size=0x244) addr:0x020f2cac +_ZN14ActorShotArrow19func_ov031_020f2ef0Ev kind:function(arm,size=0x6c) addr:0x020f2ef0 +_ZN14ActorShotArrow19func_ov031_020f2f5cEP7VecFx32 kind:function(arm,size=0x40) addr:0x020f2f5c +_ZN14ActorShotArrow19func_ov031_020f2f9cEv kind:function(arm,size=0x64) addr:0x020f2f9c +_ZN14ActorShotArrow19func_ov031_020f3000Ev kind:function(arm,size=0x11c) addr:0x020f3000 +_ZN14ActorShotArrow19func_ov031_020f311cEP7Mat4x3p kind:function(arm,size=0xf4) addr:0x020f311c +_ZN14ActorShotArrow19func_ov031_020f3210Et kind:function(arm,size=0x48) addr:0x020f3210 +_ZN14ActorShotArrow19func_ov031_020f3258Et kind:function(arm,size=0x30) addr:0x020f3258 +_ZN18ActorShotArrow_178C1EP14ActorShotArrow kind:function(arm,size=0x3c) addr:0x020f3288 +_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_0CEv 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 +_ZN18ActorShotArrow_1948vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0xcc) addr:0x020f3c38 +_ZN14ActorShotArrow19func_ov031_020f3d04Es kind:function(arm,size=0x48) addr:0x020f3d04 +_ZN18ActorShotArrow_194D0Ev kind:function(arm,size=0x1c) addr:0x020f3d4c +_ZN21ActorProfileShotArrowD1Ev kind:function(arm,size=0x14) addr:0x020f3d68 _ZN19ActorProfileUnkATTG10GetProfileEv kind:function(arm,size=0xc) addr:0x020f3d7c _ZN19ActorProfileUnkATTG6CreateEv kind:function(arm,size=0x24) addr:0x020f3d88 _ZN19ActorProfileUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f3dac @@ -1077,7 +1077,7 @@ _ZN12ActorUnkSWCHD1Ev kind:function(arm,size=0x14) addr:0x020f7b98 _ZN12ActorUnkSWCHD0Ev kind:function(arm,size=0x1c) addr:0x020f7bac _ZN19ActorProfileUnkSWCHD1Ev kind:function(arm,size=0x14) addr:0x020f7bc8 func_ov031_020f7bdc kind:function(arm,size=0x30) addr:0x020f7bdc -func_ov031_020f7c0c kind:function(arm,size=0x30) addr:0x020f7c0c +_ZN18ActorShotArrow_140C1EP5Actor kind:function(arm,size=0x30) addr:0x020f7c0c func_ov031_020f7c3c kind:function(arm,size=0x158) addr:0x020f7c3c func_ov031_020f7d94 kind:function(arm,size=0x28) addr:0x020f7d94 _ZN19ActorProfileUnkSWON10GetProfileEv kind:function(arm,size=0xc) addr:0x020f7dbc @@ -2084,7 +2084,7 @@ __sinit_ActorUnkRMTG.cpp kind:function(arm,size=0x50) addr:0x02111408 __sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x02111458 __sinit_ActorUnkNTUB.cpp kind:function(arm,size=0x50) addr:0x021114a8 __sinit_ActorUnkNITF.cpp kind:function(arm,size=0x50) addr:0x021114f8 -__sinit_ActorUnkAROW.cpp kind:function(arm,size=0x50) addr:0x02111548 +__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x02111548 __sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02111598 __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x021115e8 __sinit_ov031_02111638 kind:function(arm,size=0x24) addr:0x02111638 @@ -2148,7 +2148,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 .p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x021127c8 .p__sinit_ActorUnkNTUB.cpp kind:data(word) addr:0x021127cc .p__sinit_ActorUnkNITF.cpp kind:data(word) addr:0x021127d0 -.p__sinit_ActorUnkAROW.cpp kind:data(word) addr:0x021127d4 +.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x021127d4 .p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x021127d8 .p__sinit_ActorUnkNTTZ.cpp kind:data(word) addr:0x021127dc .p__sinit_ov031_02111638 kind:data(word) addr:0x021127e0 @@ -2347,12 +2347,12 @@ _ZTV19data_ov031_02114150 kind:data(any) addr:0x02114150 data_ov031_02114174 kind:data(any) addr:0x02114174 data_ov031_021141b4 kind:data(any) addr:0x021141b4 _ZTV19data_ov031_021141f4 kind:data(any) addr:0x021141f4 -data_ov031_0211426c kind:data(any) addr:0x0211426c -data_ov031_02114288 kind:data(any) addr:0x02114288 -_ZTV19data_ov031_0211429c kind:data(any) addr:0x0211429c +_ZTV18ActorShotArrow_194 kind:data(any) addr:0x02114264 +_ZTV18ActorShotArrow_178 kind:data(any) addr:0x02114280 +_ZTV21ActorProfileShotArrow kind:data(any) addr:0x0211429c data_ov031_021142c0 kind:data(any) addr:0x021142c0 data_ov031_02114300 kind:data(any) addr:0x02114300 -_ZTV19data_ov031_02114340 kind:data(any) addr:0x02114340 +_ZTV14ActorShotArrow kind:data(any) addr:0x02114340 _ZTV19data_ov031_0211439c kind:data(any) addr:0x0211439c _ZTV19data_ov031_021143c0 kind:data(any) addr:0x021143c0 data_ov031_02114424 kind:data(any) addr:0x02114424 @@ -2567,9 +2567,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkNTUBE8sProfileE kind:bss addr:0x021169e8 _ZGVN15ProfileInstanceI19ActorProfileUnkNITFE8sProfileE kind:bss addr:0x02116a24 @10854 kind:bss addr:0x02116a28 _ZN15ProfileInstanceI19ActorProfileUnkNITFE8sProfileE kind:bss addr:0x02116a34 -_ZGVN15ProfileInstanceI19ActorProfileUnkAROWE8sProfileE kind:bss addr:0x02116a70 +_ZGVN15ProfileInstanceI21ActorProfileShotArrowE8sProfileE kind:bss addr:0x02116a70 @10860 kind:bss addr:0x02116a74 -_ZN15ProfileInstanceI19ActorProfileUnkAROWE8sProfileE kind:bss addr:0x02116a80 +_ZN15ProfileInstanceI21ActorProfileShotArrowE8sProfileE kind:bss addr:0x02116a80 _ZGVN15ProfileInstanceI19ActorProfileUnkATTGE8sProfileE kind:bss addr:0x02116abc @10866 kind:bss addr:0x02116ac0 _ZN15ProfileInstanceI19ActorProfileUnkATTGE8sProfileE kind:bss addr:0x02116acc diff --git a/config/eur/arm9/overlays/ov075/symbols.txt b/config/eur/arm9/overlays/ov075/symbols.txt index e171e3b7..4df8c255 100644 --- a/config/eur/arm9/overlays/ov075/symbols.txt +++ b/config/eur/arm9/overlays/ov075/symbols.txt @@ -160,7 +160,7 @@ _ZN12ActorUnkMRD219func_ov075_0215b4dcEv kind:function(arm,size=0x9c) addr:0x021 _ZN12ActorUnkMRD219func_ov075_0215b578Ev kind:function(arm,size=0x39c) addr:0x0215b578 _ZN12ActorUnkMRD219func_ov075_0215b914Ev kind:function(arm,size=0x2d4) addr:0x0215b914 _ZN12ActorUnkMRD219func_ov075_0215bbe8Ev kind:function(arm,size=0x8) addr:0x0215bbe8 -_ZN12ActorUnkMRD219func_ov075_0215bbf0Ev kind:function(arm,size=0x60) addr:0x0215bbf0 +_ZN12ActorUnkMRD219func_ov075_0215bbf0EP8ActorRefPi kind:function(arm,size=0x60) addr:0x0215bbf0 _ZN12ActorUnkMRD219func_ov075_0215bc50Ev kind:function(arm,size=0xf0) addr:0x0215bc50 _ZN12ActorUnkMRD219func_ov075_0215bd40Ev kind:function(arm,size=0x10) addr:0x0215bd40 _ZN12ActorUnkMRD219func_ov075_0215bd50Ev kind:function(arm,size=0xc0) addr:0x0215bd50 diff --git a/config/eur/arm9/overlays/ov084/symbols.txt b/config/eur/arm9/overlays/ov084/symbols.txt index e2fb66dc..a7819a25 100644 --- a/config/eur/arm9/overlays/ov084/symbols.txt +++ b/config/eur/arm9/overlays/ov084/symbols.txt @@ -38,7 +38,7 @@ _ZN12ActorUnkIWTS19func_ov084_02152cecEv kind:function(arm,size=0x24) addr:0x021 _ZN12ActorUnkIWTS19func_ov084_02152d10Ev kind:function(arm,size=0x180) addr:0x02152d10 _ZN12ActorUnkIWTSD0Ev kind:function(arm,size=0x188) addr:0x02152e90 _ZN12ActorUnkIWTS19func_ov084_02153018Ev kind:function(arm,size=0x4c) addr:0x02153018 -_ZN12ActorUnkIWTS19func_ov084_02153064Ev kind:function(arm,size=0x70) addr:0x02153064 +_ZN12ActorUnkIWTS19func_ov084_02153064EP8ActorRefPP7Mat4x3p kind:function(arm,size=0x70) addr:0x02153064 _ZN12ActorUnkIWTS19func_ov084_021530d4Ev kind:function(arm,size=0x88) addr:0x021530d4 _ZN12ActorUnkIWTS19func_ov084_0215315cEv kind:function(arm,size=0x38) addr:0x0215315c _ZN12ActorUnkIWTS19func_ov084_02153194Ev kind:function(arm,size=0x50) addr:0x02153194 diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index 2959fdf7..55e8dc41 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -159,7 +159,7 @@ _ZNK18UnkStruct_027e09a421GetCurrentCourseEntryEv kind:function(arm,size=0x20) a _ZN18UnkStruct_027e09b813func_01ffd420Ev kind:function(arm,size=0x1c) addr:0x01ffd420 func_01ffd43c kind:function(arm,size=0x60) addr:0x01ffd43c func_01ffd49c kind:function(arm,size=0x1a4) addr:0x01ffd49c -func_01ffd640 kind:function(arm,size=0x128) addr:0x01ffd640 +_ZN21UnkStruct_027e09bc_0C13func_01ffd640EP7VecFx32 kind:function(arm,size=0x128) addr:0x01ffd640 func_01ffd768 kind:function(arm,size=0x138) addr:0x01ffd768 func_01ffd8a0 kind:function(arm,size=0x190) addr:0x01ffd8a0 func_01ffda30 kind:function(arm,size=0x2ec) addr:0x01ffda30 @@ -203,7 +203,7 @@ _ZN12ActorManager13func_01fff350EPvPP5Actor kind:function(arm,size=0x64) addr:0x _ZN12ActorManager13func_01fff3b4E8ActorRef kind:function(arm,size=0x8c) addr:0x01fff3b4 func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440 _ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458 -_ZN5Actor8vfunc_10Ev kind:function(arm,size=0x34) addr:0x01fff464 +_ZN5Actor8vfunc_10EP7VecFx32 kind:function(arm,size=0x34) addr:0x01fff464 _ZN16MapObjectManager13func_01fff498E5Vec2b kind:function(arm,size=0x34) addr:0x01fff498 _ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc _ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 2ab838ae..df1f57dd 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -66,7 +66,7 @@ _ZN19func_ov000_02058cb4D0Ev kind:function(arm,size=0x1c) addr:0x02058cb4 func_ov000_02058cd0 kind:function(thumb,size=0xc) addr:0x02058cd0 func_ov000_02058cdc kind:function(thumb,size=0x20) addr:0x02058cdc func_ov000_02058cfc kind:function(thumb,size=0xe) addr:0x02058cfc -_ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x02058d0c +_ZN10UnkSystem5C2EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x02058d0c _ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x02058d24 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x02058d78 func_ov000_02058db0 kind:function(arm,size=0x3c) addr:0x02058db0 @@ -350,7 +350,7 @@ func_ov000_0205dfbc kind:function(arm,size=0x40) addr:0x0205dfbc func_ov000_0205dffc kind:function(arm,size=0x40) addr:0x0205dffc func_ov000_0205e03c kind:function(arm,size=0x28) addr:0x0205e03c func_ov000_0205e064 kind:function(arm,size=0xe8) addr:0x0205e064 -func_ov000_0205e14c kind:function(arm,size=0x17c) addr:0x0205e14c +_ZN5Actor19func_ov000_0205cbc4EjP7VecFx32 kind:function(arm,size=0x17c) addr:0x0205e14c func_ov000_0205e2c8 kind:function(arm,size=0x11c) addr:0x0205e2c8 func_ov000_0205e3e4 kind:function(arm,size=0x128) addr:0x0205e3e4 func_ov000_0205e50c kind:function(arm,size=0x178) addr:0x0205e50c @@ -1070,7 +1070,7 @@ _ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,siz func_ov000_0207349c kind:function(arm,size=0xa0) addr:0x0207349c func_ov000_0207353c kind:function(arm,size=0x14) addr:0x0207353c func_ov000_02073550 kind:function(arm,size=0x14) addr:0x02073550 -func_ov000_02073564 kind:function(arm,size=0x8c) addr:0x02073564 +_ZN18UnkStruct_027e09a819func_ov000_02071eacEP7VecFx32 kind:function(arm,size=0x8c) addr:0x02073564 func_ov000_020735f0 kind:function(arm,size=0x50) addr:0x020735f0 func_ov000_02073640 kind:function(arm,size=0x10) addr:0x02073640 _ZN21UnkStruct_027e09ac_1419func_ov000_02071f98Ev kind:function(arm,size=0x13c) addr:0x02073650 @@ -1379,10 +1379,10 @@ _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 -_ZN19func_ov000_0207cd78D2Ev kind:function(arm,size=0x30) addr:0x0207cd78 +_ZN23ActorShotArrow_194_BaseD2Ev 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 -func_ov000_0207cdd4 kind:function(arm,size=0x38) addr:0x0207cdd4 +_ZN23ActorShotArrow_194_Base8vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207cdd4 func_ov000_0207ce0c kind:function(arm,size=0x80) addr:0x0207ce0c func_ov000_0207ce8c kind:function(arm,size=0x40) addr:0x0207ce8c func_ov000_0207cecc kind:function(arm,size=0x80) addr:0x0207cecc @@ -1410,7 +1410,7 @@ func_ov000_0207d3b4 kind:function(arm,size=0x88) addr:0x0207d3b4 func_ov000_0207d43c kind:function(arm,size=0x260) addr:0x0207d43c func_ov000_0207d69c kind:function(arm,size=0x4) addr:0x0207d69c _ZN19func_ov000_0207d6a0D0Ev kind:function(arm,size=0x14) addr:0x0207d6a0 -func_ov000_0207d6b4 kind:function(arm,size=0x4) addr:0x0207d6b4 +_ZN23ActorShotArrow_178_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207d6b4 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x0207d6b8 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEv kind:function(arm,size=0x8) addr:0x0207d6c0 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207d6c8 @@ -1467,12 +1467,12 @@ func_ov000_0207f8c4 kind:function(arm,size=0x34) addr:0x0207f8c4 func_ov000_0207f8f8 kind:function(arm,size=0x14) addr:0x0207f8f8 func_ov000_0207f90c kind:function(arm,size=0x14) addr:0x0207f90c func_ov000_0207f920 kind:function(arm,size=0x2c) addr:0x0207f920 -func_ov000_0207f94c kind:function(arm,size=0x118) addr:0x0207f94c +_ZN5Actor19func_ov000_0207e294EP8Cylinder kind:function(arm,size=0x118) addr:0x0207f94c func_ov000_0207fa64 kind:function(arm,size=0xac) addr:0x0207fa64 func_ov000_0207fb10 kind:function(arm,size=0x84) addr:0x0207fb10 func_ov000_0207fb94 kind:function(arm,size=0x84) addr:0x0207fb94 func_ov000_0207fc18 kind:function(arm,size=0x2c) addr:0x0207fc18 -func_ov000_0207fc44 kind:function(arm,size=0xa4) addr:0x0207fc44 +_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP18ActorShotArrow_194 kind:function(arm,size=0xa4) addr:0x0207fc44 func_ov000_0207fce8 kind:function(arm,size=0x38) addr:0x0207fce8 func_ov000_0207fd20 kind:function(arm,size=0x50) addr:0x0207fd20 func_ov000_0207fd70 kind:function(arm,size=0x14) addr:0x0207fd70 @@ -1575,8 +1575,8 @@ func_ov000_02082008 kind:function(arm,size=0x48) addr:0x02082008 func_ov000_02082050 kind:function(arm,size=0x40) addr:0x02082050 func_ov000_02082090 kind:function(arm,size=0x6c) addr:0x02082090 _ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x020820fc -func_ov000_02082114 kind:function(arm,size=0x1c) addr:0x02082114 -func_ov000_02082130 kind:function(arm,size=0x18) addr:0x02082130 +_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02082114 +_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02082130 func_ov000_02082148 kind:function(arm,size=0x1c) addr:0x02082148 func_ov000_02082164 kind:function(arm,size=0x18) addr:0x02082164 func_ov000_0208217c kind:function(arm,size=0x68) addr:0x0208217c @@ -1928,11 +1928,11 @@ func_ov000_0208d288 kind:function(arm,size=0x10) addr:0x0208d288 func_ov000_0208d298 kind:function(arm,size=0x10) addr:0x0208d298 func_ov000_0208d2a8 kind:function(arm,size=0x2c) addr:0x0208d2a8 func_ov000_0208d2d4 kind:function(arm,size=0x1c) addr:0x0208d2d4 -func_ov000_0208d2f0 kind:function(arm,size=0x40) addr:0x0208d2f0 +_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_0208d408 kind:function(arm,size=0x18) addr:0x0208d408 +_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 func_ov000_0208d464 kind:function(arm,size=0x10) addr:0x0208d464 @@ -2303,7 +2303,7 @@ func_ov000_02099888 kind:function(arm,size=0x80) addr:0x02099888 func_ov000_02099908 kind:function(arm,size=0x80) addr:0x02099908 func_ov000_02099988 kind:function(arm,size=0x64) addr:0x02099988 func_ov000_020999ec kind:function(arm,size=0x64) addr:0x020999ec -func_ov000_02099a50 kind:function(arm,size=0x18) addr:0x02099a50 +_ZN23ActorShotArrow_178_BaseC2Ev 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 _ZN19func_ov000_02099b00D1Ev kind:function(arm,size=0x14) addr:0x02099b00 @@ -2336,7 +2336,7 @@ func_ov000_02099e24 kind:function(arm,size=0x38) addr:0x02099e24 func_ov000_02099e5c 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 -func_ov000_02099fa8 kind:function(arm,size=0x38) addr:0x02099fa8 +_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 @@ -2344,7 +2344,7 @@ _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 -func_ov000_0209a25c kind:function(arm,size=0x74) addr:0x0209a25c +_ZN5Actor19func_ov000_02098ab4EbiiP7VecFx32 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 @@ -2668,7 +2668,7 @@ func_ov000_020a1644 kind:function(arm,size=0x18) addr:0x020a1644 func_ov000_020a165c kind:function(arm,size=0x1c) addr:0x020a165c func_ov000_020a1678 kind:function(arm,size=0xc) addr:0x020a1678 _ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP7VecFx32iii kind:function(arm,size=0x78) addr:0x020a1684 -func_ov000_020a16fc kind:function(arm,size=0x28) addr:0x020a16fc +_ZN18UnkStruct_027e0cec19func_ov000_0209ff24EiP7VecFx32P7VecFx16i kind:function(arm,size=0x28) addr:0x020a16fc func_ov000_020a1724 kind:function(arm,size=0x40) addr:0x020a1724 _ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32i kind:function(arm,size=0x74) addr:0x020a1764 func_ov000_020a17d8 kind:function(arm,size=0xa0) addr:0x020a17d8 diff --git a/config/jp/arm9/overlays/ov017/symbols.txt b/config/jp/arm9/overlays/ov017/symbols.txt index 6b8fb840..f23aa68d 100644 --- a/config/jp/arm9/overlays/ov017/symbols.txt +++ b/config/jp/arm9/overlays/ov017/symbols.txt @@ -55,7 +55,7 @@ func_ov017_020c0690 kind:function(arm,size=0x20) addr:0x020c0690 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 -func_ov017_020c0718 kind:function(arm,size=0x60) addr:0x020c0718 +_ZN5Actor19func_ov017_020beeecEi kind:function(arm,size=0x60) addr:0x020c0718 func_ov017_020c0778 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 @@ -103,7 +103,7 @@ _ZN19MapObjectSwitchStep8vfunc_08Ev kind:function(arm,size=0x1ac) addr:0x020c1dc _ZN19MapObjectSwitchStep8vfunc_14Ev kind:function(arm,size=0x28) addr:0x020c1f78 func_ov017_020c1fa0 kind:function(arm,size=0x130) addr:0x020c1fa0 func_ov017_020c20d0 kind:function(arm,size=0x20) addr:0x020c20d0 -func_ov017_020c20f0 kind:function(arm,size=0xac) addr:0x020c20f0 +_ZN18UnkStruct_027e09b419func_ov017_020c08c4EP7VecFx32iiiii kind:function(arm,size=0xac) addr:0x020c20f0 func_ov017_020c219c kind:function(arm,size=0xc0) addr:0x020c219c func_ov017_020c225c kind:function(arm,size=0x3c) addr:0x020c225c func_ov017_020c2298 kind:function(arm,size=0xb8) addr:0x020c2298 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index dccba654..41ee56e9 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -94,10 +94,11 @@ src/031_Land/Actor/ActorUnkNITF.cpp: .ctor start:0x0211455c end:0x02114560 .bss start:0x021187c4 end:0x02118810 -src/031_Land/Actor/ActorUnkAROW.cpp: +src/031_Land/Actor/ActorShotArrow.cpp: .text start:0x020f2d8c end:0x020f5820 .init start:0x021132b8 end:0x02113308 .ctor start:0x02114560 end:0x02114564 + .data start:0x02116004 end:0x0211613c .bss start:0x02118810 end:0x0211885c src/031_Land/Actor/ActorUnkATTG.cpp: diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index 4a98318d..921f3959 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -2961,7 +2961,7 @@ from:0x020f4c04 kind:load to:0x0203feb0 module:main from:0x020f4c08 kind:load to:0x027e0964 module:dtcm from:0x020f4c48 kind:arm_call to:0x020f4c54 module:overlay(31) from:0x020f4c90 kind:arm_call to:0x02099a50 module:overlay(0) -from:0x020f4cbc kind:load to:0x02116028 module:overlay(31) +from:0x020f4cbc kind:load to:0x02116020 module:overlay(31) add:0x8 from:0x020f4cd0 kind:arm_call to:0x0207d6b4 module:overlay(0) from:0x020f4cec kind:arm_call to:0x0207d6b4 module:overlay(0) from:0x020f4cf4 kind:arm_call to:0x02011ff4 module:main @@ -2981,7 +2981,7 @@ from:0x020f510c kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f511c kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f5178 kind:arm_call to:0x020f46a8 module:overlay(31) from:0x020f5190 kind:load to:0x027e0ce8 module:dtcm -from:0x020f51ec kind:load to:0x0211600c module:overlay(31) +from:0x020f51ec kind:load to:0x02116004 module:overlay(31) add:0x8 from:0x020f521c kind:arm_call to:0x01ff93c0 module:itcm from:0x020f523c kind:arm_call to:0x01ffb6e4 module:itcm from:0x020f524c kind:arm_call to:0x01ffb714 module:itcm diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 8e845836..6dced7a3 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -870,68 +870,68 @@ _ZN12ActorUnkNITF19func_ov031_020f1308Ev kind:function(arm,size=0xc) addr:0x020f _ZN12ActorUnkNITFD1Ev kind:function(arm,size=0x30) addr:0x020f2d10 _ZN12ActorUnkNITFD0Ev kind:function(arm,size=0x38) addr:0x020f2d40 _ZN19ActorProfileUnkNITFD1Ev kind:function(arm,size=0x14) addr:0x020f2d78 -_ZN19ActorProfileUnkAROW10GetProfileEv kind:function(arm,size=0xc) addr:0x020f2d8c -_ZN19ActorProfileUnkAROW6CreateEv kind:function(arm,size=0x24) addr:0x020f2d98 -_ZN19ActorProfileUnkAROWC1Ev kind:function(arm,size=0x44) addr:0x020f2dbc -_ZN12ActorUnkAROW19func_ov031_020f1404Ev kind:function(arm,size=0x18) addr:0x020f2e00 -_ZN12ActorUnkAROWC1Ev kind:function(arm,size=0x1ec) addr:0x020f2e18 -_ZN12ActorUnkAROW19func_ov031_020f1608Ev kind:function(arm,size=0x14) addr:0x020f3004 -_ZN12ActorUnkAROWD1Ev kind:function(arm,size=0x8c) addr:0x020f3018 -_ZN12ActorUnkAROWD0Ev kind:function(arm,size=0x94) addr:0x020f30a4 -_ZN12ActorUnkAROW19func_ov031_020f173cEv kind:function(arm,size=0x12c) addr:0x020f3138 -_ZN12ActorUnkAROW19func_ov031_020f1868Ev kind:function(arm,size=0xc) addr:0x020f3264 -_ZN12ActorUnkAROW19func_ov031_020f1874Ev kind:function(arm,size=0x4) addr:0x020f3270 -_ZN12ActorUnkAROW19func_ov031_020f1878Ev kind:function(arm,size=0x44) addr:0x020f3274 -_ZN12ActorUnkAROW19func_ov031_020f18bcEv kind:function(arm,size=0x9c) addr:0x020f32b8 -_ZN12ActorUnkAROW19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f3354 -_ZN12ActorUnkAROW19func_ov031_020f195cEv kind:function(arm,size=0x108) addr:0x020f3358 -_ZN12ActorUnkAROW19func_ov031_020f1a64Ev kind:function(arm,size=0xa0) addr:0x020f3460 -_ZN12ActorUnkAROW19func_ov031_020f1b04Ev kind:function(arm,size=0x120) addr:0x020f3500 -_ZN12ActorUnkAROW19func_ov031_020f1c24Ev kind:function(arm,size=0x58) addr:0x020f3620 -_ZN12ActorUnkAROW19func_ov031_020f1c7cEv kind:function(arm,size=0x158) addr:0x020f3678 -_ZN12ActorUnkAROW19func_ov031_020f1dd4Ev kind:function(arm,size=0x68) addr:0x020f37d0 -_ZN12ActorUnkAROW19func_ov031_020f1e3cEv kind:function(arm,size=0x118) addr:0x020f3838 -_ZN12ActorUnkAROW19func_ov031_020f1f54Ev kind:function(arm,size=0xbc) addr:0x020f3950 -_ZN12ActorUnkAROW19func_ov031_020f2010Ev kind:function(arm,size=0x5c) addr:0x020f3a0c -_ZN12ActorUnkAROW19func_ov031_020f206cEv kind:function(arm,size=0x50) addr:0x020f3a68 -_ZN12ActorUnkAROW19func_ov031_020f20bcEv kind:function(arm,size=0x78) addr:0x020f3ab8 -_ZN12ActorUnkAROW19func_ov031_020f2134Ev kind:function(arm,size=0x2c) addr:0x020f3b30 -_ZN12ActorUnkAROW19func_ov031_020f2160Ev kind:function(arm,size=0x7c) addr:0x020f3b5c -_ZN12ActorUnkAROW19func_ov031_020f21dcEv kind:function(arm,size=0x38) addr:0x020f3bd8 -_ZN12ActorUnkAROW19func_ov031_020f2214Ev kind:function(arm,size=0x5c) addr:0x020f3c10 -_ZN12ActorUnkAROW19func_ov031_020f2270Ev kind:function(arm,size=0x10) addr:0x020f3c6c -_ZN12ActorUnkAROW19func_ov031_020f2280Ev kind:function(arm,size=0x1c) addr:0x020f3c7c -_ZN12ActorUnkAROW19func_ov031_020f229cEv kind:function(arm,size=0x38) addr:0x020f3c98 -_ZN12ActorUnkAROW19func_ov031_020f22d4Ev kind:function(arm,size=0x3c) addr:0x020f3cd0 -_ZN12ActorUnkAROW19func_ov031_020f2310Ev kind:function(arm,size=0x344) addr:0x020f3d0c -_ZN12ActorUnkAROW19func_ov031_020f2654Ev kind:function(arm,size=0x140) addr:0x020f4050 -_ZN12ActorUnkAROW19func_ov031_020f2794Ev kind:function(arm,size=0x118) addr:0x020f4190 -_ZN12ActorUnkAROW19func_ov031_020f28acEv kind:function(arm,size=0x2e0) addr:0x020f42a8 -_ZN12ActorUnkAROW19func_ov031_020f2b8cEv kind:function(arm,size=0x30) addr:0x020f4588 -_ZN12ActorUnkAROW19func_ov031_020f2bbcEv kind:function(arm,size=0x30) addr:0x020f45b8 -_ZN12ActorUnkAROW19func_ov031_020f2becEv kind:function(arm,size=0x1c) addr:0x020f45e8 -_ZN12ActorUnkAROW19func_ov031_020f2c08Ev kind:function(arm,size=0xa4) addr:0x020f4604 -_ZN12ActorUnkAROW19func_ov031_020f2cacEv kind:function(arm,size=0x244) addr:0x020f46a8 -_ZN12ActorUnkAROW19func_ov031_020f2ef0Ev kind:function(arm,size=0x6c) addr:0x020f48ec -_ZN12ActorUnkAROW19func_ov031_020f2f5cEv kind:function(arm,size=0x40) addr:0x020f4958 -_ZN12ActorUnkAROW19func_ov031_020f2f9cEv kind:function(arm,size=0x64) addr:0x020f4998 -_ZN12ActorUnkAROW19func_ov031_020f3000Ev kind:function(arm,size=0x11c) addr:0x020f49fc -_ZN12ActorUnkAROW19func_ov031_020f311cEv kind:function(arm,size=0xf4) addr:0x020f4b18 -_ZN12ActorUnkAROW19func_ov031_020f3210Ev kind:function(arm,size=0x48) addr:0x020f4c0c -_ZN12ActorUnkAROW19func_ov031_020f3258Ev kind:function(arm,size=0x30) addr:0x020f4c54 -_ZN12ActorUnkAROW19func_ov031_020f3288Ev kind:function(arm,size=0x3c) addr:0x020f4c84 -_ZN12ActorUnkAROW19func_ov031_020f32c4Ev kind:function(arm,size=0x1c) addr:0x020f4cc0 -_ZN12ActorUnkAROW19func_ov031_020f32e0Ev kind:function(arm,size=0x24) addr:0x020f4cdc -_ZN12ActorUnkAROW19func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f4d00 -_ZN12ActorUnkAROW19func_ov031_020f3310Ev kind:function(arm,size=0xac) addr:0x020f4d0c -_ZN12ActorUnkAROW19func_ov031_020f33bcEv kind:function(arm,size=0x3f8) addr:0x020f4db8 -_ZN12ActorUnkAROW19func_ov031_020f370cEv kind:function(arm,size=0x40) addr:0x020f51b0 -_ZN12ActorUnkAROW19func_ov031_020f374cEv kind:function(arm,size=0x164) addr:0x020f51f0 -_ZN12ActorUnkAROW19func_ov031_020f38b0Ev kind:function(arm,size=0x388) addr:0x020f5354 -_ZN12ActorUnkAROW19func_ov031_020f3c38Ev kind:function(arm,size=0xcc) addr:0x020f56dc -_ZN12ActorUnkAROW19func_ov031_020f3d04Ev kind:function(arm,size=0x48) addr:0x020f57a8 -_ZN12ActorUnkAROW19func_ov031_020f3d4cEv kind:function(arm,size=0x1c) addr:0x020f57f0 -_ZN19ActorProfileUnkAROWD1Ev kind:function(arm,size=0x14) addr:0x020f580c +_ZN21ActorProfileShotArrow10GetProfileEv kind:function(arm,size=0xc) addr:0x020f2d8c +_ZN21ActorProfileShotArrow6CreateEv kind:function(arm,size=0x24) addr:0x020f2d98 +_ZN21ActorProfileShotArrowC1Ev kind:function(arm,size=0x44) addr:0x020f2dbc +_Z19func_ov031_020f1404v kind:function(arm,size=0x18) addr:0x020f2e00 +_ZN14ActorShotArrowC1Ev kind:function(arm,size=0x1ec) addr:0x020f2e18 +_ZN18ActorShotArrow_194D1Ev kind:function(arm,size=0x14) addr:0x020f3004 +_ZN14ActorShotArrowD1Ev kind:function(arm,size=0x8c) addr:0x020f3018 +_ZN14ActorShotArrowD0Ev kind:function(arm,size=0x94) addr:0x020f30a4 +_ZN14ActorShotArrow8vfunc_18Ei kind:function(arm,size=0x12c) addr:0x020f3138 +_ZN14ActorShotArrow19func_ov031_020f1868Ev kind:function(arm,size=0xc) addr:0x020f3264 +_ZN14ActorShotArrow19func_ov031_020f1874Ev kind:function(arm,size=0x4) addr:0x020f3270 +_ZN14ActorShotArrow8SetStateEj kind:function(arm,size=0x44) addr:0x020f3274 +_ZN14ActorShotArrow8vfunc_24Ev kind:function(arm,size=0x9c) addr:0x020f32b8 +_ZN14ActorShotArrow19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f3354 +_ZN14ActorShotArrow8vfunc_20Ev kind:function(arm,size=0x108) addr:0x020f3358 +_ZN14ActorShotArrow19func_ov031_020f1a64Ev kind:function(arm,size=0xa0) addr:0x020f3460 +_ZN14ActorShotArrow19func_ov031_020f1b04Ev kind:function(arm,size=0x120) addr:0x020f3500 +_ZN14ActorShotArrow19func_ov031_020f1c24Ev kind:function(arm,size=0x58) addr:0x020f3620 +_ZN14ActorShotArrow19func_ov031_020f1c7cEv kind:function(arm,size=0x158) addr:0x020f3678 +_ZN14ActorShotArrow19func_ov031_020f1dd4Ev kind:function(arm,size=0x68) addr:0x020f37d0 +_ZN14ActorShotArrow19func_ov031_020f1e3cEv kind:function(arm,size=0x118) addr:0x020f3838 +_ZN14ActorShotArrow19func_ov031_020f1f54Ev kind:function(arm,size=0xbc) addr:0x020f3950 +_ZN14ActorShotArrow19func_ov031_020f2010Ev kind:function(arm,size=0x5c) addr:0x020f3a0c +_ZN14ActorShotArrow19func_ov031_020f206cEv kind:function(arm,size=0x50) addr:0x020f3a68 +_ZN14ActorShotArrow19func_ov031_020f20bcEv kind:function(arm,size=0x78) addr:0x020f3ab8 +_ZN14ActorShotArrow19func_ov031_020f2134Ev kind:function(arm,size=0x2c) addr:0x020f3b30 +_ZN14ActorShotArrow19func_ov031_020f2160Ev kind:function(arm,size=0x7c) addr:0x020f3b5c +_ZN14ActorShotArrow19func_ov031_020f21dcEv kind:function(arm,size=0x38) addr:0x020f3bd8 +_ZN14ActorShotArrow19func_ov031_020f2214Ev kind:function(arm,size=0x5c) addr:0x020f3c10 +_ZN14ActorShotArrow19func_ov031_020f2270Ev kind:function(arm,size=0x10) addr:0x020f3c6c +_ZN14ActorShotArrow19func_ov031_020f2280Ev kind:function(arm,size=0x1c) addr:0x020f3c7c +_ZN14ActorShotArrow19func_ov031_020f229cEv kind:function(arm,size=0x38) addr:0x020f3c98 +_ZN14ActorShotArrow19func_ov031_020f22d4EP5Mat3pP7VecFx32 kind:function(arm,size=0x3c) addr:0x020f3cd0 +_ZN14ActorShotArrow8vfunc_2CEi kind:function(arm,size=0x344) addr:0x020f3d0c +_ZN14ActorShotArrow19func_ov031_020f2654EP5Mat3p kind:function(arm,size=0x140) addr:0x020f4050 +_ZN14ActorShotArrow19func_ov031_020f2794Es kind:function(arm,size=0x118) addr:0x020f4190 +_ZN14ActorShotArrow19func_ov031_020f28acEv kind:function(arm,size=0x2e0) addr:0x020f42a8 +_ZN14ActorShotArrow19func_ov031_020f2b8cEv kind:function(arm,size=0x30) addr:0x020f4588 +_ZN14ActorShotArrow19func_ov031_020f2bbcEv kind:function(arm,size=0x30) addr:0x020f45b8 +_ZN14ActorShotArrow19func_ov031_020f2becEv kind:function(arm,size=0x1c) addr:0x020f45e8 +_ZN14ActorShotArrow19func_ov031_020f2c08Es kind:function(arm,size=0xa4) addr:0x020f4604 +_ZN14ActorShotArrow19func_ov031_020f2cacEP7VecFx32b kind:function(arm,size=0x244) addr:0x020f46a8 +_ZN14ActorShotArrow19func_ov031_020f2ef0Ev kind:function(arm,size=0x6c) addr:0x020f48ec +_ZN14ActorShotArrow19func_ov031_020f2f5cEP7VecFx32 kind:function(arm,size=0x40) addr:0x020f4958 +_ZN14ActorShotArrow19func_ov031_020f2f9cEv kind:function(arm,size=0x64) addr:0x020f4998 +_ZN14ActorShotArrow19func_ov031_020f3000Ev kind:function(arm,size=0x11c) addr:0x020f49fc +_ZN14ActorShotArrow19func_ov031_020f311cEP7Mat4x3p kind:function(arm,size=0xf4) addr:0x020f4b18 +_ZN14ActorShotArrow19func_ov031_020f3210Et kind:function(arm,size=0x48) addr:0x020f4c0c +_ZN14ActorShotArrow19func_ov031_020f3258Et kind:function(arm,size=0x30) addr:0x020f4c54 +_ZN18ActorShotArrow_178C1EP14ActorShotArrow kind:function(arm,size=0x3c) addr:0x020f4c84 +_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_0CEv 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 +_ZN18ActorShotArrow_1948vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0xcc) addr:0x020f56dc +_ZN14ActorShotArrow19func_ov031_020f3d04Es kind:function(arm,size=0x48) addr:0x020f57a8 +_ZN18ActorShotArrow_194D0Ev kind:function(arm,size=0x1c) addr:0x020f57f0 +_ZN21ActorProfileShotArrowD1Ev kind:function(arm,size=0x14) addr:0x020f580c _ZN19ActorProfileUnkATTG10GetProfileEv kind:function(arm,size=0xc) addr:0x020f5820 _ZN19ActorProfileUnkATTG6CreateEv kind:function(arm,size=0x24) addr:0x020f582c _ZN19ActorProfileUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f5850 @@ -2081,7 +2081,7 @@ __sinit_ActorUnkRMTG.cpp kind:function(arm,size=0x50) addr:0x02113178 __sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x021131c8 __sinit_ActorUnkNTUB.cpp kind:function(arm,size=0x50) addr:0x02113218 __sinit_ActorUnkNITF.cpp kind:function(arm,size=0x50) addr:0x02113268 -__sinit_ActorUnkAROW.cpp kind:function(arm,size=0x50) addr:0x021132b8 +__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x021132b8 __sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02113308 __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x02113358 __sinit_ov031_021133a8 kind:function(arm,size=0x24) addr:0x021133a8 @@ -2145,7 +2145,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 .p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x02114554 .p__sinit_ActorUnkNTUB.cpp kind:data(word) addr:0x02114558 .p__sinit_ActorUnkNITF.cpp kind:data(word) addr:0x0211455c -.p__sinit_ActorUnkAROW.cpp kind:data(word) addr:0x02114560 +.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x02114560 .p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x02114564 .p__sinit_ActorUnkNTTZ.cpp kind:data(word) addr:0x02114568 .p__sinit_ov031_021133a8 kind:data(word) addr:0x0211456c @@ -2344,12 +2344,12 @@ data_ov031_02115f14 kind:data(any) addr:0x02115f14 data_ov031_02115f54 kind:data(any) addr:0x02115f54 data_ov031_02115f94 kind:data(any) addr:0x02115f94 ambiguous _ZTV19data_ov031_02115f94 kind:data(any) addr:0x02115f94 -data_ov031_0211600c kind:data(any) addr:0x0211600c -data_ov031_02116028 kind:data(any) addr:0x02116028 -_ZTV19data_ov031_0211603c kind:data(any) addr:0x0211603c -data_ov031_02116060 kind:data(any) addr:0x02116060 -data_ov031_021160a0 kind:data(any) addr:0x021160a0 -_ZTV19data_ov031_021160e0 kind:data(any) addr:0x021160e0 +_ZTV18ActorShotArrow_194 kind:data(any) addr:0x02116004 +_ZTV18ActorShotArrow_178 kind:data(any) addr:0x02116020 +_ZTV21ActorProfileShotArrow kind:data(any) addr:0x0211603c +data_ov031_021142c0 kind:data(any) addr:0x02116060 +data_ov031_02114300 kind:data(any) addr:0x021160a0 +_ZTV14ActorShotArrow kind:data(any) addr:0x021160e0 _ZTV19data_ov031_0211613c kind:data(any) addr:0x0211613c _ZTV19data_ov031_02116160 kind:data(any) addr:0x02116160 data_ov031_021161c4 kind:data(any) addr:0x021161c4 @@ -2562,9 +2562,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkNTUBE8sProfileE kind:bss addr:0x02118788 _ZGVN15ProfileInstanceI19ActorProfileUnkNITFE8sProfileE kind:bss addr:0x021187c4 @30854 kind:bss addr:0x021187c8 _ZN15ProfileInstanceI19ActorProfileUnkNITFE8sProfileE kind:bss addr:0x021187d4 -_ZGVN15ProfileInstanceI19ActorProfileUnkAROWE8sProfileE kind:bss addr:0x02118810 +_ZGVN15ProfileInstanceI21ActorProfileShotArrowE8sProfileE kind:bss addr:0x02118810 @30860 kind:bss addr:0x02118814 -_ZN15ProfileInstanceI19ActorProfileUnkAROWE8sProfileE kind:bss addr:0x02118820 +_ZN15ProfileInstanceI21ActorProfileShotArrowE8sProfileE kind:bss addr:0x02118820 _ZGVN15ProfileInstanceI19ActorProfileUnkATTGE8sProfileE kind:bss addr:0x0211885c @30866 kind:bss addr:0x02118860 _ZN15ProfileInstanceI19ActorProfileUnkATTGE8sProfileE kind:bss addr:0x0211886c diff --git a/config/jp/arm9/overlays/ov075/symbols.txt b/config/jp/arm9/overlays/ov075/symbols.txt index ce522ca4..1ec2ce3a 100644 --- a/config/jp/arm9/overlays/ov075/symbols.txt +++ b/config/jp/arm9/overlays/ov075/symbols.txt @@ -160,7 +160,7 @@ _ZN12ActorUnkMRD219func_ov075_0215b4dcEv kind:function(arm,size=0x9c) addr:0x021 _ZN12ActorUnkMRD219func_ov075_0215b578Ev kind:function(arm,size=0x39c) addr:0x0215d55c _ZN12ActorUnkMRD219func_ov075_0215b914Ev kind:function(arm,size=0x2d4) addr:0x0215d8f8 _ZN12ActorUnkMRD219func_ov075_0215bbe8Ev kind:function(arm,size=0x8) addr:0x0215dbcc -_ZN12ActorUnkMRD219func_ov075_0215bbf0Ev kind:function(arm,size=0x60) addr:0x0215dbd4 +_ZN12ActorUnkMRD219func_ov075_0215bbf0EP8ActorRefPi kind:function(arm,size=0x60) addr:0x0215dbd4 _ZN12ActorUnkMRD219func_ov075_0215bc50Ev kind:function(arm,size=0xf0) addr:0x0215dc34 _ZN12ActorUnkMRD219func_ov075_0215bd40Ev kind:function(arm,size=0x10) addr:0x0215dd24 _ZN12ActorUnkMRD219func_ov075_0215bd50Ev kind:function(arm,size=0xc0) addr:0x0215dd34 diff --git a/config/jp/arm9/overlays/ov084/symbols.txt b/config/jp/arm9/overlays/ov084/symbols.txt index 8b359290..742301f1 100644 --- a/config/jp/arm9/overlays/ov084/symbols.txt +++ b/config/jp/arm9/overlays/ov084/symbols.txt @@ -39,7 +39,7 @@ _ZN12ActorUnkIWTS19func_ov084_02154e04Ev kind:function(arm,size=0x24) addr:0x021 _ZN12ActorUnkIWTS19func_ov084_02154e28Ev kind:function(arm,size=0x188) addr:0x02154e28 _ZN12ActorUnkIWTSD0Ev kind:function(arm,size=0x190) addr:0x02154fb0 _ZN12ActorUnkIWTS19func_ov084_02155140Ev kind:function(arm,size=0x4c) addr:0x02155140 -_ZN12ActorUnkIWTS19func_ov084_0215518cEv kind:function(arm,size=0x70) addr:0x0215518c +_ZN12ActorUnkIWTS19func_ov084_02153064EP8ActorRefPP7Mat4x3p kind:function(arm,size=0x70) addr:0x0215518c _ZN12ActorUnkIWTS19func_ov084_021551fcEv kind:function(arm,size=0x88) addr:0x021551fc _ZN12ActorUnkIWTS19func_ov084_02155284Ev kind:function(arm,size=0x38) addr:0x02155284 _ZN12ActorUnkIWTS19func_ov084_021552bcEv kind:function(arm,size=0x50) addr:0x021552bc diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index cc7d6ba7..c7b8fbae 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -157,7 +157,7 @@ public: /* 04 */ virtual bool vfunc_04(); /* 08 */ virtual unk16 vfunc_08(); /* 0C */ virtual unk8 vfunc_0C(); - /* 10 */ virtual void vfunc_10(); + /* 10 */ virtual void vfunc_10(VecFx32 *param1); /* 14 */ virtual void vfunc_14(); /* 18 */ virtual bool vfunc_18(unk32 param1); /* 1C */ virtual void vfunc_1C(); @@ -203,6 +203,8 @@ public: } // overlay 0 + bool func_ov000_0205cbc4(u32 param1, VecFx32 *param2); + unk32 func_ov000_0207e294(Cylinder *param1); void func_ov000_0209848c(ActorProfile *param1); void func_ov000_020984b0(); void func_ov000_020984b4(); @@ -213,6 +215,7 @@ public: unk32 func_ov000_020984c8(); void func_ov000_020984d0(); void func_ov000_020984f0(); + u32 func_ov000_02098800(bool param1); bool func_ov000_02098838(); unk32 func_ov000_02098910(unk32 param1, unk32 param2); void func_ov000_02098b8c(unk32 param1, unk32 param2); @@ -227,11 +230,13 @@ 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); static void func_ov000_020973f4(ActorRef *pOutRef, UnkStruct_ov000_020b539c *param2, ActorId actorId, ActorParams *pParams, int param5); // overlay 17 + 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); }; diff --git a/include/Actor/ActorShotArrow.hpp b/include/Actor/ActorShotArrow.hpp new file mode 100644 index 00000000..a9023ced --- /dev/null +++ b/include/Actor/ActorShotArrow.hpp @@ -0,0 +1,244 @@ +#pragma once + +#include "Actor/Actor.hpp" +#include "Actor/ActorProfile.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "global.h" +#include "types.h" + +typedef u32 ActorShotArrowState; +enum ActorShotArrowState_ { + ActorShotArrowState_0 = 0, + ActorShotArrowState_1 = 1, + ActorShotArrowState_2 = 2, + ActorShotArrowState_3 = 3, + ActorShotArrowState_4 = 4, + ActorShotArrowState_5 = 5, + ActorShotArrowState_6 = 6, + ActorShotArrowState_7 = 7, + ActorShotArrowState_Max, +}; + +class ActorShotArrow; + +class ActorShotArrow_140 : public Actor_9C { +public: + /* 00 (vtable) */ + /* 20 */ STRUCT_PAD(0x20, 0x24); + /* 24 */ bool mUnk_24; + /* 25 */ unk8 mUnk_25; + /* 26 */ unk8 mUnk_26; + /* 27 */ unk8 mUnk_27; + /* 28 */ + + ActorShotArrow_140(Actor *param1); +}; + +class ActorShotArrow_178_Base : public UnkStruct_027e0ce0_38_Base { +public: + /* 00 (vtable) */ + /* 04 */ + + ActorShotArrow_178_Base(); + + // data_ov000_020b30d0 + /* 00 */ virtual ~ActorShotArrow_178_Base(); + /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; +}; + +class ActorShotArrow_178 : public ActorShotArrow_178_Base { +public: + /* 00 (vtable) */ + /* 04 */ STRUCT_PAD(0x04, 0x08); + /* 08 */ ActorShotArrow *mUnk_08; + /* 0C */ VecFx32 mUnk_0C; + /* 18 */ u16 mUnk_18; + /* 1A */ + + ActorShotArrow_178(ActorShotArrow *param1); + + // data_ov031_02114288 + /* 00 */ virtual ~ActorShotArrow_178() override; + /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; + /* 0C */ virtual bool vfunc_0C() override; + + void func_ov031_020f3304(); +}; + +class ActorShotArrow_194_Base { +public: + /* 00 (vtable) */ + /* 04 */ ActorRef mUnk_04; + /* 08 */ unk16 mUnk_08; + /* 08 */ unk16 mUnk_0A; + /* 0C */ VecFx32 mUnk_0C; + /* 18 */ fx32 mUnk_18; + /* 1C */ unk32 mUnk_1C; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ + + ActorShotArrow_194_Base() { + this->mUnk_04 = 0; + this->mUnk_08 = 0; + VecFx32_Init(0, 0, 0, &this->mUnk_0C); + this->mUnk_18 = 0; + this->mUnk_1C = 0; + this->mUnk_20 = 0; + this->mUnk_24 = 0; + this->mUnk_28 = 0; + } + + // data_ov000_020b27c8 + /* 00 */ virtual ~ActorShotArrow_194_Base(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector); + /* 10 */ virtual void vfunc_10(Actor *actor); +}; + +class ActorShotArrow_194 : public ActorShotArrow_194_Base { +public: + /* 00 (base) */ + /* 2C */ ActorShotArrow *mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ + + const bool IsParam1_3Or4() const { + Actor *pActor = (Actor *) this->mUnk_2C; + return pActor->mUnk_5C.mParams[1] == 0x03 || pActor->mUnk_5C.mParams[1] == 0x04; + } + + ActorShotArrow_194(ActorShotArrow *param1); + + // data_ov031_0211426c + /* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector) override; // func_ov031_020f3c38 + /* 10 */ virtual void vfunc_10(Actor *actor) override; // func_ov031_020f38b0 + // /* 14 */ virtual void vfunc_14(Mat3p *, VecFx32 *); + + void func_ov031_020f374c(Actor *param1); +}; + +class ActorShotArrow_1C8 { +public: + /* 00 */ Actor *mUnk_00; + /* 04 */ VecFx32 mUnk_04; + /* 10 */ s16 mUnk_10; + /* 12 */ s16 mUnk_12; + /* 14 */ + + ActorShotArrow_1C8() { + this->mUnk_00 = NULL; + this->mUnk_04.x = 0; + this->mUnk_04.y = 0; + this->mUnk_04.z = 0; + this->mUnk_10 = 0; + this->mUnk_12 = 0; + } +}; + +class ActorShotArrow_1DC { +public: + /* 00 */ VecFx32 mUnk_00; + /* 0C */ + + ActorShotArrow_1DC(unk32 param1, unk32 param2); + ~ActorShotArrow_1DC(); +}; + +class ActorShotArrow : public Actor { +public: + /* 000 (base) */ + /* 094 */ UnkSystem6_Derived2 mUnk_94; + /* 09C */ bool mUnk_9C; + /* 09C */ STRUCT_PAD(0x9D, 0xA0); + /* 0A0 */ ModelRender mUnk_A0; + /* 100 */ UnkSystem5_Derived1 mUnk_100; + /* 120 */ unk32 mUnk_120; + /* 124 */ STRUCT_PAD(0x124, 0x140); + /* 140 */ ActorShotArrow_140 mUnk_140; + /* 168 */ unk32 mUnk_168; + /* 16C */ fx32 mUnk_16C; + /* 170 */ u16 mUnk_170; + /* 172 */ u16 mUnk_172; + /* 174 */ unk16 mUnk_174; + /* 176 */ unk16 mUnk_176; + /* 178 */ ActorShotArrow_178 mUnk_178; + /* 194 */ ActorShotArrow_194 mUnk_194; + /* 1C8 */ ActorShotArrow_1C8 mUnk_1C8; + /* 1DC */ ActorShotArrow_1DC mUnk_1DC; + /* 1E0 */ STRUCT_PAD(0x1E8, 0x224); + /* 224 */ Mat4x3p *mUnk_224; + /* 228 */ Mat4x3p mUnk_228; + /* 258 */ u16 mUnk_258; + /* 25A */ bool mUnk_25A; + /* 25B */ bool mUnk_25B; + /* 25C */ bool mUnk_25C; + /* 25D */ bool mUnk_25D; + /* 25E */ u8 mUnk_25E; + /* 25F */ + + ActorShotArrow(); + + /* 18 */ virtual bool vfunc_18(unk32 param1) override; + /* 20 */ virtual void vfunc_20() override; + /* 24 */ virtual void vfunc_24() override; + /* 2C */ virtual void vfunc_2C(unk32 param1) override; + /* 4C */ virtual ~ActorShotArrow() override; + + void func_ov031_020f1868(); + void SetState(ActorShotArrowState state); + + unk32 func_ov031_020f2270(); + void func_ov031_020f2280(); + void func_ov031_020f229c(); + void func_ov031_020f22d4(Mat3p *param1, VecFx32 *param2); + void func_ov031_020f2654(Mat3p *param1); + void func_ov031_020f2794(unk16 param1); + void func_ov031_020f28ac(); + void func_ov031_020f2b8c(); + void func_ov031_020f2bbc(); + void func_ov031_020f2bec(); + void func_ov031_020f2c08(unk16 param1); + void func_ov031_020f2cac(VecFx32 *param1, bool param2); + void func_ov031_020f2ef0(); + void func_ov031_020f2f5c(VecFx32 *param1); + bool func_ov031_020f2f9c(); + void func_ov031_020f3000(); + void func_ov031_020f311c(Mat4x3p *param1); + bool func_ov031_020f3210(u16 param1); + bool func_ov031_020f3258(u16 param1); + void func_ov031_020f3d04(unk16 param1); + + // data_ov031_021142c0 + void func_ov031_020f1a64(); + void func_ov031_020f1c24(); + void func_ov031_020f1dd4(); + void func_ov031_020f1f54(); + void func_ov031_020f206c(); + void func_ov031_020f2134(); + void func_ov031_020f21dc(); + void func_ov031_020f1874(); + + // data_ov031_02114300 + void func_ov031_020f1b04(); + void func_ov031_020f1c7c(); + void func_ov031_020f1e3c(); + void func_ov031_020f2010(); + void func_ov031_020f20bc(); + void func_ov031_020f2160(); + void func_ov031_020f2214(); + void func_ov031_020f1958(); +}; + +class ActorProfileShotArrow : public ActorProfile { +public: + /* 00 (base) */ + + ActorProfileShotArrow(); + + /* 0C */ virtual Actor *Create(); + + static ActorProfileShotArrow *GetProfile(); +}; diff --git a/include/Actor/ActorTable.inl b/include/Actor/ActorTable.inl index f7cbab5b..e915d516 100644 --- a/include/Actor/ActorTable.inl +++ b/include/Actor/ActorTable.inl @@ -232,6 +232,7 @@ DEFINE_ACTOR_TYPE('MLCK', MLCK) DEFINE_ACTOR_TYPE('MNCB', MNCB) DEFINE_ACTOR_TYPE('MOCT', MOCT) DEFINE_ACTOR_TYPE('MRD2', MRD2) +DEFINE_ACTOR_TYPE('MRD3', MRD3) DEFINE_ACTOR_TYPE('MRDA', MRDA) DEFINE_ACTOR_TYPE('MRDL', MRDL) DEFINE_ACTOR_TYPE('MRDO', MRDO) diff --git a/include/Actor/ActorUnkAROW.hpp b/include/Actor/ActorUnkAROW.hpp deleted file mode 100644 index 4ce87255..00000000 --- a/include/Actor/ActorUnkAROW.hpp +++ /dev/null @@ -1,96 +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 ActorUnkAROW_C4 : public Actor_C4 { -public: - ActorUnkAROW_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 ActorUnkAROW : public Actor { -public: - /* 00 (base) */ - /* 94 */ - - ActorUnkAROW(); - - /* 4C */ virtual ~ActorUnkAROW() override; - - void func_ov031_020f1404(void); - void func_ov031_020f1608(void); - void func_ov031_020f173c(void); - void func_ov031_020f1868(void); - void func_ov031_020f1874(void); - void func_ov031_020f1878(void); - void func_ov031_020f18bc(void); - void func_ov031_020f1958(void); - void func_ov031_020f195c(void); - void func_ov031_020f1a64(void); - void func_ov031_020f1b04(void); - void func_ov031_020f1c24(void); - void func_ov031_020f1c7c(void); - void func_ov031_020f1dd4(void); - void func_ov031_020f1e3c(void); - void func_ov031_020f1f54(void); - void func_ov031_020f2010(void); - void func_ov031_020f206c(void); - void func_ov031_020f20bc(void); - void func_ov031_020f2134(void); - void func_ov031_020f2160(void); - void func_ov031_020f21dc(void); - void func_ov031_020f2214(void); - void func_ov031_020f2270(void); - void func_ov031_020f2280(void); - void func_ov031_020f229c(void); - void func_ov031_020f22d4(void); - void func_ov031_020f2310(void); - void func_ov031_020f2654(void); - void func_ov031_020f2794(void); - void func_ov031_020f28ac(void); - void func_ov031_020f2b8c(void); - void func_ov031_020f2bbc(void); - void func_ov031_020f2bec(void); - void func_ov031_020f2c08(void); - void func_ov031_020f2cac(void); - void func_ov031_020f2ef0(void); - void func_ov031_020f2f5c(void); - void func_ov031_020f2f9c(void); - void func_ov031_020f3000(void); - void func_ov031_020f311c(void); - void func_ov031_020f3210(void); - void func_ov031_020f3258(void); - void func_ov031_020f3288(void); - void func_ov031_020f32c4(void); - void func_ov031_020f32e0(void); - void func_ov031_020f3304(void); - void func_ov031_020f3310(void); - void func_ov031_020f33bc(void); - void func_ov031_020f370c(void); - void func_ov031_020f374c(void); - void func_ov031_020f38b0(void); - void func_ov031_020f3c38(void); - void func_ov031_020f3d04(void); - void func_ov031_020f3d4c(void); -}; - -class ActorProfileUnkAROW : public ActorProfile { -public: - /* 00 (base) */ - - ActorProfileUnkAROW(); - ~ActorProfileUnkAROW(); - - /* 0C */ virtual Actor *Create(); - - static ActorProfileUnkAROW *GetProfile(); -}; diff --git a/include/Actor/ActorUnkGYAM.hpp b/include/Actor/ActorUnkGYAM.hpp index e83484ec..3a3aec1f 100644 --- a/include/Actor/ActorUnkGYAM.hpp +++ b/include/Actor/ActorUnkGYAM.hpp @@ -19,8 +19,9 @@ public: class ActorUnkGYAM : public Actor { public: - /* 00 (base) */ - /* 94 */ + /* 000 (base) */ + /* 094 */ STRUCT_PAD(0x94, 0x220); + /* 220 */ Mat4x3p mUnk_220; ActorUnkGYAM(); diff --git a/include/Actor/ActorUnkIWTS.hpp b/include/Actor/ActorUnkIWTS.hpp index b5d0828c..dd7eb0bc 100644 --- a/include/Actor/ActorUnkIWTS.hpp +++ b/include/Actor/ActorUnkIWTS.hpp @@ -61,7 +61,7 @@ public: void func_ov084_02152cec(void); void func_ov084_02152d10(void); void func_ov084_02153018(void); - void func_ov084_02153064(void); + bool func_ov084_02153064(ActorRef *pRef, Mat4x3p **param2); void func_ov084_021530d4(void); void func_ov084_0215315c(void); void func_ov084_02153194(void); diff --git a/include/Actor/ActorUnkMRD2.hpp b/include/Actor/ActorUnkMRD2.hpp index 77cb4a5f..aaec7b50 100644 --- a/include/Actor/ActorUnkMRD2.hpp +++ b/include/Actor/ActorUnkMRD2.hpp @@ -19,8 +19,9 @@ public: class ActorUnkMRD2 : public Actor { public: - /* 00 (base) */ - /* 94 */ + /* 000 (base) */ + /* 094 */ STRUCT_PAD(0x094, 0x910); + /* 910 */ unk32 mUnk_910; ActorUnkMRD2(); @@ -114,7 +115,7 @@ public: void func_ov075_0215b578(void); void func_ov075_0215b914(void); void func_ov075_0215bbe8(void); - void func_ov075_0215bbf0(void); + bool func_ov075_0215bbf0(ActorRef *param1, unk32 *param2); void func_ov075_0215bc50(void); void func_ov075_0215bd40(void); void func_ov075_0215bd50(void); diff --git a/include/Actor/ActorUnkSWON.hpp b/include/Actor/ActorUnkSWON.hpp index 540dd775..50c1dd6e 100644 --- a/include/Actor/ActorUnkSWON.hpp +++ b/include/Actor/ActorUnkSWON.hpp @@ -12,7 +12,7 @@ public: ActorUnkSWON(); - /* 18 */ virtual bool vfunc_18(unk32 param_1) override; + /* 18 */ virtual bool vfunc_18(unk32 param1) override; /* 4C */ virtual ~ActorUnkSWON() override; }; diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index 1b532655..4f4c76ce 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -190,7 +190,7 @@ struct BMGFileInfo { /* 0C */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) /* 14 */ BMGHeader *mUnk_14; // same as pHeader (?) - /* 18 */ s16 mUnk_18; // stores `func_020372F0`->param_3 value (currently undetermined purpose) + /* 18 */ s16 mUnk_18; // stores `func_020372F0`->param3 value (currently undetermined purpose) /* 1A */ s16 groupId; // stores the group id /* 1C */ }; diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index b7855c6a..8fbaebd4 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -118,6 +118,21 @@ public: void func_ov000_020577f8(unk32 param1); }; +class UnkSystem5_Derived1 : public UnkSystem5 { +public: + UnkSystem5_Derived1(void *param1, G3d_Model *param2, unk32 param3) : + UnkSystem5(param1, param2) { + unk32 value = 0; + + //! TODO: struct + if (!(*((u32 *) param3 + 2) & 2)) { + value = 1; + } + + this->func_ov000_020577a4(param3, 0, value); + } +}; + class ModelRender_Derived1 : public ModelRender { public: /* 00 (base) */ diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index e56eb2a4..07280dfb 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -395,6 +395,10 @@ public: return this->mLoadedOverlays[OverlaySlot_13] == OverlayIndex_MapA6; } + bool IsPirateHideout() { + return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_FldAjito; + } + void Load(OverlaySlot slot, OverlayIndex index); void LoadIfNotLoaded(OverlaySlot slot, OverlayIndex index); void Unload(OverlaySlot slot); diff --git a/include/Unknown/UnkStruct_027e09a8.hpp b/include/Unknown/UnkStruct_027e09a8.hpp index 545f9965..e5e14842 100644 --- a/include/Unknown/UnkStruct_027e09a8.hpp +++ b/include/Unknown/UnkStruct_027e09a8.hpp @@ -7,6 +7,7 @@ class UnkStruct_027e09a8 { public: void func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3); void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4); + void func_ov000_02071eac(VecFx32 *pPos); }; extern UnkStruct_027e09a8 *data_027e09a8; diff --git a/include/Unknown/UnkStruct_027e09b4.hpp b/include/Unknown/UnkStruct_027e09b4.hpp index da338d22..59a9414e 100644 --- a/include/Unknown/UnkStruct_027e09b4.hpp +++ b/include/Unknown/UnkStruct_027e09b4.hpp @@ -11,6 +11,7 @@ public: ~UnkStruct_027e09b4(); void func_01fff60c(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5, unk32 param6); + void func_ov017_020c08c4(VecFx32 *param1, unk32 param2, unk32 param3, s32 param4, s32 param5, s32 param6); }; extern UnkStruct_027e09b4 *data_027e09b4; diff --git a/include/Unknown/UnkStruct_027e09bc.hpp b/include/Unknown/UnkStruct_027e09bc.hpp index 4edcaccd..46b50c34 100644 --- a/include/Unknown/UnkStruct_027e09bc.hpp +++ b/include/Unknown/UnkStruct_027e09bc.hpp @@ -8,6 +8,7 @@ public: /* 00 */ STRUCT_PAD(0x00, 0x34); /* 34 */ VecFx32 mUnk_34; + bool func_01ffd640(VecFx32 *param1); void func_ov000_02078230(unk32 param1); bool func_ov000_0207834c(VecFx32 *param1, unk32 param2, unk32 param3); bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3); diff --git a/include/Unknown/UnkStruct_027e09c0.hpp b/include/Unknown/UnkStruct_027e09c0.hpp index f7e7dd8a..567c349a 100644 --- a/include/Unknown/UnkStruct_027e09c0.hpp +++ b/include/Unknown/UnkStruct_027e09c0.hpp @@ -1,5 +1,7 @@ #pragma once +#include "Actor/ActorRef.hpp" +#include "Actor/ActorShotArrow.hpp" #include "global.h" #include "types.h" @@ -10,6 +12,9 @@ public: UnkStruct_027e09c0(); ~UnkStruct_027e09c0(); + // overlay 0 + void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, ActorShotArrow_194 *param4); + // overlay 1 void func_ov001_020be3c4(); void func_ov001_020be394(); diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index 7eda248b..a65343cc 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -103,6 +103,8 @@ public: void func_ov000_0208053c(u16 param1); void func_ov000_020803ec(u16 param1); bool func_ov000_020802ec(u16 param1, VecFx32 *param2); + void func_ov000_02080a5c(VecFx32 *param1); + void func_ov000_02080a78(VecFx32 *param1); VecFx32 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1); }; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index eb408e55..43d61077 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -57,24 +57,37 @@ public: void func_ov110_02185d3c(ItemId itemId); }; +class UnkStruct_ov031_020f3310_00 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x06); + /* 06 */ u16 mUnk_06; + /* 0A */ +}; + +class UnkStruct_ov031_020f3310_04 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x24); + /* 24 */ unk32 mUnk_24[4]; + /* 34 */ +}; + +class UnkStruct_ov031_020f3310 { +public: + /* 00 */ UnkStruct_ov031_020f3310_00 *mUnk_00; + /* 04 */ UnkStruct_ov031_020f3310_04 *mUnk_04; + /* 08 */ VecFx16 mUnk_08; + /* 20 */ +}; + class UnkStruct_027e0ce0_38_Base { public: /* 00 (vtable) */ - /* 04 */ void *mUnk_04; - /* 08 */ void *mUnk_08; - /* 0C */ unk32 mUnk_0C; - /* 10 */ - - UnkStruct_027e0ce0_38_Base() { - this->mUnk_04 = NULL; - this->mUnk_08 = NULL; - this->mUnk_0C = 0; - } + /* 04 */ // data_ov000_020b2838 /* 00 */ virtual ~UnkStruct_027e0ce0_38_Base(); - /* 08 */ virtual void vfunc_08(); - /* 0C */ virtual void vfunc_0C(); + /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1); + /* 0C */ virtual bool vfunc_0C(); /* 10 */ virtual void vfunc_10(); /* 14 */ }; @@ -169,6 +182,9 @@ public: class UnkStruct_027e0ce0_38 : public UnkStruct_027e0ce0_38_Base { public: /* 000 (base) */ + /* 04 */ void *mUnk_04; + /* 08 */ void *mUnk_08; + /* 0C */ unk32 mUnk_0C; /* 010 */ UnkStruct_027e0ce0_38_10 *mUnk_010; /* 014 */ Input mUnk_014; /* 01C */ VecFx32 mPos; @@ -209,7 +225,7 @@ public: // data_ov026_0213562c /* 00 */ virtual ~UnkStruct_027e0ce0_38() override; - /* 0C */ virtual void vfunc_0C() override; + /* 0C */ virtual bool vfunc_0C() override; }; class UnkStruct_027e0ce0_40_Base_14 { @@ -375,6 +391,12 @@ public: UnkStruct_027e0ce0_3C(); }; +class UnkStruct_027e0ce0_1C { +public: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ MapObjectProfile_Derived2_20_Base *mUnk_0C; +}; + // PlayerManager? class UnkStruct_027e0ce0 : public AutoInstance { public: @@ -388,7 +410,7 @@ public: /* 10 */ unk32 *mUnk_10; /* 14 */ unk32 *mUnk_14; /* 18 */ unk32 *mUnk_18; - /* 1C */ unk32 *mUnk_1C; + /* 1C */ UnkStruct_027e0ce0_1C *mUnk_1C; /* 20 */ unk32 *mUnk_20; /* 24 */ unk32 mUnk_24; /* 28 */ ItemManager *mUnk_28; @@ -413,7 +435,9 @@ public: void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3); void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, void *param3); + void 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); static UnkStruct_027e0ce0_34 *func_ov000_0205c904(); diff --git a/include/Unknown/UnkStruct_027e0cec.hpp b/include/Unknown/UnkStruct_027e0cec.hpp index 2b39a6d6..3c8e6eb6 100644 --- a/include/Unknown/UnkStruct_027e0cec.hpp +++ b/include/Unknown/UnkStruct_027e0cec.hpp @@ -10,6 +10,7 @@ public: ~UnkStruct_027e0cec(); void func_ov000_0209feac(unk32 param1, VecFx32 *param2, unk32 param3, unk32 param4, unk32 param5); + void func_ov000_0209ff24(unk32 param1, VecFx32 *param2, VecFx16 *param3, unk32 param4); void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4); void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5); void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1); diff --git a/include/Unknown/UnkStruct_027e0d30.hpp b/include/Unknown/UnkStruct_027e0d30.hpp new file mode 100644 index 00000000..ea721a8d --- /dev/null +++ b/include/Unknown/UnkStruct_027e0d30.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include +#include + +class UnkStruct_027e0d30 { +public: + void func_ov031_020d9684(u16 param1, VecFx32 *param2); +}; + +extern UnkStruct_027e0d30 *data_027e0d30; diff --git a/libs/nitro/include/nitro/fx.h b/libs/nitro/include/nitro/fx.h index c6852037..006d1155 100644 --- a/libs/nitro/include/nitro/fx.h +++ b/libs/nitro/include/nitro/fx.h @@ -16,6 +16,16 @@ extern "C" { typedef s32 fx32; typedef s16 fx16; +typedef union VecFx16 { + struct { + /* 00 */ fx16 x; + /* 02 */ fx16 y; + /* 04 */ fx16 z; + /* 06 */ + }; + fx16 coords[3]; +} VecFx16; + typedef union VecFx32 { struct { /* 00 */ fx32 x; diff --git a/libs/nitro/include/nitro/math.h b/libs/nitro/include/nitro/math.h index 8b937730..8960ddf9 100644 --- a/libs/nitro/include/nitro/math.h +++ b/libs/nitro/include/nitro/math.h @@ -165,6 +165,12 @@ static inline void VecFx32_CopyXZ(VecFx32 *vec, VecFx32 *out) { out->z = z; } +static inline void VecFx16_Copy2VecFx32(const VecFx16 *vec, VecFx32 *out) { + out->x = vec->x; + out->y = vec->y; + out->z = vec->z; +} + static inline void VecFx32_Copy(const VecFx32 *vec, VecFx32 *out) { out->x = vec->x; out->y = vec->y; diff --git a/src/031_Land/Actor/ActorHeart.cpp b/src/031_Land/Actor/ActorHeart.cpp index edf0b7f6..3b78e8dd 100644 --- a/src/031_Land/Actor/ActorHeart.cpp +++ b/src/031_Land/Actor/ActorHeart.cpp @@ -31,7 +31,6 @@ extern "C" void func_02097bb8(void); extern "C" void func_ov000_0205c1f0(unk32 *, unk16); extern "C" void func_ov000_0205c204(unk32 *, VecFx32 *, unk32, unk32, unk32); extern "C" void func_ov000_0208bc00(UnkStruct_027e0ce0 *, unk16, unk16 *); -extern "C" void func_ov000_02098838(); extern "C" void func_ov017_020bf99c(void); extern "C" void func_ov017_02097bec(Actor_9C *); @@ -261,7 +260,7 @@ void ActorHeart::func_ov031_020ef2ec() { } void ActorHeart::func_ov031_020ef2f8() { - func_ov000_02098838(); + this->func_ov000_02098838(); if (this->mVel.y > 0) { return; } @@ -437,14 +436,14 @@ ActorHeart_C4::ActorHeart_C4(Actor *param1) : this->mUnk_04 = 1; } -bool ActorHeart_C4::vfunc_00(ActorRef ref, unk32 param_3) { - if (param_3 != 0) { +bool ActorHeart_C4::vfunc_00(ActorRef ref, unk32 param3) { + if (param3 != 0) { ActorHeart *pHeart = this->GetActorPtr(); pHeart->mUnk_C4 = ref; pHeart->SetState(ActorHeartState_4); } - return this->Actor_C4::vfunc_00(ref, param_3); + return this->Actor_C4::vfunc_00(ref, param3); } void ActorHeart_C4::vfunc_04() { diff --git a/src/031_Land/Actor/ActorItemDrop.cpp b/src/031_Land/Actor/ActorItemDrop.cpp index a52b1a1a..987b5c22 100644 --- a/src/031_Land/Actor/ActorItemDrop.cpp +++ b/src/031_Land/Actor/ActorItemDrop.cpp @@ -526,20 +526,20 @@ void ActorItemDrop::func_ov031_020fa900() { } } -ActorItemDrop_C4::ActorItemDrop_C4(Actor *param_1) : - Actor_C4(param_1) { - this->mUnk_20 = param_1; +ActorItemDrop_C4::ActorItemDrop_C4(Actor *param1) : + Actor_C4(param1) { + this->mUnk_20 = param1; this->mUnk_04 = 0x1; } -bool ActorItemDrop_C4::vfunc_00(ActorRef ref, unk32 param_2) { - if (param_2 != 0) { +bool ActorItemDrop_C4::vfunc_00(ActorRef ref, unk32 param2) { + if (param2 != 0) { ActorItemDrop *actorDroppedItem = this->GetActorPtr(); actorDroppedItem->mUnk_E0 = ref; actorDroppedItem->SetState(ActorItemDropState_4); } - return Actor_C4::vfunc_00(ref, param_2); + return Actor_C4::vfunc_00(ref, param2); } void ActorItemDrop_C4::vfunc_04() { @@ -547,9 +547,9 @@ void ActorItemDrop_C4::vfunc_04() { Actor_C4::vfunc_04(); } -void ActorItemDrop_C4::vfunc_0C(unk32 param_1) { +void ActorItemDrop_C4::vfunc_0C(unk32 param1) { this->GetActorPtr()->SetState(ActorItemDropState_1); - Actor_C4::vfunc_0C(param_1); + Actor_C4::vfunc_0C(param1); } void ActorItemDrop_C4::vfunc_08() { diff --git a/src/031_Land/Actor/ActorRupee.cpp b/src/031_Land/Actor/ActorRupee.cpp index c274d3c6..4ff8c897 100644 --- a/src/031_Land/Actor/ActorRupee.cpp +++ b/src/031_Land/Actor/ActorRupee.cpp @@ -10,7 +10,6 @@ extern "C" void func_01ffedac(u16 *, VecFx32 *); extern "C" void func_01fff05c(u32 *, UnkStruct_027e0cd8_0c *, VecFx32 *); extern "C" unk32 func_02017158(); -extern "C" void func_ov000_02098838(); extern "C" void func_ov017_020bf99c(); extern "C" void func_ov031_0210acd4(u8); extern "C" unk32 func_ov031_0210af50(u16, unk32 *); @@ -639,7 +638,7 @@ void ActorRupee::vfunc_20() { } void ActorRupee::func_ov031_020e9b88() { - func_ov000_02098838(); + this->func_ov000_02098838(); VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); if (this->mUnk_5C.mInitialPos.y < this->mPos.y + this->mVel.y) { @@ -655,7 +654,7 @@ void ActorRupee::func_ov031_020e9b88() { } void ActorRupee::func_ov031_020e9be8() { - func_ov000_02098838(); + this->func_ov000_02098838(); VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); if (this->mVel.y < 0) { diff --git a/src/031_Land/Actor/ActorShotArrow.cpp b/src/031_Land/Actor/ActorShotArrow.cpp new file mode 100644 index 00000000..6f61b398 --- /dev/null +++ b/src/031_Land/Actor/ActorShotArrow.cpp @@ -0,0 +1,1156 @@ +#include "Actor/ActorShotArrow.hpp" + +#include "Actor/ActorManager.hpp" +#include "Actor/ActorUnkGYAM.hpp" +#include "Actor/ActorUnkIWTS.hpp" +#include "Actor/ActorUnkMRD2.hpp" +#include "System/OverlayManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09b4.hpp" +#include "Unknown/UnkStruct_027e09bc.hpp" +#include "Unknown/UnkStruct_027e09c0.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" +#include "Unknown/UnkStruct_027e0d30.hpp" + +typedef struct UnkResourceStruct2 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ +} UnkResourceStruct2; + +typedef struct { + /* 00 */ VecFx32 mUnk_00; + /* 0C */ VecFx32 mUnk_0C; + /* 18 */ unk32 mUnk_18; + /* 1C */ VecFx32 mUnk_1C; + /* 28 */ VecFx32 mUnk_28; + /* 34 */ +} UnkStruct_020f374c; + +typedef struct { + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ ActorRef mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ Mat4x3p *mUnk_0C; + /* 10 */ VecFx32 mUnk_10; + /* 1C */ VecFx32 mUnk_1C; + /* 28 */ +} UnkStruct_020f38b0; + +typedef struct { + /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 04 */ VecFx32 mUnk_04; + /* 10 */ STRUCT_PAD(0x10, 0x14); + /* 14 */ VecFx32 mUnk_14; + /* 20 */ +} UnkStruct_020f3c38; + +typedef struct { + /* 000 */ STRUCT_PAD(0x0, 0x25B); + /* 25B */ bool mUnk_25B; + /* 25C */ +} UnkStruct_ov060_02163ff4; + +typedef struct { + /* 0C */ Mat3p mUnk_0C; + /* 30 */ Mat3p mUnk_30; + /* 54 */ VecFx32 mUnk_54; + /* 60 */ Mat3p mUnk_60; + /* 84 */ Mat4x3p mUnk_84; + /* B4 */ Mat4x3p mUnk_B4; + /* E4 */ VecFx32 mUnk_E4; + /* F0 */ fx32 mUnk_F0; +} UnkStack_ov031_020f2310; + +struct UnkStruct_020f1b04 { + /* 0C */ unk32 mUnk_0C; + /* 10 */ STRUCT_PAD(0x10, 0x24); + /* 24 */ +}; + +extern "C" u8 data_ov031_02110b01[]; // = {0x08, 0x02, 0x02, 0x0C, 0x04, 0x00}; +extern "C" char data_ov031_02110b3c[0x10]; // = "arrow"; +extern "C" char data_ov031_02110b4c[0x10]; // = "arrow_s"; + +extern "C" char data_ov031_02110b5c[0x14]; // = "ef_arrowB"; +extern "C" char data_ov031_02110b08[0x34]; // = "ef_arrowB"; + +extern Mat4x3p data_027e0964; +extern ActorUnkIWTS *data_027e0d80; +extern bool data_ov060_02163fe0; +extern UnkStruct_ov060_02163ff4 data_ov060_02163ff4; +extern ActorUnkMRD2 *data_ov075_02163518; + +extern "C" unk32 func_01ff9258(fx32, fx32); +extern "C" void func_01ff93c0(VecFx32 *, unk32); +extern "C" void func_01ff94cc(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" void func_01ff95a0(VecFx32 *, unk16); +extern "C" void func_01ff9638(VecFx32 *vec, s16 angle); +extern "C" void func_01ffa7a0(VecFx32 *, Mat3p *, VecFx32 *); +extern "C" void func_01ffa9e8(Mat4x3p *, Mat4x3p *); +extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *); +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" fx16 func_01ffbbe0(fx32, fx32); +extern "C" bool func_01ffccf4(VecFx32 *, VecFx32 *, VecFx32 *, unk32 *); +extern "C" void func_01ffe6c4(unk32 *, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, unk32); +extern "C" void func_0200eab0(G3d_Model *, unk16, u8); +extern "C" UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *); +extern "C" void func_ov000_02057c98(ModelRender *param1, UnkSystem5 *param2); +extern "C" bool func_ov000_0205aeac(); +extern "C" void func_ov000_0207b6c0(); +extern "C" unk32 func_ov000_0207df88(unk32 *, Cylinder *, unk32); +extern "C" void func_ov075_02160864(ActorShotArrow *, unk32); +extern "C" void GX_func_02024a84(Mat3p *param1); +extern "C" void CopySingle288(Mat4x3p *, Mat3p *); +extern "C" void func_01ffa60c(const Mat3p *, Mat3p *, Mat3p *); + +MapObjectProfile_Derived2_20_Base *func_ov031_020f1404() { + return data_027e0ce0->mUnk_1C->mUnk_0C; +} + +inline G3d_Model *GetResource(char *str) { + return (G3d_Model *) G3d_GetUnkPtr(func_ov031_020f1404()->mUnk_50, str); +} + +inline G3d_Model *GetResource() { + return (G3d_Model *) G3d_GetUnkPtr(func_ov031_020f1404()->mUnk_50, data_ov031_02110b5c); +} + +DECL_PROFILE(ActorProfileShotArrow); + +Actor *ActorProfileShotArrow::Create() { + return new(HeapIndex_2) ActorShotArrow(); +} + +ActorProfileShotArrow::ActorProfileShotArrow() : + ActorProfile(ActorId_AROW) { + this->mUnk_04.Init(FLOAT_TO_FX32(0.2f)); +} + +ActorShotArrow::ActorShotArrow() : + mUnk_9C(true), + mUnk_A0(GetResource()), + mUnk_100(&this->mUnk_120, GetResource(), func_ov031_020f1404()->func_ov000_02058a84(0, data_ov031_02110b08)), + mUnk_140(this), + mUnk_168(0), + mUnk_16C(0), + mUnk_170(0x1F), + mUnk_172(0x1F), + mUnk_174(0), + mUnk_176(0), + mUnk_178(this), + mUnk_194(this), + mUnk_1DC(0x548, 0), + mUnk_258(0) { + this->mUnk_140.mUnk_04 |= 0x8000; + this->mUnk_140.mUnk_24 = true; + this->mUnk_224 = 0; + this->mUnk_25B = false; + this->mUnk_25C = false; + this->mUnk_25D = false; + + bool var_r1_2 = true; + if (this->mUnk_5C.mParams[1] != 3 && this->mUnk_5C.mParams[1] != 4) { + var_r1_2 = false; + } + + if (var_r1_2) { + this->func_ov031_020f2794(2); + } else { + this->func_ov031_020f2794(0); + } + + if (gOverlayManager.IsPirateHideout() && data_ov060_02163fe0) { + this->mUnk_25C = true; + } +} + +ActorShotArrow::~ActorShotArrow() { + if (func_ov000_0205aeac()) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC.mUnk_00); + } + } +} + +bool ActorShotArrow::vfunc_18(unk32 param1) { + fx32 sin_value = SIN((u16) this->mAngle); + fx32 cos_value = COS((u16) this->mAngle); + + this->mUnk_2C = 0; + this->mVel.x = MUL_FX32(sin_value, 1024); + this->mVel.z = MUL_FX32(cos_value, 1024); + this->mVel.y = 0; + this->mUnk_16C = VecFx32_Length(&this->mVel); + + if (func_ov000_0205aeac()) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + VecFx32_Copy(&this->mPos, &this->mUnk_1DC.mUnk_00); + data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_1DC.mUnk_00); + } + } + + this->SetState(ActorShotArrowState_0); + + this->mUnk_194.mUnk_04 = this->mRef.Get32(); + VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C); + this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.20f); + this->mUnk_44 = 0x1F; + return true; +} + +void ActorShotArrow::func_ov031_020f1868() { + this->mUnk_2C = 0; +} + +void ActorShotArrow::func_ov031_020f1874() {} + +static PTMF data_ov031_021142c0[ActorShotArrowState_Max] = { + ActorShotArrow::func_ov031_020f1a64, // ActorShotArrowState_0 + ActorShotArrow::func_ov031_020f1c24, // ActorShotArrowState_1 + ActorShotArrow::func_ov031_020f1dd4, // ActorShotArrowState_2 + ActorShotArrow::func_ov031_020f1f54, // ActorShotArrowState_3 + ActorShotArrow::func_ov031_020f206c, // ActorShotArrowState_4 + ActorShotArrow::func_ov031_020f2134, // ActorShotArrowState_5 + ActorShotArrow::func_ov031_020f21dc, // ActorShotArrowState_6 + ActorShotArrow::func_ov031_020f1874 // ActorShotArrowState_7 +}; + +void ActorShotArrow::SetState(ActorShotArrowState state) { + this->mState = state; + this->func_ov031_020f1868(); + CALL_PTMF(PTMF, data_ov031_021142c0[this->mState]); +} + +void ActorShotArrow::vfunc_24() { + if (this->mUnk_25A) { + if (this->mUnk_25E < 0x1F) { + if ((this->mUnk_25E = this->mUnk_25E + 0x4 & 0xFF) >= 0x1F) { + this->mUnk_25E = 0x1F; + } + } + this->mUnk_100.func_01ffc3b4(); + } + if (func_ov000_0205aeac() != 0) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + this->func_ov031_020f3000(); + } + } + + if (this->mState != ActorShotArrowState_1 && this->mState != ActorShotArrowState_2 && + this->mState != ActorShotArrowState_3) { + return; + } + this->func_ov031_020f3258(0x1); + this->func_ov031_020f2280(); +} + +void ActorShotArrow::func_ov031_020f1958() {} + +static PTMF data_ov031_02114300[ActorShotArrowState_Max] = { + ActorShotArrow::func_ov031_020f1b04, // ActorShotArrowState_0 + ActorShotArrow::func_ov031_020f1c7c, // ActorShotArrowState_1 + ActorShotArrow::func_ov031_020f1e3c, // ActorShotArrowState_2 + ActorShotArrow::func_ov031_020f2010, // ActorShotArrowState_3 + ActorShotArrow::func_ov031_020f20bc, // ActorShotArrowState_4 + ActorShotArrow::func_ov031_020f2160, // ActorShotArrowState_5 + ActorShotArrow::func_ov031_020f2214, // ActorShotArrowState_6 + ActorShotArrow::func_ov031_020f1958 // ActorShotArrowState_7 +}; + +void ActorShotArrow::vfunc_20() { + this->mUnk_3C = &this->mUnk_140; + CALL_PTMF(PTMF, data_ov031_02114300[this->mState]); + + if (this->mUnk_25A) { + if (this->mUnk_25E < 0x1F && (this->mUnk_25E = this->mUnk_25E + 0x4 & 0xFF) >= 0x1F) { + this->mUnk_25E = 0x1F; + } + + this->mUnk_100.func_01ffc3b4(); + } + + if (func_ov000_0205aeac()) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + if (this->mUnk_170 > 0x10) { + this->func_ov031_020f3000(); + } else { + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC.mUnk_00); + } + } + } + + if (this->mUnk_178.mUnk_18 & 0x1) { + this->func_ov031_020f2cac(&this->mUnk_178.mUnk_0C, true); + this->mUnk_178.func_ov031_020f3304(); + } + + this->func_ov031_020f229c(); +} + +// non-matching +void ActorShotArrow::func_ov031_020f1a64() { + if (this->mUnk_5C.mParams[1] == 0x1 || this->mUnk_5C.mParams[1] == 0x4) { + this->mUnk_50 = 0x0; + this->mUnk_52 = 0x78; + } else { + this->mUnk_50 = 0x0; + this->mUnk_52 = 0x3C; + } + + unk32 value_func_020f2270 = this->func_ov031_020f2270(); + unk16 sin_value = SIN((u16) this->mAngle); + unk16 cos_value = COS((u16) this->mAngle); + + this->mVel.x = MUL_FX32(sin_value, value_func_020f2270); + this->mVel.y = FLOAT_TO_FX32(0.0f); + this->mVel.z = MUL_FX32(cos_value, value_func_020f2270); +} + +// non-matching +void ActorShotArrow::func_ov031_020f1b04() { + UnkStruct_020f1b04 stack; + + if (this->IsTimerOut()) { + this->SetState(ActorShotArrowState_6); + return; + } + + this->func_ov031_020f28ac(); + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + this->mUnk_16C = VecFx32_Length(&this->mVel); + + if (this->mUnk_5C.mParams[1] == 0x1 || this->mUnk_5C.mParams[1] == 0x4) { + data_027e0d30->func_ov031_020d9684(this->mUnk_5C.mParams[2], &this->mPos); + } + + if (!this->func_ov017_020beeec(0x0)) { + stack.mUnk_0C = 0; + VecFx32 *mPos = &this->mPos; + func_01ffe6c4(&stack.mUnk_0C, this->mRef, mPos, &this->mPrevPos, (s16) this->mUnk_44, mPos, 0); + + if (this->func_ov000_0207e294(this->mUnk_30)) { + this->Kill(); + } + + return; + } + + this->func_ov031_020f2ef0(); +} + +void ActorShotArrow::func_ov031_020f1c24() { + 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->func_ov031_020f2794(0x1); + this->mUnk_174 = 0x1555; + + data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0); + this->mUnk_16C = 0; +} + +// non-matching +void ActorShotArrow::func_ov031_020f1c7c() { + if (this->func_ov031_020f3210(0x1)) { + this->Kill(); + } + + if (this->mUnk_1C8.mUnk_00 && GET_FLAG(this->mUnk_1C8.mUnk_00->mFlags, ActorFlag_Alive) && + !GET_FLAG(this->mUnk_1C8.mUnk_00->mFlags, ActorFlag_18)) { + + VecFx32_Copy(&this->mUnk_1C8.mUnk_00->mPos, &this->mPos); + + s16 delta = this->mUnk_1C8.mUnk_00->mAngle - this->mUnk_1C8.mUnk_10; + VecFx32 vec_fx32 = this->mUnk_1C8.mUnk_04; + func_01ff9638(&vec_fx32, delta); + + VecFx32_Add(&this->mPos, &vec_fx32, &this->mPos); + this->mAngle = this->mUnk_1C8.mUnk_00->mAngle + (s16) (this->mUnk_1C8.mUnk_12 - this->mUnk_1C8.mUnk_10); + } else { + this->func_ov031_020f2c08(0x400); + } + + this->func_ov031_020f2280(); + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + if (func_ov000_0205aeac() && (this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4) != false) { + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC.mUnk_00); + } +} + +void ActorShotArrow::func_ov031_020f1dd4() { + 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->func_ov031_020f2794(0x1); + this->mUnk_174 = 0x1555; + + data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0); + this->mUnk_16C = 0; + this->mUnk_50 = 0; + this->mUnk_52 = this->mUnk_258; +} + +void ActorShotArrow::func_ov031_020f1e3c() { + if (!this->mUnk_25B && this->IsTimerOut()) { + if (this->func_ov031_020f3210(0x1)) { + this->Kill(); + return; + } + + this->mUnk_52 = this->mUnk_258; + this->mUnk_50 = 0; + } + + Actor *targetActor = this->mUnk_1C8.mUnk_00; + if (targetActor == NULL || !GET_FLAG(targetActor->mFlags, ActorFlag_Alive) || + GET_FLAG(targetActor->mFlags, ActorFlag_18)) { + this->func_ov031_020f2c08(0x400); + } + + this->func_ov031_020f2280(); + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + if (!func_ov000_0205aeac()) { + return; + } + + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (!paramIs3Or4) { + return; + } + + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC.mUnk_00); +} + +void ActorShotArrow::func_ov031_020f1f54() { + 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->func_ov031_020f2794(0x1); + + this->mUnk_174 = 0x1555; + data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0); + this->mUnk_16C = 0; + + if (func_ov000_0205aeac()) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC.mUnk_00); + } + } + + if (this->mUnk_25C && !this->mUnk_25D) { + data_ov060_02163ff4.mUnk_25B = true; + } +} + +void ActorShotArrow::func_ov031_020f2010() { + if (this->func_ov031_020f3210(0x1) != 0) { + this->Kill(); + } + + this->func_ov031_020f2280(); + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); +} + +void ActorShotArrow::func_ov031_020f206c() { + this->func_ov031_020f2794(0); + this->mUnk_170 = 0x10; + this->mUnk_16C = 0; + this->mUnk_168 = 0; + + if (this->mUnk_25C && !this->mUnk_25D) { + data_ov060_02163ff4.mUnk_25B = true; + } +} + +void ActorShotArrow::func_ov031_020f20bc() { + if (this->func_ov031_020f3210(0x1) != 0) { + this->Kill(); + } + + this->mUnk_176 += -0x11C7; + this->mVel.y -= FLOAT_TO_FX32(0.002f); + + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); +} + +void ActorShotArrow::func_ov031_020f2134() { + data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0); +} + +void ActorShotArrow::func_ov031_020f2160() { + if (!this->mUnk_1C8.mUnk_00 || !GET_FLAG(this->mUnk_1C8.mUnk_00->mFlags, ActorFlag_Alive)) { + this->func_ov031_020f2c08(0x400); + return; + } + + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + this->mUnk_16C = VecFx32_Length(&this->mVel); + this->func_ov031_020f2f9c(); + this->func_ov031_020f2ef0(); +} + +void ActorShotArrow::func_ov031_020f21dc() { + this->mUnk_172 = 0; + this->mUnk_16C = 0; + + if (this->mUnk_25C && !this->mUnk_25D) { + data_ov060_02163ff4.mUnk_25B = true; + } +} + +void ActorShotArrow::func_ov031_020f2214() { + if (this->mUnk_170 > (s16) 0x4) { + this->mUnk_170 -= 0x4; + } else { + this->Kill(); + } + + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); +} + +unk32 ActorShotArrow::func_ov031_020f2270() { + return (this->mUnk_5C.mParams[0] << 0x4) + 0x400; +} + +void ActorShotArrow::func_ov031_020f2280() { + this->mUnk_174 = (-this->mUnk_174 * 15) >> 4; +} + +void ActorShotArrow::func_ov031_020f229c() { + this->mUnk_168 = MUL_FX32(this->mUnk_168 + this->mUnk_16C, FLOAT_TO_FX32(0.8f)); +} + +void ActorShotArrow::func_ov031_020f22d4(Mat3p *param1, VecFx32 *param2) { + func_0200eab0(this->mUnk_A0.mpModel, 0x0, this->mUnk_25E); + this->mUnk_A0.vfunc_14(param1, param2); +} + +// non-matching +void ActorShotArrow::vfunc_2C(unk32 param1) { + UnkStack_ov031_020f2310 stack; + + VecFx32_Copy(&this->mPos, &stack.mUnk_E4); + stack.mUnk_F0 = 0x2000; + + if (!data_027e09bc->mUnk_04->func_01ffd640(&stack.mUnk_E4)) { + return; + } + + u8 var4 = 0x1F; + u8 var5 = 0x1F; + + if (this->mUnk_170 < (s16) 0x10) { + var4 = FLOAT_TO_FX32(this->mUnk_170); + } + + if (this->mUnk_172 < (s16) 0x10) { + var5 = FLOAT_TO_FX32(this->mUnk_170); + } + + if (var4 == 0) { + return; + } + + func_0200eab0(this->mUnk_94.mpModel, 0x0, var4); + + if (this->mState == ActorShotArrowState_2 && this->mUnk_224 != NULL) { + Mat4x3p_InitXRotation(&stack.mUnk_84, SIN((u16) this->mUnk_174), COS((u16) this->mUnk_174)); + + func_01ffad5c(this->mUnk_224, &data_027e0964, &stack.mUnk_B4); + func_01ffad5c(&stack.mUnk_84, &this->mUnk_228, &stack.mUnk_84); + func_01ffad5c(&stack.mUnk_84, &stack.mUnk_B4, &stack.mUnk_B4); + + CopySingle288(&stack.mUnk_B4, &stack.mUnk_60); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Copy(&stack.mUnk_B4.wColumn, &this->mPos); + + this->mUnk_94.vfunc_14(&stack.mUnk_60, &this->mPos); + + if (var5 >= 0x1F) { + this->func_ov031_020f2654(&stack.mUnk_60); + } + } else { + VecFx32_Copy(&this->mPos, &stack.mUnk_30.zColumn); + + Mat3p_InitYRotation(&stack.mUnk_30, SIN((u16) this->mAngle), COS((u16) this->mAngle)); + Mat3p_InitXRotation(&stack.mUnk_30, SIN((u16) (s16) (this->mUnk_174 + this->mUnk_176)), + COS((u16) (s16) (this->mUnk_174 + this->mUnk_176))); + + func_01ffa60c(&stack.mUnk_0C, &stack.mUnk_30, &stack.mUnk_30); + + // should have if/else structure + stack.mUnk_54.y = MUL_FX32(FLOAT_TO_FX32(0.2f), SIN(this->mUnk_174 + this->mUnk_176)); + + this->mUnk_94.vfunc_14(&stack.mUnk_30, &stack.mUnk_54); + + if (this->mUnk_25A) { + this->func_ov031_020f22d4(&stack.mUnk_30, &stack.mUnk_54); + } + + if (var5 >= 0x1F && this->mState != ActorShotArrowState_4) { + this->func_ov031_020f2654(&stack.mUnk_30); + } + } + + data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x7B, 0x666, var4, this->mAngle, 0x1); +} + +// non-matching +void ActorShotArrow::func_ov031_020f2654(Mat3p *param1) {} + +void ActorShotArrow::func_ov031_020f2794(unk16 param1) { + switch (param1) { + case 0x0: + this->mUnk_94.vfunc_08(GetResource(data_ov031_02110b3c)); + this->mUnk_25A = false; + break; + case 0x1: + this->mUnk_94.vfunc_08(GetResource(data_ov031_02110b4c)); + this->mUnk_25A = false; + break; + case 0x2: + this->mUnk_94.vfunc_08(GetResource(data_ov031_02110b4c)); + this->mUnk_25A = true; + func_ov000_02057c98(&this->mUnk_A0, &this->mUnk_100); + break; + default: + break; + } +} + +// non-matching +void ActorShotArrow::func_ov031_020f28ac() { + VecFx32 vec1; + VecFx32 vec2; + + this->func_ov000_020989e0(); + bool notEarlyReturn = true; + + if (this->mUnk_140.mUnk_08 == 0x3FFFF) { + notEarlyReturn = false; + + switch (this->mUnk_140.mUnk_1C) { + case 0x8: + if ((s16) this->mUnk_140.mUnk_0C.index == 0x102) { + bool var = false; + if ((s16) this->mUnk_140.mUnk_0C.index == 0x102) { + if (this->mUnk_140.mUnk_0C.data == 0x1 || this->mUnk_140.mUnk_0C.data == 0x3) { + var = true; + } + } + bool var2 = false; + if (!var) { + var2 = true; + } + VecFx32 *result = this->func_ov000_0209853c(var2); + func_01ffb714(&this->mPos, result, &vec1); + this->func_ov031_020f2cac(&vec1, true); + break; + } + + if (!func_ov000_0205cbc4(this->mUnk_140.mUnk_0C.Get32(), &vec2)) { + vec1.x = FLOAT_TO_FX32(0.0f); + vec1.y = FLOAT_TO_FX32(0.0f); + vec1.z = FLOAT_TO_FX32(0.0f); + } else { + func_01ffb714(&this->mPos, &vec2, &vec1); + } + + this->func_ov031_020f2cac(&vec1, true); + break; + case 0x4: + Actor *actor = gpActorManager->func_01fff3b4(this->mUnk_140.mUnk_0C); + + if (actor != NULL) { + func_01ffb714(&this->mPos, &actor->mPrevPos, &vec1); + this->func_ov031_020f2cac(&vec1, true); + } + + break; + case 0xE: + if (this->mUnk_140.mUnk_0C.index == 0x102) { + bool var = false; + + if (this->mUnk_140.mUnk_0C.index == 0x102) { + if (this->mUnk_140.mUnk_0C.data == 0x1 || this->mUnk_140.mUnk_0C.data == 0x3) { + var = true; + } + } + + bool var2 = true; + if (!var) { + var2 = false; + } + + if (this->func_ov000_02098800(var2)) { + notEarlyReturn = true; + } else { + data_027e0ce0->func_ov000_0208bd30(var2, 0xE6, 0, 0); + func_01ffb714(&this->mPos, this->func_ov000_0209853c(0), &vec1); + this->func_ov031_020f2cac(&vec1, true); + } + } + break; + case 0xF: + if (this->mUnk_5C.mParams[1] == 0x0 || this->mUnk_5C.mParams[1] == 0x3) { + data_027e0ce0->func_ov000_0208bc1c(1, 0, 0x18, 0, 0, 0); + } + + VecFx32 *result = this->func_ov000_0209853c(0x1); + func_01ffb714(&this->mPos, result, &vec1); + this->func_ov031_020f2cac(&vec1, true); + break; + case 0x3: + if (this->mUnk_140.mUnk_0C.type != ActorRefType_0) { + Actor *actor = gpActorManager->func_01fff3b4(this->mUnk_140.mUnk_0C); + if (actor) { + func_01ffb714(&actor->mPos, &actor->mPrevPos, &vec1); + VecFx32_TryNormalize(&vec1); + this->func_ov031_020f2cac(&vec1, true); + } + } + + break; + default: + break; + } + } + + if (!notEarlyReturn) { + return; + } + + this->func_ov031_020f2f9c(); + + if ((this->mUnk_5C.mParams[1] != 0) && (this->mUnk_5C.mParams[1] != 3)) { + u32 var_r0 = this->func_ov000_02098ab4(data_ov031_02110b01[this->mUnk_5C.mParams[1]], 0, 1, &this->mVel); + if (var_r0) { + this->Kill(); + } + } +} + +void ActorShotArrow::func_ov031_020f2b8c() { + if (this->mState == ActorShotArrowState_0 || this->mState == ActorShotArrowState_5) { + this->mUnk_178.mUnk_18 |= 2; + this->SetState(ActorShotArrowState_3); + } +} + +void ActorShotArrow::func_ov031_020f2bbc() { + if (this->mState == ActorShotArrowState_0 || this->mState == ActorShotArrowState_5) { + this->mUnk_178.mUnk_18 |= 2; + this->SetState(ActorShotArrowState_1); + } +} + +void ActorShotArrow::func_ov031_020f2bec() { + if (this->mState == ActorShotArrowState_0) { + this->SetState(ActorShotArrowState_5); + } +} + +// non-matching +void ActorShotArrow::func_ov031_020f2c08(unk16 param1) { + VecFx32 vel; + + this->mVel.x = MUL_FX32(SIN((u16) this->mAngle), param1); + this->mVel.z = MUL_FX32(COS((u16) this->mAngle), param1); + this->mVel.y = FLOAT_TO_FX32(0.0f); + + vel = this->mVel; + func_01ff93c0(&vel, -0x1000); + this->func_ov031_020f2cac(&vel, false); +} + +// non-matching +void ActorShotArrow::func_ov031_020f2cac(VecFx32 *param1, bool param2) { + VecFx32 vel; + VecFx32 pos; + VecFx16 vec; + + if (this->mState == ActorShotArrowState_4) { + return; + } + + this->mUnk_140.mUnk_04 &= ~0x8; + this->SetState(ActorShotArrowState_4); + + if (param1->x == 0 && param1->y == 0) { + if (param1->z != 0) { + vel = this->mVel; + if (this->mVel.x == 0 && this->mVel.y == 0 && this->mVel.z == 0) { + VecFx32_Copy(&this->mVel, param1); + } else { + func_01ff94cc(&this->mVel, param1, &vel); + } + } else { + this->mVel.x = -this->mVel.x; + this->mVel.y = -this->mVel.y; + this->mVel.z = -this->mVel.z; + } + } + + VecFx32_TryNormalize(&this->mVel); + func_01ff93c0(&this->mVel, 0x19A); + this->mVel.y = 0xCD; + + if (param2) { + pos = this->mPos; + this->mPos.x -= FLOAT_TO_FX32(SIN((u16) this->mAngle)); + this->mPos.z -= FLOAT_TO_FX32(COS((u16) this->mAngle)); + data_027e09a8->func_ov000_02071eac(&this->mPos); + data_027e09a8->func_ov000_02071b30(0x8D7B, &pos, 0x0); + + vec.x = (fx16) FLOAT_TO_FX32(SIN((u16) (this->mAngle - 0x8000))); + vec.y = (fx16) FLOAT_TO_FX32(0.0f); + vec.z = (fx16) FLOAT_TO_FX32(COS((u16) (this->mAngle - 0x8000))); + + data_027e0cec->func_ov000_0209feac(0x804, &pos, 0x2, 0x0, 0x0); + data_027e0cec->func_ov000_0209ff24(0x805, &pos, &vec, 2); + } + + this->mAngle = func_01ffbbe0(this->mVel.x, this->mVel.z); +} + +// non-matching +void ActorShotArrow::func_ov031_020f2ef0() { + unk32 value; + ActorShotArrow_178 *unk_178; + + value = 0; + unk_178 = &this->mUnk_178; + func_01ffe6c4(&value, this->mRef.Get32(), &this->mPos, &this->mVel, (s16) this->mUnk_44, &this->mPos, 0); + + this->mUnk_46 = (s16) (func_ov000_0207df88(&value, this->mUnk_30, 0x3) | func_ov000_0207e294(this->mUnk_30)); +} + +void ActorShotArrow::func_ov031_020f2f5c(VecFx32 *param1) { + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, param1, &this->mPos); + func_01ffb714(&this->mPos, &this->mVel, &this->mPos); +} + +bool ActorShotArrow::func_ov031_020f2f9c() { + VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C); + this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.2f); + data_027e09c0->func_ov000_0207e58c(this->mRef, 0x3, data_ov031_02110b01[this->mUnk_5C.mParams[1]], &this->mUnk_194); + return true; +} + +// non-matching +void ActorShotArrow::func_ov031_020f3000() { + VecFx32 vec; + Mat3p m1; + Mat3p m2; + + vec.x = FLOAT_TO_FX32(0.0f); + vec.y = FLOAT_TO_FX32(0.0f); + vec.z = FLOAT_TO_FX32(0.4f); + + Mat3p_InitYRotation(&m1, SIN((u16) this->mAngle), COS((u16) this->mAngle)); + Mat3p_InitXRotation(&m2, SIN((u16) (s16) (this->mUnk_174 + this->mUnk_176)), + COS((u16) (s16) (this->mUnk_174 + this->mUnk_176))); + + func_01ffa60c(&m2, &m1, &m1); + + func_01ffa7a0(&vec, &m1, &vec); + + vec.y = MUL_FX32(vec.y, 0x800); + + VecFx32_Add(&vec, &this->mPos, &vec); + VecFx32_Copy(&vec, &this->mUnk_1DC.mUnk_00); +} + +void ActorShotArrow::func_ov031_020f311c(Mat4x3p *param1) { + Mat4x3p m1; + Mat4x3p m2; + + UNSET_FLAG(this->mFlags, ActorFlag_Visible); + this->mUnk_224 = param1; + + if (param1 != NULL) { + Mat4x3p_InitXRotation(&m1, SIN((u16) this->mUnk_176), COS((u16) this->mUnk_176)); + Mat4x3p_InitYRotation(&m2, SIN((u16) this->mAngle), COS((u16) this->mAngle)); + + func_01ffad5c(&m1, &m2, &m1); + + VecFx32_Copy(&this->mPos, &m1.wColumn); + func_01ffad5c(this->mUnk_224, &data_027e0964, &m2); + + func_01ffa9e8(&m2, &m2); + func_01ffad5c(&m1, &m2, &this->mUnk_228); + } + + this->SetState(ActorShotArrowState_2); +} + +bool ActorShotArrow::func_ov031_020f3210(u16 param1) { + if (this->mUnk_25B) { + return false; + } + + if (this->mUnk_170 == 0) { + return true; + } + + u32 value = this->mUnk_170 - param1; + if (this->mUnk_170 <= param1) { + value = 0; + } + + this->mUnk_170 = value; + this->func_ov031_020f3258(param1); + return false; +} + +// non-matching +bool ActorShotArrow::func_ov031_020f3258(u16 param1) { + if (this->mUnk_172 == 0) { + return true; + } + + if (this->mUnk_172 > param1) { + this->mUnk_172 -= param1; + } else { + this->mUnk_172 = 0; + } + + return false; +} + +ActorShotArrow_178::ActorShotArrow_178(ActorShotArrow *param1) { + this->mUnk_08 = param1; + this->mUnk_0C.x = FLOAT_TO_FX32(0.0f); + this->mUnk_0C.y = FLOAT_TO_FX32(0.0f); + this->mUnk_0C.z = FLOAT_TO_FX32(0.0f); + this->mUnk_18 = 0; +} + +ActorShotArrow_178::~ActorShotArrow_178() { + this->mUnk_08 = NULL; +} + +void ActorShotArrow_178::func_ov031_020f3304() { + this->mUnk_18 = FLOAT_TO_FX32(0.0f); +} + +// non-matching +bool ActorShotArrow_178::vfunc_08(const UnkStruct_ov031_020f3310 *param1) { + u32 var = param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06]; + + if ((var >> 0x17 & 1) == 1) { + return false; + } + + if ((this->mUnk_08->mUnk_178.mUnk_18 & 0x1) == 0 && (var >> 0x1F & 1) == 1) { + this->mUnk_08->func_ov031_020f2b8c(); + } else if ((this->mUnk_08->mUnk_178.mUnk_18 & 0x2) == 0) { + if (this->mUnk_08->mState == ActorShotArrowState_4) { + this->mUnk_08->Kill(); + return false; + } + + this->mUnk_08->mUnk_178.mUnk_18 |= 0x1; + VecFx16_Copy2VecFx32(¶m1->mUnk_08, &this->mUnk_08->mUnk_178.mUnk_0C); + } + + return true; +} + +// non-matching +bool ActorShotArrow_178::vfunc_0C() {} + +ActorShotArrow_194::ActorShotArrow_194(ActorShotArrow *param1) { + this->mUnk_2C = param1; + this->mUnk_30 = 0; +} + +void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) { + UnkStruct_020f374c stack; + + stack.mUnk_28 = this->mUnk_2C->mVel; + func_01ff93c0(&stack.mUnk_28, this->mUnk_30); + stack.mUnk_1C = this->mUnk_0C; + VecFx32_Add(&stack.mUnk_1C, &stack.mUnk_28, &stack.mUnk_1C); + + func_01ffb714(&stack.mUnk_1C, &actor->mVel, &stack.mUnk_1C); + actor->vfunc_10(&stack.mUnk_0C); + + stack.mUnk_00 = stack.mUnk_0C; + func_01ffb714(&stack.mUnk_00, &stack.mUnk_1C, &stack.mUnk_00); + + unk32 temp = func_01ff9258(stack.mUnk_00.x, stack.mUnk_00.z); + + //! @bug: stack.mUnk_18 is used uninitialized? + if (temp > stack.mUnk_18 && stack.mUnk_18 > FLOAT_TO_FX32(0.15f)) { + fx32 temp_r5 = (temp - stack.mUnk_18) + FLOAT_TO_FX32(0.15f); + u16 value = (u32) (s16) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z); + + fx16 sin = SIN(value); + fx16 cos = COS(value); + + stack.mUnk_28.x += MUL_FX32(sin, temp_r5); + stack.mUnk_28.z += MUL_FX32(cos, temp_r5); + } + + this->mUnk_2C->func_ov031_020f2f5c(&stack.mUnk_28); + this->mUnk_2C->mUnk_1C8.mUnk_00 = actor; +} + +// non-matching +void ActorShotArrow_194::vfunc_10(Actor *actor) { + UnkStruct_020f38b0 stack; + + if (!(this->mUnk_04 != actor->mRef && actor->mUnk_34 != NULL)) { + return; + } + + if (this->mUnk_2C->mState != ActorShotArrowState_0 && this->mUnk_2C->mState != ActorShotArrowState_5) { + return; + } + + if (actor->GetActorId() == ActorId_AROW) { + return; + } + + s16 result = func_01ffbbe0(this->mUnk_2C->mVel.x, this->mUnk_2C->mVel.z); + + switch (actor->GetActorId()) { + case ActorId_WIDR: + this->func_ov031_020f374c(actor); + this->mUnk_2C->func_ov031_020f2bec(); + + if (actor != NULL) { + func_01ffb714(&this->mUnk_2C->mPos, &actor->mPos, &stack.mUnk_1C); + VecFx32_Copy(&stack.mUnk_1C, &this->mUnk_2C->mUnk_1C8.mUnk_04); + this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle; + this->mUnk_2C->mUnk_1C8.mUnk_12 = result; + } + break; + + case ActorId_IWTS: + this->func_ov031_020f374c(actor); + stack.mUnk_0C = NULL; + + if (!data_027e0d80->func_ov084_02153064(&this->mUnk_2C->mRef, &stack.mUnk_0C)) { + this->mUnk_2C->func_ov031_020f311c(stack.mUnk_0C); + this->mUnk_2C->mUnk_258 = 0x01; + } + break; + + case ActorId_MRD2: + if (data_ov075_02163518->mUnk_910 != 1) { + this->func_ov031_020f374c(actor); + stack.mUnk_08 = 0; + + if (data_ov075_02163518->func_ov075_0215bbf0(&this->mUnk_2C->mRef, &stack.mUnk_08)) { + func_ov075_02160864(this->mUnk_2C, stack.mUnk_08); + this->mUnk_2C->mUnk_258 = 0x01; + } + } + break; + + case ActorId_RYAW: + this->mUnk_2C->SetState(ActorShotArrowState_6); + UNSET_FLAG(this->mUnk_2C->mFlags, ActorFlag_Visible); + break; + + case ActorId_LOCK: + stack.mUnk_04 = actor->mUnk_5C.mUnk_28; + if (stack.mUnk_04.data != 0 && stack.mUnk_04.type != ActorRefType_0) { + ActorUnkGYAM *lockedActor = (ActorUnkGYAM *) gpActorManager->func_01fff3b4(actor->mUnk_5C.mUnk_28); + + if (lockedActor != NULL && lockedActor->GetActorId() == ActorId_GYAM) { + this->func_ov031_020f374c(actor); + this->mUnk_2C->func_ov031_020f311c(&lockedActor->mUnk_220); + SET_FLAG(this->mUnk_2C->mFlags, ActorFlag_Visible); + this->mUnk_2C->mUnk_258 = 0x0; + break; + } + } + // fallthrough + + default: + if (!this->IsParam1_3Or4()) { + this->func_ov031_020f374c(actor); + this->mUnk_2C->func_ov031_020f2bbc(); + if (actor) { + func_01ffb714(&this->mUnk_2C->mPos, &actor->mPos, &stack.mUnk_10); + VecFx32_Copy(&stack.mUnk_10, &this->mUnk_2C->mUnk_1C8.mUnk_04); + this->mUnk_2C->mUnk_1C8.mUnk_10 = actor->mAngle; + this->mUnk_2C->mUnk_1C8.mUnk_12 = result; + } + } + + if (this->mUnk_2C->mUnk_25C) { + this->mUnk_2C->mUnk_25D = true; + } + + break; + } +} + +// non-matching +bool ActorShotArrow_194::vfunc_0C(Actor *actor, VecFx32 *vector) { + UnkStruct_020f3c38 stack; + if (!(actor->mRef != this->mUnk_04 && actor->mUnk_34 != NULL) || + !(this->mUnk_2C->mState == ActorShotArrowState_0 || this->mUnk_2C->mState == ActorShotArrowState_5)) { + return false; + } + + func_01ffb714(&actor->mVel, &this->mUnk_2C->mVel, &stack.mUnk_14); + actor->vfunc_10(&stack.mUnk_04); + if (!func_01ffccf4(&this->mUnk_0C, &stack.mUnk_04, &stack.mUnk_14, &this->mUnk_30)) { + return false; + } + + VecFx32_Copy(&this->mUnk_2C->mVel, vector); + VecFx32_TryNormalize(vector); + return true; +} + +void ActorShotArrow::func_ov031_020f3d04(unk16 param1) { + this->mUnk_176 = param1; + func_01ff9638(&this->mVel, -this->mAngle); + func_01ff95a0(&this->mVel, param1); + func_01ff9638(&this->mVel, this->mAngle); +} diff --git a/src/031_Land/Actor/ActorUnkAROW.cpp b/src/031_Land/Actor/ActorUnkAROW.cpp deleted file mode 100644 index 80778d77..00000000 --- a/src/031_Land/Actor/ActorUnkAROW.cpp +++ /dev/null @@ -1,74 +0,0 @@ -//! TODO: This file was generated automatically and might contain errors - -#include "Actor/ActorUnkAROW.hpp" -#include "System/SysNew.hpp" - -DECL_PROFILE(ActorProfileUnkAROW); - -Actor *ActorProfileUnkAROW::Create() { - return new(HeapIndex_2) ActorUnkAROW(); -} - -ActorProfileUnkAROW::ActorProfileUnkAROW() : - ActorProfile(ActorId_AROW) {} - -ActorUnkAROW::ActorUnkAROW() {} - -void ActorUnkAROW::func_ov031_020f1404(void) {} -void ActorUnkAROW::func_ov031_020f1608(void) {} -void ActorUnkAROW::func_ov031_020f173c(void) {} -void ActorUnkAROW::func_ov031_020f1868(void) {} -void ActorUnkAROW::func_ov031_020f1874(void) {} -void ActorUnkAROW::func_ov031_020f1878(void) {} -void ActorUnkAROW::func_ov031_020f18bc(void) {} -void ActorUnkAROW::func_ov031_020f1958(void) {} -void ActorUnkAROW::func_ov031_020f195c(void) {} -void ActorUnkAROW::func_ov031_020f1a64(void) {} -void ActorUnkAROW::func_ov031_020f1b04(void) {} -void ActorUnkAROW::func_ov031_020f1c24(void) {} -void ActorUnkAROW::func_ov031_020f1c7c(void) {} -void ActorUnkAROW::func_ov031_020f1dd4(void) {} -void ActorUnkAROW::func_ov031_020f1e3c(void) {} -void ActorUnkAROW::func_ov031_020f1f54(void) {} -void ActorUnkAROW::func_ov031_020f2010(void) {} -void ActorUnkAROW::func_ov031_020f206c(void) {} -void ActorUnkAROW::func_ov031_020f20bc(void) {} -void ActorUnkAROW::func_ov031_020f2134(void) {} -void ActorUnkAROW::func_ov031_020f2160(void) {} -void ActorUnkAROW::func_ov031_020f21dc(void) {} -void ActorUnkAROW::func_ov031_020f2214(void) {} -void ActorUnkAROW::func_ov031_020f2270(void) {} -void ActorUnkAROW::func_ov031_020f2280(void) {} -void ActorUnkAROW::func_ov031_020f229c(void) {} -void ActorUnkAROW::func_ov031_020f22d4(void) {} -void ActorUnkAROW::func_ov031_020f2310(void) {} -void ActorUnkAROW::func_ov031_020f2654(void) {} -void ActorUnkAROW::func_ov031_020f2794(void) {} -void ActorUnkAROW::func_ov031_020f28ac(void) {} -void ActorUnkAROW::func_ov031_020f2b8c(void) {} -void ActorUnkAROW::func_ov031_020f2bbc(void) {} -void ActorUnkAROW::func_ov031_020f2bec(void) {} -void ActorUnkAROW::func_ov031_020f2c08(void) {} -void ActorUnkAROW::func_ov031_020f2cac(void) {} -void ActorUnkAROW::func_ov031_020f2ef0(void) {} -void ActorUnkAROW::func_ov031_020f2f5c(void) {} -void ActorUnkAROW::func_ov031_020f2f9c(void) {} -void ActorUnkAROW::func_ov031_020f3000(void) {} -void ActorUnkAROW::func_ov031_020f311c(void) {} -void ActorUnkAROW::func_ov031_020f3210(void) {} -void ActorUnkAROW::func_ov031_020f3258(void) {} -void ActorUnkAROW::func_ov031_020f3288(void) {} -void ActorUnkAROW::func_ov031_020f32c4(void) {} -void ActorUnkAROW::func_ov031_020f32e0(void) {} -void ActorUnkAROW::func_ov031_020f3304(void) {} -void ActorUnkAROW::func_ov031_020f3310(void) {} -void ActorUnkAROW::func_ov031_020f33bc(void) {} -void ActorUnkAROW::func_ov031_020f370c(void) {} -void ActorUnkAROW::func_ov031_020f374c(void) {} -void ActorUnkAROW::func_ov031_020f38b0(void) {} -void ActorUnkAROW::func_ov031_020f3c38(void) {} -void ActorUnkAROW::func_ov031_020f3d04(void) {} -void ActorUnkAROW::func_ov031_020f3d4c(void) {} - -ActorUnkAROW::~ActorUnkAROW() {} -ActorProfileUnkAROW::~ActorProfileUnkAROW() {} diff --git a/src/031_Land/Actor/ActorUnkSWON.cpp b/src/031_Land/Actor/ActorUnkSWON.cpp index 821dfcfa..ae167b06 100644 --- a/src/031_Land/Actor/ActorUnkSWON.cpp +++ b/src/031_Land/Actor/ActorUnkSWON.cpp @@ -12,7 +12,7 @@ ActorProfileUnkSWON::ActorProfileUnkSWON() : ActorUnkSWON::ActorUnkSWON() {} -bool ActorUnkSWON::vfunc_18(unk32 param_1) { +bool ActorUnkSWON::vfunc_18(unk32 param1) { switch (this->mUnk_5C.mParams[0]) { case 0x0: if (!this->func_ov000_02098a60(0x1)) { diff --git a/src/075_BossLast2/Actor/ActorUnkMRD2.cpp b/src/075_BossLast2/Actor/ActorUnkMRD2.cpp index dc0010e1..0b3fe779 100644 --- a/src/075_BossLast2/Actor/ActorUnkMRD2.cpp +++ b/src/075_BossLast2/Actor/ActorUnkMRD2.cpp @@ -102,7 +102,9 @@ void ActorUnkMRD2::func_ov075_0215b4dc(void) {} void ActorUnkMRD2::func_ov075_0215b578(void) {} void ActorUnkMRD2::func_ov075_0215b914(void) {} void ActorUnkMRD2::func_ov075_0215bbe8(void) {} -void ActorUnkMRD2::func_ov075_0215bbf0(void) {} +bool ActorUnkMRD2::func_ov075_0215bbf0(ActorRef *param1, unk32 *param2) { + return false; +} void ActorUnkMRD2::func_ov075_0215bc50(void) {} void ActorUnkMRD2::func_ov075_0215bd40(void) {} void ActorUnkMRD2::func_ov075_0215bd50(void) {} diff --git a/src/084_BossFlame/Actor/ActorUnkIWTS.cpp b/src/084_BossFlame/Actor/ActorUnkIWTS.cpp index 35867948..75daaf3a 100644 --- a/src/084_BossFlame/Actor/ActorUnkIWTS.cpp +++ b/src/084_BossFlame/Actor/ActorUnkIWTS.cpp @@ -49,7 +49,7 @@ void ActorUnkIWTS::func_ov084_02152cd8(void) {} void ActorUnkIWTS::func_ov084_02152cec(void) {} void ActorUnkIWTS::func_ov084_02152d10(void) {} void ActorUnkIWTS::func_ov084_02153018(void) {} -void ActorUnkIWTS::func_ov084_02153064(void) {} +bool ActorUnkIWTS::func_ov084_02153064(ActorRef *, Mat4x3p **) {} void ActorUnkIWTS::func_ov084_021530d4(void) {} void ActorUnkIWTS::func_ov084_0215315c(void) {} void ActorUnkIWTS::func_ov084_02153194(void) {} diff --git a/tools/configure.py b/tools/configure.py index 261c1ccf..0ed047bf 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -451,7 +451,7 @@ config.libs = [ [ Object("031_Land/UnkStruct_027e0d34.cpp"), Object("031_Land/Actor/ActorRupee.cpp"), - Object("031_Land/Actor/ActorUnkAROW.cpp"), + Object("031_Land/Actor/ActorShotArrow.cpp"), Object("031_Land/Actor/ActorUnkATTG.cpp"), Object("031_Land/Actor/ActorUnkBLST.cpp"), Object("031_Land/Actor/ActorUnkBOMB.cpp"),