summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2021-01-02 17:47:43 -0500
committerPheenoh <pheenoh@gmail.com>2021-01-02 17:47:43 -0500
commit458be4d8cb1dbbe06d748c4e759131e02e73b467 (patch)
tree74e4c4420ad6bb86e51765a943c11998b379886e /include
parent992cf48c7f5ae78b498197af8795ed9159e37f8b (diff)
more d_save funcs OK, initial map out of dcomifg_play_c and it's classes
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DPicture/J2DPicture.h8
-rw-r--r--include/JSystem/J2DGraph/J2DScreen/J2DScreen.h6
-rw-r--r--include/JSystem/J2DGraph/J2DTextBox/J2DTextBox.h8
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h19
-rw-r--r--include/JSystem/JKernel/JKRAram/asm/func_802D2830.s2
-rw-r--r--include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s2
-rw-r--r--include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s4
-rw-r--r--include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s2
-rw-r--r--include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s4
-rw-r--r--include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s2
-rw-r--r--include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s4
-rw-r--r--include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s2
-rw-r--r--include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s4
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/asm/func_802CF234.s2
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/asm/func_802D03B8.s2
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/asm/func_802D05CC.s2
-rw-r--r--include/JSystem/JKernel/JKRThread/asm/func_802D1C74.s2
-rw-r--r--include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s4
-rw-r--r--include/JSystem/JUtility/asm/JUTResFont__setBlock.s2
-rw-r--r--include/SComponent/c_angle/c_angle.h12
-rw-r--r--include/SComponent/c_cc_d/c_cc_d.h42
-rw-r--r--include/SComponent/c_cc_s/c_cc_s.h14
-rw-r--r--include/SComponent/c_m3d/c_m3d.h39
-rw-r--r--include/SComponent/c_xyz/c_xyz.h10
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800A093C.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800A29DC.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800A551C.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800A5CC8.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800AC610.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800AC754.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800AD170.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800AD3D8.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800B3500.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800C1F6C.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800CF380.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800D1540.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800D34D8.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800DA180.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800DA82C.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800DC678.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800E3F50.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800EF95C.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800F81C0.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800F9474.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800F95B8.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_800FA070.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80109BDC.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_8010BEF0.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80111A9C.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80112E7C.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80113D58.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_801191C4.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_801207BC.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_8012277C.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_801241E0.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80124EA8.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80126F3C.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80127F50.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_8012948C.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_8012A498.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80130BC4.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80136624.s2
-rw-r--r--include/d/d_a/d_a_alink/asm/func_801377F0.s4
-rw-r--r--include/d/d_a/d_a_alink/asm/func_80140FA0.s2
-rw-r--r--include/d/d_attention/asm/func_80070198.s4
-rw-r--r--include/d/d_attention/d_attention.h158
-rw-r--r--include/d/d_bg/d_bg_s/d_bg_s.h39
-rw-r--r--include/d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h20
-rw-r--r--include/d/d_cc/d_cc_mass_s/d_cc_mass_s.h34
-rw-r--r--include/d/d_cc/d_cc_s/d_cc_s.h16
-rw-r--r--include/d/d_com/d_com_inf_game/d_com_inf_game.h181
-rw-r--r--include/d/d_event/d_event/d_event.h206
-rw-r--r--include/d/d_event/d_event_data/d_event_data.h26
-rw-r--r--include/d/d_event/d_event_manager/d_event_manager.h37
-rw-r--r--include/d/d_meter2/d_meter2_info/d_meter2_info.h17
-rw-r--r--include/d/d_save/d_save/asm/func_800332F8.s4
-rw-r--r--include/d/d_save/d_save/asm/func_80034644.s4
-rw-r--r--include/d/d_save/d_save/d_save.h540
-rw-r--r--include/d/d_stage/d_stage.h39
-rw-r--r--include/d/d_vibration/d_vibration.h47
-rw-r--r--include/functions.h30
-rw-r--r--include/m_Do/m_Do_ext/m_Do_ext.h48
-rw-r--r--include/variables.h6
83 files changed, 1330 insertions, 440 deletions
diff --git a/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h
new file mode 100644
index 0000000000..35d90e7b20
--- /dev/null
+++ b/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h
@@ -0,0 +1,8 @@
+#ifndef __J2DPICTURE_H_
+#define __J2DPICTURE_H_
+
+#include "global.h"
+
+class J2DPicture{};
+
+#endif \ No newline at end of file
diff --git a/include/JSystem/J2DGraph/J2DScreen/J2DScreen.h b/include/JSystem/J2DGraph/J2DScreen/J2DScreen.h
index 52cffc57a2..c917c070f3 100644
--- a/include/JSystem/J2DGraph/J2DScreen/J2DScreen.h
+++ b/include/JSystem/J2DGraph/J2DScreen/J2DScreen.h
@@ -1,5 +1,7 @@
-#ifndef J2DSCREEN_H_
-#define J2DSCREEN_H_
+#ifndef __J2DSCREEN_H_
+#define __J2DSCREEN_H_
+
+#include "global.h"
class J2DScreen {};
diff --git a/include/JSystem/J2DGraph/J2DTextBox/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox/J2DTextBox.h
new file mode 100644
index 0000000000..15d6edf34c
--- /dev/null
+++ b/include/JSystem/J2DGraph/J2DTextBox/J2DTextBox.h
@@ -0,0 +1,8 @@
+#ifndef __J2DTEXTBOX_H_
+#define __J2DTEXTBOX_H_
+
+#include "global.h"
+
+class J2DTextBox{};
+
+#endif \ No newline at end of file
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
new file mode 100644
index 0000000000..bebf803743
--- /dev/null
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -0,0 +1,19 @@
+#ifndef __J3DANIMATION_H_
+#define __J3DANIMATION_H_
+
+#include "global.h"
+
+class J3DFrameCtrl {
+public:
+private:
+ void* vtable;
+ u8 field_0x4;
+ u8 field_0x5;
+ u16 field_0x6;
+ s16 field_0x8;
+ u16 field_0xa;
+ float field_0xc;
+ float field_0x10;
+};
+
+#endif \ No newline at end of file
diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s
index cf2f3592a3..84e5d17878 100644
--- a/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s
+++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s
@@ -4,7 +4,7 @@
/* 802D2834 002CF774 7C 08 02 A6 */ mflr r0
/* 802D2838 002CF778 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D283C 002CF77C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802D2840 002CF780 48 08 F9 8D */ bl func_803621CC
+/* 802D2840 002CF780 48 08 F9 8D */ bl _savegpr_25
/* 802D2844 002CF784 7C 7A 1B 78 */ mr r26, r3
/* 802D2848 002CF788 7C 9B 23 78 */ mr r27, r4
/* 802D284C 002CF78C 7C BC 2B 78 */ mr r28, r5
diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s
index aa79dd2ac0..18cac1905e 100644
--- a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s
+++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s
@@ -4,7 +4,7 @@
/* 802D3618 002D0558 7C 08 02 A6 */ mflr r0
/* 802D361C 002D055C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D3620 002D0560 39 61 00 30 */ addi r11, r1, 0x30
-/* 802D3624 002D0564 48 08 EB A9 */ bl func_803621CC
+/* 802D3624 002D0564 48 08 EB A9 */ bl _savegpr_25
/* 802D3628 002D0568 7C 7A 1B 78 */ mr r26, r3
/* 802D362C 002D056C 7C 9B 23 78 */ mr r27, r4
/* 802D3630 002D0570 7C BC 2B 78 */ mr r28, r5
diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s
index c5aa5f9a6b..11970ccc3e 100644
--- a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s
+++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s
@@ -4,7 +4,7 @@
/* 802D3CE4 002D0C24 7C 08 02 A6 */ mflr r0
/* 802D3CE8 002D0C28 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D3CEC 002D0C2C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802D3CF0 002D0C30 48 08 E4 D9 */ bl func_803621C8
+/* 802D3CF0 002D0C30 48 08 E4 D9 */ bl _savegpr_24
/* 802D3CF4 002D0C34 7C 78 1B 78 */ mr r24, r3
/* 802D3CF8 002D0C38 83 C3 00 08 */ lwz r30, 8(r3)
/* 802D3CFC 002D0C3C 83 A3 00 14 */ lwz r29, 0x14(r3)
@@ -134,7 +134,7 @@ lbl_802D3EA4:
/* 802D3EB0 002D0DF0 48 06 AB 45 */ bl OSSendMessage
/* 802D3EB4 002D0DF4 7F 83 E3 78 */ mr r3, r28
/* 802D3EB8 002D0DF8 39 61 00 30 */ addi r11, r1, 0x30
-/* 802D3EBC 002D0DFC 48 08 E3 59 */ bl func_80362214
+/* 802D3EBC 002D0DFC 48 08 E3 59 */ bl _restgpr_24
/* 802D3EC0 002D0E00 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802D3EC4 002D0E04 7C 08 03 A6 */ mtlr r0
/* 802D3EC8 002D0E08 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s
index 94e7d9f6e0..ad0584f715 100644
--- a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s
+++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s
@@ -4,7 +4,7 @@
/* 802D89C0 002D5900 7C 08 02 A6 */ mflr r0
/* 802D89C4 002D5904 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D89C8 002D5908 39 61 00 30 */ addi r11, r1, 0x30
-/* 802D89CC 002D590C 48 08 98 01 */ bl func_803621CC
+/* 802D89CC 002D590C 48 08 98 01 */ bl _savegpr_25
/* 802D89D0 002D5910 7C 7F 1B 78 */ mr r31, r3
/* 802D89D4 002D5914 7C 9A 23 78 */ mr r26, r4
/* 802D89D8 002D5918 38 00 00 00 */ li r0, 0
diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s
index 107159f6b1..227d7f6f41 100644
--- a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s
+++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s
@@ -4,7 +4,7 @@
/* 802DA9C4 002D7904 7C 08 02 A6 */ mflr r0
/* 802DA9C8 002D7908 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DA9CC 002D790C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DA9D0 002D7910 48 08 77 F9 */ bl func_803621C8
+/* 802DA9D0 002D7910 48 08 77 F9 */ bl _savegpr_24
/* 802DA9D4 002D7914 7C 78 1B 78 */ mr r24, r3
/* 802DA9D8 002D7918 7C 99 23 78 */ mr r25, r4
/* 802DA9DC 002D791C 7C BA 2B 78 */ mr r26, r5
@@ -43,7 +43,7 @@ lbl_802DAA58:
/* 802DAA58 002D7998 7F E3 FB 78 */ mr r3, r31
lbl_802DAA5C:
/* 802DAA5C 002D799C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DAA60 002D79A0 48 08 77 B5 */ bl func_80362214
+/* 802DAA60 002D79A0 48 08 77 B5 */ bl _restgpr_24
/* 802DAA64 002D79A4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802DAA68 002D79A8 7C 08 03 A6 */ mtlr r0
/* 802DAA6C 002D79AC 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s
index d2a7845114..5d13010788 100644
--- a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s
+++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s
@@ -4,7 +4,7 @@
/* 802DAA78 002D79B8 7C 08 02 A6 */ mflr r0
/* 802DAA7C 002D79BC 90 01 00 74 */ stw r0, 0x74(r1)
/* 802DAA80 002D79C0 39 61 00 70 */ addi r11, r1, 0x70
-/* 802DAA84 002D79C4 48 08 77 49 */ bl func_803621CC
+/* 802DAA84 002D79C4 48 08 77 49 */ bl _savegpr_25
/* 802DAA88 002D79C8 7C 7D 1B 78 */ mr r29, r3
/* 802DAA8C 002D79CC 3B E0 00 01 */ li r31, 1
/* 802DAA90 002D79D0 83 C3 00 28 */ lwz r30, 0x28(r3)
diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s
index 8f0bab04f7..88c813916d 100644
--- a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s
+++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s
@@ -4,7 +4,7 @@
/* 802DAFEC 002D7F2C 7C 08 02 A6 */ mflr r0
/* 802DAFF0 002D7F30 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DAFF4 002D7F34 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DAFF8 002D7F38 48 08 71 D1 */ bl func_803621C8
+/* 802DAFF8 002D7F38 48 08 71 D1 */ bl _savegpr_24
/* 802DAFFC 002D7F3C 7C 79 1B 78 */ mr r25, r3
/* 802DB000 002D7F40 7C 9A 23 78 */ mr r26, r4
/* 802DB004 002D7F44 7C BB 2B 78 */ mr r27, r5
@@ -94,7 +94,7 @@ lbl_802DB114:
/* 802DB140 002D8080 48 06 3F DD */ bl OSUnlockMutex
/* 802DB144 002D8084 7F 23 CB 78 */ mr r3, r25
/* 802DB148 002D8088 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DB14C 002D808C 48 08 70 C9 */ bl func_80362214
+/* 802DB14C 002D808C 48 08 70 C9 */ bl _restgpr_24
/* 802DB150 002D8090 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802DB154 002D8094 7C 08 03 A6 */ mtlr r0
/* 802DB158 002D8098 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s
index 4b504daf08..9620f15949 100644
--- a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s
+++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s
@@ -4,7 +4,7 @@
/* 802D8478 002D53B8 7C 08 02 A6 */ mflr r0
/* 802D847C 002D53BC 90 01 00 74 */ stw r0, 0x74(r1)
/* 802D8480 002D53C0 39 61 00 70 */ addi r11, r1, 0x70
-/* 802D8484 002D53C4 48 08 9D 49 */ bl func_803621CC
+/* 802D8484 002D53C4 48 08 9D 49 */ bl _savegpr_25
/* 802D8488 002D53C8 7C 7D 1B 78 */ mr r29, r3
/* 802D848C 002D53CC 7C 9E 23 78 */ mr r30, r4
/* 802D8490 002D53D0 7C B9 2B 78 */ mr r25, r5
diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s
index 96ddefc380..7afadde3ee 100644
--- a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s
+++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s
@@ -4,7 +4,7 @@
/* 802DA1E8 002D7128 7C 08 02 A6 */ mflr r0
/* 802DA1EC 002D712C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DA1F0 002D7130 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DA1F4 002D7134 48 08 7F D5 */ bl func_803621C8
+/* 802DA1F4 002D7134 48 08 7F D5 */ bl _savegpr_24
/* 802DA1F8 002D7138 7C 79 1B 78 */ mr r25, r3
/* 802DA1FC 002D713C 7C 9A 23 78 */ mr r26, r4
/* 802DA200 002D7140 7C BB 2B 78 */ mr r27, r5
@@ -97,7 +97,7 @@ lbl_802DA324:
/* 802DA33C 002D727C 48 06 4D E1 */ bl OSUnlockMutex
/* 802DA340 002D7280 7F 03 C3 78 */ mr r3, r24
/* 802DA344 002D7284 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DA348 002D7288 48 08 7E CD */ bl func_80362214
+/* 802DA348 002D7288 48 08 7E CD */ bl _restgpr_24
/* 802DA34C 002D728C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802DA350 002D7290 7C 08 03 A6 */ mtlr r0
/* 802DA354 002D7294 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CF234.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CF234.s
index 5a11a1f51e..556672dc51 100644
--- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CF234.s
+++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CF234.s
@@ -4,7 +4,7 @@
/* 802CF238 002CC178 7C 08 02 A6 */ mflr r0
/* 802CF23C 002CC17C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802CF240 002CC180 39 61 00 30 */ addi r11, r1, 0x30
-/* 802CF244 002CC184 48 09 2F 89 */ bl func_803621CC
+/* 802CF244 002CC184 48 09 2F 89 */ bl _savegpr_25
/* 802CF248 002CC188 7C 7D 1B 78 */ mr r29, r3
/* 802CF24C 002CC18C 38 04 00 03 */ addi r0, r4, 3
/* 802CF250 002CC190 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d
diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D03B8.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D03B8.s
index 5bc3540b37..2a610361c4 100644
--- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D03B8.s
+++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D03B8.s
@@ -4,7 +4,7 @@
/* 802D03BC 002CD2FC 7C 08 02 A6 */ mflr r0
/* 802D03C0 002CD300 90 01 00 44 */ stw r0, 0x44(r1)
/* 802D03C4 002CD304 39 61 00 40 */ addi r11, r1, 0x40
-/* 802D03C8 002CD308 48 09 1E 05 */ bl func_803621CC
+/* 802D03C8 002CD308 48 09 1E 05 */ bl _savegpr_25
/* 802D03CC 002CD30C 7C 7A 1B 78 */ mr r26, r3
/* 802D03D0 002CD310 38 7A 00 18 */ addi r3, r26, 0x18
/* 802D03D4 002CD314 48 06 EC 6D */ bl OSLockMutex
diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D05CC.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D05CC.s
index 3110df3f26..e7af7e2b81 100644
--- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D05CC.s
+++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D05CC.s
@@ -4,7 +4,7 @@
/* 802D05D0 002CD510 7C 08 02 A6 */ mflr r0
/* 802D05D4 002CD514 90 01 00 44 */ stw r0, 0x44(r1)
/* 802D05D8 002CD518 39 61 00 40 */ addi r11, r1, 0x40
-/* 802D05DC 002CD51C 48 09 1B F1 */ bl func_803621CC
+/* 802D05DC 002CD51C 48 09 1B F1 */ bl _savegpr_25
/* 802D05E0 002CD520 7C 79 1B 78 */ mr r25, r3
/* 802D05E4 002CD524 38 79 00 18 */ addi r3, r25, 0x18
/* 802D05E8 002CD528 48 06 EA 59 */ bl OSLockMutex
diff --git a/include/JSystem/JKernel/JKRThread/asm/func_802D1C74.s b/include/JSystem/JKernel/JKRThread/asm/func_802D1C74.s
index 3d501ed482..d5b4811bc5 100644
--- a/include/JSystem/JKernel/JKRThread/asm/func_802D1C74.s
+++ b/include/JSystem/JKernel/JKRThread/asm/func_802D1C74.s
@@ -4,7 +4,7 @@
/* 802D1C80 002CEBC0 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 802D1C84 002CEBC4 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
/* 802D1C88 002CEBC8 39 61 00 40 */ addi r11, r1, 0x40
-/* 802D1C8C 002CEBCC 48 09 05 41 */ bl func_803621CC
+/* 802D1C8C 002CEBCC 48 09 05 41 */ bl _savegpr_25
/* 802D1C90 002CEBD0 7C 7A 1B 78 */ mr r26, r3
/* 802D1C94 002CEBD4 7C 9B 23 78 */ mr r27, r4
/* 802D1C98 002CEBD8 7C BC 2B 79 */ or. r28, r5, r5
diff --git a/include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s b/include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s
index f527c02d56..946c19c7ff 100644
--- a/include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s
+++ b/include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s
@@ -7,7 +7,7 @@
/* 802E08FC 002DD83C 3B E3 43 D8 */ addi r31, r3, lbl_804343D8@l
/* 802E0900 002DD840 38 7F 00 18 */ addi r3, r31, 0x18
/* 802E0904 002DD844 48 06 E5 9D */ bl PADRead
-/* 802E0908 002DD848 90 6D 8F 60 */ stw r3, lbl_804514E0-_SDA_BASE_(r13)
+/* 802E0908 002DD848 90 6D 8F 60 */ stw r3, _sRumbleSupported-_SDA_BASE_(r13)
/* 802E090C 002DD84C 80 0D 83 5C */ lwz r0, lbl_804508DC-_SDA_BASE_(r13)
/* 802E0910 002DD850 2C 00 00 02 */ cmpwi r0, 2
/* 802E0914 002DD854 41 82 00 20 */ beq lbl_802E0934
@@ -187,7 +187,7 @@ lbl_802E0B84:
/* 802E0B98 002DDAD8 48 06 DF 95 */ bl PADReset
lbl_802E0B9C:
/* 802E0B9C 002DDADC 48 00 04 09 */ bl checkResetSwitch__10JUTGamePadFv
-/* 802E0BA0 002DDAE0 80 6D 8F 60 */ lwz r3, lbl_804514E0-_SDA_BASE_(r13)
+/* 802E0BA0 002DDAE0 80 6D 8F 60 */ lwz r3, _sRumbleSupported-_SDA_BASE_(r13)
/* 802E0BA4 002DDAE4 39 61 00 40 */ addi r11, r1, 0x40
/* 802E0BA8 002DDAE8 48 08 16 65 */ bl func_8036220C
/* 802E0BAC 002DDAEC 80 01 00 44 */ lwz r0, 0x44(r1)
diff --git a/include/JSystem/JUtility/asm/JUTResFont__setBlock.s b/include/JSystem/JUtility/asm/JUTResFont__setBlock.s
index 445bbb3003..94a17a9da3 100644
--- a/include/JSystem/JUtility/asm/JUTResFont__setBlock.s
+++ b/include/JSystem/JUtility/asm/JUTResFont__setBlock.s
@@ -2,7 +2,7 @@
/* 802DF348 002DC288 7C 08 02 A6 */ mflr r0
/* 802DF34C 002DC28C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DF350 002DC290 39 61 00 30 */ addi r11, r1, 0x30
-/* 802DF354 002DC294 48 08 2E 79 */ bl func_803621CC
+/* 802DF354 002DC294 48 08 2E 79 */ bl _savegpr_25
/* 802DF358 002DC298 7C 7C 1B 78 */ mr r28, r3
/* 802DF35C 002DC29C 3B 60 00 00 */ li r27, 0
/* 802DF360 002DC2A0 3B 40 00 00 */ li r26, 0
diff --git a/include/SComponent/c_angle/c_angle.h b/include/SComponent/c_angle/c_angle.h
new file mode 100644
index 0000000000..03ae0e541a
--- /dev/null
+++ b/include/SComponent/c_angle/c_angle.h
@@ -0,0 +1,12 @@
+#ifndef __C_ANGLE_H_
+#define __C_ANGLE_H_
+
+#include "global.h"
+
+class cSAngle {
+public:
+private:
+ s16 value;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_cc_d/c_cc_d.h b/include/SComponent/c_cc_d/c_cc_d.h
new file mode 100644
index 0000000000..593c9e2c02
--- /dev/null
+++ b/include/SComponent/c_cc_d/c_cc_d.h
@@ -0,0 +1,42 @@
+#ifndef __C_CC_D_H_
+#define __C_CC_D_H_
+
+#include "SComponent/c_m3d/c_m3d.h"
+#include "global.h"
+
+class cCcD_ShapeAttr {
+public:
+private:
+ cM3dGAab cm3dgaab;
+ void* vtable;
+};
+
+class cCcD_CpsAttr {
+public:
+private:
+ cCcD_ShapeAttr cccd_shapeattr;
+ cM3dGCps cm3dgcps;
+};
+
+class cCcD_CylAttr {
+public:
+private:
+ cCcD_ShapeAttr cccd_shapeattr;
+ cM3dGCyl cm3dgcyl;
+};
+
+class cCcD_DivideInfo {
+public:
+private:
+ u8 field_0x0[12];
+ void* vtable;
+};
+
+class cCcD_DivideArea {
+public:
+private:
+ cM3dGAab cM3dGAab;
+ void* vtable;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_cc_s/c_cc_s.h b/include/SComponent/c_cc_s/c_cc_s.h
new file mode 100644
index 0000000000..06ce04692a
--- /dev/null
+++ b/include/SComponent/c_cc_s/c_cc_s.h
@@ -0,0 +1,14 @@
+#ifndef __C_CC_S_H_
+#define __C_CC_S_H_
+
+#include "global.h"
+#include "SComponent/c_cc_d/c_cc_d.h"
+
+class cCcS {
+public:
+private:
+ u8 field_0x0[10260];
+ cCcD_DivideArea cccd_dividearea;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_m3d/c_m3d.h b/include/SComponent/c_m3d/c_m3d.h
new file mode 100644
index 0000000000..c448bb5e43
--- /dev/null
+++ b/include/SComponent/c_m3d/c_m3d.h
@@ -0,0 +1,39 @@
+#ifndef __C_M3D_H_
+#define __C_M3D_H_
+
+#include "SComponent/c_xyz/c_xyz.h"
+#include "global.h"
+
+class cM3dGLin_members {
+public:
+private:
+ cXyz start;
+ cXyz end;
+};
+
+class cM3dGCps {
+public:
+private:
+ cM3dGLin_members base;
+ void* vtable;
+ float field_0x1c;
+};
+
+class cM3dGCyl { /* Cylinder class */
+public:
+private:
+ cXyz center;
+ float radius;
+ float height;
+ void* vtable;
+};
+
+class cM3dGAab { /* Axis-aligned bounding box */
+public:
+private:
+ cXyz min;
+ cXyz max;
+ void* vtable;
+};
+
+#endif \ No newline at end of file
diff --git a/include/SComponent/c_xyz/c_xyz.h b/include/SComponent/c_xyz/c_xyz.h
new file mode 100644
index 0000000000..c70f940b4e
--- /dev/null
+++ b/include/SComponent/c_xyz/c_xyz.h
@@ -0,0 +1,10 @@
+#ifndef __C_XYZ_H_
+#define __C_XYZ_H_
+#include "global.h"
+
+class cXyz {
+public:
+ float x, y, z;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_a/d_a_alink/asm/func_800A093C.s b/include/d/d_a/d_a_alink/asm/func_800A093C.s
index 482ce4f3cf..962e99b80d 100644
--- a/include/d/d_a/d_a_alink/asm/func_800A093C.s
+++ b/include/d/d_a/d_a_alink/asm/func_800A093C.s
@@ -2,7 +2,7 @@
/* 800A0940 0009D880 7C 08 02 A6 */ mflr r0
/* 800A0944 0009D884 90 01 00 64 */ stw r0, 0x64(r1)
/* 800A0948 0009D888 39 61 00 60 */ addi r11, r1, 0x60
-/* 800A094C 0009D88C 48 2C 18 7D */ bl func_803621C8
+/* 800A094C 0009D88C 48 2C 18 7D */ bl _savegpr_24
/* 800A0950 0009D890 7C 7F 1B 78 */ mr r31, r3
/* 800A0954 0009D894 7C 9B 23 78 */ mr r27, r4
/* 800A0958 0009D898 7C BC 2B 78 */ mr r28, r5
@@ -762,7 +762,7 @@ lbl_800A1410:
/* 800A1410 0009E350 38 60 00 00 */ li r3, 0
lbl_800A1414:
/* 800A1414 0009E354 39 61 00 60 */ addi r11, r1, 0x60
-/* 800A1418 0009E358 48 2C 0D FD */ bl func_80362214
+/* 800A1418 0009E358 48 2C 0D FD */ bl _restgpr_24
/* 800A141C 0009E35C 80 01 00 64 */ lwz r0, 0x64(r1)
/* 800A1420 0009E360 7C 08 03 A6 */ mtlr r0
/* 800A1424 0009E364 38 21 00 60 */ addi r1, r1, 0x60
diff --git a/include/d/d_a/d_a_alink/asm/func_800A29DC.s b/include/d/d_a/d_a_alink/asm/func_800A29DC.s
index c8a7e015a9..d3ab771f48 100644
--- a/include/d/d_a/d_a_alink/asm/func_800A29DC.s
+++ b/include/d/d_a/d_a_alink/asm/func_800A29DC.s
@@ -2,7 +2,7 @@
/* 800A29E0 0009F920 7C 08 02 A6 */ mflr r0
/* 800A29E4 0009F924 90 01 00 44 */ stw r0, 0x44(r1)
/* 800A29E8 0009F928 39 61 00 40 */ addi r11, r1, 0x40
-/* 800A29EC 0009F92C 48 2B F7 DD */ bl func_803621C8
+/* 800A29EC 0009F92C 48 2B F7 DD */ bl _savegpr_24
/* 800A29F0 0009F930 7C 79 1B 78 */ mr r25, r3
/* 800A29F4 0009F934 3C 60 80 39 */ lis r3, lbl_8038D658@ha
/* 800A29F8 0009F938 3B A3 D6 58 */ addi r29, r3, lbl_8038D658@l
@@ -147,7 +147,7 @@ lbl_800A2C08:
/* 800A2C08 0009FB48 38 60 00 01 */ li r3, 1
lbl_800A2C0C:
/* 800A2C0C 0009FB4C 39 61 00 40 */ addi r11, r1, 0x40
-/* 800A2C10 0009FB50 48 2B F6 05 */ bl func_80362214
+/* 800A2C10 0009FB50 48 2B F6 05 */ bl _restgpr_24
/* 800A2C14 0009FB54 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800A2C18 0009FB58 7C 08 03 A6 */ mtlr r0
/* 800A2C1C 0009FB5C 38 21 00 40 */ addi r1, r1, 0x40
diff --git a/include/d/d_a/d_a_alink/asm/func_800A551C.s b/include/d/d_a/d_a_alink/asm/func_800A551C.s
index e193ff2581..cf66576fea 100644
--- a/include/d/d_a/d_a_alink/asm/func_800A551C.s
+++ b/include/d/d_a/d_a_alink/asm/func_800A551C.s
@@ -2,7 +2,7 @@
/* 800A5520 000A2460 7C 08 02 A6 */ mflr r0
/* 800A5524 000A2464 90 01 00 34 */ stw r0, 0x34(r1)
/* 800A5528 000A2468 39 61 00 30 */ addi r11, r1, 0x30
-/* 800A552C 000A246C 48 2B CC 9D */ bl func_803621C8
+/* 800A552C 000A246C 48 2B CC 9D */ bl _savegpr_24
/* 800A5530 000A2470 7C 78 1B 78 */ mr r24, r3
/* 800A5534 000A2474 3C 80 80 39 */ lis r4, lbl_8038D658@ha
/* 800A5538 000A2478 3B A4 D6 58 */ addi r29, r4, lbl_8038D658@l
@@ -540,7 +540,7 @@ lbl_800A5CA4:
lbl_800A5CAC:
/* 800A5CAC 000A2BEC 7F 43 D3 78 */ mr r3, r26
/* 800A5CB0 000A2BF0 39 61 00 30 */ addi r11, r1, 0x30
-/* 800A5CB4 000A2BF4 48 2B C5 61 */ bl func_80362214
+/* 800A5CB4 000A2BF4 48 2B C5 61 */ bl _restgpr_24
/* 800A5CB8 000A2BF8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800A5CBC 000A2BFC 7C 08 03 A6 */ mtlr r0
/* 800A5CC0 000A2C00 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/d/d_a/d_a_alink/asm/func_800A5CC8.s b/include/d/d_a/d_a_alink/asm/func_800A5CC8.s
index bde7009aa6..a95e65359b 100644
--- a/include/d/d_a/d_a_alink/asm/func_800A5CC8.s
+++ b/include/d/d_a/d_a_alink/asm/func_800A5CC8.s
@@ -2,7 +2,7 @@
/* 800A5CCC 000A2C0C 7C 08 02 A6 */ mflr r0
/* 800A5CD0 000A2C10 90 01 00 54 */ stw r0, 0x54(r1)
/* 800A5CD4 000A2C14 39 61 00 50 */ addi r11, r1, 0x50
-/* 800A5CD8 000A2C18 48 2B C4 F1 */ bl func_803621C8
+/* 800A5CD8 000A2C18 48 2B C4 F1 */ bl _savegpr_24
/* 800A5CDC 000A2C1C 7C 7F 1B 78 */ mr r31, r3
/* 800A5CE0 000A2C20 80 03 04 A0 */ lwz r0, 0x4a0(r3)
/* 800A5CE4 000A2C24 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
@@ -646,7 +646,7 @@ lbl_800A65F0:
/* 800A65F0 000A3530 38 60 00 04 */ li r3, 4
lbl_800A65F4:
/* 800A65F4 000A3534 39 61 00 50 */ addi r11, r1, 0x50
-/* 800A65F8 000A3538 48 2B BC 1D */ bl func_80362214
+/* 800A65F8 000A3538 48 2B BC 1D */ bl _restgpr_24
/* 800A65FC 000A353C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 800A6600 000A3540 7C 08 03 A6 */ mtlr r0
/* 800A6604 000A3544 38 21 00 50 */ addi r1, r1, 0x50
diff --git a/include/d/d_a/d_a_alink/asm/func_800AC610.s b/include/d/d_a/d_a_alink/asm/func_800AC610.s
index 8240f89e8f..fde3f06c7d 100644
--- a/include/d/d_a/d_a_alink/asm/func_800AC610.s
+++ b/include/d/d_a/d_a_alink/asm/func_800AC610.s
@@ -2,7 +2,7 @@
/* 800AC614 000A9554 7C 08 02 A6 */ mflr r0
/* 800AC618 000A9558 90 01 00 34 */ stw r0, 0x34(r1)
/* 800AC61C 000A955C 39 61 00 30 */ addi r11, r1, 0x30
-/* 800AC620 000A9560 48 2B 5B A9 */ bl func_803621C8
+/* 800AC620 000A9560 48 2B 5B A9 */ bl _savegpr_24
/* 800AC624 000A9564 7C 7C 1B 78 */ mr r28, r3
/* 800AC628 000A9568 7C BF 2B 78 */ mr r31, r5
/* 800AC62C 000A956C 7C DD 33 78 */ mr r29, r6
@@ -74,7 +74,7 @@ lbl_800AC708:
lbl_800AC71C:
/* 800AC71C 000A965C 7F E3 FB 78 */ mr r3, r31
/* 800AC720 000A9660 39 61 00 30 */ addi r11, r1, 0x30
-/* 800AC724 000A9664 48 2B 5A F1 */ bl func_80362214
+/* 800AC724 000A9664 48 2B 5A F1 */ bl _restgpr_24
/* 800AC728 000A9668 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800AC72C 000A966C 7C 08 03 A6 */ mtlr r0
/* 800AC730 000A9670 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/d/d_a/d_a_alink/asm/func_800AC754.s b/include/d/d_a/d_a_alink/asm/func_800AC754.s
index 624a99cdcc..1e0b381ed2 100644
--- a/include/d/d_a/d_a_alink/asm/func_800AC754.s
+++ b/include/d/d_a/d_a_alink/asm/func_800AC754.s
@@ -14,7 +14,7 @@
/* 800AC788 000A96C8 DB 41 00 50 */ stfd f26, 0x50(r1)
/* 800AC78C 000A96CC F3 41 00 58 */ psq_st f26, 88(r1), 0, 0
/* 800AC790 000A96D0 39 61 00 50 */ addi r11, r1, 0x50
-/* 800AC794 000A96D4 48 2B 5A 35 */ bl func_803621C8
+/* 800AC794 000A96D4 48 2B 5A 35 */ bl _savegpr_24
/* 800AC798 000A96D8 7C 78 1B 78 */ mr r24, r3
/* 800AC79C 000A96DC 7C 99 23 78 */ mr r25, r4
/* 800AC7A0 000A96E0 7C BA 2B 78 */ mr r26, r5
@@ -178,7 +178,7 @@ lbl_800AC9C8:
/* 800AC9F4 000A9934 E3 41 00 58 */ psq_l f26, 88(r1), 0, 0
/* 800AC9F8 000A9938 CB 41 00 50 */ lfd f26, 0x50(r1)
/* 800AC9FC 000A993C 39 61 00 50 */ addi r11, r1, 0x50
-/* 800ACA00 000A9940 48 2B 58 15 */ bl func_80362214
+/* 800ACA00 000A9940 48 2B 58 15 */ bl _restgpr_24
/* 800ACA04 000A9944 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 800ACA08 000A9948 7C 08 03 A6 */ mtlr r0
/* 800ACA0C 000A994C 38 21 00 B0 */ addi r1, r1, 0xb0
diff --git a/include/d/d_a/d_a_alink/asm/func_800AD170.s b/include/d/d_a/d_a_alink/asm/func_800AD170.s
index 0e4b3fccca..92249a59ab 100644
--- a/include/d/d_a/d_a_alink/asm/func_800AD170.s
+++ b/include/d/d_a/d_a_alink/asm/func_800AD170.s
@@ -2,7 +2,7 @@
/* 800AD174 000AA0B4 7C 08 02 A6 */ mflr r0
/* 800AD178 000AA0B8 90 01 00 34 */ stw r0, 0x34(r1)
/* 800AD17C 000AA0BC 39 61 00 30 */ addi r11, r1, 0x30
-/* 800AD180 000AA0C0 48 2B 50 49 */ bl func_803621C8
+/* 800AD180 000AA0C0 48 2B 50 49 */ bl _savegpr_24
/* 800AD184 000AA0C4 7C 7F 1B 78 */ mr r31, r3
/* 800AD188 000AA0C8 83 83 1F 2C */ lwz r28, 0x1f2c(r3)
/* 800AD18C 000AA0CC 83 63 1F 34 */ lwz r27, 0x1f34(r3)
@@ -93,7 +93,7 @@ lbl_800AD2B0:
/* 800AD2B8 000AA1F8 80 7F 06 F8 */ lwz r3, 0x6f8(r31)
/* 800AD2BC 000AA1FC 4B FF BF 8D */ bl daAlink_c_NS_simpleAnmPlay
/* 800AD2C0 000AA200 39 61 00 30 */ addi r11, r1, 0x30
-/* 800AD2C4 000AA204 48 2B 4F 51 */ bl func_80362214
+/* 800AD2C4 000AA204 48 2B 4F 51 */ bl _restgpr_24
/* 800AD2C8 000AA208 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800AD2CC 000AA20C 7C 08 03 A6 */ mtlr r0
/* 800AD2D0 000AA210 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/d/d_a/d_a_alink/asm/func_800AD3D8.s b/include/d/d_a/d_a_alink/asm/func_800AD3D8.s
index 402864709e..3253365c2f 100644
--- a/include/d/d_a/d_a_alink/asm/func_800AD3D8.s
+++ b/include/d/d_a/d_a_alink/asm/func_800AD3D8.s
@@ -10,7 +10,7 @@
/* 800AD3FC 000AA33C DB 81 00 30 */ stfd f28, 0x30(r1)
/* 800AD400 000AA340 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0
/* 800AD404 000AA344 39 61 00 30 */ addi r11, r1, 0x30
-/* 800AD408 000AA348 48 2B 4D C5 */ bl func_803621CC
+/* 800AD408 000AA348 48 2B 4D C5 */ bl _savegpr_25
/* 800AD40C 000AA34C 7C 7A 1B 78 */ mr r26, r3
/* 800AD410 000AA350 7C 9B 23 78 */ mr r27, r4
/* 800AD414 000AA354 7C BC 2B 78 */ mr r28, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_800B3500.s b/include/d/d_a/d_a_alink/asm/func_800B3500.s
index 7e0bad0be6..3818855066 100644
--- a/include/d/d_a/d_a_alink/asm/func_800B3500.s
+++ b/include/d/d_a/d_a_alink/asm/func_800B3500.s
@@ -2,7 +2,7 @@
/* 800B3504 000B0444 7C 08 02 A6 */ mflr r0
/* 800B3508 000B0448 90 01 00 34 */ stw r0, 0x34(r1)
/* 800B350C 000B044C 39 61 00 30 */ addi r11, r1, 0x30
-/* 800B3510 000B0450 48 2A EC BD */ bl func_803621CC
+/* 800B3510 000B0450 48 2A EC BD */ bl _savegpr_25
/* 800B3514 000B0454 7C 7D 1B 78 */ mr r29, r3
/* 800B3518 000B0458 3B E0 00 01 */ li r31, 1
/* 800B351C 000B045C 7F FE FB 78 */ mr r30, r31
diff --git a/include/d/d_a/d_a_alink/asm/func_800C1F6C.s b/include/d/d_a/d_a_alink/asm/func_800C1F6C.s
index 57281d2404..7014d012a7 100644
--- a/include/d/d_a/d_a_alink/asm/func_800C1F6C.s
+++ b/include/d/d_a/d_a_alink/asm/func_800C1F6C.s
@@ -2,7 +2,7 @@
/* 800C1F70 000BEEB0 7C 08 02 A6 */ mflr r0
/* 800C1F74 000BEEB4 90 01 00 34 */ stw r0, 0x34(r1)
/* 800C1F78 000BEEB8 39 61 00 30 */ addi r11, r1, 0x30
-/* 800C1F7C 000BEEBC 48 2A 02 51 */ bl func_803621CC
+/* 800C1F7C 000BEEBC 48 2A 02 51 */ bl _savegpr_25
/* 800C1F80 000BEEC0 7C 79 1B 78 */ mr r25, r3
/* 800C1F84 000BEEC4 7C 9A 23 78 */ mr r26, r4
/* 800C1F88 000BEEC8 A0 A3 2F E8 */ lhz r5, 0x2fe8(r3)
diff --git a/include/d/d_a/d_a_alink/asm/func_800CF380.s b/include/d/d_a/d_a_alink/asm/func_800CF380.s
index 1290aa6cf2..450111caca 100644
--- a/include/d/d_a/d_a_alink/asm/func_800CF380.s
+++ b/include/d/d_a/d_a_alink/asm/func_800CF380.s
@@ -144,7 +144,7 @@
/* 800CF584 000CC4C4 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
/* 800CF588 000CC4C8 90 1A 01 1C */ stw r0, 0x11c(r26)
/* 800CF58C 000CC4CC 38 7A 01 24 */ addi r3, r26, 0x124
-/* 800CF590 000CC4D0 48 19 F9 F9 */ bl cM3dGCps
+/* 800CF590 000CC4D0 48 19 F9 F9 */ bl __ct__8cM3dGCpsFv
/* 800CF594 000CC4D4 3C 60 80 3C */ lis r3, lbl_803C3608@ha
/* 800CF598 000CC4D8 38 63 36 08 */ addi r3, r3, lbl_803C3608@l
/* 800CF59C 000CC4DC 90 7A 01 20 */ stw r3, 0x120(r26)
diff --git a/include/d/d_a/d_a_alink/asm/func_800D1540.s b/include/d/d_a/d_a_alink/asm/func_800D1540.s
index fe35748d29..6556ff71a4 100644
--- a/include/d/d_a/d_a_alink/asm/func_800D1540.s
+++ b/include/d/d_a/d_a_alink/asm/func_800D1540.s
@@ -3,7 +3,7 @@
/* 800D1548 000CE488 90 01 00 34 */ stw r0, 0x34(r1)
/* 800D154C 000CE48C DB E1 00 28 */ stfd f31, 0x28(r1)
/* 800D1550 000CE490 39 61 00 28 */ addi r11, r1, 0x28
-/* 800D1554 000CE494 48 29 0C 79 */ bl func_803621CC
+/* 800D1554 000CE494 48 29 0C 79 */ bl _savegpr_25
/* 800D1558 000CE498 7C 7A 1B 78 */ mr r26, r3
/* 800D155C 000CE49C 7C 9B 23 78 */ mr r27, r4
/* 800D1560 000CE4A0 7C BC 2B 78 */ mr r28, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_800D34D8.s b/include/d/d_a/d_a_alink/asm/func_800D34D8.s
index 9ab5273de1..eb5de770b8 100644
--- a/include/d/d_a/d_a_alink/asm/func_800D34D8.s
+++ b/include/d/d_a/d_a_alink/asm/func_800D34D8.s
@@ -4,7 +4,7 @@
/* 800D34E4 000D0424 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 800D34E8 000D0428 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
/* 800D34EC 000D042C 39 61 00 30 */ addi r11, r1, 0x30
-/* 800D34F0 000D0430 48 28 EC DD */ bl func_803621CC
+/* 800D34F0 000D0430 48 28 EC DD */ bl _savegpr_25
/* 800D34F4 000D0434 7C 7C 1B 78 */ mr r28, r3
/* 800D34F8 000D0438 7C 9D 23 78 */ mr r29, r4
/* 800D34FC 000D043C 3C 80 80 39 */ lis r4, lbl_8038D658@ha
diff --git a/include/d/d_a/d_a_alink/asm/func_800DA180.s b/include/d/d_a/d_a_alink/asm/func_800DA180.s
index 9eaa3c5145..1be6a0c707 100644
--- a/include/d/d_a/d_a_alink/asm/func_800DA180.s
+++ b/include/d/d_a/d_a_alink/asm/func_800DA180.s
@@ -2,7 +2,7 @@
/* 800DA184 000D70C4 7C 08 02 A6 */ mflr r0
/* 800DA188 000D70C8 90 01 00 44 */ stw r0, 0x44(r1)
/* 800DA18C 000D70CC 39 61 00 40 */ addi r11, r1, 0x40
-/* 800DA190 000D70D0 48 28 80 3D */ bl func_803621CC
+/* 800DA190 000D70D0 48 28 80 3D */ bl _savegpr_25
/* 800DA194 000D70D4 7C 7A 1B 78 */ mr r26, r3
/* 800DA198 000D70D8 7C 9B 23 78 */ mr r27, r4
/* 800DA19C 000D70DC 7C BC 2B 78 */ mr r28, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_800DA82C.s b/include/d/d_a/d_a_alink/asm/func_800DA82C.s
index 64c89a305b..94f534c548 100644
--- a/include/d/d_a/d_a_alink/asm/func_800DA82C.s
+++ b/include/d/d_a/d_a_alink/asm/func_800DA82C.s
@@ -2,7 +2,7 @@
/* 800DA830 000D7770 7C 08 02 A6 */ mflr r0
/* 800DA834 000D7774 90 01 00 64 */ stw r0, 0x64(r1)
/* 800DA838 000D7778 39 61 00 60 */ addi r11, r1, 0x60
-/* 800DA83C 000D777C 48 28 79 8D */ bl func_803621C8
+/* 800DA83C 000D777C 48 28 79 8D */ bl _savegpr_24
/* 800DA840 000D7780 7C 78 1B 78 */ mr r24, r3
/* 800DA844 000D7784 7C 99 23 78 */ mr r25, r4
/* 800DA848 000D7788 7C BA 2B 78 */ mr r26, r5
@@ -272,7 +272,7 @@ lbl_800DABB8:
/* 800DAC0C 000D7B4C 38 60 00 01 */ li r3, 1
lbl_800DAC10:
/* 800DAC10 000D7B50 39 61 00 60 */ addi r11, r1, 0x60
-/* 800DAC14 000D7B54 48 28 76 01 */ bl func_80362214
+/* 800DAC14 000D7B54 48 28 76 01 */ bl _restgpr_24
/* 800DAC18 000D7B58 80 01 00 64 */ lwz r0, 0x64(r1)
/* 800DAC1C 000D7B5C 7C 08 03 A6 */ mtlr r0
/* 800DAC20 000D7B60 38 21 00 60 */ addi r1, r1, 0x60
diff --git a/include/d/d_a/d_a_alink/asm/func_800DC678.s b/include/d/d_a/d_a_alink/asm/func_800DC678.s
index 5693162250..66c7ac3d52 100644
--- a/include/d/d_a/d_a_alink/asm/func_800DC678.s
+++ b/include/d/d_a/d_a_alink/asm/func_800DC678.s
@@ -2,7 +2,7 @@
/* 800DC67C 000D95BC 7C 08 02 A6 */ mflr r0
/* 800DC680 000D95C0 90 01 00 34 */ stw r0, 0x34(r1)
/* 800DC684 000D95C4 39 61 00 30 */ addi r11, r1, 0x30
-/* 800DC688 000D95C8 48 28 5B 45 */ bl func_803621CC
+/* 800DC688 000D95C8 48 28 5B 45 */ bl _savegpr_25
/* 800DC68C 000D95CC 7C 7E 1B 78 */ mr r30, r3
/* 800DC690 000D95D0 3B E0 00 00 */ li r31, 0
/* 800DC694 000D95D4 7F FC FB 78 */ mr r28, r31
diff --git a/include/d/d_a/d_a_alink/asm/func_800E3F50.s b/include/d/d_a/d_a_alink/asm/func_800E3F50.s
index a24ef68c07..bfcda997d5 100644
--- a/include/d/d_a/d_a_alink/asm/func_800E3F50.s
+++ b/include/d/d_a/d_a_alink/asm/func_800E3F50.s
@@ -4,7 +4,7 @@
/* 800E3F5C 000E0E9C DB E1 01 80 */ stfd f31, 0x180(r1)
/* 800E3F60 000E0EA0 F3 E1 01 88 */ psq_st f31, 392(r1), 0, 0
/* 800E3F64 000E0EA4 39 61 01 80 */ addi r11, r1, 0x180
-/* 800E3F68 000E0EA8 48 27 E2 65 */ bl func_803621CC
+/* 800E3F68 000E0EA8 48 27 E2 65 */ bl _savegpr_25
/* 800E3F6C 000E0EAC 7C 7F 1B 78 */ mr r31, r3
/* 800E3F70 000E0EB0 3C 60 80 42 */ lis r3, lbl_80425508@ha
/* 800E3F74 000E0EB4 3B 83 55 08 */ addi r28, r3, lbl_80425508@l
diff --git a/include/d/d_a/d_a_alink/asm/func_800EF95C.s b/include/d/d_a/d_a_alink/asm/func_800EF95C.s
index c4a86541d7..702985e366 100644
--- a/include/d/d_a/d_a_alink/asm/func_800EF95C.s
+++ b/include/d/d_a/d_a_alink/asm/func_800EF95C.s
@@ -6,7 +6,7 @@
/* 800EF970 000EC8B0 DB C1 00 60 */ stfd f30, 0x60(r1)
/* 800EF974 000EC8B4 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0
/* 800EF978 000EC8B8 39 61 00 60 */ addi r11, r1, 0x60
-/* 800EF97C 000EC8BC 48 27 28 51 */ bl func_803621CC
+/* 800EF97C 000EC8BC 48 27 28 51 */ bl _savegpr_25
/* 800EF980 000EC8C0 7C 7A 1B 78 */ mr r26, r3
/* 800EF984 000EC8C4 3C 60 80 42 */ lis r3, lbl_80425508@ha
/* 800EF988 000EC8C8 3B 63 55 08 */ addi r27, r3, lbl_80425508@l
diff --git a/include/d/d_a/d_a_alink/asm/func_800F81C0.s b/include/d/d_a/d_a_alink/asm/func_800F81C0.s
index 8948e0a914..b84d4ebfe0 100644
--- a/include/d/d_a/d_a_alink/asm/func_800F81C0.s
+++ b/include/d/d_a/d_a_alink/asm/func_800F81C0.s
@@ -2,7 +2,7 @@
/* 800F81C4 000F5104 7C 08 02 A6 */ mflr r0
/* 800F81C8 000F5108 90 01 00 94 */ stw r0, 0x94(r1)
/* 800F81CC 000F510C 39 61 00 90 */ addi r11, r1, 0x90
-/* 800F81D0 000F5110 48 26 9F FD */ bl func_803621CC
+/* 800F81D0 000F5110 48 26 9F FD */ bl _savegpr_25
/* 800F81D4 000F5114 7C 79 1B 78 */ mr r25, r3
/* 800F81D8 000F5118 7C BD 2B 78 */ mr r29, r5
/* 800F81DC 000F511C 7C DA 33 78 */ mr r26, r6
diff --git a/include/d/d_a/d_a_alink/asm/func_800F9474.s b/include/d/d_a/d_a_alink/asm/func_800F9474.s
index 0a59f10b30..7f8d8300d2 100644
--- a/include/d/d_a/d_a_alink/asm/func_800F9474.s
+++ b/include/d/d_a/d_a_alink/asm/func_800F9474.s
@@ -4,7 +4,7 @@
/* 800F9480 000F63C0 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 800F9484 000F63C4 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
/* 800F9488 000F63C8 39 61 00 30 */ addi r11, r1, 0x30
-/* 800F948C 000F63CC 48 26 8D 41 */ bl func_803621CC
+/* 800F948C 000F63CC 48 26 8D 41 */ bl _savegpr_25
/* 800F9490 000F63D0 7C 7B 1B 78 */ mr r27, r3
/* 800F9494 000F63D4 7C 9C 23 78 */ mr r28, r4
/* 800F9498 000F63D8 7C BD 2B 78 */ mr r29, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_800F95B8.s b/include/d/d_a/d_a_alink/asm/func_800F95B8.s
index 253cf4df10..efd3754496 100644
--- a/include/d/d_a/d_a_alink/asm/func_800F95B8.s
+++ b/include/d/d_a/d_a_alink/asm/func_800F95B8.s
@@ -4,7 +4,7 @@
/* 800F95C4 000F6504 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 800F95C8 000F6508 F3 E1 00 98 */ psq_st f31, 152(r1), 0, 0
/* 800F95CC 000F650C 39 61 00 90 */ addi r11, r1, 0x90
-/* 800F95D0 000F6510 48 26 8B F9 */ bl func_803621C8
+/* 800F95D0 000F6510 48 26 8B F9 */ bl _savegpr_24
/* 800F95D4 000F6514 7C 79 1B 78 */ mr r25, r3
/* 800F95D8 000F6518 3C 80 80 39 */ lis r4, lbl_8038D658@ha
/* 800F95DC 000F651C 3B 84 D6 58 */ addi r28, r4, lbl_8038D658@l
@@ -287,7 +287,7 @@ lbl_800F99DC:
/* 800F99DC 000F691C E3 E1 00 98 */ psq_l f31, 152(r1), 0, 0
/* 800F99E0 000F6920 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 800F99E4 000F6924 39 61 00 90 */ addi r11, r1, 0x90
-/* 800F99E8 000F6928 48 26 88 2D */ bl func_80362214
+/* 800F99E8 000F6928 48 26 88 2D */ bl _restgpr_24
/* 800F99EC 000F692C 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 800F99F0 000F6930 7C 08 03 A6 */ mtlr r0
/* 800F99F4 000F6934 38 21 00 A0 */ addi r1, r1, 0xa0
diff --git a/include/d/d_a/d_a_alink/asm/func_800FA070.s b/include/d/d_a/d_a_alink/asm/func_800FA070.s
index 1c95f1c83b..3d047551e6 100644
--- a/include/d/d_a/d_a_alink/asm/func_800FA070.s
+++ b/include/d/d_a/d_a_alink/asm/func_800FA070.s
@@ -6,7 +6,7 @@
/* 800FA084 000F6FC4 DB C1 00 90 */ stfd f30, 0x90(r1)
/* 800FA088 000F6FC8 F3 C1 00 98 */ psq_st f30, 152(r1), 0, 0
/* 800FA08C 000F6FCC 39 61 00 90 */ addi r11, r1, 0x90
-/* 800FA090 000F6FD0 48 26 81 39 */ bl func_803621C8
+/* 800FA090 000F6FD0 48 26 81 39 */ bl _savegpr_24
/* 800FA094 000F6FD4 7C 7D 1B 78 */ mr r29, r3
/* 800FA098 000F6FD8 7C BE 2B 78 */ mr r30, r5
/* 800FA09C 000F6FDC 3B E0 00 00 */ li r31, 0
@@ -179,7 +179,7 @@ lbl_800FA310:
/* 800FA318 000F7258 E3 C1 00 98 */ psq_l f30, 152(r1), 0, 0
/* 800FA31C 000F725C CB C1 00 90 */ lfd f30, 0x90(r1)
/* 800FA320 000F7260 39 61 00 90 */ addi r11, r1, 0x90
-/* 800FA324 000F7264 48 26 7E F1 */ bl func_80362214
+/* 800FA324 000F7264 48 26 7E F1 */ bl _restgpr_24
/* 800FA328 000F7268 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 800FA32C 000F726C 7C 08 03 A6 */ mtlr r0
/* 800FA330 000F7270 38 21 00 B0 */ addi r1, r1, 0xb0
diff --git a/include/d/d_a/d_a_alink/asm/func_80109BDC.s b/include/d/d_a/d_a_alink/asm/func_80109BDC.s
index 3b91f45f2b..3303937219 100644
--- a/include/d/d_a/d_a_alink/asm/func_80109BDC.s
+++ b/include/d/d_a/d_a_alink/asm/func_80109BDC.s
@@ -8,7 +8,7 @@
/* 80109BF8 00106B38 DB A1 02 10 */ stfd f29, 0x210(r1)
/* 80109BFC 00106B3C F3 A1 02 18 */ psq_st f29, 536(r1), 0, 0
/* 80109C00 00106B40 39 61 02 10 */ addi r11, r1, 0x210
-/* 80109C04 00106B44 48 25 85 C9 */ bl func_803621CC
+/* 80109C04 00106B44 48 25 85 C9 */ bl _savegpr_25
/* 80109C08 00106B48 7C 7F 1B 78 */ mr r31, r3
/* 80109C0C 00106B4C 80 63 06 50 */ lwz r3, 0x650(r3)
/* 80109C10 00106B50 80 63 00 84 */ lwz r3, 0x84(r3)
diff --git a/include/d/d_a/d_a_alink/asm/func_8010BEF0.s b/include/d/d_a/d_a_alink/asm/func_8010BEF0.s
index c5b0d0d6d7..0e3e4d15e4 100644
--- a/include/d/d_a/d_a_alink/asm/func_8010BEF0.s
+++ b/include/d/d_a/d_a_alink/asm/func_8010BEF0.s
@@ -6,7 +6,7 @@
/* 8010BF04 00108E44 DB C1 00 F0 */ stfd f30, 0xf0(r1)
/* 8010BF08 00108E48 F3 C1 00 F8 */ psq_st f30, 248(r1), 0, 0
/* 8010BF0C 00108E4C 39 61 00 F0 */ addi r11, r1, 0xf0
-/* 8010BF10 00108E50 48 25 62 B9 */ bl func_803621C8
+/* 8010BF10 00108E50 48 25 62 B9 */ bl _savegpr_24
/* 8010BF14 00108E54 7C 79 1B 78 */ mr r25, r3
/* 8010BF18 00108E58 83 E3 28 50 */ lwz r31, 0x2850(r3)
/* 8010BF1C 00108E5C 28 1F 00 00 */ cmplwi r31, 0
@@ -634,7 +634,7 @@ lbl_8010C808:
/* 8010C810 00109750 E3 C1 00 F8 */ psq_l f30, 248(r1), 0, 0
/* 8010C814 00109754 CB C1 00 F0 */ lfd f30, 0xf0(r1)
/* 8010C818 00109758 39 61 00 F0 */ addi r11, r1, 0xf0
-/* 8010C81C 0010975C 48 25 59 F9 */ bl func_80362214
+/* 8010C81C 0010975C 48 25 59 F9 */ bl _restgpr_24
/* 8010C820 00109760 80 01 01 14 */ lwz r0, 0x114(r1)
/* 8010C824 00109764 7C 08 03 A6 */ mtlr r0
/* 8010C828 00109768 38 21 01 10 */ addi r1, r1, 0x110
diff --git a/include/d/d_a/d_a_alink/asm/func_80111A9C.s b/include/d/d_a/d_a_alink/asm/func_80111A9C.s
index 63d94f14e5..624cff3e32 100644
--- a/include/d/d_a/d_a_alink/asm/func_80111A9C.s
+++ b/include/d/d_a/d_a_alink/asm/func_80111A9C.s
@@ -2,7 +2,7 @@
/* 80111AA0 0010E9E0 7C 08 02 A6 */ mflr r0
/* 80111AA4 0010E9E4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80111AA8 0010E9E8 39 61 00 30 */ addi r11, r1, 0x30
-/* 80111AAC 0010E9EC 48 25 07 21 */ bl func_803621CC
+/* 80111AAC 0010E9EC 48 25 07 21 */ bl _savegpr_25
/* 80111AB0 0010E9F0 7C 79 1B 78 */ mr r25, r3
/* 80111AB4 0010E9F4 7C 9A 23 78 */ mr r26, r4
/* 80111AB8 0010E9F8 7C BB 2B 78 */ mr r27, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_80112E7C.s b/include/d/d_a/d_a_alink/asm/func_80112E7C.s
index eca6fb9943..b6a02aaf1e 100644
--- a/include/d/d_a/d_a_alink/asm/func_80112E7C.s
+++ b/include/d/d_a/d_a_alink/asm/func_80112E7C.s
@@ -8,7 +8,7 @@
/* 80112E98 0010FDD8 DB A1 02 C0 */ stfd f29, 0x2c0(r1)
/* 80112E9C 0010FDDC F3 A1 02 C8 */ psq_st f29, 712(r1), 0, 0
/* 80112EA0 0010FDE0 39 61 02 C0 */ addi r11, r1, 0x2c0
-/* 80112EA4 0010FDE4 48 24 F3 25 */ bl func_803621C8
+/* 80112EA4 0010FDE4 48 24 F3 25 */ bl _savegpr_24
/* 80112EA8 0010FDE8 7C 7F 1B 78 */ mr r31, r3
/* 80112EAC 0010FDEC 80 83 38 40 */ lwz r4, 0x3840(r3)
/* 80112EB0 0010FDF0 A8 03 30 1A */ lha r0, 0x301a(r3)
@@ -952,7 +952,7 @@ lbl_80113C70:
/* 80113C80 00110BC0 E3 A1 02 C8 */ psq_l f29, 712(r1), 0, 0
/* 80113C84 00110BC4 CB A1 02 C0 */ lfd f29, 0x2c0(r1)
/* 80113C88 00110BC8 39 61 02 C0 */ addi r11, r1, 0x2c0
-/* 80113C8C 00110BCC 48 24 E5 89 */ bl func_80362214
+/* 80113C8C 00110BCC 48 24 E5 89 */ bl _restgpr_24
/* 80113C90 00110BD0 80 01 02 F4 */ lwz r0, 0x2f4(r1)
/* 80113C94 00110BD4 7C 08 03 A6 */ mtlr r0
/* 80113C98 00110BD8 38 21 02 F0 */ addi r1, r1, 0x2f0
diff --git a/include/d/d_a/d_a_alink/asm/func_80113D58.s b/include/d/d_a/d_a_alink/asm/func_80113D58.s
index 5a5a35f170..218ab5e3cb 100644
--- a/include/d/d_a/d_a_alink/asm/func_80113D58.s
+++ b/include/d/d_a/d_a_alink/asm/func_80113D58.s
@@ -8,7 +8,7 @@
/* 80113D74 00110CB4 DB A1 01 80 */ stfd f29, 0x180(r1)
/* 80113D78 00110CB8 F3 A1 01 88 */ psq_st f29, 392(r1), 0, 0
/* 80113D7C 00110CBC 39 61 01 80 */ addi r11, r1, 0x180
-/* 80113D80 00110CC0 48 24 E4 49 */ bl func_803621C8
+/* 80113D80 00110CC0 48 24 E4 49 */ bl _savegpr_24
/* 80113D84 00110CC4 7C 7F 1B 78 */ mr r31, r3
/* 80113D88 00110CC8 3C 60 80 39 */ lis r3, lbl_8038D658@ha
/* 80113D8C 00110CCC 3B C3 D6 58 */ addi r30, r3, lbl_8038D658@l
@@ -1331,7 +1331,7 @@ lbl_801150A0:
/* 801150C4 00112004 E3 A1 01 88 */ psq_l f29, 392(r1), 0, 0
/* 801150C8 00112008 CB A1 01 80 */ lfd f29, 0x180(r1)
/* 801150CC 0011200C 39 61 01 80 */ addi r11, r1, 0x180
-/* 801150D0 00112010 48 24 D1 45 */ bl func_80362214
+/* 801150D0 00112010 48 24 D1 45 */ bl _restgpr_24
/* 801150D4 00112014 80 01 01 B4 */ lwz r0, 0x1b4(r1)
/* 801150D8 00112018 7C 08 03 A6 */ mtlr r0
/* 801150DC 0011201C 38 21 01 B0 */ addi r1, r1, 0x1b0
diff --git a/include/d/d_a/d_a_alink/asm/func_801191C4.s b/include/d/d_a/d_a_alink/asm/func_801191C4.s
index 600119ed64..4ffdc72144 100644
--- a/include/d/d_a/d_a_alink/asm/func_801191C4.s
+++ b/include/d/d_a/d_a_alink/asm/func_801191C4.s
@@ -4,7 +4,7 @@
/* 801191D0 00116110 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 801191D4 00116114 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
/* 801191D8 00116118 39 61 00 30 */ addi r11, r1, 0x30
-/* 801191DC 0011611C 48 24 8F F1 */ bl func_803621CC
+/* 801191DC 0011611C 48 24 8F F1 */ bl _savegpr_25
/* 801191E0 00116120 7C 79 1B 78 */ mr r25, r3
/* 801191E4 00116124 7C 9F 23 78 */ mr r31, r4
/* 801191E8 00116128 7C BA 2B 78 */ mr r26, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_801207BC.s b/include/d/d_a/d_a_alink/asm/func_801207BC.s
index 20448fc9d4..ef158ed019 100644
--- a/include/d/d_a/d_a_alink/asm/func_801207BC.s
+++ b/include/d/d_a/d_a_alink/asm/func_801207BC.s
@@ -4,7 +4,7 @@
/* 801207C8 0011D708 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 801207CC 0011D70C F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0
/* 801207D0 0011D710 39 61 00 30 */ addi r11, r1, 0x30
-/* 801207D4 0011D714 48 24 19 F5 */ bl func_803621C8
+/* 801207D4 0011D714 48 24 19 F5 */ bl _savegpr_24
/* 801207D8 0011D718 7C 78 1B 78 */ mr r24, r3
/* 801207DC 0011D71C 3B 20 00 00 */ li r25, 0
/* 801207E0 0011D720 3B E0 00 00 */ li r31, 0
@@ -45,7 +45,7 @@ lbl_80120844:
/* 80120860 0011D7A0 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0
/* 80120864 0011D7A4 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 80120868 0011D7A8 39 61 00 30 */ addi r11, r1, 0x30
-/* 8012086C 0011D7AC 48 24 19 A9 */ bl func_80362214
+/* 8012086C 0011D7AC 48 24 19 A9 */ bl _restgpr_24
/* 80120870 0011D7B0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80120874 0011D7B4 7C 08 03 A6 */ mtlr r0
/* 80120878 0011D7B8 38 21 00 40 */ addi r1, r1, 0x40
diff --git a/include/d/d_a/d_a_alink/asm/func_8012277C.s b/include/d/d_a/d_a_alink/asm/func_8012277C.s
index 5b59034c88..3e083ab180 100644
--- a/include/d/d_a/d_a_alink/asm/func_8012277C.s
+++ b/include/d/d_a/d_a_alink/asm/func_8012277C.s
@@ -4,7 +4,7 @@
/* 80122788 0011F6C8 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 8012278C 0011F6CC F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0
/* 80122790 0011F6D0 39 61 00 50 */ addi r11, r1, 0x50
-/* 80122794 0011F6D4 48 23 FA 35 */ bl func_803621C8
+/* 80122794 0011F6D4 48 23 FA 35 */ bl _savegpr_24
/* 80122798 0011F6D8 7C 7B 1B 78 */ mr r27, r3
/* 8012279C 0011F6DC 3B C0 00 00 */ li r30, 0
/* 801227A0 0011F6E0 3B 40 00 00 */ li r26, 0
@@ -95,7 +95,7 @@ lbl_801228C0:
/* 801228D4 0011F814 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0
/* 801228D8 0011F818 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 801228DC 0011F81C 39 61 00 50 */ addi r11, r1, 0x50
-/* 801228E0 0011F820 48 23 F9 35 */ bl func_80362214
+/* 801228E0 0011F820 48 23 F9 35 */ bl _restgpr_24
/* 801228E4 0011F824 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801228E8 0011F828 7C 08 03 A6 */ mtlr r0
/* 801228EC 0011F82C 38 21 00 60 */ addi r1, r1, 0x60
diff --git a/include/d/d_a/d_a_alink/asm/func_801241E0.s b/include/d/d_a/d_a_alink/asm/func_801241E0.s
index 8a300ad8c2..7b87d0e28c 100644
--- a/include/d/d_a/d_a_alink/asm/func_801241E0.s
+++ b/include/d/d_a/d_a_alink/asm/func_801241E0.s
@@ -2,7 +2,7 @@
/* 801241E4 00121124 7C 08 02 A6 */ mflr r0
/* 801241E8 00121128 90 01 00 54 */ stw r0, 0x54(r1)
/* 801241EC 0012112C 39 61 00 50 */ addi r11, r1, 0x50
-/* 801241F0 00121130 48 23 DF D9 */ bl func_803621C8
+/* 801241F0 00121130 48 23 DF D9 */ bl _savegpr_24
/* 801241F4 00121134 7C 7B 1B 78 */ mr r27, r3
/* 801241F8 00121138 80 83 05 8C */ lwz r4, 0x58c(r3)
/* 801241FC 0012113C 3C 60 00 02 */ lis r3, 0x00021800@ha
@@ -206,7 +206,7 @@ lbl_801244A0:
/* 801244C4 00121404 3B 9C 00 02 */ addi r28, r28, 2
/* 801244C8 00121408 41 80 FE 74 */ blt lbl_8012433C
/* 801244CC 0012140C 39 61 00 50 */ addi r11, r1, 0x50
-/* 801244D0 00121410 48 23 DD 45 */ bl func_80362214
+/* 801244D0 00121410 48 23 DD 45 */ bl _restgpr_24
/* 801244D4 00121414 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801244D8 00121418 7C 08 03 A6 */ mtlr r0
/* 801244DC 0012141C 38 21 00 50 */ addi r1, r1, 0x50
diff --git a/include/d/d_a/d_a_alink/asm/func_80124EA8.s b/include/d/d_a/d_a_alink/asm/func_80124EA8.s
index 826623e912..75f8b5c445 100644
--- a/include/d/d_a/d_a_alink/asm/func_80124EA8.s
+++ b/include/d/d_a/d_a_alink/asm/func_80124EA8.s
@@ -2,7 +2,7 @@
/* 80124EAC 00121DEC 7C 08 02 A6 */ mflr r0
/* 80124EB0 00121DF0 90 01 00 34 */ stw r0, 0x34(r1)
/* 80124EB4 00121DF4 39 61 00 30 */ addi r11, r1, 0x30
-/* 80124EB8 00121DF8 48 23 D3 11 */ bl func_803621C8
+/* 80124EB8 00121DF8 48 23 D3 11 */ bl _savegpr_24
/* 80124EBC 00121DFC 7C 7B 1B 78 */ mr r27, r3
/* 80124EC0 00121E00 3B BB 32 D8 */ addi r29, r27, 0x32d8
/* 80124EC4 00121E04 80 03 05 74 */ lwz r0, 0x574(r3)
@@ -57,7 +57,7 @@ lbl_80124F00:
/* 80124F84 00121EC4 3B BD 00 30 */ addi r29, r29, 0x30
/* 80124F88 00121EC8 41 80 FF 78 */ blt lbl_80124F00
/* 80124F8C 00121ECC 39 61 00 30 */ addi r11, r1, 0x30
-/* 80124F90 00121ED0 48 23 D2 85 */ bl func_80362214
+/* 80124F90 00121ED0 48 23 D2 85 */ bl _restgpr_24
/* 80124F94 00121ED4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80124F98 00121ED8 7C 08 03 A6 */ mtlr r0
/* 80124F9C 00121EDC 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/d/d_a/d_a_alink/asm/func_80126F3C.s b/include/d/d_a/d_a_alink/asm/func_80126F3C.s
index dd46343acd..74276911fa 100644
--- a/include/d/d_a/d_a_alink/asm/func_80126F3C.s
+++ b/include/d/d_a/d_a_alink/asm/func_80126F3C.s
@@ -2,7 +2,7 @@
/* 80126F40 00123E80 7C 08 02 A6 */ mflr r0
/* 80126F44 00123E84 90 01 00 44 */ stw r0, 0x44(r1)
/* 80126F48 00123E88 39 61 00 40 */ addi r11, r1, 0x40
-/* 80126F4C 00123E8C 48 23 B2 81 */ bl func_803621CC
+/* 80126F4C 00123E8C 48 23 B2 81 */ bl _savegpr_25
/* 80126F50 00123E90 7C 7F 1B 78 */ mr r31, r3
/* 80126F54 00123E94 7C 9D 23 78 */ mr r29, r4
/* 80126F58 00123E98 3C 60 80 39 */ lis r3, lbl_8038D658@ha
diff --git a/include/d/d_a/d_a_alink/asm/func_80127F50.s b/include/d/d_a/d_a_alink/asm/func_80127F50.s
index 984fef5cdf..20bfc27bfb 100644
--- a/include/d/d_a/d_a_alink/asm/func_80127F50.s
+++ b/include/d/d_a/d_a_alink/asm/func_80127F50.s
@@ -14,7 +14,7 @@
/* 80127F84 00124EC4 DB 41 00 50 */ stfd f26, 0x50(r1)
/* 80127F88 00124EC8 F3 41 00 58 */ psq_st f26, 88(r1), 0, 0
/* 80127F8C 00124ECC 39 61 00 50 */ addi r11, r1, 0x50
-/* 80127F90 00124ED0 48 23 A2 3D */ bl func_803621CC
+/* 80127F90 00124ED0 48 23 A2 3D */ bl _savegpr_25
/* 80127F94 00124ED4 7C 79 1B 78 */ mr r25, r3
/* 80127F98 00124ED8 C3 E2 92 C0 */ lfs f31, lbl_80452CC0-_SDA2_BASE_(r2)
/* 80127F9C 00124EDC 80 03 05 74 */ lwz r0, 0x574(r3)
diff --git a/include/d/d_a/d_a_alink/asm/func_8012948C.s b/include/d/d_a/d_a_alink/asm/func_8012948C.s
index daabce75d4..786024c53b 100644
--- a/include/d/d_a/d_a_alink/asm/func_8012948C.s
+++ b/include/d/d_a/d_a_alink/asm/func_8012948C.s
@@ -10,7 +10,7 @@
/* 801294B0 001263F0 DB 81 00 30 */ stfd f28, 0x30(r1)
/* 801294B4 001263F4 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0
/* 801294B8 001263F8 39 61 00 30 */ addi r11, r1, 0x30
-/* 801294BC 001263FC 48 23 8D 11 */ bl func_803621CC
+/* 801294BC 001263FC 48 23 8D 11 */ bl _savegpr_25
/* 801294C0 00126400 7C 7B 1B 78 */ mr r27, r3
/* 801294C4 00126404 FF 80 08 90 */ fmr f28, f1
/* 801294C8 00126408 FF A0 10 90 */ fmr f29, f2
diff --git a/include/d/d_a/d_a_alink/asm/func_8012A498.s b/include/d/d_a/d_a_alink/asm/func_8012A498.s
index 6fb6d66e47..9b717b60fe 100644
--- a/include/d/d_a/d_a_alink/asm/func_8012A498.s
+++ b/include/d/d_a/d_a_alink/asm/func_8012A498.s
@@ -12,7 +12,7 @@
/* 8012A4C4 00127404 DB 61 00 90 */ stfd f27, 0x90(r1)
/* 8012A4C8 00127408 F3 61 00 98 */ psq_st f27, 152(r1), 0, 0
/* 8012A4CC 0012740C 39 61 00 90 */ addi r11, r1, 0x90
-/* 8012A4D0 00127410 48 23 7C FD */ bl func_803621CC
+/* 8012A4D0 00127410 48 23 7C FD */ bl _savegpr_25
/* 8012A4D4 00127414 7C 7A 1B 78 */ mr r26, r3
/* 8012A4D8 00127418 80 83 05 7C */ lwz r4, 0x57c(r3)
/* 8012A4DC 0012741C 3C 60 FF 80 */ lis r3, 0xFF7FFBFF@ha
diff --git a/include/d/d_a/d_a_alink/asm/func_80130BC4.s b/include/d/d_a/d_a_alink/asm/func_80130BC4.s
index 246ba3cb5b..e84bfd7736 100644
--- a/include/d/d_a/d_a_alink/asm/func_80130BC4.s
+++ b/include/d/d_a/d_a_alink/asm/func_80130BC4.s
@@ -4,7 +4,7 @@
/* 80130BD0 0012DB10 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80130BD4 0012DB14 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
/* 80130BD8 0012DB18 39 61 00 40 */ addi r11, r1, 0x40
-/* 80130BDC 0012DB1C 48 23 15 F1 */ bl func_803621CC
+/* 80130BDC 0012DB1C 48 23 15 F1 */ bl _savegpr_25
/* 80130BE0 0012DB20 7C 7F 1B 78 */ mr r31, r3
/* 80130BE4 0012DB24 3B BF 1F D0 */ addi r29, r31, 0x1fd0
/* 80130BE8 0012DB28 83 83 28 10 */ lwz r28, 0x2810(r3)
diff --git a/include/d/d_a/d_a_alink/asm/func_80136624.s b/include/d/d_a/d_a_alink/asm/func_80136624.s
index ef2909dbfc..6fdac20a4c 100644
--- a/include/d/d_a/d_a_alink/asm/func_80136624.s
+++ b/include/d/d_a/d_a_alink/asm/func_80136624.s
@@ -2,7 +2,7 @@
/* 80136628 00133568 7C 08 02 A6 */ mflr r0
/* 8013662C 0013356C 90 01 00 44 */ stw r0, 0x44(r1)
/* 80136630 00133570 39 61 00 40 */ addi r11, r1, 0x40
-/* 80136634 00133574 48 22 BB 99 */ bl func_803621CC
+/* 80136634 00133574 48 22 BB 99 */ bl _savegpr_25
/* 80136638 00133578 7C 7C 1B 78 */ mr r28, r3
/* 8013663C 0013357C 7C 9D 23 78 */ mr r29, r4
/* 80136640 00133580 7C B9 2B 78 */ mr r25, r5
diff --git a/include/d/d_a/d_a_alink/asm/func_801377F0.s b/include/d/d_a/d_a_alink/asm/func_801377F0.s
index 0b3352e99d..64bb80a896 100644
--- a/include/d/d_a/d_a_alink/asm/func_801377F0.s
+++ b/include/d/d_a/d_a_alink/asm/func_801377F0.s
@@ -4,7 +4,7 @@
/* 801377FC 0013473C DB E1 00 80 */ stfd f31, 0x80(r1)
/* 80137800 00134740 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0
/* 80137804 00134744 39 61 00 80 */ addi r11, r1, 0x80
-/* 80137808 00134748 48 22 A9 C1 */ bl func_803621C8
+/* 80137808 00134748 48 22 A9 C1 */ bl _savegpr_24
/* 8013780C 0013474C 7C 79 1B 78 */ mr r25, r3
/* 80137810 00134750 3C 80 80 39 */ lis r4, lbl_8038D658@ha
/* 80137814 00134754 3B 84 D6 58 */ addi r28, r4, lbl_8038D658@l
@@ -318,7 +318,7 @@ lbl_80137C70:
/* 80137C70 00134BB0 E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0
/* 80137C74 00134BB4 CB E1 00 80 */ lfd f31, 0x80(r1)
/* 80137C78 00134BB8 39 61 00 80 */ addi r11, r1, 0x80
-/* 80137C7C 00134BBC 48 22 A5 99 */ bl func_80362214
+/* 80137C7C 00134BBC 48 22 A5 99 */ bl _restgpr_24
/* 80137C80 00134BC0 80 01 00 94 */ lwz r0, 0x94(r1)
/* 80137C84 00134BC4 7C 08 03 A6 */ mtlr r0
/* 80137C88 00134BC8 38 21 00 90 */ addi r1, r1, 0x90
diff --git a/include/d/d_a/d_a_alink/asm/func_80140FA0.s b/include/d/d_a/d_a_alink/asm/func_80140FA0.s
index 37ec6f6418..5ad93fe176 100644
--- a/include/d/d_a/d_a_alink/asm/func_80140FA0.s
+++ b/include/d/d_a/d_a_alink/asm/func_80140FA0.s
@@ -11,7 +11,7 @@
/* 80140FC8 0013DF08 38 03 72 18 */ addi r0, r3, lbl_803A7218@l
/* 80140FCC 0013DF0C 90 1F 01 1C */ stw r0, 0x11c(r31)
/* 80140FD0 0013DF10 38 7F 01 24 */ addi r3, r31, 0x124
-/* 80140FD4 0013DF14 48 12 DF B5 */ bl cM3dGCps
+/* 80140FD4 0013DF14 48 12 DF B5 */ bl __ct__8cM3dGCpsFv
/* 80140FD8 0013DF18 3C 60 80 3C */ lis r3, lbl_803C3608@ha
/* 80140FDC 0013DF1C 38 63 36 08 */ addi r3, r3, lbl_803C3608@l
/* 80140FE0 0013DF20 90 7F 01 20 */ stw r3, 0x120(r31)
diff --git a/include/d/d_attention/asm/func_80070198.s b/include/d/d_attention/asm/func_80070198.s
index 76ef2f520e..e833de9fbd 100644
--- a/include/d/d_attention/asm/func_80070198.s
+++ b/include/d/d_attention/asm/func_80070198.s
@@ -2,7 +2,7 @@
/* 8007019C 0006D0DC 7C 08 02 A6 */ mflr r0
/* 800701A0 0006D0E0 90 01 00 34 */ stw r0, 0x34(r1)
/* 800701A4 0006D0E4 39 61 00 30 */ addi r11, r1, 0x30
-/* 800701A8 0006D0E8 48 2F 20 21 */ bl func_803621C8
+/* 800701A8 0006D0E8 48 2F 20 21 */ bl _savegpr_24
/* 800701AC 0006D0EC 7C 7F 1B 78 */ mr r31, r3
/* 800701B0 0006D0F0 7C 99 23 78 */ mr r25, r4
/* 800701B4 0006D0F4 7C B8 2B 78 */ mr r24, r5
@@ -387,7 +387,7 @@ lbl_80070748:
/* 80070754 0006D694 98 03 00 04 */ stb r0, 4(r3)
/* 80070758 0006D698 7F E3 FB 78 */ mr r3, r31
/* 8007075C 0006D69C 39 61 00 30 */ addi r11, r1, 0x30
-/* 80070760 0006D6A0 48 2F 1A B5 */ bl func_80362214
+/* 80070760 0006D6A0 48 2F 1A B5 */ bl _restgpr_24
/* 80070764 0006D6A4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80070768 0006D6A8 7C 08 03 A6 */ mtlr r0
/* 8007076C 0006D6AC 38 21 00 30 */ addi r1, r1, 0x30
diff --git a/include/d/d_attention/d_attention.h b/include/d/d_attention/d_attention.h
new file mode 100644
index 0000000000..166f0bcb21
--- /dev/null
+++ b/include/d/d_attention/d_attention.h
@@ -0,0 +1,158 @@
+#ifndef __D_ATTENTION_H_
+#define __D_ATTENTION_H_
+
+#include "SComponent/c_angle/c_angle.h"
+#include "SComponent/c_xyz/c_xyz.h"
+#include "global.h"
+#include "m_Do/m_Do_ext/m_Do_ext.h"
+
+class dAttHint_c {
+public:
+private:
+ u32 field_0x0;
+ u32 field_0x4;
+ u32 field_0x8;
+};
+
+class dAttCatch_c {
+public:
+private:
+ void* field_0x0;
+ u32 field_0x4;
+ float field_0x8;
+ u8 field_0xc;
+ u8 field_0xd;
+ u8 field_0xe;
+ u8 field_0xf;
+ void* field_0x10;
+};
+
+class dAttParam_c {
+public:
+private:
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 field_0x2;
+ u8 field_0x3;
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
+ u8 field_0x7;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xa;
+ u8 field_0xb;
+ u8 field_0xc;
+ u8 field_0xd;
+ u8 field_0xe;
+ u8 field_0xf;
+ u8 field_0x10;
+ u8 field_0x11;
+ u8 field_0x12;
+};
+
+class dAttLook_c {
+public:
+private:
+ u32 field_0x0;
+ u32 field_0x4;
+ float field_0x8;
+};
+
+class dAttList_c {
+public:
+private:
+ u8 field_0x0[8];
+ cSAngle angle;
+ u8 field_0xa[10];
+};
+
+class dAttDraw_c {
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 field_0x2;
+ u8 field_0x3;
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
+ u8 field_0x7;
+ mDoExt_bckAnm bckAnm;
+ u8 field_0x24[28];
+ mDoExt_bpkAnm bpkAnm;
+ u8 field_0x58[24];
+ mDoExt_brkAnm brkAnm;
+ u8 field_0x88[24];
+ mDoExt_brkAnm brkAnm2;
+ u8 field_0xb8[24];
+ mDoExt_btkAnm btkAnm;
+ u8 field_0xe8[24];
+ mDoExt_bckAnm bckAnm2;
+ mDoExt_bpkAnm bpkAnm2;
+ mDoExt_brkAnm brkAnm3;
+ mDoExt_btkAnm btkAnm2;
+};
+
+class dAttDraw_CallBack_c {
+ mDoExt_McaMorfCallBack1_c mDoExt_McaMorfCallback;
+};
+
+class dAttention_c {
+public:
+private:
+ u8 field_0x0[4];
+ u32 field_0x4;
+ dAttDraw_CallBack_c dattdraw_callback;
+ u8 field_0xc[4];
+ u32 field_0x10;
+ u8 field_0x14[8];
+ cXyz field_0x1c;
+ dAttDraw_c attention_draw;
+ u8 field_0x18c[396];
+ int field_0x318;
+ cXyz field_0x31c;
+ u8 field_0x328[12];
+ u32 field_0x334;
+ dAttList_c attention_list1;
+ u8 field_0x34c[140];
+ int* field_0x3d8;
+ int* field_0x3dc;
+ dAttList_c attention_list2;
+ u8 field_0x3f4[60];
+ int* field_0x430;
+ int field_0x434;
+ dAttList_c attention_list3;
+ u8 field_0x44c[60];
+ int* field_0x488;
+ int field_0x48c;
+ dAttHint_c attention_hint;
+ dAttCatch_c attention_catch;
+ u8 field_0x4b0[4];
+ dAttLook_c attention_look;
+ u8 field_0x4c0;
+ u8 field_0x4c1;
+ u8 field_0x4c2;
+ u8 field_0x4c3;
+ int* field_0x4c4;
+ u8 field_0x4c8;
+ u8 field_0x4c9;
+ u8 field_0x4ca;
+ u8 field_0x4cb;
+ u8 field_0x4cc;
+ u8 field_0x4cd;
+ u8 field_0x4ce;
+ u8 field_0x4cf;
+ dAttParam_c attention_param;
+ u8 field_0x4e3;
+ u8 field_0x4e4;
+ u8 field_0x4e5;
+ int* field_0x4e6;
+ u8 field_0x4ea;
+ u8 field_0x4eb;
+ u8 field_0x4ec;
+ u8 field_0x4ed;
+ u8 field_0x4ee;
+ u8 field_0x4ef;
+ u8 field_0x4f0;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_bg/d_bg_s/d_bg_s.h b/include/d/d_bg/d_bg_s/d_bg_s.h
new file mode 100644
index 0000000000..d6adcc0176
--- /dev/null
+++ b/include/d/d_bg/d_bg_s/d_bg_s.h
@@ -0,0 +1,39 @@
+#ifndef __D_BG_S_H_
+#define __D_BG_S_H_
+
+#include "d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h"
+#include "global.h"
+
+class cBgS_ChkElm {
+ /* 0x00 */ dBgW_Base* bgw_base_pointer;
+ /* 0x04 */ u8 used;
+ /* 0x05 */ u8 padding[3];
+ /* 0x08 */ u32 field_0x8;
+ /* 0x0C */ void* actor_pointer;
+ /* 0x10 */ u32 field_0x10;
+};
+
+class cBgS {
+ /* 0x0000 */ cBgS_ChkElm cbgs_elements[256];
+};
+
+class dBgS_HIO {
+ /* 0x00 */ u8 vtable[4];
+ /* 0x04 */ u8 field_0x4[2];
+ /* 0x06 */ u16 field_0x6;
+ /* 0x08 */ u16 field_0x8;
+ /* 0x0A */ u8 field_0xa[2];
+ /* 0x0C */ cXyz field_0xc;
+ /* 0x18 */ cXyz field_0x18;
+ /* 0x24 */ cXyz field_0x24;
+ /* 0x30 */ u8 field_0x30[4];
+};
+
+class dBgS {
+public:
+private:
+ /* 0x0000 */ cBgS cbgs;
+ /* 0x1400 */ u8 vtable[8];
+ /* 0x1408 */ dBgS_HIO dbgs_hio;
+};
+#endif \ No newline at end of file
diff --git a/include/d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h b/include/d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h
new file mode 100644
index 0000000000..200633a60b
--- /dev/null
+++ b/include/d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h
@@ -0,0 +1,20 @@
+#ifndef __D_BG_W_BASE_H_
+#define __D_BG_W_BASE_H_
+
+#include "global.h"
+
+class dBgW_Base {
+public:
+private:
+ u16 field_0x0;
+ u8 field_0x2[2];
+ void* field_0x4;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xa;
+ u8 field_0xb;
+ s16 field_0xc;
+ s16 field_0xe;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_cc/d_cc_mass_s/d_cc_mass_s.h b/include/d/d_cc/d_cc_mass_s/d_cc_mass_s.h
new file mode 100644
index 0000000000..bcb11c8e36
--- /dev/null
+++ b/include/d/d_cc/d_cc_mass_s/d_cc_mass_s.h
@@ -0,0 +1,34 @@
+#include "SComponent/c_cc_d/c_cc_d.h"
+#include "global.h"
+
+class dCcMassS_Obj {
+public:
+private:
+ u8 field_0x0[12];
+ cCcD_DivideInfo cccd_divideinfo;
+ void* vtable;
+};
+
+class dCcMassS_Mng {
+public:
+private:
+ cCcD_DivideArea cccd_dividearea;
+ u8 field_0x20[36];
+ dCcMassS_Obj dccmasss_obj;
+ u8 field_0x64[292];
+ dCcMassS_Obj dccmasss_obj2;
+ u8 field_0x1a8[32];
+ cCcD_CylAttr cccd_cylattr;
+ u8 field_0x200[2];
+ u8 field_0x202;
+ u8 field_0x203;
+ float field_0x204;
+ float field_0x208;
+ float field_0x20c;
+ float field_0x210;
+ float field_0x214;
+ float field_0x218;
+ u8 field_0x21c[8];
+ cCcD_CpsAttr cccd_cpsattr;
+ cCcD_DivideInfo cccd_divideinfo;
+}; \ No newline at end of file
diff --git a/include/d/d_cc/d_cc_s/d_cc_s.h b/include/d/d_cc/d_cc_s/d_cc_s.h
new file mode 100644
index 0000000000..f64125be22
--- /dev/null
+++ b/include/d/d_cc/d_cc_s/d_cc_s.h
@@ -0,0 +1,16 @@
+#ifndef __D_CC_S_H_
+#define __D_CC_S_H_
+
+#include "global.h"
+#include "SComponent/c_cc_s/c_cc_s.h"
+#include "d/d_cc/d_cc_mass_s/d_cc_mass_s.h"
+
+class dCcS {
+public:
+private:
+ cCcS cccs;
+ u8 field_0x2834[36];
+ dCcMassS_Mng dccmass_mng;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_com/d_com_inf_game/d_com_inf_game.h b/include/d/d_com/d_com_inf_game/d_com_inf_game.h
index 89f1f6dc4b..4f216a36ad 100644
--- a/include/d/d_com/d_com_inf_game/d_com_inf_game.h
+++ b/include/d/d_com/d_com_inf_game/d_com_inf_game.h
@@ -1,42 +1,17 @@
#ifndef __D_COM_INF_GAME_H_
#define __D_COM_INF_GAME_H_
+#include "d/d_attention/d_attention.h"
+#include "d/d_bg/d_bg_s/d_bg_s.h"
+#include "d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h"
+#include "d/d_cc/d_cc_s/d_cc_s.h"
#include "d/d_drawlist/d_drawlist.h"
#include "d/d_event/d_event/d_event.h"
#include "d/d_event/d_event_manager/d_event_manager.h"
#include "d/d_resource/d_resource.h"
#include "d/d_save/d_save/d_save.h"
-
-class dComIfG_play_c {
-public:
- void ct(void);
- void init(void);
- u8 unk[0x100];
-};
-
-class dCcMassS_Mng {
-public:
- u8 unk[0x274];
-};
-
-class dAttDraw_c {
-public:
- u8 unk[0x178];
-};
-
-class dAttList_c {
- u8 unk[0x14];
-};
-
-class dDlst_window_c {
- u8 unk[0x2C];
-};
-
-class dComIfG_camera_info_class {
- u8 unk[0x38];
-};
-
-struct mDoExt_bckAnm {};
+#include "d/d_stage/d_stage.h"
+#include "d/d_vibration/d_vibration.h"
struct item_func {
float hearts; // bf80
@@ -59,38 +34,95 @@ struct item_func {
s16 seeds; // bfb6
};
-// 16 bytes too big, figure out later
+class dComIfG_camera_info_class {
+public:
+private:
+ u8 field_0x0[12];
+ cXyz field_0xc;
+ cXyz field_0x18;
+};
+
+class dDlst_window_c {
+public:
+private:
+ float view_port1;
+ float view_port2;
+ float view_port3;
+ float view_port4;
+ float view_port5;
+ float view_port6;
+ float scissor1;
+ float scissor2;
+ float scissor3;
+ float scissor4;
+ int camera_id;
+};
+
+class dComIfG_play_c {
+public:
+ void ct(void);
+ void init(void);
+ u32 getNowVibration();
+ dStage_roomControl_c& getRoomControl() { return room_control; }
+ item_func& getGiveItem() { return give_item; }
+ u8& getUnkHeart() { return unk_heart; }
+private:
+ /* 0x00000 */ dBgS dbgs;
+ /* 0x0143C */ dCcS dccs;
+ /* 0x03F08 */ u8 field_0x3f08[0x16];
+ /* 0x03F1E */ dStage_nextStage_c next_stage;
+ /* 0x03F2F */ u8 padding;
+ /* 0x03F30 */ dStage_stageDt_c stage_data;
+ /* 0x03F34 */ dStage_roomControl_c room_control;
+ /* 0x03FD8 */ dEvt_control_c event_control;
+ /* 0x0409C */ u8 field_0x409c[0x24];
+ /* 0x040C0 */ dEvent_manager_c event_manager;
+ /* 0x0475B */ u8 field_0x475B[0x2D];
+ /* 0x04788 */ void* vtable;
+ /* 0x0478C */ u8 field_0x478c[0x1C];
+ /* 0x047A8 */ dAttDraw_c attention_draw;
+ /* 0x0490C */ u8 field_0x490c[0x1AC];
+ /* 0x04AB8 */ dAttList_c attention_list1;
+ /* 0x04ACC */ u8 field_0x4acc[0x94];
+ /* 0x04B60 */ dAttList_c attention_list2;
+ /* 0x04B74 */ u8 field_0x4b74[0x44];
+ /* 0x04BB8 */ dAttList_c attention_list3;
+ /* 0x04BCC */ u8 field_0x4bcc[0xBC];
+ /* 0x04c88 */ void* vtable2;
+ /* 0x04C8C */ u8 field_0x4c8c[0x55];
+ /* 0x04CE1 */ u8 field_0x4ce1[0x37];
+ /* 0x04D18 */ dVibration_c vibration;
+ /* 0x04DA8 */ u8 field_0x4da8[0x5C];
+ /* 0x04E04 */ u32 field_0x4e04;
+ /* 0x04E08 */ u8 field_0x4e08[0x4];
+ /* 0x04E0C */ u8 field_0x4e0c[0x4];
+ /* 0x04E10 */ dDlst_window_c draw_list_window;
+ /* 0x04ED4 */ dComIfG_camera_info_class camera_info;
+ /* 0x04E60 */ u8 field_0x4e60[0x28];
+ /* 0x04E88 */ item_func give_item;
+ /* 0x04EC0 */ u8 field_0x4ec0[0xBE];
+ /* 0x04F7E */ u8 unk_heart;
+ /* 0x04F7F */ u8 field_0x4f7f[0x79];
+ /* 0x04FF8 */ u32 field_0x4ff8;
+ /* 0x04FFC */ u32 field_0x4ffc;
+ /* 0x05000 */ u32 field_0x5000;
+ /* 0x05004 */ u32 field_0x5004;
+ /* 0x05008 */ u8 field_0x5008[0x1C];
+ /* 0x05024 */ u8 field_0x5024[8];
+};
+
class dComIfG_inf_c {
public:
+ item_func& getPlayGiveItem() { return play.getGiveItem(); }
+ u8& getPlayUnkHeart() { return play.getUnkHeart(); }
/* 0x00000 */ dSv_info_c info;
- /* 0x00EEC */ u8 unk2[0x4C];
+ /* 0x00EEC */ u8 field_0xeec[0x3C];
+ /* 0x00F28 */ u32 saveTotalTime;
+ /* 0x00F2C */ u32 saveStartTime;
+ /* 0x00F30 */ u32 field_0xf30;
+ /* 0x00F34 */ u32 field_0xf34;
/* 0x00F38 */ dComIfG_play_c play;
- /* 0x01038 */ u8 unk3[0x3B50];
- /* 0x04B88 */ dCcMassS_Mng mass_mng;
- /* 0x04DFC */ u8 unk4[0xCC]; // might be part of dCcMassS_Mng
- /* 0x04EC8 */ dEvt_control_c event_control;
- /* 0x04FF8 */ dEvent_manager_c event_manager; // 0x6C8
- /* 0x056C0 */ u8 unk5[0x20]; // vtables?
- /* 0x056E0 */ dAttDraw_c att_draw;
- /* 0x05858 */ u8 unk6[0x198];
- /* 0x059F0 */ dAttList_c att_list1;
- /* 0x05A04 */ u8 unk8[0x94];
- /* 0x05A98 */ dAttList_c att_list2;
- /* 0x05AAC */ u8 unk9[0x44];
- /* 0x05AF0 */ dAttList_c att_list3;
- /* 0x05B04 */ u8 unk10[0x244];
- /* 0x05D48 */ dDlst_window_c draw_list_window;
- /* 0x05D74 */ dComIfG_camera_info_class camera_info_class;
- /* 0x05DAC */ u8 unk11[0x14];
- /* 0x05DC0 */ item_func give_item;
- /* 0x05DF8 */ u8 unk35[0x144];
- /* 0x05F3C */ u32 unk12;
- /* 0x05F30 */ u32 unk13;
- /* 0x05F34 */ u32 unk14;
- /* 0x05F38 */ u32 unk15;
- /* 0x05F3C */ u32 unk16;
- /* 0x05F40 */ u8 unk17[0x24];
- /* 0x05F64 */ dDlst_list_c draw_list_list;
+ /* 0x05FD8 */ u8 unk35[0x1612C];
/* 0x1C104 */ u8 unk18[0x1F4]; // might be part of dDlst_list_c
/* 0x1C2F8 */ dRes_info_c resource_info1;
/* 0x1C31C */ u8 unk19[0x11DC];
@@ -114,4 +146,35 @@ public:
extern dComIfG_inf_c g_dComIfG_gameInfo;
+// int dComIfGp_roomControl_getZoneNo(int zone_no) {
+// return g_dComIfG_gameInfo.play.getRoomControl().getZoneNo(zone_no);
+// }
+
+// BOOL dComIfGs_isEventBit(u16 event_no) {
+// return g_dComIfG_gameInfo.info.getSaveFile().getEventFlags().isEventBit(event_no);
+// }
+
+// void dComIfGs_offEventBit(u16 event_no) {
+// g_dComIfG_gameInfo.info.getSaveFile().getEventFlags().offEventBit(event_no);
+// }
+
+// BOOL dComIfGs_isItemFirstBit(u8 i_no) {
+// return g_dComIfG_gameInfo.info.getSaveFile().getPlayerGetItem().isFirstBit(i_no);
+// }
+
+// void dComIfGs_setItem(int item_slot, u8 item_id) {
+// g_dComIfG_gameInfo.info.getSaveFile().getPlayer().getPlayerItem().setItem(item_slot, item_id);
+// }
+
+// u16 dComIfGs_getOil(void) {
+// return g_dComIfG_gameInfo.info.getSaveFile()
+// .getPlayer()
+// .getPlayerStatusA()
+// .getCurrentLanternOil();
+// }
+
+// void dComIfGs_setOil(u16 oil_value) {
+// g_dComIfG_gameInfo.info.getSaveFile().getPlayer().getPlayerStatusA().setLanternOil(oil_value);
+// }
+
#endif \ No newline at end of file
diff --git a/include/d/d_event/d_event/d_event.h b/include/d/d_event/d_event/d_event.h
index 2a4eed8c5c..049b2c9a47 100644
--- a/include/d/d_event/d_event/d_event.h
+++ b/include/d/d_event/d_event/d_event.h
@@ -1,12 +1,212 @@
-#ifndef D_EVENT_H_
-#define D_EVENT_H_
+#ifndef __D_EVENT_H_
+#define __D_EVENT_H_
#include "dolphin/types.h"
+class dEvt_order_c {
+public:
+private:
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 field_0x2;
+ u8 field_0x3;
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
+ u8 field_0x7;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xa;
+ u8 field_0xb;
+ u8 field_0xc;
+ u8 field_0xd;
+ u8 field_0xe;
+ u8 field_0xf;
+ u8 field_0x10;
+ u8 field_0x11;
+ u8 field_0x12;
+ u8 field_0x13;
+ u8 field_0x14;
+ u8 field_0x15;
+ u8 field_0x16;
+ u8 field_0x17;
+ u8 field_0x18;
+ u8 field_0x19;
+ u8 field_0x1a;
+ u8 field_0x1b;
+ u8 field_0x1c;
+ u8 field_0x1d;
+ u8 field_0x1e;
+ u8 field_0x1f;
+ u8 field_0x20;
+ u8 field_0x21;
+ u8 field_0x22;
+ u8 field_0x23;
+ u8 field_0x24;
+ u8 field_0x25;
+ u8 field_0x26;
+ u8 field_0x27;
+ u8 field_0x28;
+ u8 field_0x29;
+ u8 field_0x2a;
+ u8 field_0x2b;
+ u8 field_0x2c;
+ u8 field_0x2d;
+ u8 field_0x2e;
+ u8 field_0x2f;
+ u8 field_0x30;
+ u8 field_0x31;
+ u8 field_0x32;
+ u8 field_0x33;
+ u8 field_0x34;
+ u8 field_0x35;
+ u8 field_0x36;
+ u8 field_0x37;
+ u8 field_0x38;
+ u8 field_0x39;
+ u8 field_0x3a;
+ u8 field_0x3b;
+ u8 field_0x3c;
+ u8 field_0x3d;
+ u8 field_0x3e;
+ u8 field_0x3f;
+ u8 field_0x40;
+ u8 field_0x41;
+ u8 field_0x42;
+ u8 field_0x43;
+ u8 field_0x44;
+ u8 field_0x45;
+ u8 field_0x46;
+ u8 field_0x47;
+ u8 field_0x48;
+ u8 field_0x49;
+ u8 field_0x4a;
+ u8 field_0x4b;
+ u8 field_0x4c;
+ u8 field_0x4d;
+ u8 field_0x4e;
+ u8 field_0x4f;
+ u8 field_0x50;
+ u8 field_0x51;
+ u8 field_0x52;
+ u8 field_0x53;
+ u8 field_0x54;
+ u8 field_0x55;
+ u8 field_0x56;
+ u8 field_0x57;
+ u8 field_0x58;
+ u8 field_0x59;
+ u8 field_0x5a;
+ u8 field_0x5b;
+ u8 field_0x5c;
+ u8 field_0x5d;
+ u8 field_0x5e;
+ u8 field_0x5f;
+ u8 field_0x60;
+ u8 field_0x61;
+ u8 field_0x62;
+ u8 field_0x63;
+ u8 field_0x64;
+ u8 field_0x65;
+ u8 field_0x66;
+ u8 field_0x67;
+ u8 field_0x68;
+ u8 field_0x69;
+ u8 field_0x6a;
+ u8 field_0x6b;
+ u8 field_0x6c;
+ u8 field_0x6d;
+ u8 field_0x6e;
+ u8 field_0x6f;
+ u8 field_0x70;
+ u8 field_0x71;
+ u8 field_0x72;
+ u8 field_0x73;
+ u8 field_0x74;
+ u8 field_0x75;
+ u8 field_0x76;
+ u8 field_0x77;
+ u8 field_0x78;
+ u8 field_0x79;
+ u8 field_0x7a;
+ u8 field_0x7b;
+ u8 field_0x7c;
+ u8 field_0x7d;
+ u8 field_0x7e;
+ u8 field_0x7f;
+ u8 field_0x80;
+ u8 field_0x81;
+ u8 field_0x82;
+ u8 field_0x83;
+ u8 field_0x84;
+ u8 field_0x85;
+ u8 field_0x86;
+ u8 field_0x87;
+ u8 field_0x88;
+ u8 field_0x89;
+ u8 field_0x8a;
+ u8 field_0x8b;
+ u8 field_0x8c;
+ u8 field_0x8d;
+ u8 field_0x8e;
+ u8 field_0x8f;
+ u8 field_0x90;
+ u8 field_0x91;
+ u8 field_0x92;
+ u8 field_0x93;
+ u8 field_0x94;
+ u8 field_0x95;
+ u8 field_0x96;
+ u8 field_0x97;
+ u8 field_0x98;
+ u8 field_0x99;
+ u8 field_0x9a;
+ u8 field_0x9b;
+ u8 field_0x9c;
+ u8 field_0x9d;
+ u8 field_0x9e;
+ u8 field_0x9f;
+ u8 field_0xa0;
+ u8 field_0xa1;
+ u8 field_0xa2;
+ u8 field_0xa3;
+ u8 field_0xa4;
+ u8 field_0xa5;
+ u8 field_0xa6;
+ u8 field_0xa7;
+ u8 field_0xa8;
+ u8 field_0xa9;
+ u8 field_0xaa;
+ u8 field_0xab;
+ u8 field_0xac;
+ u8 field_0xad;
+ u8 field_0xae;
+ u8 field_0xaf;
+ u8 field_0xb0;
+ u8 field_0xb1;
+ u8 field_0xb2;
+ u8 field_0xb3;
+ u8 field_0xb4;
+ u8 field_0xb5;
+ u8 field_0xb6;
+ u8 field_0xb7;
+ u8 field_0xb8;
+ u8 field_0xb9;
+ u8 field_0xba;
+ u8 field_0xbb;
+ u8 field_0xbc;
+ u8 field_0xbd;
+ u8 field_0xbe;
+};
+
class dEvt_control_c {
public:
void searchMapEventData(u8 param_1);
- u8 unk[0x130];
+
+private:
+ u8 field_0x0[4];
+ dEvt_order_c event_order;
+ u8 field_0xc3;
};
#endif \ No newline at end of file
diff --git a/include/d/d_event/d_event_data/d_event_data.h b/include/d/d_event/d_event_data/d_event_data.h
new file mode 100644
index 0000000000..6b487948db
--- /dev/null
+++ b/include/d/d_event/d_event_data/d_event_data.h
@@ -0,0 +1,26 @@
+#ifndef __D_EVENT_DATA_H_
+#define __D_EVENT_DATA_H_
+
+#include "global.h"
+
+class dEvDtFlag_c {
+public:
+private:
+ u8 field_0x0[320];
+};
+
+class dEvDtBase_c {
+public:
+private:
+ u32 field_0x0;
+ u32 field_0x4;
+ u32 field_0x8;
+ u32 field_0xc;
+ u32 field_0x10;
+ u32 field_0x14;
+ u32 field_0x18;
+ u32 field_0x1c;
+ u32 field_0x20;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_event/d_event_manager/d_event_manager.h b/include/d/d_event/d_event_manager/d_event_manager.h
index 3f06e27ed3..d1c91ae401 100644
--- a/include/d/d_event/d_event_manager/d_event_manager.h
+++ b/include/d/d_event/d_event_manager/d_event_manager.h
@@ -1,11 +1,40 @@
-#ifndef D_EVENT_MANAGER_H_
-#define D_EVENT_MANAGER_H_
+#ifndef __D_EVENT_MANAGER_H_
+#define __D_EVENT_MANAGER_H_
#include "dolphin/types.h"
+#include "d/d_event/d_event_data/d_event_data.h"
-class dEvent_manager_c {
+class dEvent_exception_c {
public:
- u8 unk[0x6C8];
+private:
+ u32 field_0x0;
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
+ u8 field_0x7;
+ u32 field_0x8;
};
+#pragma pack(push, 1)
+struct dEvent_manager_c {
+ /* 0x0000 */ dEvDtBase_c event_data_base;
+ /* 0x0024 */ u8 field_0x24[0x64];
+ /* 0x0088 */ u8 field_0x88[0x104];
+ /* 0x018C */ u32 field_0x18c;
+ /* 0x0190 */ u32 field_0x190;
+ /* 0x0194 */ u8 field_0x194[0x8];
+ /* 0x019C */ u8 goal;
+ /* 0x019D */ u8 field_0x19d[0xD];
+ /* 0x01AA */ u16 field_0x1aa;
+ /* 0x01AC */ u8 field_0x1ac[0x8];
+ /* 0x01B4 */ dEvent_exception_c event_exception;
+ /* 0x01C0 */ cXyz position;
+ /* 0x01CC */ u8 field_0x1cc[0x14];
+ /* 0x01E0 */ dEvDtFlag_c event_data_flag;
+ /* 0x0320 */ u8 field_0x320[0x35C];
+ /* 0x067C */ void* vtable;
+ /* 0x0680 */ u8 field_0x680[0x1B];
+};
+#pragma pack(pop)
+
#endif \ No newline at end of file
diff --git a/include/d/d_meter2/d_meter2_info/d_meter2_info.h b/include/d/d_meter2/d_meter2_info/d_meter2_info.h
index 4e641ab284..8fdbdf61a0 100644
--- a/include/d/d_meter2/d_meter2_info/d_meter2_info.h
+++ b/include/d/d_meter2/d_meter2_info/d_meter2_info.h
@@ -1,4 +1,12 @@
+#ifndef __D_METER2_INFO_H_
+#define __D_METER2_INFO_H_
+
+#include "JSystem/JMessage/control/control.h"
#include "dolphin/types.h"
+#include "JSystem/J2DGraph/J2DPicture/J2DPicture.h"
+#include "JSystem/J2DGraph/J2DScreen/J2DScreen.h"
+#include "JSystem/J2DGraph/J2DTextBox/J2DTextBox.h"
+#include "JSystem/JUtility/JUTFont/JUTFont.h"
struct dMeter2Info_c_vtable {
u32* addr1;
@@ -8,8 +16,8 @@ struct dMeter2Info_c_vtable {
class dMeter2Info_c {
public:
- dMeter2Info_c::dMeter2Info_c();
- dMeter2Info_c::~dMeter2Info_c();
+ // dMeter2Info_c::dMeter2Info_c();
+ // dMeter2Info_c::~dMeter2Info_c();
void init(void);
void setFloatingMessage(u16, s16, bool);
void setFloatingFlow(u16, s16, bool);
@@ -48,6 +56,7 @@ public:
void resetMiniGameItem(bool);
void setMiniGameCount(s8);
void setSaveStageName(const char*);
+ u8& getDirectUseItem() { return mDirectUseItem; }
private:
dMeter2Info_c_vtable* vtable;
@@ -142,4 +151,6 @@ private:
u8 unk243[5];
};
-extern dMeter2Info_c g_meter2_info; \ No newline at end of file
+extern dMeter2Info_c g_meter2_info;
+
+#endif \ No newline at end of file
diff --git a/include/d/d_save/d_save/asm/func_800332F8.s b/include/d/d_save/d_save/asm/func_800332F8.s
index db8413f8fd..8a4d5ea66a 100644
--- a/include/d/d_save/d_save/asm/func_800332F8.s
+++ b/include/d/d_save/d_save/asm/func_800332F8.s
@@ -8,8 +8,8 @@ lbl_8003330C:
/* 80033310 00030250 7C 83 01 AE */ stbx r4, r3, r0
/* 80033314 00030254 38 C6 00 01 */ addi r6, r6, 1
/* 80033318 00030258 42 00 FF F4 */ bdnz lbl_8003330C
-/* 8003331C 0003025C 3C 80 80 3A */ lis r4, lbl_803A7270@ha
-/* 80033320 00030260 38 84 72 70 */ addi r4, r4, lbl_803A7270@l
+/* 8003331C 0003025C 3C 80 80 3A */ lis r4, i_item_lst@ha
+/* 80033320 00030260 38 84 72 70 */ addi r4, r4, i_item_lst@l
/* 80033324 00030264 38 00 00 17 */ li r0, 0x17
/* 80033328 00030268 7C 09 03 A6 */ mtctr r0
lbl_8003332C:
diff --git a/include/d/d_save/d_save/asm/func_80034644.s b/include/d/d_save/d_save/asm/func_80034644.s
index 69b644fa95..5551a6e269 100644
--- a/include/d/d_save/d_save/asm/func_80034644.s
+++ b/include/d/d_save/d_save/asm/func_80034644.s
@@ -1,13 +1,13 @@
/* 80034644 00031584 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80034648 00031588 7C 08 02 A6 */ mflr r0
/* 8003464C 0003158C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80034650 00031590 80 0D 8F 60 */ lwz r0, lbl_804514E0-_SDA_BASE_(r13)
+/* 80034650 00031590 80 0D 8F 60 */ lwz r0, _sRumbleSupported-_SDA_BASE_(r13)
/* 80034654 00031594 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 80034658 00031598 41 82 00 18 */ beq lbl_80034670
/* 8003465C 0003159C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 80034660 000315A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 80034664 000315A4 38 63 0F 38 */ addi r3, r3, 0xf38
-/* 80034668 000315A8 4B FF 6D 49 */ bl dComIfG_play_c_NS_getNowVibration
+/* 80034668 000315A8 4B FF 6D 49 */ bl getNowVibration__14dComIfG_play_cFv
/* 8003466C 000315AC 48 00 00 08 */ b lbl_80034674
lbl_80034670:
/* 80034670 000315B0 38 60 00 00 */ li r3, 0
diff --git a/include/d/d_save/d_save/d_save.h b/include/d/d_save/d_save/d_save.h
index 0263a3863e..e8bd84933e 100644
--- a/include/d/d_save/d_save/d_save.h
+++ b/include/d/d_save/d_save/d_save.h
@@ -1,6 +1,8 @@
#ifndef __D_SAVE_H_
#define __D_SAVE_H_
+#include "SComponent/c_xyz/c_xyz.h"
+#include "d/d_meter2/d_meter2_info/d_meter2_info.h"
#include "dolphin/types.h"
#include "global.h"
@@ -44,262 +46,262 @@ enum ItemSlots {
};
enum ItemTable {
- AIR_LETTER = 234,
- ANCIENT_DOCUMENT = 233,
- ANCIENT_DOCUMENT2 = 235,
- ARMOR = 48,
- ARROW_1 = 17,
- ARROW_10 = 14,
- ARROW_20 = 15,
- ARROW_30 = 16,
- ARROW_LV1 = 84,
- ARROW_LV2 = 85,
- ARROW_LV3 = 86,
- ASHS_SCRIBBLING = 145,
- BEE_CHILD = 118,
- BEE_ROD = 91,
- BILL = 129,
- BLUE_BOTTLE = 99,
- BLUE_RUPEE = 2,
- BOMB_10 = 11,
- BOMB_20 = 12,
- BOMB_30 = 13,
- BOMB_5 = 10,
- BOMB_ARROW = 89,
- BOMB_BAG_LV1 = 80,
- BOMB_BAG_LV2 = 79,
- BOMB_INSECT_10 = 27,
- BOMB_INSECT_20 = 28,
- BOMB_INSECT_30 = 29,
- BOMB_INSECT_5 = 26,
- BOMB_IN_BAG = 81,
- BOOMERANG = 64,
- BOSSRIDER_KEY = 243,
- BOSS_KEY = 38,
- BOW = 67,
- CHUCHU_BLACK = 159,
- CHUCHU_BLUE = 121,
- CHUCHU_GREEN = 122,
- CHUCHU_PURPLE = 124,
- CHUCHU_RARE = 119,
- CHUCHU_RED = 120,
- CHUCHU_YELLOW = 123,
- CHUCHU_YELLOW2 = 156,
- COMPUS = 36,
- COPY_ROD = 70,
- COPY_ROD_2 = 76,
- DROP_BOTTLE = 117,
- DROP_CONTAINER = 161,
- DROP_CONTAINER02 = 162,
- DROP_CONTAINER03 = 163,
- DUNGEON_BACK = 39,
- DUNGEON_EXIT = 37,
- DUNGEON_EXIT_2 = 51,
- EMPTY_BOTTLE = 96,
- FAIRY = 108,
- FAIRY_DROP = 115,
- FILLED_CONTAINER = 164,
- FISHING_ROD_1 = 74,
- F_ANT = 213,
- F_BEETLE = 193,
- F_BUTTERFLY = 195,
- F_DANGOMUSHI = 203,
- F_DRAGONFLY = 211,
- F_GRASSHOPPER = 199,
- F_LADYBUG = 207,
- F_MANTIS = 205,
- F_MAYFLY = 215,
- F_NANAFUSHI = 201,
- F_SNAIL = 209,
- F_STAG_BEETLE = 197,
- GREEN_BOTTLE = 98,
- GREEN_RUPEE = 1,
- HALF_MILK_BOTTLE = 101,
- HAWK_ARROW = 90,
- HAWK_EYE = 62,
- HEART = 0,
- HOOKSHOT = 68,
- HORSE_FLUTE = 132,
- HOT_SPRING = 107,
- HOT_SPRING_2 = 109,
- HVY_BOOTS = 69,
- HYLIA_SHIELD = 44,
- IRIAS_PENDANT = 131,
- IRONBALL = 66,
- JEWEL_BEE_ROD = 94,
- JEWEL_ROD = 92,
- JEWEL_WORM_ROD = 95,
- KAKERA_HEART = 33,
- KANTERA = 72,
- KANTERA2 = 248,
- KEY_OF_CARAVAN = 252,
- KEY_OF_FILONE = 254,
- L2_KEY_PIECES1 = 249,
- L2_KEY_PIECES2 = 250,
- L2_KEY_PIECES3 = 251,
- LETTER = 128,
- LIGHT_ARROW = 83,
- LIGHT_DROP = 160,
- LIGHT_SWORD = 73,
- LINKS_SAVINGS = 237,
- LURE_ROD = 88,
- LV1_SOUP = 125,
- LV2_BOSS_KEY = 253,
- LV2_SOUP = 126,
- LV3_SOUP = 127,
- LV5_BOSS_KEY = 246,
- LV7_DUNGEON_EXIT = 236,
- L_MAGIC = 9,
- MAGIC_LV1 = 50,
- MAP = 35,
- MASTER_SWORD = 41,
- MILK_BOTTLE = 100,
- MIRROR_PIECE_2 = 165,
- MIRROR_PIECE_3 = 166,
- MIRROR_PIECE_4 = 167,
- M_ANT = 212,
- M_BEETLE = 192,
- M_BUTTERFLY = 194,
- M_DANGOMUSHI = 202,
- M_DRAGONFLY = 210,
- M_GRASSHOPPER = 198,
- M_LADYBUG = 206,
- M_MANTIS = 204,
- M_MAYFLY = 214,
- M_NANAFUSHI = 200,
- M_SNAIL = 208,
- M_STAG_BEETLE = 196,
- NORMAL_BOMB = 112,
- NO_ITEM = 255,
- OIL = 111,
- OIL2 = 110,
- OIL_BOTTLE = 102,
- OIL_BOTTLE3 = 157,
- OIL_BOTTLE_2 = 104,
- ORANGE_RUPEE = 6,
- PACHINKO = 75,
- PACHINKO_SHOT = 18,
- POKE_BOMB = 114,
- POU_FIRE1 = 239,
- POU_FIRE2 = 240,
- POU_FIRE3 = 241,
- POU_FIRE4 = 242,
- POU_SPIRIT = 224,
- PURPLE_RUPEE = 5,
- RAFRELS_MEMO = 144,
- RECOVERY_FAILY = 30,
- RED_BOTTLE = 97,
- RED_BOTTLE_2 = 105,
- RED_RUPEE = 4,
- SHIELD = 43,
- SHOP_BEE_CHILD = 158,
- SILVER_RUPEE = 7,
- SMALL_KEY = 32,
- SMALL_KEY2 = 238,
- SMELL_CHILDREN = 180,
- SMELL_FISH = 179,
- SMELL_MEDICINE = 181,
- SMELL_POH = 178,
- SMELL_PUMPKIN = 177,
- SMELL_YELIA_POUCH = 176,
- SPINNER = 65,
- SURFBOARD = 247,
- SWORD = 40,
- S_MAGIC = 8,
- TASTE = 245,
- TKS_LETTER = 45,
- TOMATO_PUREE = 244,
- TRIPLE_HEART = 31,
- UGLY_SOUP = 106,
- UTAWA_HEART = 34,
- WALLET_LV1 = 52,
- WALLET_LV2 = 53,
- WALLET_LV3 = 54,
- WATER_BOMB = 113,
- WATER_BOMB_10 = 23,
- WATER_BOMB_20 = 24,
- WATER_BOMB_30 = 25,
- WATER_BOMB_5 = 22,
- WATER_BOTTLE = 103,
- WEARS_CASUAL = 46,
- WEAR_KOKIRI = 47,
- WEAR_ZORA = 49,
- WOOD_SHIELD = 42,
- WOOD_STATUE = 130,
- WOOD_STICK = 63,
- WORM = 116,
- WORM_ROD = 93,
- W_HOOKSHOT = 71,
- YELLOW_RUPEE = 3,
- ZORAS_JEWEL = 61,
- noentry1 = 19,
- noentry10 = 77,
- noentry11 = 78,
- noentry12 = 82,
- noentry13 = 87,
- noentry14 = 133,
- noentry15 = 134,
- noentry16 = 135,
- noentry17 = 136,
- noentry18 = 137,
- noentry19 = 138,
- noentry2 = 20,
- noentry20 = 139,
- noentry21 = 140,
- noentry22 = 141,
- noentry23 = 142,
- noentry24 = 143,
- noentry25 = 146,
- noentry26 = 147,
- noentry27 = 148,
- noentry28 = 149,
- noentry29 = 150,
- noentry3 = 21,
- noentry30 = 151,
- noentry31 = 152,
- noentry32 = 153,
- noentry33 = 154,
- noentry34 = 155,
- noentry35 = 168,
- noentry36 = 169,
- noentry37 = 170,
- noentry38 = 171,
- noentry39 = 172,
- noentry4 = 55,
- noentry40 = 173,
- noentry41 = 174,
- noentry42 = 175,
- noentry43 = 182,
- noentry44 = 183,
- noentry45 = 184,
- noentry46 = 185,
- noentry47 = 186,
- noentry48 = 187,
- noentry49 = 188,
- noentry5 = 56,
- noentry50 = 189,
- noentry51 = 190,
- noentry52 = 191,
- noentry53 = 216,
- noentry54 = 217,
- noentry55 = 218,
- noentry56 = 219,
- noentry57 = 220,
- noentry58 = 221,
- noentry59 = 222,
- noentry6 = 57,
- noentry60 = 223,
- noentry61 = 225,
- noentry62 = 226,
- noentry63 = 227,
- noentry64 = 228,
- noentry65 = 229,
- noentry66 = 230,
- noentry67 = 231,
- noentry68 = 232,
- noentry7 = 58,
- noentry8 = 59,
- noentry9 = 60
+ HEART,
+ GREEN_RUPEE,
+ BLUE_RUPEE,
+ YELLOW_RUPEE,
+ RED_RUPEE,
+ PURPLE_RUPEE,
+ ORANGE_RUPEE,
+ SILVER_RUPEE,
+ S_MAGIC,
+ L_MAGIC,
+ BOMB_5,
+ BOMB_10,
+ BOMB_20,
+ BOMB_30,
+ ARROW_10,
+ ARROW_20,
+ ARROW_30,
+ ARROW_1,
+ PACHINKO_SHOT,
+ noentry1,
+ noentry2,
+ noentry3,
+ WATER_BOMB_5,
+ WATER_BOMB_10,
+ WATER_BOMB_20,
+ WATER_BOMB_30,
+ BOMB_INSECT_5,
+ BOMB_INSECT_10,
+ BOMB_INSECT_20,
+ BOMB_INSECT_30,
+ RECOVERY_FAILY,
+ TRIPLE_HEART,
+ SMALL_KEY,
+ KAKERA_HEART,
+ UTAWA_HEART,
+ MAP,
+ COMPUS,
+ DUNGEON_EXIT,
+ BOSS_KEY,
+ DUNGEON_BACK,
+ SWORD,
+ MASTER_SWORD,
+ WOOD_SHIELD,
+ SHIELD,
+ HYLIA_SHIELD,
+ TKS_LETTER,
+ WEARS_CASUAL,
+ WEAR_KOKIRI,
+ ARMOR,
+ WEAR_ZORA,
+ MAGIC_LV1,
+ DUNGEON_EXIT_2,
+ WALLET_LV1,
+ WALLET_LV2,
+ WALLET_LV3,
+ noentry4,
+ noentry5,
+ noentry6,
+ noentry7,
+ noentry8,
+ noentry9,
+ ZORAS_JEWEL,
+ HAWK_EYE,
+ WOOD_STICK,
+ BOOMERANG,
+ SPINNER,
+ IRONBALL,
+ BOW,
+ HOOKSHOT,
+ HVY_BOOTS,
+ COPY_ROD,
+ W_HOOKSHOT,
+ KANTERA,
+ LIGHT_SWORD,
+ FISHING_ROD_1,
+ PACHINKO,
+ COPY_ROD_2,
+ noentry10,
+ noentry11,
+ BOMB_BAG_LV2,
+ BOMB_BAG_LV1,
+ BOMB_IN_BAG,
+ noentry12,
+ LIGHT_ARROW,
+ ARROW_LV1,
+ ARROW_LV2,
+ ARROW_LV3,
+ noentry13,
+ LURE_ROD,
+ BOMB_ARROW,
+ HAWK_ARROW,
+ BEE_ROD,
+ JEWEL_ROD,
+ WORM_ROD,
+ JEWEL_BEE_ROD,
+ JEWEL_WORM_ROD,
+ EMPTY_BOTTLE,
+ RED_BOTTLE,
+ GREEN_BOTTLE,
+ BLUE_BOTTLE,
+ MILK_BOTTLE,
+ HALF_MILK_BOTTLE,
+ OIL_BOTTLE,
+ WATER_BOTTLE,
+ OIL_BOTTLE_2,
+ RED_BOTTLE_2,
+ UGLY_SOUP,
+ HOT_SPRING,
+ FAIRY,
+ HOT_SPRING_2,
+ OIL2,
+ OIL,
+ NORMAL_BOMB,
+ WATER_BOMB,
+ POKE_BOMB,
+ FAIRY_DROP,
+ WORM,
+ DROP_BOTTLE,
+ BEE_CHILD,
+ CHUCHU_RARE,
+ CHUCHU_RED,
+ CHUCHU_BLUE,
+ CHUCHU_GREEN,
+ CHUCHU_YELLOW,
+ CHUCHU_PURPLE,
+ LV1_SOUP,
+ LV2_SOUP,
+ LV3_SOUP,
+ LETTER,
+ BILL,
+ WOOD_STATUE,
+ IRIAS_PENDANT,
+ HORSE_FLUTE,
+ noentry14,
+ noentry15,
+ noentry16,
+ noentry17,
+ noentry18,
+ noentry19,
+ noentry20,
+ noentry21,
+ noentry22,
+ noentry23,
+ noentry24,
+ RAFRELS_MEMO,
+ ASHS_SCRIBBLING,
+ noentry25,
+ noentry26,
+ noentry27,
+ noentry28,
+ noentry29,
+ noentry30,
+ noentry31,
+ noentry32,
+ noentry33,
+ noentry34,
+ CHUCHU_YELLOW2,
+ OIL_BOTTLE3,
+ SHOP_BEE_CHILD,
+ CHUCHU_BLACK,
+ LIGHT_DROP,
+ DROP_CONTAINER,
+ DROP_CONTAINER02,
+ DROP_CONTAINER03,
+ FILLED_CONTAINER,
+ MIRROR_PIECE_2,
+ MIRROR_PIECE_3,
+ MIRROR_PIECE_4,
+ noentry35,
+ noentry36,
+ noentry37,
+ noentry38,
+ noentry39,
+ noentry40,
+ noentry41,
+ noentry42,
+ SMELL_YELIA_POUCH,
+ SMELL_PUMPKIN,
+ SMELL_POH,
+ SMELL_FISH,
+ SMELL_CHILDREN,
+ SMELL_MEDICINE,
+ noentry43,
+ noentry44,
+ noentry45,
+ noentry46,
+ noentry47,
+ noentry48,
+ noentry49,
+ noentry50,
+ noentry51,
+ noentry52,
+ M_BEETLE,
+ F_BEETLE,
+ M_BUTTERFLY,
+ F_BUTTERFLY,
+ M_STAG_BEETLE,
+ F_STAG_BEETLE,
+ M_GRASSHOPPER,
+ F_GRASSHOPPER,
+ M_NANAFUSHI,
+ F_NANAFUSHI,
+ M_DANGOMUSHI,
+ F_DANGOMUSHI,
+ M_MANTIS,
+ F_MANTIS,
+ M_LADYBUG,
+ F_LADYBUG,
+ M_SNAIL,
+ F_SNAIL,
+ M_DRAGONFLY,
+ F_DRAGONFLY,
+ M_ANT,
+ F_ANT,
+ M_MAYFLY,
+ F_MAYFLY,
+ noentry53,
+ noentry54,
+ noentry55,
+ noentry56,
+ noentry57,
+ noentry58,
+ noentry59,
+ noentry60,
+ POU_SPIRIT,
+ noentry61,
+ noentry62,
+ noentry63,
+ noentry64,
+ noentry65,
+ noentry66,
+ noentry67,
+ noentry68,
+ ANCIENT_DOCUMENT,
+ AIR_LETTER,
+ ANCIENT_DOCUMENT2,
+ LV7_DUNGEON_EXIT,
+ LINKS_SAVINGS,
+ SMALL_KEY2,
+ POU_FIRE1,
+ POU_FIRE2,
+ POU_FIRE3,
+ POU_FIRE4,
+ BOSSRIDER_KEY,
+ TOMATO_PUREE,
+ TASTE,
+ LV5_BOSS_KEY,
+ SURFBOARD,
+ KANTERA2,
+ L2_KEY_PIECES1,
+ L2_KEY_PIECES2,
+ L2_KEY_PIECES3,
+ KEY_OF_CARAVAN,
+ LV2_BOSS_KEY,
+ KEY_OF_FILONE,
+ NO_ITEM
};
enum EquipmentBits { CLOTHING_BITFIELD, SWORD_BITFIELD, SHIELD_BITFIELD };
@@ -325,6 +327,7 @@ public:
int isMagicFlag(u8) const;
u16& getCurrentHealth() { return mCurrentHealth; }
+ u16& getCurrentLanternOil() { return mCurrentLanternOil; }
u8& getScent() { return mEquipment[3]; }
void setWalletLV(u8 lv) { mCurrentWallet = lv; }
void setLanternOil(u16 amount) {
@@ -376,10 +379,6 @@ private:
};
// move to SComponent later
-class cXyz {
-public:
- float x, y, z;
-};
class dSv_horse_place_c {
public:
@@ -454,7 +453,7 @@ public:
void setEquipBottleItemIn(u8, u8);
void setEquipBottleItemEmpty(u8);
u8 checkBottle(u8);
- u8 checkInsectBottle(void);
+ int checkInsectBottle(void);
u8 checkEmptyBottle(void);
void setBombBagItemIn(u8, u8, bool);
void setBombBagItemIn(u8, u8, u8, bool);
@@ -891,15 +890,20 @@ public:
dSv_save_c& getSaveFile() { return save_file; }
dSv_memory_c& getMemory() { return memory; }
+ dSv_zone_c* getZones() { return zones; }
private:
- dSv_save_c save_file;
- dSv_memory_c memory;
- dSv_danBit_c dungeon_bit;
- dSv_zone_c zones[32];
- dSv_restart_c restart;
- dSv_event_c events;
- dSv_turnRestart_c turn_restart;
+ /* 0x000 */ dSv_save_c save_file;
+ /* 0x958 */ dSv_memory_c memory;
+ /* 0x978 */ dSv_danBit_c dungeon_bit;
+ /* 0x9B4 */ dSv_zone_c zones[32];
+ /* 0xDB4 */ dSv_restart_c restart;
+ /* 0xDD8 */ dSv_event_c events;
+ /* 0xED8 */ dSv_turnRestart_c turn_restart;
};
+// u8 dMeter2Info_getOilGaugeBackUp() {
+// return g_meter2_info.getDirectUseItem();
+// }
+
#endif \ No newline at end of file
diff --git a/include/d/d_stage/d_stage.h b/include/d/d_stage/d_stage.h
new file mode 100644
index 0000000000..2c27b137cc
--- /dev/null
+++ b/include/d/d_stage/d_stage.h
@@ -0,0 +1,39 @@
+#ifndef __D_STAGE_H_
+#define __D_STAGE_H_
+#include "global.h"
+
+class dStage_roomControl_c {
+public:
+private:
+ u8 field_0x0[164];
+};
+
+class dStage_stageDt_c {
+public:
+private:
+ void* vtable;
+};
+
+class dStage_nextStage_c {
+public:
+private:
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 field_0x2;
+ u8 field_0x3;
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
+ u8 field_0x7;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xa;
+ u8 field_0xb;
+ u8 field_0xc;
+ u8 field_0xd;
+ u8 enabled;
+ u8 wipe;
+ u8 wipe_speed;
+};
+
+#endif \ No newline at end of file
diff --git a/include/d/d_vibration/d_vibration.h b/include/d/d_vibration/d_vibration.h
new file mode 100644
index 0000000000..99ab56a990
--- /dev/null
+++ b/include/d/d_vibration/d_vibration.h
@@ -0,0 +1,47 @@
+#ifndef __D_VIBRATION_H_
+#define __D_VIBRATION_H_
+
+#include "global.h"
+
+class dVibration_c {
+public:
+private:
+ u32 field_0x0;
+ u32 field_0x4;
+ u32 field_0x8;
+ u32 field_0xc;
+ u32 field_0x10;
+ u32 field_0x14;
+ float field_0x18;
+ float field_0x1c;
+ float field_0x20;
+ u32 field_0x24;
+ u32 field_0x28;
+ u32 field_0x2c;
+ u32 field_0x30;
+ u32 field_0x34;
+ u32 field_0x38;
+ u32 field_0x3c;
+ float field_0x40;
+ float field_0x44;
+ float field_0x48;
+ u32 field_0x4c;
+ u32 field_0x50;
+ u32 field_0x54;
+ u32 field_0x58;
+ u32 field_0x5c;
+ u32 field_0x60;
+ u32 field_0x64;
+ u32 field_0x68;
+ u32 field_0x6c;
+ u32 field_0x70;
+ u32 field_0x74;
+ u32 field_0x78;
+ u32 field_0x7c;
+ u32 field_0x80;
+ u32 field_0x84;
+ u32 field_0x88;
+ u32 field_0x8c;
+};
+
+#endif \ No newline at end of file
diff --git a/include/functions.h b/include/functions.h
index 28adc9ba63..faa95e35ec 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -41,18 +41,20 @@ void init__20dSv_player_collect_cFv(void);
void dComIfGp_setSelectItem(int);
void getUsedCount__9HeapCheckCFv(void);
void isEventBit__11dSv_event_cCFUs(void);
-void dComIfGs_setMixItemIndex(void);
-void dComIfGs_setSelectItemIndex(void);
-void dComIfGs_getMixItemIndex(void);
+void dComIfGs_setMixItemIndex(int,u8);
+void dComIfGs_setSelectItemIndex(int,u8);
+void dComIfGs_getMixItemIndex(int);
char* strcpy(char*, const char*);
int strcmp(char*, char*);
void setBombNum__21dSv_player_item_max_cFUcUc(void);
void func_80362224(void);
void func_803621D8(void);
-void func_803621CC(void);
+void _savegpr_25(void);
void func_80362218(void);
void _restgpr_26(void);
void _savegpr_26(void);
+void _savegpr_25(void);
+void _restgpr_25(void);
void func_8036221C(void);
void func_803621D0(void);
void func_803620AC(void);
@@ -90,7 +92,7 @@ void setItem__17dSv_player_item_cFiUc(void);
void dMeter2Info_c_NS_getString(void);
void Z2AudioMgr_NS_setOutputMode(void*, unsigned long);
u32 Z2AudioMgr_NS_hasReset(void*);
-void dComIfG_play_c_NS_getNowVibration(void);
+void getNowVibration__14dComIfG_play_cFv(void);
void setInitEventBit(void);
void daObjCarry_c_NS_clrSaveFlag(void);
void daObjCarry_c_NS_setSaveFlag(void);
@@ -103,7 +105,7 @@ void init__10dSv_info_cFvZone(void);
void init__10dSv_zone_cFi(void);
void onOneSwitch__13dSv_zoneBit_cFi(void);
void onSwitch__13dSv_zoneBit_cFi(void);
-int dStage_roomControl_c_NS_getZoneNo(int, int);
+int dStage_roomControl_c_NS_getZoneNo(int,int);
void onSwitch__12dSv_danBit_cFi(void);
void onSwitch__12dSv_memBit_cFi(void);
void revOneSwitch__13dSv_zoneBit_cFi(void);
@@ -195,7 +197,7 @@ void JUTReportConsole_f(void);
void JUTWarningConsole(void);
void JUTWarningConsole_f(void);
-void func_803621CC(void);
+void _savegpr_25(void);
void func_80361C24(void);
void _restgpr_26(void);
@@ -217,7 +219,7 @@ void _restgpr_29(void);
void _savegpr_29(void);
void func_80361C24(void);
-void func_803621CC(void);
+void _savegpr_25(void);
void func_80362218(void);
// void JKRAramArchive(void);
@@ -235,7 +237,7 @@ void func_80365470(void);
void DCInvalidateRange(void);
void JKRDvdRipper_NS_loadToMainRAM_X1_(void);
void func_80003458(void);
-void func_803621CC(void);
+void _savegpr_25(void);
void func_80362218(void);
void func_803650D0(void);
@@ -255,10 +257,10 @@ void func_80003540(void);
void func_80361C24(void);
void func_803621B0(void);
void func_803621C4(void);
-void func_803621C8(void);
+void _savegpr_24(void);
void func_803621FC(void);
void func_80362210(void);
-void func_80362214(void);
+void _restgpr_24(void);
void ARQPostRequest(void);
void DCStoreRange(void);
@@ -1034,7 +1036,7 @@ void dAttention_c_NS_ActionTarget(void);
void cSAngle_NS___mi_X2_(void);
void dAttention_c_NS_GetLockonList(void);
void dAttHint_c_NS_init(void);
-void dAttention_c(void);
+//void dAttention_c(void);
void PSMTXTrans(void);
void dAttention_c_NS_makeList(void);
void mDoExt_bpkAnm_NS_entry(void);
@@ -1058,7 +1060,7 @@ void dAttDraw_c_NS_alphaAnm(void);
void dAttention_c_NS_LockonReleaseDistanse(void);
void dAttention_c_NS_runDebugDisp(void);
void func_803621BC(void);
-void dAttParam_c(void);
+//void dAttParam_c(void);
void dAttention_c_NS_judgementStatus4Hold(void);
void dAttention_c_NS_calcWeight(void);
void dAttHint_c_NS_getPId(void);
@@ -3464,7 +3466,7 @@ void func_800E7E50(void);
void func_8014168C(void);
void func_800D0370(void);
void func_800E6E0C(void);
-void cM3dGCps(void);
+void __ct__8cM3dGCpsFv(void);
void daAlink_c_NS_setHorseSwordUpAnime(void);
void daAlink_c_NS_checkNotHeavyBootsStage(void);
void func_80141868(void);
diff --git a/include/m_Do/m_Do_ext/m_Do_ext.h b/include/m_Do/m_Do_ext/m_Do_ext.h
new file mode 100644
index 0000000000..6207c98c67
--- /dev/null
+++ b/include/m_Do/m_Do_ext/m_Do_ext.h
@@ -0,0 +1,48 @@
+#ifndef __M_DO_EXT_H_
+#define __M_DO_EXT_H_
+
+#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
+#include "global.h"
+
+class mDoExt_baseAnm {
+public:
+private:
+ J3DFrameCtrl frame_control;
+};
+
+class mDoExt_btkAnm {
+public:
+private:
+ mDoExt_baseAnm base_anm;
+ u32 field_0x14;
+};
+
+class mDoExt_brkAnm {
+public:
+private:
+ mDoExt_baseAnm mDoExt_baseAnm;
+ u32 field_0x14;
+};
+
+class mDoExt_bpkAnm {
+public:
+private:
+ mDoExt_baseAnm mDoExt_baseAnm;
+ u32 field_0x14;
+};
+
+class mDoExt_bckAnm {
+public:
+private:
+ mDoExt_baseAnm base_anm;
+ u8 field_0x14[4];
+ u32 field_0x18;
+};
+
+class mDoExt_McaMorfCallBack1_c {
+public:
+private:
+ void* vtable;
+};
+
+#endif \ No newline at end of file
diff --git a/include/variables.h b/include/variables.h
index ec9b960eba..0bd3457ba9 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -1,14 +1,14 @@
#include "JSystem/JSupport/JSUList/JSUList.h"
extern float lbl_80451D5C;
-extern u8 lbl_80379234[0x64];
extern float lbl_80451D58;
-extern u8 lbl_803A7270[24];
+extern u8 i_item_lst[24];
extern u8 lbl_80430188[16];
extern u8 lbl_80379235[16];
+extern u8 lbl_80379234[0x62];
extern char lbl_803739A0[0x310];
extern void* lbl_80451368;
-extern u32 lbl_804514E0;
+extern u32 _sRumbleSupported;
extern u8 lbl_803C3384;
struct m_cpadInfo;
extern m_cpadInfo lbl_803DD2E8;