From d923917b39f99ca74bd2ee2f609e8ff193f5c48a Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Tue, 25 Jun 2024 07:34:59 -0700 Subject: [PATCH] work on d_camera / d_ev_camera (#2170) --- Progress.md | 8 +- asm/d/d_camera/Center__9dCamera_cFv.s | 14 - asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s | 26 - asm/d/d_camera/Draw__9dCamera_cFv.s | 11 - asm/d/d_camera/Eye__9dCamera_cFv.s | 14 - ...CameraTypeFromCameraName__9dCamera_cFPCc.s | 50 - ...etCameraTypeFromMapToolID__9dCamera_cFll.s | 150 -- ...__9dCamera_cFP24stage_camera2_data_class.s | 24 - asm/d/d_camera/ModeFix__9dCamera_cFl.s | 4 - asm/d/d_camera/QuickStart__9dCamera_cFv.s | 4 - ...etTagData__9dCamera_cFP10fopAc_ac_clUsUc.s | 24 - asm/d/d_camera/SetTrimSize__9dCamera_cFl.s | 8 - .../d_camera/SetTrimTypeForce__9dCamera_cFl.s | 4 - ...t__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s | 125 - asm/d/d_camera/Start__9dCamera_cFv.s | 7 - asm/d/d_camera/Stay__9dCamera_cFv.s | 4 - asm/d/d_camera/Stop__9dCamera_cFv.s | 7 - asm/d/d_camera/U__9dCamera_cFv.s | 17 - asm/d/d_camera/Up__9dCamera_cFv.s | 19 - asm/d/d_camera/V__9dCamera_cFv.s | 9 - .../camera_create__FP12camera_class.s | 13 - asm/d/d_camera/func_8015FA2C.s | 10 - asm/d/d_camera/func_8015FADC.s | 24 - asm/d/d_camera/func_8015FB28.s | 61 - .../getParamTargetActor__9dCamera_cFl.s | 59 - .../getUSOAngle__9dCamera_cF7cSAngle.s | 10 - .../d_camera/init_phase1__FP12camera_class.s | 33 - asm/d/d_camera/onRoomChange__9dCamera_cFl.s | 54 - ...fo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s | 33 - ...o__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s | 19 - ...oolData__9dCamera_cFP15dCamMapToolDatall.s | 15 - asm/d/d_camera/setUSOAngle__9dCamera_cFv.s | 22 - asm/d/d_ev_camera/func_800889F8.s | 38 - asm/d/d_ev_camera/func_8008E750.s | 11 - asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s | 87 - .../d_ev_camera/getEvActor__9dCamera_cFPcPc.s | 89 - .../getEvFloatData__9dCamera_cFPfPc.s | 56 - .../getEvFloatData__9dCamera_cFPfPcf.s | 60 - .../getEvFloatListData__9dCamera_cFPPfPc.s | 55 - .../getEvIntData__9dCamera_cFPiPc.s | 63 - .../getEvIntData__9dCamera_cFPiPci.s | 56 - .../getEvStringData__9dCamera_cFPcPcPc.s | 62 - .../getEvStringPntData__9dCamera_cFPc.s | 48 - .../getEvStringPntData__9dCamera_cFPcPc.s | 47 - .../getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s | 74 - .../getEvXyzListData__9dCamera_cFPP4cXyzPc.s | 55 - .../d_ev_camera/pauseEvCamera__9dCamera_cFv.s | 51 - .../d_ev_camera/saveEvCamera__9dCamera_cFv.s | 50 - .../uniformAcceleEvCamera__9dCamera_cFv.s | 10 - .../uniformBrakeEvCamera__9dCamera_cFv.s | 10 - .../uniformTransEvCamera__9dCamera_cFv.s | 10 - include/SSystem/SComponent/c_angle.h | 5 +- include/Z2AudioLib/Z2StatusMgr.h | 1 + include/d/a/d_a_alink.h | 6 +- include/d/a/d_a_player.h | 4 + include/d/bg/d_bg_s.h | 2 +- include/d/bg/d_bg_w.h | 4 +- include/d/bg/d_bg_w_base.h | 2 +- include/d/bg/d_bg_w_kcol.h | 2 +- include/d/com/d_com_inf_game.h | 68 +- include/d/d_attention.h | 5 + include/d/d_cam_param.h | 19 +- include/d/d_camera.h | 225 +- include/d/d_demo.h | 14 +- include/d/d_drawlist.h | 2 + include/d/d_stage.h | 17 +- include/d/event/d_event_manager.h | 1 + include/d/save/d_save.h | 12 + include/f_op/f_op_actor.h | 2 + include/f_op/f_op_camera_mng.h | 42 +- include/m_Do/m_Do_audio.h | 8 + include/m_Do/m_Do_controller_pad.h | 1 + include/m_Do/m_Do_mtx.h | 4 + include/rel/d/a/d_a_horse/d_a_horse.h | 3 + src/d/a/d_a_alink_hang.inc | 27 +- src/d/bg/d_bg_s.cpp | 2 +- src/d/bg/d_bg_w.cpp | 4 +- src/d/bg/d_bg_w_kcol.cpp | 2 +- src/d/d_camera.cpp | 2260 ++++++++++++++--- src/d/d_demo.cpp | 2 +- src/d/d_ev_camera.cpp | 682 +++-- src/d/d_stage.cpp | 8 +- 82 files changed, 2759 insertions(+), 2491 deletions(-) delete mode 100644 asm/d/d_camera/Center__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/ChangeModeOK__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/Draw__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/Eye__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/GetCameraTypeFromCameraName__9dCamera_cFPCc.s delete mode 100644 asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s delete mode 100644 asm/d/d_camera/GetCameraTypeFromToolData__9dCamera_cFP24stage_camera2_data_class.s delete mode 100644 asm/d/d_camera/ModeFix__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/QuickStart__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/SetTagData__9dCamera_cFP10fopAc_ac_clUsUc.s delete mode 100644 asm/d/d_camera/SetTrimSize__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/SetTrimTypeForce__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/Set__15dCamMapToolDataFllP10fopAc_ac_cUsUc.s delete mode 100644 asm/d/d_camera/Start__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/Stay__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/Stop__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/U__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/Up__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/V__9dCamera_cFv.s delete mode 100644 asm/d/d_camera/camera_create__FP12camera_class.s delete mode 100644 asm/d/d_camera/func_8015FA2C.s delete mode 100644 asm/d/d_camera/func_8015FADC.s delete mode 100644 asm/d/d_camera/func_8015FB28.s delete mode 100644 asm/d/d_camera/getParamTargetActor__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/getUSOAngle__9dCamera_cF7cSAngle.s delete mode 100644 asm/d/d_camera/init_phase1__FP12camera_class.s delete mode 100644 asm/d/d_camera/onRoomChange__9dCamera_cFl.s delete mode 100644 asm/d/d_camera/popInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_c.s delete mode 100644 asm/d/d_camera/pushInfo__9dCamera_cFPQ29dCamera_c10dCamInfo_cs.s delete mode 100644 asm/d/d_camera/setRoomMapToolData__9dCamera_cFP15dCamMapToolDatall.s delete mode 100644 asm/d/d_camera/setUSOAngle__9dCamera_cFv.s delete mode 100644 asm/d/d_ev_camera/func_800889F8.s delete mode 100644 asm/d/d_ev_camera/func_8008E750.s delete mode 100644 asm/d/d_ev_camera/getEvActor__9dCamera_cFPc.s delete mode 100644 asm/d/d_ev_camera/getEvActor__9dCamera_cFPcPc.s delete mode 100644 asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPc.s delete mode 100644 asm/d/d_ev_camera/getEvFloatData__9dCamera_cFPfPcf.s delete mode 100644 asm/d/d_ev_camera/getEvFloatListData__9dCamera_cFPPfPc.s delete mode 100644 asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPc.s delete mode 100644 asm/d/d_ev_camera/getEvIntData__9dCamera_cFPiPci.s delete mode 100644 asm/d/d_ev_camera/getEvStringData__9dCamera_cFPcPcPc.s delete mode 100644 asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPc.s delete mode 100644 asm/d/d_ev_camera/getEvStringPntData__9dCamera_cFPcPc.s delete mode 100644 asm/d/d_ev_camera/getEvXyzData__9dCamera_cFP4cXyzPc4cXyz.s delete mode 100644 asm/d/d_ev_camera/getEvXyzListData__9dCamera_cFPP4cXyzPc.s delete mode 100644 asm/d/d_ev_camera/pauseEvCamera__9dCamera_cFv.s delete mode 100644 asm/d/d_ev_camera/saveEvCamera__9dCamera_cFv.s delete mode 100644 asm/d/d_ev_camera/uniformAcceleEvCamera__9dCamera_cFv.s delete mode 100644 asm/d/d_ev_camera/uniformBrakeEvCamera__9dCamera_cFv.s delete mode 100644 asm/d/d_ev_camera/uniformTransEvCamera__9dCamera_cFv.s 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 { 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; -/* ############################################################################################## */ -/* 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 + 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); + } + +#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(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); }