diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 52c8709a..5198a55a 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1573,7 +1573,7 @@ _ZN26UnkStruct_027e0cd8_0C_Base8vfunc_2CEv kind:function(arm,size=0x20) addr:0x0 _ZN26UnkStruct_027e0cd8_0C_Base8vfunc_3CEv kind:function(arm,size=0x8) addr:0x020808cc func_ov000_020808d4 kind:function(arm,size=0x20) addr:0x020808d4 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvP8Vec2bCpph kind:function(arm,size=0x5c) addr:0x020808f4 -func_ov000_02080950 kind:function(arm,size=0x48) addr:0x02080950 +_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02082008EP8Vec2bCpp kind:function(arm,size=0x48) addr:0x02080950 func_ov000_02080998 kind:function(arm,size=0x40) addr:0x02080998 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020809d8Eii kind:function(arm,size=0x6c) addr:0x020809d8 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x02080a44 @@ -2307,7 +2307,7 @@ 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 _ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x020982a8 -func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0 +_ZN24UnkStruct_ov071_0215f92cC1Ev kind:function(arm,size=0x18) addr:0x020982c0 _ZN24UnkStruct_ov031_Items_008vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x80) addr:0x020982d8 _ZN19func_ov000_02098358D1Ev kind:function(arm,size=0x14) addr:0x02098358 _ZN19func_ov000_0209836cD0Ev kind:function(arm,size=0x1c) addr:0x0209836c @@ -2375,7 +2375,7 @@ func_ov000_02099870 kind:function(arm,size=0x80) addr:0x02099870 func_ov000_020998f0 kind:function(arm,size=0x11c) addr:0x020998f0 func_ov000_02099a0c kind:function(arm,size=0x10) addr:0x02099a0c func_ov000_02099a1c kind:function(arm,size=0xc) addr:0x02099a1c -func_ov000_02099a28 kind:function(thumb,size=0x54) addr:0x02099a28 +_ZN24UnkStruct_ov000_020b31a8C2EP10UnkSystem5P11ModelRenderi kind:function(thumb,size=0x54) addr:0x02099a28 func_ov000_02099a7c kind:function(thumb,size=0x48) addr:0x02099a7c func_ov000_02099ac4 kind:function(thumb,size=0x28) addr:0x02099ac4 func_ov000_02099aec kind:function(thumb,size=0x2) addr:0x02099aec diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index b66fb213..4d3fd7ff 100644 --- a/config/eur/arm9/overlays/ov017/symbols.txt +++ b/config/eur/arm9/overlays/ov017/symbols.txt @@ -57,7 +57,7 @@ func_ov017_020beea4 kind:function(arm,size=0x28) addr:0x020beea4 func_ov017_020beecc kind:function(arm,size=0x20) addr:0x020beecc _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 +_ZN5Actor19func_ov017_020bef88EP14Actor_vfunc_30Pvi kind:function(arm,size=0x9c) addr:0x020bef88 func_ov017_020bf024 kind:function(arm,size=0x2c) addr:0x020bf024 func_ov017_020bf050 kind:function(arm,size=0x128) addr:0x020bf050 func_ov017_020bf178 kind:function(arm,size=0x10c) addr:0x020bf178 diff --git a/config/eur/arm9/overlays/ov071/delinks.txt b/config/eur/arm9/overlays/ov071/delinks.txt index 22cc8f33..543f8b25 100644 --- a/config/eur/arm9/overlays/ov071/delinks.txt +++ b/config/eur/arm9/overlays/ov071/delinks.txt @@ -9,6 +9,7 @@ src/071_Tower/Actor/ActorUnkSZKU.cpp: .text start:0x0215f210 end:0x02160118 .init start:0x02163dd0 end:0x02163e44 .ctor start:0x021640bc end:0x021640c0 + .data start:0x02164be0 end:0x02164d10 .bss start:0x02165150 end:0x02165240 src/071_Tower/Actor/ActorUnkKMSO.cpp: diff --git a/config/eur/arm9/overlays/ov071/relocs.txt b/config/eur/arm9/overlays/ov071/relocs.txt index bd4b4c82..1670c753 100644 --- a/config/eur/arm9/overlays/ov071/relocs.txt +++ b/config/eur/arm9/overlays/ov071/relocs.txt @@ -1559,7 +1559,7 @@ from:0x0215f3b4 kind:arm_call to:0x0203d160 module:main from:0x0215f3f4 kind:arm_call to:0x0205fc20 module:overlay(0) from:0x0215f404 kind:load to:0x02164c7c add:0x8 module:overlay(71) from:0x0215f408 kind:load to:0x02165168 module:overlay(71) -from:0x0215f40c kind:load to:0x02164c3c module:overlay(71) +from:0x0215f40c kind:load to:0x02164c34 module:overlay(71) add:0x8 from:0x0215f410 kind:load to:0x020431b8 module:main from:0x0215f414 kind:load to:0x02151d24 module:overlay(71) from:0x0215f418 kind:load to:0x021600d4 module:overlay(71) @@ -1666,7 +1666,7 @@ from:0x0215ffe0 kind:arm_call to:0x0215fca4 module:overlay(71) from:0x0215fff4 kind:arm_call to:0x01ffb714 module:itcm from:0x0215fffc kind:load to:0x027e0ce4 module:dtcm from:0x02160014 kind:arm_call to:0x020f6284 module:overlay(31) -from:0x02160034 kind:load to:0x02164c00 module:overlay(71) +from:0x02160034 kind:load to:0x02164bf8 module:overlay(71) add:0x8 from:0x02160058 kind:arm_call to:0x0215fe54 module:overlay(71) from:0x02160068 kind:arm_call to:0x020f62e4 module:overlay(31) from:0x02160084 kind:arm_call to:0x0215fe94 module:overlay(71) diff --git a/config/eur/arm9/overlays/ov071/symbols.txt b/config/eur/arm9/overlays/ov071/symbols.txt index 638569aa..6ab2241f 100644 --- a/config/eur/arm9/overlays/ov071/symbols.txt +++ b/config/eur/arm9/overlays/ov071/symbols.txt @@ -23,7 +23,7 @@ func_ov071_02151cd4 kind:function(arm,size=0x14) addr:0x02151cd4 func_ov071_02151ce8 kind:function(arm,size=0x14) addr:0x02151ce8 func_ov071_02151cfc kind:function(arm,size=0x14) addr:0x02151cfc func_ov071_02151d10 kind:function(arm,size=0x14) addr:0x02151d10 -func_ov071_02151d24 kind:function(arm,size=0x14) addr:0x02151d24 +_ZN16ActorUnkSZKU_204D1Ev kind:function(arm,size=0x14) addr:0x02151d24 func_ov071_02151d38 kind:function(arm,size=0xe8) addr:0x02151d38 _ZN19func_ov071_02151e20D0Ev kind:function(arm,size=0xf0) addr:0x02151e20 func_ov071_02151f10 kind:function(arm,size=0xe8) addr:0x02151f10 @@ -180,9 +180,9 @@ func_ov071_0215b4c0 kind:function(arm,size=0x50) addr:0x0215b4c0 func_ov071_0215b510 kind:function(arm,size=0x30) addr:0x0215b510 func_ov071_0215b540 kind:function(arm,size=0x70) addr:0x0215b540 func_ov071_0215b5b0 kind:function(arm,size=0x70) addr:0x0215b5b0 -func_ov071_0215b620 kind:function(arm,size=0x24) addr:0x0215b620 -func_ov071_0215b644 kind:function(arm,size=0x10) addr:0x0215b644 -func_ov071_0215b654 kind:function(arm,size=0x8) addr:0x0215b654 +_ZN17ActorUnkSKZU_Base8vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215b620 +_ZN17ActorUnkSKZU_Base8vfunc_38Eii kind:function(arm,size=0x10) addr:0x0215b644 +_ZN17ActorUnkSKZU_Base8vfunc_30Ev kind:function(arm,size=0x8) addr:0x0215b654 func_ov071_0215b65c kind:function(arm,size=0x2c) addr:0x0215b65c func_ov071_0215b688 kind:function(arm,size=0x24) addr:0x0215b688 func_ov071_0215b6ac kind:function(arm,size=0xc) addr:0x0215b6ac @@ -292,16 +292,16 @@ _ZN19ActorProfileUnkSZKU10GetProfileEv kind:function(arm,size=0xc) addr:0x0215f2 _ZN19ActorProfileUnkSZKU6CreateEv kind:function(arm,size=0x24) addr:0x0215f21c _ZN19ActorProfileUnkSZKUC1Ev kind:function(arm,size=0x50) addr:0x0215f240 _ZN12ActorUnkSZKUC1Ev kind:function(arm,size=0x194) addr:0x0215f290 -_ZN12ActorUnkSZKU19func_ov071_0215f424Ev kind:function(arm,size=0x14) addr:0x0215f424 +_ZN16ActorUnkSKZU_104D1Ev kind:function(arm,size=0x14) addr:0x0215f424 _ZN12ActorUnkSZKUD1Ev kind:function(arm,size=0x78) addr:0x0215f438 _ZN12ActorUnkSZKUD0Ev kind:function(arm,size=0x80) addr:0x0215f4b0 -_ZN12ActorUnkSZKU19func_ov071_0215f530Ev kind:function(arm,size=0xac) addr:0x0215f530 -_ZN12ActorUnkSZKU19func_ov071_0215f5dcEv kind:function(arm,size=0x2c) addr:0x0215f5dc -_ZN12ActorUnkSZKU19func_ov071_0215f608Ev kind:function(arm,size=0x4c) addr:0x0215f608 -_ZN12ActorUnkSZKU19func_ov071_0215f654Ev kind:function(arm,size=0xc0) addr:0x0215f654 -_ZN12ActorUnkSZKU19func_ov071_0215f714Ev kind:function(arm,size=0xc8) addr:0x0215f714 -_ZN12ActorUnkSZKU19func_ov071_0215f7dcEv kind:function(arm,size=0x18) addr:0x0215f7dc -_ZN12ActorUnkSZKU19func_ov071_0215f7f4Ev kind:function(arm,size=0x18) addr:0x0215f7f4 +_ZN12ActorUnkSZKU8vfunc_18Ei kind:function(arm,size=0xac) addr:0x0215f530 +_ZN12ActorUnkSZKU8vfunc_1CEv kind:function(arm,size=0x2c) addr:0x0215f5dc +_ZN12ActorUnkSZKU8vfunc_20Ev kind:function(arm,size=0x4c) addr:0x0215f608 +_ZN12ActorUnkSZKU8vfunc_24Ev kind:function(arm,size=0xc0) addr:0x0215f654 +_ZN12ActorUnkSZKU8vfunc_2CEi kind:function(arm,size=0xc8) addr:0x0215f714 +_ZN12ActorUnkSZKU8vfunc_30EP14Actor_vfunc_30 kind:function(arm,size=0x18) addr:0x0215f7dc +_ZN12ActorUnkSZKU19func_ov071_0215f7f4Es kind:function(arm,size=0x18) addr:0x0215f7f4 _ZN12ActorUnkSZKU19func_ov071_0215f80cEv kind:function(arm,size=0x18) addr:0x0215f80c _ZN12ActorUnkSZKU19func_ov071_0215f824Ev kind:function(arm,size=0x108) addr:0x0215f824 _ZN12ActorUnkSZKU19func_ov071_0215f92cEv kind:function(arm,size=0x2e0) addr:0x0215f92c @@ -318,13 +318,13 @@ _ZN12ActorUnkSZKU19func_ov071_0215ff08Ev kind:function(arm,size=0x34) addr:0x021 _ZN12ActorUnkSZKU19func_ov071_0215ff3cEv kind:function(arm,size=0x7c) addr:0x0215ff3c _ZN12ActorUnkSZKU19func_ov071_0215ffb8Ev kind:function(arm,size=0x4) addr:0x0215ffb8 _ZN12ActorUnkSZKU19func_ov071_0215ffbcEv kind:function(arm,size=0x44) addr:0x0215ffbc -_ZN12ActorUnkSZKU19func_ov071_02160000Ev kind:function(arm,size=0x38) addr:0x02160000 -_ZN12ActorUnkSZKU19func_ov071_02160038Ev kind:function(arm,size=0x40) addr:0x02160038 -_ZN12ActorUnkSZKU19func_ov071_02160078Ev kind:function(arm,size=0x1c) addr:0x02160078 -_ZN12ActorUnkSZKU19func_ov071_02160094Ev kind:function(arm,size=0x24) addr:0x02160094 -_ZN12ActorUnkSZKU19func_ov071_021600b8Ev kind:function(arm,size=0x1c) addr:0x021600b8 -_ZN12ActorUnkSZKU19func_ov071_021600d4Ev kind:function(arm,size=0x14) addr:0x021600d4 -_ZN12ActorUnkSZKU19func_ov071_021600e8Ev kind:function(arm,size=0x1c) addr:0x021600e8 +_ZN16ActorUnkSZKU_194C2EP12ActorUnkSZKU kind:function(arm,size=0x38) addr:0x02160000 +_ZN16ActorUnkSZKU_1948vfunc_00E8ActorRefi kind:function(arm,size=0x40) addr:0x02160038 +_ZN16ActorUnkSZKU_1948vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02160078 +_ZN16ActorUnkSZKU_1948vfunc_0CEi kind:function(arm,size=0x24) addr:0x02160094 +_ZN16ActorUnkSZKU_1948vfunc_08Ev kind:function(arm,size=0x1c) addr:0x021600b8 +_ZN16ActorUnkSZKU_204C1Ev kind:function(arm,size=0x14) addr:0x021600d4 +_ZN16ActorUnkSKZU_104D0Ev kind:function(arm,size=0x1c) addr:0x021600e8 _ZN19ActorProfileUnkSZKUD1Ev kind:function(arm,size=0x14) addr:0x02160104 _ZN19ActorProfileUnkKMSO10GetProfileEv kind:function(arm,size=0xc) addr:0x02160118 _ZN19ActorProfileUnkKMSO6CreateEv kind:function(arm,size=0x24) addr:0x02160124 @@ -530,10 +530,10 @@ data_ov071_021649c4 kind:data(any) addr:0x021649c4 data_ov071_02164acc kind:data(any) addr:0x02164acc data_ov071_02164bd4 kind:data(any) addr:0x02164bd4 data_ov071_02164be0 kind:data(any) addr:0x02164be0 -data_ov071_02164c00 kind:data(any) addr:0x02164c00 -_ZTV19data_ov071_02164c10 kind:data(any) addr:0x02164c10 -data_ov071_02164c3c kind:data(any) addr:0x02164c3c -_ZTV19data_ov071_02164c7c kind:data(any) addr:0x02164c7c +_ZTV16ActorUnkSZKU_194 kind:data(any) addr:0x02164bf8 +_ZTV19ActorProfileUnkSZKU kind:data(any) addr:0x02164c10 +_ZTV16ActorUnkSKZU_104 kind:data(any) addr:0x02164c34 +_ZTV12ActorUnkSZKU kind:data(any) addr:0x02164c7c data_ov071_02164cd8 kind:data(any) addr:0x02164cd8 data_ov071_02164ce0 kind:data(any) addr:0x02164ce0 data_ov071_02164ce8 kind:data(any) addr:0x02164ce8 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 1003c07a..4ac5bcfc 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -1571,7 +1571,7 @@ _ZN26UnkStruct_027e0cd8_0C_Base8vfunc_2CEv kind:function(arm,size=0x20) addr:0x0 _ZN26UnkStruct_027e0cd8_0C_Base8vfunc_3CEv kind:function(arm,size=0x8) addr:0x02081f84 func_ov000_02081f8c kind:function(arm,size=0x20) addr:0x02081f8c _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvP8Vec2bCpph kind:function(arm,size=0x5c) addr:0x02081fac -func_ov000_02082008 kind:function(arm,size=0x48) addr:0x02082008 +_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02082008EP8Vec2bCpp kind:function(arm,size=0x48) addr:0x02082008 func_ov000_02082050 kind:function(arm,size=0x40) addr:0x02082050 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020809d8Eii kind:function(arm,size=0x6c) addr:0x02082090 _ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x020820fc @@ -2304,7 +2304,7 @@ 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 _ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x02099a50 -func_ov000_02099a68 kind:function(arm,size=0x18) addr:0x02099a68 +_ZN24UnkStruct_ov071_0215f92cC1Ev kind:function(arm,size=0x18) addr:0x02099a68 _ZN24UnkStruct_ov031_Items_008vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x80) addr:0x02099a80 _ZN19func_ov000_02099b00D1Ev kind:function(arm,size=0x14) addr:0x02099b00 _ZN19func_ov000_02099b14D0Ev kind:function(arm,size=0x1c) addr:0x02099b14 @@ -2372,12 +2372,12 @@ func_ov000_0209b03c kind:function(arm,size=0x80) addr:0x0209b03c func_ov000_0209b0bc kind:function(arm,size=0x11c) addr:0x0209b0bc func_ov000_02099a0c kind:function(arm,size=0x10) addr:0x0209b1d8 func_ov000_0209b1e8 kind:function(arm,size=0xc) addr:0x0209b1e8 -func_ov000_0209b1f4 kind:function(thumb,size=0x54) addr:0x0209b1f4 +_ZN24UnkStruct_ov000_020b31a8C2EP10UnkSystem5P11ModelRenderi kind:function(thumb,size=0x54) addr:0x0209b1f4 func_ov000_0209b248 kind:function(thumb,size=0x48) addr:0x0209b248 func_ov000_0209b290 kind:function(thumb,size=0x28) addr:0x0209b290 func_ov000_0209b2b8 kind:function(thumb,size=0x2) addr:0x0209b2b8 _ZN19func_ov000_0209b2bcD0Ev kind:function(thumb,size=0xc) addr:0x0209b2bc -func_ov000_0209b2c8 kind:function(thumb,size=0x2) addr:0x0209b2c8 +_ZN17ActorUnkSKZU_BaseD2Ev kind:function(thumb,size=0x2) addr:0x0209b2c8 _ZN24UnkStruct_ov000_020b31a88vfunc_08Ev kind:function(arm,size=0x38) addr:0x0209b2cc _ZN24UnkStruct_ov000_020b31a88vfunc_0CEv kind:function(arm,size=0x68) addr:0x0209b304 _ZN24UnkStruct_ov000_020b31a88vfunc_20Ev kind:function(arm,size=0x110) addr:0x0209b36c diff --git a/config/jp/arm9/overlays/ov071/delinks.txt b/config/jp/arm9/overlays/ov071/delinks.txt index 4fb6ff3f..e018d6a2 100644 --- a/config/jp/arm9/overlays/ov071/delinks.txt +++ b/config/jp/arm9/overlays/ov071/delinks.txt @@ -9,6 +9,7 @@ src/071_Tower/Actor/ActorUnkSZKU.cpp: .text start:0x02161450 end:0x02162358 .init start:0x02166030 end:0x021660a4 .ctor start:0x0216631c end:0x02166320 + .data start:0x02166e58 end:0x02166f70 .bss start:0x021673b0 end:0x021674a0 src/071_Tower/Actor/ActorUnkKMSO.cpp: diff --git a/config/jp/arm9/overlays/ov071/relocs.txt b/config/jp/arm9/overlays/ov071/relocs.txt index e8ebbf61..81e060f2 100644 --- a/config/jp/arm9/overlays/ov071/relocs.txt +++ b/config/jp/arm9/overlays/ov071/relocs.txt @@ -1573,7 +1573,7 @@ from:0x021615f4 kind:arm_call to:0x0203e690 module:main from:0x02161634 kind:arm_call to:0x020611a8 module:overlay(0) from:0x02161644 kind:load to:0x02166edc add:0x8 module:overlay(71) from:0x02161648 kind:load to:0x021673c8 module:overlay(71) -from:0x0216164c kind:load to:0x02166e9c module:overlay(71) +from:0x0216164c kind:load to:0x02166e94 module:overlay(71) add:0x8 from:0x02161650 kind:load to:0x02044704 module:main from:0x02161654 kind:load to:0x02153d44 module:overlay(71) from:0x02161658 kind:load to:0x02162314 module:overlay(71) @@ -1680,7 +1680,7 @@ from:0x02162220 kind:arm_call to:0x02161ee4 module:overlay(71) from:0x02162234 kind:arm_call to:0x01ffb714 module:itcm from:0x0216223c kind:load to:0x027e0ce4 module:dtcm from:0x02162254 kind:arm_call to:0x020f7d24 module:overlays(21,31) -from:0x02162274 kind:load to:0x02166e60 module:overlay(71) +from:0x02162274 kind:load to:0x02166e58 module:overlay(71) add:0x8 from:0x02162298 kind:arm_call to:0x02162094 module:overlay(71) from:0x021622a8 kind:arm_call to:0x020f7d84 module:overlay(31) from:0x021622c4 kind:arm_call to:0x021620d4 module:overlay(71) diff --git a/config/jp/arm9/overlays/ov071/symbols.txt b/config/jp/arm9/overlays/ov071/symbols.txt index e5c67cfa..ab329aad 100644 --- a/config/jp/arm9/overlays/ov071/symbols.txt +++ b/config/jp/arm9/overlays/ov071/symbols.txt @@ -23,7 +23,7 @@ func_ov071_02153cf4 kind:function(arm,size=0x14) addr:0x02153cf4 func_ov071_02153d08 kind:function(arm,size=0x14) addr:0x02153d08 func_ov071_02153d1c kind:function(arm,size=0x14) addr:0x02153d1c func_ov071_02153d30 kind:function(arm,size=0x14) addr:0x02153d30 -func_ov071_02153d44 kind:function(arm,size=0x14) addr:0x02153d44 +_ZN16ActorUnkSZKU_204D1Ev kind:function(arm,size=0x14) addr:0x02153d44 func_ov071_02153d58 kind:function(arm,size=0xe8) addr:0x02153d58 _ZN19func_ov071_02153e40D0Ev kind:function(arm,size=0xf0) addr:0x02153e40 func_ov071_02153f30 kind:function(arm,size=0xe8) addr:0x02153f30 @@ -181,9 +181,9 @@ func_ov071_0215d6a8 kind:function(arm,size=0x50) addr:0x0215d6a8 func_ov071_0215d6f8 kind:function(arm,size=0x30) addr:0x0215d6f8 func_ov071_0215d728 kind:function(arm,size=0x70) addr:0x0215d728 func_ov071_0215d798 kind:function(arm,size=0x70) addr:0x0215d798 -func_ov071_0215d808 kind:function(arm,size=0x24) addr:0x0215d808 -func_ov071_0215d82c kind:function(arm,size=0x10) addr:0x0215d82c -func_ov071_0215d83c kind:function(arm,size=0x8) addr:0x0215d83c +_ZN17ActorUnkSKZU_Base8vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215d808 +_ZN17ActorUnkSKZU_Base8vfunc_38Eii kind:function(arm,size=0x10) addr:0x0215d82c +_ZN17ActorUnkSKZU_Base8vfunc_30Ev kind:function(arm,size=0x8) addr:0x0215d83c func_ov071_0215d844 kind:function(arm,size=0x2c) addr:0x0215d844 func_ov071_0215d870 kind:function(arm,size=0x24) addr:0x0215d870 func_ov071_0215d894 kind:function(arm,size=0xc) addr:0x0215d894 @@ -293,16 +293,16 @@ _ZN19ActorProfileUnkSZKU10GetProfileEv kind:function(arm,size=0xc) addr:0x021614 _ZN19ActorProfileUnkSZKU6CreateEv kind:function(arm,size=0x24) addr:0x0216145c _ZN19ActorProfileUnkSZKUC1Ev kind:function(arm,size=0x50) addr:0x02161480 _ZN12ActorUnkSZKUC1Ev kind:function(arm,size=0x194) addr:0x021614d0 -_ZN12ActorUnkSZKU19func_ov071_0215f424Ev kind:function(arm,size=0x14) addr:0x02161664 +_ZN16ActorUnkSKZU_104D1Ev kind:function(arm,size=0x14) addr:0x02161664 _ZN12ActorUnkSZKUD1Ev kind:function(arm,size=0x78) addr:0x02161678 _ZN12ActorUnkSZKUD0Ev kind:function(arm,size=0x80) addr:0x021616f0 -_ZN12ActorUnkSZKU19func_ov071_0215f530Ev kind:function(arm,size=0xac) addr:0x02161770 -_ZN12ActorUnkSZKU19func_ov071_0215f5dcEv kind:function(arm,size=0x2c) addr:0x0216181c -_ZN12ActorUnkSZKU19func_ov071_0215f608Ev kind:function(arm,size=0x4c) addr:0x02161848 -_ZN12ActorUnkSZKU19func_ov071_0215f654Ev kind:function(arm,size=0xc0) addr:0x02161894 -_ZN12ActorUnkSZKU19func_ov071_0215f714Ev kind:function(arm,size=0xc8) addr:0x02161954 -_ZN12ActorUnkSZKU19func_ov071_0215f7dcEv kind:function(arm,size=0x18) addr:0x02161a1c -_ZN12ActorUnkSZKU19func_ov071_0215f7f4Ev kind:function(arm,size=0x18) addr:0x02161a34 +_ZN12ActorUnkSZKU8vfunc_18Ei kind:function(arm,size=0xac) addr:0x02161770 +_ZN12ActorUnkSZKU8vfunc_1CEv kind:function(arm,size=0x2c) addr:0x0216181c +_ZN12ActorUnkSZKU8vfunc_20Ev kind:function(arm,size=0x4c) addr:0x02161848 +_ZN12ActorUnkSZKU8vfunc_24Ev kind:function(arm,size=0xc0) addr:0x02161894 +_ZN12ActorUnkSZKU8vfunc_2CEi kind:function(arm,size=0xc8) addr:0x02161954 +_ZN12ActorUnkSZKU8vfunc_30EP14Actor_vfunc_30 kind:function(arm,size=0x18) addr:0x02161a1c +_ZN12ActorUnkSZKU19func_ov071_0215f7f4Es kind:function(arm,size=0x18) addr:0x02161a34 _ZN12ActorUnkSZKU19func_ov071_0215f80cEv kind:function(arm,size=0x18) addr:0x02161a4c _ZN12ActorUnkSZKU19func_ov071_0215f824Ev kind:function(arm,size=0x108) addr:0x02161a64 _ZN12ActorUnkSZKU19func_ov071_0215f92cEv kind:function(arm,size=0x2e0) addr:0x02161b6c @@ -319,13 +319,13 @@ _ZN12ActorUnkSZKU19func_ov071_0215ff08Ev kind:function(arm,size=0x34) addr:0x021 _ZN12ActorUnkSZKU19func_ov071_0215ff3cEv kind:function(arm,size=0x7c) addr:0x0216217c _ZN12ActorUnkSZKU19func_ov071_0215ffb8Ev kind:function(arm,size=0x4) addr:0x021621f8 _ZN12ActorUnkSZKU19func_ov071_0215ffbcEv kind:function(arm,size=0x44) addr:0x021621fc -_ZN12ActorUnkSZKU19func_ov071_02160000Ev kind:function(arm,size=0x38) addr:0x02162240 -_ZN12ActorUnkSZKU19func_ov071_02160038Ev kind:function(arm,size=0x40) addr:0x02162278 -_ZN12ActorUnkSZKU19func_ov071_02160078Ev kind:function(arm,size=0x1c) addr:0x021622b8 -_ZN12ActorUnkSZKU19func_ov071_02160094Ev kind:function(arm,size=0x24) addr:0x021622d4 -_ZN12ActorUnkSZKU19func_ov071_021600b8Ev kind:function(arm,size=0x1c) addr:0x021622f8 -_ZN12ActorUnkSZKU19func_ov071_021600d4Ev kind:function(arm,size=0x14) addr:0x02162314 -_ZN12ActorUnkSZKU19func_ov071_021600e8Ev kind:function(arm,size=0x1c) addr:0x02162328 +_ZN16ActorUnkSZKU_194C2EP12ActorUnkSZKU kind:function(arm,size=0x38) addr:0x02162240 +_ZN16ActorUnkSZKU_1948vfunc_00E8ActorRefi kind:function(arm,size=0x40) addr:0x02162278 +_ZN16ActorUnkSZKU_1948vfunc_04Ev kind:function(arm,size=0x1c) addr:0x021622b8 +_ZN16ActorUnkSZKU_1948vfunc_0CEi kind:function(arm,size=0x24) addr:0x021622d4 +_ZN16ActorUnkSZKU_1948vfunc_08Ev kind:function(arm,size=0x1c) addr:0x021622f8 +_ZN16ActorUnkSZKU_204C1Ev kind:function(arm,size=0x14) addr:0x02162314 +_ZN16ActorUnkSKZU_104D0Ev kind:function(arm,size=0x1c) addr:0x02162328 _ZN19ActorProfileUnkSZKUD1Ev kind:function(arm,size=0x14) addr:0x02162344 _ZN19ActorProfileUnkKMSO10GetProfileEv kind:function(arm,size=0xc) addr:0x02162358 _ZN19ActorProfileUnkKMSO6CreateEv kind:function(arm,size=0x24) addr:0x02162364 @@ -528,17 +528,17 @@ data_ov071_02166c24 kind:data(any) addr:0x02166c24 data_ov071_02166d2c kind:data(any) addr:0x02166d2c data_ov071_02166e34 kind:data(any) addr:0x02166e34 data_ov071_02166e40 kind:data(any) addr:0x02166e40 -data_ov071_02166e60 kind:data(any) addr:0x02166e60 -_ZTV19data_ov071_02166e70 kind:data(any) addr:0x02166e70 -data_ov071_02166e9c kind:data(any) addr:0x02166e9c -_ZTV19data_ov071_02166edc kind:data(any) addr:0x02166edc +_ZTV16ActorUnkSZKU_194 kind:data(any) addr:0x02166e58 +_ZTV19ActorProfileUnkSZKU kind:data(any) addr:0x02166e70 +_ZTV16ActorUnkSKZU_104 kind:data(any) addr:0x02166e94 +_ZTV12ActorUnkSZKU kind:data(any) addr:0x02166edc data_ov071_02166f38 kind:data(any) addr:0x02166f38 -data_ov071_02166f40 kind:data(any) addr:0x02166f40 -data_ov071_02166f48 kind:data(any) addr:0x02166f48 -data_ov071_02166f50 kind:data(any) addr:0x02166f50 +data_ov071_02164ce0 kind:data(any) addr:0x02166f40 +data_ov071_02164ce8 kind:data(any) addr:0x02166f48 +data_ov071_02164cf0 kind:data(any) addr:0x02166f50 data_ov071_02166f58 kind:data(any) addr:0x02166f58 -data_ov071_02166f60 kind:data(any) addr:0x02166f60 -data_ov071_02166f68 kind:data(any) addr:0x02166f68 +data_ov071_02164d00 kind:data(any) addr:0x02166f60 +data_ov071_02164d08 kind:data(any) addr:0x02166f68 data_ov071_02166f70 kind:data(any) addr:0x02166f70 data_ov071_02166f80 kind:data(any) addr:0x02166f80 _ZTV19data_ov071_02166f90 kind:data(any) addr:0x02166f90 diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 28edcd72..3253c869 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -2318,7 +2318,7 @@ __ctype_mapC kind:data(any) addr:0x020445d4 dp_h kind:data(any) addr:0x020446d4 local bp kind:data(any) addr:0x020446e4 local dp_l kind:data(any) addr:0x020446f4 local -data_02044704 kind:data(any) addr:0x02044704 +data_020431b8 kind:data(any) addr:0x02044704 .p__sinit_0203ed54 kind:data(word) addr:0x0204470c .p__sinit_0203ed70 kind:data(word) addr:0x02044710 .p__sinit_0203edd0 kind:data(word) addr:0x02044714 diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 71e91628..82ebbe9a 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -246,8 +246,10 @@ public: // overlay 17 bool func_ov017_020beeec(unk32 param1); + void func_ov017_020bef88(Actor_vfunc_30 *param1, void *param2, unk32 param3); void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); void func_ov017_020bf9c8(Actor *param1); + void func_ov017_020bfa50(VecFx32 *param1, unk32 param2); void func_ov017_020bfb18(Actor_9C *param1); // overlay 71 (might be temporary) diff --git a/include/Actor/ActorUnkSZKU.hpp b/include/Actor/ActorUnkSZKU.hpp index 6c7ef694..dbb9ceac 100644 --- a/include/Actor/ActorUnkSZKU.hpp +++ b/include/Actor/ActorUnkSZKU.hpp @@ -4,38 +4,118 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "ActorUnkZLSL_ZSRS.hpp" #include "Item/Item.hpp" #include "global.h" #include "types.h" -class ActorUnkSZKU_C4 : public Actor_C4 { -public: - ActorUnkSZKU_C4(Actor *param1); +class ActorUnkSZKU; +class ActorProfileUnkSZKU; +struct ActorUnkZSKU_UnkStruct { + /* 00 */ void (ActorUnkSZKU::*fct)(); + /* 08 */ +}; + +class ActorUnkSZKU_204 : public UnkStruct_PlayerGet_ec { +public: + /* 00 (base) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ + + ActorUnkSZKU_204(); + ~ActorUnkSZKU_204(); // func_ov071_02151d24 +}; + +class ActorUnkSZKU_194 : public Actor_C4 { +public: + /* 00 (base) */ + /* 24 */ + + ActorUnkSZKU_194(ActorUnkSZKU *param1); + + // data_ov071_02164c00 /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override; /* 04 */ virtual bool vfunc_04() override; /* 08 */ virtual void vfunc_08() override; /* 0C */ virtual void vfunc_0C(unk32 param1) override; }; -class ActorUnkSZKU : public Actor { +class ActorUnkSKZU_Base : public UnkStruct_ov000_020b31a8 { public: /* 00 (base) */ - /* 94 */ STRUCT_PAD(0x94, 0xA0); - /* A0 */ ItemId mItemId; + /* 1C */ + + ActorUnkSKZU_Base(UnkSystem5 *param1, ModelRender *param2, unk32 param3) : + UnkStruct_ov000_020b31a8(param1, param2, param3) {} + + // data_ov071_021641e0 + /* 00 */ virtual ~ActorUnkSKZU_Base(); // func_ov071_02151d10 & func_ov071_0215b744 + /* 30 */ virtual s8 vfunc_30(); + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override; + /* 3C */ virtual void vfunc_3C() override; +}; + +class ActorUnkSKZU_104 : public ActorUnkSKZU_Base { +public: + /* 00 (base) */ + /* 1C */ + + ActorUnkSKZU_104(UnkSystem5 *param1, ModelRender *param2, unk32 param3) : + ActorUnkSKZU_Base(param1, param2, param3) {} + + // data_ov071_02164c3c + /* 00 */ virtual ~ActorUnkSKZU_104(); +}; + +enum ActorUnkSZKUState_ { + ActorUnkSZKUState_0 = 0, + ActorUnkSZKUState_1 = 1, + ActorUnkSZKUState_2 = 2, + ActorUnkSZKUState_3 = 3, + ActorUnkSZKUState_4 = 4, + ActorUnkSZKUState_5 = 5, + ActorUnkSZKUState_6 = 6, + ActorUnkSZKUState_7 = 7, + ActorUnkSZKUState_8 = 8, + ActorUnkSZKUState_Max, +}; + +class ActorUnkSZKU : public Actor { +public: + /* 000 (base) */ + /* 094 */ VecFx32 mUnk_094; + /* 0A0 */ ItemId mItemId; + /* 0A4 */ ModelRender mUnk_0A4; + /* 104 */ ActorUnkSKZU_104 mUnk_104; + /* 120 */ UnkSystem5 mUnk_120; + /* 140 */ unk32 mUnk_140; + /* 144 */ STRUCT_PAD(0x144, 0x160); + /* 160 */ ActorUnkZSKU_UnkStruct mUnk_160; + /* 168 */ Actor_9C mUnk_168; + /* 188 */ unk32 mUnk_188; + /* 18C */ bool mUnk_18C; + /* 18D */ bool mUnk_18D; + /* 190 */ ActorRef mUnk_190; + /* 194 */ ActorUnkSZKU_194 mUnk_194; + /* 1B8 */ u8 mUnk_1B8; + /* 1B9 */ unk8 mUnk_1B9; + /* 1BC */ UnkStruct_ov031_Items_02 mUnk_1BC; + /* 1C8 */ STRUCT_PAD(0x1C8, 0x204); + /* 204 */ ActorUnkSZKU_204 mUnk_204[0x2]; ActorUnkSZKU(); + /* 18 */ virtual bool vfunc_18(unk32 param1) override; + /* 1C */ virtual void vfunc_1C() override; + /* 20 */ virtual void vfunc_20() override; + /* 24 */ virtual void vfunc_24() override; + /* 2C */ virtual void vfunc_2C(unk32 param1) override; + /* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1) override; /* 4C */ virtual ~ActorUnkSZKU() override; - void func_ov071_0215f424(void); - void func_ov071_0215f530(void); - void func_ov071_0215f5dc(void); - void func_ov071_0215f608(void); - void func_ov071_0215f654(void); - void func_ov071_0215f714(void); - void func_ov071_0215f7dc(void); - void func_ov071_0215f7f4(void); + void func_ov071_0215f7f4(ActorState state); void func_ov071_0215f80c(void); void func_ov071_0215f824(void); void func_ov071_0215f92c(void); @@ -52,13 +132,7 @@ public: void func_ov071_0215ff3c(void); void func_ov071_0215ffb8(void); void func_ov071_0215ffbc(void); - void func_ov071_02160000(void); - void func_ov071_02160038(void); - void func_ov071_02160078(void); - void func_ov071_02160094(void); - void func_ov071_021600b8(void); void func_ov071_021600d4(void); - void func_ov071_021600e8(void); }; class ActorProfileUnkSZKU : public ActorProfile_Derived1 { diff --git a/include/Actor/ActorUnkZLSL_ZSRS.hpp b/include/Actor/ActorUnkZLSL_ZSRS.hpp index 03edd5fc..9f59dabb 100644 --- a/include/Actor/ActorUnkZLSL_ZSRS.hpp +++ b/include/Actor/ActorUnkZLSL_ZSRS.hpp @@ -54,7 +54,7 @@ public: /* 19 */ STRUCT_PAD(0x19, 0x1C); /* 1C */ - UnkStruct_ov000_020b31a8(unk32 param1, unk32 param2, unk32 param3); + UnkStruct_ov000_020b31a8(UnkSystem5 *param1, ModelRender *param2, unk32 param3); // data_ov000_020b31a8 /* 00 */ virtual ~UnkStruct_ov000_020b31a8(); diff --git a/include/Unknown/UnkStruct_020431b8.hpp b/include/Unknown/UnkStruct_020431b8.hpp new file mode 100644 index 00000000..f9747ad4 --- /dev/null +++ b/include/Unknown/UnkStruct_020431b8.hpp @@ -0,0 +1,11 @@ +#pragma once +#include "types.h" + +class UnkStruct_020431b8 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ +}; + +extern UnkStruct_020431b8 data_020431b8; diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index 79bc40d1..95a1d3f5 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -272,7 +272,6 @@ public: // overlay 0 unk32 func_ov000_02080180(Vec2bCpp *param1); void func_ov000_020801b0(Vec2bCpp *param1, unk32 param2, unk32 param3); - bool func_ov000_0208217c(VecFx32 *param1, unk32 param2); bool func_ov000_020802ec(u16 param1, VecFx32 *param2); void func_ov000_020803ec(u16 param1); void func_ov000_0208053c(u16 param1); @@ -283,6 +282,8 @@ public: unk32 func_ov000_02080a44(); void func_ov000_02080a5c(VecFx32 *param1); void func_ov000_02080a78(VecFx32 *param1); + bool func_ov000_02082008(Vec2bCpp *param1); + bool func_ov000_0208217c(VecFx32 *param1, unk32 param2); // overlay 1 void func_ov001_020b85d0(const EntranceInfo *param1); diff --git a/src/063_Shrine/Actor/ActorUnkCANS.cpp b/src/063_Shrine/Actor/ActorUnkCANS.cpp index 986382e8..ab26d4c8 100644 --- a/src/063_Shrine/Actor/ActorUnkCANS.cpp +++ b/src/063_Shrine/Actor/ActorUnkCANS.cpp @@ -70,7 +70,7 @@ extern "C" void func_01ff9638(VecFx32 *param1, fx16 param2); extern "C" fx32 func_01ff9a5c(VecFx32 *, VecFx32 *, VecFx32 *); extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *); extern "C" fx32 func_01ffb428(unk32, unk32); -extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *); +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *); extern "C" unk32 func_01ffbbe0(unk32 param1, unk32 param2); extern "C" void func_01ffc6d4(ModelRender *param1, UnkAngleStruct param2, VecFx32 *param3); extern "C" void func_0200eab0(G3d_Model *, unk32, u8); diff --git a/src/071_Tower/Actor/ActorUnkSZKU.cpp b/src/071_Tower/Actor/ActorUnkSZKU.cpp index 4e2df53d..ae5a871e 100644 --- a/src/071_Tower/Actor/ActorUnkSZKU.cpp +++ b/src/071_Tower/Actor/ActorUnkSZKU.cpp @@ -1,9 +1,49 @@ -//! TODO: This file was generated automatically and might contain errors - #include "Actor/ActorUnkSZKU.hpp" + +#include "Actor/ActorManager.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_020431b8.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09b4.hpp" #include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" #include "Unknown/UnkStruct_027e0d34.hpp" +#include "Unknown/UnkStruct_027e0d38.hpp" + +class UnkStruct_ov071_0215f92c : public UnkStruct_ov031_Items_00 { +public: + /* 00 (base) */ + /* 04 */ u16 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ + + UnkStruct_ov071_0215f92c(); +}; + +class UnkActor_ov071_0215ffbc : public Actor { +public: + /* 00 (base) */ + /* 94 */ STRUCT_PAD(0x94, 0xE8); + /* E8 */ VecFx32 mUnk_E8; +}; + +extern "C" unk32 data_ov000_020aecf8; +extern "C" VecFx32 data_ov071_02164bd4; + +extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *); +extern "C" void func_01ffedac(Vec2bCpp *, VecFx32 *); +extern "C" fx32 func_ov000_02080068(fx32 x); +extern "C" fx32 func_ov000_02080080(fx32 x); + +static ActorUnkZLSL_AnimationTag data_ov071_02164be0 = {0x0, "szku"}; +static ActorUnkZSKU_UnkStruct data_ov071_02164cd8 = {.fct = 0x0}; +static ActorUnkZSKU_UnkStruct data_ov071_02164ce0 = {.fct = ActorUnkSZKU::func_ov071_0215fed4}; +static ActorUnkZSKU_UnkStruct data_ov071_02164ce8 = {.fct = ActorUnkSZKU::func_ov071_0215ff08}; +static ActorUnkZSKU_UnkStruct data_ov071_02164cf0 = {.fct = ActorUnkSZKU::func_ov071_0215ff3c}; +static ActorUnkZSKU_UnkStruct data_ov071_02164cf8 = {.fct = ActorUnkSZKU::func_ov071_0215ff3c}; +static ActorUnkZSKU_UnkStruct data_ov071_02164d00 = {.fct = ActorUnkSZKU::func_ov071_0215ffb8}; +static ActorUnkZSKU_UnkStruct data_ov071_02164d08 = {.fct = ActorUnkSZKU::func_ov071_0215ffbc}; DECL_PROFILE(ActorProfileUnkSZKU); @@ -12,36 +52,365 @@ Actor *ActorProfileUnkSZKU::Create() { } ActorProfileUnkSZKU::ActorProfileUnkSZKU() : - ActorProfile_Derived1(ActorId_SZKU) {} + ActorProfile_Derived1(ActorId_SZKU) { + this->mUnk_18 = 0x0; + this->mUnk_1A = 0x1000; + this->mUnk_04.Init(FLOAT_TO_FX32(0.4f)); +} -ActorUnkSZKU::ActorUnkSZKU() {} +// non-matching +ActorUnkSZKU::ActorUnkSZKU() : + mUnk_0A4(G3d_GetModelPtr(GET_PROFILE(ActorProfileUnkSZKU)->mUnk_3C.mUnk_50)), + mUnk_104(&this->mUnk_120, &this->mUnk_0A4, GET_PROFILE(ActorProfileUnkSZKU)->vfunc_04()), + mUnk_120(&this->mUnk_140, NULL), + mUnk_160(*(ActorUnkZSKU_UnkStruct *) &data_020431b8), + mUnk_188(0x0), + mUnk_18C(0x1), + mUnk_18D(false), + mUnk_190(0x0), + mUnk_194(this), + mUnk_1B8(0x0), + mUnk_1B9(0x1), + mUnk_1BC(0x1000, 0x1) { + this->mUnk_44 = 0xA3; + SET_FLAG(this->mFlags, ActorFlag_13); + this->mUnk_168.mUnk_04 = 0x13010; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mUnk_094); +} -void ActorUnkSZKU::func_ov071_0215f424(void) {} -void ActorUnkSZKU::func_ov071_0215f530(void) {} -void ActorUnkSZKU::func_ov071_0215f5dc(void) {} -void ActorUnkSZKU::func_ov071_0215f608(void) {} -void ActorUnkSZKU::func_ov071_0215f654(void) {} -void ActorUnkSZKU::func_ov071_0215f714(void) {} -void ActorUnkSZKU::func_ov071_0215f7dc(void) {} -void ActorUnkSZKU::func_ov071_0215f7f4(void) {} -void ActorUnkSZKU::func_ov071_0215f80c(void) {} -void ActorUnkSZKU::func_ov071_0215f824(void) {} -void ActorUnkSZKU::func_ov071_0215f92c(void) {} -void ActorUnkSZKU::func_ov071_0215fc0c(void) {} -void ActorUnkSZKU::func_ov071_0215fc54(void) {} -void ActorUnkSZKU::func_ov071_0215fca4(void) {} -void ActorUnkSZKU::func_ov071_0215fd04(void) {} -void ActorUnkSZKU::func_ov071_0215fd80(void) {} -void ActorUnkSZKU::func_ov071_0215fdd4(void) {} -void ActorUnkSZKU::func_ov071_0215fe54(void) {} -void ActorUnkSZKU::func_ov071_0215fe94(void) {} -void ActorUnkSZKU::func_ov071_0215fed4(void) {} -void ActorUnkSZKU::func_ov071_0215ff08(void) {} +// non-matching +bool ActorUnkSZKU::vfunc_18(unk32 param1) { + SET_FLAG(this->mFlags, ActorFlag_11); + this->mItemId = ItemId_ForceGem_60; -void ActorUnkSZKU::func_ov071_0215ff3c(void) { - if (this->mUnk_50 < this->mUnk_52) { - this->mUnk_50++; + this->mUnk_204[0].mUnk_04 = 0xD0A3; + this->mUnk_204[1].mUnk_04 = 0xD0A4; + + this->mUnk_204[0].mUnk_08 = 0x2; + this->mUnk_204[1].mUnk_08 = 0x2; + + this->func_ov071_0215fd04(); + + this->mUnk_18D = true; + return true; +} + +void ActorUnkSZKU::vfunc_1C() { + if (this->mUnk_5C.mParams[0] != 0x1) { + return; } + data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_1BC.mUnk_00); +} + +void ActorUnkSZKU::vfunc_20() { + this->func_ov071_0215f92c(); + this->func_ov071_0215f824(); + + this->mUnk_104.vfunc_34(); + + if (this->mUnk_5C.mParams[0] != 0x1) { + return; + } + + VecFx32_Copy(&this->mPos, &this->mUnk_1BC.mUnk_00); +} + +void ActorUnkSZKU::vfunc_24() { + if (this->mState == ActorUnkSZKUState_3) { + this->func_ov071_0215f92c(); + } + this->func_ov071_0215f824(); + + if (this->mState == ActorUnkSZKUState_2) { + if (this->mUnk_1B8 != 0x0) { + this->IsTimerOut(); + if (this->mUnk_50 == 0x14) { + this->func_ov071_0215fca4(); + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + this->mUnk_1B8 = 0x0; + SET_FLAG(this->mFlags, ActorFlag_Visible); + return; + } + } else { + this->func_ov071_0215f92c(); + } + } + + if (this->mState == ActorUnkSZKUState_1) { + this->mAngle = 0x0; + this->func_ov071_0215f92c(); + } + this->mUnk_104.vfunc_34(); +} + +void ActorUnkSZKU::vfunc_2C(unk32 param1) { + if (!this->func_01fff5d0(param1, 0x0)) { + return; + } + Mat3p matrix; + Mat3p_InitYRotation(&matrix, SIN((u16) this->mAngle), COS((u16) this->mAngle)); + + VecFx32 vecC = this->mPos; + vecC.y += FLOAT_TO_FX32(0.5f); + + this->mUnk_0A4.vfunc_10(&data_ov071_02164bd4, &matrix, &vecC); + + data_027e09b4->func_ov017_020c08c4(&vecC, 0x333, 0x333, 0x1F, 0x0, 0x1); +} + +// non-matching +void ActorUnkSZKU::vfunc_30(Actor_vfunc_30 *param1) { + this->func_ov017_020bef88(param1, GET_PROFILE(ActorProfileUnkSZKU), 0x1); +} + +void ActorUnkSZKU::func_ov071_0215f7f4(ActorState state) { + this->mState = state; + this->mUnk_2C = data_ov000_020aecf8; +} + +void ActorUnkSZKU::func_ov071_0215f80c() { + UNSET_FLAG(this->mFlags, ActorFlag_5); + this->func_ov071_0215fca4(); +} + +void ActorUnkSZKU::func_ov071_0215f824() { + switch (this->mState) { + case ActorUnkSZKUState_3: + case ActorUnkSZKUState_8: { + UnkStruct_027e0cec *data = data_027e0cec; + for (ActorUnkSZKU_204 *playerGet = this->mUnk_204; playerGet != this->mUnk_204 + ARRAY_LEN(this->mUnk_204); + ++playerGet) { + data->func_ov000_020a0110(playerGet); + } + break; + } + default: + if (this->func_ov017_020beeec(0x4000)) { + VecFx32 vec = this->mPos; + vec.y += FLOAT_TO_FX32(0.5f); + UnkStruct_027e0cec *data = data_027e0cec; + for (ActorUnkSZKU_204 *playerGet = this->mUnk_204; playerGet != this->mUnk_204 + ARRAY_LEN(this->mUnk_204); + ++playerGet) { + data->func_ov000_020a0140(playerGet, &vec); + } + break; + } + UnkStruct_027e0cec *data = data_027e0cec; + for (ActorUnkSZKU_204 *playerGet = this->mUnk_204; playerGet != this->mUnk_204 + ARRAY_LEN(this->mUnk_204); + ++playerGet) { + data->func_ov000_020a0110(playerGet); + } + break; + } +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215f92c() { + if (this->mState != ActorUnkSZKUState_8 && !this->func_ov017_020beeec(0x4000)) { + return; + } + + // weird + + if (GET_FLAG(this->mFlags, ActorFlag_5)) { + this->func_ov071_0215f80c(); + } + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + + if ((this->mUnk_44 || this->mVel.y >= 0) || this->mState == ActorUnkSZKUState_4) { + UnkStruct_ov071_0215f92c sp4; + this->func_ov000_02098910(&sp4, 0x10); + if (sp4.mUnk_04 & 1) { + this->func_ov071_0215fc54(); + } else if (this->mUnk_46 & 1) { + Vec2bCpp sp0; + + UnkStruct_027e0cd8_0C_Base *temp_r7 = data_027e0cd8->mUnk_0C; + func_01ffedac(&sp0, &this->mPos); + if (!temp_r7->func_ov000_02082008(&sp0)) { + this->func_ov071_0215fc54(); + return; + } + VecFx32_Copy(&this->mPos, &this->mUnk_094); + this->mUnk_094.x = func_ov000_02080068(sp0.x); + this->mUnk_094.y = func_ov000_02080080(sp0.y); + if (!this->mUnk_1B9) { + data_027e09a8->func_ov000_02071b30(0x98BF, &this->mPos, 0x0); + } else { + data_027e09a8->func_ov000_02071b30(0x98BE, &this->mPos, 0x0); + this->mUnk_1B9 = true; + } + fx32 temp_r1 = this->mVel.y; + bool temp_gt = temp_r1 > -0x800; + this->mVel.y = FLOAT_TO_FX32(0.0f); + if (!temp_gt) { + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.25f), FLOAT_TO_FX32(0.0f), &this->mVel); + } else if (temp_r1 >= 0xFFFFFE66) { + this->func_ov071_0215fd04(); + } else { + fx32 temp_r1_2 = (0 - temp_r1) * 3; + VecFx32_Init(FLOAT_TO_FX32(0.0f), (temp_r1_2 + ((u32) (temp_r1_2 >> 1) >> 0x1E)) >> 2, FLOAT_TO_FX32(0.0f), + &this->mVel); + } + } + if (this->mState == ActorUnkSZKUState_4 && this->mUnk_46 & 0x9F) { + this->func_ov071_0215f80c(); + } + } + + this->func_ov000_020989e0(); + if (!(this->mUnk_168.mUnk_08 & 0x3FFFF)) { + return; + } + switch (this->mUnk_168.mUnk_1C) { + case 4: + if (!data_027e0d38->func_ov031_020d9c04(0x1, 0x0, 0x1)) { + break; + } + this->func_ov071_0215fdd4(); + break; + case 16: + if (this->mUnk_168.mUnk_0C.type_index == 0x100 && this->mUnk_168.mUnk_0C.unk_id == 0) { + this->func_ov071_0215fd80(); + break; + } + break; + default: + break; + } +} + +void ActorUnkSZKU::func_ov071_0215fc0c() { + UnkStruct_027e0cec *data = data_027e0cec; + for (ActorUnkSZKU_204 *playerGet = this->mUnk_204; playerGet != this->mUnk_204 + ARRAY_LEN(this->mUnk_204); ++playerGet) { + data->func_ov000_020a0110(playerGet); + } + this->func_ov071_0215fd80(); +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fc54() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_0); + + this->mUnk_18D = false; + + this->func_ov017_020bfa50(&this->mUnk_094, 0x14); + + this->mUnk_4A[0] = 0x0; + this->mUnk_44 = 0x1; + + this->mUnk_160 = data_ov071_02164cd8; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fca4() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_1); + + this->mUnk_52 = 0xFFFF; + this->mUnk_50 = 0x0000; + + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.25f), FLOAT_TO_FX32(0.0f), &this->mVel); + + this->mUnk_4A[0] = 0x0; + this->mUnk_44 = 0xA3; + + this->mUnk_160 = data_ov071_02164ce0; + this->mUnk_1B9 = 0x0; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fd04() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_2); + + bool temp_r0 = this->mUnk_5C.mUnk_0F; + bool var_z = false; + if (temp_r0) { + var_z = !this->mUnk_18C; + } + this->mUnk_4A[0] = 0x1; + if (!var_z) { + var_z = !this->mUnk_18D; + } + + this->mUnk_52 = 0xFFFF; + this->mUnk_50 = 0x0000; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + this->mUnk_44 = 0; + if (var_z) { + this->mUnk_18C = false; + } + this->mUnk_18D = true; + this->mUnk_160 = data_ov071_02164ce8; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fd80() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_3); + + this->mUnk_52 = 0xFFFF; + this->mUnk_50 = 0x0000; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + + this->mUnk_4A[0] = 0x0; + this->mUnk_44 = 0x0; + + this->mUnk_160 = data_ov071_02164cf0; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fdd4() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_4); + + this->mUnk_52 = 0xFFFF; + this->mUnk_50 = 0x0000; + + this->mUnk_4A[0] = 0x0; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + + this->vfunc_40(); + + this->mUnk_44 = (s16) this->mUnk_44 & ~0x20; + this->mUnk_168.func_ov000_02097bec(); + + this->mUnk_44 = 0x9F; + this->mUnk_46 = 0x00; + + this->mUnk_160 = data_ov071_02164cf8; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fe54() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_6); + this->mUnk_2C = 0x0; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + + this->mUnk_160 = data_ov071_02164d00; +} + +// non-matching +void ActorUnkSZKU::func_ov071_0215fe94() { + this->func_ov071_0215f7f4(ActorUnkSZKUState_7); + this->mUnk_2C = 0x0; + VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel); + + this->mUnk_160 = data_ov071_02164d08; +} + +void ActorUnkSZKU::func_ov071_0215fed4() { + this->IsTimerOut(); + this->func_ov000_02098838(); + this->mUnk_3C = &this->mUnk_168; +} + +void ActorUnkSZKU::func_ov071_0215ff08() { + this->IsTimerOut(); + this->mAngle += 0x222; // TODO DEG_ANGLE + this->mUnk_3C = &this->mUnk_168; +} + +void ActorUnkSZKU::func_ov071_0215ff3c() { + this->IsTimerOut(); if (!data_027e09b8->func_01ffd420()) { if (data_027e0d34->TryItemGive(this->mItemId)) { @@ -52,15 +421,52 @@ void ActorUnkSZKU::func_ov071_0215ff3c(void) { } } -void ActorUnkSZKU::func_ov071_0215ffb8(void) {} -void ActorUnkSZKU::func_ov071_0215ffbc(void) {} -void ActorUnkSZKU::func_ov071_02160000(void) {} -void ActorUnkSZKU::func_ov071_02160038(void) {} -void ActorUnkSZKU::func_ov071_02160078(void) {} -void ActorUnkSZKU::func_ov071_02160094(void) {} -void ActorUnkSZKU::func_ov071_021600b8(void) {} -void ActorUnkSZKU::func_ov071_021600d4(void) {} -void ActorUnkSZKU::func_ov071_021600e8(void) {} +void ActorUnkSZKU::func_ov071_0215ffb8() {} + +void ActorUnkSZKU::func_ov071_0215ffbc() { + UnkActor_ov071_0215ffbc *actor = (UnkActor_ov071_0215ffbc *) gpActorManager->func_01fff3b4(this->mUnk_190); + if (actor == NULL) { + this->func_ov071_0215fca4(); + return; + } + func_01ffb714(&actor->mUnk_E8, &this->mPos, &this->mVel); +} + +ActorUnkSZKU_194::ActorUnkSZKU_194(ActorUnkSZKU *param1) : + Actor_C4(param1) { + this->mUnk_20 = param1; + this->mUnk_04 = 0x1; +} + +bool ActorUnkSZKU_194::vfunc_00(ActorRef ref, unk32 param2) { + if (param2 != 0x0) { + ActorUnkSZKU *actor = this->GetActorPtr(); + actor->mUnk_190 = ref; + actor->func_ov071_0215fe54(); + } + return this->Actor_C4::vfunc_00(ref, param2); +} + +bool ActorUnkSZKU_194::vfunc_04() { + this->GetActorPtr()->func_ov071_0215fe94(); + return this->Actor_C4::vfunc_04(); +} + +void ActorUnkSZKU_194::vfunc_0C(unk32 param1) { + this->GetActorPtr()->func_ov071_0215fca4(); + return this->Actor_C4::vfunc_0C(param1); +} + +void ActorUnkSZKU_194::vfunc_08() { + this->GetActorPtr()->func_ov071_0215fc0c(); + return this->Actor_C4::vfunc_08(); +} + +ActorUnkSZKU_204::ActorUnkSZKU_204() : + UnkStruct_PlayerGet_ec(NULL), + mUnk_04(-0x1), + mUnk_08(0x0) {} ActorUnkSZKU::~ActorUnkSZKU() {} ActorProfileUnkSZKU::~ActorProfileUnkSZKU() {} +ActorUnkSKZU_104::~ActorUnkSKZU_104() {}