summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2026-05-09 16:31:17 +0200
committerGitHub <noreply@github.com>2026-05-09 16:31:17 +0200
commitd02c870d1dbe8c9b5e8b3acbb3b5bfff53ad8d03 (patch)
tree6d3965c15174bb66f5892fb5e3b127eba7c66ddc
parente9ffe114a97fd3bf563a8c346f2ef2dc5e88f9fd (diff)
ActorCharacterBase OK (#161)
* ActorCharacterBase OK * Fix broken matches
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt2
-rw-r--r--config/eur/arm9/overlays/ov014/delinks.txt2
-rw-r--r--config/eur/arm9/overlays/ov014/relocs.txt10
-rw-r--r--config/eur/arm9/overlays/ov014/symbols.txt24
-rw-r--r--config/eur/arm9/symbols.txt4
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt2
-rw-r--r--config/usa/arm9/overlays/ov014/delinks.txt2
-rw-r--r--config/usa/arm9/overlays/ov014/relocs.txt10
-rw-r--r--config/usa/arm9/overlays/ov014/symbols.txt24
-rw-r--r--config/usa/arm9/symbols.txt4
-rw-r--r--include/Actor/Actor.hpp4
-rw-r--r--include/Actor/Character/ActorCharacter.hpp26
-rw-r--r--include/Message/MessageManager.hpp2
-rw-r--r--include/Unknown/UnkStruct_02037750.hpp6
-rw-r--r--include/Unknown/UnkStruct_ov000_020d18f4.hpp2
-rw-r--r--src/00_Core/Actor/Actor.cpp2
-rw-r--r--src/14_Land/Actor/Character/ActorCharacterBase.cpp226
-rw-r--r--src/Main/Message/MessageManager.cpp2
-rw-r--r--src/Main/Unknown/UnkStruct_02037750.cpp4
19 files changed, 268 insertions, 90 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index f6f84a60..b0efe540 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -2751,7 +2751,7 @@ _ZN5Actor4GrabEv kind:function(arm,size=0x1c) addr:0x020c18a8
_ZN5Actor4DropEP5Vec3p kind:function(arm,size=0x38) addr:0x020c18c4
_ZN5Actor8vfunc_60Ev kind:function(arm,size=0x8) addr:0x020c18fc
_ZN5Actor8vfunc_64Ev kind:function(arm,size=0x4) addr:0x020c1904
-_ZN5Actor10SetUnk_11cEc kind:function(arm,size=0x8) addr:0x020c1908
+_ZN5Actor10SetUnk_11cEb kind:function(arm,size=0x8) addr:0x020c1908
_ZN5Actor8vfunc_68Ev kind:function(arm,size=0x4) addr:0x020c1910
_ZN5Actor8vfunc_6cEv kind:function(arm,size=0x8) addr:0x020c1914
_ZN5Actor8vfunc_70Ev kind:function(arm,size=0x8) addr:0x020c191c
diff --git a/config/eur/arm9/overlays/ov014/delinks.txt b/config/eur/arm9/overlays/ov014/delinks.txt
index fb52d807..dd2dfac8 100644
--- a/config/eur/arm9/overlays/ov014/delinks.txt
+++ b/config/eur/arm9/overlays/ov014/delinks.txt
@@ -22,7 +22,9 @@ src/14_Land/Actor/Player/ActorRefill.cpp:
.bss start:0x0215af94 end:0x0215b034
src/14_Land/Actor/Character/ActorCharacterBase.cpp:
+ complete
.text start:0x021447f8 end:0x02144d94
+ .data start:0x021594b8 end:0x021595ac
src/14_Land/Actor/Character/ActorCharacter.cpp:
.text start:0x02144d94 end:0x02145a74
diff --git a/config/eur/arm9/overlays/ov014/relocs.txt b/config/eur/arm9/overlays/ov014/relocs.txt
index a64144fd..49babc8e 100644
--- a/config/eur/arm9/overlays/ov014/relocs.txt
+++ b/config/eur/arm9/overlays/ov014/relocs.txt
@@ -4513,22 +4513,22 @@ from:0x021447e4 kind:arm_call_thumb to:0x020a95ec module:overlay(0)
from:0x021447ec kind:arm_call to:0x0202ea0c module:main
from:0x02144908 kind:arm_call to:0x020c1554 module:overlay(0)
from:0x0214491c kind:arm_call to:0x020d18f4 module:overlay(0)
-from:0x02144948 kind:load to:0x021594c0 module:overlay(14)
+from:0x02144948 kind:load to:0x021594b8 module:overlay(14) add:0x8
from:0x02144970 kind:arm_call to:0x02036d4c module:main
from:0x02144978 kind:arm_call to:0x020d1980 module:overlay(0)
from:0x02144980 kind:arm_call to:0x020c1730 module:overlay(0)
-from:0x0214498c kind:load to:0x021594c0 module:overlay(14)
+from:0x0214498c kind:load to:0x021594b8 module:overlay(14) add:0x8
from:0x02144990 kind:load to:0x027e0c68 module:dtcm
from:0x021449b8 kind:arm_call to:0x02036d4c module:main
from:0x021449c0 kind:arm_call to:0x020d1980 module:overlay(0)
from:0x021449c8 kind:arm_call to:0x020c1730 module:overlay(0)
from:0x021449d0 kind:arm_call to:0x0202ea0c module:main
-from:0x021449dc kind:load to:0x021594c0 module:overlay(14)
+from:0x021449dc kind:load to:0x021594b8 module:overlay(14) add:0x8
from:0x021449e0 kind:load to:0x027e0c68 module:dtcm
from:0x02144a08 kind:arm_call to:0x02036d4c module:main
from:0x02144a10 kind:arm_call to:0x020d1980 module:overlay(0)
from:0x02144a18 kind:arm_call to:0x020c1730 module:overlay(0)
-from:0x02144a24 kind:load to:0x021594c0 module:overlay(14)
+from:0x02144a24 kind:load to:0x021594b8 module:overlay(14) add:0x8
from:0x02144a28 kind:load to:0x027e0c68 module:dtcm
from:0x02144a7c kind:load to:0x021447f8 module:overlay(14)
from:0x02144a80 kind:load to:0x0214480c module:overlay(14)
@@ -4574,7 +4574,7 @@ from:0x02144f44 kind:arm_call_thumb to:0x020c0c08 module:overlay(0)
from:0x02144f94 kind:arm_call to:0x020c66bc module:overlay(0)
from:0x02144fd4 kind:arm_call to:0x020078f4 module:main
from:0x02144fe8 kind:arm_call to:0x020078f4 module:main
-from:0x02144ff8 kind:load to:0x021595b4 module:overlay(14)
+from:0x02144ff8 kind:load to:0x021595ac module:overlay(14) add:0x8
from:0x02144ffc kind:load to:0x021596cc module:overlay(14)
from:0x02145000 kind:load to:0x020a9b6d module:overlay(0)
from:0x02145004 kind:load to:0x02144eb0 module:overlay(14)
diff --git a/config/eur/arm9/overlays/ov014/symbols.txt b/config/eur/arm9/overlays/ov014/symbols.txt
index a5b3a461..11661c0b 100644
--- a/config/eur/arm9/overlays/ov014/symbols.txt
+++ b/config/eur/arm9/overlays/ov014/symbols.txt
@@ -1061,16 +1061,16 @@ func_ov014_02144750 kind:function(arm,size=0x38) addr:0x02144750
func_ov014_02144788 kind:function(arm,size=0x38) addr:0x02144788
func_ov014_021447c0 kind:function(arm,size=0x1c) addr:0x021447c0
func_ov014_021447dc kind:function(arm,size=0x1c) addr:0x021447dc
-_Z19func_ov014_021447f8P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x021447f8
-_Z19func_ov014_0214480cP18ActorCharacterBase kind:function(arm,size=0x14) addr:0x0214480c
-_Z19func_ov014_02144820P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x02144820
-_Z19func_ov014_02144834P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x02144834
-_Z19func_ov014_02144848PiiP18ActorCharacterBase kind:function(arm,size=0x8c) addr:0x02144848
-_ZN18ActorCharacterBase8vfunc_d8Ev kind:function(arm,size=0x8) addr:0x021448d4
-_ZN18ActorCharacterBase8vfunc_dcEv kind:function(arm,size=0x8) addr:0x021448dc
-_ZN18ActorCharacterBase8vfunc_e0Ev kind:function(arm,size=0x8) addr:0x021448e4
-_ZN18ActorCharacterBase8vfunc_e4Ev kind:function(arm,size=0x8) addr:0x021448ec
-_ZN18ActorCharacterBase8vfunc_e8Ev kind:function(arm,size=0xc) addr:0x021448f4
+_Z19func_ov014_021447f8Pvi kind:function(arm,size=0x14) addr:0x021447f8 local
+_Z19func_ov014_0214480cPvi kind:function(arm,size=0x14) addr:0x0214480c local
+_Z19func_ov014_02144820Pvi kind:function(arm,size=0x14) addr:0x02144820 local
+_Z19func_ov014_02144834Pvi kind:function(arm,size=0x14) addr:0x02144834 local
+_Z19func_ov014_0214484824UnkStruct_ov014_02144848P18ActorCharacterBase kind:function(arm,size=0x8c) addr:0x02144848 local
+_ZN18ActorCharacterBase8vfunc_d8Ei kind:function(arm,size=0x8) addr:0x021448d4
+_ZN18ActorCharacterBase8vfunc_dcEi kind:function(arm,size=0x8) addr:0x021448dc
+_ZN18ActorCharacterBase8vfunc_e0Ei kind:function(arm,size=0x8) addr:0x021448e4
+_ZN18ActorCharacterBase8vfunc_e4Ei kind:function(arm,size=0x8) addr:0x021448ec
+_ZN18ActorCharacterBase8vfunc_e8Ett kind:function(arm,size=0xc) addr:0x021448f4
_ZN18ActorCharacterBaseC2Ev kind:function(arm,size=0x4c) addr:0x02144900
_ZN18ActorCharacterBaseD1Ev kind:function(arm,size=0x48) addr:0x0214494c
_ZN18ActorCharacterBaseD0Ev kind:function(arm,size=0x50) addr:0x02144994
@@ -2077,8 +2077,8 @@ data_ov014_021593d8 kind:data(any) addr:0x021593d8
data_ov014_021593dc kind:data(any) addr:0x021593dc
data_ov014_02159408 kind:data(any) addr:0x02159408
data_ov014_02159478 kind:data(any) addr:0x02159478
-data_ov014_021594c0 kind:data(any) addr:0x021594c0
-data_ov014_021595b4 kind:data(any) addr:0x021595b4
+_ZTV18ActorCharacterBase kind:data(any) addr:0x021594b8
+_ZTV14ActorCharacter kind:data(any) addr:0x021595ac
data_ov014_021596b0 kind:data(any) addr:0x021596b0
data_ov014_021596b8 kind:data(any) addr:0x021596b8
data_ov014_021596bc kind:data(any) addr:0x021596bc
diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt
index ce7f52fd..7a47943d 100644
--- a/config/eur/arm9/symbols.txt
+++ b/config/eur/arm9/symbols.txt
@@ -1807,7 +1807,7 @@ _ZN14MessageManager13func_0203690cEi kind:function(arm,size=0x2b0) addr:0x020369
_ZN14MessageManager13func_02036bbcEv kind:function(arm,size=0x94) addr:0x02036bbc
_ZN14MessageManager13func_02036c50EPt kind:function(arm,size=0x54) addr:0x02036c50
_ZN14MessageManager13func_02036ca4Ei kind:function(arm,size=0x40) addr:0x02036ca4
-_ZN14MessageManager13func_02036ce4EP18UnkStruct_020386d8i kind:function(arm,size=0x4c) addr:0x02036ce4
+_ZN14MessageManager13func_02036ce4EP18UnkStruct_02037750i kind:function(arm,size=0x4c) addr:0x02036ce4
_ZN14MessageManager13func_02036d30EP18UnkStruct_02037750 kind:function(arm,size=0x1c) addr:0x02036d30
_ZN14MessageManager13func_02036d4cEP18UnkStruct_02037750 kind:function(arm,size=0x20) addr:0x02036d4c
_ZN14MessageManager13func_02036d6cEv kind:function(arm,size=0x3c) addr:0x02036d6c
@@ -1837,7 +1837,7 @@ func_02037604 kind:function(arm,size=0x24) addr:0x02037604
func_02037628 kind:function(arm,size=0x98) addr:0x02037628
func_020376c0 kind:function(arm,size=0x64) addr:0x020376c0
func_02037724 kind:function(arm,size=0x2c) addr:0x02037724
-_ZN18UnkStruct_02037750C2Eii kind:function(arm,size=0x44) addr:0x02037750
+_ZN18UnkStruct_02037750C2EiPv kind:function(arm,size=0x44) addr:0x02037750
_ZN18UnkStruct_02037750D1Ev kind:function(arm,size=0x38) addr:0x02037794
_ZN18UnkStruct_02037750D0Ev kind:function(arm,size=0x40) addr:0x020377cc
_ZN18UnkStruct_02037750D2Ev kind:function(arm,size=0x38) addr:0x0203780c
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index dc43fb71..bd7c9269 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -2751,7 +2751,7 @@ _ZN5Actor4GrabEv kind:function(arm,size=0x1c) addr:0x020c1848
_ZN5Actor4DropEP5Vec3p kind:function(arm,size=0x38) addr:0x020c1864
_ZN5Actor8vfunc_60Ev kind:function(arm,size=0x8) addr:0x020c189c
_ZN5Actor8vfunc_64Ev kind:function(arm,size=0x4) addr:0x020c18a4
-_ZN5Actor10SetUnk_11cEc kind:function(arm,size=0x8) addr:0x020c18a8
+_ZN5Actor10SetUnk_11cEb kind:function(arm,size=0x8) addr:0x020c18a8
_ZN5Actor8vfunc_68Ev kind:function(arm,size=0x4) addr:0x020c18b0
_ZN5Actor8vfunc_6cEv kind:function(arm,size=0x8) addr:0x020c18b4
_ZN5Actor8vfunc_70Ev kind:function(arm,size=0x8) addr:0x020c18bc
diff --git a/config/usa/arm9/overlays/ov014/delinks.txt b/config/usa/arm9/overlays/ov014/delinks.txt
index 32dedf81..2bd19328 100644
--- a/config/usa/arm9/overlays/ov014/delinks.txt
+++ b/config/usa/arm9/overlays/ov014/delinks.txt
@@ -22,7 +22,9 @@ src/14_Land/Actor/Player/ActorRefill.cpp:
.bss start:0x0215aef4 end:0x0215af94
src/14_Land/Actor/Character/ActorCharacterBase.cpp:
+ complete
.text start:0x02144754 end:0x02144cf0
+ .data start:0x02159418 end:0x0215950c
src/14_Land/Actor/Character/ActorCharacter.cpp:
.text start:0x02144cf0 end:0x021459d0
diff --git a/config/usa/arm9/overlays/ov014/relocs.txt b/config/usa/arm9/overlays/ov014/relocs.txt
index 05c01539..3c9e2649 100644
--- a/config/usa/arm9/overlays/ov014/relocs.txt
+++ b/config/usa/arm9/overlays/ov014/relocs.txt
@@ -4513,22 +4513,22 @@ from:0x02144740 kind:arm_call_thumb to:0x020a958c module:overlay(0)
from:0x02144748 kind:arm_call to:0x0202ea08 module:main
from:0x02144864 kind:arm_call to:0x020c14f4 module:overlay(0)
from:0x02144878 kind:arm_call to:0x020d1894 module:overlay(0)
-from:0x021448a4 kind:load to:0x02159420 module:overlay(14)
+from:0x021448a4 kind:load to:0x02159418 module:overlay(14) add:0x8
from:0x021448cc kind:arm_call to:0x02036d08 module:main
from:0x021448d4 kind:arm_call to:0x020d1920 module:overlay(0)
from:0x021448dc kind:arm_call to:0x020c16d0 module:overlay(0)
-from:0x021448e8 kind:load to:0x02159420 module:overlay(14)
+from:0x021448e8 kind:load to:0x02159418 module:overlay(14) add:0x8
from:0x021448ec kind:load to:0x027e0c68 module:dtcm
from:0x02144914 kind:arm_call to:0x02036d08 module:main
from:0x0214491c kind:arm_call to:0x020d1920 module:overlay(0)
from:0x02144924 kind:arm_call to:0x020c16d0 module:overlay(0)
from:0x0214492c kind:arm_call to:0x0202ea08 module:main
-from:0x02144938 kind:load to:0x02159420 module:overlay(14)
+from:0x02144938 kind:load to:0x02159418 module:overlay(14) add:0x8
from:0x0214493c kind:load to:0x027e0c68 module:dtcm
from:0x02144964 kind:arm_call to:0x02036d08 module:main
from:0x0214496c kind:arm_call to:0x020d1920 module:overlay(0)
from:0x02144974 kind:arm_call to:0x020c16d0 module:overlay(0)
-from:0x02144980 kind:load to:0x02159420 module:overlay(14)
+from:0x02144980 kind:load to:0x02159418 module:overlay(14) add:0x8
from:0x02144984 kind:load to:0x027e0c68 module:dtcm
from:0x021449d8 kind:load to:0x02144754 module:overlay(14)
from:0x021449dc kind:load to:0x02144768 module:overlay(14)
@@ -4574,7 +4574,7 @@ from:0x02144ea0 kind:arm_call_thumb to:0x020c0ba8 module:overlay(0)
from:0x02144ef0 kind:arm_call to:0x020c665c module:overlay(0)
from:0x02144f30 kind:arm_call to:0x020078f4 module:main
from:0x02144f44 kind:arm_call to:0x020078f4 module:main
-from:0x02144f54 kind:load to:0x02159514 module:overlay(14)
+from:0x02144f54 kind:load to:0x0215950c module:overlay(14) add:0x8
from:0x02144f58 kind:load to:0x0215962c module:overlay(14)
from:0x02144f5c kind:load to:0x020a9b0d module:overlay(0)
from:0x02144f60 kind:load to:0x02144e0c module:overlay(14)
diff --git a/config/usa/arm9/overlays/ov014/symbols.txt b/config/usa/arm9/overlays/ov014/symbols.txt
index 735d3e12..297b3b00 100644
--- a/config/usa/arm9/overlays/ov014/symbols.txt
+++ b/config/usa/arm9/overlays/ov014/symbols.txt
@@ -1061,16 +1061,16 @@ func_ov014_02144750 kind:function(arm,size=0x38) addr:0x021446ac
func_ov014_02144788 kind:function(arm,size=0x38) addr:0x021446e4
func_ov014_021447c0 kind:function(arm,size=0x1c) addr:0x0214471c
func_ov014_021447dc kind:function(arm,size=0x1c) addr:0x02144738
-_Z19func_ov014_021447f8P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x02144754
-_Z19func_ov014_0214480cP18ActorCharacterBase kind:function(arm,size=0x14) addr:0x02144768
-_Z19func_ov014_02144820P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x0214477c
-_Z19func_ov014_02144834P18ActorCharacterBase kind:function(arm,size=0x14) addr:0x02144790
-_Z19func_ov014_02144848PiiP18ActorCharacterBase kind:function(arm,size=0x8c) addr:0x021447a4
-_ZN18ActorCharacterBase8vfunc_d8Ev kind:function(arm,size=0x8) addr:0x02144830
-_ZN18ActorCharacterBase8vfunc_dcEv kind:function(arm,size=0x8) addr:0x02144838
-_ZN18ActorCharacterBase8vfunc_e0Ev kind:function(arm,size=0x8) addr:0x02144840
-_ZN18ActorCharacterBase8vfunc_e4Ev kind:function(arm,size=0x8) addr:0x02144848
-_ZN18ActorCharacterBase8vfunc_e8Ev kind:function(arm,size=0xc) addr:0x02144850
+_Z19func_ov014_021447f8Pvi kind:function(arm,size=0x14) addr:0x02144754 local
+_Z19func_ov014_0214480cPvi kind:function(arm,size=0x14) addr:0x02144768 local
+_Z19func_ov014_02144820Pvi kind:function(arm,size=0x14) addr:0x0214477c local
+_Z19func_ov014_02144834Pvi kind:function(arm,size=0x14) addr:0x02144790 local
+_Z19func_ov014_0214484824UnkStruct_ov014_02144848P18ActorCharacterBase kind:function(arm,size=0x8c) addr:0x021447a4 local
+_ZN18ActorCharacterBase8vfunc_d8Ei kind:function(arm,size=0x8) addr:0x02144830
+_ZN18ActorCharacterBase8vfunc_dcEi kind:function(arm,size=0x8) addr:0x02144838
+_ZN18ActorCharacterBase8vfunc_e0Ei kind:function(arm,size=0x8) addr:0x02144840
+_ZN18ActorCharacterBase8vfunc_e4Ei kind:function(arm,size=0x8) addr:0x02144848
+_ZN18ActorCharacterBase8vfunc_e8Ett kind:function(arm,size=0xc) addr:0x02144850
_ZN18ActorCharacterBaseC2Ev kind:function(arm,size=0x4c) addr:0x0214485c
_ZN18ActorCharacterBaseD1Ev kind:function(arm,size=0x48) addr:0x021448a8
_ZN18ActorCharacterBaseD0Ev kind:function(arm,size=0x50) addr:0x021448f0
@@ -2077,8 +2077,8 @@ data_ov014_021593d8 kind:data(any) addr:0x02159338
data_ov014_021593dc kind:data(any) addr:0x0215933c
data_ov014_02159408 kind:data(any) addr:0x02159368
data_ov014_02159478 kind:data(any) addr:0x021593d8
-data_ov014_021594c0 kind:data(any) addr:0x02159420
-data_ov014_021595b4 kind:data(any) addr:0x02159514
+_ZTV18ActorCharacterBase kind:data(any) addr:0x02159418
+_ZTV14ActorCharacter kind:data(any) addr:0x0215950c
data_ov014_021596b0 kind:data(any) addr:0x02159610
data_ov014_021596b8 kind:data(any) addr:0x02159618
data_ov014_021596bc kind:data(any) addr:0x0215961c
diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt
index d85e0d19..9e3cbdd4 100644
--- a/config/usa/arm9/symbols.txt
+++ b/config/usa/arm9/symbols.txt
@@ -1807,7 +1807,7 @@ _ZN14MessageManager13func_0203690cEi kind:function(arm,size=0x2b0) addr:0x020368
_ZN14MessageManager13func_02036bbcEv kind:function(arm,size=0x94) addr:0x02036b78
_ZN14MessageManager13func_02036c50EPt kind:function(arm,size=0x54) addr:0x02036c0c
_ZN14MessageManager13func_02036ca4Ei kind:function(arm,size=0x40) addr:0x02036c60
-_ZN14MessageManager13func_02036ce4EP18UnkStruct_020386d8i kind:function(arm,size=0x4c) addr:0x02036ca0
+_ZN14MessageManager13func_02036ce4EP18UnkStruct_02037750i kind:function(arm,size=0x4c) addr:0x02036ca0
_ZN14MessageManager13func_02036d30EP18UnkStruct_02037750 kind:function(arm,size=0x1c) addr:0x02036cec
_ZN14MessageManager13func_02036d4cEP18UnkStruct_02037750 kind:function(arm,size=0x20) addr:0x02036d08
_ZN14MessageManager13func_02036d6cEv kind:function(arm,size=0x3c) addr:0x02036d28
@@ -1837,7 +1837,7 @@ func_02037604 kind:function(arm,size=0x24) addr:0x020375c0
func_02037628 kind:function(arm,size=0x98) addr:0x020375e4
func_020376c0 kind:function(arm,size=0x64) addr:0x0203767c
func_02037724 kind:function(arm,size=0x2c) addr:0x020376e0
-_ZN18UnkStruct_02037750C2Eii kind:function(arm,size=0x44) addr:0x0203770c
+_ZN18UnkStruct_02037750C2EiPv kind:function(arm,size=0x44) addr:0x0203770c
_ZN18UnkStruct_02037750D1Ev kind:function(arm,size=0x38) addr:0x02037750
_ZN18UnkStruct_02037750D0Ev kind:function(arm,size=0x40) addr:0x02037788
_ZN18UnkStruct_02037750D2Ev kind:function(arm,size=0x38) addr:0x020377c8
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index 2ce19ac8..476d08f6 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -152,7 +152,7 @@ public:
/* 119 */ u8 mUnk_119;
/* 11a */ bool mVisible;
/* 11b */ bool mGrabbed;
- /* 11c */ unk8 mUnk_11c;
+ /* 11c */ bool mUnk_11c;
/* 11d */ bool mUnk_11d;
/* 11e */ q4 mYOffset;
/* 120 */ s16 mUnk_120;
@@ -227,7 +227,7 @@ public:
unk8 func_ov00_020c1788();
void SetUnk_129(bool value);
- void SetUnk_11c(unk8 value);
+ void SetUnk_11c(bool value);
bool func_ov00_020c195c();
bool func_ov00_020c198c();
void KillPickupItemActors();
diff --git a/include/Actor/Character/ActorCharacter.hpp b/include/Actor/Character/ActorCharacter.hpp
index f2248628..497b0699 100644
--- a/include/Actor/Character/ActorCharacter.hpp
+++ b/include/Actor/Character/ActorCharacter.hpp
@@ -10,17 +10,25 @@
#include "Unknown/UnkStruct_ov000_020c5c2c.hpp"
#include "Unknown/UnkStruct_ov000_020d18f4.hpp"
+struct UnkStruct_ov014_021448f4 {
+ /* 00 */ unk32 mUnk_00;
+ /* 04 */
+
+ UnkStruct_ov014_021448f4() :
+ mUnk_00(0) {}
+};
+
class ActorCharacterBase : public Actor {
public:
/* 000 (base) */
/* 158 */ UnkStruct_ov000_020d18f4 mUnk_158;
/* 1b4 */ unk32 mUnk_1b4;
- /* 1b8 */ unk32 mUnk_1b8;
+ /* 1b8 */ unk32 (*mUnk_1b8)(unk32);
/* 1bc */ unk32 mUnk_1bc;
- /* 1c0 */ unk8 mUnk_1c0;
- /* 1c1 */ unk8 mUnk_1c1;
+ /* 1c0 */ bool mUnk_1c0;
+ /* 1c1 */ bool mUnk_1c1;
/* 1c2 */ unk8 mUnk_1c2;
- /* 1c3 */ unk8 mUnk_1c3;
+ /* 1c3 */ bool mUnk_1c3;
/* 1c4 */
/* 00 */ virtual ~ActorCharacterBase() override;
@@ -39,11 +47,11 @@ public:
/* cc */ virtual void vfunc_cc();
/* d0 */ virtual void vfunc_d0();
/* d4 */ virtual unk32 vfunc_d4();
- /* d8 */ virtual unk32 vfunc_d8();
- /* dc */ virtual unk32 vfunc_dc();
- /* e0 */ virtual unk32 vfunc_e0();
- /* e4 */ virtual unk32 vfunc_e4();
- /* e8 */ virtual void vfunc_e8();
+ /* d8 */ virtual unk32 vfunc_d8(unk32 param1);
+ /* dc */ virtual unk32 vfunc_dc(unk32 param1);
+ /* e0 */ virtual unk32 vfunc_e0(unk32 param1);
+ /* e4 */ virtual unk32 vfunc_e4(unk32 param1);
+ /* e8 */ virtual UnkStruct_ov014_021448f4 vfunc_e8(u16 param2, u16 param3);
/* ec */
ActorCharacterBase();
diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp
index 9cae73d7..bcce36f6 100644
--- a/include/Message/MessageManager.hpp
+++ b/include/Message/MessageManager.hpp
@@ -60,7 +60,7 @@ public:
void func_02036bbc(void);
void func_02036c50(u16 *param_2);
void func_02036ca4(unk32 param_2);
- bool func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3);
+ bool func_02036ce4(UnkStruct_02037750 *param_2, unk32 param_3);
bool func_02036d30(UnkStruct_02037750 *param_2);
bool func_02036d4c(UnkStruct_02037750 *param_2);
void func_02036d6c(void);
diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp
index 493ca6b0..e3245329 100644
--- a/include/Unknown/UnkStruct_02037750.hpp
+++ b/include/Unknown/UnkStruct_02037750.hpp
@@ -9,14 +9,14 @@
class LinkStateInteract;
class UnkStruct_020397f8;
-typedef unk32 (*UnkStruct_02037750_Callback1)(unk32);
+typedef unk32 (*UnkStruct_02037750_Callback1)(void *, unk32);
// astruct_14
class UnkStruct_02037750 : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ UnkStruct_02037750_Callback1 mUnk_04[0x4];
- /* 14 */ unk32 mUnk_14;
+ /* 14 */ void *mUnk_14;
/* 18 */ u32 mUnk_18;
/* 1c */ u8 mUnk_1c;
/* 1d */ u8 mUnk_1d;
@@ -37,7 +37,7 @@ public:
/* 30 */ virtual bool vfunc_30();
/* 34 */
- UnkStruct_02037750(unk32 param1, unk32 param2);
+ UnkStruct_02037750(unk32 param1, void *param2);
static LinkStateInteract *GetLinkStateInteract();
unk32 func_020385d0(s32 param1, u8 *param2);
};
diff --git a/include/Unknown/UnkStruct_ov000_020d18f4.hpp b/include/Unknown/UnkStruct_ov000_020d18f4.hpp
index ad2b80df..39442c57 100644
--- a/include/Unknown/UnkStruct_ov000_020d18f4.hpp
+++ b/include/Unknown/UnkStruct_ov000_020d18f4.hpp
@@ -13,7 +13,7 @@ public:
/* 28 */ unk8 mUnk_28[0x18];
/* 40 */ void *mUnk_40;
/* 44 */ unk32 mUnk_44;
- /* 48 */ unk32 mUnk_48;
+ /* 48 */ void *mUnk_48;
/* 4c */ unk32 mUnk_4c;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index 32915a89..19dbe4f3 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -225,7 +225,7 @@ ARM bool Actor::vfunc_60() {
ARM void Actor::vfunc_64() {}
-ARM void Actor::SetUnk_11c(unk8 value) {
+ARM void Actor::SetUnk_11c(bool value) {
mUnk_11c = value;
}
diff --git a/src/14_Land/Actor/Character/ActorCharacterBase.cpp b/src/14_Land/Actor/Character/ActorCharacterBase.cpp
index db2ed1ee..58bbf299 100644
--- a/src/14_Land/Actor/Character/ActorCharacterBase.cpp
+++ b/src/14_Land/Actor/Character/ActorCharacterBase.cpp
@@ -1,32 +1,198 @@
#include "Actor/Character/ActorCharacter.hpp"
+#include "Message/MessageManager.hpp"
+#include "Save/AdventureFlags.hpp"
-static void func_ov014_021447f8(ActorCharacterBase *actor) {}
-static void func_ov014_0214480c(ActorCharacterBase *actor) {}
-static void func_ov014_02144820(ActorCharacterBase *actor) {}
-static void func_ov014_02144834(ActorCharacterBase *actor) {}
-static void func_ov014_02144848(unk32 *param1, unk32 param2, ActorCharacterBase *actor) {}
-
-unk32 ActorCharacterBase::vfunc_d8() {}
-unk32 ActorCharacterBase::vfunc_dc() {}
-unk32 ActorCharacterBase::vfunc_e0() {}
-unk32 ActorCharacterBase::vfunc_e4() {}
-void ActorCharacterBase::vfunc_e8() {}
-
-ActorCharacterBase::ActorCharacterBase() :
- mUnk_158(0x1000000) {}
-ActorCharacterBase::~ActorCharacterBase() {}
-
-bool ActorCharacterBase::Init() {}
-void ActorCharacterBase::vfunc_14(u32 param1) {}
-bool ActorCharacterBase::vfunc_c0() {}
-void ActorCharacterBase::vfunc_18(u32 param1) {}
-unk32 ActorCharacterBase::vfunc_d4() {}
-void ActorCharacterBase::vfunc_b4() {}
-void ActorCharacterBase::vfunc_b8() {}
-void ActorCharacterBase::vfunc_80() {}
-void ActorCharacterBase::vfunc_84() {}
-void ActorCharacterBase::vfunc_cc() {}
-void ActorCharacterBase::vfunc_c8() {}
-void ActorCharacterBase::vfunc_d0() {}
-void ActorCharacterBase::vfunc_68() {}
-bool ActorCharacterBase::vfunc_bc() {}
+ARM static unk32 func_ov014_021447f8(void *actor, unk32 param2) {
+ return ((ActorCharacterBase *) actor)->vfunc_d8(param2);
+}
+
+ARM static unk32 func_ov014_0214480c(void *actor, unk32 param2) {
+ return ((ActorCharacterBase *) actor)->vfunc_dc(param2);
+}
+
+ARM static unk32 func_ov014_02144820(void *actor, unk32 param2) {
+ return ((ActorCharacterBase *) actor)->vfunc_e0(param2);
+}
+
+ARM static unk32 func_ov014_02144834(void *actor, unk32 param2) {
+ return ((ActorCharacterBase *) actor)->vfunc_e4(param2);
+}
+
+struct UnkStruct_ov014_02144848_1 {
+ /* 00 */ PAD(0x00, 0x03);
+ /* 03 */ u8 mUnk_03;
+ /* 04 */ u16 mUnk_04;
+ /* 06 */ u16 mUnk_06;
+ /* 08 */
+
+ u32 Unk1() {
+ return mUnk_04 | (mUnk_03 << 16);
+ }
+};
+
+struct UnkStruct_ov014_02144848 {
+ /* 00 */ UnkStruct_ov014_02144848_1 *mUnk_00;
+ /* 08 */
+};
+
+static UnkStruct_ov014_021448f4 func_ov014_02144848(UnkStruct_ov014_02144848 param4, ActorCharacterBase *actor) {
+ u32 uVar1 = param4.mUnk_00->Unk1();
+
+ switch (uVar1) {
+ case 0xfe0001:
+ case 0xfe0002:
+ case 0xfe0003:
+ case 0xfe0004:
+ case 0xfe0005:
+ case 0xfe0006:
+ case 0xfe0007:
+ case 0xfe0008:
+ return actor->vfunc_e8(param4.mUnk_00->mUnk_06, (u16) (uVar1 - 0xfe0000));
+ break;
+ default:
+ return UnkStruct_ov014_021448f4();
+ }
+}
+
+ARM unk32 ActorCharacterBase::vfunc_d8(unk32 param1) {
+ return 0;
+}
+
+ARM unk32 ActorCharacterBase::vfunc_dc(unk32 param1) {
+ return 0;
+}
+
+ARM unk32 ActorCharacterBase::vfunc_e0(unk32 param1) {
+ return 0;
+}
+
+ARM unk32 ActorCharacterBase::vfunc_e4(unk32 param1) {
+ return 0;
+}
+
+ARM UnkStruct_ov014_021448f4 ActorCharacterBase::vfunc_e8(u16 param2, u16 param3) {
+ return UnkStruct_ov014_021448f4();
+}
+
+ARM ActorCharacterBase::ActorCharacterBase() :
+ mUnk_158(0x1000000),
+ mUnk_1b4(-1),
+ mUnk_1b8(0),
+ mUnk_1c0(0),
+ mUnk_1c1(0),
+ mUnk_1c2(0),
+ mUnk_1c3(0) {}
+ARM ActorCharacterBase::~ActorCharacterBase() {
+ if (gMessageManager.mUnk_20[0] == &mUnk_158) {
+ gMessageManager.func_02036d4c(&mUnk_158);
+ }
+}
+
+ARM bool ActorCharacterBase::Init() {
+ mUnk_12c = 5;
+ mUnk_158.mUnk_20.id = mRef.id;
+ mUnk_158.mUnk_20.index = mRef.index;
+ mUnk_158.mUnk_04[0] = func_ov014_021447f8;
+ mUnk_158.mUnk_04[1] = func_ov014_0214480c;
+ mUnk_158.mUnk_04[2] = func_ov014_02144820;
+ mUnk_158.mUnk_04[3] = func_ov014_02144834;
+ mUnk_158.mUnk_14 = this;
+ mUnk_158.mUnk_44 = (unk32) func_ov014_02144848; // TODO: Set type of mUnk_44 after matching func_ov014_02144848
+ mUnk_158.mUnk_48 = this;
+ return true;
+}
+
+ARM void ActorCharacterBase::vfunc_14(u32 param1) {
+ if (this->func_ov00_020c313c(param1)) {
+ mPrevPos.x = mPos.x;
+ mPrevPos.y = mPos.y;
+ mPrevPos.z = mPos.z;
+ this->func_ov00_020c1cf8();
+ this->vfunc_c4();
+ }
+ mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
+ this->vfunc_b8();
+}
+
+ARM bool ActorCharacterBase::vfunc_c0() {
+ UnkStruct_02037750 *callback = gMessageManager.mUnk_20[0];
+ bool result = true;
+ if (mUnk_11c == false && callback != &mUnk_158) {
+ bool unk = mUnk_1b4 != -1 && gAdventureFlags->func_ov00_02097b9c(mUnk_1b4);
+ if (!unk) {
+ result = false;
+ }
+ }
+ return result;
+}
+
+ARM void ActorCharacterBase::vfunc_18(u32 param1) {
+ if (this->func_ov00_020c313c(param1)) {
+ mPrevPos.x = mPos.x;
+ mPrevPos.y = mPos.y;
+ mPrevPos.z = mPos.z;
+ mInactive = false;
+ if (mUnk_1c0) {
+ if (mUnk_1b8 != NULL) {
+ if (mUnk_1b8(mUnk_1bc) == 0) {
+ mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
+ return;
+ }
+ mUnk_1b8 = NULL;
+ }
+ this->vfunc_c8();
+ this->vfunc_cc();
+ mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
+ return;
+ };
+ if (this->vfunc_c0()) {
+ if (mUnk_1b8 != NULL) {
+ if (mUnk_1b8(mUnk_1bc) == 0) {
+ mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
+ return;
+ }
+ mUnk_1b8 = NULL;
+ }
+ this->vfunc_c4();
+ this->vfunc_cc();
+ } else {
+ if (mUnk_1c3) {
+ this->vfunc_d0();
+ }
+ }
+ }
+ mUnk_0a4.func_ov000_0207a1c8(param1, &mPos);
+ if ((gMessageManager.mUnk_04 == false || gAdventureFlags->func_ov00_02097738()) && !mUnk_1c1) {
+ return;
+ }
+ this->vfunc_b8();
+}
+
+ARM unk32 ActorCharacterBase::vfunc_d4() {
+ return mUnk_020.mUnk_10;
+}
+
+ARM void ActorCharacterBase::vfunc_b4() {
+ gMessageManager.func_02036ce4(&mUnk_158, this->vfunc_d4());
+}
+
+ARM void ActorCharacterBase::vfunc_b8() {
+ mUnk_158.vfunc_10();
+}
+
+ARM void ActorCharacterBase::vfunc_80() {
+ mUnk_1c0 = true;
+}
+
+ARM void ActorCharacterBase::vfunc_84() {
+ mUnk_1c0 = false;
+}
+
+ARM void ActorCharacterBase::vfunc_cc() {}
+ARM void ActorCharacterBase::vfunc_c8() {}
+ARM void ActorCharacterBase::vfunc_d0() {}
+ARM void ActorCharacterBase::vfunc_68() {}
+
+bool ActorCharacterBase::vfunc_bc() {
+ return (mUnk_158.mUnk_18 & 0xffff0000) == 0x1000000;
+}
diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp
index f50dce30..d1eabdd0 100644
--- a/src/Main/Message/MessageManager.cpp
+++ b/src/Main/Message/MessageManager.cpp
@@ -371,7 +371,7 @@ ARM void MessageManager::func_02036ca4(unk32 param_2) {
}
}
-ARM bool MessageManager::func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3) {
+ARM bool MessageManager::func_02036ce4(UnkStruct_02037750 *param_2, unk32 param_3) {
u32 uVar1;
if (param_3 == 0) {
diff --git a/src/Main/Unknown/UnkStruct_02037750.cpp b/src/Main/Unknown/UnkStruct_02037750.cpp
index b5bd2a1a..50b481e6 100644
--- a/src/Main/Unknown/UnkStruct_02037750.cpp
+++ b/src/Main/Unknown/UnkStruct_02037750.cpp
@@ -10,7 +10,7 @@ extern "C" ARM unk32 func_02037628(u8 *);
extern u8 *data_027e0d54;
extern unk32 *data_027e0cb4;
-ARM UnkStruct_02037750::UnkStruct_02037750(unk32 param1, unk32 param2) {
+ARM UnkStruct_02037750::UnkStruct_02037750(unk32 param1, void *param2) {
s32 i;
this->mUnk_14 = param2;
@@ -66,7 +66,7 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
iVar9 = 0;
if (pcVar8 != NULL) {
- iVar9 = pcVar8(this->mUnk_14);
+ iVar9 = pcVar8(this->mUnk_14, param1);
}
return iVar9;