summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-06-25 07:34:59 -0700
committerGitHub <noreply@github.com>2024-06-25 08:34:59 -0600
commitd923917b39f99ca74bd2ee2f609e8ff193f5c48a (patch)
tree380aeb1dc2527f54e23f7b63ede46b2ce24ff0a8
parent3c82015f69403d22f7ee3809425cb217f5bdc3b5 (diff)
work on d_camera / d_ev_camera (#2170)
-rw-r--r--Progress.md8
-rw-r--r--asm/d/d_camera/Center__9dCamera_cFv.s14
-rw-r--r--asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s26
-rw-r--r--asm/d/d_camera/Draw__9dCamera_cFv.s11
-rw-r--r--asm/d/d_camera/Eye__9dCamera_cFv.s14
-rw-r--r--asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s50
-rw-r--r--asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s150
-rw-r--r--asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s24
-rw-r--r--asm/d/d_camera/ModeFix__9dCamera_cFl.s4
-rw-r--r--asm/d/d_camera/QuickStart__9dCamera_cFv.s4
-rw-r--r--asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s24
-rw-r--r--asm/d/d_camera/SetTrimSize__9dCamera_cFl.s8
-rw-r--r--asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s4
-rw-r--r--asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s125
-rw-r--r--asm/d/d_camera/Start__9dCamera_cFv.s7
-rw-r--r--asm/d/d_camera/Stay__9dCamera_cFv.s4
-rw-r--r--asm/d/d_camera/Stop__9dCamera_cFv.s7
-rw-r--r--asm/d/d_camera/U__9dCamera_cFv.s17
-rw-r--r--asm/d/d_camera/Up__9dCamera_cFv.s19
-rw-r--r--asm/d/d_camera/V__9dCamera_cFv.s9
-rw-r--r--asm/d/d_camera/camera_create__FP12camera_class.s13
-rw-r--r--asm/d/d_camera/func_8015FA2C.s10
-rw-r--r--asm/d/d_camera/func_8015FADC.s24
-rw-r--r--asm/d/d_camera/func_8015FB28.s61
-rw-r--r--asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s59
-rw-r--r--asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s10
-rw-r--r--asm/d/d_camera/init_phase1__FP12camera_class.s33
-rw-r--r--asm/d/d_camera/onRoomChange__9dCamera_cFl.s54
-rw-r--r--asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s33
-rw-r--r--asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s19
-rw-r--r--asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s15
-rw-r--r--asm/d/d_camera/setUSOAngle__9dCamera_cFv.s22
-rw-r--r--asm/d/d_ev_camera/func_800889F8.s38
-rw-r--r--asm/d/d_ev_camera/func_8008E750.s11
-rw-r--r--asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s87
-rw-r--r--asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s89
-rw-r--r--asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s56
-rw-r--r--asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s60
-rw-r--r--asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s55
-rw-r--r--asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s63
-rw-r--r--asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s56
-rw-r--r--asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s62
-rw-r--r--asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s48
-rw-r--r--asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s47
-rw-r--r--asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s74
-rw-r--r--asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s55
-rw-r--r--asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s51
-rw-r--r--asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s50
-rw-r--r--asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s10
-rw-r--r--asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s10
-rw-r--r--asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s10
-rw-r--r--include/SSystem/SComponent/c_angle.h5
-rw-r--r--include/Z2AudioLib/Z2StatusMgr.h1
-rw-r--r--include/d/a/d_a_alink.h6
-rw-r--r--include/d/a/d_a_player.h4
-rw-r--r--include/d/bg/d_bg_s.h2
-rw-r--r--include/d/bg/d_bg_w.h4
-rw-r--r--include/d/bg/d_bg_w_base.h2
-rw-r--r--include/d/bg/d_bg_w_kcol.h2
-rw-r--r--include/d/com/d_com_inf_game.h68
-rw-r--r--include/d/d_attention.h5
-rw-r--r--include/d/d_cam_param.h19
-rw-r--r--include/d/d_camera.h225
-rw-r--r--include/d/d_demo.h14
-rw-r--r--include/d/d_drawlist.h2
-rw-r--r--include/d/d_stage.h17
-rw-r--r--include/d/event/d_event_manager.h1
-rw-r--r--include/d/save/d_save.h12
-rw-r--r--include/f_op/f_op_actor.h2
-rw-r--r--include/f_op/f_op_camera_mng.h42
-rw-r--r--include/m_Do/m_Do_audio.h8
-rw-r--r--include/m_Do/m_Do_controller_pad.h1
-rw-r--r--include/m_Do/m_Do_mtx.h4
-rw-r--r--include/rel/d/a/d_a_horse/d_a_horse.h3
-rw-r--r--src/d/a/d_a_alink_hang.inc27
-rw-r--r--src/d/bg/d_bg_s.cpp2
-rw-r--r--src/d/bg/d_bg_w.cpp4
-rw-r--r--src/d/bg/d_bg_w_kcol.cpp2
-rw-r--r--src/d/d_camera.cpp2260
-rw-r--r--src/d/d_demo.cpp2
-rw-r--r--src/d/d_ev_camera.cpp682
-rw-r--r--src/d/d_stage.cpp8
82 files changed, 2759 insertions, 2491 deletions
diff --git a/Progress.md b/Progress.md
index 5b0caee77f..4b6359599e 100644
--- a/Progress.md
+++ b/Progress.md
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
-.text | 50.567545% | 1818684 | 3596544
+.text | 50.747495% | 1825156 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
-Total | 55.777243% | 2242620 | 4020672
+Total | 55.938211% | 2249092 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
-main.dol | 55.777243% | 2242620 | 4020672
+main.dol | 55.938211% | 2249092 | 4020672
RELs | 38.860853% | 4469124 | 11500324
-Total | 43.242998% | 6711744 | 15520996
+Total | 43.284696% | 6718216 | 15520996
## RELs
diff --git a/asm/d/d_camera/Center__9dCamera_cFv.s b/asm/d/d_camera/Center__9dCamera_cFv.s
deleted file mode 100644
index 3b0dea165c..0000000000
--- a/asm/d/d_camera/Center__9dCamera_cFv.s
+++ /dev/null
@@ -1,14 +0,0 @@
-lbl_80181E98:
-/* 80181E98 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80181E9C 7C 08 02 A6 */ mflr r0
-/* 80181EA0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80181EA4 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80181EA8 7C 85 23 78 */ mr r5, r4
-/* 80181EAC 38 85 00 30 */ addi r4, r5, 0x30
-/* 80181EB0 38 A5 06 DC */ addi r5, r5, 0x6dc
-/* 80181EB4 48 0E 4C 31 */ bl __pl__4cXyzCFRC3Vec
-/* 80181EB8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80181EBC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80181EC0 7C 08 03 A6 */ mtlr r0
-/* 80181EC4 38 21 00 10 */ addi r1, r1, 0x10
-/* 80181EC8 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s b/asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s
deleted file mode 100644
index e9384d137b..0000000000
--- a/asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s
+++ /dev/null
@@ -1,26 +0,0 @@
-lbl_801614F4:
-/* 801614F4 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 801614F8 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 801614FC 80 05 51 84 */ lwz r0, 0x5184(r5)
-/* 80161500 2C 00 00 00 */ cmpwi r0, 0
-/* 80161504 40 82 00 10 */ bne lbl_80161514
-/* 80161508 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 8016150C 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80161510 41 82 00 0C */ beq lbl_8016151C
-lbl_80161514:
-/* 80161514 38 60 00 00 */ li r3, 0
-/* 80161518 4E 80 00 20 */ blr
-lbl_8016151C:
-/* 8016151C 80 A3 06 84 */ lwz r5, 0x684(r3)
-/* 80161520 80 03 06 8C */ lwz r0, 0x68c(r3)
-/* 80161524 1C 00 00 44 */ mulli r0, r0, 0x44
-/* 80161528 7C A5 02 14 */ add r5, r5, r0
-/* 8016152C 80 03 01 90 */ lwz r0, 0x190(r3)
-/* 80161530 1C 00 00 16 */ mulli r0, r0, 0x16
-/* 80161534 7C 65 02 14 */ add r3, r5, r0
-/* 80161538 54 80 08 3C */ slwi r0, r4, 1
-/* 8016153C 7C 63 02 14 */ add r3, r3, r0
-/* 80161540 A8 03 00 18 */ lha r0, 0x18(r3)
-/* 80161544 54 00 0F FE */ srwi r0, r0, 0x1f
-/* 80161548 68 03 00 01 */ xori r3, r0, 1
-/* 8016154C 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Draw__9dCamera_cFv.s b/asm/d/d_camera/Draw__9dCamera_cFv.s
deleted file mode 100644
index 6ca8b8a08f..0000000000
--- a/asm/d/d_camera/Draw__9dCamera_cFv.s
+++ /dev/null
@@ -1,11 +0,0 @@
-lbl_80163154:
-/* 80163154 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80163158 7C 08 02 A6 */ mflr r0
-/* 8016315C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80163160 38 63 02 28 */ addi r3, r3, 0x228
-/* 80163164 48 01 F3 FD */ bl Draw__14dCamForcusLineFv
-/* 80163168 38 60 00 01 */ li r3, 1
-/* 8016316C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80163170 7C 08 03 A6 */ mtlr r0
-/* 80163174 38 21 00 10 */ addi r1, r1, 0x10
-/* 80163178 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Eye__9dCamera_cFv.s b/asm/d/d_camera/Eye__9dCamera_cFv.s
deleted file mode 100644
index 1000254645..0000000000
--- a/asm/d/d_camera/Eye__9dCamera_cFv.s
+++ /dev/null
@@ -1,14 +0,0 @@
-lbl_80181E64:
-/* 80181E64 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80181E68 7C 08 02 A6 */ mflr r0
-/* 80181E6C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80181E70 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80181E74 7C 85 23 78 */ mr r5, r4
-/* 80181E78 38 85 00 3C */ addi r4, r5, 0x3c
-/* 80181E7C 38 A5 06 E8 */ addi r5, r5, 0x6e8
-/* 80181E80 48 0E 4C 65 */ bl __pl__4cXyzCFRC3Vec
-/* 80181E84 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80181E88 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80181E8C 7C 08 03 A6 */ mtlr r0
-/* 80181E90 38 21 00 10 */ addi r1, r1, 0x10
-/* 80181E94 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s b/asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s
deleted file mode 100644
index 496c011694..0000000000
--- a/asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s
+++ /dev/null
@@ -1,50 +0,0 @@
-lbl_80164B64:
-/* 80164B64 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80164B68 7C 08 02 A6 */ mflr r0
-/* 80164B6C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80164B70 39 61 00 20 */ addi r11, r1, 0x20
-/* 80164B74 48 1F D6 65 */ bl _savegpr_28
-/* 80164B78 7C 7C 1B 78 */ mr r28, r3
-/* 80164B7C 7C 9D 23 78 */ mr r29, r4
-/* 80164B80 7F A3 EB 78 */ mr r3, r29
-/* 80164B84 80 9C 06 84 */ lwz r4, 0x684(r28)
-/* 80164B88 80 1C 06 8C */ lwz r0, 0x68c(r28)
-/* 80164B8C 1C 00 00 44 */ mulli r0, r0, 0x44
-/* 80164B90 7C 84 02 14 */ add r4, r4, r0
-/* 80164B94 48 20 3E 01 */ bl strcmp
-/* 80164B98 2C 03 00 00 */ cmpwi r3, 0
-/* 80164B9C 40 82 00 0C */ bne lbl_80164BA8
-/* 80164BA0 80 7C 06 8C */ lwz r3, 0x68c(r28)
-/* 80164BA4 48 00 00 54 */ b lbl_80164BF8
-lbl_80164BA8:
-/* 80164BA8 3B C0 00 00 */ li r30, 0
-/* 80164BAC 3B E0 00 00 */ li r31, 0
-/* 80164BB0 48 00 00 24 */ b lbl_80164BD4
-lbl_80164BB4:
-/* 80164BB4 7F A3 EB 78 */ mr r3, r29
-/* 80164BB8 80 1C 06 84 */ lwz r0, 0x684(r28)
-/* 80164BBC 7C 80 FA 14 */ add r4, r0, r31
-/* 80164BC0 48 20 3D D5 */ bl strcmp
-/* 80164BC4 2C 03 00 00 */ cmpwi r3, 0
-/* 80164BC8 41 82 00 18 */ beq lbl_80164BE0
-/* 80164BCC 3B DE 00 01 */ addi r30, r30, 1
-/* 80164BD0 3B FF 00 44 */ addi r31, r31, 0x44
-lbl_80164BD4:
-/* 80164BD4 80 1C 06 88 */ lwz r0, 0x688(r28)
-/* 80164BD8 7C 1E 00 00 */ cmpw r30, r0
-/* 80164BDC 41 80 FF D8 */ blt lbl_80164BB4
-lbl_80164BE0:
-/* 80164BE0 80 1C 06 88 */ lwz r0, 0x688(r28)
-/* 80164BE4 7C 1E 00 00 */ cmpw r30, r0
-/* 80164BE8 40 82 00 0C */ bne lbl_80164BF4
-/* 80164BEC 38 60 00 FF */ li r3, 0xff
-/* 80164BF0 48 00 00 08 */ b lbl_80164BF8
-lbl_80164BF4:
-/* 80164BF4 7F C3 F3 78 */ mr r3, r30
-lbl_80164BF8:
-/* 80164BF8 39 61 00 20 */ addi r11, r1, 0x20
-/* 80164BFC 48 1F D6 29 */ bl _restgpr_28
-/* 80164C00 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80164C04 7C 08 03 A6 */ mtlr r0
-/* 80164C08 38 21 00 20 */ addi r1, r1, 0x20
-/* 80164C0C 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s b/asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s
deleted file mode 100644
index 9752caacd7..0000000000
--- a/asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s
+++ /dev/null
@@ -1,150 +0,0 @@
-lbl_80164944:
-/* 80164944 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80164948 7C 08 02 A6 */ mflr r0
-/* 8016494C 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80164950 39 61 00 30 */ addi r11, r1, 0x30
-/* 80164954 48 1F D8 79 */ bl _savegpr_25
-/* 80164958 7C 7C 1B 78 */ mr r28, r3
-/* 8016495C 7C 9D 23 78 */ mr r29, r4
-/* 80164960 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80164964 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80164968 3B 43 4E 20 */ addi r26, r3, 0x4e20
-/* 8016496C 2C 05 FF FF */ cmpwi r5, -1
-/* 80164970 40 82 00 38 */ bne lbl_801649A8
-/* 80164974 7F 43 D3 78 */ mr r3, r26
-/* 80164978 81 9A 00 00 */ lwz r12, 0(r26)
-/* 8016497C 81 8C 00 10 */ lwz r12, 0x10(r12)
-/* 80164980 7D 89 03 A6 */ mtctr r12
-/* 80164984 4E 80 04 21 */ bctrl
-/* 80164988 7C 79 1B 78 */ mr r25, r3
-/* 8016498C 7F 43 D3 78 */ mr r3, r26
-/* 80164990 81 9A 00 00 */ lwz r12, 0(r26)
-/* 80164994 81 8C 00 18 */ lwz r12, 0x18(r12)
-/* 80164998 7D 89 03 A6 */ mtctr r12
-/* 8016499C 4E 80 04 21 */ bctrl
-/* 801649A0 7C 7E 1B 78 */ mr r30, r3
-/* 801649A4 48 00 00 30 */ b lbl_801649D4
-lbl_801649A8:
-/* 801649A8 7C BB 2B 78 */ mr r27, r5
-/* 801649AC 7F 63 DB 78 */ mr r3, r27
-/* 801649B0 4B EC 88 AD */ bl dComIfGp_getRoomCamera__Fi
-/* 801649B4 7C 79 1B 78 */ mr r25, r3
-/* 801649B8 7F 63 DB 78 */ mr r3, r27
-/* 801649BC 4B EC 88 F1 */ bl dComIfGp_getRoomArrow__Fi
-/* 801649C0 7C 7E 1B 78 */ mr r30, r3
-/* 801649C4 28 19 00 00 */ cmplwi r25, 0
-/* 801649C8 40 82 00 0C */ bne lbl_801649D4
-/* 801649CC 38 60 00 FF */ li r3, 0xff
-/* 801649D0 48 00 01 7C */ b lbl_80164B4C
-lbl_801649D4:
-/* 801649D4 2C 1D 00 00 */ cmpwi r29, 0
-/* 801649D8 41 80 00 1C */ blt lbl_801649F4
-/* 801649DC 28 19 00 00 */ cmplwi r25, 0
-/* 801649E0 41 82 00 14 */ beq lbl_801649F4
-/* 801649E4 41 82 00 18 */ beq lbl_801649FC
-/* 801649E8 80 19 00 00 */ lwz r0, 0(r25)
-/* 801649EC 7C 1D 00 00 */ cmpw r29, r0
-/* 801649F0 41 80 00 0C */ blt lbl_801649FC
-lbl_801649F4:
-/* 801649F4 38 60 00 FF */ li r3, 0xff
-/* 801649F8 48 00 01 54 */ b lbl_80164B4C
-lbl_801649FC:
-/* 801649FC 3B E0 00 00 */ li r31, 0
-/* 80164A00 3B 60 00 00 */ li r27, 0
-/* 80164A04 1F 5D 00 18 */ mulli r26, r29, 0x18
-/* 80164A08 48 00 00 28 */ b lbl_80164A30
-lbl_80164A0C:
-/* 80164A0C 80 19 00 04 */ lwz r0, 4(r25)
-/* 80164A10 7C 60 D2 14 */ add r3, r0, r26
-/* 80164A14 80 1C 06 84 */ lwz r0, 0x684(r28)
-/* 80164A18 7C 80 DA 14 */ add r4, r0, r27
-/* 80164A1C 48 20 3F 79 */ bl strcmp
-/* 80164A20 2C 03 00 00 */ cmpwi r3, 0
-/* 80164A24 41 82 00 18 */ beq lbl_80164A3C
-/* 80164A28 3B FF 00 01 */ addi r31, r31, 1
-/* 80164A2C 3B 7B 00 44 */ addi r27, r27, 0x44
-lbl_80164A30:
-/* 80164A30 80 1C 06 88 */ lwz r0, 0x688(r28)
-/* 80164A34 7C 1F 00 00 */ cmpw r31, r0
-/* 80164A38 41 80 FF D4 */ blt lbl_80164A0C
-lbl_80164A3C:
-/* 80164A3C 80 1C 06 88 */ lwz r0, 0x688(r28)
-/* 80164A40 7C 1F 00 00 */ cmpw r31, r0
-/* 80164A44 40 82 00 0C */ bne lbl_80164A50
-/* 80164A48 38 60 00 FF */ li r3, 0xff
-/* 80164A4C 48 00 01 00 */ b lbl_80164B4C
-lbl_80164A50:
-/* 80164A50 80 19 00 04 */ lwz r0, 4(r25)
-/* 80164A54 7C 80 D2 14 */ add r4, r0, r26
-/* 80164A58 80 64 00 00 */ lwz r3, 0(r4)
-/* 80164A5C 80 04 00 04 */ lwz r0, 4(r4)
-/* 80164A60 90 7C 07 AC */ stw r3, 0x7ac(r28)
-/* 80164A64 90 1C 07 B0 */ stw r0, 0x7b0(r28)
-/* 80164A68 80 64 00 08 */ lwz r3, 8(r4)
-/* 80164A6C 80 04 00 0C */ lwz r0, 0xc(r4)
-/* 80164A70 90 7C 07 B4 */ stw r3, 0x7b4(r28)
-/* 80164A74 90 1C 07 B8 */ stw r0, 0x7b8(r28)
-/* 80164A78 88 04 00 10 */ lbz r0, 0x10(r4)
-/* 80164A7C 98 1C 07 BC */ stb r0, 0x7bc(r28)
-/* 80164A80 88 04 00 11 */ lbz r0, 0x11(r4)
-/* 80164A84 98 1C 07 BD */ stb r0, 0x7bd(r28)
-/* 80164A88 88 04 00 12 */ lbz r0, 0x12(r4)
-/* 80164A8C 98 1C 07 BE */ stb r0, 0x7be(r28)
-/* 80164A90 88 04 00 13 */ lbz r0, 0x13(r4)
-/* 80164A94 98 1C 07 BF */ stb r0, 0x7bf(r28)
-/* 80164A98 A0 04 00 14 */ lhz r0, 0x14(r4)
-/* 80164A9C B0 1C 07 C0 */ sth r0, 0x7c0(r28)
-/* 80164AA0 A0 04 00 16 */ lhz r0, 0x16(r4)
-/* 80164AA4 B0 1C 07 C2 */ sth r0, 0x7c2(r28)
-/* 80164AA8 93 BC 07 DC */ stw r29, 0x7dc(r28)
-/* 80164AAC A0 1C 07 C0 */ lhz r0, 0x7c0(r28)
-/* 80164AB0 54 00 97 BE */ rlwinm r0, r0, 0x12, 0x1e, 0x1f
-/* 80164AB4 98 1C 07 E6 */ stb r0, 0x7e6(r28)
-/* 80164AB8 A0 7C 07 C0 */ lhz r3, 0x7c0(r28)
-/* 80164ABC 54 60 04 A5 */ rlwinm. r0, r3, 0, 0x12, 0x12
-/* 80164AC0 41 82 00 10 */ beq lbl_80164AD0
-/* 80164AC4 60 60 C0 00 */ ori r0, r3, 0xc000
-/* 80164AC8 B0 1C 07 C0 */ sth r0, 0x7c0(r28)
-/* 80164ACC 48 00 00 0C */ b lbl_80164AD8
-lbl_80164AD0:
-/* 80164AD0 54 60 04 BE */ clrlwi r0, r3, 0x12
-/* 80164AD4 B0 1C 07 C0 */ sth r0, 0x7c0(r28)
-lbl_80164AD8:
-/* 80164AD8 88 1C 07 BC */ lbz r0, 0x7bc(r28)
-/* 80164ADC 90 1C 07 D8 */ stw r0, 0x7d8(r28)
-/* 80164AE0 80 9C 07 D8 */ lwz r4, 0x7d8(r28)
-/* 80164AE4 2C 04 FF FF */ cmpwi r4, -1
-/* 80164AE8 41 82 00 58 */ beq lbl_80164B40
-/* 80164AEC 80 1E 00 00 */ lwz r0, 0(r30)
-/* 80164AF0 7C 04 00 00 */ cmpw r4, r0
-/* 80164AF4 40 80 00 4C */ bge lbl_80164B40
-/* 80164AF8 80 7E 00 04 */ lwz r3, 4(r30)
-/* 80164AFC 1C 04 00 14 */ mulli r0, r4, 0x14
-/* 80164B00 7C 63 02 14 */ add r3, r3, r0
-/* 80164B04 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80164B08 D0 1C 07 C4 */ stfs f0, 0x7c4(r28)
-/* 80164B0C C0 03 00 04 */ lfs f0, 4(r3)
-/* 80164B10 D0 1C 07 C8 */ stfs f0, 0x7c8(r28)
-/* 80164B14 C0 03 00 08 */ lfs f0, 8(r3)
-/* 80164B18 D0 1C 07 CC */ stfs f0, 0x7cc(r28)
-/* 80164B1C A8 03 00 0C */ lha r0, 0xc(r3)
-/* 80164B20 B0 1C 07 D0 */ sth r0, 0x7d0(r28)
-/* 80164B24 A8 03 00 0E */ lha r0, 0xe(r3)
-/* 80164B28 B0 1C 07 D2 */ sth r0, 0x7d2(r28)
-/* 80164B2C A8 03 00 10 */ lha r0, 0x10(r3)
-/* 80164B30 B0 1C 07 D4 */ sth r0, 0x7d4(r28)
-/* 80164B34 A8 03 00 12 */ lha r0, 0x12(r3)
-/* 80164B38 B0 1C 07 D6 */ sth r0, 0x7d6(r28)
-/* 80164B3C 48 00 00 0C */ b lbl_80164B48
-lbl_80164B40:
-/* 80164B40 38 00 00 FF */ li r0, 0xff
-/* 80164B44 90 1C 07 D8 */ stw r0, 0x7d8(r28)
-lbl_80164B48:
-/* 80164B48 7F E3 FB 78 */ mr r3, r31
-lbl_80164B4C:
-/* 80164B4C 39 61 00 30 */ addi r11, r1, 0x30
-/* 80164B50 48 1F D6 C9 */ bl _restgpr_25
-/* 80164B54 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80164B58 7C 08 03 A6 */ mtlr r0
-/* 80164B5C 38 21 00 30 */ addi r1, r1, 0x30
-/* 80164B60 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s b/asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s
deleted file mode 100644
index 94d103d2c4..0000000000
--- a/asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s
+++ /dev/null
@@ -1,24 +0,0 @@
-lbl_80164C10:
-/* 80164C10 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80164C14 7C 08 02 A6 */ mflr r0
-/* 80164C18 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80164C1C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80164C20 7C 9F 23 78 */ mr r31, r4
-/* 80164C24 A0 04 00 16 */ lhz r0, 0x16(r4)
-/* 80164C28 28 00 FF FF */ cmplwi r0, 0xffff
-/* 80164C2C 41 82 00 0C */ beq lbl_80164C38
-/* 80164C30 7C 03 03 78 */ mr r3, r0
-/* 80164C34 48 00 00 1C */ b lbl_80164C50
-lbl_80164C38:
-/* 80164C38 4B FF FF 2D */ bl GetCameraTypeFromCameraName__9dCamera_cFPCc
-/* 80164C3C 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */
-/* 80164C40 38 04 FF FF */ addi r0, r4, 0xFFFF /* 0x0000FFFF@l */
-/* 80164C44 7C 03 00 00 */ cmpw r3, r0
-/* 80164C48 40 80 00 08 */ bge lbl_80164C50
-/* 80164C4C B0 7F 00 16 */ sth r3, 0x16(r31)
-lbl_80164C50:
-/* 80164C50 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80164C54 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80164C58 7C 08 03 A6 */ mtlr r0
-/* 80164C5C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80164C60 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/ModeFix__9dCamera_cFl.s b/asm/d/d_camera/ModeFix__9dCamera_cFl.s
deleted file mode 100644
index 8bf9c03d18..0000000000
--- a/asm/d/d_camera/ModeFix__9dCamera_cFl.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_80163D50:
-/* 80163D50 90 83 01 AC */ stw r4, 0x1ac(r3)
-/* 80163D54 38 60 00 01 */ li r3, 1
-/* 80163D58 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/QuickStart__9dCamera_cFv.s b/asm/d/d_camera/QuickStart__9dCamera_cFv.s
deleted file mode 100644
index d6ed4d2490..0000000000
--- a/asm/d/d_camera/QuickStart__9dCamera_cFv.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_801614C4:
-/* 801614C4 38 00 00 00 */ li r0, 0
-/* 801614C8 90 03 00 24 */ stw r0, 0x24(r3)
-/* 801614CC 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s b/asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s
deleted file mode 100644
index 4afac980e8..0000000000
--- a/asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s
+++ /dev/null
@@ -1,24 +0,0 @@
-lbl_80163558:
-/* 80163558 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8016355C 7C 08 02 A6 */ mflr r0
-/* 80163560 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80163564 7C 8A 23 79 */ or. r10, r4, r4
-/* 80163568 7C C9 33 78 */ mr r9, r6
-/* 8016356C 7C E8 3B 78 */ mr r8, r7
-/* 80163570 7C A4 2B 78 */ mr r4, r5
-/* 80163574 38 63 08 60 */ addi r3, r3, 0x860
-/* 80163578 41 82 00 10 */ beq lbl_80163588
-/* 8016357C 88 0A 04 E2 */ lbz r0, 0x4e2(r10)
-/* 80163580 7C 05 07 74 */ extsb r5, r0
-/* 80163584 48 00 00 0C */ b lbl_80163590
-lbl_80163588:
-/* 80163588 88 AD 87 E4 */ lbz r5, mStayNo__20dStage_roomControl_c+0x0(r13)
-/* 8016358C 7C A5 07 74 */ extsb r5, r5
-lbl_80163590:
-/* 80163590 7D 46 53 78 */ mr r6, r10
-/* 80163594 7D 27 4B 78 */ mr r7, r9
-/* 80163598 4B FF C9 21 */ bl Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc
-/* 8016359C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801635A0 7C 08 03 A6 */ mtlr r0
-/* 801635A4 38 21 00 10 */ addi r1, r1, 0x10
-/* 801635A8 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/SetTrimSize__9dCamera_cFl.s b/asm/d/d_camera/SetTrimSize__9dCamera_cFl.s
deleted file mode 100644
index 36970fd591..0000000000
--- a/asm/d/d_camera/SetTrimSize__9dCamera_cFl.s
+++ /dev/null
@@ -1,8 +0,0 @@
-lbl_8016300C:
-/* 8016300C 80 03 09 24 */ lwz r0, 0x924(r3)
-/* 80163010 7C A0 20 50 */ subf r5, r0, r4
-/* 80163014 30 05 FF FF */ addic r0, r5, -1
-/* 80163018 7C 00 29 10 */ subfe r0, r0, r5
-/* 8016301C 90 83 09 24 */ stw r4, 0x924(r3)
-/* 80163020 7C 03 03 78 */ mr r3, r0
-/* 80163024 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s b/asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s
deleted file mode 100644
index dcabff8fc5..0000000000
--- a/asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_80163028:
-/* 80163028 90 83 09 28 */ stw r4, 0x928(r3)
-/* 8016302C 38 60 00 01 */ li r3, 1
-/* 80163030 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s b/asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s
deleted file mode 100644
index 276d80bdfb..0000000000
--- a/asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s
+++ /dev/null
@@ -1,125 +0,0 @@
-lbl_8015FEB8:
-/* 8015FEB8 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 8015FEBC 7C 08 02 A6 */ mflr r0
-/* 8015FEC0 90 01 00 34 */ stw r0, 0x34(r1)
-/* 8015FEC4 39 61 00 30 */ addi r11, r1, 0x30
-/* 8015FEC8 48 20 23 01 */ bl _savegpr_24
-/* 8015FECC 7C 7B 1B 78 */ mr r27, r3
-/* 8015FED0 7C 98 23 78 */ mr r24, r4
-/* 8015FED4 7C DC 33 78 */ mr r28, r6
-/* 8015FED8 7D 1D 43 78 */ mr r29, r8
-/* 8015FEDC 54 FF 04 3E */ clrlwi r31, r7, 0x10
-/* 8015FEE0 54 FE 06 3E */ clrlwi r30, r7, 0x18
-/* 8015FEE4 A0 03 00 38 */ lhz r0, 0x38(r3)
-/* 8015FEE8 7C 1E 00 00 */ cmpw r30, r0
-/* 8015FEEC 40 81 00 0C */ ble lbl_8015FEF8
-/* 8015FEF0 38 60 00 00 */ li r3, 0
-/* 8015FEF4 48 00 01 80 */ b lbl_80160074
-lbl_8015FEF8:
-/* 8015FEF8 7C B9 2B 78 */ mr r25, r5
-/* 8015FEFC 7F 23 CB 78 */ mr r3, r25
-/* 8015FF00 4B EC D3 5D */ bl dComIfGp_getRoomCamera__Fi
-/* 8015FF04 7C 7A 1B 78 */ mr r26, r3
-/* 8015FF08 7F 23 CB 78 */ mr r3, r25
-/* 8015FF0C 4B EC D3 A1 */ bl dComIfGp_getRoomArrow__Fi
-/* 8015FF10 28 1A 00 00 */ cmplwi r26, 0
-/* 8015FF14 41 82 01 5C */ beq lbl_80160070
-/* 8015FF18 2C 18 00 00 */ cmpwi r24, 0
-/* 8015FF1C 41 80 01 54 */ blt lbl_80160070
-/* 8015FF20 80 1A 00 00 */ lwz r0, 0(r26)
-/* 8015FF24 7C 18 00 00 */ cmpw r24, r0
-/* 8015FF28 40 80 01 48 */ bge lbl_80160070
-/* 8015FF2C 38 80 00 FF */ li r4, 0xff
-/* 8015FF30 90 9B 00 2C */ stw r4, 0x2c(r27)
-/* 8015FF34 90 9B 00 30 */ stw r4, 0x30(r27)
-/* 8015FF38 38 00 00 00 */ li r0, 0
-/* 8015FF3C 98 1B 00 3A */ stb r0, 0x3a(r27)
-/* 8015FF40 90 1B 00 34 */ stw r0, 0x34(r27)
-/* 8015FF44 98 9B 00 3B */ stb r4, 0x3b(r27)
-/* 8015FF48 B0 9B 00 38 */ sth r4, 0x38(r27)
-/* 8015FF4C 93 1B 00 30 */ stw r24, 0x30(r27)
-/* 8015FF50 80 9A 00 04 */ lwz r4, 4(r26)
-/* 8015FF54 80 1B 00 30 */ lwz r0, 0x30(r27)
-/* 8015FF58 1C 00 00 18 */ mulli r0, r0, 0x18
-/* 8015FF5C 7C A4 02 14 */ add r5, r4, r0
-/* 8015FF60 80 85 00 00 */ lwz r4, 0(r5)
-/* 8015FF64 80 05 00 04 */ lwz r0, 4(r5)
-/* 8015FF68 90 9B 00 00 */ stw r4, 0(r27)
-/* 8015FF6C 90 1B 00 04 */ stw r0, 4(r27)
-/* 8015FF70 80 85 00 08 */ lwz r4, 8(r5)
-/* 8015FF74 80 05 00 0C */ lwz r0, 0xc(r5)
-/* 8015FF78 90 9B 00 08 */ stw r4, 8(r27)
-/* 8015FF7C 90 1B 00 0C */ stw r0, 0xc(r27)
-/* 8015FF80 88 05 00 10 */ lbz r0, 0x10(r5)
-/* 8015FF84 98 1B 00 10 */ stb r0, 0x10(r27)
-/* 8015FF88 88 05 00 11 */ lbz r0, 0x11(r5)
-/* 8015FF8C 98 1B 00 11 */ stb r0, 0x11(r27)
-/* 8015FF90 88 05 00 12 */ lbz r0, 0x12(r5)
-/* 8015FF94 98 1B 00 12 */ stb r0, 0x12(r27)
-/* 8015FF98 88 05 00 13 */ lbz r0, 0x13(r5)
-/* 8015FF9C 98 1B 00 13 */ stb r0, 0x13(r27)
-/* 8015FFA0 A0 05 00 14 */ lhz r0, 0x14(r5)
-/* 8015FFA4 B0 1B 00 14 */ sth r0, 0x14(r27)
-/* 8015FFA8 A0 05 00 16 */ lhz r0, 0x16(r5)
-/* 8015FFAC B0 1B 00 16 */ sth r0, 0x16(r27)
-/* 8015FFB0 A0 1B 00 14 */ lhz r0, 0x14(r27)
-/* 8015FFB4 54 00 97 BE */ rlwinm r0, r0, 0x12, 0x1e, 0x1f
-/* 8015FFB8 98 1B 00 3A */ stb r0, 0x3a(r27)
-/* 8015FFBC 57 E0 04 21 */ rlwinm. r0, r31, 0, 0x10, 0x10
-/* 8015FFC0 41 82 00 10 */ beq lbl_8015FFD0
-/* 8015FFC4 88 1B 00 3A */ lbz r0, 0x3a(r27)
-/* 8015FFC8 60 00 00 10 */ ori r0, r0, 0x10
-/* 8015FFCC 98 1B 00 3A */ stb r0, 0x3a(r27)
-lbl_8015FFD0:
-/* 8015FFD0 A0 9B 00 14 */ lhz r4, 0x14(r27)
-/* 8015FFD4 54 80 04 A5 */ rlwinm. r0, r4, 0, 0x12, 0x12
-/* 8015FFD8 41 82 00 10 */ beq lbl_8015FFE8
-/* 8015FFDC 60 80 C0 00 */ ori r0, r4, 0xc000
-/* 8015FFE0 B0 1B 00 14 */ sth r0, 0x14(r27)
-/* 8015FFE4 48 00 00 0C */ b lbl_8015FFF0
-lbl_8015FFE8:
-/* 8015FFE8 54 80 04 BE */ clrlwi r0, r4, 0x12
-/* 8015FFEC B0 1B 00 14 */ sth r0, 0x14(r27)
-lbl_8015FFF0:
-/* 8015FFF0 88 1B 00 10 */ lbz r0, 0x10(r27)
-/* 8015FFF4 90 1B 00 2C */ stw r0, 0x2c(r27)
-/* 8015FFF8 28 03 00 00 */ cmplwi r3, 0
-/* 8015FFFC 41 82 00 60 */ beq lbl_8016005C
-/* 80160000 80 9B 00 2C */ lwz r4, 0x2c(r27)
-/* 80160004 2C 04 00 00 */ cmpwi r4, 0
-/* 80160008 41 80 00 54 */ blt lbl_8016005C
-/* 8016000C 80 03 00 00 */ lwz r0, 0(r3)
-/* 80160010 7C 04 00 00 */ cmpw r4, r0
-/* 80160014 40 80 00 48 */ bge lbl_8016005C
-/* 80160018 80 63 00 04 */ lwz r3, 4(r3)
-/* 8016001C 1C 04 00 14 */ mulli r0, r4, 0x14
-/* 80160020 7C 63 02 14 */ add r3, r3, r0
-/* 80160024 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80160028 D0 1B 00 18 */ stfs f0, 0x18(r27)
-/* 8016002C C0 03 00 04 */ lfs f0, 4(r3)
-/* 80160030 D0 1B 00 1C */ stfs f0, 0x1c(r27)
-/* 80160034 C0 03 00 08 */ lfs f0, 8(r3)
-/* 80160038 D0 1B 00 20 */ stfs f0, 0x20(r27)
-/* 8016003C A8 03 00 0C */ lha r0, 0xc(r3)
-/* 80160040 B0 1B 00 24 */ sth r0, 0x24(r27)
-/* 80160044 A8 03 00 0E */ lha r0, 0xe(r3)
-/* 80160048 B0 1B 00 26 */ sth r0, 0x26(r27)
-/* 8016004C A8 03 00 10 */ lha r0, 0x10(r3)
-/* 80160050 B0 1B 00 28 */ sth r0, 0x28(r27)
-/* 80160054 A8 03 00 12 */ lha r0, 0x12(r3)
-/* 80160058 B0 1B 00 2A */ sth r0, 0x2a(r27)
-lbl_8016005C:
-/* 8016005C 93 9B 00 34 */ stw r28, 0x34(r27)
-/* 80160060 9B BB 00 3B */ stb r29, 0x3b(r27)
-/* 80160064 B3 DB 00 38 */ sth r30, 0x38(r27)
-/* 80160068 38 60 00 01 */ li r3, 1
-/* 8016006C 48 00 00 08 */ b lbl_80160074
-lbl_80160070:
-/* 80160070 38 60 00 00 */ li r3, 0
-lbl_80160074:
-/* 80160074 39 61 00 30 */ addi r11, r1, 0x30
-/* 80160078 48 20 21 9D */ bl _restgpr_24
-/* 8016007C 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80160080 7C 08 03 A6 */ mtlr r0
-/* 80160084 38 21 00 30 */ addi r1, r1, 0x30
-/* 80160088 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Start__9dCamera_cFv.s b/asm/d/d_camera/Start__9dCamera_cFv.s
deleted file mode 100644
index f007e37a54..0000000000
--- a/asm/d/d_camera/Start__9dCamera_cFv.s
+++ /dev/null
@@ -1,7 +0,0 @@
-lbl_801614AC:
-/* 801614AC 80 03 00 24 */ lwz r0, 0x24(r3)
-/* 801614B0 2C 00 00 00 */ cmpwi r0, 0
-/* 801614B4 4D 82 00 20 */ beqlr
-/* 801614B8 38 00 00 02 */ li r0, 2
-/* 801614BC 90 03 00 24 */ stw r0, 0x24(r3)
-/* 801614C0 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Stay__9dCamera_cFv.s b/asm/d/d_camera/Stay__9dCamera_cFv.s
deleted file mode 100644
index 9d04c42dd0..0000000000
--- a/asm/d/d_camera/Stay__9dCamera_cFv.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_801614E8:
-/* 801614E8 38 00 00 01 */ li r0, 1
-/* 801614EC 90 03 00 24 */ stw r0, 0x24(r3)
-/* 801614F0 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Stop__9dCamera_cFv.s b/asm/d/d_camera/Stop__9dCamera_cFv.s
deleted file mode 100644
index 4851c8da35..0000000000
--- a/asm/d/d_camera/Stop__9dCamera_cFv.s
+++ /dev/null
@@ -1,7 +0,0 @@
-lbl_801614D0:
-/* 801614D0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 801614D4 54 00 02 D2 */ rlwinm r0, r0, 0, 0xb, 9
-/* 801614D8 90 03 06 0C */ stw r0, 0x60c(r3)
-/* 801614DC 38 00 00 03 */ li r0, 3
-/* 801614E0 90 03 00 24 */ stw r0, 0x24(r3)
-/* 801614E4 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/U__9dCamera_cFv.s b/asm/d/d_camera/U__9dCamera_cFv.s
deleted file mode 100644
index 625fb4eb74..0000000000
--- a/asm/d/d_camera/U__9dCamera_cFv.s
+++ /dev/null
@@ -1,17 +0,0 @@
-lbl_80162FD4:
-/* 80162FD4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80162FD8 7C 08 02 A6 */ mflr r0
-/* 80162FDC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80162FE0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80162FE4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
-/* 80162FE8 41 82 00 0C */ beq lbl_80162FF4
-/* 80162FEC A8 63 07 6A */ lha r3, 0x76a(r3)
-/* 80162FF0 48 00 00 0C */ b lbl_80162FFC
-lbl_80162FF4:
-/* 80162FF4 38 63 00 2E */ addi r3, r3, 0x2e
-/* 80162FF8 48 10 E0 F1 */ bl Inv__7cSAngleCFv
-lbl_80162FFC:
-/* 80162FFC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80163000 7C 08 03 A6 */ mtlr r0
-/* 80163004 38 21 00 10 */ addi r1, r1, 0x10
-/* 80163008 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/Up__9dCamera_cFv.s b/asm/d/d_camera/Up__9dCamera_cFv.s
deleted file mode 100644
index 139773cc34..0000000000
--- a/asm/d/d_camera/Up__9dCamera_cFv.s
+++ /dev/null
@@ -1,19 +0,0 @@
-lbl_80181E20:
-/* 80181E20 80 04 06 0C */ lwz r0, 0x60c(r4)
-/* 80181E24 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
-/* 80181E28 41 82 00 20 */ beq lbl_80181E48
-/* 80181E2C C0 04 07 58 */ lfs f0, 0x758(r4)
-/* 80181E30 D0 03 00 00 */ stfs f0, 0(r3)
-/* 80181E34 C0 04 07 5C */ lfs f0, 0x75c(r4)
-/* 80181E38 D0 03 00 04 */ stfs f0, 4(r3)
-/* 80181E3C C0 04 07 60 */ lfs f0, 0x760(r4)
-/* 80181E40 D0 03 00 08 */ stfs f0, 8(r3)
-/* 80181E44 4E 80 00 20 */ blr
-lbl_80181E48:
-/* 80181E48 C0 04 00 48 */ lfs f0, 0x48(r4)
-/* 80181E4C D0 03 00 00 */ stfs f0, 0(r3)
-/* 80181E50 C0 04 00 4C */ lfs f0, 0x4c(r4)
-/* 80181E54 D0 03 00 04 */ stfs f0, 4(r3)
-/* 80181E58 C0 04 00 50 */ lfs f0, 0x50(r4)
-/* 80181E5C D0 03 00 08 */ stfs f0, 8(r3)
-/* 80181E60 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/V__9dCamera_cFv.s b/asm/d/d_camera/V__9dCamera_cFv.s
deleted file mode 100644
index 28b8aff601..0000000000
--- a/asm/d/d_camera/V__9dCamera_cFv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80162FB8:
-/* 80162FB8 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80162FBC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
-/* 80162FC0 41 82 00 0C */ beq lbl_80162FCC
-/* 80162FC4 A8 63 07 68 */ lha r3, 0x768(r3)
-/* 80162FC8 4E 80 00 20 */ blr
-lbl_80162FCC:
-/* 80162FCC A8 63 00 2C */ lha r3, 0x2c(r3)
-/* 80162FD0 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/camera_create__FP12camera_class.s b/asm/d/d_camera/camera_create__FP12camera_class.s
deleted file mode 100644
index 10b0e836dd..0000000000
--- a/asm/d/d_camera/camera_create__FP12camera_class.s
+++ /dev/null
@@ -1,13 +0,0 @@
-lbl_80182454:
-/* 80182454 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80182458 7C 08 02 A6 */ mflr r0
-/* 8018245C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80182460 7C 65 1B 78 */ mr r5, r3
-/* 80182464 38 65 02 40 */ addi r3, r5, 0x240
-/* 80182468 3C 80 80 3C */ lis r4, l_method@ha /* 0x803BA6D8@ha */
-/* 8018246C 38 84 A6 D8 */ addi r4, r4, l_method@l /* 0x803BA6D8@l */
-/* 80182470 4B EA D6 B1 */ bl dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv
-/* 80182474 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80182478 7C 08 03 A6 */ mtlr r0
-/* 8018247C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80182480 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/func_8015FA2C.s b/asm/d/d_camera/func_8015FA2C.s
deleted file mode 100644
index 90e44423b6..0000000000
--- a/asm/d/d_camera/func_8015FA2C.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8015FA2C:
-/* 8015FA2C FC 01 18 40 */ fcmpo cr0, f1, f3
-/* 8015FA30 40 81 00 0C */ ble lbl_8015FA3C
-/* 8015FA34 FC 20 18 90 */ fmr f1, f3
-/* 8015FA38 4E 80 00 20 */ blr
-lbl_8015FA3C:
-/* 8015FA3C FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 8015FA40 4C 80 00 20 */ bgelr
-/* 8015FA44 FC 20 10 90 */ fmr f1, f2
-/* 8015FA48 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/func_8015FADC.s b/asm/d/d_camera/func_8015FADC.s
deleted file mode 100644
index d1050cbbfd..0000000000
--- a/asm/d/d_camera/func_8015FADC.s
+++ /dev/null
@@ -1,24 +0,0 @@
-lbl_8015FADC:
-/* 8015FADC FC 01 10 40 */ fcmpo cr0, f1, f2
-/* 8015FAE0 40 80 00 0C */ bge lbl_8015FAEC
-/* 8015FAE4 FC 60 10 90 */ fmr f3, f2
-/* 8015FAE8 48 00 00 0C */ b lbl_8015FAF4
-lbl_8015FAEC:
-/* 8015FAEC FC 60 08 90 */ fmr f3, f1
-/* 8015FAF0 FC 20 10 90 */ fmr f1, f2
-lbl_8015FAF4:
-/* 8015FAF4 C0 03 00 00 */ lfs f0, 0(r3)
-/* 8015FAF8 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 8015FAFC 40 81 00 10 */ ble lbl_8015FB0C
-/* 8015FB00 D0 63 00 00 */ stfs f3, 0(r3)
-/* 8015FB04 38 60 00 00 */ li r3, 0
-/* 8015FB08 4E 80 00 20 */ blr
-lbl_8015FB0C:
-/* 8015FB0C FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 8015FB10 40 80 00 10 */ bge lbl_8015FB20
-/* 8015FB14 D0 23 00 00 */ stfs f1, 0(r3)
-/* 8015FB18 38 60 00 00 */ li r3, 0
-/* 8015FB1C 4E 80 00 20 */ blr
-lbl_8015FB20:
-/* 8015FB20 38 60 00 01 */ li r3, 1
-/* 8015FB24 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/func_8015FB28.s b/asm/d/d_camera/func_8015FB28.s
deleted file mode 100644
index 839dd69cc2..0000000000
--- a/asm/d/d_camera/func_8015FB28.s
+++ /dev/null
@@ -1,61 +0,0 @@
-lbl_8015FB28:
-/* 8015FB28 C0 03 00 00 */ lfs f0, 0(r3)
-/* 8015FB2C C0 24 00 00 */ lfs f1, 0(r4)
-/* 8015FB30 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 8015FB34 4C 40 13 82 */ cror 2, 0, 2
-/* 8015FB38 40 82 00 28 */ bne lbl_8015FB60
-/* 8015FB3C C0 45 00 00 */ lfs f2, 0(r5)
-/* 8015FB40 FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 8015FB44 40 80 00 0C */ bge lbl_8015FB50
-/* 8015FB48 38 60 00 00 */ li r3, 0
-/* 8015FB4C 4E 80 00 20 */ blr
-lbl_8015FB50:
-/* 8015FB50 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8015FB54 40 81 00 38 */ ble lbl_8015FB8C
-/* 8015FB58 38 60 00 00 */ li r3, 0
-/* 8015FB5C 4E 80 00 20 */ blr
-lbl_8015FB60:
-/* 8015FB60 C0 45 00 00 */ lfs f2, 0(r5)
-/* 8015FB64 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8015FB68 4C 40 13 82 */ cror 2, 0, 2
-/* 8015FB6C 40 82 00 0C */ bne lbl_8015FB78
-/* 8015FB70 38 60 00 00 */ li r3, 0
-/* 8015FB74 4E 80 00 20 */ blr
-lbl_8015FB78:
-/* 8015FB78 FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 8015FB7C 4C 41 13 82 */ cror 2, 1, 2
-/* 8015FB80 40 82 00 0C */ bne lbl_8015FB8C
-/* 8015FB84 38 60 00 00 */ li r3, 0
-/* 8015FB88 4E 80 00 20 */ blr
-lbl_8015FB8C:
-/* 8015FB8C C0 03 00 08 */ lfs f0, 8(r3)
-/* 8015FB90 C0 24 00 08 */ lfs f1, 8(r4)
-/* 8015FB94 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 8015FB98 4C 40 13 82 */ cror 2, 0, 2
-/* 8015FB9C 40 82 00 28 */ bne lbl_8015FBC4
-/* 8015FBA0 C0 45 00 08 */ lfs f2, 8(r5)
-/* 8015FBA4 FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 8015FBA8 40 80 00 0C */ bge lbl_8015FBB4
-/* 8015FBAC 38 60 00 00 */ li r3, 0
-/* 8015FBB0 4E 80 00 20 */ blr
-lbl_8015FBB4:
-/* 8015FBB4 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8015FBB8 40 81 00 38 */ ble lbl_8015FBF0
-/* 8015FBBC 38 60 00 00 */ li r3, 0
-/* 8015FBC0 4E 80 00 20 */ blr
-lbl_8015FBC4:
-/* 8015FBC4 C0 45 00 08 */ lfs f2, 8(r5)
-/* 8015FBC8 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 8015FBCC 4C 40 13 82 */ cror 2, 0, 2
-/* 8015FBD0 40 82 00 0C */ bne lbl_8015FBDC
-/* 8015FBD4 38 60 00 00 */ li r3, 0
-/* 8015FBD8 4E 80 00 20 */ blr
-lbl_8015FBDC:
-/* 8015FBDC FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 8015FBE0 4C 41 13 82 */ cror 2, 1, 2
-/* 8015FBE4 40 82 00 0C */ bne lbl_8015FBF0
-/* 8015FBE8 38 60 00 00 */ li r3, 0
-/* 8015FBEC 4E 80 00 20 */ blr
-lbl_8015FBF0:
-/* 8015FBF0 38 60 00 01 */ li r3, 1
-/* 8015FBF4 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s b/asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s
deleted file mode 100644
index 8a4c691c43..0000000000
--- a/asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s
+++ /dev/null
@@ -1,59 +0,0 @@
-lbl_80164878:
-/* 80164878 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8016487C 7C 08 02 A6 */ mflr r0
-/* 80164880 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80164884 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80164888 38 C5 61 C0 */ addi r6, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8016488C 80 E6 5D B4 */ lwz r7, 0x5db4(r6)
-/* 80164890 80 03 06 84 */ lwz r0, 0x684(r3)
-/* 80164894 1C 64 00 44 */ mulli r3, r4, 0x44
-/* 80164898 38 63 00 10 */ addi r3, r3, 0x10
-/* 8016489C 7C 60 1A 14 */ add r3, r0, r3
-/* 801648A0 80 A3 00 00 */ lwz r5, 0(r3)
-/* 801648A4 3C 80 40 43 */ lis r4, 0x4043 /* 0x40435059@ha */
-/* 801648A8 38 04 50 59 */ addi r0, r4, 0x5059 /* 0x40435059@l */
-/* 801648AC 7C 05 00 00 */ cmpw r5, r0
-/* 801648B0 41 82 00 70 */ beq lbl_80164920
-/* 801648B4 40 80 00 28 */ bge lbl_801648DC
-/* 801648B8 38 04 48 4B */ addi r0, r4, 0x484b
-/* 801648BC 7C 05 00 00 */ cmpw r5, r0
-/* 801648C0 41 82 00 50 */ beq lbl_80164910
-/* 801648C4 40 80 00 68 */ bge lbl_8016492C
-/* 801648C8 3C 80 40 41 */ lis r4, 0x4041 /* 0x40414354@ha */
-/* 801648CC 38 04 43 54 */ addi r0, r4, 0x4354 /* 0x40414354@l */
-/* 801648D0 7C 05 00 00 */ cmpw r5, r0
-/* 801648D4 41 82 00 2C */ beq lbl_80164900
-/* 801648D8 48 00 00 54 */ b lbl_8016492C
-lbl_801648DC:
-/* 801648DC 3C 80 40 4C */ lis r4, 0x404C /* 0x404C4F43@ha */
-/* 801648E0 38 04 4F 43 */ addi r0, r4, 0x4F43 /* 0x404C4F43@l */
-/* 801648E4 7C 05 00 00 */ cmpw r5, r0
-/* 801648E8 41 82 00 08 */ beq lbl_801648F0
-/* 801648EC 48 00 00 40 */ b lbl_8016492C
-lbl_801648F0:
-/* 801648F0 38 66 56 B8 */ addi r3, r6, 0x56b8
-/* 801648F4 38 80 00 00 */ li r4, 0
-/* 801648F8 4B F0 EC 45 */ bl LockonTarget__12dAttention_cFl
-/* 801648FC 48 00 00 38 */ b lbl_80164934
-lbl_80164900:
-/* 80164900 38 66 56 B8 */ addi r3, r6, 0x56b8
-/* 80164904 38 80 00 00 */ li r4, 0
-/* 80164908 4B F0 EE 2D */ bl ActionTarget__12dAttention_cFl
-/* 8016490C 48 00 00 28 */ b lbl_80164934
-lbl_80164910:
-/* 80164910 38 66 56 B8 */ addi r3, r6, 0x56b8
-/* 80164914 38 80 00 00 */ li r4, 0
-/* 80164918 4B F0 EE 75 */ bl CheckObjectTarget__12dAttention_cFl
-/* 8016491C 48 00 00 18 */ b lbl_80164934
-lbl_80164920:
-/* 80164920 7C E3 3B 78 */ mr r3, r7
-/* 80164924 4B F7 CA 6D */ bl getCopyRodCameraActor__9daAlink_cFv
-/* 80164928 48 00 00 0C */ b lbl_80164934
-lbl_8016492C:
-/* 8016492C 38 80 FF FF */ li r4, -1
-/* 80164930 4B EB 8E 71 */ bl fopAcM_searchFromName4Event__FPCcs
-lbl_80164934:
-/* 80164934 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80164938 7C 08 03 A6 */ mtlr r0
-/* 8016493C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80164940 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s b/asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s
deleted file mode 100644
index 5adaca3001..0000000000
--- a/asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_80165158:
-/* 80165158 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8016515C 7C 08 02 A6 */ mflr r0
-/* 80165160 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80165164 38 84 02 9A */ addi r4, r4, 0x29a
-/* 80165168 48 10 BE 01 */ bl __ct__7cSAngleFRC7cSAngle
-/* 8016516C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80165170 7C 08 03 A6 */ mtlr r0
-/* 80165174 38 21 00 10 */ addi r1, r1, 0x10
-/* 80165178 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/init_phase1__FP12camera_class.s b/asm/d/d_camera/init_phase1__FP12camera_class.s
deleted file mode 100644
index cc89182961..0000000000
--- a/asm/d/d_camera/init_phase1__FP12camera_class.s
+++ /dev/null
@@ -1,33 +0,0 @@
-lbl_801821E0:
-/* 801821E0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801821E4 7C 08 02 A6 */ mflr r0
-/* 801821E8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801821EC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801821F0 7C 7F 1B 78 */ mr r31, r3
-/* 801821F4 4B E9 C1 15 */ bl fopCamM_GetParam__FP12camera_class
-/* 801821F8 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 801821FC 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80182200 1C 03 00 38 */ mulli r0, r3, 0x38
-/* 80182204 7C 64 02 14 */ add r3, r4, r0
-/* 80182208 93 E3 5D 74 */ stw r31, 0x5d74(r3)
-/* 8018220C 88 03 5D 78 */ lbz r0, 0x5d78(r3)
-/* 80182210 7C 00 07 74 */ extsb r0, r0
-/* 80182214 98 1F 02 2C */ stb r0, 0x22c(r31)
-/* 80182218 88 03 5D 79 */ lbz r0, 0x5d79(r3)
-/* 8018221C 7C 00 07 74 */ extsb r0, r0
-/* 80182220 98 1F 02 2D */ stb r0, 0x22d(r31)
-/* 80182224 88 03 5D 7A */ lbz r0, 0x5d7a(r3)
-/* 80182228 7C 00 07 74 */ extsb r0, r0
-/* 8018222C 98 1F 02 2E */ stb r0, 0x22e(r31)
-/* 80182230 38 60 00 00 */ li r3, 0
-/* 80182234 98 64 5D 44 */ stb r3, 0x5d44(r4)
-/* 80182238 90 7F 02 38 */ stw r3, 0x238(r31)
-/* 8018223C 38 00 00 47 */ li r0, 0x47
-/* 80182240 98 1F 02 2F */ stb r0, 0x22f(r31)
-/* 80182244 98 7F 0D 54 */ stb r3, 0xd54(r31)
-/* 80182248 38 60 00 02 */ li r3, 2
-/* 8018224C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80182250 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80182254 7C 08 03 A6 */ mtlr r0
-/* 80182258 38 21 00 10 */ addi r1, r1, 0x10
-/* 8018225C 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/onRoomChange__9dCamera_cFl.s b/asm/d/d_camera/onRoomChange__9dCamera_cFl.s
deleted file mode 100644
index b4fc40d660..0000000000
--- a/asm/d/d_camera/onRoomChange__9dCamera_cFl.s
+++ /dev/null
@@ -1,54 +0,0 @@
-lbl_801647B0:
-/* 801647B0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801647B4 7C 08 02 A6 */ mflr r0
-/* 801647B8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801647BC 39 61 00 20 */ addi r11, r1, 0x20
-/* 801647C0 48 1F DA 1D */ bl _savegpr_29
-/* 801647C4 7C 7D 1B 78 */ mr r29, r3
-/* 801647C8 7C 9E 23 78 */ mr r30, r4
-/* 801647CC 93 C3 00 04 */ stw r30, 4(r3)
-/* 801647D0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 801647D4 60 00 10 00 */ ori r0, r0, 0x1000
-/* 801647D8 90 03 06 0C */ stw r0, 0x60c(r3)
-/* 801647DC 3B E0 00 FF */ li r31, 0xff
-/* 801647E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 801647E4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 801647E8 38 63 4E C4 */ addi r3, r3, 0x4ec4
-/* 801647EC 4B EB FB 99 */ bl getStatusRoomDt__20dStage_roomControl_cFi
-/* 801647F0 28 03 00 00 */ cmplwi r3, 0
-/* 801647F4 41 82 00 20 */ beq lbl_80164814
-/* 801647F8 81 83 00 00 */ lwz r12, 0(r3)
-/* 801647FC 81 8C 01 0C */ lwz r12, 0x10c(r12)
-/* 80164800 7D 89 03 A6 */ mtctr r12
-/* 80164804 4E 80 04 21 */ bctrl
-/* 80164808 28 03 00 00 */ cmplwi r3, 0
-/* 8016480C 41 82 00 08 */ beq lbl_80164814
-/* 80164810 8B E3 00 1A */ lbz r31, 0x1a(r3)
-lbl_80164814:
-/* 80164814 2C 1F 00 FF */ cmpwi r31, 0xff
-/* 80164818 41 82 00 24 */ beq lbl_8016483C
-/* 8016481C 38 7D 08 24 */ addi r3, r29, 0x824
-/* 80164820 7F E4 FB 78 */ mr r4, r31
-/* 80164824 7F C5 F3 78 */ mr r5, r30
-/* 80164828 38 C0 00 00 */ li r6, 0
-/* 8016482C 38 E0 00 FF */ li r7, 0xff
-/* 80164830 39 00 00 FF */ li r8, 0xff
-/* 80164834 4B FF B6 85 */ bl Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc
-/* 80164838 48 00 00 24 */ b lbl_8016485C
-lbl_8016483C:
-/* 8016483C 38 60 00 FF */ li r3, 0xff
-/* 80164840 90 7D 08 50 */ stw r3, 0x850(r29)
-/* 80164844 90 7D 08 54 */ stw r3, 0x854(r29)
-/* 80164848 38 00 00 00 */ li r0, 0
-/* 8016484C 98 1D 08 5E */ stb r0, 0x85e(r29)
-/* 80164850 90 1D 08 58 */ stw r0, 0x858(r29)
-/* 80164854 98 7D 08 5F */ stb r3, 0x85f(r29)
-/* 80164858 B0 7D 08 5C */ sth r3, 0x85c(r29)
-lbl_8016485C:
-/* 8016485C 38 60 00 01 */ li r3, 1
-/* 80164860 39 61 00 20 */ addi r11, r1, 0x20
-/* 80164864 48 1F D9 C5 */ bl _restgpr_29
-/* 80164868 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8016486C 7C 08 03 A6 */ mtlr r0
-/* 80164870 38 21 00 20 */ addi r1, r1, 0x20
-/* 80164874 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s b/asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s
deleted file mode 100644
index 299dd93fcf..0000000000
--- a/asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s
+++ /dev/null
@@ -1,33 +0,0 @@
-lbl_80164CAC:
-/* 80164CAC C0 04 00 00 */ lfs f0, 0(r4)
-/* 80164CB0 D0 03 00 64 */ stfs f0, 0x64(r3)
-/* 80164CB4 C0 04 00 04 */ lfs f0, 4(r4)
-/* 80164CB8 D0 03 00 68 */ stfs f0, 0x68(r3)
-/* 80164CBC C0 04 00 08 */ lfs f0, 8(r4)
-/* 80164CC0 D0 03 00 6C */ stfs f0, 0x6c(r3)
-/* 80164CC4 C0 03 00 64 */ lfs f0, 0x64(r3)
-/* 80164CC8 D0 03 00 30 */ stfs f0, 0x30(r3)
-/* 80164CCC C0 03 00 68 */ lfs f0, 0x68(r3)
-/* 80164CD0 D0 03 00 34 */ stfs f0, 0x34(r3)
-/* 80164CD4 C0 03 00 6C */ lfs f0, 0x6c(r3)
-/* 80164CD8 D0 03 00 38 */ stfs f0, 0x38(r3)
-/* 80164CDC C0 04 00 0C */ lfs f0, 0xc(r4)
-/* 80164CE0 D0 03 00 70 */ stfs f0, 0x70(r3)
-/* 80164CE4 C0 04 00 10 */ lfs f0, 0x10(r4)
-/* 80164CE8 D0 03 00 74 */ stfs f0, 0x74(r3)
-/* 80164CEC C0 04 00 14 */ lfs f0, 0x14(r4)
-/* 80164CF0 D0 03 00 78 */ stfs f0, 0x78(r3)
-/* 80164CF4 C0 03 00 70 */ lfs f0, 0x70(r3)
-/* 80164CF8 D0 03 00 3C */ stfs f0, 0x3c(r3)
-/* 80164CFC C0 03 00 74 */ lfs f0, 0x74(r3)
-/* 80164D00 D0 03 00 40 */ stfs f0, 0x40(r3)
-/* 80164D04 C0 03 00 78 */ lfs f0, 0x78(r3)
-/* 80164D08 D0 03 00 44 */ stfs f0, 0x44(r3)
-/* 80164D0C C0 04 00 18 */ lfs f0, 0x18(r4)
-/* 80164D10 D0 03 00 80 */ stfs f0, 0x80(r3)
-/* 80164D14 D0 03 00 58 */ stfs f0, 0x58(r3)
-/* 80164D18 A8 04 00 1C */ lha r0, 0x1c(r4)
-/* 80164D1C B0 03 00 7C */ sth r0, 0x7c(r3)
-/* 80164D20 A8 03 00 7C */ lha r0, 0x7c(r3)
-/* 80164D24 B0 03 00 54 */ sth r0, 0x54(r3)
-/* 80164D28 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s b/asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s
deleted file mode 100644
index a600ea3a87..0000000000
--- a/asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s
+++ /dev/null
@@ -1,19 +0,0 @@
-lbl_80164C64:
-/* 80164C64 C0 03 00 30 */ lfs f0, 0x30(r3)
-/* 80164C68 D0 04 00 00 */ stfs f0, 0(r4)
-/* 80164C6C C0 03 00 34 */ lfs f0, 0x34(r3)
-/* 80164C70 D0 04 00 04 */ stfs f0, 4(r4)
-/* 80164C74 C0 03 00 38 */ lfs f0, 0x38(r3)
-/* 80164C78 D0 04 00 08 */ stfs f0, 8(r4)
-/* 80164C7C C0 03 00 3C */ lfs f0, 0x3c(r3)
-/* 80164C80 D0 04 00 0C */ stfs f0, 0xc(r4)
-/* 80164C84 C0 03 00 40 */ lfs f0, 0x40(r3)
-/* 80164C88 D0 04 00 10 */ stfs f0, 0x10(r4)
-/* 80164C8C C0 03 00 44 */ lfs f0, 0x44(r3)
-/* 80164C90 D0 04 00 14 */ stfs f0, 0x14(r4)
-/* 80164C94 C0 03 00 58 */ lfs f0, 0x58(r3)
-/* 80164C98 D0 04 00 18 */ stfs f0, 0x18(r4)
-/* 80164C9C A8 03 00 54 */ lha r0, 0x54(r3)
-/* 80164CA0 B0 04 00 1C */ sth r0, 0x1c(r4)
-/* 80164CA4 B0 A4 00 1E */ sth r5, 0x1e(r4)
-/* 80164CA8 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s b/asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s
deleted file mode 100644
index edb412c22b..0000000000
--- a/asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s
+++ /dev/null
@@ -1,15 +0,0 @@
-lbl_801635AC:
-/* 801635AC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801635B0 7C 08 02 A6 */ mflr r0
-/* 801635B4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801635B8 7C 83 23 78 */ mr r3, r4
-/* 801635BC 7C A4 2B 78 */ mr r4, r5
-/* 801635C0 7C C5 33 78 */ mr r5, r6
-/* 801635C4 38 C0 00 00 */ li r6, 0
-/* 801635C8 38 E0 00 FF */ li r7, 0xff
-/* 801635CC 39 00 00 FF */ li r8, 0xff
-/* 801635D0 4B FF C8 E9 */ bl Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc
-/* 801635D4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801635D8 7C 08 03 A6 */ mtlr r0
-/* 801635DC 38 21 00 10 */ addi r1, r1, 0x10
-/* 801635E0 4E 80 00 20 */ blr
diff --git a/asm/d/d_camera/setUSOAngle__9dCamera_cFv.s b/asm/d/d_camera/setUSOAngle__9dCamera_cFv.s
deleted file mode 100644
index 1469fe6593..0000000000
--- a/asm/d/d_camera/setUSOAngle__9dCamera_cFv.s
+++ /dev/null
@@ -1,22 +0,0 @@
-lbl_80165104:
-/* 80165104 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80165108 7C 08 02 A6 */ mflr r0
-/* 8016510C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80165110 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80165114 7C 7F 1B 78 */ mr r31, r3
-/* 80165118 38 00 00 01 */ li r0, 1
-/* 8016511C 98 03 02 98 */ stb r0, 0x298(r3)
-/* 80165120 38 7F 00 2E */ addi r3, r31, 0x2e
-/* 80165124 48 10 BF C5 */ bl Inv__7cSAngleCFv
-/* 80165128 7C 64 1B 78 */ mr r4, r3
-/* 8016512C 38 61 00 08 */ addi r3, r1, 8
-/* 80165130 48 10 BE 69 */ bl __ct__7cSAngleFs
-/* 80165134 A8 01 00 08 */ lha r0, 8(r1)
-/* 80165138 B0 1F 02 9A */ sth r0, 0x29a(r31)
-/* 8016513C A8 1F 01 D4 */ lha r0, 0x1d4(r31)
-/* 80165140 B0 1F 02 9C */ sth r0, 0x29c(r31)
-/* 80165144 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80165148 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8016514C 7C 08 03 A6 */ mtlr r0
-/* 80165150 38 21 00 20 */ addi r1, r1, 0x20
-/* 80165154 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/func_800889F8.s b/asm/d/d_ev_camera/func_800889F8.s
deleted file mode 100644
index 8e614afff9..0000000000
--- a/asm/d/d_ev_camera/func_800889F8.s
+++ /dev/null
@@ -1,38 +0,0 @@
-lbl_800889F8:
-/* 800889F8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 800889FC 7C 08 02 A6 */ mflr r0
-/* 80088A00 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80088A04 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80088A08 7C 7F 1B 78 */ mr r31, r3
-/* 80088A0C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80088A10 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80088A14 85 83 4E 20 */ lwzu r12, 0x4e20(r3)
-/* 80088A18 81 8C 00 FC */ lwz r12, 0xfc(r12)
-/* 80088A1C 7D 89 03 A6 */ mtctr r12
-/* 80088A20 4E 80 04 21 */ bctrl
-/* 80088A24 28 03 00 00 */ cmplwi r3, 0
-/* 80088A28 41 82 00 3C */ beq lbl_80088A64
-/* 80088A2C 38 80 00 00 */ li r4, 0
-/* 80088A30 80 03 00 00 */ lwz r0, 0(r3)
-/* 80088A34 7C 09 03 A6 */ mtctr r0
-/* 80088A38 2C 00 00 00 */ cmpwi r0, 0
-/* 80088A3C 40 81 00 28 */ ble lbl_80088A64
-lbl_80088A40:
-/* 80088A40 80 A3 00 04 */ lwz r5, 4(r3)
-/* 80088A44 38 04 00 04 */ addi r0, r4, 4
-/* 80088A48 7C 05 00 AE */ lbzx r0, r5, r0
-/* 80088A4C 7C 1F 00 00 */ cmpw r31, r0
-/* 80088A50 40 82 00 0C */ bne lbl_80088A5C
-/* 80088A54 38 60 00 01 */ li r3, 1
-/* 80088A58 48 00 00 10 */ b lbl_80088A68
-lbl_80088A5C:
-/* 80088A5C 38 84 00 1C */ addi r4, r4, 0x1c
-/* 80088A60 42 00 FF E0 */ bdnz lbl_80088A40
-lbl_80088A64:
-/* 80088A64 38 60 00 00 */ li r3, 0
-lbl_80088A68:
-/* 80088A68 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80088A6C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80088A70 7C 08 03 A6 */ mtlr r0
-/* 80088A74 38 21 00 10 */ addi r1, r1, 0x10
-/* 80088A78 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/func_8008E750.s b/asm/d/d_ev_camera/func_8008E750.s
deleted file mode 100644
index b5cdbe51ba..0000000000
--- a/asm/d/d_ev_camera/func_8008E750.s
+++ /dev/null
@@ -1,11 +0,0 @@
-lbl_8008E750:
-/* 8008E750 38 80 00 00 */ li r4, 0
-/* 8008E754 7C 60 07 74 */ extsb r0, r3
-/* 8008E758 2C 00 00 2D */ cmpwi r0, 0x2d
-/* 8008E75C 41 82 00 10 */ beq lbl_8008E76C
-/* 8008E760 2C 00 00 78 */ cmpwi r0, 0x78
-/* 8008E764 41 82 00 08 */ beq lbl_8008E76C
-/* 8008E768 38 80 00 01 */ li r4, 1
-lbl_8008E76C:
-/* 8008E76C 7C 83 23 78 */ mr r3, r4
-/* 8008E770 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s b/asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s
deleted file mode 100644
index 85d6ffaa7f..0000000000
--- a/asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s
+++ /dev/null
@@ -1,87 +0,0 @@
-lbl_800894C4:
-/* 800894C4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 800894C8 7C 08 02 A6 */ mflr r0
-/* 800894CC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 800894D0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 800894D4 7C 7F 1B 78 */ mr r31, r3
-/* 800894D8 4B FF FB 09 */ bl getEvStringPntData__9dCamera_cFPc
-/* 800894DC 28 03 00 00 */ cmplwi r3, 0
-/* 800894E0 40 82 00 0C */ bne lbl_800894EC
-/* 800894E4 38 60 00 00 */ li r3, 0
-/* 800894E8 48 00 00 F8 */ b lbl_800895E0
-lbl_800894EC:
-/* 800894EC 80 A3 00 00 */ lwz r5, 0(r3)
-/* 800894F0 3C 85 BF B0 */ addis r4, r5, 0xbfb0
-/* 800894F4 28 04 4C 41 */ cmplwi r4, 0x4c41
-/* 800894F8 40 82 00 0C */ bne lbl_80089504
-/* 800894FC 80 7F 01 80 */ lwz r3, 0x180(r31)
-/* 80089500 48 00 00 E0 */ b lbl_800895E0
-lbl_80089504:
-/* 80089504 3C 05 BF AD */ addis r0, r5, 0xbfad
-/* 80089508 28 00 54 41 */ cmplwi r0, 0x5441
-/* 8008950C 40 82 00 1C */ bne lbl_80089528
-/* 80089510 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089514 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089518 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 8008951C 80 84 4F 8C */ lwz r4, 0x4f8c(r4)
-/* 80089520 4B FB 9D CD */ bl convPId__14dEvt_control_cFUi
-/* 80089524 48 00 00 BC */ b lbl_800895E0
-lbl_80089528:
-/* 80089528 28 04 41 52 */ cmplwi r4, 0x4152
-/* 8008952C 40 82 00 1C */ bne lbl_80089548
-/* 80089530 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089534 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089538 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 8008953C 80 84 4F 90 */ lwz r4, 0x4f90(r4)
-/* 80089540 4B FB 9D AD */ bl convPId__14dEvt_control_cFUi
-/* 80089544 48 00 00 9C */ b lbl_800895E0
-lbl_80089548:
-/* 80089548 3C 85 BF AC */ addis r4, r5, 0xbfac
-/* 8008954C 28 04 41 4C */ cmplwi r4, 0x414c
-/* 80089550 40 82 00 1C */ bne lbl_8008956C
-/* 80089554 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089558 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8008955C 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 80089560 80 84 4F 94 */ lwz r4, 0x4f94(r4)
-/* 80089564 4B FB 9D 89 */ bl convPId__14dEvt_control_cFUi
-/* 80089568 48 00 00 78 */ b lbl_800895E0
-lbl_8008956C:
-/* 8008956C 3C 05 BF BC */ addis r0, r5, 0xbfbc
-/* 80089570 28 00 4F 4F */ cmplwi r0, 0x4f4f
-/* 80089574 40 82 00 1C */ bne lbl_80089590
-/* 80089578 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 8008957C 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089580 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 80089584 80 84 4F 9C */ lwz r4, 0x4f9c(r4)
-/* 80089588 4B FB 9D 65 */ bl convPId__14dEvt_control_cFUi
-/* 8008958C 48 00 00 54 */ b lbl_800895E0
-lbl_80089590:
-/* 80089590 28 04 41 52 */ cmplwi r4, 0x4152
-/* 80089594 41 82 00 10 */ beq lbl_800895A4
-/* 80089598 3C 05 BF B7 */ addis r0, r5, 0xbfb7
-/* 8008959C 28 00 54 45 */ cmplwi r0, 0x5445
-/* 800895A0 40 82 00 1C */ bne lbl_800895BC
-lbl_800895A4:
-/* 800895A4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800895A8 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800895AC 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 800895B0 80 84 4F 98 */ lwz r4, 0x4f98(r4)
-/* 800895B4 4B FB 9D 39 */ bl convPId__14dEvt_control_cFUi
-/* 800895B8 48 00 00 28 */ b lbl_800895E0
-lbl_800895BC:
-/* 800895BC 3C 05 B3 97 */ addis r0, r5, 0xb397
-/* 800895C0 28 00 6E 6B */ cmplwi r0, 0x6e6b
-/* 800895C4 40 82 00 14 */ bne lbl_800895D8
-/* 800895C8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800895CC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800895D0 80 63 5D B4 */ lwz r3, 0x5db4(r3)
-/* 800895D4 48 00 00 0C */ b lbl_800895E0
-lbl_800895D8:
-/* 800895D8 38 80 FF FF */ li r4, -1
-/* 800895DC 4B F9 41 C5 */ bl fopAcM_searchFromName4Event__FPCcs
-lbl_800895E0:
-/* 800895E0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 800895E4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 800895E8 7C 08 03 A6 */ mtlr r0
-/* 800895EC 38 21 00 10 */ addi r1, r1, 0x10
-/* 800895F0 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s b/asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s
deleted file mode 100644
index 350f93178f..0000000000
--- a/asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s
+++ /dev/null
@@ -1,89 +0,0 @@
-lbl_800895F4:
-/* 800895F4 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 800895F8 7C 08 02 A6 */ mflr r0
-/* 800895FC 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80089600 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 80089604 7C 7F 1B 78 */ mr r31, r3
-/* 80089608 7C 87 23 78 */ mr r7, r4
-/* 8008960C 7C A6 2B 78 */ mr r6, r5
-/* 80089610 38 00 00 00 */ li r0, 0
-/* 80089614 98 01 00 08 */ stb r0, 8(r1)
-/* 80089618 38 81 00 08 */ addi r4, r1, 8
-/* 8008961C 7C E5 3B 78 */ mr r5, r7
-/* 80089620 4B FF FD 1D */ bl getEvStringData__9dCamera_cFPcPcPc
-/* 80089624 38 61 00 08 */ addi r3, r1, 8
-/* 80089628 80 A1 00 08 */ lwz r5, 8(r1)
-/* 8008962C 3C 85 BF B0 */ addis r4, r5, 0xbfb0
-/* 80089630 28 04 4C 41 */ cmplwi r4, 0x4c41
-/* 80089634 40 82 00 0C */ bne lbl_80089640
-/* 80089638 80 7F 01 80 */ lwz r3, 0x180(r31)
-/* 8008963C 48 00 00 E0 */ b lbl_8008971C
-lbl_80089640:
-/* 80089640 3C 05 BF AD */ addis r0, r5, 0xbfad
-/* 80089644 28 00 54 41 */ cmplwi r0, 0x5441
-/* 80089648 40 82 00 1C */ bne lbl_80089664
-/* 8008964C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089650 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089654 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 80089658 80 84 4F 8C */ lwz r4, 0x4f8c(r4)
-/* 8008965C 4B FB 9C 91 */ bl convPId__14dEvt_control_cFUi
-/* 80089660 48 00 00 BC */ b lbl_8008971C
-lbl_80089664:
-/* 80089664 28 04 41 52 */ cmplwi r4, 0x4152
-/* 80089668 40 82 00 1C */ bne lbl_80089684
-/* 8008966C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089670 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089674 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 80089678 80 84 4F 90 */ lwz r4, 0x4f90(r4)
-/* 8008967C 4B FB 9C 71 */ bl convPId__14dEvt_control_cFUi
-/* 80089680 48 00 00 9C */ b lbl_8008971C
-lbl_80089684:
-/* 80089684 3C 85 BF AC */ addis r4, r5, 0xbfac
-/* 80089688 28 04 41 4C */ cmplwi r4, 0x414c
-/* 8008968C 40 82 00 1C */ bne lbl_800896A8
-/* 80089690 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089694 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089698 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 8008969C 80 84 4F 94 */ lwz r4, 0x4f94(r4)
-/* 800896A0 4B FB 9C 4D */ bl convPId__14dEvt_control_cFUi
-/* 800896A4 48 00 00 78 */ b lbl_8008971C
-lbl_800896A8:
-/* 800896A8 3C 05 BF BC */ addis r0, r5, 0xbfbc
-/* 800896AC 28 00 4F 4F */ cmplwi r0, 0x4f4f
-/* 800896B0 40 82 00 1C */ bne lbl_800896CC
-/* 800896B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800896B8 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800896BC 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 800896C0 80 84 4F 9C */ lwz r4, 0x4f9c(r4)
-/* 800896C4 4B FB 9C 29 */ bl convPId__14dEvt_control_cFUi
-/* 800896C8 48 00 00 54 */ b lbl_8008971C
-lbl_800896CC:
-/* 800896CC 28 04 41 52 */ cmplwi r4, 0x4152
-/* 800896D0 41 82 00 10 */ beq lbl_800896E0
-/* 800896D4 3C 05 BF B7 */ addis r0, r5, 0xbfb7
-/* 800896D8 28 00 54 45 */ cmplwi r0, 0x5445
-/* 800896DC 40 82 00 1C */ bne lbl_800896F8
-lbl_800896E0:
-/* 800896E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800896E4 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800896E8 38 64 4E C8 */ addi r3, r4, 0x4ec8
-/* 800896EC 80 84 4F 98 */ lwz r4, 0x4f98(r4)
-/* 800896F0 4B FB 9B FD */ bl convPId__14dEvt_control_cFUi
-/* 800896F4 48 00 00 28 */ b lbl_8008971C
-lbl_800896F8:
-/* 800896F8 3C 05 B3 97 */ addis r0, r5, 0xb397
-/* 800896FC 28 00 6E 6B */ cmplwi r0, 0x6e6b
-/* 80089700 40 82 00 14 */ bne lbl_80089714
-/* 80089704 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089708 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8008970C 80 63 5D B4 */ lwz r3, 0x5db4(r3)
-/* 80089710 48 00 00 0C */ b lbl_8008971C
-lbl_80089714:
-/* 80089714 38 80 FF FF */ li r4, -1
-/* 80089718 4B F9 40 89 */ bl fopAcM_searchFromName4Event__FPCcs
-lbl_8008971C:
-/* 8008971C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 80089720 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80089724 7C 08 03 A6 */ mtlr r0
-/* 80089728 38 21 00 20 */ addi r1, r1, 0x20
-/* 8008972C 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s b/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s
deleted file mode 100644
index 0cbd019ca2..0000000000
--- a/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s
+++ /dev/null
@@ -1,56 +0,0 @@
-lbl_80088D90:
-/* 80088D90 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80088D94 7C 08 02 A6 */ mflr r0
-/* 80088D98 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80088D9C 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088DA0 48 2D 94 39 */ bl _savegpr_28
-/* 80088DA4 7C 7C 1B 78 */ mr r28, r3
-/* 80088DA8 7C 9D 23 78 */ mr r29, r4
-/* 80088DAC 7C BE 2B 78 */ mr r30, r5
-/* 80088DB0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80088DB4 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80088DB8 41 82 00 34 */ beq lbl_80088DEC
-/* 80088DBC 7F C4 F3 78 */ mr r4, r30
-/* 80088DC0 4B FF FE 65 */ bl searchEventArgData__9dCamera_cFPc
-/* 80088DC4 2C 03 FF FF */ cmpwi r3, -1
-/* 80088DC8 40 82 00 0C */ bne lbl_80088DD4
-/* 80088DCC 38 60 00 00 */ li r3, 0
-/* 80088DD0 48 00 00 70 */ b lbl_80088E40
-lbl_80088DD4:
-/* 80088DD4 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80088DD8 7C 7C 02 14 */ add r3, r28, r0
-/* 80088DDC 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 80088DE0 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80088DE4 D0 1D 00 00 */ stfs f0, 0(r29)
-/* 80088DE8 48 00 00 54 */ b lbl_80088E3C
-lbl_80088DEC:
-/* 80088DEC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80088DF0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80088DF4 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 80088DF8 7F E3 FB 78 */ mr r3, r31
-/* 80088DFC 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80088E00 4B FB F3 45 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80088E04 2C 03 00 00 */ cmpwi r3, 0
-/* 80088E08 41 82 00 24 */ beq lbl_80088E2C
-/* 80088E0C 7F E3 FB 78 */ mr r3, r31
-/* 80088E10 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80088E14 7F C5 F3 78 */ mr r5, r30
-/* 80088E18 38 C0 00 00 */ li r6, 0
-/* 80088E1C 4B FB F2 D1 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80088E20 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80088E24 D0 1D 00 00 */ stfs f0, 0(r29)
-/* 80088E28 48 00 00 14 */ b lbl_80088E3C
-lbl_80088E2C:
-/* 80088E2C 38 00 00 01 */ li r0, 1
-/* 80088E30 98 1C 04 F8 */ stb r0, 0x4f8(r28)
-/* 80088E34 38 60 00 00 */ li r3, 0
-/* 80088E38 48 00 00 08 */ b lbl_80088E40
-lbl_80088E3C:
-/* 80088E3C 38 60 00 01 */ li r3, 1
-lbl_80088E40:
-/* 80088E40 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088E44 48 2D 93 E1 */ bl _restgpr_28
-/* 80088E48 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80088E4C 7C 08 03 A6 */ mtlr r0
-/* 80088E50 38 21 00 20 */ addi r1, r1, 0x20
-/* 80088E54 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s b/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s
deleted file mode 100644
index 3651e74bdb..0000000000
--- a/asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s
+++ /dev/null
@@ -1,60 +0,0 @@
-lbl_80089154:
-/* 80089154 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80089158 7C 08 02 A6 */ mflr r0
-/* 8008915C 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80089160 DB E1 00 20 */ stfd f31, 0x20(r1)
-/* 80089164 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
-/* 80089168 39 61 00 20 */ addi r11, r1, 0x20
-/* 8008916C 48 2D 90 6D */ bl _savegpr_28
-/* 80089170 7C 7C 1B 78 */ mr r28, r3
-/* 80089174 7C 9D 23 78 */ mr r29, r4
-/* 80089178 7C BE 2B 78 */ mr r30, r5
-/* 8008917C FF E0 08 90 */ fmr f31, f1
-/* 80089180 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80089184 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80089188 41 82 00 34 */ beq lbl_800891BC
-/* 8008918C 7F C4 F3 78 */ mr r4, r30
-/* 80089190 4B FF FA 95 */ bl searchEventArgData__9dCamera_cFPc
-/* 80089194 2C 03 FF FF */ cmpwi r3, -1
-/* 80089198 40 82 00 0C */ bne lbl_800891A4
-/* 8008919C D3 FD 00 00 */ stfs f31, 0(r29)
-/* 800891A0 48 00 00 68 */ b lbl_80089208
-lbl_800891A4:
-/* 800891A4 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 800891A8 7C 7C 02 14 */ add r3, r28, r0
-/* 800891AC 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 800891B0 C0 03 00 00 */ lfs f0, 0(r3)
-/* 800891B4 D0 1D 00 00 */ stfs f0, 0(r29)
-/* 800891B8 48 00 00 50 */ b lbl_80089208
-lbl_800891BC:
-/* 800891BC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800891C0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800891C4 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 800891C8 7F E3 FB 78 */ mr r3, r31
-/* 800891CC 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 800891D0 4B FB EF 75 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 800891D4 2C 03 00 00 */ cmpwi r3, 0
-/* 800891D8 41 82 00 24 */ beq lbl_800891FC
-/* 800891DC 7F E3 FB 78 */ mr r3, r31
-/* 800891E0 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 800891E4 7F C5 F3 78 */ mr r5, r30
-/* 800891E8 38 C0 00 00 */ li r6, 0
-/* 800891EC 4B FB EF 01 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 800891F0 C0 03 00 00 */ lfs f0, 0(r3)
-/* 800891F4 D0 1D 00 00 */ stfs f0, 0(r29)
-/* 800891F8 48 00 00 10 */ b lbl_80089208
-lbl_800891FC:
-/* 800891FC D3 FD 00 00 */ stfs f31, 0(r29)
-/* 80089200 38 60 00 00 */ li r3, 0
-/* 80089204 48 00 00 08 */ b lbl_8008920C
-lbl_80089208:
-/* 80089208 38 60 00 01 */ li r3, 1
-lbl_8008920C:
-/* 8008920C E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
-/* 80089210 CB E1 00 20 */ lfd f31, 0x20(r1)
-/* 80089214 39 61 00 20 */ addi r11, r1, 0x20
-/* 80089218 48 2D 90 0D */ bl _restgpr_28
-/* 8008921C 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80089220 7C 08 03 A6 */ mtlr r0
-/* 80089224 38 21 00 30 */ addi r1, r1, 0x30
-/* 80089228 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s b/asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s
deleted file mode 100644
index bb79ea2e57..0000000000
--- a/asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s
+++ /dev/null
@@ -1,55 +0,0 @@
-lbl_80088E58:
-/* 80088E58 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80088E5C 7C 08 02 A6 */ mflr r0
-/* 80088E60 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80088E64 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088E68 48 2D 93 6D */ bl _savegpr_27
-/* 80088E6C 7C 7B 1B 78 */ mr r27, r3
-/* 80088E70 7C 9C 23 78 */ mr r28, r4
-/* 80088E74 7C BD 2B 78 */ mr r29, r5
-/* 80088E78 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80088E7C 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80088E80 41 82 00 34 */ beq lbl_80088EB4
-/* 80088E84 7F A4 EB 78 */ mr r4, r29
-/* 80088E88 4B FF FD 9D */ bl searchEventArgData__9dCamera_cFPc
-/* 80088E8C 2C 03 FF FF */ cmpwi r3, -1
-/* 80088E90 40 82 00 0C */ bne lbl_80088E9C
-/* 80088E94 38 60 00 00 */ li r3, 0
-/* 80088E98 48 00 00 6C */ b lbl_80088F04
-lbl_80088E9C:
-/* 80088E9C 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80088EA0 7C 7B 02 14 */ add r3, r27, r0
-/* 80088EA4 80 03 05 28 */ lwz r0, 0x528(r3)
-/* 80088EA8 90 1C 00 00 */ stw r0, 0(r28)
-/* 80088EAC 83 C3 05 24 */ lwz r30, 0x524(r3)
-/* 80088EB0 48 00 00 50 */ b lbl_80088F00
-lbl_80088EB4:
-/* 80088EB4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80088EB8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80088EBC 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 80088EC0 7F E3 FB 78 */ mr r3, r31
-/* 80088EC4 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80088EC8 4B FB F2 7D */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80088ECC 7C 7E 1B 79 */ or. r30, r3, r3
-/* 80088ED0 41 82 00 20 */ beq lbl_80088EF0
-/* 80088ED4 7F E3 FB 78 */ mr r3, r31
-/* 80088ED8 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80088EDC 7F A5 EB 78 */ mr r5, r29
-/* 80088EE0 38 C0 00 00 */ li r6, 0
-/* 80088EE4 4B FB F2 09 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80088EE8 90 7C 00 00 */ stw r3, 0(r28)
-/* 80088EEC 48 00 00 14 */ b lbl_80088F00
-lbl_80088EF0:
-/* 80088EF0 38 00 00 01 */ li r0, 1
-/* 80088EF4 98 1B 04 F8 */ stb r0, 0x4f8(r27)
-/* 80088EF8 38 60 00 00 */ li r3, 0
-/* 80088EFC 48 00 00 08 */ b lbl_80088F04
-lbl_80088F00:
-/* 80088F00 7F C3 F3 78 */ mr r3, r30
-lbl_80088F04:
-/* 80088F04 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088F08 48 2D 93 19 */ bl _restgpr_27
-/* 80088F0C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80088F10 7C 08 03 A6 */ mtlr r0
-/* 80088F14 38 21 00 20 */ addi r1, r1, 0x20
-/* 80088F18 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s b/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s
deleted file mode 100644
index 3eb89d41ee..0000000000
--- a/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s
+++ /dev/null
@@ -1,63 +0,0 @@
-lbl_80088CB0:
-/* 80088CB0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80088CB4 7C 08 02 A6 */ mflr r0
-/* 80088CB8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80088CBC 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088CC0 48 2D 95 19 */ bl _savegpr_28
-/* 80088CC4 7C 7C 1B 78 */ mr r28, r3
-/* 80088CC8 7C 9D 23 78 */ mr r29, r4
-/* 80088CCC 7C BE 2B 78 */ mr r30, r5
-/* 80088CD0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80088CD4 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80088CD8 41 82 00 4C */ beq lbl_80088D24
-/* 80088CDC 7F C4 F3 78 */ mr r4, r30
-/* 80088CE0 4B FF FF 45 */ bl searchEventArgData__9dCamera_cFPc
-/* 80088CE4 2C 03 FF FF */ cmpwi r3, -1
-/* 80088CE8 40 82 00 0C */ bne lbl_80088CF4
-/* 80088CEC 38 60 00 00 */ li r3, 0
-/* 80088CF0 48 00 00 88 */ b lbl_80088D78
-lbl_80088CF4:
-/* 80088CF4 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80088CF8 7C 7C 02 14 */ add r3, r28, r0
-/* 80088CFC 80 03 05 24 */ lwz r0, 0x524(r3)
-/* 80088D00 2C 00 00 00 */ cmpwi r0, 0
-/* 80088D04 40 80 00 10 */ bge lbl_80088D14
-/* 80088D08 80 03 05 28 */ lwz r0, 0x528(r3)
-/* 80088D0C 90 1D 00 00 */ stw r0, 0(r29)
-/* 80088D10 48 00 00 64 */ b lbl_80088D74
-lbl_80088D14:
-/* 80088D14 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 80088D18 80 03 00 00 */ lwz r0, 0(r3)
-/* 80088D1C 90 1D 00 00 */ stw r0, 0(r29)
-/* 80088D20 48 00 00 54 */ b lbl_80088D74
-lbl_80088D24:
-/* 80088D24 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80088D28 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80088D2C 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 80088D30 7F E3 FB 78 */ mr r3, r31
-/* 80088D34 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80088D38 4B FB F4 0D */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80088D3C 2C 03 00 00 */ cmpwi r3, 0
-/* 80088D40 41 82 00 24 */ beq lbl_80088D64
-/* 80088D44 7F E3 FB 78 */ mr r3, r31
-/* 80088D48 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80088D4C 7F C5 F3 78 */ mr r5, r30
-/* 80088D50 38 C0 00 03 */ li r6, 3
-/* 80088D54 4B FB F3 99 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80088D58 80 03 00 00 */ lwz r0, 0(r3)
-/* 80088D5C 90 1D 00 00 */ stw r0, 0(r29)
-/* 80088D60 48 00 00 14 */ b lbl_80088D74
-lbl_80088D64:
-/* 80088D64 38 00 00 01 */ li r0, 1
-/* 80088D68 98 1C 04 F8 */ stb r0, 0x4f8(r28)
-/* 80088D6C 38 60 00 00 */ li r3, 0
-/* 80088D70 48 00 00 08 */ b lbl_80088D78
-lbl_80088D74:
-/* 80088D74 38 60 00 01 */ li r3, 1
-lbl_80088D78:
-/* 80088D78 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088D7C 48 2D 94 A9 */ bl _restgpr_28
-/* 80088D80 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80088D84 7C 08 03 A6 */ mtlr r0
-/* 80088D88 38 21 00 20 */ addi r1, r1, 0x20
-/* 80088D8C 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s b/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s
deleted file mode 100644
index d8b371bc49..0000000000
--- a/asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s
+++ /dev/null
@@ -1,56 +0,0 @@
-lbl_8008908C:
-/* 8008908C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80089090 7C 08 02 A6 */ mflr r0
-/* 80089094 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80089098 39 61 00 20 */ addi r11, r1, 0x20
-/* 8008909C 48 2D 91 39 */ bl _savegpr_27
-/* 800890A0 7C 7B 1B 78 */ mr r27, r3
-/* 800890A4 7C 9C 23 78 */ mr r28, r4
-/* 800890A8 7C BD 2B 78 */ mr r29, r5
-/* 800890AC 7C DE 33 78 */ mr r30, r6
-/* 800890B0 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 800890B4 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 800890B8 41 82 00 34 */ beq lbl_800890EC
-/* 800890BC 7F A4 EB 78 */ mr r4, r29
-/* 800890C0 4B FF FB 65 */ bl searchEventArgData__9dCamera_cFPc
-/* 800890C4 2C 03 FF FF */ cmpwi r3, -1
-/* 800890C8 40 82 00 0C */ bne lbl_800890D4
-/* 800890CC 93 DC 00 00 */ stw r30, 0(r28)
-/* 800890D0 48 00 00 68 */ b lbl_80089138
-lbl_800890D4:
-/* 800890D4 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 800890D8 7C 7B 02 14 */ add r3, r27, r0
-/* 800890DC 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 800890E0 80 03 00 00 */ lwz r0, 0(r3)
-/* 800890E4 90 1C 00 00 */ stw r0, 0(r28)
-/* 800890E8 48 00 00 50 */ b lbl_80089138
-lbl_800890EC:
-/* 800890EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800890F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800890F4 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 800890F8 7F E3 FB 78 */ mr r3, r31
-/* 800890FC 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80089100 4B FB F0 45 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80089104 2C 03 00 00 */ cmpwi r3, 0
-/* 80089108 41 82 00 24 */ beq lbl_8008912C
-/* 8008910C 7F E3 FB 78 */ mr r3, r31
-/* 80089110 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80089114 7F A5 EB 78 */ mr r5, r29
-/* 80089118 38 C0 00 03 */ li r6, 3
-/* 8008911C 4B FB EF D1 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80089120 80 03 00 00 */ lwz r0, 0(r3)
-/* 80089124 90 1C 00 00 */ stw r0, 0(r28)
-/* 80089128 48 00 00 10 */ b lbl_80089138
-lbl_8008912C:
-/* 8008912C 93 DC 00 00 */ stw r30, 0(r28)
-/* 80089130 38 60 00 00 */ li r3, 0
-/* 80089134 48 00 00 08 */ b lbl_8008913C
-lbl_80089138:
-/* 80089138 38 60 00 01 */ li r3, 1
-lbl_8008913C:
-/* 8008913C 39 61 00 20 */ addi r11, r1, 0x20
-/* 80089140 48 2D 90 E1 */ bl _restgpr_27
-/* 80089144 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80089148 7C 08 03 A6 */ mtlr r0
-/* 8008914C 38 21 00 20 */ addi r1, r1, 0x20
-/* 80089150 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s b/asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s
deleted file mode 100644
index 8207cae852..0000000000
--- a/asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s
+++ /dev/null
@@ -1,62 +0,0 @@
-lbl_8008933C:
-/* 8008933C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80089340 7C 08 02 A6 */ mflr r0
-/* 80089344 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80089348 39 61 00 20 */ addi r11, r1, 0x20
-/* 8008934C 48 2D 8E 89 */ bl _savegpr_27
-/* 80089350 7C 7B 1B 78 */ mr r27, r3
-/* 80089354 7C 9C 23 78 */ mr r28, r4
-/* 80089358 7C BD 2B 78 */ mr r29, r5
-/* 8008935C 7C DE 33 78 */ mr r30, r6
-/* 80089360 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80089364 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80089368 41 82 00 40 */ beq lbl_800893A8
-/* 8008936C 7F A4 EB 78 */ mr r4, r29
-/* 80089370 4B FF F8 B5 */ bl searchEventArgData__9dCamera_cFPc
-/* 80089374 7C 60 1B 78 */ mr r0, r3
-/* 80089378 2C 00 FF FF */ cmpwi r0, -1
-/* 8008937C 40 82 00 14 */ bne lbl_80089390
-/* 80089380 7F 83 E3 78 */ mr r3, r28
-/* 80089384 7F C4 F3 78 */ mr r4, r30
-/* 80089388 48 2D F7 A5 */ bl strcpy
-/* 8008938C 48 00 00 74 */ b lbl_80089400
-lbl_80089390:
-/* 80089390 7F 83 E3 78 */ mr r3, r28
-/* 80089394 1C 00 00 18 */ mulli r0, r0, 0x18
-/* 80089398 7C 9B 02 14 */ add r4, r27, r0
-/* 8008939C 80 84 05 28 */ lwz r4, 0x528(r4)
-/* 800893A0 48 2D F7 8D */ bl strcpy
-/* 800893A4 48 00 00 5C */ b lbl_80089400
-lbl_800893A8:
-/* 800893A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800893AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800893B0 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 800893B4 7F E3 FB 78 */ mr r3, r31
-/* 800893B8 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 800893BC 4B FB ED 89 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 800893C0 2C 03 00 00 */ cmpwi r3, 0
-/* 800893C4 41 82 00 28 */ beq lbl_800893EC
-/* 800893C8 7F E3 FB 78 */ mr r3, r31
-/* 800893CC 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 800893D0 7F A5 EB 78 */ mr r5, r29
-/* 800893D4 38 C0 00 04 */ li r6, 4
-/* 800893D8 4B FB ED 15 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 800893DC 7C 64 1B 78 */ mr r4, r3
-/* 800893E0 7F 83 E3 78 */ mr r3, r28
-/* 800893E4 48 2D F7 49 */ bl strcpy
-/* 800893E8 48 00 00 18 */ b lbl_80089400
-lbl_800893EC:
-/* 800893EC 7F 83 E3 78 */ mr r3, r28
-/* 800893F0 7F C4 F3 78 */ mr r4, r30
-/* 800893F4 48 2D F7 39 */ bl strcpy
-/* 800893F8 38 60 00 00 */ li r3, 0
-/* 800893FC 48 00 00 08 */ b lbl_80089404
-lbl_80089400:
-/* 80089400 38 60 00 01 */ li r3, 1
-lbl_80089404:
-/* 80089404 39 61 00 20 */ addi r11, r1, 0x20
-/* 80089408 48 2D 8E 19 */ bl _restgpr_27
-/* 8008940C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80089410 7C 08 03 A6 */ mtlr r0
-/* 80089414 38 21 00 20 */ addi r1, r1, 0x20
-/* 80089418 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s b/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s
deleted file mode 100644
index aed340499b..0000000000
--- a/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s
+++ /dev/null
@@ -1,48 +0,0 @@
-lbl_80088FE0:
-/* 80088FE0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80088FE4 7C 08 02 A6 */ mflr r0
-/* 80088FE8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80088FEC 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088FF0 48 2D 91 ED */ bl _savegpr_29
-/* 80088FF4 7C 7D 1B 78 */ mr r29, r3
-/* 80088FF8 7C 9E 23 78 */ mr r30, r4
-/* 80088FFC 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80089000 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80089004 41 82 00 28 */ beq lbl_8008902C
-/* 80089008 4B FF FC 1D */ bl searchEventArgData__9dCamera_cFPc
-/* 8008900C 2C 03 FF FF */ cmpwi r3, -1
-/* 80089010 40 82 00 0C */ bne lbl_8008901C
-/* 80089014 38 60 00 00 */ li r3, 0
-/* 80089018 48 00 00 5C */ b lbl_80089074
-lbl_8008901C:
-/* 8008901C 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80089020 7C 7D 02 14 */ add r3, r29, r0
-/* 80089024 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 80089028 48 00 00 4C */ b lbl_80089074
-lbl_8008902C:
-/* 8008902C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089030 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089034 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 80089038 7F E3 FB 78 */ mr r3, r31
-/* 8008903C 80 9D 04 EC */ lwz r4, 0x4ec(r29)
-/* 80089040 7F C5 F3 78 */ mr r5, r30
-/* 80089044 4B FB F1 01 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80089048 2C 03 00 00 */ cmpwi r3, 0
-/* 8008904C 41 82 00 1C */ beq lbl_80089068
-/* 80089050 7F E3 FB 78 */ mr r3, r31
-/* 80089054 80 9D 04 EC */ lwz r4, 0x4ec(r29)
-/* 80089058 7F C5 F3 78 */ mr r5, r30
-/* 8008905C 38 C0 00 04 */ li r6, 4
-/* 80089060 4B FB F0 8D */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80089064 48 00 00 10 */ b lbl_80089074
-lbl_80089068:
-/* 80089068 38 00 00 01 */ li r0, 1
-/* 8008906C 98 1D 04 F8 */ stb r0, 0x4f8(r29)
-/* 80089070 38 60 00 00 */ li r3, 0
-lbl_80089074:
-/* 80089074 39 61 00 20 */ addi r11, r1, 0x20
-/* 80089078 48 2D 91 B1 */ bl _restgpr_29
-/* 8008907C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80089080 7C 08 03 A6 */ mtlr r0
-/* 80089084 38 21 00 20 */ addi r1, r1, 0x20
-/* 80089088 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s b/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s
deleted file mode 100644
index b10651660f..0000000000
--- a/asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s
+++ /dev/null
@@ -1,47 +0,0 @@
-lbl_8008941C:
-/* 8008941C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80089420 7C 08 02 A6 */ mflr r0
-/* 80089424 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80089428 39 61 00 20 */ addi r11, r1, 0x20
-/* 8008942C 48 2D 8D AD */ bl _savegpr_28
-/* 80089430 7C 7C 1B 78 */ mr r28, r3
-/* 80089434 7C 9D 23 78 */ mr r29, r4
-/* 80089438 7C BE 2B 78 */ mr r30, r5
-/* 8008943C 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80089440 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80089444 41 82 00 28 */ beq lbl_8008946C
-/* 80089448 4B FF F7 DD */ bl searchEventArgData__9dCamera_cFPc
-/* 8008944C 2C 03 FF FF */ cmpwi r3, -1
-/* 80089450 40 82 00 0C */ bne lbl_8008945C
-/* 80089454 7F C3 F3 78 */ mr r3, r30
-/* 80089458 48 00 00 54 */ b lbl_800894AC
-lbl_8008945C:
-/* 8008945C 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80089460 7C 7C 02 14 */ add r3, r28, r0
-/* 80089464 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 80089468 48 00 00 44 */ b lbl_800894AC
-lbl_8008946C:
-/* 8008946C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80089470 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80089474 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 80089478 7F E3 FB 78 */ mr r3, r31
-/* 8008947C 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80089480 7F A5 EB 78 */ mr r5, r29
-/* 80089484 4B FB EC C1 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80089488 2C 03 00 00 */ cmpwi r3, 0
-/* 8008948C 41 82 00 1C */ beq lbl_800894A8
-/* 80089490 7F E3 FB 78 */ mr r3, r31
-/* 80089494 80 9C 04 EC */ lwz r4, 0x4ec(r28)
-/* 80089498 7F A5 EB 78 */ mr r5, r29
-/* 8008949C 38 C0 00 04 */ li r6, 4
-/* 800894A0 4B FB EC 4D */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 800894A4 48 00 00 08 */ b lbl_800894AC
-lbl_800894A8:
-/* 800894A8 7F C3 F3 78 */ mr r3, r30
-lbl_800894AC:
-/* 800894AC 39 61 00 20 */ addi r11, r1, 0x20
-/* 800894B0 48 2D 8D 75 */ bl _restgpr_28
-/* 800894B4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 800894B8 7C 08 03 A6 */ mtlr r0
-/* 800894BC 38 21 00 20 */ addi r1, r1, 0x20
-/* 800894C0 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s b/asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s
deleted file mode 100644
index 057a8ee4aa..0000000000
--- a/asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s
+++ /dev/null
@@ -1,74 +0,0 @@
-lbl_8008922C:
-/* 8008922C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80089230 7C 08 02 A6 */ mflr r0
-/* 80089234 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80089238 39 61 00 20 */ addi r11, r1, 0x20
-/* 8008923C 48 2D 8F 99 */ bl _savegpr_27
-/* 80089240 7C 7B 1B 78 */ mr r27, r3
-/* 80089244 7C 9C 23 78 */ mr r28, r4
-/* 80089248 7C BD 2B 78 */ mr r29, r5
-/* 8008924C 7C DE 33 78 */ mr r30, r6
-/* 80089250 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80089254 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80089258 41 82 00 58 */ beq lbl_800892B0
-/* 8008925C 7F A4 EB 78 */ mr r4, r29
-/* 80089260 4B FF F9 C5 */ bl searchEventArgData__9dCamera_cFPc
-/* 80089264 2C 03 FF FF */ cmpwi r3, -1
-/* 80089268 40 82 00 20 */ bne lbl_80089288
-/* 8008926C C0 1E 00 00 */ lfs f0, 0(r30)
-/* 80089270 D0 1C 00 00 */ stfs f0, 0(r28)
-/* 80089274 C0 1E 00 04 */ lfs f0, 4(r30)
-/* 80089278 D0 1C 00 04 */ stfs f0, 4(r28)
-/* 8008927C C0 1E 00 08 */ lfs f0, 8(r30)
-/* 80089280 D0 1C 00 08 */ stfs f0, 8(r28)
-/* 80089284 48 00 00 9C */ b lbl_80089320
-lbl_80089288:
-/* 80089288 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 8008928C 7C 7B 02 14 */ add r3, r27, r0
-/* 80089290 80 63 05 28 */ lwz r3, 0x528(r3)
-/* 80089294 C0 03 00 00 */ lfs f0, 0(r3)
-/* 80089298 D0 1C 00 00 */ stfs f0, 0(r28)
-/* 8008929C C0 03 00 04 */ lfs f0, 4(r3)
-/* 800892A0 D0 1C 00 04 */ stfs f0, 4(r28)
-/* 800892A4 C0 03 00 08 */ lfs f0, 8(r3)
-/* 800892A8 D0 1C 00 08 */ stfs f0, 8(r28)
-/* 800892AC 48 00 00 74 */ b lbl_80089320
-lbl_800892B0:
-/* 800892B0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 800892B4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 800892B8 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 800892BC 7F E3 FB 78 */ mr r3, r31
-/* 800892C0 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 800892C4 4B FB EE 81 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 800892C8 2C 03 00 00 */ cmpwi r3, 0
-/* 800892CC 41 82 00 34 */ beq lbl_80089300
-/* 800892D0 7F E3 FB 78 */ mr r3, r31
-/* 800892D4 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 800892D8 7F A5 EB 78 */ mr r5, r29
-/* 800892DC 38 C0 00 01 */ li r6, 1
-/* 800892E0 4B FB EE 0D */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 800892E4 C0 03 00 00 */ lfs f0, 0(r3)
-/* 800892E8 D0 1C 00 00 */ stfs f0, 0(r28)
-/* 800892EC C0 03 00 04 */ lfs f0, 4(r3)
-/* 800892F0 D0 1C 00 04 */ stfs f0, 4(r28)
-/* 800892F4 C0 03 00 08 */ lfs f0, 8(r3)
-/* 800892F8 D0 1C 00 08 */ stfs f0, 8(r28)
-/* 800892FC 48 00 00 24 */ b lbl_80089320
-lbl_80089300:
-/* 80089300 C0 1E 00 00 */ lfs f0, 0(r30)
-/* 80089304 D0 1C 00 00 */ stfs f0, 0(r28)
-/* 80089308 C0 1E 00 04 */ lfs f0, 4(r30)
-/* 8008930C D0 1C 00 04 */ stfs f0, 4(r28)
-/* 80089310 C0 1E 00 08 */ lfs f0, 8(r30)
-/* 80089314 D0 1C 00 08 */ stfs f0, 8(r28)
-/* 80089318 38 60 00 00 */ li r3, 0
-/* 8008931C 48 00 00 08 */ b lbl_80089324
-lbl_80089320:
-/* 80089320 38 60 00 01 */ li r3, 1
-lbl_80089324:
-/* 80089324 39 61 00 20 */ addi r11, r1, 0x20
-/* 80089328 48 2D 8E F9 */ bl _restgpr_27
-/* 8008932C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80089330 7C 08 03 A6 */ mtlr r0
-/* 80089334 38 21 00 20 */ addi r1, r1, 0x20
-/* 80089338 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s b/asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s
deleted file mode 100644
index f5824ef224..0000000000
--- a/asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s
+++ /dev/null
@@ -1,55 +0,0 @@
-lbl_80088F1C:
-/* 80088F1C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80088F20 7C 08 02 A6 */ mflr r0
-/* 80088F24 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80088F28 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088F2C 48 2D 92 A9 */ bl _savegpr_27
-/* 80088F30 7C 7B 1B 78 */ mr r27, r3
-/* 80088F34 7C 9C 23 78 */ mr r28, r4
-/* 80088F38 7C BD 2B 78 */ mr r29, r5
-/* 80088F3C 80 03 06 0C */ lwz r0, 0x60c(r3)
-/* 80088F40 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
-/* 80088F44 41 82 00 34 */ beq lbl_80088F78
-/* 80088F48 7F A4 EB 78 */ mr r4, r29
-/* 80088F4C 4B FF FC D9 */ bl searchEventArgData__9dCamera_cFPc
-/* 80088F50 2C 03 FF FF */ cmpwi r3, -1
-/* 80088F54 40 82 00 0C */ bne lbl_80088F60
-/* 80088F58 38 60 00 00 */ li r3, 0
-/* 80088F5C 48 00 00 6C */ b lbl_80088FC8
-lbl_80088F60:
-/* 80088F60 1C 03 00 18 */ mulli r0, r3, 0x18
-/* 80088F64 7C 7B 02 14 */ add r3, r27, r0
-/* 80088F68 80 03 05 28 */ lwz r0, 0x528(r3)
-/* 80088F6C 90 1C 00 00 */ stw r0, 0(r28)
-/* 80088F70 80 63 05 24 */ lwz r3, 0x524(r3)
-/* 80088F74 48 00 00 54 */ b lbl_80088FC8
-lbl_80088F78:
-/* 80088F78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80088F7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80088F80 3B C3 4F F8 */ addi r30, r3, 0x4ff8
-/* 80088F84 7F C3 F3 78 */ mr r3, r30
-/* 80088F88 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80088F8C 4B FB F1 B9 */ bl getMySubstanceNum__16dEvent_manager_cFiPCc
-/* 80088F90 7C 7F 1B 79 */ or. r31, r3, r3
-/* 80088F94 41 82 00 20 */ beq lbl_80088FB4
-/* 80088F98 7F C3 F3 78 */ mr r3, r30
-/* 80088F9C 80 9B 04 EC */ lwz r4, 0x4ec(r27)
-/* 80088FA0 7F A5 EB 78 */ mr r5, r29
-/* 80088FA4 38 C0 00 01 */ li r6, 1
-/* 80088FA8 4B FB F1 45 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 80088FAC 90 7C 00 00 */ stw r3, 0(r28)
-/* 80088FB0 48 00 00 14 */ b lbl_80088FC4
-lbl_80088FB4:
-/* 80088FB4 38 00 00 01 */ li r0, 1
-/* 80088FB8 98 1B 04 F8 */ stb r0, 0x4f8(r27)
-/* 80088FBC 38 60 00 00 */ li r3, 0
-/* 80088FC0 48 00 00 08 */ b lbl_80088FC8
-lbl_80088FC4:
-/* 80088FC4 7F E3 FB 78 */ mr r3, r31
-lbl_80088FC8:
-/* 80088FC8 39 61 00 20 */ addi r11, r1, 0x20
-/* 80088FCC 48 2D 92 55 */ bl _restgpr_27
-/* 80088FD0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80088FD4 7C 08 03 A6 */ mtlr r0
-/* 80088FD8 38 21 00 20 */ addi r1, r1, 0x20
-/* 80088FDC 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s b/asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s
deleted file mode 100644
index 14a0234481..0000000000
--- a/asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s
+++ /dev/null
@@ -1,51 +0,0 @@
-lbl_80089730:
-/* 80089730 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80089734 7C 08 02 A6 */ mflr r0
-/* 80089738 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8008973C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80089740 7C 7F 1B 78 */ mr r31, r3
-/* 80089744 80 03 01 74 */ lwz r0, 0x174(r3)
-/* 80089748 28 00 00 00 */ cmplwi r0, 0
-/* 8008974C 40 82 00 48 */ bne lbl_80089794
-/* 80089750 48 0F 75 19 */ bl Reset__9dCamera_cFv
-/* 80089754 38 00 00 01 */ li r0, 1
-/* 80089758 98 1F 01 58 */ stb r0, 0x158(r31)
-/* 8008975C 7F E3 FB 78 */ mr r3, r31
-/* 80089760 38 9F 03 F0 */ addi r4, r31, 0x3f0
-/* 80089764 3C A0 80 38 */ lis r5, d_d_ev_camera__stringBase0@ha /* 0x8037AAF4@ha */
-/* 80089768 38 A5 AA F4 */ addi r5, r5, d_d_ev_camera__stringBase0@l /* 0x8037AAF4@l */
-/* 8008976C 38 C0 FF FF */ li r6, -1
-/* 80089770 4B FF F9 1D */ bl getEvIntData__9dCamera_cFPiPci
-/* 80089774 98 7F 03 E8 */ stb r3, 0x3e8(r31)
-/* 80089778 7F E3 FB 78 */ mr r3, r31
-/* 8008977C 38 9F 03 EC */ addi r4, r31, 0x3ec
-/* 80089780 3C A0 80 38 */ lis r5, d_d_ev_camera__stringBase0@ha /* 0x8037AAF4@ha */
-/* 80089784 38 A5 AA F4 */ addi r5, r5, d_d_ev_camera__stringBase0@l /* 0x8037AAF4@l */
-/* 80089788 38 A5 00 06 */ addi r5, r5, 6
-/* 8008978C 38 C0 00 00 */ li r6, 0
-/* 80089790 4B FF F8 FD */ bl getEvIntData__9dCamera_cFPiPci
-lbl_80089794:
-/* 80089794 80 1F 03 EC */ lwz r0, 0x3ec(r31)
-/* 80089798 2C 00 00 00 */ cmpwi r0, 0
-/* 8008979C 41 82 00 10 */ beq lbl_800897AC
-/* 800897A0 80 1F 06 0C */ lwz r0, 0x60c(r31)
-/* 800897A4 60 00 00 01 */ ori r0, r0, 1
-/* 800897A8 90 1F 06 0C */ stw r0, 0x60c(r31)
-lbl_800897AC:
-/* 800897AC 88 1F 03 E8 */ lbz r0, 0x3e8(r31)
-/* 800897B0 28 00 00 00 */ cmplwi r0, 0
-/* 800897B4 41 82 00 1C */ beq lbl_800897D0
-/* 800897B8 80 7F 01 74 */ lwz r3, 0x174(r31)
-/* 800897BC 80 1F 03 F0 */ lwz r0, 0x3f0(r31)
-/* 800897C0 7C 03 00 40 */ cmplw r3, r0
-/* 800897C4 40 80 00 0C */ bge lbl_800897D0
-/* 800897C8 38 60 00 00 */ li r3, 0
-/* 800897CC 48 00 00 08 */ b lbl_800897D4
-lbl_800897D0:
-/* 800897D0 38 60 00 01 */ li r3, 1
-lbl_800897D4:
-/* 800897D4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 800897D8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 800897DC 7C 08 03 A6 */ mtlr r0
-/* 800897E0 38 21 00 10 */ addi r1, r1, 0x10
-/* 800897E4 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s b/asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s
deleted file mode 100644
index e7f6a8f86b..0000000000
--- a/asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s
+++ /dev/null
@@ -1,50 +0,0 @@
-lbl_800924D0:
-/* 800924D0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 800924D4 7C 08 02 A6 */ mflr r0
-/* 800924D8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 800924DC 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 800924E0 7C 7F 1B 78 */ mr r31, r3
-/* 800924E4 38 81 00 08 */ addi r4, r1, 8
-/* 800924E8 3C A0 80 38 */ lis r5, d_d_ev_camera__stringBase0@ha /* 0x8037AAF4@ha */
-/* 800924EC 38 A5 AA F4 */ addi r5, r5, d_d_ev_camera__stringBase0@l /* 0x8037AAF4@l */
-/* 800924F0 38 A5 01 80 */ addi r5, r5, 0x180
-/* 800924F4 38 C0 00 00 */ li r6, 0
-/* 800924F8 4B FF 6B 95 */ bl getEvIntData__9dCamera_cFPiPci
-/* 800924FC 80 01 00 08 */ lwz r0, 8(r1)
-/* 80092500 2C 00 00 09 */ cmpwi r0, 9
-/* 80092504 40 82 00 50 */ bne lbl_80092554
-/* 80092508 A8 1F 00 7C */ lha r0, 0x7c(r31)
-/* 8009250C C0 3F 00 80 */ lfs f1, 0x80(r31)
-/* 80092510 C0 1F 00 64 */ lfs f0, 0x64(r31)
-/* 80092514 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80092518 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8009251C D0 03 5D 8C */ stfs f0, 0x5d8c(r3)
-/* 80092520 C0 1F 00 68 */ lfs f0, 0x68(r31)
-/* 80092524 D0 03 5D 90 */ stfs f0, 0x5d90(r3)
-/* 80092528 C0 1F 00 6C */ lfs f0, 0x6c(r31)
-/* 8009252C D0 03 5D 94 */ stfs f0, 0x5d94(r3)
-/* 80092530 C0 1F 00 70 */ lfs f0, 0x70(r31)
-/* 80092534 D0 03 5D 98 */ stfs f0, 0x5d98(r3)
-/* 80092538 C0 1F 00 74 */ lfs f0, 0x74(r31)
-/* 8009253C D0 03 5D 9C */ stfs f0, 0x5d9c(r3)
-/* 80092540 C0 1F 00 78 */ lfs f0, 0x78(r31)
-/* 80092544 D0 03 5D A0 */ stfs f0, 0x5da0(r3)
-/* 80092548 D0 23 5D A4 */ stfs f1, 0x5da4(r3)
-/* 8009254C B0 03 5D A8 */ sth r0, 0x5da8(r3)
-/* 80092550 48 00 00 1C */ b lbl_8009256C
-lbl_80092554:
-/* 80092554 7F E3 FB 78 */ mr r3, r31
-/* 80092558 54 04 28 34 */ slwi r4, r0, 5
-/* 8009255C 38 84 00 D0 */ addi r4, r4, 0xd0
-/* 80092560 7C 9F 22 14 */ add r4, r31, r4
-/* 80092564 38 A0 00 01 */ li r5, 1
-/* 80092568 48 0D 26 FD */ bl pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs
-lbl_8009256C:
-/* 8009256C 38 00 00 01 */ li r0, 1
-/* 80092570 98 1F 01 58 */ stb r0, 0x158(r31)
-/* 80092574 38 60 00 01 */ li r3, 1
-/* 80092578 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 8009257C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80092580 7C 08 03 A6 */ mtlr r0
-/* 80092584 38 21 00 20 */ addi r1, r1, 0x20
-/* 80092588 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s b/asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s
deleted file mode 100644
index c54af8cc35..0000000000
--- a/asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8008BE74:
-/* 8008BE74 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8008BE78 7C 08 02 A6 */ mflr r0
-/* 8008BE7C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8008BE80 38 80 00 03 */ li r4, 3
-/* 8008BE84 48 00 00 15 */ bl transEvCamera__9dCamera_cFi
-/* 8008BE88 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8008BE8C 7C 08 03 A6 */ mtlr r0
-/* 8008BE90 38 21 00 10 */ addi r1, r1, 0x10
-/* 8008BE94 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s b/asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s
deleted file mode 100644
index bc0396ecd8..0000000000
--- a/asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8008BE50:
-/* 8008BE50 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8008BE54 7C 08 02 A6 */ mflr r0
-/* 8008BE58 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8008BE5C 38 80 00 02 */ li r4, 2
-/* 8008BE60 48 00 00 39 */ bl transEvCamera__9dCamera_cFi
-/* 8008BE64 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8008BE68 7C 08 03 A6 */ mtlr r0
-/* 8008BE6C 38 21 00 10 */ addi r1, r1, 0x10
-/* 8008BE70 4E 80 00 20 */ blr
diff --git a/asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s b/asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s
deleted file mode 100644
index 83cb5a1084..0000000000
--- a/asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8008BE2C:
-/* 8008BE2C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8008BE30 7C 08 02 A6 */ mflr r0
-/* 8008BE34 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8008BE38 38 80 00 01 */ li r4, 1
-/* 8008BE3C 48 00 00 5D */ bl transEvCamera__9dCamera_cFi
-/* 8008BE40 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8008BE44 7C 08 03 A6 */ mtlr r0
-/* 8008BE48 38 21 00 10 */ addi r1, r1, 0x10
-/* 8008BE4C 4E 80 00 20 */ blr
diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h
index 325cd1ff6f..debf6ad07c 100644
--- a/include/SSystem/SComponent/c_angle.h
+++ b/include/SSystem/SComponent/c_angle.h
@@ -114,12 +114,13 @@ public:
};
class cSGlobe {
-private:
+public:
float mRadius;
cSAngle mAzimuth; // original: V
cSAngle mInclination; // original: U
-public:
+ cSGlobe() {}
+
cSGlobe(const cSGlobe&);
cSGlobe(float, short, short);
cSGlobe(float, const cSAngle&, const cSAngle&);
diff --git a/include/Z2AudioLib/Z2StatusMgr.h b/include/Z2AudioLib/Z2StatusMgr.h
index 40b0ee3aa3..75de83eec9 100644
--- a/include/Z2AudioLib/Z2StatusMgr.h
+++ b/include/Z2AudioLib/Z2StatusMgr.h
@@ -30,6 +30,7 @@ struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> {
u8 getHour() { return mHour; }
bool isPaused() { return mIsMenuIn; }
bool isHeartGuageOn() { return mHeartGaugeOn; }
+ void getCameraMapInfo(u32 info) { mCameraMapInfo = info; }
/* 0x00 */ u8 mHour;
/* 0x01 */ u8 mMinute;
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index 45e6e1398d..773643d9b9 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -2291,7 +2291,7 @@ public:
/* 800FE868 */ void setMoveBGClimbCorrect();
/* 800FEB90 */ int checkBgCorrectClimbMove(cXyz*, cXyz*);
/* 800FEC70 */ void checkClimbRoof(f32);
- /* 800FED50 */ void checkClimbGround(cXyz*, f32);
+ /* 800FED50 */ int checkClimbGround(cXyz*, f32);
/* 800FEEC0 */ void checkBgClimbMove(int);
/* 800FF28C */ void setClimbStartNotGround();
/* 800FF450 */ int procClimbUpStartInit(int);
@@ -3198,7 +3198,7 @@ public:
BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); }
BOOL arrowChangeTrigger() { return itemActionTrigger(); }
bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); }
- u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
+ int getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
inline bool checkInputOnR() const;
static int getSightBti() { return 0x5B; }
bool checkBoomerangChargeEndWait() const {
@@ -3378,6 +3378,8 @@ public:
void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); }
+ BOOL checkStartFall() { return getStartMode() == 3; }
+
inline bool checkWindSpeedOnXZ() const;
inline void startRestartRoomFromOut(int, u32, int);
inline u16 getReadyItem();
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index c35075fbcf..fefa599d53 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -793,6 +793,8 @@ public:
s16 getBodyAngleX() const { return mBodyAngle.x; }
s16 getBodyAngleY() const { return mBodyAngle.y; }
+ f32 getHeight() const { return field_0x598; }
+
BOOL checkMidnaWarp() const { return 0; }
u32 checkNoResetFlg0(daPy_FLG0 i_flag) const { return mNoResetFlg0 & i_flag; }
@@ -869,6 +871,8 @@ public:
void changeDemoMoveAngle(s16 i_angle) { mDemo.setMoveAngle(i_angle); }
+ static bool checkPeepEndSceneChange() { return getLastSceneMode() == 7; }
+
inline static u32 i_getLastSceneMode();
inline static u32 getLastSceneMode();
inline static bool checkWoodSwordEquip();
diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h
index 25dbfcd69d..e20cc4ad60 100644
--- a/include/d/bg/d_bg_s.h
+++ b/include/d/bg/d_bg_s.h
@@ -88,7 +88,7 @@ public:
s32 GetRoomCamId(cBgS_PolyInfo const&);
s32 GetRoomPathId(cBgS_PolyInfo const&);
s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
- u8 GetGrpSoundId(cBgS_PolyInfo const&);
+ int GetGrpSoundId(cBgS_PolyInfo const&);
u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
s32 GetRoomId(cBgS_PolyInfo const&);
bool GetPolyAttackThrough(cBgS_PolyInfo const&);
diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h
index 4ca8f91446..c9b67a7451 100644
--- a/include/d/bg/d_bg_w.h
+++ b/include/d/bg/d_bg_w.h
@@ -205,7 +205,7 @@ public:
virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0;
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0;
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0;
- virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0;
+ virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0;
virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
@@ -309,7 +309,7 @@ public:
/* 8007B8D8 */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&);
/* 8007B904 */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
/* 8007DF28 */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
- /* 8007DF58 */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&);
+ /* 8007DF58 */ virtual int GetGrpSoundId(cBgS_PolyInfo const&);
/* 8007DF88 */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
csXyz*);
/* 8007DFC4 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h
index 587829898d..12f5ddddc9 100644
--- a/include/d/bg/d_bg_w_base.h
+++ b/include/d/bg/d_bg_w_base.h
@@ -84,7 +84,7 @@ public:
virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0;
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0;
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0;
- virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0;
+ virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0;
virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h
index ee842966cb..105eb86e17 100644
--- a/include/d/bg/d_bg_w_kcol.h
+++ b/include/d/bg/d_bg_w_kcol.h
@@ -105,7 +105,7 @@ public:
/* 80082ECC */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&);
/* 80082EFC */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
/* 80082F2C */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
- /* 80082F5C */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&);
+ /* 80082F5C */ virtual int GetGrpSoundId(cBgS_PolyInfo const&);
/* 80082F8C */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
csXyz*);
/* 80082F90 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index b7b745a8bd..2871bbd0d6 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -49,8 +49,8 @@ public:
~dComIfG_camera_info_class() {}
/* 0x00 */ camera_class* mCamera;
- /* 0x04 */ u8 field_0x4;
- /* 0x05 */ u8 field_0x5;
+ /* 0x04 */ s8 field_0x4;
+ /* 0x05 */ s8 field_0x5;
/* 0x06 */ s8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u32 mCameraAttentionStatus;
@@ -59,8 +59,8 @@ public:
/* 0x14 */ char* mCameraParamFileName;
/* 0x18 */ cXyz mCameraPos;
/* 0x24 */ cXyz mCameraTarget;
- /* 0x30 */ f32 field_0x30;
- /* 0x34 */ s16 field_0x34;
+ /* 0x30 */ f32 mCameraFovy;
+ /* 0x34 */ s16 mCameraBank;
};
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38);
@@ -486,11 +486,14 @@ public:
mPlayer[i] = (daAlink_c*)ptr;
mPlayerCameraID[camIdx] = 0;
}
- void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; }
- void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; }
- bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; }
+ void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; }
+ void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] &= ~flag; }
+ bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[param_0][i]; }
int getPlayerCameraID(int i) { return mPlayerCameraID[i * 8]; }
+ int getCameraPlayer1ID(int i) { return mCameraInfo[i].field_0x5; }
+ int getCameraPlayer2ID(int i) { return mCameraInfo[i].field_0x6; }
+ int getCameraWinID(int i) { return mCameraInfo[i].field_0x4; }
void setCameraParamFileName(int i, char* name) { mCameraInfo[i].mCameraParamFileName = name; }
void setCamera(int i, camera_class* cam) { mCameraInfo[i].mCamera = cam; }
const char* getCameraParamFileName(int i) { return mCameraInfo[i].mCameraParamFileName; }
@@ -512,6 +515,21 @@ public:
}
f32 getCameraZoomForcus(int i_no) { return mCameraInfo[i_no].mCameraZoomForcus; }
+ void setCameraZoomScale(int i_no, f32 i_scale) { mCameraInfo[i_no].mCameraZoomScale = i_scale; }
+
+ void saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy, s16 i_bank) {
+ mCameraInfo[i].mCameraPos = *i_pos;
+ mCameraInfo[i].mCameraTarget = *i_target;
+ mCameraInfo[i].mCameraFovy = i_fovy;
+ mCameraInfo[i].mCameraBank = i_bank;
+ }
+
+ void loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy, s16* o_bank) {
+ *o_pos = mCameraInfo[i].mCameraPos;
+ *o_target = mCameraInfo[i].mCameraTarget;
+ *o_fovy = mCameraInfo[i].mCameraFovy;
+ *o_bank = mCameraInfo[i].mCameraBank;
+ }
void setMesgCamInfoID(int param_0) { mMesgCamInfo = param_0; }
@@ -763,8 +781,8 @@ public:
/* 0x04FD4 */ fopAc_ac_c* mMesgCamInfoActor8;
/* 0x04FD8 */ fopAc_ac_c* mMesgCamInfoActor9;
/* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10;
- /* 0x04FE0 */ u32 mPlayerStatus[2];
- /* 0x04FE8 */ u8 field_0x4fe8[0x10];
+ /* 0x04FE0 */ u32 mPlayerStatus[1][4];
+ /* 0x04FF0 */ u8 field_0x4ff0[0x8];
/* 0x04FF8 */ __d_timer_info_c mTimerInfo;
/* 0x0500C */ dDlst_window_c* mCurrentWindow;
/* 0x05010 */ view_class* mCurrentView;
@@ -1659,6 +1677,10 @@ inline void dComIfGp_removeSimpleModel(J3DModelData* i_modelData, int roomNo) {
g_dComIfG_gameInfo.play.removeSimpleModel(i_modelData, roomNo);
}
+inline dSv_turnRestart_c& dComIfGs_getTurnRestart() {
+ return g_dComIfG_gameInfo.info.getTurnRestart();
+}
+
inline u32 dComIfGs_getTurnRestartParam() {
return g_dComIfG_gameInfo.info.getTurnRestart().getParam();
}
@@ -2002,6 +2024,18 @@ inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
+inline int dComIfGp_getCameraPlayer1ID(int idx) {
+ return g_dComIfG_gameInfo.play.getCameraPlayer1ID(idx);
+}
+
+inline int dComIfGp_getCameraPlayer2ID(int idx) {
+ return g_dComIfG_gameInfo.play.getCameraPlayer2ID(idx);
+}
+
+inline int dComIfGp_getCameraWinID(int idx) {
+ return g_dComIfG_gameInfo.play.getCameraWinID(idx);
+}
+
inline int dComIfGp_getPlayerCameraID(int idx) {
return g_dComIfG_gameInfo.play.getPlayerCameraID(idx);
}
@@ -2627,6 +2661,10 @@ inline void dComIfGp_setCameraInfo(int camIdx, camera_class* p_cam, int param_2,
g_dComIfG_gameInfo.play.setCameraInfo(camIdx, p_cam, param_2, param_3, param_4);
}
+inline void dComIfGp_setCameraZoomScale(int i_no, f32 i_scale) {
+ g_dComIfG_gameInfo.play.setCameraZoomScale(i_no, i_scale);
+}
+
inline f32 dComIfGp_getCameraZoomForcus(int i_no) {
return g_dComIfG_gameInfo.play.getCameraZoomForcus(i_no);
}
@@ -2635,6 +2673,14 @@ inline u32 dComIfGp_getCameraAttentionStatus(int i_no) {
return g_dComIfG_gameInfo.play.getCameraAttentionStatus(i_no);
}
+inline void dComIfGp_saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy, s16 i_bank) {
+ g_dComIfG_gameInfo.play.saveCameraPosition(i, i_pos, i_target, i_fovy, i_bank);
+}
+
+inline void dComIfGp_loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy, s16* o_bank) {
+ g_dComIfG_gameInfo.play.loadCameraPosition(i, o_pos, o_target, o_fovy, o_bank);
+}
+
inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag);
}
@@ -3230,6 +3276,10 @@ inline BOOL dComIfGp_evmng_endCheck(s16 eventID) {
return g_dComIfG_gameInfo.play.getEvtManager().endCheck(eventID);
}
+inline int dComIfGp_evmng_cameraPlay() {
+ return dComIfGp_getPEvtManager()->cameraPlay();
+}
+
inline u8 dComIfGp_event_getPreItemNo() {
return g_dComIfG_gameInfo.play.getEvent().getPreItemNo();
}
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index 1f09ef2664..76577b631a 100644
--- a/include/d/d_attention.h
+++ b/include/d/d_attention.h
@@ -228,6 +228,11 @@ public:
param_5);
}
+ void Init(fopAc_ac_c* param_0, u32 i_padNo) {
+ mpPlayer = param_0;
+ mPadNo = i_padNo;
+ }
+
static dist_entry& i_getDistTable(int i_no) { return dist_table[i_no]; }
static type_tbl_entry loc_type_tbl[3];
diff --git a/include/d/d_cam_param.h b/include/d/d_cam_param.h
index 92a3fde44b..074d3f2fd2 100644
--- a/include/d/d_cam_param.h
+++ b/include/d/d_cam_param.h
@@ -22,12 +22,16 @@ public:
/* 0xC */ u8 field_0xc[4];
/* 800889B0 */ virtual ~dCstick_c();
+
+ f32 SwTHH() { return mThresholdHigh; }
};
class dCamBGChk_c {
public:
/* 80088464 */ dCamBGChk_c();
+ f32 WallUpDistance() { return mWallUpDistance; }
+
// name is a guess for now
struct ChkInfo {
/* 0x0 */ f32 mDistance;
@@ -53,7 +57,8 @@ struct dCamStyleData {
struct StyleData {
/* 0x0 */ u32 field_0x0;
/* 0x4 */ u16 field_0x4;
- /* 0x6 */ u8 field_0x6[0x78 - 0x6];
+ /* 0x6 */ u16 field_0x6;
+ /* 0x8 */ u8 field_0x8[0x78 - 0x8];
}; // Size: 0x78
/* 0x0 */ u8 field_0x0[4];
@@ -74,7 +79,6 @@ public:
/* 80182C74 */ void Arg0(u8);
/* 80182C7C */ void Fovy(u8);
/* 80182C58 */ void Fovy();
- /* 80182C8C */ void Flag(s32, u16);
/* 80182CB4 */ void CheckFlag(u16);
/* 80182CD0 */ void Val(s32, int);
@@ -88,7 +92,10 @@ public:
/* 0x14 */ int mStyleID;
/* 0x18 */ u8 field_0x18[4];
- u16 Algorythmn(s32 i_style) { return mCamStyleData[i_style].field_0x4; }
+ u32 Id(s32 i_style) { return mCamStyleData[i_style].field_0x0; }
+ int Algorythmn(s32 i_style) { return mCamStyleData[i_style].field_0x4; }
+ int Algorythmn() { return mCurrentStyle->field_0x4; }
+ bool Flag(s32 param_0, u16 param_1) { return mCamStyleData[param_0].field_0x6 & param_1; }
/* 8008858C */ virtual ~dCamParam_c();
};
@@ -99,7 +106,6 @@ public:
/* 80088918 */ bool CheckLatitudeRange(s16*);
/* 80088988 */ f32 PlayerHideDist();
/* 80182BB8 */ void CheckFlag2(u16);
- /* 80182BD0 */ void CheckFlag(u16);
/* 80182BE8 */ void WaitRollSpeed();
/* 80182BF0 */ void WaitRollTimer();
/* 80182C1C */ void ThrowTimer();
@@ -110,6 +116,11 @@ public:
/* 80182CF4 */ void ChargeTimer();
/* 80182CFC */ void ChargeLatitude();
+ bool CheckFlag(u16 i_flag) { return mDebugFlags & i_flag; }
+ f32 ManualEndVal() { return mManualEndVal; }
+ f32 CinemaScopeTrimHeight() { return mTrimCineScopeHeight; }
+ f32 VistaTrimHeight() { return mTrimVistaHeight; }
+
/* 0x000 */ f32 mDrawNear;
/* 0x004 */ f32 mDrawFar;
/* 0x008 */ u16 mDebugFlags;
diff --git a/include/d/d_camera.h b/include/d/d_camera.h
index 5902b44cbd..4cd581cdf9 100644
--- a/include/d/d_camera.h
+++ b/include/d/d_camera.h
@@ -11,11 +11,22 @@
class fopAc_ac_c;
struct dCamMapToolData {
- /* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8);
+ dCamMapToolData() { Clr(); }
+
+ /* 8015FEB8 */ int Set(s32, s32, fopAc_ac_c*, u16, u8);
+
+ void Clr() {
+ field_0x2c = 0xFF;
+ field_0x30 = 0xFF;
+ field_0x3a = 0;
+ field_0x34 = NULL;
+ field_0x3b = 0xFF;
+ field_0x38 = 0xFF;
+ }
/* 0x00 */ stage_camera2_data_class field_0x0;
/* 0x18 */ stage_arrow_data_class field_0x18;
- /* 0x2C */ u32 field_0x2c;
+ /* 0x2C */ int field_0x2c;
/* 0x30 */ s32 field_0x30;
/* 0x34 */ fopAc_ac_c* field_0x34;
/* 0x38 */ u16 field_0x38;
@@ -23,11 +34,12 @@ struct dCamMapToolData {
/* 0x3B */ u8 field_0x3b;
};
-struct dCamForcusLine : public dDlst_effectLine_c {
+struct dCamForcusLine {
/* 801824C8 */ void Init();
/* 80182560 */ void Draw();
/* 801825E4 */ void Off();
+ /* 0x00 */ dDlst_effectLine_c mEffectLine;
/* 0x38 */ cXyz field_0x38;
/* 0x44 */ GXColor field_0x44;
/* 0x48 */ u8 field_0x48;
@@ -53,7 +65,8 @@ struct dCamera_FakeAngle_system {
struct dCamera_monitoring_things {
/* 0x00 */ cXyz field_0x0;
- /* 0x0C */ u8 field_0xc[8];
+ /* 0x0C */ f32 field_0xc;
+ /* 0x10 */ f32 field_0x10;
/* 0x14 */ cXyz field_0x14;
};
@@ -71,9 +84,11 @@ struct d2DBSplinePath {
/* 0x28 */ u32 field_0x28;
/* 0x2C */ u32 field_0x2c;
+ d2DBSplinePath() { Init(0, 0); }
+
/* 80097878 */ void Init(s32, s32);
/* 80097B68 */ void Spot(f32*, f32);
- /* 801828D4 */ virtual ~d2DBSplinePath();
+ /* 801828D4 */ virtual ~d2DBSplinePath() {}
};
struct dCamera_event_param {
@@ -113,14 +128,10 @@ class dCamera_c {
public:
class dCamInfo_c {
public:
- /* 8018291C */ dCamInfo_c();
- /* 80182920 */ ~dCamInfo_c();
-
- private:
- /* 0x00 */ cXyz field_0x0;
- /* 0x0C */ cXyz field_0xc;
- /* 0x18 */ f32 field_0x18;
- /* 0x1C */ cSAngle field_0x1c;
+ /* 0x00 */ cXyz mCenter;
+ /* 0x0C */ cXyz mEye;
+ /* 0x18 */ f32 mFovy;
+ /* 0x1C */ cSAngle mBank;
/* 0x1E */ s16 field_0x1e;
}; // Size: 0x20
@@ -140,30 +151,42 @@ public:
};
struct BG {
- /* 0x000 */ u8 field_0x0;
- /* 0x004 */ dBgS_CamGndChk field_0x4;
- /* 0x058 */ f32 field_0x58;
- /* 0x05C */ u8 field_0x5c;
- /* 0x060 */ dBgS_CamGndChk field_0x60;
- /* 0x0B4 */ f32 field_0xb4;
+ class {
+ public:
+ /* 0x00 */ u8 field_0x0;
+ /* 0x04 */ dBgS_CamGndChk field_0x4;
+ /* 0x58 */ f32 field_0x58;
+ } /* 0x000 */ field_0x0;
+ class {
+ public:
+ /* 0x00 */ u8 field_0x0;
+ /* 0x04 */ dBgS_CamGndChk field_0x4;
+ /* 0x58 */ f32 field_0x58;
+ } /* 0x05C */ field_0x5c;
/* 0x0B8 */ u8 field_0xb8[0xC0 - 0xB8];
- /* 0x0C0 */ u8 field_0xc0;
- /* 0x0C1 */ u8 field_0xc1;
- /* 0x0C4 */ cXyz field_0xc4;
- /* 0x0D0 */ cXyz field_0xd0;
- /* 0x0DC */ cSAngle field_0xdc;
- /* 0x0DE */ cSAngle field_0xde;
- /* 0x0E0 */ cSGlobe field_0xe0;
- /* 0x0E8 */ cSGlobe field_0xe8;
- /* 0x0F0 */ u8 field_0xf0[4];
- /* 0x0F4 */ int field_0xf4;
- /* 0x0F8 */ f32 field_0xf8;
- /* 0x0FC */ int field_0xfc;
- /* 0x100 */ int field_0x100;
- /* 0x104 */ u8 field_0x104[4];
- /* 0x108 */ int field_0x108;
- /* 0x10C */ f32 field_0x10c;
- /* 0x110 */ cXyz field_0x110;
+ class {
+ public:
+ /* 0x00 */ u8 field_0x0;
+ /* 0x01 */ u8 field_0x1;
+ /* 0x04 */ cXyz field_0x4;
+ /* 0x10 */ cXyz field_0x10;
+ /* 0x1C */ cSAngle field_0x1c;
+ /* 0x1E */ cSAngle field_0x1e;
+ /* 0x20 */ int field_0x20;
+ /* 0x24 */ cSGlobe field_0x24;
+ /* 0x2C */ cSGlobe field_0x2c;
+ /* 0x34 */ int field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ int field_0x3c;
+ /* 0x40 */ int field_0x40;
+ /* 0x44 */ int field_0x44;
+ } /* 0x0C0 */ field_0xc0;
+ class {
+ public:
+ /* 0x0 */ int field_0x0;
+ /* 0x4 */ f32 field_0x4;
+ /* 0x8 */ cXyz field_0x8;
+ } /* 0x108 */ field_0x108;
};
struct Shake {
@@ -181,19 +204,19 @@ public:
/* 80088A7C */ int StartEventCamera(int, int, ...);
/* 80088BBC */ int EndEventCamera(int);
/* 80088C24 */ int searchEventArgData(char*);
- /* 8008908C */ void getEvIntData(int*, char*, int);
- /* 80088CB0 */ void getEvIntData(int*, char*);
- /* 80088D90 */ void getEvFloatData(f32*, char*);
- /* 80089154 */ void getEvFloatData(f32*, char*, f32);
- /* 80088E58 */ void getEvFloatListData(f32**, char*);
- /* 80088F1C */ void getEvXyzListData(cXyz**, char*);
- /* 8008941C */ void getEvStringPntData(char*, char*);
- /* 80088FE0 */ void getEvStringPntData(char*);
- /* 8008922C */ void getEvXyzData(cXyz*, char*, cXyz);
- /* 8008933C */ void getEvStringData(char*, char*, char*);
- /* 800894C4 */ void getEvActor(char*);
- /* 800895F4 */ void getEvActor(char*, char*);
- /* 80089730 */ void pauseEvCamera();
+ /* 8008908C */ bool getEvIntData(int*, char*, int);
+ /* 80088CB0 */ bool getEvIntData(int*, char*);
+ /* 80088D90 */ bool getEvFloatData(f32*, char*);
+ /* 80089154 */ bool getEvFloatData(f32*, char*, f32);
+ /* 80088E58 */ int getEvFloatListData(f32**, char*);
+ /* 80088F1C */ int getEvXyzListData(cXyz**, char*);
+ /* 8008941C */ char* getEvStringPntData(char*, char*);
+ /* 80088FE0 */ char* getEvStringPntData(char*);
+ /* 8008922C */ bool getEvXyzData(cXyz*, char*, cXyz);
+ /* 8008933C */ bool getEvStringData(char*, char*, char*);
+ /* 800894C4 */ fopAc_ac_c* getEvActor(char*);
+ /* 800895F4 */ fopAc_ac_c* getEvActor(char*, char*);
+ /* 80089730 */ int pauseEvCamera();
/* 800897E8 */ void fixedFrameEvCamera();
/* 8008A510 */ void stokerEvCamera();
/* 8008A974 */ void rollingEvCamera();
@@ -206,12 +229,12 @@ public:
/* 8008FAE8 */ void restorePosEvCamera();
/* 80090174 */ void talktoEvCamera();
/* 80090230 */ bool maptoolIdEvCamera();
- /* 80090478 */ void styleEvCamera();
+ /* 80090478 */ bool styleEvCamera();
/* 80090514 */ void gameOverEvCamera();
/* 80091468 */ void tactEvCamera();
/* 800923B8 */ bool turnToActorEvCamera();
- /* 800923C0 */ void stbWaitEvCamera();
- /* 800924D0 */ void saveEvCamera();
+ /* 800923C0 */ bool stbWaitEvCamera();
+ /* 800924D0 */ bool saveEvCamera();
/* 8009258C */ void loadEvCamera();
/* 800929AC */ void useItem0EvCamera();
/* 800937AC */ void useItem1EvCamera();
@@ -225,10 +248,9 @@ public:
/* 800965AC */ void hintTalkEvCamera();
/* 80096EDC */ void bspTransEvCamera();
/* 80097694 */ bool portalWarpEvCamera();
- /* 8009771C */ void attentionPos(fopAc_ac_c*);
- /* 80097738 */ void directionOf(fopAc_ac_c*);
- /* 8009775C */ void positionOf(fopAc_ac_c*);
- /* 80097778 */ void setFlag(u32);
+ /* 8009771C */ cXyz attentionPos(fopAc_ac_c*);
+ /* 80097738 */ cSAngle directionOf(fopAc_ac_c*);
+ /* 8009775C */ cXyz positionOf(fopAc_ac_c*);
/* 8009778C */ void eyePos(fopAc_ac_c*);
/* 8016008C */ dCamera_c(camera_class*);
/* 80160304 */ ~dCamera_c();
@@ -237,7 +259,7 @@ public:
/* 801614C4 */ void QuickStart();
/* 801614D0 */ void Stop();
/* 801614E8 */ void Stay();
- /* 801614F4 */ u8 ChangeModeOK(s32);
+ /* 801614F4 */ bool ChangeModeOK(s32);
/* 80161550 */ void initPad();
/* 801617B0 */ void updatePad();
/* 80161D84 */ void initMonitor();
@@ -246,38 +268,38 @@ public:
/* 801622B0 */ void infoReport();
/* 801622B4 */ void Run();
/* 80162D38 */ void NotRun();
- /* 80162FB8 */ void V();
- /* 80162FD4 */ void U();
- /* 8016300C */ void SetTrimSize(s32);
- /* 80163028 */ void SetTrimTypeForce(s32);
+ /* 80162FB8 */ s16 V();
+ /* 80162FD4 */ s16 U();
+ /* 8016300C */ bool SetTrimSize(s32);
+ /* 80163028 */ bool SetTrimTypeForce(s32);
/* 80163034 */ void CalcTrimSize();
- /* 80163154 */ void Draw();
+ /* 80163154 */ int Draw();
/* 8016317C */ void setStageMapToolData();
/* 80163340 */ void setMapToolData();
/* 80163558 */ void SetTagData(fopAc_ac_c*, s32, u16, u8);
/* 801635AC */ void setRoomMapToolData(dCamMapToolData*, s32, s32);
/* 801635E4 */ void nextMode(s32);
/* 80163C38 */ void onModeChange(s32, s32);
- /* 80163D50 */ void ModeFix(s32);
+ /* 80163D50 */ int ModeFix(s32);
/* 80163D5C */ void nextType(s32);
/* 8016444C */ void onTypeChange(s32, s32);
- /* 8016469C */ void onStyleChange(s32, s32);
- /* 801647B0 */ void onRoomChange(s32);
- /* 80164878 */ void getParamTargetActor(s32);
+ /* 8016469C */ int onStyleChange(s32, s32);
+ /* 801647B0 */ int onRoomChange(s32);
+ /* 80164878 */ fopAc_ac_c* getParamTargetActor(s32);
/* 80164944 */ int GetCameraTypeFromMapToolID(s32, s32);
/* 80164B64 */ int GetCameraTypeFromCameraName(char const*);
- /* 80164C10 */ void GetCameraTypeFromToolData(stage_camera2_data_class*);
+ /* 80164C10 */ int GetCameraTypeFromToolData(stage_camera2_data_class*);
/* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
/* 80164CAC */ void popInfo(dCamera_c::dCamInfo_c*);
- /* 80164D2C */ void heightOf(fopAc_ac_c*);
+ /* 80164D2C */ f32 heightOf(fopAc_ac_c*);
/* 80164E20 */ void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
/* 80164D6C */ void relationalPos(fopAc_ac_c*, cXyz*);
/* 80165104 */ void setUSOAngle();
- /* 80165158 */ void getUSOAngle(cSAngle);
+ /* 80165158 */ cSAngle getUSOAngle(cSAngle);
/* 8016517C */ void pointInSight(cXyz*);
/* 80167C24 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
/* 80165238 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16, f32);
- /* 801657EC */ void groundHeight(cXyz*);
+ /* 801657EC */ f32 groundHeight(cXyz*);
/* 801658C0 */ void lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32);
/* 80165AF0 */ void lineBGCheck(cXyz*, cXyz*, u32);
/* 801659F4 */ void lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
@@ -343,13 +365,10 @@ public:
/* 80181534 */ void ForceLockOn(fopAc_ac_c*);
/* 80181560 */ void ForceLockOff(unsigned int);
/* 8018159C */ void ForceLockOff(fopAc_ac_c*);
- /* 80181E20 */ void Up();
+ /* 80181E20 */ cXyz Up();
/* 80181E64 */ cXyz Eye();
/* 80181E98 */ cXyz Center();
/* 8018295C */ void footHeightOf(fopAc_ac_c*);
- /* 80182964 */ void push_any_key();
- /* 8018296C */ void clrFlag(u32);
- /* 80182980 */ void chkFlag(u32);
/* 801829AC */ void Bank();
bool Active() { return field_0x24 == 0; }
@@ -357,10 +376,18 @@ public:
int Type() { return mCurType; }
int Mode() { return mNextMode; }
f32 Fovy() { return mFovY + mShake.field_0x3c; }
+ bool isModeOK() { return field_0x158.field_0x0; }
+ bool push_any_key() { return field_0x224; }
- bool i_chkFlag(u32 i_flag) { return mEventFlags & i_flag; }
- void i_setFlag(u32 i_flag) { mEventFlags |= i_flag; }
- void i_clrFlag(u32 i_flag) { mEventFlags &= ~i_flag; }
+ bool chkFlag(u32 i_flag) { return mEventFlags & i_flag; }
+ void setFlag(u32 i_flag) { mEventFlags |= i_flag; }
+ void clrFlag(u32 i_flag) { mEventFlags &= ~i_flag; }
+
+ void ResetView() { setView(0.0f, 0.0f, 608.0f, 448.0f); }
+
+ void clearInfo(dCamInfo_c* i_info, s16 param_1) {
+ i_info->field_0x1e = param_1;
+ }
#ifdef NONMATCHING
static engine_fn engine_tbl[];
@@ -375,9 +402,7 @@ public:
/* 0x021 */ u8 field_0x21;
/* 0x022 */ u8 field_0x22[2];
/* 0x024 */ int field_0x24;
- /* 0x028 */ f32 field_0x28;
- /* 0x02C */ s16 field_0x2c;
- /* 0x02E */ s16 field_0x2e;
+ /* 0x028 */ cSGlobe field_0x28;
/* 0x030 */ cXyz mCenter;
/* 0x03C */ cXyz mEye;
/* 0x048 */ cXyz mUp;
@@ -400,10 +425,7 @@ public:
/* 0x0A8 */ int field_0xa8;
/* 0x0AC */ u32 field_0xac;
/* 0x0B0 */ dCamInfo_c field_0xb0;
- /* 0x0D0 */ u8 field_0xd0[0x8];
- /* 0x0D8 */ cXyz field_0xd8;
- /* 0x0E4 */ u8 field_0xe4[0xc];
- /* 0x0F0 */ dCamInfo_c field_0xf0;
+ /* 0x0D0 */ dCamInfo_c field_0xd0[2];
class {
public:
/* 0x00 */ int field_0x0;
@@ -420,7 +442,7 @@ public:
/* 0x144 */ field_0x144;
class {
public:
- /* 0x0 */ u8 field_0x0;
+ /* 0x0 */ bool field_0x0;
/* 0x2 */ cSAngle field_0x2;
/* 0x4 */ cSAngle field_0x4;
}
@@ -446,7 +468,9 @@ public:
/* 0x1B4 */ f32 field_0x1b4;
/* 0x1B8 */ u8 field_0x1b8[4];
/* 0x1BC */ dCamera_pad_info mPadInfo;
- /* 0x1F4 */ u8 field_0x1f4[0x200 - 0x1F4];
+ /* 0x1F4 */ int field_0x1f4;
+ /* 0x1F8 */ int field_0x1f8;
+ /* 0x1FC */ int field_0x1fc;
/* 0x200 */ f32 mTriggerLeftLast;
/* 0x204 */ f32 mTriggerLeftDelta;
/* 0x208 */ u8 field_0x208;
@@ -463,7 +487,7 @@ public:
/* 0x219 */ u8 mTrigX;
/* 0x21A */ u8 mHoldY;
/* 0x21B */ u8 mTrigY;
- /* 0x21C */ u8 mHoldZ;
+ /* 0x21C */ bool mHoldZ;
/* 0x21D */ u8 mTrigZ;
/* 0x21E */ u8 field_0x21e;
/* 0x21F */ u8 field_0x21f;
@@ -480,7 +504,9 @@ public:
/* 0x2C8 */ f32 field_0x2c8;
/* 0x2CC */ BG mBG;
/* 0x3E8 */ u8 field_0x3e8;
- /* 0x3E9 */ u8 field_0x3e9[0x4e8 - 0x3e9];
+ /* 0x3EC */ int field_0x3ec;
+ /* 0x3F0 */ int field_0x3f0;
+ /* 0x3F4 */ u8 field_0x3f4[0x4E8 - 0x3F4];
/* 0x4E8 */ dCamera_event_data mEventData;
/* 0x60C */ u32 mEventFlags;
/* 0x610 */ u8 field_0x610;
@@ -498,9 +524,9 @@ public:
/* 0x66C */ int field_0x66c;
/* 0x670 */ int field_0x670;
/* 0x674 */ int field_0x674;
- /* 0x678 */ int field_0x678;
+ /* 0x678 */ u8 field_0x678;
/* 0x67C */ int mCamStyle;
- /* 0x680 */ int field_0x684;
+ /* 0x680 */ int field_0x680;
/* 0x684 */ dCamera_type_data* mCamTypeData;
/* 0x688 */ int mCamTypeNum;
/* 0x68C */ int mCurType;
@@ -552,12 +578,23 @@ public:
/* 0x920 */ f32 mTrimHeight;
/* 0x924 */ int mTrimSize;
/* 0x928 */ int mTrimTypeForce;
- /* 0x92C */ u8 field_0x92c[0x93C - 0x92c];
- /* 0x93C */ f32 field_0x93c;
- /* 0x940 */ u8 field_0x940[0x970 - 0x940];
+ /* 0x92C */ u8 field_0x92c[0x934 - 0x92c];
+ /* 0x934 */ f32 field_0x934;
+ /* 0x938 */ u8 field_0x938[0x93C - 0x938];
+ /* 0x93C */ int field_0x93c;
+ /* 0x940 */ int field_0x940;
+ /* 0x944 */ u8 field_0x944;
+ /* 0x948 */ int field_0x948;
+ /* 0x94C */ cSAngle field_0x94c;
+ /* 0x950 */ int field_0x950;
+ /* 0x954 */ u8 field_0x954[0x958 - 0x954];
+ /* 0x958 */ int field_0x958;
+ /* 0x95C */ cXyz field_0x95c;
+ /* 0x968 */ u8 field_0x968[0x970 - 0x968];
/* 0x970 */ dCamSetup_c mCamSetup;
/* 0xAEC */ dCamParam_c mCamParam;
- /* 0xB0C */ u8 field_0xb0c[0xd58 - 0xb0c];
+ /* 0xB0C */ u8 field_0xb0c;
+ /* 0xB0D */ u8 field_0xb0d[0xd58 - 0xb0d];
}; // Size: 0xD58
dCamera_c* dCam_getBody();
diff --git a/include/d/d_demo.h b/include/d/d_demo.h
index 41176035f6..4a23df2bfd 100644
--- a/include/d/d_demo.h
+++ b/include/d/d_demo.h
@@ -24,7 +24,7 @@ public:
/* 80038FC0 */ JStage::TObject* appendActor(fopAc_ac_c*);
/* 80039088 */ dDemo_actor_c* getActor(u8);
/* 800390AC */ JStage::TObject* createCamera();
- /* 80039128 */ JStage::TObject* getActiveCamera();
+ /* 80039128 */ dDemo_camera_c* getActiveCamera();
/* 8003913C */ JStage::TObject* createAmbient();
/* 800391B8 */ JStage::TObject* appendLight();
/* 80039258 */ JStage::TObject* createFog();
@@ -208,6 +208,13 @@ public:
/* 80038DDC */ virtual void JSGSetViewRoll(f32);
void onEnable(u8 flag) { mFlags |= flag; }
+ bool checkEnable(u8 flag) { return mFlags & flag; }
+
+ cXyz& getTarget() { return mViewTargetVector; }
+ cXyz& getTrans() { return mViewPos; }
+ cXyz& getUp() { return mViewUpVector; }
+ f32 getFovy() { return mProjFovy; }
+ f32 getRoll() { return mViewRoll; }
private:
/* 0x04 */ u8 mFlags;
@@ -279,6 +286,11 @@ public:
static void setBranchData(const u8* p_data) { m_branchData = p_data; }
static s16 getBranchId() { return m_branchId; }
+ static dDemo_camera_c* getCamera() {
+ JUT_ASSERT(m_object != 0);
+ return m_object->getActiveCamera();
+ }
+
static s16 m_branchId;
static dDemo_system_c* m_system;
static JStudio::TControl* m_control;
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index da554aa11c..136b879ef4 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -15,6 +15,8 @@ class dKy_tevstr_c;
class cM_rnd_c {
public:
+ cM_rnd_c() { init(100, 100, 100); }
+
/* 80053CDC */ void init(int, int, int);
/* 80053CEC */ f32 get();
/* 80053DE0 */ f32 getF(f32);
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index a8466b0e03..ac3af99faa 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -145,10 +145,10 @@ struct stage_envr_info_class {
}; // Size: 0x41
struct stage_camera2_data_class {
- /* 0x00 */ int field_0x0;
- /* 0x04 */ f32 field_0x4;
- /* 0x08 */ f32 field_0x8;
- /* 0x0C */ f32 field_0xc;
+ struct {
+ int field_0x0;
+ Vec field_0x4;
+ } /* 0x00 */ field_0x0;
/* 0x10 */ u8 field_0x10;
/* 0x11 */ u8 field_0x11;
/* 0x12 */ u8 field_0x12;
@@ -165,6 +165,7 @@ struct stage_camera_class {
struct stage_arrow_data_class {
/* 0x00 */ cXyz mPosition;
/* 0x0C */ csXyz mAngle;
+ /* 0x12 */ s16 field_0x12;
}; // Size: 0x14
struct stage_arrow_class {
@@ -1098,6 +1099,10 @@ inline u16 dStage_stagInfo_GetStageTitleNo(stage_stag_info_class* pstag) {
return pstag->mStageTitleNo;
}
+inline u8 dStage_stagInfo_DefaultCameraType(stage_stag_info_class* pstag) {
+ return pstag->mCameraType;
+}
+
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
@@ -1138,6 +1143,10 @@ inline int dStage_FileList_dt_GlobalWindDir(dStage_FileList_dt_c* i_fili) {
return (i_fili->mParameters >> 0xF) & 7;
}
+inline u8 dStage_FileList_dt_GetDefaultCamera(dStage_FileList_dt_c* p_fList) {
+ return p_fList->mDefaultCamera;
+}
+
inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mLeftRmX;
}
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index ece67e7d5c..42e9010714 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -79,6 +79,7 @@ public:
void setFlag(int flag) { mFlags.flagSet(flag); }
bool dataLoaded() { return mDataLoaded; }
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
+ int cameraPlay() { return mCameraPlay; }
inline static s16 getIndexCompositId(s16 param_0) { return param_0 != -1 ? (s16)(param_0 & 0xff) : (s16)-1; }
static int getTypeCompositId(s16 param_0) { return param_0 == -1 ? 0 : param_0 >> 8; }
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 0374757227..16a85f724a 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -1046,6 +1046,7 @@ private:
class dSv_turnRestart_c {
public:
class dSv_turnRestart_camera_c {
+ public:
/* 0x00 */ cXyz mCameraCtr;
/* 0x0C */ cXyz mCameraEye;
/* 0x18 */ cXyz mCameraUp;
@@ -1057,6 +1058,17 @@ public:
cXyz& getPos() { return mPosition; }
s16 getAngleY() const { return mAngleY; }
+ f32 getCameraFvy() const { return mCameraFvy; }
+ void setCameraFvy(f32 i_fvy) { mCameraFvy = i_fvy; }
+
+ const cXyz& getCameraUp() const { return mCamera.mCameraUp; }
+ const cXyz& getCameraEye() const { return mCamera.mCameraEye; }
+ const cXyz& getCameraCtr() const { return mCamera.mCameraCtr; }
+
+ void setCameraUp(const cXyz& i_up) { mCamera.mCameraUp = i_up; }
+ void setCameraEye(const cXyz& i_eye) { mCamera.mCameraEye = i_eye; }
+ void setCameraCtr(const cXyz& i_ctr) { mCamera.mCameraCtr = i_ctr; }
+
private:
/* 0x00 */ cXyz mPosition;
/* 0x0C */ u32 mParam;
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index b85b9e99f1..e768f17016 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -239,6 +239,8 @@ public:
fopAc_ac_c();
~fopAc_ac_c();
+ static void setStopStatus(u32 status) { stopStatus = status; }
+
static u32 stopStatus;
}; // Size: 0x568
diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h
index dde9de4ff4..f9ee5c3c76 100644
--- a/include/f_op/f_op_camera_mng.h
+++ b/include/f_op/f_op_camera_mng.h
@@ -27,33 +27,45 @@ public:
/* 0x248 */ dCamera_c mCamera;
};
-/* void fopCamM_SetNear(camera_class* cam, f32 near) {
- cam->mNear = near;
+inline void fopCamM_SetNear(camera_class* i_this, f32 near) {
+ i_this->mNear = near;
}
-void fopCamM_SetFar(camera_class* cam, f32 far) {
- cam->mFar = far;
+inline void fopCamM_SetFar(camera_class* i_this, f32 far) {
+ i_this->mFar = far;
}
-void fopCamM_SetFovy(camera_class* cam, f32 fovy) {
- cam->mFovy = fovy;
+inline void fopCamM_SetFovy(camera_class* i_this, f32 fovy) {
+ i_this->mFovy = fovy;
}
-void fopCamM_SetAspect(camera_class* cam, f32 aspect) {
- cam->mAspect = aspect;
+inline void fopCamM_SetAspect(camera_class* i_this, f32 aspect) {
+ i_this->mAspect = aspect;
}
-void fopCamM_SetEye(camera_class* cam, f32 x, f32 y, f32 z) {
- cam->field_0xd8.mEye.set(x, y, z);
+inline void fopCamM_SetEye(camera_class* i_this, f32 x, f32 y, f32 z) {
+ i_this->mLookat.mEye.set(x, y, z);
}
-void fopCamM_SetCenter(camera_class* cam, f32 x, f32 y, f32 z) {
- cam->field_0xd8.mCenter.set(x, y, z);
+inline void fopCamM_SetCenter(camera_class* i_this, f32 x, f32 y, f32 z) {
+ i_this->mLookat.mCenter.set(x, y, z);
}
-void fopCamM_SetBank(camera_class* cam, s16 bank) {
- cam->mBank = bank;
-} */
+inline void fopCamM_SetBank(camera_class* i_this, s16 bank) {
+ i_this->mBank = bank;
+}
+
+inline void fopCamM_SetPrm1(camera_class* i_this, int prm1) {
+ i_this->mPrm1 = prm1;
+}
+
+inline void fopCamM_SetPrm2(camera_class* i_this, int prm2) {
+ i_this->mPrm2 = prm2;
+}
+
+inline void fopCamM_SetPrm3(camera_class* i_this, int prm3) {
+ i_this->mPrm3 = prm3;
+}
inline s16 fopCamM_GetAngleX(camera_class* i_camera) {
return i_camera->mAngle.x;
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index 4f9398c51b..74b4406c7d 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -142,6 +142,14 @@ inline void mDoAud_taktModeMuteOff() {
Z2AudioMgr::getInterface()->taktModeMuteOff();
}
+inline void mDoAud_getCameraMapInfo(u32 param_0) {
+ Z2AudioMgr::getInterface()->getCameraMapInfo(param_0);
+}
+
+inline void mDoAud_setCameraGroupInfo(u8 param_0) {
+ Z2AudioMgr::getInterface()->setCameraGroupInfo(param_0);
+}
+
inline void mDoAud_mEnvse_framework() {
g_mEnvSeMgr.framework();
}
diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h
index 91827f569d..bbe9549547 100644
--- a/include/m_Do/m_Do_controller_pad.h
+++ b/include/m_Do/m_Do_controller_pad.h
@@ -52,6 +52,7 @@ public:
static f32 getStickValue(u32 pad) { return getCpadInfo(pad).mMainStickValue; }
static s16 getStickAngle(u32 pad) { return getCpadInfo(pad).mMainStickAngle; }
static s16 getStickAngle3D(u32 pad) { return getCpadInfo(pad).mMainStickAngle; }
+ static f32 getSubStickX3D(u32 pad) { return getCpadInfo(pad).mCStickPosX; }
static f32 getSubStickX(u32 pad) { return getCpadInfo(pad).mCStickPosX; }
static f32 getSubStickY(u32 pad) { return getCpadInfo(pad).mCStickPosY; }
static f32 getSubStickValue(u32 pad) { return getCpadInfo(pad).mCStickValue; }
diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h
index ed0b857d14..821d901c0c 100644
--- a/include/m_Do/m_Do_mtx.h
+++ b/include/m_Do/m_Do_mtx.h
@@ -138,6 +138,10 @@ inline void cMtx_inverse(const Mtx a, Mtx b) {
mDoMtx_inverse(a, b);
}
+inline void cMtx_concatProjView(const Mtx a, const Mtx b, Mtx c) {
+ mDoMtx_concatProjView(a, b, c);
+}
+
class mDoMtx_stack_c {
public:
mDoMtx_stack_c() {
diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h
index df319ca75d..3ff25ea8f0 100644
--- a/include/rel/d/a/d_a_horse/d_a_horse.h
+++ b/include/rel/d/a/d_a_horse/d_a_horse.h
@@ -159,6 +159,9 @@ public:
/* 80844590 */ void draw();
/* 8084478C */ ~daHorse_c();
/* 80844CB0 */ daHorse_c();
+
+ /* 80182D04 */ void getLashDashStart() const;
+
bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; }
bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return mResetStateFlg0 & flag; }
diff --git a/src/d/a/d_a_alink_hang.inc b/src/d/a/d_a_alink_hang.inc
index 5367a39c94..17eaaac7b0 100644
--- a/src/d/a/d_a_alink_hang.inc
+++ b/src/d/a/d_a_alink_hang.inc
@@ -981,14 +981,39 @@ asm void daAlink_c::checkClimbRoof(f32 param_0) {
#pragma pop
/* 800FED50-800FEEC0 0F9690 0170+00 2/2 0/0 0/0 .text checkClimbGround__9daAlink_cFP4cXyzf */
+// matches with literals
+#ifdef NONMATCHING
+int daAlink_c::checkClimbGround(cXyz* param_0, f32 param_1) {
+ f32 var_f30 = cM_ssin(shape_angle.y);
+ f32 var_f29 = cM_scos(shape_angle.y);
+
+ param_0->set(current.pos.x + (var_f30 * 4.5f), param_1 + 50.0f, current.pos.z + (var_f29 * 4.5f));
+
+ for (int i = 0; i < 3; i++) {
+ mLinkGndChk.SetPos(param_0);
+
+ f32 cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk);
+ if (cross != -1000000000.0f && dBgS_CheckBGroundPoly(mLinkGndChk) && cross >= param_1 - 50.0f) {
+ param_0->y = cross;
+ return 1;
+ }
+
+ param_0->x += var_f30 * 1.5f;
+ param_0->z += var_f29 * 1.5f;
+ }
+
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkClimbGround(cXyz* param_0, f32 param_1) {
+asm int daAlink_c::checkClimbGround(cXyz* param_0, f32 param_1) {
nofralloc
#include "asm/d/a/d_a_alink/checkClimbGround__9daAlink_cFP4cXyzf.s"
}
#pragma pop
+#endif
/* 800FEEC0-800FF28C 0F9800 03CC+00 5/5 0/0 0/0 .text checkBgClimbMove__9daAlink_cFi */
#pragma push
diff --git a/src/d/bg/d_bg_s.cpp b/src/d/bg/d_bg_s.cpp
index 38899da3d9..e7d089336a 100644
--- a/src/d/bg/d_bg_s.cpp
+++ b/src/d/bg/d_bg_s.cpp
@@ -533,7 +533,7 @@ s32 dBgS::GetRoomPathPntNo(cBgS_PolyInfo const& poly) {
}
/* 80075080-800750D0 06F9C0 0050+00 0/0 2/2 0/0 .text GetGrpSoundId__4dBgSFRC13cBgS_PolyInfo */
-u8 dBgS::GetGrpSoundId(cBgS_PolyInfo const& poly) {
+int dBgS::GetGrpSoundId(cBgS_PolyInfo const& poly) {
int bg_index = poly.GetBgIndex();
if (m_chk_element[bg_index].ChkUsed()) {
return m_chk_element[bg_index].m_bgw_base_ptr->GetGrpSoundId(poly);
diff --git a/src/d/bg/d_bg_w.cpp b/src/d/bg/d_bg_w.cpp
index 348b45d4ce..7850eb061f 100644
--- a/src/d/bg/d_bg_w.cpp
+++ b/src/d/bg/d_bg_w.cpp
@@ -2135,8 +2135,8 @@ u8 dBgW::GetPolyGrpRoomInfId(cBgS_PolyInfo const& poly) {
}
/* 8007DF58-8007DF88 078898 0030+00 1/0 1/0 0/0 .text GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo */
-u8 dBgW::GetGrpSoundId(cBgS_PolyInfo const& poly) {
- return GetGrpInf(poly) >> 11;
+int dBgW::GetGrpSoundId(cBgS_PolyInfo const& poly) {
+ return (GetGrpInf(poly) >> 11) & 0xFF;
}
/* 8007DF88-8007DFC4 0788C8 003C+00 1/0 0/0 0/0 .text
diff --git a/src/d/bg/d_bg_w_kcol.cpp b/src/d/bg/d_bg_w_kcol.cpp
index fe86fcc236..b75a761ec3 100644
--- a/src/d/bg/d_bg_w_kcol.cpp
+++ b/src/d/bg/d_bg_w_kcol.cpp
@@ -864,7 +864,7 @@ u8 dBgWKCol::GetPolyGrpRoomInfId(cBgS_PolyInfo const& poly) {
/* 80082F5C-80082F8C 07D89C 0030+00 1/0 0/0 0/0 .text GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo
*/
-u8 dBgWKCol::GetGrpSoundId(cBgS_PolyInfo const& poly) {
+int dBgWKCol::GetGrpSoundId(cBgS_PolyInfo const& poly) {
u16 poly_index = poly.GetPolyIndex();
dBgPc bgpc;
diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp
index e29abb09bc..a95b3036c2 100644
--- a/src/d/d_camera.cpp
+++ b/src/d/d_camera.cpp
@@ -4,46 +4,24 @@
//
#include "d/d_camera.h"
-#include "dol2asm.h"
+#include "SSystem/SComponent/c_math.h"
+#include "cmath.h"
+#include "d/a/d_a_alink.h"
#include "d/com/d_com_inf_game.h"
+#include "d/d_demo.h"
+#include "dol2asm.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
+#include "rel/d/a/d_a_horse/d_a_horse.h"
+#include "rel/d/a/d_a_midna/d_a_midna.h"
+#include "rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint.h"
+#include "rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.h"
+#include "rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h"
//
// Types:
//
-namespace std {
-/* 80182A3C */ void fabsf(f32);
-/* 80182D10 */ void fabs(f32);
-}; // namespace std
-
-struct daTagMwait_c {
- /* 80182D9C */ void checkEndMessage();
-};
-
-struct daTagMstop_c {
- /* 80182D64 */ void checkNoAttention() const;
-};
-
-struct daTagMhint_c {
- /* 80182D78 */ void checkNoAttention() const;
-};
-
-struct daHorse_c {
- /* 80182D04 */ void getLashDashStart() const;
- /* 80182D1C */ void checkTurnStandCamera() const;
- /* 80182D48 */ void checkJump() const;
-};
-
-struct dDemo_object_c {
- /* 80039128 */ void getActiveCamera();
-};
-
-struct dDemo_c {
- static u8 m_object[4];
-};
-
struct dBgS_CamSphChk {
/* 80165E74 */ ~dBgS_CamSphChk();
};
@@ -52,11 +30,12 @@ struct dBgS_CamSphChk {
// Forward References:
//
-extern "C" static void func_8015FA2C(f32 param_0, f32 param_1, f32 param_2);
+extern "C" static f32 func_8015FA2C(f32 param_0, f32 param_1, f32 param_2);
extern "C" static void func_8015FA4C(fopAc_ac_c* param_0);
-extern "C" static void func_8015FADC(f32 param_0, f32 param_1, f32 param_2);
-extern "C" static void func_8015FB28(cXyz* param_0, cXyz* param_1, cXyz* param_2);
-extern "C" static void func_8015FBF8(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz* param_2, f32 param_3, cSAngle param_4);
+extern "C" static bool func_8015FADC(f32 param_0, f32 param_1, f32* param_2);
+extern "C" static bool func_8015FB28(cXyz* param_0, cXyz* param_1, cXyz* param_2);
+extern "C" static void func_8015FBF8(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz* param_2,
+ f32 param_3, cSAngle param_4);
extern "C" void Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc();
extern "C" void __ct__9dCamera_cFP12camera_class();
extern "C" void func_801602C4();
@@ -143,7 +122,8 @@ extern "C" void getMsgCmdCut__9dCamera_cFl();
extern "C" void talktoCamera__9dCamera_cFl();
extern "C" void talkBasePos__9dCamera_cFP10fopAc_ac_c();
extern "C" void talkEyePos__9dCamera_cFP10fopAc_ac_c();
-extern "C" static void func_80174E50(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3, fopAc_ac_c* param_4);
+extern "C" static void func_80174E50(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2,
+ fopAc_ac_c* param_3, fopAc_ac_c* param_4);
extern "C" bool CalcSubjectAngle__9dCamera_cFPsPs();
extern "C" void SaveZoomRatio__9dCamera_cFv();
extern "C" void subjectCamera__9dCamera_cFl();
@@ -589,22 +569,46 @@ extern "C" u8 _180__7cSAngle[2 + 2 /* padding */];
extern "C" u8 _270__7cSAngle[2 + 6 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
+u32 daPy_py_c::getLastSceneMode() {
+ return dComIfGs_getLastSceneMode() & 0xF;
+}
+
//
// Declarations:
//
/* 8015FA2C-8015FA4C 15A36C 0020+00 2/2 0/0 0/0 .text limitf__22@unnamed@d_camera_cpp@Ffff */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void func_8015FA2C(f32 param_0, f32 param_1, f32 param_2) {
- nofralloc
-#include "asm/d/d_camera/func_8015FA2C.s"
+static f32 func_8015FA2C(f32 value, f32 min, f32 max) {
+ if (value > max) {
+ return max;
+ } else if (value < min) {
+ return min;
+ }
+
+ return value;
}
-#pragma pop
+
+namespace {
+inline static bool is_player(fopAc_ac_c* actor) {
+ return fopAcM_GetName(actor) == PROC_ALINK || fopAcM_GetName(actor) == PROC_ALINK;
+}
+} // namespace
/* 8015FA4C-8015FADC 15A38C 0090+00 1/1 0/0 0/0 .text
* hideActor__22@unnamed@d_camera_cpp@FP10fopAc_ac_c */
+// matches with weak order
+#ifdef NONMATCHING
+static void func_8015FA4C(fopAc_ac_c* actor) {
+ if (is_player(actor)) {
+ dComIfGp_onCameraAttentionStatus(0, 2);
+ if (((daPy_py_c*)actor)->checkHorseRide()) {
+ fopAcM_OnStatus(dComIfGp_getHorseActor(), 0x1000000);
+ }
+ } else {
+ fopAcM_OnStatus(actor, 0x1000000);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -613,28 +617,64 @@ static asm void func_8015FA4C(fopAc_ac_c* param_0) {
#include "asm/d/d_camera/func_8015FA4C.s"
}
#pragma pop
+#endif
/* 8015FADC-8015FB28 15A41C 004C+00 1/1 0/0 0/0 .text defaultRadius__22@unnamed@d_camera_cpp@FffPf
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void func_8015FADC(f32 param_0, f32 param_1, f32 param_2) {
- nofralloc
-#include "asm/d/d_camera/func_8015FADC.s"
+static bool func_8015FADC(f32 param_0, f32 param_1, f32* param_2) {
+ f32 var_f30;
+ f32 var_f31;
+
+ if (param_0 < param_1) {
+ var_f31 = param_0;
+ var_f30 = param_1;
+ } else {
+ var_f30 = param_0;
+ var_f31 = param_1;
+ }
+
+ if (*param_2 > var_f30) {
+ *param_2 = var_f30;
+ return false;
+ }
+
+ if (*param_2 < var_f31) {
+ *param_2 = var_f31;
+ return false;
+ }
+
+ return true;
}
-#pragma pop
/* 8015FB28-8015FBF8 15A468 00D0+00 1/1 0/0 0/0 .text
* posInLine2D__22@unnamed@d_camera_cpp@FP4cXyzP4cXyzP4cXyz */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void func_8015FB28(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
- nofralloc
-#include "asm/d/d_camera/func_8015FB28.s"
+static bool func_8015FB28(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
+ if (param_0->x <= param_1->x) {
+ if (param_2->x < param_0->x)
+ return false;
+ if (param_2->x > param_1->x)
+ return false;
+ } else {
+ if (param_2->x <= param_1->x)
+ return false;
+ if (param_2->x >= param_0->x)
+ return false;
+ }
+
+ if (param_0->z <= param_1->z) {
+ if (param_2->z < param_0->z)
+ return false;
+ if (param_2->z > param_1->z)
+ return false;
+ } else {
+ if (param_2->z <= param_1->z)
+ return false;
+ if (param_2->z >= param_0->z)
+ return false;
+ }
+
+ return true;
}
-#pragma pop
/* ############################################################################################## */
/* 80453690-80453698 001C90 0004+04 14/14 0/0 0/0 .sdata2 @4445 */
@@ -652,7 +692,8 @@ SECTION_SDATA2 static f64 lit_4448 = 4503601774854144.0 /* cast s32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void func_8015FBF8(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz* param_2, f32 param_3, cSAngle param_4) {
+static asm void func_8015FBF8(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz* param_2, f32 param_3,
+ cSAngle param_4) {
nofralloc
#include "asm/d/d_camera/func_8015FBF8.s"
}
@@ -660,15 +701,44 @@ static asm void func_8015FBF8(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz* pa
/* 8015FEB8-8016008C 15A7F8 01D4+00 4/4 0/0 0/0 .text Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamMapToolData::Set(s32 param_0, s32 param_1, fopAc_ac_c* param_2, u16 param_3,
- u8 param_4) {
- nofralloc
-#include "asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s"
+int dCamMapToolData::Set(s32 param_0, s32 roomNo, fopAc_ac_c* param_2, u16 param_3, u8 param_4) {
+ if ((param_3 & 0xFF) > field_0x38) {
+ return 0;
+ }
+
+ stage_camera_class* room_cam = dComIfGp_getRoomCamera(roomNo);
+ stage_arrow_class* room_arrow = dComIfGp_getRoomArrow(roomNo);
+
+ if (room_cam != NULL && param_0 >= 0 && param_0 < room_cam->field_0x0) {
+ Clr();
+ field_0x30 = param_0;
+ field_0x0 = room_cam->mEntries[field_0x30];
+ field_0x3a = (field_0x0.field_0x14 >> 0xE) & 3;
+
+ if (param_3 & 0x8000) {
+ field_0x3a |= 0x10;
+ }
+
+ if (field_0x0.field_0x14 & 0x2000) {
+ field_0x0.field_0x14 |= 0xC000;
+ } else {
+ field_0x0.field_0x14 &= ~0xC000;
+ }
+
+ field_0x2c = field_0x0.field_0x10;
+
+ if (room_arrow != NULL && field_0x2c >= 0 && field_0x2c < room_arrow->mNum) {
+ field_0x18 = room_arrow->mEntries[field_0x2c];
+ }
+
+ field_0x34 = param_2;
+ field_0x3b = param_4;
+ field_0x38 = param_3 & 0xFF;
+ return 1;
+ }
+
+ return 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80393F68-80393F68 0205C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -984,26 +1054,13 @@ SECTION_DATA static void* lit_4497[3] = {
/* 803BA25C-803BA34C 01737C 00F0+00 2/3 3/3 0/0 .data engine_tbl__9dCamera_c */
#ifdef NONMATCHING
engine_fn dCamera_c::engine_tbl[] = {
- &dCamera_c::letCamera,
- &dCamera_c::chaseCamera,
- &dCamera_c::lockonCamera,
- &dCamera_c::talktoCamera,
- &dCamera_c::subjectCamera,
- &dCamera_c::fixedPositionCamera,
- &dCamera_c::fixedFrameCamera,
- &dCamera_c::towerCamera,
- &dCamera_c::rideCamera,
- &dCamera_c::manualCamera,
- &dCamera_c::eventCamera,
- &dCamera_c::hookshotCamera,
- &dCamera_c::colosseumCamera,
- &dCamera_c::observeCamera,
- &dCamera_c::magneCamera,
- &dCamera_c::railCamera,
- &dCamera_c::paraRailCamera,
- &dCamera_c::oneSideCamera,
- &dCamera_c::test1Camera,
- &dCamera_c::test2Camera,
+ &dCamera_c::letCamera, &dCamera_c::chaseCamera, &dCamera_c::lockonCamera,
+ &dCamera_c::talktoCamera, &dCamera_c::subjectCamera, &dCamera_c::fixedPositionCamera,
+ &dCamera_c::fixedFrameCamera, &dCamera_c::towerCamera, &dCamera_c::rideCamera,
+ &dCamera_c::manualCamera, &dCamera_c::eventCamera, &dCamera_c::hookshotCamera,
+ &dCamera_c::colosseumCamera, &dCamera_c::observeCamera, &dCamera_c::magneCamera,
+ &dCamera_c::railCamera, &dCamera_c::paraRailCamera, &dCamera_c::oneSideCamera,
+ &dCamera_c::test1Camera, &dCamera_c::test2Camera,
};
#else
SECTION_DATA u8 dCamera_c::engine_tbl[240] = {
@@ -1511,10 +1568,10 @@ SECTION_DATA static void* ActionNames[34] = {
#pragma pop
/* 803BA6D8-803BA6E4 -00001 000C+00 1/1 0/0 0/0 .data l_method$17952 */
-SECTION_DATA static void* l_method[3] = {
- (void*)init_phase1__FP12camera_class,
- (void*)init_phase2__FP12camera_class,
- (void*)NULL,
+SECTION_DATA static request_of_phase_process_fn l_method[3] = {
+ (request_of_phase_process_fn)init_phase1__FP12camera_class,
+ (request_of_phase_process_fn)init_phase2__FP12camera_class,
+ (request_of_phase_process_fn)NULL,
};
/* 803BA6E4-803BA6F8 -00001 0014+00 2/0 0/0 0/0 .data method */
@@ -1603,7 +1660,36 @@ SECTION_DATA extern void* __vt__14d2DBSplinePath[3 + 4 /* padding */] = {
NULL,
};
+namespace {
+inline static int get_camera_id(camera_class* i_camera) {
+ return fopCamM_GetParam(i_camera);
+}
+
+inline static int get_controller_id(camera_class* i_camera) {
+ return dComIfGp_getCameraPlayer1ID(get_camera_id(i_camera));
+}
+
+inline static fopAc_ac_c* get_player_actor(camera_class* i_camera) {
+ return dComIfGp_getPlayer(dComIfGp_getCameraPlayer1ID(get_camera_id(i_camera)));
+}
+
+inline static dDlst_window_c* get_window(int param_0) {
+ return dComIfGp_getWindow(dComIfGp_getCameraWinID(param_0));
+}
+
+inline static dDlst_window_c* get_window(camera_class* i_camera) {
+ return dComIfGp_getWindow(dComIfGp_getCameraWinID(get_camera_id(i_camera)));
+}
+} // namespace
+
/* 8016008C-801602C4 15A9CC 0238+00 1/1 0/0 0/0 .text __ct__9dCamera_cFP12camera_class */
+// matches with weak order
+#ifdef NONMATCHING
+dCamera_c::dCamera_c(camera_class* i_camera) : mCamParam(0) {
+ initialize(i_camera, get_player_actor(i_camera), get_camera_id(i_camera),
+ get_controller_id(i_camera));
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1612,6 +1698,7 @@ asm dCamera_c::dCamera_c(camera_class* param_0) {
#include "asm/d/d_camera/__ct__9dCamera_cFP12camera_class.s"
}
#pragma pop
+#endif
/* 801602C4-80160300 15AC04 003C+00 2/2 0/0 0/0 .text
* __dt__Q29dCamera_c23@class$3665d_camera_cppFv */
@@ -1631,6 +1718,18 @@ void func_80160300() {
}
/* 80160304-80160470 15AC44 016C+00 1/1 0/0 0/0 .text __dt__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+dCamera_c::~dCamera_c() {
+ if (!daPy_py_c::checkPeepEndSceneChange()) {
+ dComIfGs_getTurnRestart().setCameraCtr(mCenter);
+ dComIfGs_getTurnRestart().setCameraEye(mEye);
+ dComIfGs_getTurnRestart().setCameraUp(mUp);
+ dComIfGs_getTurnRestart().setCameraFvy(mFovY);
+ fopAc_ac_c::setStopStatus(0);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1639,6 +1738,7 @@ asm dCamera_c::~dCamera_c() {
#include "asm/d/d_camera/__dt__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8042C8F8-8042C9A0 059618 00A8+00 12/12 0/0 0/0 .bss specialType__22@unnamed@d_camera_cpp@ */
@@ -1676,8 +1776,320 @@ SECTION_SDATA2 static f32 lit_5662 = 60.0f;
/* 804536BC-804536C0 001CBC 0004+00 2/2 0/0 0/0 .sdata2 @5663 */
SECTION_SDATA2 static f32 lit_5663 = 85.0f;
+namespace {
+inline static bool check_owner_action(u32 param_0, u32 param_1) {
+ return dComIfGp_checkPlayerStatus0(param_0, param_1);
+}
+
+inline static void setComStat(u32 param_0) {
+ dComIfGp_onCameraAttentionStatus(0, param_0);
+}
+
+inline static bool getComStat(u32 param_0) {
+ return dComIfGp_getCameraAttentionStatus(0) & param_0;
+}
+
+inline static void clrComStat(u32 param_0) {
+ dComIfGp_offCameraAttentionStatus(0, param_0);
+}
+
+inline static void setComZoomScale(f32 param_0) {
+ dComIfGp_setCameraZoomScale(0, param_0);
+}
+} // namespace
+
/* 80160470-801614AC 15ADB0 103C+00 1/1 0/0 0/0 .text
* initialize__9dCamera_cFP12camera_classP10fopAc_ac_cUlUl */
+// matches with literals
+#ifdef NONMATCHING
+void dCamera_c::initialize(camera_class* i_camera, fopAc_ac_c* i_player, u32 i_cameraID,
+ u32 i_padID) {
+ char* type_data =
+ (char*)dComIfG_getObjectRes(dComIfGp_getCameraParamFileName(0), "camtype.dat");
+ mCamTypeData = (dCamera_type_data*)(type_data + 8);
+ mCamTypeNum = *(int*)(type_data + 4);
+
+ field_0x0 = i_camera;
+ field_0x20 = 1;
+ field_0x21 = 0;
+ field_0x24 = 0;
+ mpPlayerActor = i_player;
+ mCameraID = i_cameraID;
+ mPadID = i_padID;
+
+ initMonitor();
+ initPad();
+ mFocusLine.Init();
+
+ mRoomNo = dComIfGp_roomControl_getStayNo();
+ const char* stage_name = dComIfGp_getStartStageName();
+ if (strcmp(stage_name, "D_MN01A") == 0) {
+ data_80451020 = 0x68;
+ } else if (strcmp(stage_name, "D_MN10A") == 0) {
+ data_80451020 = 0x69;
+ } else if (strcmp(stage_name, "D_MN11A") == 0) {
+ data_80451020 = 0x6A;
+ } else if (strcmp(stage_name, "D_MN04A") == 0) {
+ data_80451020 = 0x66;
+ } else if (strcmp(stage_name, "D_MN05A") == 0) {
+ data_80451020 = 0x65;
+ } else if (strcmp(stage_name, "D_MN07A") == 0) {
+ data_80451020 = 0x6B;
+ }
+
+ data_8042C8F8[0] = GetCameraTypeFromCameraName("FieldS");
+ data_8042C8F8[1] = GetCameraTypeFromCameraName("Event");
+ data_8042C8F8[2] = GetCameraTypeFromCameraName("Water");
+ data_8042C8F8[3] = GetCameraTypeFromCameraName("Scope");
+ data_8042C8F8[13] = GetCameraTypeFromCameraName("WaterSurf");
+ data_8042C8F8[5] = GetCameraTypeFromCameraName("HorseT");
+ data_8042C8F8[6] = GetCameraTypeFromCameraName("Board");
+ data_8042C8F8[4] = GetCameraTypeFromCameraName("Canoe");
+ data_8042C8F8[8] = GetCameraTypeFromCameraName("Keep");
+ data_8042C8F8[9] = GetCameraTypeFromCameraName("Rodeo");
+ data_8042C8F8[10] = GetCameraTypeFromCameraName("MagneBoots");
+ data_8042C8F8[12] = GetCameraTypeFromCameraName("MagneRoof");
+ data_8042C8F8[11] = GetCameraTypeFromCameraName("MagneWall");
+ data_8042C8F8[32] = GetCameraTypeFromCameraName("CoccoJump");
+ data_8042C8F8[31] = GetCameraTypeFromCameraName("Boar");
+ data_8042C8F8[30] = GetCameraTypeFromCameraName("GoatBattle");
+ data_8042C8F8[29] = GetCameraTypeFromCameraName("GoronJump");
+ data_8042C8F8[28] = GetCameraTypeFromCameraName("Spinner");
+ data_8042C8F8[25] = GetCameraTypeFromCameraName("HookWall");
+ data_8042C8F8[26] = GetCameraTypeFromCameraName("HookRoof");
+ data_8042C8F8[27] = GetCameraTypeFromCameraName("HookActor");
+ data_8042C8F8[33] = GetCameraTypeFromCameraName("RoofHung");
+ data_8042C8F8[14] = GetCameraTypeFromCameraName("Rotary");
+ data_8042C8F8[15] = GetCameraTypeFromCameraName("Street");
+ data_8042C8F8[16] = GetCameraTypeFromCameraName("StreetN");
+ data_8042C8F8[17] = GetCameraTypeFromCameraName("StreetP");
+ data_8042C8F8[18] = GetCameraTypeFromCameraName("Rampart2");
+ data_8042C8F8[19] = GetCameraTypeFromCameraName("Allay");
+ data_8042C8F8[20] = GetCameraTypeFromCameraName("AllayR");
+ data_8042C8F8[21] = GetCameraTypeFromCameraName("AllayR2");
+ data_8042C8F8[22] = GetCameraTypeFromCameraName("AllayS");
+ data_8042C8F8[23] = GetCameraTypeFromCameraName("AllayN");
+ data_8042C8F8[24] = GetCameraTypeFromCameraName("AllayR3");
+ data_8042C8F8[34] = GetCameraTypeFromCameraName("CopyRodHall");
+ data_8042C8F8[35] = GetCameraTypeFromCameraName("MidnaTag");
+ data_8042C8F8[36] = GetCameraTypeFromCameraName("WarpObj");
+ data_8042C8F8[37] = GetCameraTypeFromCameraName("LV9GZeldaTri");
+ data_8042C8F8[39] = GetCameraTypeFromCameraName("LV4BOSSSPJP");
+ data_8042C8F8[40] = GetCameraTypeFromCameraName("LV7BOSS");
+ data_8042C8F8[38] = GetCameraTypeFromCameraName("TeppeiHook");
+
+ mCurType = mMapToolType = data_8042C8F8[0];
+
+ data_8042C8F8[41] = GetCameraTypeFromCameraName("Peep");
+ field_0x698 = 0xFF;
+ field_0x69c = 0;
+ field_0x190 = daPy_py_c::i_checkNowWolf() != 0;
+ mNextMode = 0;
+ field_0x680 = 0;
+ field_0x1ac = 11;
+ field_0x1b4 = 0.0f;
+ mEventFlags = 0;
+ field_0x1b0 = cSAngle::_0;
+ field_0xa8 = 0;
+ field_0xac = cM_rndFX(0x7FFF);
+ field_0x84 = 1.0f;
+ field_0x91c = 0.0f;
+
+ mTrimHeight = 0.0f;
+ mTrimSize = 0;
+ mTrimTypeForce = -1;
+ field_0x940 = 0;
+ field_0x944 = 0;
+ field_0x950 = field_0x940;
+
+ mBG.field_0x5c.field_0x0 = 0;
+ mBG.field_0x0.field_0x0 = 0;
+ mBG.field_0xc0.field_0x3c = 0xFF;
+ mBG.field_0x5c.field_0x58 = -1000000000.0f;
+ mBG.field_0x0.field_0x58 = -1000000000.0f;
+ mBG.field_0x0.field_0x4.OffNormalGrp();
+ mBG.field_0x0.field_0x4.OnWaterGrp();
+ mBG.field_0xc0.field_0x1 = 0;
+ mBG.field_0xc0.field_0x0 = 0;
+ mBG.field_0xc0.field_0x10 = cXyz::Zero;
+ mBG.field_0xc0.field_0x4 = mBG.field_0xc0.field_0x10;
+ mBG.field_0xc0.field_0x20 = 0;
+ mBG.field_0xc0.field_0x1e = cSAngle::_0;
+ mBG.field_0xc0.field_0x1c = mBG.field_0xc0.field_0x1e;
+ mBG.field_0xc0.field_0x34 = 0;
+ mBG.field_0x108.field_0x0 = 0;
+ mBG.field_0x108.field_0x4 = 0.0f;
+ mBG.field_0xc0.field_0x38 = -1000000000.0f;
+ mBG.field_0xc0.field_0x40 = 0xFF;
+
+ field_0x934 = mCamSetup.mBGChk.WallUpDistance();
+
+ mMapToolType = 0xFF;
+ field_0x7ac.Clr();
+ field_0x7e8.Clr();
+ field_0x824.Clr();
+ field_0x860.Clr();
+ field_0x89c.Clr();
+ field_0x8d8.Clr();
+ setStageMapToolData();
+
+ if (field_0x7e8.field_0x30 != 0xFF) {
+ mMapToolType = GetCameraTypeFromToolData(&field_0x7e8.field_0x0);
+ }
+
+ dStage_stageDt_c* stage_dt = dComIfGp_getStage();
+ stage_stag_info_class* stag_info;
+ if (stage_dt != NULL) {
+ stag_info = stage_dt->getStagInfo();
+ } else {
+ stag_info = NULL;
+ }
+
+ if (stag_info != NULL && mMapToolType == 0xFF) {
+ switch (dStage_stagInfo_GetSTType(stag_info)) {
+ case ST_DUNGEON:
+ mMapToolType = GetCameraTypeFromCameraName("DungeonS");
+ break;
+ case ST_ROOM:
+ mMapToolType = GetCameraTypeFromCameraName("Room");
+ break;
+ default:
+ mMapToolType = GetCameraTypeFromCameraName("FieldS");
+ break;
+ }
+ }
+
+ int sp108 = 0xFF;
+ int sp10C = dComIfGp_roomControl_getStayNo();
+
+ dStage_roomStatus_c* room_dt = dComIfGp_roomControl_getStatusRoomDt(sp10C);
+ if (room_dt != NULL) {
+ dStage_FileList_dt_c* filelist = room_dt->mRoomDt.getFileListInfo();
+ if (filelist != NULL) {
+ sp108 = dStage_FileList_dt_GetDefaultCamera(filelist);
+ }
+ }
+
+ setRoomMapToolData(&field_0x824, sp108, sp10C);
+ checkGroundInfo();
+ setMapToolData();
+
+ if (field_0x7ac.field_0x30 != 0xFF) {
+ mCurType = GetCameraTypeFromToolData(&field_0x7ac.field_0x0);
+ } else {
+ if (check_owner_action(mPadID, 0x8000000)) {
+ mCurType = GetCameraTypeFromCameraName("Cave");
+ } else {
+ mCurType = mMapToolType;
+ }
+ }
+
+ mCamStyle = mCamTypeData[mCurType].field_0x18[field_0x190][mNextMode];
+ field_0x198 = 0xFFFFFFFF;
+ mEventData.field_0x14 = -1;
+ mEventData.field_0x18 = -1;
+ mEventData.field_0x4 = -1;
+ mEventData.field_0xc = -1;
+ mEventData.field_0x0 = 1;
+
+ OS_REPORT("camera: init: type %d mode %d style %d\n", mCurType, mCurMode, mCamStyle);
+
+ mCamParam.Change(mCamStyle);
+ if (daPy_py_c::checkPeepEndSceneChange() || dComIfGp_getStartStagePoint() == -2 ||
+ dComIfGp_getStartStagePoint() == -3)
+ {
+ mCenter = field_0x5c.field_0x8 = dComIfGs_getTurnRestart().getCameraCtr();
+ mEye = field_0x5c.field_0x14 = dComIfGs_getTurnRestart().getCameraEye();
+
+ field_0x5c.field_0x0.Val(mEye - mCenter);
+ field_0x28 = field_0x5c.field_0x0;
+ field_0x8c = field_0x5c.field_0x0.U().Inv();
+
+ mUp = dComIfGs_getTurnRestart().getCameraUp();
+ mBank = cSAngle::_0;
+ field_0x5c.field_0x20 = mBank;
+
+ field_0x80 = mFovY = dComIfGs_getTurnRestart().getCameraFvy();
+ } else if (daAlink_getAlinkActorClass()->checkStartFall()) {
+ cXyz attn_pos = attentionPos(mpPlayerActor);
+ if (mCamParam.Algorythmn() == 1) {
+ attn_pos.y += -20.0f;
+ }
+
+ cSGlobe spE8(0.0f, cSAngle((s16)0), directionOf(mpPlayerActor));
+ mCenter = field_0x5c.field_0x8 = attn_pos + spE8.Xyz();
+
+ cXyz center = dComIfGs_getTurnRestart().getCameraCtr();
+ cXyz eye = dComIfGs_getTurnRestart().getCameraEye();
+ field_0x5c.field_0x0.Val(eye - center);
+ field_0x8c = field_0x5c.field_0x0.U().Inv();
+
+ mEye = field_0x5c.field_0x14 = field_0x5c.field_0x8 + field_0x5c.field_0x0.Xyz();
+
+ mUp = dComIfGs_getTurnRestart().getCameraUp();
+ mBank = cSAngle::_0;
+ field_0x5c.field_0x20 = mBank;
+ field_0x80 = mFovY = dComIfGs_getTurnRestart().getCameraFvy();
+ } else {
+ cXyz attn_pos = attentionPos(mpPlayerActor);
+ if (mCamParam.Algorythmn() == 1) {
+ attn_pos.y += -20.0f;
+ }
+
+ cSGlobe spE8(0.0f, cSAngle((s16)0), directionOf(mpPlayerActor));
+ mCenter = field_0x5c.field_0x8 = attn_pos + spE8.Xyz();
+
+ field_0x5c.field_0x0.Val(300.0f, 0, directionOf(mpPlayerActor).Inv());
+
+ mEye = field_0x5c.field_0x14 = field_0x5c.field_0x8 + field_0x5c.field_0x0.Xyz();
+ field_0x28 = field_0x5c.field_0x0;
+ field_0x8c = field_0x5c.field_0x0.U().Inv();
+
+ mFovY = 60.0f;
+ field_0x80 = 60.0f;
+ mUp.set(0.0f, 1.0f, 0.0f);
+ mBank = cSAngle::_0;
+ field_0x5c.field_0x20 = mBank;
+ }
+
+ mFakeAngleSys.field_0x0 = 0;
+ field_0x674 = 0xFF;
+ field_0x670 = 0xFF;
+ field_0x668 = 0;
+ field_0x66c = 0;
+ field_0x678 = 1;
+ field_0x73c = 0.0f;
+ field_0x738 = 85.0f;
+
+ field_0x610 = 0;
+ field_0x611 = 0;
+
+ clearInfo(&field_0xb0, 0);
+ clearInfo(&field_0xd0[0], 0);
+ clearInfo(&field_0xd0[1], 0);
+
+ clearInfo(&field_0x110.field_0x8, 0);
+ field_0x110.field_0x4 = 0;
+ field_0x110.field_0x28 = cXyz::Zero;
+ field_0x110.field_0x0 = -1;
+
+ field_0x93c = 0;
+ field_0x948 = 0;
+ field_0x94c = cSAngle::_0;
+ field_0x740.field_0x18 = mUp;
+ field_0x740.field_0xc = mEye;
+ field_0x740.field_0x0 = mCenter;
+
+ setFlag(0x1000);
+
+ daAlink_c* player = daAlink_getAlinkActorClass();
+ daMidna_c* midna = daPy_py_c::getMidnaActor();
+
+ field_0x194 = player->checkMidnaRide() && !midna->checkNoDraw();
+ field_0x958 = 0;
+ field_0x95c = cXyz::Zero;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1687,66 +2099,132 @@ asm void dCamera_c::initialize(camera_class* param_0, fopAc_ac_c* param_1, u32 p
#include "asm/d/d_camera/initialize__9dCamera_cFP12camera_classP10fopAc_ac_cUlUl.s"
}
#pragma pop
+#endif
/* 801614AC-801614C4 15BDEC 0018+00 0/0 1/1 106/106 .text Start__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::Start() {
- nofralloc
-#include "asm/d/d_camera/Start__9dCamera_cFv.s"
+void dCamera_c::Start() {
+ if (mCamSetup.CheckFlag(0x8000) && field_0x24 != 0 && field_0x24 != 2) {
+ OS_REPORT("camera: start\n");
+ }
+
+ if (field_0x24 != 0) {
+ field_0x24 = 2;
+ }
}
-#pragma pop
/* 801614C4-801614D0 15BE04 000C+00 0/0 1/1 0/0 .text QuickStart__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::QuickStart() {
- nofralloc
-#include "asm/d/d_camera/QuickStart__9dCamera_cFv.s"
+void dCamera_c::QuickStart() {
+ if (mCamSetup.CheckFlag(0x8000) && field_0x24 != 0) {
+ OS_REPORT("camera: quick start\n");
+ }
+
+ field_0x24 = 0;
}
-#pragma pop
/* 801614D0-801614E8 15BE10 0018+00 0/0 2/2 98/98 .text Stop__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::Stop() {
- nofralloc
-#include "asm/d/d_camera/Stop__9dCamera_cFv.s"
+void dCamera_c::Stop() {
+ clrFlag(0x200000);
+
+ if (mCamSetup.CheckFlag(0x8000) && field_0x24 != 3) {
+ OS_REPORT("%06d: camera: stop \n", field_0xa8);
+ }
+
+ field_0x24 = 3;
}
-#pragma pop
/* 801614E8-801614F4 15BE28 000C+00 0/0 2/2 0/0 .text Stay__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::Stay() {
- nofralloc
-#include "asm/d/d_camera/Stay__9dCamera_cFv.s"
+void dCamera_c::Stay() {
+ field_0x24 = 1;
}
-#pragma pop
/* 801614F4-80161550 15BE34 005C+00 2/2 4/4 0/0 .text ChangeModeOK__9dCamera_cFl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm u8 dCamera_c::ChangeModeOK(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s"
+bool dCamera_c::ChangeModeOK(s32 param_0) {
+ if (dComIfGp_evmng_cameraPlay() || chkFlag(0x20000000)) {
+ return 0;
+ }
+
+ return !(mCamTypeData[mCurType].field_0x18[field_0x190][param_0] < 0);
}
-#pragma pop
/* 80161550-801617B0 15BE90 0260+00 1/1 0/0 0/0 .text initPad__9dCamera_cFv */
+// weird stuff with getTrig/Hold. wrong types???
+#ifdef NONMATCHING
+void dCamera_c::initPad() {
+ if (chkFlag(0x1000000)) {
+ mPadInfo.mMainStick.mLastPosX = 0.0f;
+ mPadInfo.mMainStick.mLastPosY = 0.0f;
+ mPadInfo.mMainStick.mLastValue = 0.0f;
+ } else {
+ mPadInfo.mMainStick.mLastPosX = mDoCPd_c::getStickX3D(mPadID);
+ mPadInfo.mMainStick.mLastPosY = mDoCPd_c::getStickY(mPadID);
+ mPadInfo.mMainStick.mLastValue = mDoCPd_c::getStickValue(mPadID);
+ }
+
+ mPadInfo.mMainStick.mPosXDelta = 0.0f;
+ mPadInfo.mMainStick.mPosYDelta = 0.0f;
+ mPadInfo.mMainStick.mValueDelta = 0.0f;
+ mPadInfo.mMainStick.field_0x18 = cSAngle::_0;
+
+ if (chkFlag(0x800000)) {
+ mPadInfo.mMainStick.mLastPosX = 0.0f;
+ mPadInfo.mMainStick.mLastPosY = 0.0f;
+ mPadInfo.mMainStick.mLastValue = 0.0f;
+ } else {
+ mPadInfo.mCStick.mLastPosX = mDoCPd_c::getSubStickX(mPadID);
+ mPadInfo.mCStick.mLastPosY = mDoCPd_c::getSubStickY(mPadID);
+ mPadInfo.mCStick.mLastValue = mDoCPd_c::getSubStickValue(mPadID);
+ }
+
+ mPadInfo.mCStick.mPosXDelta = 0.0f;
+ mPadInfo.mCStick.mPosYDelta = 0.0f;
+ mPadInfo.mCStick.mValueDelta = 0.0f;
+ mPadInfo.mCStick.field_0x18 = cSAngle::_0;
+
+ field_0x1fc = 0;
+ field_0x1f8 = 0;
+ field_0x1f4 = 0;
+
+ mTriggerLeftLast = mDoCPd_c::getAnalogL(mPadID);
+ mTriggerLeftDelta = 0.0f;
+ field_0x208 = 0;
+ field_0x209 = 0;
+ field_0x20a = 0;
+ field_0x20b = 0;
+
+ mTriggerRightLast = mDoCPd_c::getAnalogR(mPadID);
+ mTriggerRightDelta = 0.0f;
+ field_0x214 = 0;
+ field_0x215 = 0;
+ field_0x216 = 0;
+ field_0x217 = 0;
+
+ mHoldX = mDoCPd_c::getHoldX(mPadID) != 0;
+ mTrigX = mDoCPd_c::getTrigX(mPadID) != 0;
+
+ mHoldY = mDoCPd_c::getHoldY(mPadID) != 0;
+ mTrigY = mDoCPd_c::getTrigY(mPadID) != 0;
+
+ mHoldY = mDoCPd_c::getHoldY(mPadID) != 0;
+ mTrigY = mDoCPd_c::getTrigY(mPadID) != 0;
+
+ mHoldZ = mDoCPd_c::getHoldZ(mPadID);
+ mTrigZ = mDoCPd_c::getTrigZ(mPadID) != 0;
+ field_0x21f = 0;
+
+ mHoldB = mDoCPd_c::getHoldB(mPadID) != 0;
+ mTrigB = mDoCPd_c::getTrigB(mPadID) != 0;
+ field_0x223 = 0;
+ field_0x224 = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::initPad() {
- nofralloc
+asm void dCamera_c::initPad(){nofralloc
#include "asm/d/d_camera/initPad__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 804536C0-804536C8 001CC0 0004+04 1/1 0/0 0/0 .sdata2 @6093 */
@@ -1757,6 +2235,171 @@ SECTION_SDATA2 static f32 lit_6093[1 + 1 /* padding */] = {
};
/* 801617B0-80161D84 15C0F0 05D4+00 1/1 0/0 0/0 .text updatePad__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+void dCamera_c::updatePad() {
+ dComIfGp_getAttention();
+ int var_r30 = mCamParam.Algorythmn(mCamStyle);
+
+ f32 var_f31;
+ f32 var_f30;
+ f32 var_f29;
+
+ if (chkFlag(0x1000000)) {
+ var_f31 = 0.0f;
+ var_f30 = 0.0f;
+ var_f29 = 0.0f;
+ } else {
+ var_f31 = mDoCPd_c::getStickX3D(mPadID);
+ var_f30 = mDoCPd_c::getStickY(mPadID);
+ var_f29 = mDoCPd_c::getStickValue(mPadID);
+ }
+
+ mPadInfo.mMainStick.mPosXDelta = var_f31 - mPadInfo.mMainStick.mLastPosX;
+ mPadInfo.mMainStick.mPosYDelta = var_f30 - mPadInfo.mMainStick.mLastPosY;
+ mPadInfo.mMainStick.mValueDelta = var_f29 - mPadInfo.mMainStick.mLastValue;
+ mPadInfo.mMainStick.mLastPosX = var_f31;
+ mPadInfo.mMainStick.mLastPosY = var_f30;
+ mPadInfo.mMainStick.mLastValue = var_f29;
+ mPadInfo.mMainStick.field_0x18.Val(mDoCPd_c::getStickAngle3D(mPadID));
+
+ if (chkFlag(0x800000)) {
+ var_f31 = 0.0f;
+ var_f30 = 0.0f;
+ var_f29 = 0.0f;
+ } else {
+ var_f31 = mDoCPd_c::getSubStickX3D(mPadID);
+ var_f30 = mDoCPd_c::getSubStickY(mPadID);
+ var_f29 = mDoCPd_c::getSubStickValue(mPadID);
+ }
+
+ mPadInfo.mCStick.mPosXDelta = var_f31 - mPadInfo.mCStick.mLastPosX;
+ mPadInfo.mCStick.mPosYDelta = var_f30 - mPadInfo.mCStick.mLastPosY;
+ mPadInfo.mCStick.mValueDelta = var_f29 - mPadInfo.mCStick.mLastValue;
+ mPadInfo.mCStick.mLastPosX = var_f31;
+ mPadInfo.mCStick.mLastPosY = var_f30;
+ mPadInfo.mCStick.mLastValue = var_f29;
+ mPadInfo.mCStick.field_0x18.Val(mDoCPd_c::getSubStickAngle(mPadID));
+
+ f32 analog_l = mDoCPd_c::getAnalogL(mPadID);
+ mTriggerLeftDelta = mTriggerLeftLast - analog_l;
+ mTriggerLeftLast = analog_l;
+ field_0x208 = mDoCPd_c::getHoldLockL(mPadID) != 0;
+ field_0x209 = mDoCPd_c::getTrigLockL(mPadID) != 0;
+
+ if (mTriggerLeftLast > mCamSetup.ManualEndVal()) {
+ if (field_0x20a == 0) {
+ field_0x20b = 1;
+ } else {
+ field_0x20b = 0;
+ }
+
+ field_0x20a = 1;
+ } else {
+ field_0x20b = 0;
+ field_0x20a = 0;
+ }
+
+ f32 analog_r = mDoCPd_c::getAnalogR(mPadID);
+ mTriggerRightDelta = mTriggerRightLast - analog_r;
+ mTriggerRightLast = analog_r;
+ field_0x214 = mDoCPd_c::getHoldLockR(mPadID) != 0;
+ field_0x215 = mDoCPd_c::getTrigLockR(mPadID) != 0;
+
+ if (mTriggerRightLast > mCamSetup.ManualEndVal()) {
+ if (field_0x216 == 0) {
+ field_0x217 = 1;
+ } else {
+ field_0x217 = 0;
+ }
+
+ field_0x216 = 1;
+ } else {
+ field_0x217 = 0;
+ field_0x216 = 0;
+ }
+
+ mHoldX = mDoCPd_c::getHoldX(mPadID) != 0;
+ mTrigX = mDoCPd_c::getTrigX(mPadID) != 0;
+ mHoldY = mDoCPd_c::getHoldY(mPadID) != 0;
+ mTrigY = mDoCPd_c::getTrigY(mPadID) != 0;
+ mHoldZ = mDoCPd_c::getHoldZ(mPadID) != 0;
+ mTrigZ = mDoCPd_c::getTrigZ(mPadID) != 0;
+ mHoldB = mDoCPd_c::getHoldB(mPadID) != 0;
+ mTrigB = mDoCPd_c::getTrigB(mPadID) != 0;
+
+ bool sp6B = true;
+ bool sp6C = true;
+ int sp68;
+ if (mCamTypeData[mCurType].field_0x18[field_0x190][0] > 0) {
+ sp68 = field_0x190;
+ } else {
+ sp68 = 0;
+ }
+
+ if (mCamTypeData[mCurType].field_0x18[sp68][4] < 0) {
+ sp6B = false;
+ if (field_0x940 == -1) {
+ field_0x940 = 0;
+ }
+ }
+
+ if ((var_r30 != 1 && var_r30 != 8 && var_r30 != 7) || mCamParam.Flag(mCamStyle, 0x80)) {
+ sp6C = false;
+ if (field_0x940 == 1) {
+ field_0x940 = 0;
+ }
+ }
+
+ if (mNextMode == 0 || mNextMode == 4) {
+ if (check_owner_action(mPadID, 0x12000)) {
+ field_0x940 = -1;
+ } else if (field_0x940 == -1) {
+ field_0x940 = 0;
+ }
+
+ if (mPadInfo.mCStick.mLastPosY < -mCamSetup.mCStick.SwTHH()) {
+ if (field_0x1f4 != -1) {
+ if (field_0x940 == -1 && mNextMode == 4) {
+ field_0x940 = 0;
+ setComStat(0x2000);
+ } else if (field_0x940 == 0 && sp6C) {
+ field_0x940 = 1;
+ }
+ }
+
+ field_0x1f4 = -1;
+ } else if (mPadInfo.mCStick.mLastPosY > mCamSetup.mCStick.SwTHH()) {
+ if (field_0x1f4 != 1) {
+ if (field_0x940 == 0 && sp6B) {
+ setComStat(0x1000);
+ } else if (field_0x940 == 1) {
+ field_0x940 = 0;
+ }
+ }
+
+ field_0x1f4 = 1;
+ } else {
+ field_0x1f4 = 0;
+ }
+
+ if (field_0x1f4 != 0) {
+ field_0x1f8++;
+ } else {
+ field_0x1f8 = 0;
+ }
+ }
+
+ field_0x223 = 0;
+ field_0x224 = 0;
+
+ if (mDoCPd_c::getStickValue(mPadID) > 0.001f || mDoCPd_c::getSubStickValue(mPadID) > 0.001f ||
+ mDoCPd_c::getHold(mPadID) != 0)
+ {
+ field_0x224 = 1;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1765,16 +2408,34 @@ asm void dCamera_c::updatePad() {
#include "asm/d/d_camera/updatePad__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* 80161D84-80161E34 15C6C4 00B0+00 1/1 0/0 0/0 .text initMonitor__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+void dCamera_c::initMonitor() {
+ if (mpPlayerActor != NULL) {
+ mMonitor.field_0x0 = positionOf(mpPlayerActor);
+ } else {
+ mMonitor.field_0x0 = cXyz::Zero;
+ }
+
+ field_0x2c0 = 0.0f;
+ mMonitor.field_0x10 = 0.0f;
+ mMonitor.field_0xc = 0.0f;
+ field_0x2c4 = 0;
+ field_0x2c8 = 0.0f;
+ mMonitor.field_0x14 = cXyz::Zero;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::initMonitor() {
- nofralloc
+asm void dCamera_c::initMonitor(){nofralloc
#include "asm/d/d_camera/initMonitor__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 804536C8-804536D0 001CC8 0008+00 7/7 0/0 0/0 .sdata2 @6177 */
@@ -1792,6 +2453,39 @@ SECTION_SDATA2 static u8 lit_6179[8] = {
SECTION_SDATA2 static f32 lit_6180 = 1.0f / 100.0f;
/* 80161E34-80162088 15C774 0254+00 1/1 0/0 0/0 .text updateMonitor__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+void dCamera_c::updateMonitor() {
+ if (mpPlayerActor != NULL) {
+ cXyz sp24 = positionOf(mpPlayerActor);
+ mMonitor.field_0x14 = sp24 - mMonitor.field_0x0;
+
+ if (mBG.field_0xc0.field_0x1) {
+ dComIfG_Bgsp().MoveBgMatrixCrrPos(mBG.field_0x5c.field_0x4, true, &mMonitor.field_0x0, NULL, NULL);
+ }
+
+ f32 var_f31;
+ if (chkFlag(0x10000)) {
+ var_f31 = cXyz(sp24 - mMonitor.field_0x0).abs();
+ } else {
+ var_f31 = dCamMath::xyzHorizontalDistance(sp24, mMonitor.field_0x0);
+ }
+
+ field_0x2c0 = var_f31 - mMonitor.field_0xc;
+ mMonitor.field_0x10 += (var_f31 - mMonitor.field_0x10) * 0.01f;
+ mMonitor.field_0xc = var_f31;
+ mMonitor.field_0x0 = sp24;
+
+ if (!push_any_key()) {
+ field_0x2c4++;
+ } else {
+ field_0x2c4 = 0;
+ }
+
+ field_0x2c8 = field_0x28.R() - field_0x2c8;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1800,6 +2494,7 @@ asm void dCamera_c::updateMonitor() {
#include "asm/d/d_camera/updateMonitor__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* 80162088-801622B0 15C9C8 0228+00 1/1 0/0 0/0 .text checkForceLockTarget__9dCamera_cFv
*/
@@ -1814,7 +2509,8 @@ asm void dCamera_c::checkForceLockTarget() {
/* 801622B0-801622B4 15CBF0 0004+00 1/1 0/0 0/0 .text infoReport__9dCamera_cFv */
void dCamera_c::infoReport() {
- /* empty function */
+#if DEBUG
+#endif
}
/* ############################################################################################## */
@@ -1838,57 +2534,83 @@ asm void dCamera_c::Run() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::NotRun() {
- nofralloc
+asm void dCamera_c::NotRun(){nofralloc
#include "asm/d/d_camera/NotRun__9dCamera_cFv.s"
}
#pragma pop
/* 80162FB8-80162FD4 15D8F8 001C+00 1/1 0/0 0/0 .text V__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::V() {
- nofralloc
-#include "asm/d/d_camera/V__9dCamera_cFv.s"
+s16 dCamera_c::V() {
+ if (chkFlag(0x10)) {
+ return field_0x740.field_0x24.V();
+ } else {
+ return field_0x28.V();
+ }
}
-#pragma pop
/* 80162FD4-8016300C 15D914 0038+00 1/1 0/0 0/0 .text U__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::U() {
- nofralloc
-#include "asm/d/d_camera/U__9dCamera_cFv.s"
+s16 dCamera_c::U() {
+ if (chkFlag(0x10)) {
+ return field_0x740.field_0x24.U();
+ } else {
+ return field_0x28.U().Inv();
+ }
}
-#pragma pop
/* 8016300C-80163028 15D94C 001C+00 1/1 1/1 135/135 .text SetTrimSize__9dCamera_cFl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::SetTrimSize(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/SetTrimSize__9dCamera_cFl.s"
+bool dCamera_c::SetTrimSize(s32 size) {
+ bool rt = mTrimSize != size;
+ mTrimSize = size;
+ return rt;
}
-#pragma pop
/* 80163028-80163034 15D968 000C+00 1/1 2/2 4/4 .text SetTrimTypeForce__9dCamera_cFl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::SetTrimTypeForce(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s"
+bool dCamera_c::SetTrimTypeForce(s32 param_0) {
+ mTrimTypeForce = param_0;
+ return 1;
}
-#pragma pop
/* ############################################################################################## */
/* 804536EC-804536F0 001CEC 0004+00 5/5 0/0 0/0 .sdata2 @6766 */
SECTION_SDATA2 static f32 lit_6766 = 0.25f;
/* 80163034-80163154 15D974 0120+00 1/1 0/0 0/0 .text CalcTrimSize__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+void dCamera_c::CalcTrimSize() {
+ if (field_0x24 != 2) {
+ switch (mTrimSize) {
+ case 0:
+ mTrimHeight += -mTrimHeight * 0.25f;
+ break;
+ case 2:
+ mTrimHeight += (mCamSetup.CinemaScopeTrimHeight() - mTrimHeight) * 0.25f;
+ break;
+ case 1:
+ mTrimHeight += (mCamSetup.VistaTrimHeight() - mTrimHeight) * 0.25f;
+ break;
+ case 3:
+ mTrimHeight += (mCamSetup.CinemaScopeTrimHeight() - mTrimHeight) * 0.25f;
+ break;
+ case 4:
+ mTrimHeight = 0.0f;
+ break;
+ }
+ } else {
+ OS_REPORT("%06d: camera: trim: keep\n", field_0xa8);
+ }
+
+ if (field_0x24 == 1) {
+ field_0x24 = 0;
+ } else if (field_0x24 == 2) {
+ if (dComIfGp_getEvent().isOrderOK()) {
+ field_0x24 = 0;
+ }
+ }
+
+ field_0x1ac = 11;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1897,19 +2619,59 @@ asm void dCamera_c::CalcTrimSize() {
#include "asm/d/d_camera/CalcTrimSize__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* 80163154-8016317C 15DA94 0028+00 1/1 0/0 0/0 .text Draw__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::Draw() {
- nofralloc
-#include "asm/d/d_camera/Draw__9dCamera_cFv.s"
+int dCamera_c::Draw() {
+#if DEBUG
+ debugDraw();
+#endif
+ mFocusLine.Draw();
+ return 1;
}
-#pragma pop
/* 8016317C-80163340 15DABC 01C4+00 1/1 0/0 0/0 .text setStageMapToolData__9dCamera_cFv
*/
+// regswap, equivalent
+#ifdef NONMATCHING
+void dCamera_c::setStageMapToolData() {
+ int var_r28 = 0xFF;
+ int var_r27 = 0xFF;
+ stage_camera_class* camera;
+ stage_arrow_class* arrow;
+
+ field_0x7e8.Clr();
+
+ dStage_stageDt_c* stage_dt = dComIfGp_getStage();
+ if (stage_dt != NULL) {
+ camera = stage_dt->getCamera();
+ arrow = stage_dt->getArrow();
+
+ stage_stag_info_class* staginfo = stage_dt->getStagInfo();
+ if (staginfo != NULL) {
+ var_r28 = dStage_stagInfo_DefaultCameraType(staginfo);
+ }
+
+ if (camera != NULL && var_r28 >= 0 && var_r28 < camera->field_0x0) {
+ field_0x7e8.field_0x30 = var_r28;
+ field_0x7e8.field_0x0 = camera->mEntries[var_r28];
+ field_0x7e8.field_0x3a = (field_0x7e8.field_0x0.field_0x14 >> 0xE) & 3;
+
+ if (field_0x7e8.field_0x0.field_0x14 & 0x2000) {
+ field_0x7e8.field_0x0.field_0x14 |= 0xC000;
+ } else {
+ field_0x7e8.field_0x0.field_0x14 &= ~0xC000;
+ }
+
+ var_r27 = field_0x7e8.field_0x0.field_0x10;
+ if (arrow != NULL && var_r27 >= 0 && var_r27 < arrow->mNum) {
+ field_0x7e8.field_0x2c = var_r27;
+ field_0x7e8.field_0x18 = arrow->mEntries[var_r27];
+ }
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1918,8 +2680,42 @@ asm void dCamera_c::setStageMapToolData() {
#include "asm/d/d_camera/setStageMapToolData__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* 80163340-80163558 15DC80 0218+00 2/2 0/0 0/0 .text setMapToolData__9dCamera_cFv */
+// matches when stage_arrow_data_class uses Vec/SVec instead of cXyz/csXyz, but it breaks dCamMapToolData::Set
+#ifdef NONMATCHING
+void dCamera_c::setMapToolData() {
+ int room_no = dComIfGp_roomControl_getStayNo();
+ stage_camera_class* camera = dComIfGp_getRoomCamera(room_no);
+ stage_arrow_class* arrow = dComIfGp_getRoomArrow(room_no);
+
+ int var_r29 = 0xFF;
+ int var_r26 = 0xFF;
+
+ if (mBG.field_0xc0.field_0x40 == 0x1FF && field_0x7ac.field_0x34 == NULL) {
+ return;
+ }
+
+ if (mBG.field_0xc0.field_0x40 != 0xFF) {
+ field_0x7ac.Clr();
+ var_r29 = mBG.field_0xc0.field_0x40;
+ } else if (field_0x8d8.field_0x30 != 0xFF) {
+ field_0x7ac.Clr();
+ var_r29 = field_0x8d8.field_0x30;
+ } else if (field_0x824.field_0x30 != 0xFF) {
+ field_0x7ac = field_0x824;
+ return;
+ } else if (field_0x7e8.field_0x30 != 0xFF) {
+ field_0x7ac = field_0x7e8;
+ return;
+ } else {
+ field_0x7ac.Clr();
+ }
+
+ setRoomMapToolData(&field_0x7ac, var_r29, room_no);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1928,27 +2724,25 @@ asm void dCamera_c::setMapToolData() {
#include "asm/d/d_camera/setMapToolData__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* 80163558-801635AC 15DE98 0054+00 0/0 0/0 1/1 .text SetTagData__9dCamera_cFP10fopAc_ac_clUsUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::SetTagData(fopAc_ac_c* param_0, s32 param_1, u16 param_2, u8 param_3) {
- nofralloc
-#include "asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s"
+void dCamera_c::SetTagData(fopAc_ac_c* param_0, s32 param_1, u16 param_2, u8 param_3) {
+ s32 room_no;
+ if (param_0 != NULL) {
+ room_no = fopAcM_GetRoomNo(param_0);
+ } else {
+ room_no = dComIfGp_roomControl_getStayNo();
+ }
+
+ field_0x860.Set(param_1, room_no, param_0, param_2, param_3);
}
-#pragma pop
/* 801635AC-801635E4 15DEEC 0038+00 2/2 0/0 0/0 .text
* setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::setRoomMapToolData(dCamMapToolData* param_0, s32 param_1, s32 param_2) {
- nofralloc
-#include "asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s"
+void dCamera_c::setRoomMapToolData(dCamMapToolData* i_toolData, s32 param_1, s32 i_roomNo) {
+ i_toolData->Set(param_1, i_roomNo, NULL, 0xFF, 0xFF);
}
-#pragma pop
/* 801635E4-80163C38 15DF24 0654+00 1/1 0/0 0/0 .text nextMode__9dCamera_cFl */
#pragma push
@@ -1971,14 +2765,10 @@ asm void dCamera_c::onModeChange(s32 param_0, s32 param_1) {
#pragma pop
/* 80163D50-80163D5C 15E690 000C+00 0/0 0/0 4/4 .text ModeFix__9dCamera_cFl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::ModeFix(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/ModeFix__9dCamera_cFl.s"
+int dCamera_c::ModeFix(s32 param_0) {
+ field_0x1ac = param_0;
+ return 1;
}
-#pragma pop
/* 80163D5C-8016444C 15E69C 06F0+00 1/1 0/0 0/0 .text nextType__9dCamera_cFl */
#pragma push
@@ -2001,89 +2791,235 @@ asm void dCamera_c::onTypeChange(s32 param_0, s32 param_1) {
#pragma pop
/* 8016469C-801647B0 15EFDC 0114+00 2/1 0/0 0/0 .text onStyleChange__9dCamera_cFll */
+// matches with literals i think? jumptable may be wrong
+#ifdef NONMATCHING
+int dCamera_c::onStyleChange(s32 param_0, s32 param_1) {
+ mCurCamTypeTimer = 0;
+ field_0x158.field_0x0 = 0;
+ bool var_r30 = false;
+
+ switch (mCamParam.Algorythmn(param_0)) {
+ case 5:
+ case 6:
+ if (mFakeAngleSys.field_0x0 == 0) {
+ setUSOAngle();
+ }
+ var_r30 = true;
+ break;
+ case 4:
+ clrComStat(8);
+ setComZoomScale(1.0f);
+ break;
+ }
+
+ switch (mCamParam.Algorythmn(param_1)) {
+ case 0:
+ case 3:
+ default:
+ break;
+ case 8:
+ if (mCamParam.Algorythmn(param_0) == mCamParam.Algorythmn(param_1) && mNextMode == 0) {
+ setFlag(0x8000);
+ }
+ break;
+ case 1:
+ mCamParam.Algorythmn(param_1);
+ mCamParam.Algorythmn(param_0);
+ break;
+ case 5:
+ case 6:
+ if (mFakeAngleSys.field_0x0 == 0 || var_r30) {
+ setUSOAngle();
+ }
+ break;
+ }
+
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::onStyleChange(s32 param_0, s32 param_1) {
+asm int dCamera_c::onStyleChange(s32 param_0, s32 param_1) {
nofralloc
#include "asm/d/d_camera/onStyleChange__9dCamera_cFll.s"
}
#pragma pop
+#endif
/* 801647B0-80164878 15F0F0 00C8+00 1/1 0/0 0/0 .text onRoomChange__9dCamera_cFl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::onRoomChange(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/onRoomChange__9dCamera_cFl.s"
+int dCamera_c::onRoomChange(s32 i_roomNo) {
+ mRoomNo = i_roomNo;
+ setFlag(0x1000);
+
+ int var_r29 = 0xFF;
+ dStage_roomStatus_c* room_status = dComIfGp_roomControl_getStatusRoomDt(i_roomNo);
+ if (room_status != NULL) {
+ dStage_FileList_dt_c* filelist = room_status->mRoomDt.getFileListInfo();
+ if (filelist != NULL) {
+ var_r29 = dStage_FileList_dt_GetDefaultCamera(filelist);
+ }
+ }
+
+ if (var_r29 != 0xFF) {
+ // setRoomMapToolData(&field_0x824, var_r29, i_roomNo); // supposed to be inlined?
+ field_0x824.Set(var_r29, i_roomNo, NULL, 0xFF, 0xFF);
+ } else {
+ field_0x824.Clr();
+ }
+
+ return 1;
}
-#pragma pop
/* 80164878-80164944 15F1B8 00CC+00 4/4 0/0 0/0 .text getParamTargetActor__9dCamera_cFl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getParamTargetActor(s32 param_0) {
- nofralloc
-#include "asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s"
+fopAc_ac_c* dCamera_c::getParamTargetActor(s32 param_0) {
+ daAlink_c* player = daAlink_getAlinkActorClass();
+
+ switch (*(u32*)&mCamTypeData[param_0].name[16]) {
+ case '@LOC':
+ return dComIfGp_getAttention().LockonTarget(0);
+ case '@ACT':
+ return dComIfGp_getAttention().ActionTarget(0);
+ case '@CHK':
+ return dComIfGp_getAttention().CheckObjectTarget(0);
+ case '@CPY':
+ return player->getCopyRodCameraActor();
+ }
+
+ return fopAcM_searchFromName4Event(&mCamTypeData[param_0].name[16], -1);
}
-#pragma pop
/* 80164944-80164B64 15F284 0220+00 0/0 1/1 0/0 .text GetCameraTypeFromMapToolID__9dCamera_cFll */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) {
- nofralloc
-#include "asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s"
+int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) {
+ dStage_stageDt_c& stage_dt = g_dComIfG_gameInfo.play.getStage();
+
+ int i;
+ stage_camera_class* camera;
+ stage_arrow_class* arrow;
+ if (i_roomNo == -1) {
+ camera = stage_dt.getCamera();
+ arrow = stage_dt.getArrow();
+ } else {
+ camera = dComIfGp_getRoomCamera(i_roomNo);
+ arrow = dComIfGp_getRoomArrow(i_roomNo);
+
+ if (camera == NULL) {
+ if (!(field_0xa8 & 0xFFF)) {
+ OS_REPORT("camera: no room camera list. camera ID ignored\n");
+ }
+ return 0xFF;
+ }
+ }
+
+ if (param_0 < 0 || camera == NULL || (camera != NULL && param_0 >= camera->field_0x0)) {
+ int sp28;
+ if (camera != NULL) {
+ sp28 = camera->field_0x0;
+ } else {
+ sp28 = -99;
+ }
+
+ OS_REPORT("camera: bad number %d for map data ID [%x:%d] room %d\n", param_0, camera, sp28,
+ i_roomNo);
+ return 0xFF;
+ }
+
+ i = 0;
+ while (i < mCamTypeNum) {
+ if (strcmp((char*)&camera->mEntries[param_0].field_0x0.field_0x0, mCamTypeData[i].name) ==
+ 0)
+ {
+ break;
+ }
+
+ i++;
+ }
+
+ if (i == mCamTypeNum) {
+ OS_REPORT("camera: type \'%s\' not found\n", camera->mEntries[param_0].field_0x0.field_0x0);
+ return 0xFF;
+ }
+
+ field_0x7ac.field_0x0 = camera->mEntries[param_0];
+ field_0x7ac.field_0x30 = param_0;
+ field_0x7ac.field_0x3a = (field_0x7ac.field_0x0.field_0x14 >> 0xE) & 3;
+
+ if (field_0x7ac.field_0x0.field_0x14 & 0x2000) {
+ field_0x7ac.field_0x0.field_0x14 |= 0xC000;
+ } else {
+ field_0x7ac.field_0x0.field_0x14 &= ~0xC000;
+ }
+
+ field_0x7ac.field_0x2c = field_0x7ac.field_0x0.field_0x10;
+
+ if (field_0x7ac.field_0x2c != -1 && field_0x7ac.field_0x2c < arrow->mNum) {
+ field_0x7ac.field_0x18 = arrow->mEntries[field_0x7ac.field_0x2c];
+ } else {
+ field_0x7ac.field_0x2c = 0xFF;
+ }
+
+ return i;
}
-#pragma pop
/* 80164B64-80164C10 15F4A4 00AC+00 2/2 1/1 0/0 .text GetCameraTypeFromCameraName__9dCamera_cFPCc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm int dCamera_c::GetCameraTypeFromCameraName(char const* param_0) {
- nofralloc
-#include "asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s"
+int dCamera_c::GetCameraTypeFromCameraName(char const* i_name) {
+ if (strcmp(i_name, mCamTypeData[mCurType].name) == 0) {
+ return mCurType;
+ }
+
+ int i = 0;
+ while (i < mCamTypeNum) {
+ if (strcmp(i_name, mCamTypeData[i].name) == 0) {
+ break;
+ }
+
+ i++;
+ }
+
+ if (i == mCamTypeNum) {
+ OS_REPORT("camera: type \'%s\' not found\n", i_name);
+ return 0xFF;
+ }
+
+ return i;
}
-#pragma pop
/* 80164C10-80164C64 15F550 0054+00 2/2 0/0 0/0 .text
* GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::GetCameraTypeFromToolData(stage_camera2_data_class* param_0) {
- nofralloc
-#include "asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s"
+int dCamera_c::GetCameraTypeFromToolData(stage_camera2_data_class* i_data) {
+ if (i_data->field_0x16 != 0xFFFF) {
+ return i_data->field_0x16;
+ }
+
+ int type = GetCameraTypeFromCameraName((char*)&i_data->field_0x0.field_0x0);
+ if (type < 0xFFFF) {
+ i_data->field_0x16 = type;
+ }
+
+ return type;
}
-#pragma pop
/* 80164C64-80164CAC 15F5A4 0048+00 4/4 2/2 0/0 .text
* pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::pushInfo(dCamera_c::dCamInfo_c* param_0, s16 param_1) {
- nofralloc
-#include "asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s"
+void dCamera_c::pushInfo(dCamera_c::dCamInfo_c* i_info, s16 param_1) {
+ i_info->mCenter = mCenter;
+ i_info->mEye = mEye;
+ i_info->mFovy = mFovY;
+ i_info->mBank = mBank;
+ i_info->field_0x1e = param_1;
}
-#pragma pop
/* 80164CAC-80164D2C 15F5EC 0080+00 2/2 0/0 0/0 .text
* popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::popInfo(dCamera_c::dCamInfo_c* param_0) {
- nofralloc
-#include "asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s"
+void dCamera_c::popInfo(dCamera_c::dCamInfo_c* i_info) {
+ mCenter = field_0x5c.field_0x8 = i_info->mCenter;
+ mEye = field_0x5c.field_0x14 = i_info->mEye;
+ mFovY = field_0x80 = i_info->mFovy;
+ field_0x5c.field_0x20 = i_info->mBank;
+ mBank = field_0x5c.field_0x20;
}
-#pragma pop
/* ############################################################################################## */
/* 804536F0-804536F4 001CF0 0004+00 2/2 0/0 0/0 .sdata2 @7609 */
@@ -2091,14 +3027,25 @@ SECTION_SDATA2 static f32 lit_7609 = 11.0f / 10.0f;
/* 80164D2C-80164D6C 15F66C 0040+00 4/4 0/0 0/0 .text heightOf__9dCamera_cFP10fopAc_ac_c
*/
+// matches with literals
+#ifdef NONMATCHING
+f32 dCamera_c::heightOf(fopAc_ac_c* i_actor) {
+ if (is_player(i_actor)) {
+ return ((daPy_py_c*)i_actor)->getHeight();
+ } else {
+ return (i_actor->eyePos.y - i_actor->current.pos.y) * 1.1f;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::heightOf(fopAc_ac_c* param_0) {
+asm f32 dCamera_c::heightOf(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/d_camera/heightOf__9dCamera_cFP10fopAc_ac_c.s"
}
#pragma pop
+#endif
/* 80164D6C-80164E20 15F6AC 00B4+00 9/9 15/15 0/0 .text
* relationalPos__9dCamera_cFP10fopAc_ac_cP4cXyz */
@@ -2124,31 +3071,22 @@ asm void dCamera_c::relationalPos(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz
#pragma pop
/* 80165104-80165158 15FA44 0054+00 7/7 0/0 0/0 .text setUSOAngle__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::setUSOAngle() {
- nofralloc
-#include "asm/d/d_camera/setUSOAngle__9dCamera_cFv.s"
+void dCamera_c::setUSOAngle() {
+ mFakeAngleSys.field_0x0 = 1;
+ mFakeAngleSys.field_0x2 = field_0x28.U().Inv();
+ mFakeAngleSys.field_0x4 = mPadInfo.mMainStick.field_0x18;
}
-#pragma pop
/* 80165158-8016517C 15FA98 0024+00 1/1 0/0 0/0 .text getUSOAngle__9dCamera_cF7cSAngle */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getUSOAngle(cSAngle param_0) {
- nofralloc
-#include "asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s"
+cSAngle dCamera_c::getUSOAngle(cSAngle param_0) {
+ return mFakeAngleSys.field_0x2;
}
-#pragma pop
/* 8016517C-80165238 15FABC 00BC+00 1/1 2/2 0/0 .text pointInSight__9dCamera_cFP4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::pointInSight(cXyz* param_0) {
- nofralloc
+asm void dCamera_c::pointInSight(cXyz* param_0){nofralloc
#include "asm/d/d_camera/pointInSight__9dCamera_cFP4cXyz.s"
}
#pragma pop
@@ -2194,14 +3132,43 @@ asm void dCamera_c::radiusActorInSight(fopAc_ac_c* param_0, fopAc_ac_c* param_1,
#pragma pop
/* 801657EC-801658C0 16012C 00D4+00 3/3 0/0 0/0 .text groundHeight__9dCamera_cFP4cXyz */
+// matches with literals
+#ifdef NONMATCHING
+f32 dCamera_c::groundHeight(cXyz* param_0) {
+ dBgS_GndChk gndchk;
+ gndchk.SetPos(param_0);
+ f32 gnd_y = dComIfG_Bgsp().GroundCross(&gndchk);
+
+ dBgS_CamGndChk_Wtr gndchk_wtr;
+ gndchk_wtr.SetPos(param_0);
+ f32 wtr_y = dComIfG_Bgsp().GroundCross(&gndchk_wtr);
+
+ f32 height;
+ if (gnd_y >= wtr_y) {
+ height = gnd_y;
+ } else {
+ height = wtr_y;
+ }
+
+ f32 height_correct;
+ if (height == -1000000000.0f) {
+ height_correct = param_0->y;
+ } else {
+ height_correct = height;
+ }
+
+ return height_correct;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::groundHeight(cXyz* param_0) {
+asm f32 dCamera_c::groundHeight(cXyz* param_0) {
nofralloc
#include "asm/d/d_camera/groundHeight__9dCamera_cFP4cXyz.s"
}
#pragma pop
+#endif
/* 801658C0-801659F4 160200 0134+00 12/12 0/0 0/0 .text
* lineBGCheck__9dCamera_cFP4cXyzP4cXyzP11dBgS_LinChkUl */
@@ -2229,8 +3196,7 @@ asm void dCamera_c::lineBGCheck(cXyz* param_0, cXyz* param_1, cXyz* param_2, u32
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::lineBGCheck(cXyz* param_0, cXyz* param_1, u32 param_2) {
- nofralloc
+asm void dCamera_c::lineBGCheck(cXyz* param_0, cXyz* param_1, u32 param_2){nofralloc
#include "asm/d/d_camera/lineBGCheck__9dCamera_cFP4cXyzP4cXyzUl.s"
}
#pragma pop
@@ -2244,8 +3210,7 @@ SECTION_SDATA2 static f32 lit_8127 = 30.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::lineCollisionCheckBush(cXyz* param_0, cXyz* param_1) {
- nofralloc
+asm void dCamera_c::lineCollisionCheckBush(cXyz* param_0, cXyz* param_1){nofralloc
#include "asm/d/d_camera/lineCollisionCheckBush__9dCamera_cFP4cXyzP4cXyz.s"
}
#pragma pop
@@ -2300,8 +3265,7 @@ asm void dCamera_c::defaultTriming() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::setView(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
- nofralloc
+asm void dCamera_c::setView(f32 param_0, f32 param_1, f32 param_2, f32 param_3){nofralloc
#include "asm/d/d_camera/setView__9dCamera_cFffff.s"
}
#pragma pop
@@ -2460,8 +3424,7 @@ asm void dCamera_c::tooNearEscape(cXyz* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::getWaterSurfaceHeight(cXyz* param_0) {
- nofralloc
+asm void dCamera_c::getWaterSurfaceHeight(cXyz* param_0){nofralloc
#include "asm/d/d_camera/getWaterSurfaceHeight__9dCamera_cFP4cXyz.s"
}
#pragma pop
@@ -2676,8 +3639,7 @@ static asm void func_8016C34C(u32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void func_8016C368(u32 param_0, u32 param_1) {
- nofralloc
+static asm void func_8016C368(u32 param_0, u32 param_1){nofralloc
#include "asm/d/d_camera/func_8016C368.s"
}
#pragma pop
@@ -2760,8 +3722,7 @@ asm void dCamera_c::getMsgCmdSpeaker() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::getMsgCmdCut(s32 param_0) {
- nofralloc
+asm void dCamera_c::getMsgCmdCut(s32 param_0){nofralloc
#include "asm/d/d_camera/getMsgCmdCut__9dCamera_cFl.s"
}
#pragma pop
@@ -2892,7 +3853,8 @@ asm void dCamera_c::talkEyePos(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void func_80174E50(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3, fopAc_ac_c* param_4) {
+static asm void func_80174E50(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3,
+ fopAc_ac_c* param_4) {
nofralloc
#include "asm/d/d_camera/func_80174E50.s"
}
@@ -2908,8 +3870,7 @@ bool dCamera_c::CalcSubjectAngle(s16* param_0, s16* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::SaveZoomRatio() {
- nofralloc
+asm void dCamera_c::SaveZoomRatio(){nofralloc
#include "asm/d/d_camera/SaveZoomRatio__9dCamera_cFv.s"
}
#pragma pop
@@ -2937,8 +3898,7 @@ SECTION_SDATA2 static f32 lit_12869 = -511.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool dCamera_c::subjectCamera(s32 param_0) {
- nofralloc
+asm bool dCamera_c::subjectCamera(s32 param_0){nofralloc
#include "asm/d/d_camera/subjectCamera__9dCamera_cFl.s"
}
#pragma pop
@@ -2951,8 +3911,7 @@ SECTION_SDATA2 static f32 lit_13132 = 4.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool dCamera_c::magneCamera(s32 param_0) {
- nofralloc
+asm bool dCamera_c::magneCamera(s32 param_0){nofralloc
#include "asm/d/d_camera/magneCamera__9dCamera_cFl.s"
}
#pragma pop
@@ -2989,8 +3948,7 @@ SECTION_SDATA2 static f32 lit_13673 = 1.0f / 40.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool dCamera_c::towerCamera(s32 param_0) {
- nofralloc
+asm bool dCamera_c::towerCamera(s32 param_0){nofralloc
#include "asm/d/d_camera/towerCamera__9dCamera_cFl.s"
}
#pragma pop
@@ -3192,8 +4150,7 @@ asm bool dCamera_c::fixedPositionCamera(s32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool dCamera_c::oneSideCamera(s32 param_0) {
- nofralloc
+asm bool dCamera_c::oneSideCamera(s32 param_0){nofralloc
#include "asm/d/d_camera/oneSideCamera__9dCamera_cFl.s"
}
#pragma pop
@@ -3201,32 +4158,414 @@ asm bool dCamera_c::oneSideCamera(s32 param_0) {
/* ############################################################################################## */
/* 80393DC0-80393F58 020420 0198+00 1/1 0/0 0/0 .rodata @16654 */
SECTION_RODATA static u8 const lit_16654[408] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
};
COMPILER_STRIP_GATE(0x80393DC0, &lit_16654);
@@ -3250,8 +4589,7 @@ SECTION_DEAD static char const* const stringBase_803942F2 = "WideMode";
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool dCamera_c::eventCamera(s32 param_0) {
- nofralloc
+asm bool dCamera_c::eventCamera(s32 param_0){nofralloc
#include "asm/d/d_camera/eventCamera__9dCamera_cFl.s"
}
#pragma pop
@@ -3366,8 +4704,7 @@ asm void dCamera_c::Reset(cXyz param_0, cXyz param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::Reset() {
- nofralloc
+asm void dCamera_c::Reset(){nofralloc
#include "asm/d/d_camera/Reset__9dCamera_cFv.s"
}
#pragma pop
@@ -3375,7 +4712,22 @@ asm void dCamera_c::Reset() {
/* ############################################################################################## */
/* 80393F58-80393F68 0205B8 0010+00 1/1 0/0 0/0 .rodata wave$17181 */
SECTION_RODATA static u8 const wave[16] = {
- 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x66, 0x66, 0x66, 0x40, 0x06, 0x66, 0x66, 0x40, 0x4C, 0xCC, 0xCD,
+ 0x3E,
+ 0xCC,
+ 0xCC,
+ 0xCD,
+ 0x3F,
+ 0x66,
+ 0x66,
+ 0x66,
+ 0x40,
+ 0x06,
+ 0x66,
+ 0x66,
+ 0x40,
+ 0x4C,
+ 0xCC,
+ 0xCD,
};
COMPILER_STRIP_GATE(0x80393F58, &wave);
@@ -3392,8 +4744,7 @@ SECTION_SDATA2 static f32 lit_17255 = 3.0f / 25.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::shakeCamera() {
- nofralloc
+asm void dCamera_c::shakeCamera(){nofralloc
#include "asm/d/d_camera/shakeCamera__9dCamera_cFv.s"
}
#pragma pop
@@ -3593,8 +4944,7 @@ asm dCamera_c* dCam_getCamera() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dCamera_c* dCam_getBody() {
- nofralloc
+asm dCamera_c* dCam_getBody(){nofralloc
#include "asm/d/d_camera/dCam_getBody__Fv.s"
}
#pragma pop
@@ -3627,53 +4977,123 @@ static asm void view_setup(camera_process_class* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void store(camera_process_class* param_0) {
- nofralloc
+static asm void store(camera_process_class* param_0){nofralloc
#include "asm/d/d_camera/store__FP20camera_process_class.s"
}
#pragma pop
/* 80181E20-80181E64 17C760 0044+00 1/1 0/0 0/0 .text Up__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::Up() {
- nofralloc
-#include "asm/d/d_camera/Up__9dCamera_cFv.s"
+cXyz dCamera_c::Up() {
+ if (chkFlag(0x10)) {
+ return field_0x740.field_0x18;
+ } else {
+ return mUp;
+ }
}
-#pragma pop
/* 80181E64-80181E98 17C7A4 0034+00 1/1 1/1 30/30 .text Eye__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cXyz dCamera_c::Eye() {
- nofralloc
-#include "asm/d/d_camera/Eye__9dCamera_cFv.s"
+cXyz dCamera_c::Eye() {
+ return mEye + mShake.field_0x30;
}
-#pragma pop
/* 80181E98-80181ECC 17C7D8 0034+00 1/1 1/1 25/25 .text Center__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cXyz dCamera_c::Center() {
- nofralloc
-#include "asm/d/d_camera/Center__9dCamera_cFv.s"
+cXyz dCamera_c::Center() {
+ return mCenter + mShake.field_0x24;
}
-#pragma pop
/* 80181ECC-80181F70 17C80C 00A4+00 1/0 0/0 0/0 .text camera_execute__FP20camera_process_class */
+// matches with literals
+#ifdef NONMATCHING
+static int camera_execute(camera_process_class* i_this) {
+ camera_class* a_this = (camera_class*)i_this;
+ preparation(i_this);
+
+ if (dDemo_c::getCamera() != NULL) {
+ a_this->mCamera.ResetView();
+ }
+
+ dComIfGp_offCameraAttentionStatus(0, 0x40);
+
+ if (a_this->mCamera.Active()) {
+ a_this->mCamera.Run();
+ } else {
+ a_this->mCamera.NotRun();
+ }
+
+ a_this->mCamera.CalcTrimSize();
+
+ store(i_this);
+ view_setup(i_this);
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void camera_execute(camera_process_class* param_0) {
+static asm void camera_execute(camera_process_class* i_this) {
nofralloc
#include "asm/d/d_camera/camera_execute__FP20camera_process_class.s"
}
#pragma pop
+#endif
/* 80181F70-801821E0 17C8B0 0270+00 1/0 0/0 0/0 .text camera_draw__FP20camera_process_class */
+// matches with literals
+#ifdef NONMATCHING
+static int camera_draw(camera_process_class* i_this) {
+ camera_class* a_this = (camera_class*)i_this;
+ dCamera_c* body = &((camera_class*)i_this)->mCamera;
+
+ dDlst_window_c* window = get_window(a_this);
+ view_port_class* viewport = window->getViewPort();
+ int camera_id = get_camera_id(a_this);
+
+ int trim_height = body->TrimHeight();
+ window->setScissor(0.0f, trim_height, 608.0f, 448.0f - trim_height * 2.0f);
+ C_MTXPerspective(i_this->mProjMtx, i_this->mFovy, i_this->mAspect, i_this->mNear, i_this->mFar);
+ mDoMtx_lookAt(i_this->mViewMtx, &i_this->mLookat.mEye, &i_this->mLookat.mCenter,
+ &i_this->mLookat.mUp, i_this->mBank);
+
+ j3dSys.setViewMtx(i_this->mViewMtx);
+ cMtx_inverse(i_this->mViewMtx, i_this->mInvViewMtx);
+
+ Z2GetAudience()->setAudioCamera(i_this->mViewMtx, i_this->mLookat.mEye, i_this->mLookat.mCenter,
+ i_this->mFovy, i_this->mAspect, getComStat(0x80), camera_id,
+ false);
+
+ dBgS_GndChk gndchk;
+ gndchk.OnWaterGrp();
+ gndchk.SetPos(&i_this->mLookat.mEye);
+
+ f32 cross = dComIfG_Bgsp().GroundCross(&gndchk);
+ if (cross != -1000000000.0f) {
+ if (dComIfG_Bgsp().ChkGrpInf(gndchk, 0x100)) {
+ mDoAud_getCameraMapInfo(6);
+ } else {
+ mDoAud_getCameraMapInfo(dComIfG_Bgsp().GetMtrlSndId(&gndchk));
+ }
+
+ mDoAud_setCameraGroupInfo(dComIfG_Bgsp().GetGrpSoundId(gndchk));
+ Vec spDC;
+ spDC.x = i_this->mLookat.mEye.x;
+ spDC.y = cross;
+ spDC.z = i_this->mLookat.mEye.z;
+
+ Z2AudioMgr::getInterface()->setCameraPolygonPos(&spDC);
+ } else {
+ Z2AudioMgr::getInterface()->setCameraPolygonPos(NULL);
+ }
+
+ MTXCopy(i_this->mViewMtx, i_this->mViewMtxNoTrans);
+ i_this->mViewMtxNoTrans[0][3] = 0.0f;
+ i_this->mViewMtxNoTrans[1][3] = 0.0f;
+ i_this->mViewMtxNoTrans[2][3] = 0.0f;
+ cMtx_concatProjView(i_this->mProjMtx, i_this->mViewMtx, i_this->mProjViewMtx);
+
+ body->Draw();
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -3682,22 +5102,95 @@ static asm void camera_draw(camera_process_class* param_0) {
#include "asm/d/d_camera/camera_draw__FP20camera_process_class.s"
}
#pragma pop
+#endif
/* 801821E0-80182260 17CB20 0080+00 1/0 0/0 0/0 .text init_phase1__FP12camera_class */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void init_phase1(camera_class* param_0) {
- nofralloc
-#include "asm/d/d_camera/init_phase1__FP12camera_class.s"
+static int init_phase1(camera_class* i_this) {
+ int camera_id = get_camera_id(i_this);
+
+ dComIfGp_setCamera(camera_id, i_this);
+ fopCamM_SetPrm1(i_this, dComIfGp_getCameraWinID(camera_id));
+ fopCamM_SetPrm2(i_this, dComIfGp_getCameraPlayer1ID(camera_id));
+ fopCamM_SetPrm3(i_this, dComIfGp_getCameraPlayer2ID(camera_id));
+ dComIfGp_setWindowNum(0);
+
+ i_this->field_0x238 = 0;
+ i_this->field_0x22f = 71;
+ i_this->mCamera.field_0xb0c = 0;
+ return cPhs_NEXT_e;
}
-#pragma pop
/* ############################################################################################## */
/* 80453920-80453924 001F20 0004+00 1/1 0/0 0/0 .sdata2 @17948 */
SECTION_SDATA2 static f32 lit_17948 = 160000.0f;
/* 80182260-80182454 17CBA0 01F4+00 1/0 0/0 0/0 .text init_phase2__FP12camera_class */
+// matches with literals
+#ifdef NONMATCHING
+static int init_phase2(camera_class* i_this) {
+ camera_process_class* a_this = (camera_process_class*)i_this;
+ dCamera_c* body = &i_this->mCamera;
+ int camera_id = get_camera_id(i_this);
+ i_this->field_0x238++;
+
+ fopAc_ac_c* player = (fopAc_ac_c*)get_player_actor(i_this);
+ if (player == NULL) {
+ return cPhs_INIT_e;
+ }
+
+ dBgS_GndChk gndchk;
+ cXyz spA4(player->current.pos);
+ spA4.y += 50.0f;
+ gndchk.SetPos(&spA4);
+
+ if (dComIfG_Bgsp().GroundCross(&gndchk) == -1000000000.0f) {
+#if DEBUG
+ if (i_this->field_0x238 < 100) {
+ if (i_this->field_0x238 % 100 == 0 && i_this->field_0x238 != 0) {
+ OS_REPORT("camera: can not found floor... %d\n", i_this->field_0x238);
+ }
+
+ return cPhs_INIT_e;
+ }
+
+ OS_REPORT("\ncamera: Warning: give up to get floor info !!\n\n");
+#else
+ return cPhs_INIT_e;
+#endif
+ }
+
+ fopAcM_setStageLayer(player);
+ dComIfGp_setWindowNum(1);
+
+ new (body) dCamera_c(i_this);
+
+ f32 var_f30 = 160000.0f;
+
+ if (dComIfGp_getStage()->getStagInfo() != NULL) {
+ dStage_stageDt_c* stage_dt = dComIfGp_getStage();
+ stage_dt->getStagInfo();
+
+ var_f30 = stage_dt->getStagInfo()->field_0x4;
+ }
+
+ get_window(camera_id)->getViewPort();
+
+ fopCamM_SetNear(i_this, 1.0f);
+ fopCamM_SetFar(i_this, var_f30);
+ fopCamM_SetFovy(i_this, 30.0f);
+ fopCamM_SetAspect(i_this, mDoGph_gInf_c::getAspect());
+ fopCamM_SetCenter(i_this, player->current.pos.x, player->current.pos.y, player->current.pos.z);
+ fopCamM_SetBank(i_this, 0);
+
+ store(a_this);
+ view_setup(a_this);
+
+ i_this->mCamera.field_0xb0c = 1;
+ i_this->field_0x238 = 0;
+ dComIfGp_getAttention().Init(player, PAD_1);
+ return cPhs_NEXT_e;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -3706,18 +5199,24 @@ static asm void init_phase2(camera_class* param_0) {
#include "asm/d/d_camera/init_phase2__FP12camera_class.s"
}
#pragma pop
+#endif
/* 80182454-80182484 17CD94 0030+00 1/0 0/0 0/0 .text camera_create__FP12camera_class */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void camera_create(camera_class* param_0) {
- nofralloc
-#include "asm/d/d_camera/camera_create__FP12camera_class.s"
+static int camera_create(camera_class* i_this) {
+ return dComLbG_PhaseHandler(&i_this->mPhaseReq, l_method, i_this);
}
-#pragma pop
/* 80182484-801824C0 17CDC4 003C+00 1/0 0/0 0/0 .text camera_delete__FP20camera_process_class */
+// equivalent, instructions swapped
+#ifdef NONMATCHING
+static int camera_delete(camera_process_class* i_this) {
+ camera_class* a_this = (camera_class*)i_this;
+
+ a_this->mCamera.~dCamera_c();
+ dComIfGp_setCamera(0, NULL);
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -3726,10 +5225,11 @@ static asm void camera_delete(camera_process_class* param_0) {
#include "asm/d/d_camera/camera_delete__FP20camera_process_class.s"
}
#pragma pop
+#endif
/* 801824C0-801824C8 17CE00 0008+00 1/0 0/0 0/0 .text is_camera_delete__FPv */
-static bool is_camera_delete(void* param_0) {
- return true;
+static int is_camera_delete(void* i_this) {
+ return 1;
}
/* ############################################################################################## */
@@ -3770,8 +5270,7 @@ asm void dCamForcusLine::Off() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void __sinit_d_camera_cpp() {
- nofralloc
+asm void __sinit_d_camera_cpp(){nofralloc
#include "asm/d/d_camera/__sinit_d_camera_cpp.s"
}
#pragma pop
@@ -3922,7 +5421,8 @@ extern "C" asm void __dt__14d2DBSplinePathFv() {
#pragma pop
/* 8018291C-80182920 17D25C 0004+00 1/1 0/0 0/0 .text __ct__Q29dCamera_c10dCamInfo_cFv */
-dCamera_c::dCamInfo_c::dCamInfo_c() {
+// dCamera_c::dCamInfo_c::dCamInfo_c() {
+extern "C" void __ct__Q29dCamera_c10dCamInfo_cFv() {
/* empty function */
}
@@ -3930,7 +5430,8 @@ dCamera_c::dCamInfo_c::dCamInfo_c() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dCamera_c::dCamInfo_c::~dCamInfo_c() {
+// asm dCamera_c::dCamInfo_c::~dCamInfo_c() {
+extern "C" asm void __dt__Q29dCamera_c10dCamInfo_cFv() {
nofralloc
#include "asm/d/d_camera/__dt__Q29dCamera_c10dCamInfo_cFv.s"
}
@@ -3950,7 +5451,8 @@ asm void dCamera_c::footHeightOf(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::push_any_key() {
+// asm void dCamera_c::push_any_key() {
+extern "C" asm void push_any_key__9dCamera_cFv() {
nofralloc
#include "asm/d/d_camera/push_any_key__9dCamera_cFv.s"
}
@@ -3960,7 +5462,8 @@ asm void dCamera_c::push_any_key() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::clrFlag(u32 param_0) {
+// asm void dCamera_c::clrFlag(u32 param_0) {
+extern "C" asm void clrFlag__9dCamera_cFUl() {
nofralloc
#include "asm/d/d_camera/clrFlag__9dCamera_cFUl.s"
}
@@ -3970,7 +5473,8 @@ asm void dCamera_c::clrFlag(u32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::chkFlag(u32 param_0) {
+// asm void dCamera_c::chkFlag(u32 param_0) {
+extern "C" asm void chkFlag__9dCamera_cFUl() {
nofralloc
#include "asm/d/d_camera/chkFlag__9dCamera_cFUl.s"
}
@@ -4072,7 +5576,7 @@ extern "C" asm void checkGoronSideMove__9daPy_py_cCFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-//static asm void JMAFastSqrt(f32 param_0) {
+// static asm void JMAFastSqrt(f32 param_0) {
static asm void JMAFastSqrt__Ff() {
nofralloc
#include "asm/d/d_camera/JMAFastSqrt__Ff.s"
@@ -4083,7 +5587,8 @@ static asm void JMAFastSqrt__Ff() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void std::fabsf(f32 param_0) {
+extern "C" asm void fabsf__3stdFf() {
+ // asm void std::fabsf(f32 param_0) {
nofralloc
#include "asm/d/d_camera/fabsf__3stdFf.s"
}
@@ -4110,7 +5615,8 @@ extern "C" asm void R__7cSGlobeFf() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void dComIfGp_evmng_cameraPlay() {
+// static asm void dComIfGp_evmng_cameraPlay() {
+extern "C" asm void dComIfGp_evmng_cameraPlay__Fv() {
nofralloc
#include "asm/d/d_camera/dComIfGp_evmng_cameraPlay__Fv.s"
}
@@ -4218,7 +5724,8 @@ extern "C" asm void getRightHandPos__9daPy_py_cCFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamSetup_c::CheckFlag2(u16 param_0) {
+// asm void dCamSetup_c::CheckFlag2(u16 param_0) {
+extern "C" asm void CheckFlag2__11dCamSetup_cFUs() {
nofralloc
#include "asm/d/d_camera/CheckFlag2__11dCamSetup_cFUs.s"
}
@@ -4228,7 +5735,8 @@ asm void dCamSetup_c::CheckFlag2(u16 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamSetup_c::CheckFlag(u16 param_0) {
+// asm void dCamSetup_c::CheckFlag(u16 param_0) {
+extern "C" asm void CheckFlag__11dCamSetup_cFUs() {
nofralloc
#include "asm/d/d_camera/CheckFlag__11dCamSetup_cFUs.s"
}
@@ -4396,7 +5904,8 @@ extern "C" asm void U__7cSGlobeCFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamParam_c::Flag(s32 param_0, u16 param_1) {
+// asm void dCamParam_c::Flag(s32 param_0, u16 param_1) {
+extern "C" asm void Flag__11dCamParam_cFlUs() {
nofralloc
#include "asm/d/d_camera/Flag__11dCamParam_cFlUs.s"
}
@@ -4489,7 +5998,8 @@ extern "C" asm void fabs__3stdFf() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daHorse_c::checkTurnStandCamera() const {
+// asm void daHorse_c::checkTurnStandCamera() const {
+extern "C" asm void checkTurnStandCamera__9daHorse_cCFv() {
nofralloc
#include "asm/d/d_camera/checkTurnStandCamera__9daHorse_cCFv.s"
}
@@ -4510,7 +6020,8 @@ extern "C" asm void d2s__6cAngleFf() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daHorse_c::checkJump() const {
+// asm void daHorse_c::checkJump() const {
+extern "C" asm void checkJump__9daHorse_cCFv() {
nofralloc
#include "asm/d/d_camera/checkJump__9daHorse_cCFv.s"
}
@@ -4532,7 +6043,8 @@ extern "C" static asm void fopAcM_GetParam__FPCv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daTagMstop_c::checkNoAttention() const {
+// asm void daTagMstop_c::checkNoAttention() const {
+extern "C" asm void checkNoAttention__12daTagMstop_cCFv() {
nofralloc
#include "asm/d/d_camera/checkNoAttention__12daTagMstop_cCFv.s"
}
@@ -4543,7 +6055,8 @@ asm void daTagMstop_c::checkNoAttention() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daTagMhint_c::checkNoAttention() const {
+// asm void daTagMhint_c::checkNoAttention() const {
+extern "C" asm void checkNoAttention__12daTagMhint_cCFv() {
nofralloc
#include "asm/d/d_camera/checkNoAttention__12daTagMhint_cCFv.s"
}
@@ -4565,7 +6078,8 @@ extern "C" asm void set__4cXyzFfff() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daTagMwait_c::checkEndMessage() {
+// asm void daTagMwait_c::checkEndMessage() {
+extern "C" asm void checkEndMessage__12daTagMwait_cFv() {
nofralloc
#include "asm/d/d_camera/checkEndMessage__12daTagMwait_cFv.s"
}
diff --git a/src/d/d_demo.cpp b/src/d/d_demo.cpp
index b22af6c414..f6fd0805b5 100644
--- a/src/d/d_demo.cpp
+++ b/src/d/d_demo.cpp
@@ -1278,7 +1278,7 @@ JStage::TObject* dDemo_object_c::createCamera() {
/* 80039128-8003913C 033A68 0014+00 0/0 3/3 0/0 .text getActiveCamera__14dDemo_object_cFv
*/
-JStage::TObject* dDemo_object_c::getActiveCamera() {
+dDemo_camera_c* dDemo_object_c::getActiveCamera() {
if (mpCamera != NULL) {
return mpCamera;
}
diff --git a/src/d/d_ev_camera.cpp b/src/d/d_ev_camera.cpp
index d2fc2ef5c2..954b38682a 100644
--- a/src/d/d_ev_camera.cpp
+++ b/src/d/d_ev_camera.cpp
@@ -5,6 +5,7 @@
#include "d/d_ev_camera.h"
#include "dol2asm.h"
+#include "d/d_demo.h"
#include "m_Do/m_Do_controller_pad.h"
#include "rel/d/a/d_a_midna/d_a_midna.h"
@@ -37,7 +38,7 @@ extern "C" void uniformTransEvCamera__9dCamera_cFv();
extern "C" void uniformBrakeEvCamera__9dCamera_cFv();
extern "C" void uniformAcceleEvCamera__9dCamera_cFv();
extern "C" void transEvCamera__9dCamera_cFi();
-extern "C" static void func_8008E750();
+extern "C" static bool func_8008E750(char);
extern "C" void __as__7cSGlobeFRC7cSGlobe();
extern "C" void abs__4cXyzCFv();
extern "C" void U__7cSGlobeFRC7cSAngle();
@@ -196,19 +197,23 @@ extern "C" u8 _90__7cSAngle[2 + 2 /* padding */];
/* 800889F8-80088A7C 083338 0084+00 1/1 0/0 0/0 .text isStageEvent__25@unnamed@d_ev_camera_cpp@Fi
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm bool func_800889F8(int) {
- nofralloc
-#include "asm/d/d_ev_camera/func_800889F8.s"
+static bool func_800889F8(int param_0) {
+ dStage_MapEventInfo_c* info = dComIfGp_getStage()->getMapEventInfo();
+ if (info != NULL) {
+ for (int i = 0; i < info->mCount; i++) {
+ if (param_0 == info->mData[i].field_0x4) {
+ return true;
+ }
+ }
+ }
+
+ return false;
}
-#pragma pop
/* 80088A7C-80088BBC 0833BC 0140+00 0/0 15/15 2/2 .text StartEventCamera__9dCamera_cFiie
*/
int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
- if (i_chkFlag(0x20000000)) {
+ if (chkFlag(0x20000000)) {
return 0;
}
@@ -230,7 +235,7 @@ int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
}
va_end(args);
- i_setFlag(0x20000000);
+ setFlag(0x20000000);
mCurCamTypeTimer = 0;
mEventData.field_0x0 = 0;
return 1;
@@ -238,12 +243,12 @@ int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
/* 80088BBC-80088C24 0834FC 0068+00 0/0 3/3 4/4 .text EndEventCamera__9dCamera_cFi */
int dCamera_c::EndEventCamera(int param_0) {
- if (!i_chkFlag(0x20000000)) {
+ if (!chkFlag(0x20000000)) {
return 0;
}
if (mEventData.field_0x14 == -1 || mEventData.field_0x14 == param_0) {
- i_clrFlag(0x20000000);
+ clrFlag(0x20000000);
mEventData.field_0x0 = 1;
if (dComIfGp_getEvent().runCheck()) {
@@ -277,146 +282,421 @@ int dCamera_c::searchEventArgData(char* i_eventName) {
}
/* 80088CB0-80088D90 0835F0 00E0+00 3/3 1/1 0/0 .text getEvIntData__9dCamera_cFPiPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvIntData(int* param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s"
+bool dCamera_c::getEvIntData(int* i_data, char* i_event) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ return 0;
+ }
+
+ if (mEventData.mEventParams[index].field_0x10 < 0) {
+ *i_data = mEventData.mEventParams[index].value;
+ } else {
+ *i_data = *(int*)mEventData.mEventParams[index].value;
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ *i_data = *dComIfGp_evmng_getMyIntegerP(mEventData.field_0x4, i_event);
+ } else {
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: (int) not found\n", i_event);
+ }
+#endif
+
+ mEventData.field_0x10 = 1;
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %d\n", i_event, *i_data);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 80088D90-80088E58 0836D0 00C8+00 0/0 1/1 0/0 .text getEvFloatData__9dCamera_cFPfPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvFloatData(f32* param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s"
+bool dCamera_c::getEvFloatData(f32* i_data, char* i_event) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ return 0;
+ }
+
+ *i_data = *(f32*)mEventData.mEventParams[index].value;
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ *i_data = *dComIfGp_evmng_getMyFloatP(mEventData.field_0x4, i_event);
+ } else {
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: (float) not found\n", i_event);
+ }
+#endif
+
+ mEventData.field_0x10 = 1;
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f\n", i_event, *i_data);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 80088E58-80088F1C 083798 00C4+00 4/4 0/0 0/0 .text getEvFloatListData__9dCamera_cFPPfPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvFloatListData(f32** param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s"
+int dCamera_c::getEvFloatListData(f32** i_data, char* i_event) {
+ int num = 0;
+
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ return 0;
+ }
+
+ *i_data = (f32*)mEventData.mEventParams[index].value;
+ num = mEventData.mEventParams[index].field_0x10;
+ } else if (num = dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event)) {
+ *i_data = dComIfGp_evmng_getMyFloatP(mEventData.field_0x4, i_event);
+ } else {
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: (float[]) not found\n", i_event);
+ }
+#endif
+ mEventData.field_0x10 = 1;
+ return 0;
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f ... [%d]\n", i_event, **i_data, num);
+ }
+#endif
+
+ return num;
}
-#pragma pop
/* 80088F1C-80088FE0 08385C 00C4+00 1/1 0/0 0/0 .text getEvXyzListData__9dCamera_cFPP4cXyzPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvXyzListData(cXyz** param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s"
+int dCamera_c::getEvXyzListData(cXyz** i_data, char* i_event) {
+ int num = 0;
+
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ return 0;
+ }
+
+ *i_data = (cXyz*)mEventData.mEventParams[index].value;
+ return mEventData.mEventParams[index].field_0x10;
+ } else if (num = dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event)) {
+ *i_data = dComIfGp_evmng_getMyXyzP(mEventData.field_0x4, i_event);
+ } else {
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: (xyz[]) not found\n", i_event);
+ }
+#endif
+ mEventData.field_0x10 = 1;
+ return 0;
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f %f %f ... [%d]\n", i_event, (*i_data)->x, (*i_data)->y, (*i_data)->z, num);
+ }
+#endif
+
+ return num;
}
-#pragma pop
/* 80088FE0-8008908C 083920 00AC+00 1/1 0/0 0/0 .text getEvStringPntData__9dCamera_cFPc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvStringPntData(char* param_0) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s"
+char* dCamera_c::getEvStringPntData(char* i_event) {
+ char* string = NULL;
+
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ return 0;
+ }
+
+ string = (char*)mEventData.mEventParams[index].value;
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event)) {
+ string = dComIfGp_evmng_getMyStringP(mEventData.field_0x4, i_event);
+ } else {
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: (string) not found\n", i_event);
+ }
+#endif
+ mEventData.field_0x10 = 1;
+ return 0;
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %s\n", i_event, string);
+ }
+#endif
+
+ return string;
}
-#pragma pop
/* 8008908C-80089154 0839CC 00C8+00 20/20 5/5 0/0 .text getEvIntData__9dCamera_cFPiPci */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvIntData(int* param_0, char* param_1, int param_2) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s"
+bool dCamera_c::getEvIntData(int* i_data, char* i_event, int param_2) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ *i_data = param_2;
+ } else {
+ *i_data = *(int*)mEventData.mEventParams[index].value;
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ *i_data = *dComIfGp_evmng_getMyIntegerP(mEventData.field_0x4, i_event);
+ } else {
+ *i_data = param_2;
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %d (d)\n", i_event, *i_data);
+ }
+#endif
+
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %d\n", i_event, *i_data);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 80089154-8008922C 083A94 00D8+00 11/11 1/1 0/0 .text getEvFloatData__9dCamera_cFPfPcf
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvFloatData(f32* param_0, char* param_1, f32 param_2) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s"
+bool dCamera_c::getEvFloatData(f32* i_data, char* i_event, f32 param_2) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ *i_data = param_2;
+ } else {
+ *i_data = *(f32*)mEventData.mEventParams[index].value;
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ *i_data = *dComIfGp_evmng_getMyFloatP(mEventData.field_0x4, i_event);
+ } else {
+ *i_data = param_2;
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f (d)\n", i_event, *i_data);
+ }
+#endif
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f\n", i_event, *i_data);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 8008922C-8008933C 083B6C 0110+00 10/10 0/0 0/0 .text getEvXyzData__9dCamera_cFP4cXyzPc4cXyz */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvXyzData(cXyz* param_0, char* param_1, cXyz param_2) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s"
+bool dCamera_c::getEvXyzData(cXyz* i_data, char* i_event, cXyz param_2) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ *i_data = param_2;
+ } else {
+ *i_data = *(cXyz*)mEventData.mEventParams[index].value;
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ *i_data = *dComIfGp_evmng_getMyXyzP(mEventData.field_0x4, i_event);
+ } else {
+ *i_data = param_2;
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f %f %f (d)\n", i_event, i_data->x, i_data->y, i_data->z);
+ }
+#endif
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %f %f %f\n", i_event, i_data->x, i_data->y, i_data->z);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 8008933C-8008941C 083C7C 00E0+00 7/7 1/1 0/0 .text getEvStringData__9dCamera_cFPcPcPc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvStringData(char* param_0, char* param_1, char* param_2) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s"
+bool dCamera_c::getEvStringData(char* i_data, char* i_event, char* param_2) {
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ strcpy(i_data, param_2);
+ } else {
+ strcpy(i_data, (char*)mEventData.mEventParams[index].value);
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event) != 0) {
+ strcpy(i_data, dComIfGp_evmng_getMyStringP(mEventData.field_0x4, i_event));
+ } else {
+ strcpy(i_data, param_2);
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %s (d)\n", i_event, i_data);
+ }
+#endif
+ return 0;
+ }
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %s\n", i_event, i_data);
+ }
+#endif
+
+ return 1;
}
-#pragma pop
/* 8008941C-800894C4 083D5C 00A8+00 1/1 0/0 0/0 .text getEvStringPntData__9dCamera_cFPcPc
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvStringPntData(char* param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s"
+char* dCamera_c::getEvStringPntData(char* i_event, char* param_1) {
+ char* string = NULL;
+
+ if (chkFlag(0x20000000)) {
+ int index = searchEventArgData(i_event);
+ if (index == -1) {
+ string = param_1;
+ } else {
+ string = (char*)mEventData.mEventParams[index].value;
+ }
+ } else if (dComIfGp_evmng_getMySubstanceNum(mEventData.field_0x4, i_event)) {
+ string = dComIfGp_evmng_getMyStringP(mEventData.field_0x4, i_event);
+ } else {
+ string = param_1;
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %s (d)\n", i_event, string);
+ }
+#endif
+ return string;
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ OS_REPORT("camera: event: %16s: %s\n", i_event, string);
+ }
+#endif
+
+ return string;
}
-#pragma pop
/* 800894C4-800895F4 083E04 0130+00 7/7 1/1 0/0 .text getEvActor__9dCamera_cFPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvActor(char* param_0) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s"
+fopAc_ac_c* dCamera_c::getEvActor(char* i_event) {
+ char* string = getEvStringPntData(i_event);
+ if (string == NULL) {
+ return NULL;
+ }
+
+ fopAc_ac_c* actor;
+ if (*(u32*)string == '@PLA') {
+ actor = mpPlayerActor;
+ } else if (*(u32*)string == '@STA') {
+ actor = dComIfGp_event_getPt1();
+ } else if (*(u32*)string == '@PAR') {
+ actor = dComIfGp_event_getPt2();
+ } else if (*(u32*)string == '@TAL') {
+ actor = dComIfGp_event_getTalkPartner();
+ } else if (*(u32*)string == '@DOO') {
+ actor = dComIfGp_event_getDoorPartner();
+ } else if (*(u32*)string == '@TAR' || *(u32*)string == '@ITE') {
+ actor = dComIfGp_event_getItemPartner();
+ } else if (*(u32*)string == 'Link') {
+ actor = dComIfGp_getLinkPlayer();
+ } else {
+ actor = fopAcM_searchFromName4Event(string, -1);
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ if (actor != NULL) {
+ char name[16];
+ fopAcM_getNameString(actor, name);
+ OS_REPORT("camera: event: = %s\n", name);
+ } else {
+ OS_REPORT("camera: event: = (Who?)\n");
+ }
+ }
+#endif
+
+ return actor;
}
-#pragma pop
/* 800895F4-80089730 083F34 013C+00 8/8 1/1 0/0 .text getEvActor__9dCamera_cFPcPc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::getEvActor(char* param_0, char* param_1) {
- nofralloc
-#include "asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s"
-}
-#pragma pop
+fopAc_ac_c* dCamera_c::getEvActor(char* i_event, char* param_1) {
+ char string[16];
+ string[0] = 0;
+ getEvStringData(string, i_event, param_1);
+ char* name_str = string;
+
+ fopAc_ac_c* actor;
+ if (*(u32*)string == '@PLA') {
+ actor = mpPlayerActor;
+ } else if (*(u32*)string == '@STA') {
+ actor = dComIfGp_event_getPt1();
+ } else if (*(u32*)string == '@PAR') {
+ actor = dComIfGp_event_getPt2();
+ } else if (*(u32*)string == '@TAL') {
+ actor = dComIfGp_event_getTalkPartner();
+ } else if (*(u32*)string == '@DOO') {
+ actor = dComIfGp_event_getDoorPartner();
+ } else if (*(u32*)string == '@TAR' || *(u32*)string == '@ITE') {
+ actor = dComIfGp_event_getItemPartner();
+ } else if (*(u32*)string == 'Link') {
+ actor = dComIfGp_getLinkPlayer();
+ } else {
+ actor = fopAcM_searchFromName4Event(name_str, -1);
+ }
-/* ############################################################################################## */
-/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8037AAF4 = "Timer";
-SECTION_DEAD static char const* const stringBase_8037AAFA = "Stay";
-#pragma pop
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ if (actor != NULL) {
+ char name[16];
+ fopAcM_getNameString(actor, name);
+ OS_REPORT("camera: event: = %s\n", name);
+ } else {
+ OS_REPORT("camera: event: = (Who?)\n");
+ }
+ }
+#endif
+
+ return actor;
+}
/* 80089730-800897E8 084070 00B8+00 0/0 3/0 0/0 .text pauseEvCamera__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::pauseEvCamera() {
- nofralloc
-#include "asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s"
+int dCamera_c::pauseEvCamera() {
+ if (mCurCamTypeTimer == 0) {
+ Reset();
+ field_0x158.field_0x0 = 1;
+ field_0x3e8 = getEvIntData(&field_0x3f0, "Timer", -1);
+ getEvIntData(&field_0x3ec, "Stay", 0);
+ }
+
+ if (field_0x3ec != 0) {
+ setFlag(1);
+ }
+
+ if (field_0x3e8 && mCurCamTypeTimer < field_0x3f0) {
+ return 0;
+ }
+
+ return 1;
}
-#pragma pop
/* ############################################################################################## */
/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -575,36 +855,21 @@ asm void dCamera_c::fixedPositionEvCamera() {
/* 8008BE2C-8008BE50 08676C 0024+00 0/0 1/0 0/0 .text uniformTransEvCamera__9dCamera_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::uniformTransEvCamera() {
- nofralloc
-#include "asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s"
+void dCamera_c::uniformTransEvCamera() {
+ transEvCamera(1);
}
-#pragma pop
/* 8008BE50-8008BE74 086790 0024+00 0/0 1/0 0/0 .text uniformBrakeEvCamera__9dCamera_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::uniformBrakeEvCamera() {
- nofralloc
-#include "asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s"
+void dCamera_c::uniformBrakeEvCamera() {
+ transEvCamera(2);
}
-#pragma pop
/* 8008BE74-8008BE98 0867B4 0024+00 0/0 1/0 0/0 .text uniformAcceleEvCamera__9dCamera_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::uniformAcceleEvCamera() {
- nofralloc
-#include "asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s"
+void dCamera_c::uniformAcceleEvCamera() {
+ transEvCamera(3);
}
-#pragma pop
/* ############################################################################################## */
/* 8037A7F0-8037A7FC 006E50 000C+00 1/1 0/0 0/0 .rodata @3871 */
@@ -654,14 +919,9 @@ asm void dCamera_c::transEvCamera(int param_0) {
#pragma pop
/* 8008E750-8008E774 089090 0024+00 1/1 0/0 0/0 .text isRelChar__25@unnamed@d_ev_camera_cpp@Fc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void func_8008E750() {
- nofralloc
-#include "asm/d/d_ev_camera/func_8008E750.s"
+static bool func_8008E750(char param_0) {
+ return param_0 != '-' && param_0 != 'x';
}
-#pragma pop
/* 8008E774-8008E790 0890B4 001C+00 3/3 6/6 0/0 .text __as__7cSGlobeFRC7cSGlobe */
#pragma push
@@ -842,6 +1102,30 @@ asm void dCamera_c::restorePosEvCamera() {
#pragma pop
/* 80090174-80090230 08AAB4 00BC+00 0/0 1/0 0/0 .text talktoEvCamera__9dCamera_cFv */
+// matches with sinit
+#ifdef NONMATCHING
+void dCamera_c::talktoEvCamera() {
+ dComIfGp_event_getPt1();
+ s32 style = mCamTypeData[mEventData.field_0xc].field_0x18[field_0x190][3];
+
+ if (mCurCamTypeTimer == 0) {
+ clrFlag(0x200000);
+ }
+
+ if (style < 0) {
+ style = mCamParam.SearchStyle('TT01');
+ }
+
+#if DEBUG
+ if (mCurCamTypeTimer == 0 && mCamSetup.CheckFlag(0x40)) {
+ u32 id = mCamParam.Id();
+ OS_REPORT("camera: event: %16s = %d (%c%c%c%c)\n", "style", style, (u8)(id >> 0x18), (u8)(id >> 0x10), (u8)(id >> 0x8), (u8)(id));
+ }
+#endif
+
+ (this->*engine_tbl[mCamParam.Algorythmn(style)])(style);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -850,6 +1134,7 @@ asm void dCamera_c::talktoEvCamera() {
#include "asm/d/d_ev_camera/talktoEvCamera__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -899,7 +1184,7 @@ bool dCamera_c::maptoolIdEvCamera() {
if (mEventData.field_0xec->mType == 0 && mEventData.field_0xec->field_0xC != 0xFF) {
if (mEventData.field_0xec->field_0xC & 1) {
- i_clrFlag(0x200000);
+ clrFlag(0x200000);
}
if (mEventData.field_0xec->field_0xC & 2) {
@@ -962,14 +1247,28 @@ SECTION_DEAD static char const* const stringBase_8037AC6A = "FN01";
#pragma pop
/* 80090478-80090514 08ADB8 009C+00 0/0 1/0 0/0 .text styleEvCamera__9dCamera_cFv */
+// matches with sinit
+#ifdef NONMATCHING
+bool dCamera_c::styleEvCamera() {
+ if (mCurCamTypeTimer == 0) {
+ mEventData.field_0x8 = 0;
+ field_0x160 = 0;
+ }
+
+ s32 style = mCamParam.SearchStyle(*(u32*)getEvStringPntData("Name", "FN01"));
+ (this->*engine_tbl[mCamParam.Algorythmn(style)])(style);
+ return isModeOK();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::styleEvCamera() {
+asm bool dCamera_c::styleEvCamera() {
nofralloc
#include "asm/d/d_ev_camera/styleEvCamera__9dCamera_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -1328,8 +1627,9 @@ asm void dCamera_c::tactEvCamera() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void dComIfGp_saveCameraPosition(int param_0, cXyz* param_1, cXyz* param_2, f32 param_3,
- s16 param_4) {
+/* static asm void dComIfGp_saveCameraPosition(int param_0, cXyz* param_1, cXyz* param_2, f32 param_3,
+ s16 param_4) { */
+extern "C" asm void dComIfGp_saveCameraPosition__FiP4cXyzP4cXyzfs() {
nofralloc
#include "asm/d/d_ev_camera/dComIfGp_saveCameraPosition__FiP4cXyzP4cXyzfs.s"
}
@@ -1342,31 +1642,86 @@ bool dCamera_c::turnToActorEvCamera() {
}
/* 800923C0-800924D0 08CD00 0110+00 0/0 1/0 0/0 .text stbWaitEvCamera__9dCamera_cFv */
+// matches with literals
+#ifdef NONMATCHING
+bool dCamera_c::stbWaitEvCamera() {
+ dDemo_camera_c* demo_cam = dDemo_c::getCamera();
+#if DEBUG
+ char* enabled_report = "-----";
+#endif
+
+ if (demo_cam != NULL) {
+ if (demo_cam->checkEnable(0x40)) {
+ field_0x5c.field_0x8 = demo_cam->getTarget();
+#if DEBUG
+ enabled_report[0] = 'C';
+#endif
+ }
+
+ if (demo_cam->checkEnable(0x10)) {
+ field_0x5c.field_0x14 = demo_cam->getTrans();
+#if DEBUG
+ enabled_report[1] = 'E';
+#endif
+ }
+
+ if (demo_cam->checkEnable(0x4)) {
+ field_0x80 = demo_cam->getFovy();
+#if DEBUG
+ enabled_report[2] = 'F';
+#endif
+ }
+
+ if (demo_cam->checkEnable(0x20)) {
+ mUp = demo_cam->getUp();
+#if DEBUG
+ enabled_report[3] = 'U';
+#endif
+ }
+
+ if (demo_cam->checkEnable(0x80)) {
+ field_0x5c.field_0x20 = cAngle::d2s(-demo_cam->getRoll());
+#if DEBUG
+ enabled_report[4] = 'B';
+#endif
+ }
+
+#if DEBUG
+ if (mCamSetup.CheckFlag(0x8000)) {
+ dDbVw_Report(90, 190, "%s", enabled_report);
+ }
+#endif
+
+ field_0x5c.field_0x0.Val(field_0x5c.field_0x14 - field_0x5c.field_0x8);
+ }
+
+ return true;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::stbWaitEvCamera() {
+asm bool dCamera_c::stbWaitEvCamera() {
nofralloc
#include "asm/d/d_ev_camera/stbWaitEvCamera__9dCamera_cFv.s"
}
#pragma pop
-
-/* ############################################################################################## */
-/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8037AC74 = "Slot";
-#pragma pop
+#endif
/* 800924D0-8009258C 08CE10 00BC+00 0/0 1/0 0/0 .text saveEvCamera__9dCamera_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dCamera_c::saveEvCamera() {
- nofralloc
-#include "asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s"
+bool dCamera_c::saveEvCamera() {
+ int slot;
+ getEvIntData(&slot, "Slot", 0);
+
+ if (slot == 9) {
+ dComIfGp_saveCameraPosition(0, &field_0x5c.field_0x8, &field_0x5c.field_0x14, field_0x80, field_0x5c.field_0x20.Val());
+ } else {
+ pushInfo(&field_0xd0[slot], 1);
+ }
+
+ field_0x158.field_0x0 = 1;
+ return 1;
}
-#pragma pop
/* ############################################################################################## */
/* 8037A884-8037A89C 006EE4 0018+00 1/1 0/0 0/0 .rodata @8840 */
@@ -1912,7 +2267,7 @@ REGISTER_CTORS(0x8009769C, __sinit_d_ev_camera_cpp);
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::attentionPos(fopAc_ac_c* param_0) {
+asm cXyz dCamera_c::attentionPos(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/d_ev_camera/attentionPos__9dCamera_cFP10fopAc_ac_c.s"
}
@@ -1922,7 +2277,8 @@ asm void dCamera_c::attentionPos(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::directionOf(fopAc_ac_c* param_0) {
+// asm cSAngle dCamera_c::directionOf(fopAc_ac_c* param_0) {
+extern "C" asm void directionOf__9dCamera_cFP10fopAc_ac_c() {
nofralloc
#include "asm/d/d_ev_camera/directionOf__9dCamera_cFP10fopAc_ac_c.s"
}
@@ -1932,7 +2288,8 @@ asm void dCamera_c::directionOf(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::positionOf(fopAc_ac_c* param_0) {
+// asm void dCamera_c::positionOf(fopAc_ac_c* param_0) {
+extern "C" asm void positionOf__9dCamera_cFP10fopAc_ac_c() {
nofralloc
#include "asm/d/d_ev_camera/positionOf__9dCamera_cFP10fopAc_ac_c.s"
}
@@ -1942,7 +2299,8 @@ asm void dCamera_c::positionOf(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dCamera_c::setFlag(u32 param_0) {
+// asm void dCamera_c::setFlag(u32 param_0) {
+extern "C" asm void setFlag__9dCamera_cFUl() {
nofralloc
#include "asm/d/d_ev_camera/setFlag__9dCamera_cFUl.s"
}
diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp
index a50b0642f8..b9f69729e6 100644
--- a/src/d/d_stage.cpp
+++ b/src/d/d_stage.cpp
@@ -1891,10 +1891,10 @@ static int dStage_cameraCreate(stage_camera2_data_class* i_cameraData, int i_cam
i_cameraData = static_cast<stage_camera2_data_class*>(cMl::memalignB(-4, 0x18));
if (i_cameraData != NULL) {
- i_cameraData->field_0x4 = 0.0f;
- i_cameraData->field_0x8 = 0.0f;
- i_cameraData->field_0x4 = 0.0f;
- i_cameraData->field_0x0 = param_2;
+ i_cameraData->field_0x0.field_0x4.x = 0.0f;
+ i_cameraData->field_0x0.field_0x4.y = 0.0f;
+ i_cameraData->field_0x0.field_0x4.x = 0.0f;
+ i_cameraData->field_0x0.field_0x0 = param_2;
fopCamM_Create(i_cameraIdx, PROC_CAMERA, i_cameraData);
}