summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt74
-rw-r--r--config/eur/arm9/symbols.txt6
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt74
-rw-r--r--config/usa/arm9/symbols.txt6
-rw-r--r--include/DTCM/UnkStruct_027e0d38.hpp30
-rw-r--r--include/Item/Item.hpp73
-rw-r--r--include/Item/ItemManager.hpp128
-rw-r--r--include/Map/MapManager.hpp2
-rw-r--r--include/Physics/AABB.hpp13
-rw-r--r--include/Physics/Cube.hpp11
-rw-r--r--include/Save/SaveItemManager.hpp37
-rw-r--r--include/global.h2
-rw-r--r--include/types.h2
-rw-r--r--libs/c/include/stddef.h8
-rw-r--r--libs/c/include/string.h4
-rw-r--r--libs/cpp/include/cxxabi.h11
-rw-r--r--libs/cpp/include/vector36
-rw-r--r--src/00_Core/DTCM/UnkStruct_027e0d38.cpp5
-rw-r--r--src/00_Core/Item/ItemManager.cpp11
-rw-r--r--src/00_Core/Map/MapManager.cpp2
-rw-r--r--src/00_Core/Physics/AABB.cpp15
-rw-r--r--src/00_Core/Save/SaveItemManager.cpp3
-rw-r--r--tools/configure.py2
-rw-r--r--tools/mangle.py2
25 files changed, 338 insertions, 221 deletions
diff --git a/.gitignore b/.gitignore
index e2b78543..f4611bbf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,4 +11,4 @@ objdiff.json
/dsd.exe
/dsd.pdb
build.ninja
-.ninja_log
+.ninja_log*
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 63208160..f25bc17d 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -79,9 +79,9 @@ func_ov000_0207896c kind:function(thumb,size=0x128) addr:0x207896c
func_ov000_02078a94 kind:function(thumb,size=0x40) addr:0x2078a94
func_ov000_02078ad4 kind:function(thumb,size=0x38) addr:0x2078ad4
func_ov000_02078b0c kind:function(thumb,size=0x34) addr:0x2078b0c
-func_ov000_02078b40 kind:function(arm,size=0x24) addr:0x2078b40
-func_ov000_02078b64 kind:function(arm,size=0x24) addr:0x2078b64
-func_ov000_02078b88 kind:function(arm,size=0x3c) addr:0x2078b88
+_ZN18UnkStruct_027e0d3819func_ov000_02078b40Ev kind:function(arm,size=0x24) addr:0x2078b40
+_ZN18UnkStruct_027e0d3819func_ov000_02078b64Ev kind:function(arm,size=0x24) addr:0x2078b64
+_ZN18UnkStruct_027e0d3819func_ov000_02078b88Ev kind:function(arm,size=0x3c) addr:0x2078b88
func_ov000_02078bc4 kind:function(thumb,size=0x2c) addr:0x2078bc4
func_ov000_02078bf0 kind:function(thumb,size=0x11c) addr:0x2078bf0
func_ov000_02078d0c kind:function(thumb,size=0x24) addr:0x2078d0c
@@ -141,7 +141,7 @@ func_ov000_02079ed8 kind:function(thumb,size=0x24) addr:0x2079ed8
func_ov000_02079efc kind:function(thumb,size=0x40) addr:0x2079efc
func_ov000_02079f3c kind:function(thumb,size=0x20) addr:0x2079f3c
func_ov000_02079f5c kind:function(thumb,size=0xa0) addr:0x2079f5c
-func_ov000_02079ffc kind:function(thumb,size=0x3c) addr:0x2079ffc
+LoadNsbTexturedModel kind:function(thumb,size=0x3c) addr:0x2079ffc
func_ov000_0207a038 kind:function(thumb,size=0x104) addr:0x207a038
_ZN19Actor_UnkStruct_012C1Ev kind:function(arm,size=0x4c) addr:0x207a13c
_ZN19Actor_UnkStruct_0a4C1Eiiii kind:function(thumb,size=0x1c) addr:0x207a188
@@ -152,7 +152,7 @@ func_ov000_0207a2d8 kind:function(arm,size=0x10) addr:0x207a2d8
func_ov000_0207a2e8 kind:function(thumb,size=0x14) addr:0x207a2e8
func_ov000_0207a2fc kind:function(arm,size=0x4) addr:0x207a2fc
func_ov000_0207a300 kind:function(thumb,size=0x8c) addr:0x207a300
-func_ov000_0207a38c kind:function(thumb,size=0x58) addr:0x207a38c
+_ZN15SaveItemManagerC1Ev kind:function(thumb,size=0x58) addr:0x207a38c
func_ov000_0207a3e4 kind:function(thumb,size=0x34) addr:0x207a3e4
func_ov000_0207a418 kind:function(thumb,size=0xbc) addr:0x207a418
func_ov000_0207a4d4 kind:function(thumb,size=0x1c) addr:0x207a4d4
@@ -428,26 +428,26 @@ _ZN11TriggerBase8vfunc_10Ev kind:function(arm,size=0x8) addr:0x2080ddc
_ZN7MapBase18func_ov00_02080de4Ev kind:function(arm,size=0x4) addr:0x2080de4
_ZN7MapBase18func_ov00_02080de8Ei kind:function(arm,size=0xf4) addr:0x2080de8
_ZN7MapBase18func_ov00_02080edcEv kind:function(arm,size=0x44) addr:0x2080edc
-func_ov000_02080f20 kind:function(arm,size=0x44) addr:0x2080f20
-func_ov000_02080f64 kind:function(arm,size=0x30) addr:0x2080f64
-func_ov000_02080f94 kind:function(arm,size=0x64) addr:0x2080f94
-func_ov000_02080ff8 kind:function(arm,size=0x48) addr:0x2080ff8
-func_ov000_02081040 kind:function(arm,size=0x30) addr:0x2081040
-func_ov000_02081070 kind:function(arm,size=0x48) addr:0x2081070
-func_ov000_020810b8 kind:function(arm,size=0x30) addr:0x20810b8
-func_ov000_020810e8 kind:function(arm,size=0x48) addr:0x20810e8
-func_ov000_02081130 kind:function(arm,size=0x30) addr:0x2081130
-func_ov000_02081160 kind:function(arm,size=0x15c) addr:0x2081160
-func_ov000_020812bc kind:function(arm,size=0xcc) addr:0x20812bc
-func_ov000_02081388 kind:function(arm,size=0x10) addr:0x2081388
-func_ov000_02081398 kind:function(arm,size=0x18c) addr:0x2081398
-func_ov000_02081524 kind:function(arm,size=0xd0) addr:0x2081524
-func_ov000_020815f4 kind:function(arm,size=0x10) addr:0x20815f4
-func_ov000_02081604 kind:function(arm,size=0x1d8) addr:0x2081604
-func_ov000_020817dc kind:function(arm,size=0xd0) addr:0x20817dc
-func_ov000_020818ac kind:function(arm,size=0x10) addr:0x20818ac
-func_ov000_020818bc kind:function(arm,size=0x1d4) addr:0x20818bc
-func_ov000_02081a90 kind:function(arm,size=0xd0) addr:0x2081a90
+_ZNSt6vectorIP11TriggerBaseED1Ev kind:function(arm,size=0x44) addr:0x2080f20
+_ZNSt6vectorIP11TriggerBaseE9push_backERS1_ kind:function(arm,size=0x30) addr:0x2080f64
+_ZNSt6vectorIP11TriggerBaseE5eraseEPS1_S3_ kind:function(arm,size=0x64) addr:0x2080f94
+_ZNSt6vectorI8EntranceED1Ev kind:function(arm,size=0x48) addr:0x2080ff8
+_ZNSt6vectorI8EntranceE9push_backERS0_ kind:function(arm,size=0x30) addr:0x2081040
+_ZNSt6vectorI4ExitED1Ev kind:function(arm,size=0x48) addr:0x2081070
+_ZNSt6vectorI4ExitE9push_backERS0_ kind:function(arm,size=0x30) addr:0x20810b8
+_ZNSt6vectorI15CameraViewpointED1Ev kind:function(arm,size=0x48) addr:0x20810e8
+_ZNSt6vectorI15CameraViewpointE9push_backERS0_ kind:function(arm,size=0x30) addr:0x2081130
+_ZNSt6vectorIP11TriggerBaseE11append_backEiPS1_ kind:function(arm,size=0x15c) addr:0x2081160
+_ZNSt6vectorIP11TriggerBaseE16get_new_capacityEi kind:function(arm,size=0xcc) addr:0x20812bc
+_ZNSt6vectorI8EntranceE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x2081388
+_ZNSt6vectorI8EntranceE11append_backEiPS0_ kind:function(arm,size=0x18c) addr:0x2081398
+_ZNSt6vectorI8EntranceE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x2081524
+_ZNSt6vectorI4ExitE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x20815f4
+_ZNSt6vectorI4ExitE11append_backEiPS0_ kind:function(arm,size=0x1d8) addr:0x2081604
+_ZNSt6vectorI4ExitE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x20817dc
+_ZNSt6vectorI15CameraViewpointE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x20818ac
+_ZNSt6vectorI15CameraViewpointE11append_backEiPS0_ kind:function(arm,size=0x1d4) addr:0x20818bc
+_ZNSt6vectorI15CameraViewpointE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x2081a90
func_ov000_02081b60 kind:function(arm,size=0x1c) addr:0x2081b60
func_ov000_02081b7c kind:function(arm,size=0x1c) addr:0x2081b7c
func_ov000_02081b98 kind:function(arm,size=0x1c) addr:0x2081b98
@@ -620,7 +620,7 @@ _ZN10MapManager18func_ov00_02083f44EP5Vec3p kind:function(arm,size=0x3c) addr:0x
_ZN10MapManager16MapData_vfunc_6cEv kind:function(arm,size=0x18) addr:0x2083f80
_ZN10MapManager16MapData_vfunc_70Ev kind:function(arm,size=0x18) addr:0x2083f98
_ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083fb0
-_ZN10MapManager18func_ov00_02084024EiP4AABB kind:function(arm,size=0x64) addr:0x2084024
+_ZN10MapManager18GetTileWorldBoundsEP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2084024
_ZN10MapManager16MapData_vfunc_54Ev kind:function(arm,size=0x18) addr:0x2084088
_ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x20840a0
_ZN10MapManager16MapData_vfunc_78Ev kind:function(arm,size=0x18) addr:0x20840c4
@@ -909,19 +909,19 @@ func_ov000_0208e420 kind:function(arm,size=0xd4) addr:0x208e420
func_ov000_0208e4f4 kind:function(arm,size=0x4) addr:0x208e4f4
func_ov000_0208e4f8 kind:function(arm,size=0x1c) addr:0x208e4f8
func_ov000_0208e514 kind:function(arm,size=0x16c) addr:0x208e514
-func_ov000_0208e680 kind:function(arm,size=0x30) addr:0x208e680
-func_ov000_0208e6b0 kind:function(arm,size=0x40) addr:0x208e6b0
-func_ov000_0208e6f0 kind:function(arm,size=0x14) addr:0x208e6f0
-func_ov000_0208e704 kind:function(arm,size=0x14) addr:0x208e704
-func_ov000_0208e718 kind:function(arm,size=0x14) addr:0x208e718
+_ZN4AABB19func_ov000_0208e680Ev kind:function(arm,size=0x30) addr:0x208e680
+_ZN4AABB9GetCenterEP5Vec3p kind:function(arm,size=0x40) addr:0x208e6b0
+_ZN4AABB8GetSizeXEv kind:function(arm,size=0x14) addr:0x208e6f0
+_ZN4AABB8GetSizeZEv kind:function(arm,size=0x14) addr:0x208e704
+_ZN4AABB8GetSizeYEv kind:function(arm,size=0x14) addr:0x208e718
_ZN4AABB8ContainsEP5Vec3p kind:function(arm,size=0x78) addr:0x208e72c
_ZN4AABB12ContainsInXZEP5Vec3p kind:function(arm,size=0x44) addr:0x208e7a4
-func_ov000_0208e7e8 kind:function(arm,size=0x44) addr:0x208e7e8
-func_ov000_0208e82c kind:function(arm,size=0x50) addr:0x208e82c
-func_ov000_0208e87c kind:function(arm,size=0x4f8) addr:0x208e87c
-func_ov000_0208ed74 kind:function(arm,size=0x64) addr:0x208ed74
-func_ov000_0208edd8 kind:function(arm,size=0x28) addr:0x208edd8
-func_ov000_0208ee00 kind:function(arm,size=0x4c) addr:0x208ee00
+_ZN4AABB12ContainsInXYEP5Vec3p kind:function(arm,size=0x44) addr:0x208e7e8
+_ZN4AABB14IntersectsCubeEP4Cube kind:function(arm,size=0x50) addr:0x208e82c
+_ZN4AABB19func_ov000_0208e87cEP4CubeP5Vec3pPj kind:function(arm,size=0x4f8) addr:0x208e87c
+_ZN4AABB11GrowToPointEP5Vec3p kind:function(arm,size=0x64) addr:0x208ed74
+_ZN4AABB4GrowEP5Vec3p kind:function(arm,size=0x28) addr:0x208edd8
+_ZN4AABB10GrowScalarEi kind:function(arm,size=0x4c) addr:0x208ee00
func_ov000_0208ee4c kind:function(arm,size=0x44) addr:0x208ee4c
func_ov000_0208ee90 kind:function(arm,size=0x1a0) addr:0x208ee90
func_ov000_0208f030 kind:function(arm,size=0x170) addr:0x208f030
diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt
index f25e3eee..83011477 100644
--- a/config/eur/arm9/symbols.txt
+++ b/config/eur/arm9/symbols.txt
@@ -2264,8 +2264,8 @@ func_02043464 kind:function(arm,size=0x14) addr:0x2043464
func_02043478 kind:function(arm,size=0x1c) addr:0x2043478
func_02043494 kind:function(arm,size=0x88) addr:0x2043494
func_0204351c kind:function(arm,size=0x78) addr:0x204351c
-func_02043594 kind:function(arm,size=0x20) addr:0x2043594
-func_020435b4 kind:function(arm,size=0x4c) addr:0x20435b4
+memcpy kind:function(arm,size=0x20) addr:0x2043594
+memmove kind:function(arm,size=0x4c) addr:0x20435b4
memset kind:function(arm,size=0x14) addr:0x2043600
memchr kind:function(arm,size=0x2c) addr:0x2043614
memrchr kind:function(arm,size=0x2c) addr:0x2043640
@@ -2401,7 +2401,7 @@ func_0204f544 kind:function(arm,size=0x14) addr:0x204f544
func_0204f558 kind:function(arm,size=0xbc) addr:0x204f558
ForEach kind:function(arm,size=0xb0) addr:0x204f614
func_0204f6c4 kind:function(arm,size=0x90) addr:0x204f6c4
-ForEachReversed kind:function(arm,size=0x5c) addr:0x204f754
+__cxa_vec_cleanup kind:function(arm,size=0x5c) addr:0x204f754
func_0204f7b0 kind:function(arm,size=0x34) addr:0x204f7b0
func_0204f7e4 kind:function(arm,size=0x4) addr:0x204f7e4
func_0204f7e8 kind:function(arm,size=0x30) addr:0x204f7e8
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index b8a5116b..30c0205c 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -79,9 +79,9 @@ func_ov000_0207896c kind:function(thumb,size=0x128) addr:0x207890c
func_ov000_02078a94 kind:function(thumb,size=0x40) addr:0x2078a34
func_ov000_02078ad4 kind:function(thumb,size=0x38) addr:0x2078a74
func_ov000_02078b0c kind:function(thumb,size=0x34) addr:0x2078aac
-func_ov000_02078b40 kind:function(arm,size=0x24) addr:0x2078ae0
-func_ov000_02078b64 kind:function(arm,size=0x24) addr:0x2078b04
-func_ov000_02078b88 kind:function(arm,size=0x3c) addr:0x2078b28
+_ZN18UnkStruct_027e0d3819func_ov000_02078b40Ev kind:function(arm,size=0x24) addr:0x2078ae0
+_ZN18UnkStruct_027e0d3819func_ov000_02078b64Ev kind:function(arm,size=0x24) addr:0x2078b04
+_ZN18UnkStruct_027e0d3819func_ov000_02078b88Ev kind:function(arm,size=0x3c) addr:0x2078b28
func_ov000_02078bc4 kind:function(thumb,size=0x2c) addr:0x2078b64
func_ov000_02078bf0 kind:function(thumb,size=0x11c) addr:0x2078b90
func_ov000_02078d0c kind:function(thumb,size=0x24) addr:0x2078cac
@@ -141,7 +141,7 @@ func_ov000_02079ed8 kind:function(thumb,size=0x24) addr:0x2079e78
func_ov000_02079efc kind:function(thumb,size=0x40) addr:0x2079e9c
func_ov000_02079f3c kind:function(thumb,size=0x20) addr:0x2079edc
func_ov000_02079f5c kind:function(thumb,size=0xa0) addr:0x2079efc
-func_ov000_02079ffc kind:function(thumb,size=0x3c) addr:0x2079f9c
+LoadNsbTexturedModel kind:function(thumb,size=0x3c) addr:0x2079f9c
func_ov000_0207a038 kind:function(thumb,size=0x104) addr:0x2079fd8
_ZN19Actor_UnkStruct_012C1Ev kind:function(arm,size=0x4c) addr:0x207a0dc
_ZN19Actor_UnkStruct_0a4C1Eiiii kind:function(thumb,size=0x1c) addr:0x207a128
@@ -152,7 +152,7 @@ func_ov000_0207a2d8 kind:function(arm,size=0x10) addr:0x207a278
func_ov000_0207a2e8 kind:function(thumb,size=0x14) addr:0x207a288
func_ov000_0207a2fc kind:function(arm,size=0x4) addr:0x207a29c
func_ov000_0207a300 kind:function(thumb,size=0x8c) addr:0x207a2a0
-func_ov000_0207a38c kind:function(thumb,size=0x58) addr:0x207a32c
+_ZN15SaveItemManagerC1Ev kind:function(thumb,size=0x58) addr:0x207a32c
func_ov000_0207a3e4 kind:function(thumb,size=0x34) addr:0x207a384
func_ov000_0207a418 kind:function(thumb,size=0xbc) addr:0x207a3b8
func_ov000_0207a4d4 kind:function(thumb,size=0x1c) addr:0x207a474
@@ -428,26 +428,26 @@ _ZN11TriggerBase8vfunc_10Ev kind:function(arm,size=0x8) addr:0x2080d7c
_ZN7MapBase18func_ov00_02080de4Ev kind:function(arm,size=0x4) addr:0x2080d84
_ZN7MapBase18func_ov00_02080de8Ei kind:function(arm,size=0xf4) addr:0x2080d88
_ZN7MapBase18func_ov00_02080edcEv kind:function(arm,size=0x44) addr:0x2080e7c
-func_ov000_02080f20 kind:function(arm,size=0x44) addr:0x2080ec0
-func_ov000_02080f64 kind:function(arm,size=0x30) addr:0x2080f04
-func_ov000_02080f94 kind:function(arm,size=0x64) addr:0x2080f34
-func_ov000_02080ff8 kind:function(arm,size=0x48) addr:0x2080f98
-func_ov000_02081040 kind:function(arm,size=0x30) addr:0x2080fe0
-func_ov000_02081070 kind:function(arm,size=0x48) addr:0x2081010
-func_ov000_020810b8 kind:function(arm,size=0x30) addr:0x2081058
-func_ov000_020810e8 kind:function(arm,size=0x48) addr:0x2081088
-func_ov000_02081130 kind:function(arm,size=0x30) addr:0x20810d0
-func_ov000_02081160 kind:function(arm,size=0x15c) addr:0x2081100
-func_ov000_020812bc kind:function(arm,size=0xcc) addr:0x208125c
-func_ov000_02081388 kind:function(arm,size=0x10) addr:0x2081328
-func_ov000_02081398 kind:function(arm,size=0x18c) addr:0x2081338
-func_ov000_02081524 kind:function(arm,size=0xd0) addr:0x20814c4
-func_ov000_020815f4 kind:function(arm,size=0x10) addr:0x2081594
-func_ov000_02081604 kind:function(arm,size=0x1d8) addr:0x20815a4
-func_ov000_020817dc kind:function(arm,size=0xd0) addr:0x208177c
-func_ov000_020818ac kind:function(arm,size=0x10) addr:0x208184c
-func_ov000_020818bc kind:function(arm,size=0x1d4) addr:0x208185c
-func_ov000_02081a90 kind:function(arm,size=0xd0) addr:0x2081a30
+_ZNSt6vectorIP11TriggerBaseED1Ev kind:function(arm,size=0x44) addr:0x2080ec0
+_ZNSt6vectorIP11TriggerBaseE9push_backERS1_ kind:function(arm,size=0x30) addr:0x2080f04
+_ZNSt6vectorIP11TriggerBaseE5eraseEPS1_S3_ kind:function(arm,size=0x64) addr:0x2080f34
+_ZNSt6vectorI8EntranceED1Ev kind:function(arm,size=0x48) addr:0x2080f98
+_ZNSt6vectorI8EntranceE9push_backERS0_ kind:function(arm,size=0x30) addr:0x2080fe0
+_ZNSt6vectorI4ExitED1Ev kind:function(arm,size=0x48) addr:0x2081010
+_ZNSt6vectorI4ExitE9push_backERS0_ kind:function(arm,size=0x30) addr:0x2081058
+_ZNSt6vectorI15CameraViewpointED1Ev kind:function(arm,size=0x48) addr:0x2081088
+_ZNSt6vectorI15CameraViewpointE9push_backERS0_ kind:function(arm,size=0x30) addr:0x20810d0
+_ZNSt6vectorIP11TriggerBaseE11append_backEiPS1_ kind:function(arm,size=0x15c) addr:0x2081100
+_ZNSt6vectorIP11TriggerBaseE16get_new_capacityEi kind:function(arm,size=0xcc) addr:0x208125c
+_ZNSt6vectorI8EntranceE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x2081328
+_ZNSt6vectorI8EntranceE11append_backEiPS0_ kind:function(arm,size=0x18c) addr:0x2081338
+_ZNSt6vectorI8EntranceE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x20814c4
+_ZNSt6vectorI4ExitE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x2081594
+_ZNSt6vectorI4ExitE11append_backEiPS0_ kind:function(arm,size=0x1d8) addr:0x20815a4
+_ZNSt6vectorI4ExitE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x208177c
+_ZNSt6vectorI15CameraViewpointE13decrease_sizeEi kind:function(arm,size=0x10) addr:0x208184c
+_ZNSt6vectorI15CameraViewpointE11append_backEiPS0_ kind:function(arm,size=0x1d4) addr:0x208185c
+_ZNSt6vectorI15CameraViewpointE16get_new_capacityEi kind:function(arm,size=0xd0) addr:0x2081a30
func_ov000_02081b60 kind:function(arm,size=0x1c) addr:0x2081b00
func_ov000_02081b7c kind:function(arm,size=0x1c) addr:0x2081b1c
func_ov000_02081b98 kind:function(arm,size=0x1c) addr:0x2081b38
@@ -620,7 +620,7 @@ _ZN10MapManager18func_ov00_02083f44EP5Vec3p kind:function(arm,size=0x3c) addr:0x
_ZN10MapManager16MapData_vfunc_6cEv kind:function(arm,size=0x18) addr:0x2083f20
_ZN10MapManager16MapData_vfunc_70Ev kind:function(arm,size=0x18) addr:0x2083f38
_ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083f50
-_ZN10MapManager18func_ov00_02084024EiP4AABB kind:function(arm,size=0x64) addr:0x2083fc4
+_ZN10MapManager18GetTileWorldBoundsEP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2083fc4
_ZN10MapManager16MapData_vfunc_54Ev kind:function(arm,size=0x18) addr:0x2084028
_ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x2084040
_ZN10MapManager16MapData_vfunc_78Ev kind:function(arm,size=0x18) addr:0x2084064
@@ -909,19 +909,19 @@ func_ov000_0208e420 kind:function(arm,size=0xd4) addr:0x208e3c0
func_ov000_0208e4f4 kind:function(arm,size=0x4) addr:0x208e494
func_ov000_0208e4f8 kind:function(arm,size=0x1c) addr:0x208e498
func_ov000_0208e514 kind:function(arm,size=0x16c) addr:0x208e4b4
-func_ov000_0208e680 kind:function(arm,size=0x30) addr:0x208e620
-func_ov000_0208e6b0 kind:function(arm,size=0x40) addr:0x208e650
-func_ov000_0208e6f0 kind:function(arm,size=0x14) addr:0x208e690
-func_ov000_0208e704 kind:function(arm,size=0x14) addr:0x208e6a4
-func_ov000_0208e718 kind:function(arm,size=0x14) addr:0x208e6b8
+_ZN4AABB19func_ov000_0208e680Ev kind:function(arm,size=0x30) addr:0x208e620
+_ZN4AABB9GetCenterEP5Vec3p kind:function(arm,size=0x40) addr:0x208e650
+_ZN4AABB8GetSizeXEv kind:function(arm,size=0x14) addr:0x208e690
+_ZN4AABB8GetSizeZEv kind:function(arm,size=0x14) addr:0x208e6a4
+_ZN4AABB8GetSizeYEv kind:function(arm,size=0x14) addr:0x208e6b8
_ZN4AABB8ContainsEP5Vec3p kind:function(arm,size=0x78) addr:0x208e6cc
_ZN4AABB12ContainsInXZEP5Vec3p kind:function(arm,size=0x44) addr:0x208e744
-func_ov000_0208e7e8 kind:function(arm,size=0x44) addr:0x208e788
-func_ov000_0208e82c kind:function(arm,size=0x50) addr:0x208e7cc
-func_ov000_0208e87c kind:function(arm,size=0x4f8) addr:0x208e81c
-func_ov000_0208ed74 kind:function(arm,size=0x64) addr:0x208ed14
-func_ov000_0208edd8 kind:function(arm,size=0x28) addr:0x208ed78
-func_ov000_0208ee00 kind:function(arm,size=0x4c) addr:0x208eda0
+_ZN4AABB12ContainsInXYEP5Vec3p kind:function(arm,size=0x44) addr:0x208e788
+_ZN4AABB14IntersectsCubeEP4Cube kind:function(arm,size=0x50) addr:0x208e7cc
+_ZN4AABB19func_ov000_0208e87cEP4CubeP5Vec3pPj kind:function(arm,size=0x4f8) addr:0x208e81c
+_ZN4AABB11GrowToPointEP5Vec3p kind:function(arm,size=0x64) addr:0x208ed14
+_ZN4AABB4GrowEP5Vec3p kind:function(arm,size=0x28) addr:0x208ed78
+_ZN4AABB10GrowScalarEi kind:function(arm,size=0x4c) addr:0x208eda0
func_ov000_0208ee4c kind:function(arm,size=0x44) addr:0x208edec
func_ov000_0208ee90 kind:function(arm,size=0x1a0) addr:0x208ee30
func_ov000_0208f030 kind:function(arm,size=0x170) addr:0x208efd0
diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt
index cd7b2422..f48835e1 100644
--- a/config/usa/arm9/symbols.txt
+++ b/config/usa/arm9/symbols.txt
@@ -2264,8 +2264,8 @@ func_02043464 kind:function(arm,size=0x14) addr:0x2043420
func_02043478 kind:function(arm,size=0x1c) addr:0x2043434
func_02043494 kind:function(arm,size=0x88) addr:0x2043450
func_0204351c kind:function(arm,size=0x78) addr:0x20434d8
-func_02043594 kind:function(arm,size=0x20) addr:0x2043550
-func_020435b4 kind:function(arm,size=0x4c) addr:0x2043570
+memcpy kind:function(arm,size=0x20) addr:0x2043550
+memmove kind:function(arm,size=0x4c) addr:0x2043570
memset kind:function(arm,size=0x14) addr:0x20435bc
memchr kind:function(arm,size=0x2c) addr:0x20435d0
memrchr kind:function(arm,size=0x2c) addr:0x20435fc
@@ -2401,7 +2401,7 @@ func_0204f544 kind:function(arm,size=0x14) addr:0x204f500
func_0204f558 kind:function(arm,size=0xbc) addr:0x204f514
ForEach kind:function(arm,size=0xb0) addr:0x204f5d0
func_0204f6c4 kind:function(arm,size=0x90) addr:0x204f680
-ForEachReversed kind:function(arm,size=0x5c) addr:0x204f710
+__cxa_vec_cleanup kind:function(arm,size=0x5c) addr:0x204f710
func_0204f7b0 kind:function(arm,size=0x34) addr:0x204f76c
func_0204f7e4 kind:function(arm,size=0x4) addr:0x204f7a0
func_0204f7e8 kind:function(arm,size=0x30) addr:0x204f7a4
diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp
new file mode 100644
index 00000000..a36af0fe
--- /dev/null
+++ b/include/DTCM/UnkStruct_027e0d38.hpp
@@ -0,0 +1,30 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+struct UnkStruct_027e0d38 {
+ /* 00 */ unk8 mUnk_00;
+ /* 01 */ unk8 mUnk_01[3]; // padding?
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ unk32 mUnk_08;
+ /* 0c */ unk32 mUnk_0c;
+ /* 10 */ unk32 mUnk_10;
+ /* 14 */ unk32 mUnk_14;
+ /* 18 */ unk32 mUnk_18;
+ /* 1c */ unk16 mUnk_1c;
+ /* 1e */ unk8 mUnk_1e;
+ /* 1f */ unk8 mUnk_1f;
+ /* 20 */ unk8 mUnk_20;
+ /* 21 */ unk8 mUnk_21;
+ /* 22 */ unk8 mUnk_22[2]; // padding?
+ /* 24 */ void *mUnk_24;
+ /* 28 */ void *mUnk_28;
+ /* 2c */
+
+ unk32 func_ov000_02078b40();
+ unk8 func_ov000_02078b64();
+ bool func_ov000_02078b88();
+};
+
+extern UnkStruct_027e0d38 *data_027e0d38;
diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp
index 1b67ada3..4d70c9f1 100644
--- a/include/Item/Item.hpp
+++ b/include/Item/Item.hpp
@@ -2,6 +2,8 @@
#include "types.h"
+#define MAX_POTIONS 2
+
typedef s32 ItemFlag;
enum ItemFlag_ {
ItemFlag_None = -1,
@@ -233,6 +235,77 @@ enum ItemId_ {
/* 0x88 */ ItemId_Unk_136 = 136,
};
+enum Gem {
+ Gem_Courage,
+ Gem_Power,
+ Gem_Wisdom,
+ Gem_COUNT,
+};
+
+typedef u32 ShipPart;
+enum ShipPart_ {
+ ShipPart_Anchor,
+ ShipPart_Prow,
+ ShipPart_Hull,
+ ShipPart_Cannon,
+ ShipPart_Handrail,
+ ShipPart_Wheel,
+ ShipPart_Chimney,
+ ShipPart_Bridge,
+ ShipPart_COUNT,
+};
+
+typedef u32 ShipType;
+enum ShipType_ {
+ ShipType_Linebeck,
+ ShipType_Bright,
+ ShipType_Iron,
+ ShipType_Stone,
+ ShipType_Vintage,
+ ShipType_Demon,
+ ShipType_Tropical,
+ ShipType_Dignified,
+ ShipType_Golden,
+ ShipType_COUNT,
+};
+
+typedef u32 ShipItem;
+#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
+#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
+
+typedef u32 Treasure;
+enum Treasure_ {
+ Treasure_PinkCoral,
+ Treasure_WhitePearlLoop,
+ Treasure_DarkPearlLoop,
+ Treasure_ZoraScale,
+ Treasure_GoronAmber,
+ Treasure_RutoCrown,
+ Treasure_HelmarocPlume,
+ Treasure_RegalRing,
+
+ Treasure_COUNT,
+};
+
+typedef u8 Potion;
+enum Potion_ {
+ Potion_None,
+ Potion_Red,
+ Potion_Purple,
+ Potion_Yellow,
+ Potion_COUNT,
+};
+
+struct ItemFlags {
+ /* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
+ /* 10 */
+};
+
+struct ShipPartPricesShown {
+ /* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
+ /* c */
+};
+
namespace Item {
bool func_ov00_020ad020(ItemId item);
bool func_ov00_020ad068(ItemId item);
diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp
index 1fcabe31..813b0e0f 100644
--- a/include/Item/ItemManager.hpp
+++ b/include/Item/ItemManager.hpp
@@ -9,21 +9,16 @@ extern "C" {
#include "types.h"
#include "Actor/ActorNavi.hpp"
-#include "DTCM/UnkStruct_027e0f78.hpp"
#include "Item/Item.hpp"
-#include "Map/MapManager.hpp"
#include "Player/EquipItem.hpp"
-#include "Player/HealthManager.hpp"
#include "Render/ModelRender.hpp"
-#include "Save/AdventureFlags.hpp"
+#include "Save/SaveItemManager.hpp"
#include "Sound/Sfx.hpp"
-#include "System/OverlayManager.hpp"
#include "System/SysNew.hpp"
#define MAX_HOURGLASS_SECONDS 1500 // 25 minutes
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
-#define MAX_POTIONS 2
typedef s32 FairyId;
enum FairyId_ {
@@ -34,98 +29,6 @@ enum FairyId_ {
FairyId_COUNT = 3,
};
-enum Gem {
- Gem_Courage,
- Gem_Power,
- Gem_Wisdom,
- Gem_COUNT,
-};
-
-typedef u32 ShipPart;
-enum ShipPart_ {
- ShipPart_Anchor,
- ShipPart_Prow,
- ShipPart_Hull,
- ShipPart_Cannon,
- ShipPart_Handrail,
- ShipPart_Wheel,
- ShipPart_Chimney,
- ShipPart_Bridge,
- ShipPart_COUNT,
-};
-
-typedef u32 ShipType;
-enum ShipType_ {
- ShipType_Linebeck,
- ShipType_Bright,
- ShipType_Iron,
- ShipType_Stone,
- ShipType_Vintage,
- ShipType_Demon,
- ShipType_Tropical,
- ShipType_Dignified,
- ShipType_Golden,
- ShipType_COUNT,
-};
-
-typedef u32 ShipItem;
-#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
-#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
-
-typedef u32 Treasure;
-enum Treasure_ {
- Treasure_PinkCoral,
- Treasure_WhitePearlLoop,
- Treasure_DarkPearlLoop,
- Treasure_ZoraScale,
- Treasure_GoronAmber,
- Treasure_RutoCrown,
- Treasure_HelmarocPlume,
- Treasure_RegalRing,
-
- Treasure_COUNT,
-};
-
-#define NUM_POTIONS 2
-typedef u8 Potion;
-enum Potion_ {
- Potion_None,
- Potion_Red,
- Potion_Purple,
- Potion_Yellow,
- Potion_COUNT,
-};
-
-struct ItemFlags {
- /* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
- /* 10 */
-};
-
-struct ShipPartPricesShown {
- /* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
- /* c */
-};
-
-struct UnkStruct_027e0d38 {
- /* 00 */ unk8 mUnk_00;
- /* 01 */ unk8 mUnk_01[3]; // padding?
- /* 04 */ unk32 mUnk_04;
- /* 08 */ unk32 mUnk_08;
- /* 0c */ unk32 mUnk_0c;
- /* 10 */ unk32 mUnk_10;
- /* 14 */ unk32 mUnk_14;
- /* 18 */ unk32 mUnk_18;
- /* 1c */ unk16 mUnk_1c;
- /* 1e */ unk8 mUnk_1e;
- /* 1f */ unk8 mUnk_1f;
- /* 20 */ unk8 mUnk_20;
- /* 21 */ unk8 mUnk_21;
- /* 22 */ unk8 mUnk_22[2]; // padding?
- /* 24 */ void *mUnk_24;
- /* 28 */ void *mUnk_28;
- /* 2c */
-};
-
typedef u32 ItemModelId;
enum ItemModelId_ {
ItemModelId_OshusSword, // swA
@@ -156,35 +59,6 @@ enum DungeonItemModelId_ {
DungeonItemModelId_COUNT,
};
-struct SaveItemManager {
- /* 00 */ ItemFlags itemFlags;
- /* 10 */ u32 salvagedTreasureFlags;
- /* 14 */ ShipPartPricesShown shipPartPricesShown;
- /* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
- /* 24 */ u8 equippedShipParts[ShipPart_COUNT];
- /* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
- /* 74 */ s8 treasure[Treasure_COUNT];
- /* 7c */ unk8 unk_7c[4];
- /* 80 */ u16 hourglassSeconds;
- /* 82 */ u16 unk_82[6];
- /* 8e */ u16 numRupees;
- /* 90 */ unk8 unk_90;
- /* 91 */ unk8 unk_91;
- /* 92 */ unk8 unk_92;
- /* 93 */ u8 numBombs;
- /* 94 */ u8 numBombchus;
- /* 95 */ u8 numArrows;
- /* 96 */ s8 equippedItem;
- /* 97 */ Potion potions[NUM_POTIONS];
- /* 99 */ u8 numGems[Gem_COUNT];
- /* 9c */ u8 quiverSize;
- /* 9d */ u8 bombBagSize;
- /* 9e */ u8 bombchuBagSize;
- /* 9f */ u8 unk_9f[6];
- /* a5 */ u8 equippedFairy;
- /* a6 */
-};
-
class ItemManager : public SysObject {
private:
/* 000 */ ItemFlag mEquippedItem;
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index de53ebe9..0cfa7479 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -177,7 +177,7 @@ public:
unk8 MapData_vfunc_6c();
unk8 MapData_vfunc_70();
static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
- void func_ov00_02084024(unk32 param_2, AABB *param_3);
+ void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
unk8 MapData_vfunc_54();
unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
unk8 MapData_vfunc_78();
diff --git a/include/Physics/AABB.hpp b/include/Physics/AABB.hpp
index 19ce9f38..25a7f34b 100644
--- a/include/Physics/AABB.hpp
+++ b/include/Physics/AABB.hpp
@@ -5,10 +5,23 @@
#include "nds/math.h"
+#include "Physics/Cube.hpp"
+
struct AABB {
Vec3p min;
Vec3p max;
+ bool func_ov000_0208e680();
+ void GetCenter(Vec3p *center);
+ q20 GetSizeX();
+ q20 GetSizeZ();
+ q20 GetSizeY();
bool Contains(Vec3p *vec);
bool ContainsInXZ(Vec3p *vec);
+ bool ContainsInXY(Vec3p *vec);
+ bool IntersectsCube(Cube *cube);
+ bool func_ov000_0208e87c(Cube *cube, Vec3p *vec, u32 *out);
+ void GrowToPoint(Vec3p *point);
+ void Grow(Vec3p *dimensions);
+ void GrowScalar(q20 amount);
};
diff --git a/include/Physics/Cube.hpp b/include/Physics/Cube.hpp
new file mode 100644
index 00000000..b16ac97f
--- /dev/null
+++ b/include/Physics/Cube.hpp
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "nds/math.h"
+
+struct Cube {
+ Vec3p center;
+ q20 size;
+};
diff --git a/include/Save/SaveItemManager.hpp b/include/Save/SaveItemManager.hpp
new file mode 100644
index 00000000..0f0142f8
--- /dev/null
+++ b/include/Save/SaveItemManager.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "../Item/Item.hpp"
+
+struct SaveItemManager {
+ /* 00 */ ItemFlags itemFlags;
+ /* 10 */ u32 salvagedTreasureFlags;
+ /* 14 */ ShipPartPricesShown shipPartPricesShown;
+ /* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
+ /* 24 */ u8 equippedShipParts[ShipPart_COUNT];
+ /* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
+ /* 74 */ s8 treasure[Treasure_COUNT];
+ /* 7c */ unk8 unk_7c[4];
+ /* 80 */ u16 hourglassSeconds;
+ /* 82 */ u16 unk_82[6];
+ /* 8e */ u16 numRupees;
+ /* 90 */ unk8 unk_90;
+ /* 91 */ unk8 unk_91;
+ /* 92 */ unk8 unk_92;
+ /* 93 */ u8 numBombs;
+ /* 94 */ u8 numBombchus;
+ /* 95 */ u8 numArrows;
+ /* 96 */ s8 equippedItem;
+ /* 97 */ Potion potions[MAX_POTIONS];
+ /* 99 */ u8 numGems[Gem_COUNT];
+ /* 9c */ u8 quiverSize;
+ /* 9d */ u8 bombBagSize;
+ /* 9e */ u8 bombchuBagSize;
+ /* 9f */ u8 unk_9f[6];
+ /* a5 */ u8 equippedFairy;
+ /* a6 */
+
+ SaveItemManager();
+};
diff --git a/include/global.h b/include/global.h
index 617f672f..593c720b 100644
--- a/include/global.h
+++ b/include/global.h
@@ -1,8 +1,6 @@
#ifndef PH_GLOBAL_H
#define PH_GLOBAL_H
-#define NULL 0
-
#define GET_FLAG(arr, pos) (((1 << ((pos) & 0x1f)) & (arr)[((u32) (pos)) >> 5]) != 0)
#define SET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] |= 1 << ((pos) & 0x1f))
#define RESET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] &= ~(1 << ((pos) & 0x1f)))
diff --git a/include/types.h b/include/types.h
index 0dd5ecf5..03e8352f 100644
--- a/include/types.h
+++ b/include/types.h
@@ -1,6 +1,8 @@
#ifndef PH_TYPES_H
#define PH_TYPES_H
+#include <stddef.h>
+
typedef unsigned long long u64;
typedef unsigned int u32;
typedef unsigned short u16;
diff --git a/libs/c/include/stddef.h b/libs/c/include/stddef.h
new file mode 100644
index 00000000..4986043a
--- /dev/null
+++ b/libs/c/include/stddef.h
@@ -0,0 +1,8 @@
+#ifndef _C_STDDEF_H
+#define _C_STDDEF_H
+
+#define NULL 0
+
+typedef unsigned int size_t;
+
+#endif
diff --git a/libs/c/include/string.h b/libs/c/include/string.h
index 61fde219..bd27c855 100644
--- a/libs/c/include/string.h
+++ b/libs/c/include/string.h
@@ -1,8 +1,10 @@
#ifndef _C_STRING_H
#define _C_STRING_H
-typedef unsigned int size_t;
+#include <stddef.h>
+void memcpy(void *dest, void *src, size_t count);
+void memmove(void *dest, void *src, size_t count);
void memset(void *dest, int ch, size_t count);
void *memchr(const void *ptr, int ch, size_t count);
void *memrchr(const void *ptr, int ch, size_t count);
diff --git a/libs/cpp/include/cxxabi.h b/libs/cpp/include/cxxabi.h
new file mode 100644
index 00000000..be49baba
--- /dev/null
+++ b/libs/cpp/include/cxxabi.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <stddef.h>
+
+namespace __cxxabiv1 {
+ extern "C" {
+ typedef void (*__cxa_cdtor_type)(void *);
+
+ void __cxa_vec_cleanup(void *array, size_t count, size_t elementSize, __cxa_cdtor_type dtor);
+ }
+} // namespace __cxxabiv1
diff --git a/libs/cpp/include/vector b/libs/cpp/include/vector
index 7d78e50c..37e7a4d8 100644
--- a/libs/cpp/include/vector
+++ b/libs/cpp/include/vector
@@ -1,10 +1,40 @@
#pragma once
+#include <string.h>
+
namespace std {
template <class T> class vector {
public:
- T *elements;
- int size;
- int capacity;
+ T *mElements;
+ int mSize;
+ int mCapacity;
+
+ ~vector() {
+ if (mElements != NULL) {
+ decrease_size(mSize);
+ delete mElements;
+ }
+ }
+
+ void push_back(T &value) {
+ get_new_capacity(1);
+ append_back(1, &value);
+ }
+
+ T *erase(T *first, T *last) {
+ if (first != last) {
+ int bytesToMove = (int) mElements + mSize * sizeof(T) - (int) last;
+ memmove(first, last, bytesToMove);
+ mSize -= (int) last - (int) first;
+ }
+ return first;
+ }
+
+ private:
+ void decrease_size(int amount);
+
+ int get_new_capacity(int growth);
+
+ void append_back(int length, T *items);
};
} // namespace std
diff --git a/src/00_Core/DTCM/UnkStruct_027e0d38.cpp b/src/00_Core/DTCM/UnkStruct_027e0d38.cpp
new file mode 100644
index 00000000..c9d66183
--- /dev/null
+++ b/src/00_Core/DTCM/UnkStruct_027e0d38.cpp
@@ -0,0 +1,5 @@
+#include "DTCM/UnkStruct_027e0d38.hpp"
+
+unk32 UnkStruct_027e0d38::func_ov000_02078b40() {}
+unk8 UnkStruct_027e0d38::func_ov000_02078b64() {}
+bool UnkStruct_027e0d38::func_ov000_02078b88() {}
diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index c9088647..8b7ddde1 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -1,5 +1,11 @@
#include "Item/ItemManager.hpp"
+#include "DTCM/UnkStruct_027e0d38.hpp"
+#include "DTCM/UnkStruct_027e0f78.hpp"
+#include "Map/MapManager.hpp"
+#include "Player/HealthManager.hpp"
#include "Player/PlayerLinkBase.hpp"
+#include "Save/AdventureFlags.hpp"
+#include "System/OverlayManager.hpp"
static const char *sShipPartTypes[] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
@@ -21,7 +27,7 @@ THUMB void ItemManager::ClearPrevEquippedItem() {
THUMB void ItemManager::Save(SaveItemManager *save) {
save->itemFlags = mItemFlags;
save->numRupees = mNumRupees;
- for (s32 i = 0; i < NUM_POTIONS; ++i) {
+ for (s32 i = 0; i < MAX_POTIONS; ++i) {
save->potions[i] = mPotions[i];
}
save->numBombs = (u8) (*mAmmo)[ItemFlag_BombBag];
@@ -71,7 +77,7 @@ THUMB void ItemManager::Load(const SaveItemManager *save) {
(*mAmmo)[ItemFlag_BombBag] = save->numBombs;
(*mAmmo)[ItemFlag_BombchuBag] = save->numBombchus;
(*mAmmo)[ItemFlag_Bow] = save->numArrows;
- for (s32 i = 0; i < NUM_POTIONS; ++i) {
+ for (s32 i = 0; i < MAX_POTIONS; ++i) {
mPotions[i] = save->potions[i];
}
mEquippedItem = save->equippedItem;
@@ -124,7 +130,6 @@ ARM ActorNavi *ItemManager::GetFairy(FairyId id) const {
return mFairies[id];
}
-extern UnkStruct_027e0d38 *data_027e0d38;
extern unk32 gPlayerAnimHandler;
extern "C" void LoadEquipItemModel(unk32 param1, ItemFlag param2);
extern "C" void _ZNK11ItemManager15GetEquippedItemEv();
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 69be3117..9c23a95b 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -132,7 +132,7 @@ void MapManager::func_ov00_02083f44(Vec3p *param_2) {}
unk8 MapManager::MapData_vfunc_6c() {}
unk8 MapManager::MapData_vfunc_70() {}
unk8 MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {}
-void MapManager::func_ov00_02084024(unk32 param_2, AABB *param_3) {}
+void MapManager::GetTileWorldBounds(Vec2b *tile, AABB *tileBounds) {}
unk8 MapManager::MapData_vfunc_54() {}
unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {}
unk8 MapManager::MapData_vfunc_78() {}
diff --git a/src/00_Core/Physics/AABB.cpp b/src/00_Core/Physics/AABB.cpp
new file mode 100644
index 00000000..c3d6b2e0
--- /dev/null
+++ b/src/00_Core/Physics/AABB.cpp
@@ -0,0 +1,15 @@
+#include "Physics/AABB.hpp"
+
+bool AABB::func_ov000_0208e680() {}
+void AABB::GetCenter(Vec3p *center) {}
+q20 AABB::GetSizeX() {}
+q20 AABB::GetSizeZ() {}
+q20 AABB::GetSizeY() {}
+bool AABB::Contains(Vec3p *vec) {}
+bool AABB::ContainsInXZ(Vec3p *vec) {}
+bool AABB::ContainsInXY(Vec3p *vec) {}
+bool AABB::IntersectsCube(Cube *cube) {}
+bool AABB::func_ov000_0208e87c(Cube *cube, Vec3p *vec, u32 *out) {}
+void AABB::GrowToPoint(Vec3p *point) {}
+void AABB::Grow(Vec3p *dimensions) {}
+void AABB::GrowScalar(q20 amount) {}
diff --git a/src/00_Core/Save/SaveItemManager.cpp b/src/00_Core/Save/SaveItemManager.cpp
new file mode 100644
index 00000000..8fdf2cef
--- /dev/null
+++ b/src/00_Core/Save/SaveItemManager.cpp
@@ -0,0 +1,3 @@
+#include "Save/SaveItemManager.hpp"
+
+SaveItemManager::SaveItemManager() {}
diff --git a/tools/configure.py b/tools/configure.py
index 2a8d77ee..26f7e86e 100644
--- a/tools/configure.py
+++ b/tools/configure.py
@@ -27,7 +27,7 @@ CC_FLAGS = " ".join([
"-proc arm946e", # Target processor
"-gccext,on", # Enable GCC extensions
"-fp soft", # Compute float operations in software
- "-inline on,noauto", # Inline only functions marked with 'inline'
+ "-inline noauto", # Inline only functions marked with 'inline'
"-lang=c++", # Set language to C++
"-Cpp_exceptions off", # Disable C++ exceptions
"-RTTI off", # Disable runtime type information
diff --git a/tools/mangle.py b/tools/mangle.py
index 17a69c76..e4cf872c 100644
--- a/tools/mangle.py
+++ b/tools/mangle.py
@@ -28,7 +28,7 @@ cc.extend([
'-proc', 'arm946e',
'-gccext,on',
'-fp', 'soft',
- '-inline', 'on,noauto',
+ '-inline', 'noauto',
'-Cpp_exceptions', 'off',
'-RTTI', 'off',
'-interworking',