diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index 4fce80b00..26b32b438 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -71,6 +71,14 @@ libs/c/src/ansi_files.c: .data start:0x020446a8 end:0x0204478c .bss start:0x020517a0 end:0x02051aa0 +libs/c/src/float.c: + complete + .data start:0x0204478c end:0x02044790 + +libs/c/src/locale.c: + complete + .data start:0x02044790 end:0x020449ac + libs/c/src/arith.c: complete .text start:0x020338d4 end:0x020338ec @@ -117,14 +125,6 @@ libs/c/src/wmem.c: complete .text start:0x020341f8 end:0x02034230 -libs/c/src/float.c: - complete - .data start:0x0204478c end:0x02044790 - -libs/c/src/locale.c: - complete - .data start:0x02044790 end:0x020449ac - libs/c/src/wprintf.c: .text start:0x02034230 end:0x0203615c .data start:0x020449ac end:0x02044a2c diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index fa92b968a..add0169b8 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1381,7 +1381,7 @@ _ZN19func_ov000_0207b628D1Ev kind:function(arm,size=0x14) addr:0x0207b628 _ZN19func_ov000_0207b63cD0Ev kind:function(arm,size=0x1c) addr:0x0207b63c _ZN19func_ov000_0207b658D1Ev kind:function(arm,size=0x30) addr:0x0207b658 _ZN19func_ov000_0207b688D0Ev kind:function(arm,size=0x38) addr:0x0207b688 -_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 @@ -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 +_ZN14ActorShotArrow19func_ov000_0207bffcEv kind:function(arm,size=0x4) addr:0x0207bffc func_ov000_0207c000 kind:function(arm,size=0x8) addr:0x0207c000 func_ov000_0207c008 kind:function(arm,size=0x8) addr:0x0207c008 func_ov000_0207c010 kind:function(arm,size=0x8) addr:0x0207c010 @@ -1469,7 +1469,7 @@ 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 +_ZN14ActorShotArrow19func_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 @@ -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 @@ -2340,7 +2340,7 @@ 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 -func_ov000_02098838 kind:function(arm,size=0x28) addr:0x02098838 +_ZN14ActorShotArrow19func_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 func_ov000_020989e0 kind:function(arm,size=0x38) addr:0x020989e0 diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index 0d78e9ece..7f8ae7b61 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 +_ZN14ActorShotArrow19func_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 diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index b1454c967..153edb145 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -94,7 +94,7 @@ 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 diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index 3af690e40..4e9020694 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -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 diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index cd7f1d328..5d560b572 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -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 +_ZN14ActorShotArrow19func_ov031_020f1404Ev 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 +_ZN14ActorShotArrow19func_ov031_020f173cEv 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 +_ZN14ActorShotArrow19func_ov031_020f1878Es kind:function(arm,size=0x44) addr:0x020f1878 +_ZN14ActorShotArrow19func_ov031_020f18bcEv kind:function(arm,size=0x9c) addr:0x020f18bc +_ZN14ActorShotArrow19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f1958 +_ZN14ActorShotArrow19func_ov031_020f195cEv 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 +_ZN14ActorShotArrow19func_ov031_020f2310Ev kind:function(arm,size=0x344) addr:0x020f2310 +_ZN14ActorShotArrow19func_ov031_020f2654Ev 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_020f2cacEPii 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_020f311cEv 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 +_ZN14ActorShotArrow19func_ov031_020f3288Ev kind:function(arm,size=0x3c) addr:0x020f3288 +_ZN14ActorShotArrow19func_ov031_020f32c4Ev kind:function(arm,size=0x1c) addr:0x020f32c4 +_ZN14ActorShotArrow19func_ov031_020f32e0Ev kind:function(arm,size=0x24) addr:0x020f32e0 +_ZN14ActorShotArrow19func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3304 +_ZN14ActorShotArrow19func_ov031_020f3310Ev kind:function(arm,size=0xac) addr:0x020f3310 +_ZN14ActorShotArrow19func_ov031_020f33bcEv kind:function(arm,size=0x350) addr:0x020f33bc +_ZN18ActorShotArrow_194C2EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f370c +_ZN14ActorShotArrow19func_ov031_020f374cEv kind:function(arm,size=0x164) addr:0x020f374c +_ZN18ActorShotArrow_1948vfunc_10Ev kind:function(arm,size=0x388) addr:0x020f38b0 +_ZN18ActorShotArrow_1948vfunc_0CEv 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 @@ -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,9 +2347,9 @@ _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 +_ZTV18ActorShotArrow_194 kind:data(any) addr:0x02114264 data_ov031_02114288 kind:data(any) addr:0x02114288 -_ZTV19data_ov031_0211429c kind:data(any) addr:0x0211429c +_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 @@ -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/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index feb3420f0..4774d413b 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -94,7 +94,7 @@ 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 diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 01c735e33..a2f7853f0 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 +_ZN14ActorShotArrow19func_ov031_020f1404Ev 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 +_ZN14ActorShotArrow19func_ov031_020f173cEv 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 +_ZN14ActorShotArrow19func_ov031_020f1878Ev kind:function(arm,size=0x44) addr:0x020f3274 +_ZN14ActorShotArrow19func_ov031_020f18bcEv kind:function(arm,size=0x9c) addr:0x020f32b8 +_ZN14ActorShotArrow19func_ov031_020f1958Ev kind:function(arm,size=0x4) addr:0x020f3354 +_ZN14ActorShotArrow19func_ov031_020f195cEv 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 +_ZN14ActorShotArrow19func_ov031_020f2310Ev kind:function(arm,size=0x344) addr:0x020f3d0c +_ZN14ActorShotArrow19func_ov031_020f2654Ev kind:function(arm,size=0x140) addr:0x020f4050 +_ZN14ActorShotArrow19func_ov031_020f2794Ev 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_020f2c08Ev kind:function(arm,size=0xa4) addr:0x020f4604 +_ZN14ActorShotArrow19func_ov031_020f2cacEPii 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_020f311cEv 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 +_ZN14ActorShotArrow19func_ov031_020f3288Ev kind:function(arm,size=0x3c) addr:0x020f4c84 +_ZN14ActorShotArrow19func_ov031_020f32c4Ev kind:function(arm,size=0x1c) addr:0x020f4cc0 +_ZN14ActorShotArrow19func_ov031_020f32e0Ev kind:function(arm,size=0x24) addr:0x020f4cdc +_ZN14ActorShotArrow19func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f4d00 +_ZN14ActorShotArrow19func_ov031_020f3310Ev kind:function(arm,size=0xac) addr:0x020f4d0c +_ZN14ActorShotArrow19func_ov031_020f33bcEv kind:function(arm,size=0x3f8) addr:0x020f4db8 +_ZN18ActorShotArrow_194C2EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f51b0 +_ZN14ActorShotArrow19func_ov031_020f374cEv kind:function(arm,size=0x164) addr:0x020f51f0 +_ZN18ActorShotArrow_1948vfunc_10Ev kind:function(arm,size=0x388) addr:0x020f5354 +_ZN18ActorShotArrow_1948vfunc_0CEv kind:function(arm,size=0xcc) addr:0x020f56dc +_ZN14ActorShotArrow19func_ov031_020f3d04Ev 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 @@ -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/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 8e75e5ca0..bca03d2cc 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -119,7 +119,7 @@ class Actor : public SysObject { /* 46 */ unk16 mUnk_46; /* 48 */ unk16 mUnk_48; /* 4A */ unk8 mUnk_4A; - /* 4A */ unk8 mUnk_4B; + /* 4B */ unk8 mUnk_4B; /* 4C */ s16 mUnk_4C; /* 4E */ s16 mUnk_4E; /* 50 */ volatile u16 mUnk_50; diff --git a/include/Actor/ActorShotArrow.hpp b/include/Actor/ActorShotArrow.hpp new file mode 100644 index 000000000..d0e3b63ea --- /dev/null +++ b/include/Actor/ActorShotArrow.hpp @@ -0,0 +1,200 @@ +#pragma once + +#include "Actor/Actor.hpp" +#include "Actor/ActorProfile.hpp" +#include "Unknown/Common.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "global.h" +#include "types.h" + +class ActorShotArrow; + +class ActorShotArrow_c4 : public Actor_c4 { +public: + ActorShotArrow_c4(Actor *param1); + + /* 00 */ virtual unk32 vfunc_00(Actor_c4_stack param1, unk32 param2) override; + /* 04 */ virtual void vfunc_04() override; + /* 08 */ virtual void vfunc_08() override; + /* 0C */ virtual void vfunc_0C(unk32 param1) override; +}; + +class ActorShotArrow_194_Base { +public: + /* 00 (vtable) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ unk16 mUnk_08; + /* 08 */ unk16 mUnk_0A; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 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; + this->mUnk_0C = 0; + this->mUnk_10 = 0; + this->mUnk_14 = 0; + 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 void vfunc_0C(); + /* 10 */ virtual void vfunc_10(); +}; + +class ActorShotArrow_194 : public ActorShotArrow_194_Base { +public: + /* 00 (base) */ + /* 2C */ ActorShotArrow *mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ + + ActorShotArrow_194(ActorShotArrow *param1); + + // data_ov031_0211426c + /* 00 */ virtual ~ActorShotArrow_194() override; // func_ov031_020f1608 (D1) & func_ov031_020f3d4c (D0) + /* 0C */ virtual void vfunc_0C() override; // func_ov031_020f3c38 + /* 10 */ virtual void vfunc_10() override; // func_ov031_020f38b0 +}; + +class UnkClass_ActorShotArrow_94 { +public: + /* 00 */ virtual void vfunc_00() override; + /* 04 */ virtual void vfunc_04() override; + /* 04 */ virtual void vfunc_08(unk32) override; +}; + +class ActorShotArrow : public Actor { +public: + /* 000 (base) */ + /* 094 */ UnkClass_ActorShotArrow_94 mUnk_94; + /* 09C */ STRUCT_PAD(0x98, 0xA0); + /* 0A0 */ UnkSystem4 mUnk_A0; + /* 100 */ UnkSystem5 mUnk_100; + /* 120 */ STRUCT_PAD(0x120, 0x140); + /* 140 */ unk32 mUnk_140; + /* 144 */ STRUCT_PAD(0x144, 0x168); + /* 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 *mUnk_178; + /* 17C */ STRUCT_PAD(0x17C, 0x184); + /* 180 */ unk32 mUnk_184; + /* 184 */ STRUCT_PAD(0x188, 0x190); + /* 190 */ u16 mUnk_190; + /* 192 */ STRUCT_PAD(0x192, 0x194); + /* 194 */ ActorShotArrow_194 *mUnk_194; + /* 198 */ u32 mUnk_198; + /* 19A */ STRUCT_PAD(0x19C, 0x1A0); + /* 1A0 */ VecFx32 mUnk_1A0; + /* 1AC */ unk32 mUnk_1AC; + /* 1B0 */ STRUCT_PAD(0x1B0, 0x1C8); + /* 1C8 */ Actor *mUnk_1C8; + /* 1CC */ VecFx32 mUnk_1CC; + /* 1D8 */ s16 mUnk_1D8; + /* 1DA */ s16 mUnk_1DA; + /* 1DC */ VecFx32 mUnk_1DC; + /* 1E0 */ STRUCT_PAD(0x1E8, 0x250); + /* 250 */ unk16 mUnk_250; + /* 252 */ unk16 mUnk_252; + /* 254 */ STRUCT_PAD(0x254, 0x258); + /* 258 */ u16 mUnk_258; + /* 25A */ bool mUnk_25A; + /* 25B */ bool mUnk_25B; + /* 25C */ bool mUnk_25C; + /* 25D */ bool mUnk_25D; + /* 25E */ u8 mUnk_25E; + + ActorShotArrow(); + + /* 00 */ virtual void func_ov000_0207b71c() override; + /* 4C */ virtual ~ActorShotArrow() override; + + unk32 func_ov000_0207e294(Cylinder *); + void func_ov000_0207bffc(); + void func_ov000_02098838(); + unk32 func_ov017_020beeec(unk32); + + UnkStruct_027e0ce0_1C_0C *func_ov031_020f1404(); + ActorShotArrow *func_ov031_020f1608(); + bool func_ov031_020f173c(); + void func_ov031_020f1868(); + void func_ov031_020f1874(); + void func_ov031_020f1878(s16 param_1); + void func_ov031_020f18bc(); + void func_ov031_020f1958(); + void func_ov031_020f195c(); + void func_ov031_020f1a64(); + void func_ov031_020f1b04(); + void func_ov031_020f1c24(); + void func_ov031_020f1c7c(); + void func_ov031_020f1dd4(); + void func_ov031_020f1e3c(); + void func_ov031_020f1f54(); + void func_ov031_020f2010(); + void func_ov031_020f206c(); + void func_ov031_020f20bc(); + void func_ov031_020f2134(); + void func_ov031_020f2160(); + void func_ov031_020f21dc(); + void func_ov031_020f2214(); + unk32 func_ov031_020f2270(); + void func_ov031_020f2280(); + void func_ov031_020f229c(); + void func_ov031_020f22d4(Mat3p *param_1, VecFx32 *param_2); + void func_ov031_020f2310(); + void func_ov031_020f2654(); + void func_ov031_020f2794(unk16 param_1); + void func_ov031_020f28ac(); + void func_ov031_020f2b8c(); + void func_ov031_020f2bbc(); + void func_ov031_020f2bec(); + void func_ov031_020f2c08(unk16); + void func_ov031_020f2cac(unk32 *, unk32); + void func_ov031_020f2ef0(); + void func_ov031_020f2f5c(VecFx32 *param_1); + void func_ov031_020f2f9c(); + void func_ov031_020f3000(); + void func_ov031_020f311c(); + bool func_ov031_020f3210(u16); + bool func_ov031_020f3258(u16 param_1); + void func_ov031_020f3288(); + ActorShotArrow *func_ov031_020f32c4(); + ActorShotArrow *func_ov031_020f32e0(); + void func_ov031_020f3304(); + void func_ov031_020f3310(); + void func_ov031_020f33bc(); + void func_ov031_020f374c(); + void func_ov031_020f38b0(); + void func_ov031_020f3c38(); + void func_ov031_020f3d04(unk16 param_1); + ActorShotArrow *func_ov031_020f3d4c(); +}; + +class ActorProfileShotArrow : public ActorProfile { +public: + /* 00 (base) */ + + ActorProfileShotArrow(); + ~ActorProfileShotArrow(); + + /* 0C */ virtual Actor *Create(); + + static ActorProfileShotArrow *GetProfile(); +}; diff --git a/include/Actor/ActorUnkAROW.hpp b/include/Actor/ActorUnkAROW.hpp deleted file mode 100644 index 7eed14e7d..000000000 --- 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 unk32 vfunc_00(Actor_c4_stack param1, 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/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index d835d135d..052a2e3f2 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -103,6 +103,8 @@ class UnkStruct_027e0cd8_0c { void func_ov000_0208053c(u16 param1); void func_ov000_020803ec(u16 param1); unk32 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 0c5d765b3..a7008eefd 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -51,6 +51,18 @@ class UnkStruct_027e0ce0_38 { // data_ov026_0213562c }; +class UnkStruct_027e0ce0_1C_0C { +public: + /* 00 */ STRUCT_PAD(0x00, 0x50); + /* 50 */ unk32 mUnk_50; +}; + +class UnkStruct_027e0ce0_1C { +public: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ UnkStruct_027e0ce0_1C_0C *mUnk_0C; +}; + // PlayerManager? class UnkStruct_027e0ce0 { public: @@ -64,7 +76,7 @@ class UnkStruct_027e0ce0 { /* 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; diff --git a/include/Unknown/UnkStruct_027e0d30.hpp b/include/Unknown/UnkStruct_027e0d30.hpp new file mode 100644 index 000000000..19f916699 --- /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, VecFx32 *); +}; + +extern UnkStruct_027e0d30 *data_027e0d30; diff --git a/src/031_Land/Actor/ActorShotArrow.cpp b/src/031_Land/Actor/ActorShotArrow.cpp new file mode 100644 index 000000000..2e0f8f1eb --- /dev/null +++ b/src/031_Land/Actor/ActorShotArrow.cpp @@ -0,0 +1,619 @@ +#include "Actor/ActorShotArrow.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0d30.hpp" + +typedef struct { + /* 000 */ STRUCT_PAD(0x0, 0x25B); + /* 25B */ bool mUnk_25B; +} UnkStruct_ov060_02163ff4; + +char data_ov031_02110b3c[0xF] = "arrow"; +char data_ov031_02110b4c[0x13] = "arrow_s"; + +extern UnkStruct_027e0cd8 *data_027e0cd8; +extern UnkStruct_027e0ce0 *data_027e0ce0; +extern UnkStruct_027e0d30 *data_027e0d30; +extern UnkStruct_027e09a8 *data_027e09a8; +extern UnkStruct_ov060_02163ff4 data_ov060_02163ff4; + +extern "C" void func_01ff9638(VecFx32 *, s16); +extern "C" void func_01ff95a0(VecFx32 *, unk16); +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" void func_0200eab0(unk32, unk16, u8); +extern "C" unk32 *func_0200f05c(u32, char *); +extern "C" void func_ov000_02057c98(UnkSystem4 *param1, UnkSystem5 *param2); +extern "C" unk32 func_ov000_0205aeac(); +extern "C" void func_ov000_0207b6c0(); + +ARM DECL_PROFILE(ActorProfileShotArrow); + +ARM Actor *ActorProfileShotArrow::Create() { + return new(HeapIndex_2) ActorShotArrow(); +} + +ARM ActorProfileShotArrow::ActorProfileShotArrow() : + ActorProfile(ActorId_AROW) { + this->mUnk_04.Init(FLOAT_TO_FX32(0.2f)); +} + +// non-matching +ARM ActorShotArrow::ActorShotArrow() : + mUnk_A0(UnkSystem4(0x0)), + mUnk_100(UnkSystem5(0x0, 0)) {} + +ARM UnkStruct_027e0ce0_1C_0C *ActorShotArrow::func_ov031_020f1404() { + return data_027e0ce0->mUnk_1C->mUnk_0C; +} + +// non-matching +ARM bool ActorShotArrow::func_ov031_020f173c() { + fx32 cos_value = COS(this->mAngle); + fx32 sin_value = SIN(this->mAngle); + + this->mVel.z = MUL_FX32(sin_value, 1024); + this->mVel.x = MUL_FX32(cos_value, 1024); + this->mUnk_2C = 0; + this->mVel.y = 0; + this->mUnk_16C = VecFx32_Length(&this->mVel); + + if (func_ov000_0205aeac() != 0) { + bool paramIs3Or4 = this->mUnk_5C.mParams[1] == 0x3 || this->mUnk_5C.mParams[1] == 0x4; + if (paramIs3Or4) { + VecFx32_Copy(&this->mPos, &this->mUnk_1DC); + data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_1DC); + } + } + this->func_ov031_020f1878(0x0); + + this->mUnk_198 = (u32) this->mRef.index; + VecFx32_Copy(&this->mPos, &this->mUnk_1A0); + this->mUnk_1AC = 0x333; + this->mUnk_44 = 0x1F; + return true; +} + +ARM void ActorShotArrow::func_ov031_020f1868() { + this->mUnk_2C = 0; +} + +ARM void ActorShotArrow::func_ov031_020f1874() {} + +static PTMF data_ov031_021142c0[] = {ActorShotArrow::func_ov031_020f1a64, ActorShotArrow::func_ov031_020f1c24, + ActorShotArrow::func_ov031_020f1dd4, ActorShotArrow::func_ov031_020f1f54, + ActorShotArrow::func_ov031_020f206c, ActorShotArrow::func_ov031_020f2134, + ActorShotArrow::func_ov031_020f21dc, ActorShotArrow::func_ov031_020f1874}; + +ARM void ActorShotArrow::func_ov031_020f1878(s16 param_1) { + this->mUnk_4C = param_1; + this->func_ov031_020f1868(); + + CALL_PTMF(PTMF, data_ov031_021142c0[this->mUnk_4C]); +} + +ARM void ActorShotArrow::func_ov031_020f18bc() { + 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->mUnk_4C != 0x1 && this->mUnk_4C != 0x2 && this->mUnk_4C != 0x3) { + return; + } + this->func_ov031_020f3258(0x1); + this->func_ov031_020f2280(); +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f1958() {} + +static PTMF data_ov031_02114300[] = {ActorShotArrow::func_ov031_020f1b04, ActorShotArrow::func_ov031_020f1c7c, + ActorShotArrow::func_ov031_020f1e3c, ActorShotArrow::func_ov031_020f2010, + ActorShotArrow::func_ov031_020f20bc, ActorShotArrow::func_ov031_020f2160, + ActorShotArrow::func_ov031_020f2214, ActorShotArrow::func_ov031_020f1958}; + +// non-matching +ARM void ActorShotArrow::func_ov031_020f195c() { + this->mUnk_3C = (unk32) & this->mUnk_140; + CALL_PTMF(PTMF, data_ov031_02114300[this->mUnk_4C]); + + 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) { + if (this->mUnk_170 > 0x10) { + this->func_ov031_020f3000(); + } else { + data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_1DC); + } + } + } + + if (this->mUnk_190 & 0x1) { + this->func_ov031_020f2cac(&this->mUnk_184, 0x1); + this->mUnk_178->func_ov031_020f3304(); + } + this->func_ov031_020f229c(); +} + +// non-matching +ARM 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 cos_value = COS((u16) this->mAngle); + this->mVel.y = FLOAT_TO_FX32(0.0f); + unk16 sin_value = SIN((u16) this->mAngle); + + this->mVel.x = MUL_FX32(cos_value, value_func_020f2270); + this->mVel.z = MUL_FX32(sin_value, value_func_020f2270); +} + +struct UnkStruct_020f1b04 { + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ unk32 mUnk_0C; + /* 10 */ STRUCT_PAD(0x10, 0x1C); +}; + +extern "C" void func_01ffe6c4(unk32 *, unk32, VecFx32 *, VecFx32 *, s32, VecFx32 *); + +// non-matching +ARM void ActorShotArrow::func_ov031_020f1b04() { + UnkStruct_020f1b04 stack; + bool var2; + if (this->mUnk_50 < this->mUnk_52) { + this->mUnk_50++; + var2 = false; + } else { + var2 = true; + } + if (var2) { + this->func_ov031_020f1878(0x6); + 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 ((unk32) 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; + func_01ffe6c4(&stack.mUnk_0C, (unk32) this->mRef.index, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, + &this->mPos); + if (this->func_ov000_0207e294(this->mUnk_30)) { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + } + return; + } + + this->func_ov031_020f2ef0(); +} + +ARM 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; +} + +extern "C" void func_01ff9638(VecFx32 *vec, s16 angle); + +// non-matching +ARM void ActorShotArrow::func_ov031_020f1c7c() { + if (this->func_ov031_020f3210(0x1)) { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + } + Actor *targetActor = this->mUnk_1C8; + if (targetActor && GET_FLAG(targetActor->mFlags, ActorFlag_Alive) && !GET_FLAG(targetActor->mFlags, ActorFlag_18)) { + + VecFx32_Copy(&targetActor->mPos, &this->mPos); + + VecFx32 vec_fx32 = this->mUnk_1CC; + func_01ff9638(&vec_fx32, targetActor->mAngle - this->mUnk_1D8); + + VecFx32_Add(&this->mPos, &vec_fx32, &this->mPos); + + this->mAngle = targetActor->mAngle + (s16) (this->mUnk_1DA - this->mUnk_1D8); + } 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()) { + 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); +} + +ARM 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; +} + +ARM void ActorShotArrow::func_ov031_020f1e3c() { + if (!this->mUnk_25B) { + bool var2; + if (this->mUnk_50 < this->mUnk_52) { + this->mUnk_50++; + var2 = false; + } else { + var2 = true; + } + if (var2) { + if (this->func_ov031_020f3210(0x1)) { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + return; + } + this->mUnk_52 = this->mUnk_258; + this->mUnk_50 = 0; + } + } + + Actor *targetActor = this->mUnk_1C8; + if (!targetActor || !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); +} + +ARM 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); + } + } + + if (!this->mUnk_25C) { + return; + } + + if (!this->mUnk_25D) { + data_ov060_02163ff4.mUnk_25B = true; + } +} + +ARM void ActorShotArrow::func_ov031_020f2010() { + if (this->func_ov031_020f3210(0x1) != 0) { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + } + + this->func_ov031_020f2280(); + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); +} + +ARM 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 != 0x0) { + if (this->mUnk_25D == 0x0) { + data_ov060_02163ff4.mUnk_25B = true; + } + } +} + +ARM void ActorShotArrow::func_ov031_020f20bc() { + if (this->func_ov031_020f3210(0x1) != 0) { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + } + + this->mUnk_176 += ~0x11C6; + 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); +} + +ARM void ActorShotArrow::func_ov031_020f2134() { + data_027e09a8->func_ov000_02071b30(0x8D7A, &this->mPos, 0); +} + +ARM void ActorShotArrow::func_ov031_020f2160() { + if (!this->mUnk_1C8 || !GET_FLAG(this->mUnk_1C8->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(); +} + +ARM void ActorShotArrow::func_ov031_020f21dc() { + this->mUnk_172 = 0; + this->mUnk_16C = 0; + if (!this->mUnk_25C) { + return; + } + if (!this->mUnk_25D) { + data_ov060_02163ff4.mUnk_25B = true; + } +} + +ARM void ActorShotArrow::func_ov031_020f2214() { + if (this->mUnk_170 > (s16) 0x4) { + this->mUnk_170 -= 0x4; + } else { + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + } + + this->func_ov000_02098838(); + + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); +} + +ARM unk32 ActorShotArrow::func_ov031_020f2270() { + return (this->mUnk_5C.mParams[0] << 0x4) + 0x400; +} + +ARM void ActorShotArrow::func_ov031_020f2280() { + // temp var needed + unk32 opposite_174 = -this->mUnk_174; + this->mUnk_174 = ((opposite_174 << 0x4) - opposite_174) >> 0x4; +} + +ARM void ActorShotArrow::func_ov031_020f229c() { + this->mUnk_168 = MUL_FX32(this->mUnk_168 + this->mUnk_16C, 0xccd); +} + +ARM void ActorShotArrow::func_ov031_020f22d4(Mat3p *param_1, VecFx32 *param_2) { + func_0200eab0(this->mUnk_A0.mUnk_04, 0x0, this->mUnk_25E); + this->mUnk_A0.vfunc_14(param_1, param_2); +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f2310() {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f2654() {} + +ARM void ActorShotArrow::func_ov031_020f2794(unk16 param_1) { + unk32 mUnk_50; + unk32 arg; + unk32 *var1; + switch (param_1) { + case 0x0: + mUnk_50 = this->func_ov031_020f1404()->mUnk_50; + if (mUnk_50 != 0 && (var1 = func_0200f05c(mUnk_50 + 8, data_ov031_02110b3c))) { + arg = mUnk_50 + *var1; + } else { + arg = 0; + } + this->mUnk_94.vfunc_08(arg); + this->mUnk_25A = false; + break; + case 0x1: + mUnk_50 = this->func_ov031_020f1404()->mUnk_50; + if (mUnk_50 != 0 && (var1 = func_0200f05c(mUnk_50 + 8, data_ov031_02110b4c))) { + arg = mUnk_50 + *var1; + } else { + arg = 0; + } + this->mUnk_94.vfunc_08(arg); + this->mUnk_25A = false; + break; + case 0x2: + mUnk_50 = this->func_ov031_020f1404()->mUnk_50; + if (mUnk_50 != 0 && (var1 = func_0200f05c(mUnk_50 + 8, data_ov031_02110b4c))) { + arg = mUnk_50 + *var1; + } else { + arg = 0; + } + this->mUnk_94.vfunc_08(arg); + this->mUnk_25A = true; + func_ov000_02057c98(&this->mUnk_A0, &this->mUnk_100); + break; + } +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f28ac() {} + +ARM void ActorShotArrow::func_ov031_020f2b8c() { + if (!(this->mUnk_4C == 0x0 || this->mUnk_4C == 0x5)) { + return; + } + this->mUnk_190 |= 2; + this->func_ov031_020f1878(0x3); +} + +ARM void ActorShotArrow::func_ov031_020f2bbc() { + if (!(this->mUnk_4C == 0x0 || this->mUnk_4C == 0x5)) { + return; + } + this->mUnk_190 |= 2; + this->func_ov031_020f1878(0x1); +} + +ARM void ActorShotArrow::func_ov031_020f2bec() { + if (this->mUnk_4C != 0) { + return; + } + this->func_ov031_020f1878(0x5); +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f2c08(unk16) {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f2cac(unk32 *, unk32) {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f2ef0() {} + +void ActorShotArrow::func_ov031_020f2f5c(VecFx32 *param_1) { + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, param_1, &this->mPos); + func_01ffb714(&this->mPos, &this->mVel, &this->mPos); +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f2f9c() {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f3000() {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f311c() {} + +ARM bool ActorShotArrow::func_ov031_020f3210(u16 param_1) { + if (this->mUnk_25B) { + return false; + } + if (this->mUnk_170 == 0) { + return true; + } + u32 value = this->mUnk_170 - param_1; + if (this->mUnk_170 <= param_1) { + value = 0; + } + this->mUnk_170 = value; + this->func_ov031_020f3258(param_1); + return false; +} + +// non-matching +ARM bool ActorShotArrow::func_ov031_020f3258(u16 param_1) { + u16 value = this->mUnk_172; + if (value == 0x0) { + return true; + } + if (value > param_1) { + this->mUnk_172 -= param_1; + } else { + this->mUnk_172 = 0; + } + return false; +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f3288() {} + +ARM ActorShotArrow *ActorShotArrow::func_ov031_020f32c4() { + this->mPos.y = FLOAT_TO_FX32(0.0f); + this->func_ov000_0207bffc(); + return this; +} + +// non-matching +ARM ActorShotArrow *ActorShotArrow::func_ov031_020f32e0() { + this->mPos.y = FLOAT_TO_FX32(0.0f); + this->func_ov000_0207bffc(); + return this; +} + +ARM void ActorShotArrow::func_ov031_020f3304() { + *(fx16 *) &this->mPrevPos.z = FLOAT_TO_FX32(0.0f); +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f3310() {} +// non-matching +ARM void ActorShotArrow::func_ov031_020f33bc() {} + +ARM ActorShotArrow_194::ActorShotArrow_194(ActorShotArrow *param_1) { + this->mUnk_2C = param_1; + this->mUnk_30 = 0; +} + +// non-matching +ARM void ActorShotArrow::func_ov031_020f374c() {} +// non-matching +ARM void ActorShotArrow_194::vfunc_10() {} +// non-matching +ARM void ActorShotArrow_194::vfunc_0C() {} + +ARM void ActorShotArrow::func_ov031_020f3d04(unk16 param_1) { + this->mUnk_176 = param_1; + func_01ff9638(&this->mVel, -this->mAngle); + func_01ff95a0(&this->mVel, param_1); + func_01ff9638(&this->mVel, this->mAngle); +} + +ARM ActorShotArrow_194::~ActorShotArrow_194() {} + +ARM ActorShotArrow::~ActorShotArrow() {} +ARM ActorProfileShotArrow::~ActorProfileShotArrow() {} diff --git a/src/031_Land/Actor/ActorUnkAROW.cpp b/src/031_Land/Actor/ActorUnkAROW.cpp deleted file mode 100644 index e870f4f42..000000000 --- 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" - -ARM DECL_PROFILE(ActorProfileUnkAROW); - -ARM Actor *ActorProfileUnkAROW::Create() { - return new(HeapIndex_2) ActorUnkAROW(); -} - -ARM ActorProfileUnkAROW::ActorProfileUnkAROW() : - ActorProfile(ActorId_AROW) {} - -ARM ActorUnkAROW::ActorUnkAROW() {} - -ARM void ActorUnkAROW::func_ov031_020f1404(void) {} -ARM void ActorUnkAROW::func_ov031_020f1608(void) {} -ARM void ActorUnkAROW::func_ov031_020f173c(void) {} -ARM void ActorUnkAROW::func_ov031_020f1868(void) {} -ARM void ActorUnkAROW::func_ov031_020f1874(void) {} -ARM void ActorUnkAROW::func_ov031_020f1878(void) {} -ARM void ActorUnkAROW::func_ov031_020f18bc(void) {} -ARM void ActorUnkAROW::func_ov031_020f1958(void) {} -ARM void ActorUnkAROW::func_ov031_020f195c(void) {} -ARM void ActorUnkAROW::func_ov031_020f1a64(void) {} -ARM void ActorUnkAROW::func_ov031_020f1b04(void) {} -ARM void ActorUnkAROW::func_ov031_020f1c24(void) {} -ARM void ActorUnkAROW::func_ov031_020f1c7c(void) {} -ARM void ActorUnkAROW::func_ov031_020f1dd4(void) {} -ARM void ActorUnkAROW::func_ov031_020f1e3c(void) {} -ARM void ActorUnkAROW::func_ov031_020f1f54(void) {} -ARM void ActorUnkAROW::func_ov031_020f2010(void) {} -ARM void ActorUnkAROW::func_ov031_020f206c(void) {} -ARM void ActorUnkAROW::func_ov031_020f20bc(void) {} -ARM void ActorUnkAROW::func_ov031_020f2134(void) {} -ARM void ActorUnkAROW::func_ov031_020f2160(void) {} -ARM void ActorUnkAROW::func_ov031_020f21dc(void) {} -ARM void ActorUnkAROW::func_ov031_020f2214(void) {} -ARM void ActorUnkAROW::func_ov031_020f2270(void) {} -ARM void ActorUnkAROW::func_ov031_020f2280(void) {} -ARM void ActorUnkAROW::func_ov031_020f229c(void) {} -ARM void ActorUnkAROW::func_ov031_020f22d4(void) {} -ARM void ActorUnkAROW::func_ov031_020f2310(void) {} -ARM void ActorUnkAROW::func_ov031_020f2654(void) {} -ARM void ActorUnkAROW::func_ov031_020f2794(void) {} -ARM void ActorUnkAROW::func_ov031_020f28ac(void) {} -ARM void ActorUnkAROW::func_ov031_020f2b8c(void) {} -ARM void ActorUnkAROW::func_ov031_020f2bbc(void) {} -ARM void ActorUnkAROW::func_ov031_020f2bec(void) {} -ARM void ActorUnkAROW::func_ov031_020f2c08(void) {} -ARM void ActorUnkAROW::func_ov031_020f2cac(void) {} -ARM void ActorUnkAROW::func_ov031_020f2ef0(void) {} -ARM void ActorUnkAROW::func_ov031_020f2f5c(void) {} -ARM void ActorUnkAROW::func_ov031_020f2f9c(void) {} -ARM void ActorUnkAROW::func_ov031_020f3000(void) {} -ARM void ActorUnkAROW::func_ov031_020f311c(void) {} -ARM void ActorUnkAROW::func_ov031_020f3210(void) {} -ARM void ActorUnkAROW::func_ov031_020f3258(void) {} -ARM void ActorUnkAROW::func_ov031_020f3288(void) {} -ARM void ActorUnkAROW::func_ov031_020f32c4(void) {} -ARM void ActorUnkAROW::func_ov031_020f32e0(void) {} -ARM void ActorUnkAROW::func_ov031_020f3304(void) {} -ARM void ActorUnkAROW::func_ov031_020f3310(void) {} -ARM void ActorUnkAROW::func_ov031_020f33bc(void) {} -ARM void ActorUnkAROW::func_ov031_020f370c(void) {} -ARM void ActorUnkAROW::func_ov031_020f374c(void) {} -ARM void ActorUnkAROW::func_ov031_020f38b0(void) {} -ARM void ActorUnkAROW::func_ov031_020f3c38(void) {} -ARM void ActorUnkAROW::func_ov031_020f3d04(void) {} -ARM void ActorUnkAROW::func_ov031_020f3d4c(void) {} - -ARM ActorUnkAROW::~ActorUnkAROW() {} -ARM ActorProfileUnkAROW::~ActorProfileUnkAROW() {} diff --git a/tools/configure.py b/tools/configure.py index e677bc871..35eea0a12 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -421,7 +421,7 @@ def GameLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]: [ 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"),