summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-21 11:15:22 +0200
committerGitHub <noreply@github.com>2024-01-21 01:15:22 -0800
commit0228b4e03ba255fdfabc25dab14ed21b5479a8d2 (patch)
tree6e8f6ab50a10deb32db03e34d1139cb73e968511
parent9f372c40d5cbac67bb445247efc56ab6a2b5a81e (diff)
Work on d_msg_scrn_howl + misc (#2040)
-rw-r--r--asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s11
-rw-r--r--asm/d/d_drawlist/init__12dDlst_list_cFv.s67
-rw-r--r--asm/d/d_lib/dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz.s60
-rw-r--r--asm/d/d_lib/dLib_getEventSwitchNo__Fi.s17
-rw-r--r--asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s54
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/__dt__14dMsgScrnHowl_cFv.s206
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/addCountGuide__14dMsgScrnHowl_cFs.s7
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/addCount__14dMsgScrnHowl_cFs.s11
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/calcMain__14dMsgScrnHowl_cFv.s28
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/fukiAlpha__14dMsgScrnHowl_cFf.s10
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/fukiTrans__14dMsgScrnHowl_cFff.s10
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/getGuideDataSize__14dMsgScrnHowl_cFv.s37
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/getGuideDataType__14dMsgScrnHowl_cFi.s55
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/getOnLineNum__14dMsgScrnHowl_cFi.s32
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_init__14dMsgScrnHowl_cFv.s4
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_proc__14dMsgScrnHowl_cFv.s67
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/guide_off_proc__14dMsgScrnHowl_cFv.s34
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/guide_on_proc__14dMsgScrnHowl_cFv.s45
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/guide_stop_proc__14dMsgScrnHowl_cFv.s45
-rw-r--r--asm/msg/scrn/d_msg_scrn_howl/isKeyCheck__14dMsgScrnHowl_cFv.s24
-rw-r--r--include/JSystem/J2DGraph/J2DGrafContext.h4
-rw-r--r--include/Z2AudioLib/Z2WolfHowlMgr.h1
-rw-r--r--include/d/a/d_a_alink.h6
-rw-r--r--include/d/d_drawlist.h4
-rw-r--r--include/d/msg/d_msg_object.h2
-rw-r--r--include/d/pane/d_pane_class.h12
-rw-r--r--include/msg/scrn/d_msg_scrn_howl.h111
-rw-r--r--src/d/d_drawlist.cpp210
-rw-r--r--src/d/d_lib.cpp80
-rw-r--r--src/d/d_name.cpp39
-rw-r--r--src/msg/scrn/d_msg_scrn_base.cpp1
-rw-r--r--src/msg/scrn/d_msg_scrn_boss.cpp1
-rw-r--r--src/msg/scrn/d_msg_scrn_explain.cpp9
-rw-r--r--src/msg/scrn/d_msg_scrn_howl.cpp1049
34 files changed, 1112 insertions, 1241 deletions
diff --git a/asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s b/asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s
deleted file mode 100644
index b03fec8119..0000000000
--- a/asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s
+++ /dev/null
@@ -1,11 +0,0 @@
-lbl_800539DC:
-/* 800539DC 54 80 06 3E */ clrlwi r0, r4, 0x18
-/* 800539E0 28 00 00 02 */ cmplwi r0, 2
-/* 800539E4 40 80 00 14 */ bge lbl_800539F8
-/* 800539E8 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d
-/* 800539EC 7C 63 02 14 */ add r3, r3, r0
-/* 800539F0 80 63 01 00 */ lwz r3, 0x100(r3)
-/* 800539F4 4E 80 00 20 */ blr
-lbl_800539F8:
-/* 800539F8 38 60 00 00 */ li r3, 0
-/* 800539FC 4E 80 00 20 */ blr
diff --git a/asm/d/d_drawlist/init__12dDlst_list_cFv.s b/asm/d/d_drawlist/init__12dDlst_list_cFv.s
deleted file mode 100644
index cc1507a0d5..0000000000
--- a/asm/d/d_drawlist/init__12dDlst_list_cFv.s
+++ /dev/null
@@ -1,67 +0,0 @@
-lbl_80056390:
-/* 80056390 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80056394 7C 08 02 A6 */ mflr r0
-/* 80056398 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8005639C 39 61 00 20 */ addi r11, r1, 0x20
-/* 800563A0 48 30 BE 39 */ bl _savegpr_28
-/* 800563A4 7C 7F 1B 78 */ mr r31, r3
-/* 800563A8 7F FE FB 78 */ mr r30, r31
-/* 800563AC 3C 60 80 38 */ lis r3, l_drawlistSize@ha /* 0x8037A178@ha */
-/* 800563B0 38 03 A1 78 */ addi r0, r3, l_drawlistSize@l /* 0x8037A178@l */
-/* 800563B4 7C 1D 03 78 */ mr r29, r0
-/* 800563B8 3B 80 00 00 */ li r28, 0
-lbl_800563BC:
-/* 800563BC A0 7D 00 00 */ lhz r3, 0(r29)
-/* 800563C0 3B BD 00 02 */ addi r29, r29, 2
-/* 800563C4 4B FF E0 B5 */ bl J3DDrawBuffer__create__FUl
-/* 800563C8 90 7E 00 00 */ stw r3, 0(r30)
-/* 800563CC 3B 9C 00 01 */ addi r28, r28, 1
-/* 800563D0 2C 1C 00 15 */ cmpwi r28, 0x15
-/* 800563D4 3B DE 00 04 */ addi r30, r30, 4
-/* 800563D8 41 80 FF E4 */ blt lbl_800563BC
-/* 800563DC 3C 60 80 38 */ lis r3, l_nonSortId@ha /* 0x8037A1A4@ha */
-/* 800563E0 38 03 A1 A4 */ addi r0, r3, l_nonSortId@l /* 0x8037A1A4@l */
-/* 800563E4 7C 05 03 78 */ mr r5, r0
-/* 800563E8 38 60 00 05 */ li r3, 5
-/* 800563EC 38 00 00 09 */ li r0, 9
-/* 800563F0 7C 09 03 A6 */ mtctr r0
-lbl_800563F4:
-/* 800563F4 88 05 00 00 */ lbz r0, 0(r5)
-/* 800563F8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
-/* 800563FC 7C 9F 00 2E */ lwzx r4, r31, r0
-/* 80056400 90 64 00 0C */ stw r3, 0xc(r4)
-/* 80056404 38 A5 00 01 */ addi r5, r5, 1
-/* 80056408 42 00 FF EC */ bdnz lbl_800563F4
-/* 8005640C 38 A2 86 C4 */ la r5, l_zSortId(r2) /* 804520C4-_SDA2_BASE_ */
-/* 80056410 38 60 00 02 */ li r3, 2
-/* 80056414 38 00 00 06 */ li r0, 6
-/* 80056418 7C 09 03 A6 */ mtctr r0
-lbl_8005641C:
-/* 8005641C 88 05 00 00 */ lbz r0, 0(r5)
-/* 80056420 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
-/* 80056424 7C 9F 00 2E */ lwzx r4, r31, r0
-/* 80056428 90 64 00 0C */ stw r3, 0xc(r4)
-/* 8005642C 38 A5 00 01 */ addi r5, r5, 1
-/* 80056430 42 00 FF EC */ bdnz lbl_8005641C
-/* 80056434 80 1F 00 1C */ lwz r0, 0x1c(r31)
-/* 80056438 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
-/* 8005643C 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
-/* 80056440 90 03 00 48 */ stw r0, 0x48(r3)
-/* 80056444 80 1F 00 20 */ lwz r0, 0x20(r31)
-/* 80056448 90 03 00 4C */ stw r0, 0x4c(r3)
-/* 8005644C 38 1F 00 54 */ addi r0, r31, 0x54
-/* 80056450 90 1F 00 64 */ stw r0, 0x64(r31)
-/* 80056454 38 1F 00 6C */ addi r0, r31, 0x6c
-/* 80056458 90 1F 00 AC */ stw r0, 0xac(r31)
-/* 8005645C 38 1F 00 B4 */ addi r0, r31, 0xb4
-/* 80056460 90 1F 01 B4 */ stw r0, 0x1b4(r31)
-/* 80056464 38 1F 01 BC */ addi r0, r31, 0x1bc
-/* 80056468 90 1F 02 3C */ stw r0, 0x23c(r31)
-/* 8005646C 38 7F 02 5C */ addi r3, r31, 0x25c
-/* 80056470 4B FF F2 15 */ bl init__21dDlst_shadowControl_cFv
-/* 80056474 39 61 00 20 */ addi r11, r1, 0x20
-/* 80056478 48 30 BD AD */ bl _restgpr_28
-/* 8005647C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80056480 7C 08 03 A6 */ mtlr r0
-/* 80056484 38 21 00 20 */ addi r1, r1, 0x20
-/* 80056488 4E 80 00 20 */ blr
diff --git a/asm/d/d_lib/dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz.s b/asm/d/d_lib/dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz.s
deleted file mode 100644
index f85c75466f..0000000000
--- a/asm/d/d_lib/dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz.s
+++ /dev/null
@@ -1,60 +0,0 @@
-lbl_80032654:
-/* 80032654 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80032658 7C 08 02 A6 */ mflr r0
-/* 8003265C 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80032660 39 61 00 30 */ addi r11, r1, 0x30
-/* 80032664 48 32 FB 79 */ bl _savegpr_29
-/* 80032668 7C 67 1B 78 */ mr r7, r3
-/* 8003266C 7C 9D 23 78 */ mr r29, r4
-/* 80032670 7C BE 2B 78 */ mr r30, r5
-/* 80032674 7C DF 33 78 */ mr r31, r6
-/* 80032678 38 61 00 08 */ addi r3, r1, 8
-/* 8003267C 38 87 04 D0 */ addi r4, r7, 0x4d0
-/* 80032680 38 BD 04 D0 */ addi r5, r29, 0x4d0
-/* 80032684 48 23 44 B1 */ bl __mi__4cXyzCFRC3Vec
-/* 80032688 C0 01 00 08 */ lfs f0, 8(r1)
-/* 8003268C D0 01 00 14 */ stfs f0, 0x14(r1)
-/* 80032690 C0 01 00 0C */ lfs f0, 0xc(r1)
-/* 80032694 D0 01 00 18 */ stfs f0, 0x18(r1)
-/* 80032698 C0 01 00 10 */ lfs f0, 0x10(r1)
-/* 8003269C D0 01 00 1C */ stfs f0, 0x1c(r1)
-/* 800326A0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
-/* 800326A4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
-/* 800326A8 A8 1D 04 DE */ lha r0, 0x4de(r29)
-/* 800326AC 7C 00 00 D0 */ neg r0, r0
-/* 800326B0 7C 04 07 34 */ extsh r4, r0
-/* 800326B4 4B FD 9D 29 */ bl mDoMtx_YrotS__FPA4_fs
-/* 800326B8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
-/* 800326BC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
-/* 800326C0 38 81 00 14 */ addi r4, r1, 0x14
-/* 800326C4 7C 85 23 78 */ mr r5, r4
-/* 800326C8 48 31 46 A5 */ bl PSMTXMultVec
-/* 800326CC C0 1E 00 00 */ lfs f0, 0(r30)
-/* 800326D0 C0 21 00 14 */ lfs f1, 0x14(r1)
-/* 800326D4 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 800326D8 4C 40 13 82 */ cror 2, 0, 2
-/* 800326DC 40 82 00 40 */ bne lbl_8003271C
-/* 800326E0 C0 1F 00 00 */ lfs f0, 0(r31)
-/* 800326E4 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 800326E8 4C 40 13 82 */ cror 2, 0, 2
-/* 800326EC 40 82 00 30 */ bne lbl_8003271C
-/* 800326F0 C0 1E 00 08 */ lfs f0, 8(r30)
-/* 800326F4 C0 21 00 1C */ lfs f1, 0x1c(r1)
-/* 800326F8 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 800326FC 4C 40 13 82 */ cror 2, 0, 2
-/* 80032700 40 82 00 1C */ bne lbl_8003271C
-/* 80032704 C0 1F 00 08 */ lfs f0, 8(r31)
-/* 80032708 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 8003270C 4C 40 13 82 */ cror 2, 0, 2
-/* 80032710 40 82 00 0C */ bne lbl_8003271C
-/* 80032714 38 60 00 01 */ li r3, 1
-/* 80032718 48 00 00 08 */ b lbl_80032720
-lbl_8003271C:
-/* 8003271C 38 60 00 00 */ li r3, 0
-lbl_80032720:
-/* 80032720 39 61 00 30 */ addi r11, r1, 0x30
-/* 80032724 48 32 FB 05 */ bl _restgpr_29
-/* 80032728 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 8003272C 7C 08 03 A6 */ mtlr r0
-/* 80032730 38 21 00 30 */ addi r1, r1, 0x30
-/* 80032734 4E 80 00 20 */ blr
diff --git a/asm/d/d_lib/dLib_getEventSwitchNo__Fi.s b/asm/d/d_lib/dLib_getEventSwitchNo__Fi.s
deleted file mode 100644
index 33781d2daa..0000000000
--- a/asm/d/d_lib/dLib_getEventSwitchNo__Fi.s
+++ /dev/null
@@ -1,17 +0,0 @@
-lbl_8003261C:
-/* 8003261C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80032620 7C 08 02 A6 */ mflr r0
-/* 80032624 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80032628 54 63 06 3E */ clrlwi r3, r3, 0x18
-/* 8003262C 48 01 0E AD */ bl searchMapEventData__14dEvt_control_cFUc
-/* 80032630 28 03 00 00 */ cmplwi r3, 0
-/* 80032634 41 82 00 0C */ beq lbl_80032640
-/* 80032638 88 63 00 1B */ lbz r3, 0x1b(r3)
-/* 8003263C 48 00 00 08 */ b lbl_80032644
-lbl_80032640:
-/* 80032640 38 60 00 FF */ li r3, 0xff
-lbl_80032644:
-/* 80032644 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80032648 7C 08 03 A6 */ mtlr r0
-/* 8003264C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80032650 4E 80 00 20 */ blr
diff --git a/asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s b/asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s
deleted file mode 100644
index 03338b46e3..0000000000
--- a/asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s
+++ /dev/null
@@ -1,54 +0,0 @@
-lbl_80032738:
-/* 80032738 54 2B 06 FE */ clrlwi r11, r1, 0x1b
-/* 8003273C 21 6B FF A0 */ subfic r11, r11, -96
-/* 80032740 7C 2C 0B 78 */ mr r12, r1
-/* 80032744 7C 21 59 6E */ stwux r1, r1, r11
-/* 80032748 7C 08 02 A6 */ mflr r0
-/* 8003274C 90 0C 00 04 */ stw r0, 4(r12)
-/* 80032750 93 EC FF FC */ stw r31, -4(r12)
-/* 80032754 93 CC FF F8 */ stw r30, -8(r12)
-/* 80032758 7C 7E 1B 78 */ mr r30, r3
-/* 8003275C 7C 9F 23 78 */ mr r31, r4
-/* 80032760 48 2A 50 BD */ bl getAramAddress__14JKRAramArchiveFPCc
-/* 80032764 28 03 00 00 */ cmplwi r3, 0
-/* 80032768 40 82 00 0C */ bne lbl_80032774
-/* 8003276C 38 60 00 00 */ li r3, 0
-/* 80032770 48 00 00 78 */ b lbl_800327E8
-lbl_80032774:
-/* 80032774 38 81 00 20 */ addi r4, r1, 0x20
-/* 80032778 38 A0 00 20 */ li r5, 0x20
-/* 8003277C 38 C0 00 00 */ li r6, 0
-/* 80032780 38 E0 00 00 */ li r7, 0
-/* 80032784 39 00 00 00 */ li r8, 0
-/* 80032788 39 20 FF FF */ li r9, -1
-/* 8003278C 39 40 00 00 */ li r10, 0
-/* 80032790 48 29 FE 25 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl
-/* 80032794 7F C3 F3 78 */ mr r3, r30
-/* 80032798 7F E4 FB 78 */ mr r4, r31
-/* 8003279C 38 A0 00 00 */ li r5, 0
-/* 800327A0 48 2A 3E 05 */ bl findFsResource__10JKRArchiveCFPCcUl
-/* 800327A4 88 C1 00 27 */ lbz r6, 0x27(r1)
-/* 800327A8 88 A1 00 26 */ lbz r5, 0x26(r1)
-/* 800327AC 88 81 00 24 */ lbz r4, 0x24(r1)
-/* 800327B0 88 01 00 25 */ lbz r0, 0x25(r1)
-/* 800327B4 54 00 80 1E */ slwi r0, r0, 0x10
-/* 800327B8 50 80 C0 0E */ rlwimi r0, r4, 0x18, 0, 7
-/* 800327BC 50 A0 44 2E */ rlwimi r0, r5, 8, 0x10, 0x17
-/* 800327C0 7C C4 03 78 */ or r4, r6, r0
-/* 800327C4 38 04 00 1F */ addi r0, r4, 0x1f
-/* 800327C8 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
-/* 800327CC 80 63 00 0C */ lwz r3, 0xc(r3)
-/* 800327D0 38 03 00 1F */ addi r0, r3, 0x1f
-/* 800327D4 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
-/* 800327D8 7C 04 00 40 */ cmplw r4, r0
-/* 800327DC 7C 03 03 78 */ mr r3, r0
-/* 800327E0 40 81 00 08 */ ble lbl_800327E8
-/* 800327E4 7C 83 23 78 */ mr r3, r4
-lbl_800327E8:
-/* 800327E8 81 41 00 00 */ lwz r10, 0(r1)
-/* 800327EC 83 EA FF FC */ lwz r31, -4(r10)
-/* 800327F0 83 CA FF F8 */ lwz r30, -8(r10)
-/* 800327F4 80 0A 00 04 */ lwz r0, 4(r10)
-/* 800327F8 7C 08 03 A6 */ mtlr r0
-/* 800327FC 7D 41 53 78 */ mr r1, r10
-/* 80032800 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/__dt__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/__dt__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index b56b93de47..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/__dt__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,206 +0,0 @@
-lbl_80241784:
-/* 80241784 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80241788 7C 08 02 A6 */ mflr r0
-/* 8024178C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80241790 39 61 00 20 */ addi r11, r1, 0x20
-/* 80241794 48 12 0A 3D */ bl _savegpr_26
-/* 80241798 7C 7E 1B 79 */ or. r30, r3, r3
-/* 8024179C 7C 9F 23 78 */ mr r31, r4
-/* 802417A0 41 82 02 B4 */ beq lbl_80241A54
-/* 802417A4 3C 60 80 3C */ lis r3, __vt__14dMsgScrnHowl_c@ha /* 0x803C1190@ha */
-/* 802417A8 38 03 11 90 */ addi r0, r3, __vt__14dMsgScrnHowl_c@l /* 0x803C1190@l */
-/* 802417AC 90 1E 00 00 */ stw r0, 0(r30)
-/* 802417B0 80 7E 00 04 */ lwz r3, 4(r30)
-/* 802417B4 28 03 00 00 */ cmplwi r3, 0
-/* 802417B8 41 82 00 18 */ beq lbl_802417D0
-/* 802417BC 38 80 00 01 */ li r4, 1
-/* 802417C0 81 83 00 00 */ lwz r12, 0(r3)
-/* 802417C4 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802417C8 7D 89 03 A6 */ mtctr r12
-/* 802417CC 4E 80 04 21 */ bctrl
-lbl_802417D0:
-/* 802417D0 38 00 00 00 */ li r0, 0
-/* 802417D4 90 1E 00 04 */ stw r0, 4(r30)
-/* 802417D8 80 7E 00 08 */ lwz r3, 8(r30)
-/* 802417DC 28 03 00 00 */ cmplwi r3, 0
-/* 802417E0 41 82 00 18 */ beq lbl_802417F8
-/* 802417E4 38 80 00 01 */ li r4, 1
-/* 802417E8 81 83 00 00 */ lwz r12, 0(r3)
-/* 802417EC 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802417F0 7D 89 03 A6 */ mtctr r12
-/* 802417F4 4E 80 04 21 */ bctrl
-lbl_802417F8:
-/* 802417F8 3B A0 00 00 */ li r29, 0
-/* 802417FC 93 BE 00 08 */ stw r29, 8(r30)
-/* 80241800 3B 40 00 00 */ li r26, 0
-lbl_80241804:
-/* 80241804 7F 7E EA 14 */ add r27, r30, r29
-/* 80241808 80 7B 00 F4 */ lwz r3, 0xf4(r27)
-/* 8024180C 28 03 00 00 */ cmplwi r3, 0
-/* 80241810 41 82 00 18 */ beq lbl_80241828
-/* 80241814 38 80 00 01 */ li r4, 1
-/* 80241818 81 83 00 00 */ lwz r12, 0(r3)
-/* 8024181C 81 8C 00 08 */ lwz r12, 8(r12)
-/* 80241820 7D 89 03 A6 */ mtctr r12
-/* 80241824 4E 80 04 21 */ bctrl
-lbl_80241828:
-/* 80241828 38 00 00 00 */ li r0, 0
-/* 8024182C 90 1B 00 F4 */ stw r0, 0xf4(r27)
-/* 80241830 80 7B 00 FC */ lwz r3, 0xfc(r27)
-/* 80241834 28 03 00 00 */ cmplwi r3, 0
-/* 80241838 41 82 00 18 */ beq lbl_80241850
-/* 8024183C 38 80 00 01 */ li r4, 1
-/* 80241840 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241844 81 8C 00 08 */ lwz r12, 8(r12)
-/* 80241848 7D 89 03 A6 */ mtctr r12
-/* 8024184C 4E 80 04 21 */ bctrl
-lbl_80241850:
-/* 80241850 3B 80 00 00 */ li r28, 0
-/* 80241854 93 9B 00 FC */ stw r28, 0xfc(r27)
-/* 80241858 3B 5A 00 01 */ addi r26, r26, 1
-/* 8024185C 2C 1A 00 02 */ cmpwi r26, 2
-/* 80241860 3B BD 00 04 */ addi r29, r29, 4
-/* 80241864 41 80 FF A0 */ blt lbl_80241804
-/* 80241868 3B 40 00 00 */ li r26, 0
-/* 8024186C 3B A0 00 00 */ li r29, 0
-lbl_80241870:
-/* 80241870 3B 7D 00 C4 */ addi r27, r29, 0xc4
-/* 80241874 7C 7E D8 2E */ lwzx r3, r30, r27
-/* 80241878 28 03 00 00 */ cmplwi r3, 0
-/* 8024187C 41 82 00 18 */ beq lbl_80241894
-/* 80241880 38 80 00 01 */ li r4, 1
-/* 80241884 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241888 81 8C 00 08 */ lwz r12, 8(r12)
-/* 8024188C 7D 89 03 A6 */ mtctr r12
-/* 80241890 4E 80 04 21 */ bctrl
-lbl_80241894:
-/* 80241894 7F 9E D9 2E */ stwx r28, r30, r27
-/* 80241898 3B 5A 00 01 */ addi r26, r26, 1
-/* 8024189C 2C 1A 00 03 */ cmpwi r26, 3
-/* 802418A0 3B BD 00 04 */ addi r29, r29, 4
-/* 802418A4 41 80 FF CC */ blt lbl_80241870
-/* 802418A8 3B 40 00 00 */ li r26, 0
-/* 802418AC 3B A0 00 00 */ li r29, 0
-/* 802418B0 3B 80 00 00 */ li r28, 0
-lbl_802418B4:
-/* 802418B4 3B 7D 00 D0 */ addi r27, r29, 0xd0
-/* 802418B8 7C 7E D8 2E */ lwzx r3, r30, r27
-/* 802418BC 28 03 00 00 */ cmplwi r3, 0
-/* 802418C0 41 82 00 18 */ beq lbl_802418D8
-/* 802418C4 38 80 00 01 */ li r4, 1
-/* 802418C8 81 83 00 00 */ lwz r12, 0(r3)
-/* 802418CC 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802418D0 7D 89 03 A6 */ mtctr r12
-/* 802418D4 4E 80 04 21 */ bctrl
-lbl_802418D8:
-/* 802418D8 7F 9E D9 2E */ stwx r28, r30, r27
-/* 802418DC 3B 5A 00 01 */ addi r26, r26, 1
-/* 802418E0 2C 1A 00 07 */ cmpwi r26, 7
-/* 802418E4 3B BD 00 04 */ addi r29, r29, 4
-/* 802418E8 41 80 FF CC */ blt lbl_802418B4
-/* 802418EC 80 7E 00 F0 */ lwz r3, 0xf0(r30)
-/* 802418F0 28 03 00 00 */ cmplwi r3, 0
-/* 802418F4 41 82 00 18 */ beq lbl_8024190C
-/* 802418F8 38 80 00 01 */ li r4, 1
-/* 802418FC 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241900 81 8C 00 08 */ lwz r12, 8(r12)
-/* 80241904 7D 89 03 A6 */ mtctr r12
-/* 80241908 4E 80 04 21 */ bctrl
-lbl_8024190C:
-/* 8024190C 38 00 00 00 */ li r0, 0
-/* 80241910 90 1E 00 F0 */ stw r0, 0xf0(r30)
-/* 80241914 80 7E 00 EC */ lwz r3, 0xec(r30)
-/* 80241918 28 03 00 00 */ cmplwi r3, 0
-/* 8024191C 41 82 00 18 */ beq lbl_80241934
-/* 80241920 38 80 00 01 */ li r4, 1
-/* 80241924 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241928 81 8C 00 08 */ lwz r12, 8(r12)
-/* 8024192C 7D 89 03 A6 */ mtctr r12
-/* 80241930 4E 80 04 21 */ bctrl
-lbl_80241934:
-/* 80241934 38 00 00 00 */ li r0, 0
-/* 80241938 90 1E 00 EC */ stw r0, 0xec(r30)
-/* 8024193C 80 7E 01 1C */ lwz r3, 0x11c(r30)
-/* 80241940 28 03 00 00 */ cmplwi r3, 0
-/* 80241944 41 82 00 18 */ beq lbl_8024195C
-/* 80241948 38 80 00 01 */ li r4, 1
-/* 8024194C 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241950 81 8C 00 08 */ lwz r12, 8(r12)
-/* 80241954 7D 89 03 A6 */ mtctr r12
-/* 80241958 4E 80 04 21 */ bctrl
-lbl_8024195C:
-/* 8024195C 38 00 00 00 */ li r0, 0
-/* 80241960 90 1E 01 1C */ stw r0, 0x11c(r30)
-/* 80241964 80 7E 01 20 */ lwz r3, 0x120(r30)
-/* 80241968 28 03 00 00 */ cmplwi r3, 0
-/* 8024196C 41 82 00 18 */ beq lbl_80241984
-/* 80241970 38 80 00 01 */ li r4, 1
-/* 80241974 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241978 81 8C 00 08 */ lwz r12, 8(r12)
-/* 8024197C 7D 89 03 A6 */ mtctr r12
-/* 80241980 4E 80 04 21 */ bctrl
-lbl_80241984:
-/* 80241984 38 00 00 00 */ li r0, 0
-/* 80241988 90 1E 01 20 */ stw r0, 0x120(r30)
-/* 8024198C 80 7E 01 04 */ lwz r3, 0x104(r30)
-/* 80241990 28 03 00 00 */ cmplwi r3, 0
-/* 80241994 41 82 00 18 */ beq lbl_802419AC
-/* 80241998 38 80 00 01 */ li r4, 1
-/* 8024199C 81 83 00 00 */ lwz r12, 0(r3)
-/* 802419A0 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802419A4 7D 89 03 A6 */ mtctr r12
-/* 802419A8 4E 80 04 21 */ bctrl
-lbl_802419AC:
-/* 802419AC 3B 80 00 00 */ li r28, 0
-/* 802419B0 93 9E 01 04 */ stw r28, 0x104(r30)
-/* 802419B4 3B 40 00 00 */ li r26, 0
-/* 802419B8 3B A0 00 00 */ li r29, 0
-lbl_802419BC:
-/* 802419BC 3B 7D 01 08 */ addi r27, r29, 0x108
-/* 802419C0 7C 7E D8 2E */ lwzx r3, r30, r27
-/* 802419C4 28 03 00 00 */ cmplwi r3, 0
-/* 802419C8 41 82 00 18 */ beq lbl_802419E0
-/* 802419CC 38 80 00 01 */ li r4, 1
-/* 802419D0 81 83 00 00 */ lwz r12, 0(r3)
-/* 802419D4 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802419D8 7D 89 03 A6 */ mtctr r12
-/* 802419DC 4E 80 04 21 */ bctrl
-lbl_802419E0:
-/* 802419E0 7F 9E D9 2E */ stwx r28, r30, r27
-/* 802419E4 3B 5A 00 01 */ addi r26, r26, 1
-/* 802419E8 2C 1A 00 05 */ cmpwi r26, 5
-/* 802419EC 3B BD 00 04 */ addi r29, r29, 4
-/* 802419F0 41 80 FF CC */ blt lbl_802419BC
-/* 802419F4 80 7E 01 24 */ lwz r3, 0x124(r30)
-/* 802419F8 28 03 00 00 */ cmplwi r3, 0
-/* 802419FC 41 82 00 18 */ beq lbl_80241A14
-/* 80241A00 38 80 00 01 */ li r4, 1
-/* 80241A04 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241A08 81 8C 00 08 */ lwz r12, 8(r12)
-/* 80241A0C 7D 89 03 A6 */ mtctr r12
-/* 80241A10 4E 80 04 21 */ bctrl
-lbl_80241A14:
-/* 80241A14 38 00 00 00 */ li r0, 0
-/* 80241A18 90 1E 01 24 */ stw r0, 0x124(r30)
-/* 80241A1C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241A20 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241A24 80 63 5C 80 */ lwz r3, 0x5c80(r3)
-/* 80241A28 81 83 00 00 */ lwz r12, 0(r3)
-/* 80241A2C 81 8C 00 24 */ lwz r12, 0x24(r12)
-/* 80241A30 7D 89 03 A6 */ mtctr r12
-/* 80241A34 4E 80 04 21 */ bctrl
-/* 80241A38 7F C3 F3 78 */ mr r3, r30
-/* 80241A3C 38 80 00 00 */ li r4, 0
-/* 80241A40 4B FF A6 E5 */ bl __dt__14dMsgScrnBase_cFv
-/* 80241A44 7F E0 07 35 */ extsh. r0, r31
-/* 80241A48 40 81 00 0C */ ble lbl_80241A54
-/* 80241A4C 7F C3 F3 78 */ mr r3, r30
-/* 80241A50 48 08 D2 ED */ bl __dl__FPv
-lbl_80241A54:
-/* 80241A54 7F C3 F3 78 */ mr r3, r30
-/* 80241A58 39 61 00 20 */ addi r11, r1, 0x20
-/* 80241A5C 48 12 07 C1 */ bl _restgpr_26
-/* 80241A60 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80241A64 7C 08 03 A6 */ mtlr r0
-/* 80241A68 38 21 00 20 */ addi r1, r1, 0x20
-/* 80241A6C 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/addCountGuide__14dMsgScrnHowl_cFs.s b/asm/msg/scrn/d_msg_scrn_howl/addCountGuide__14dMsgScrnHowl_cFs.s
deleted file mode 100644
index 3082dbaab0..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/addCountGuide__14dMsgScrnHowl_cFs.s
+++ /dev/null
@@ -1,7 +0,0 @@
-lbl_80243F7C:
-/* 80243F7C 38 64 00 01 */ addi r3, r4, 1
-/* 80243F80 7C 60 07 34 */ extsh r0, r3
-/* 80243F84 2C 00 01 5E */ cmpwi r0, 0x15e
-/* 80243F88 4D 80 00 20 */ bltlr
-/* 80243F8C 38 63 FE A2 */ addi r3, r3, -350
-/* 80243F90 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/addCount__14dMsgScrnHowl_cFs.s b/asm/msg/scrn/d_msg_scrn_howl/addCount__14dMsgScrnHowl_cFs.s
deleted file mode 100644
index 3ad85952e4..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/addCount__14dMsgScrnHowl_cFs.s
+++ /dev/null
@@ -1,11 +0,0 @@
-lbl_80243F58:
-/* 80243F58 38 84 00 01 */ addi r4, r4, 1
-/* 80243F5C 7C 80 07 34 */ extsh r0, r4
-/* 80243F60 A8 63 21 36 */ lha r3, 0x2136(r3)
-/* 80243F64 7C 00 18 00 */ cmpw r0, r3
-/* 80243F68 41 80 00 0C */ blt lbl_80243F74
-/* 80243F6C 7C 03 20 50 */ subf r0, r3, r4
-/* 80243F70 7C 04 07 34 */ extsh r4, r0
-lbl_80243F74:
-/* 80243F74 7C 83 23 78 */ mr r3, r4
-/* 80243F78 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/calcMain__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/calcMain__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index 187ae8475e..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/calcMain__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,28 +0,0 @@
-lbl_80243838:
-/* 80243838 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8024383C 7C 08 02 A6 */ mflr r0
-/* 80243840 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80243844 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80243848 7C 7F 1B 78 */ mr r31, r3
-/* 8024384C A8 83 21 2A */ lha r4, 0x212a(r3)
-/* 80243850 A0 63 21 38 */ lhz r3, 0x2138(r3)
-/* 80243854 38 03 01 7C */ addi r0, r3, 0x17c
-/* 80243858 7C 04 00 00 */ cmpw r4, r0
-/* 8024385C 40 80 00 10 */ bge lbl_8024386C
-/* 80243860 38 04 00 01 */ addi r0, r4, 1
-/* 80243864 B0 1F 21 2A */ sth r0, 0x212a(r31)
-/* 80243868 48 00 00 10 */ b lbl_80243878
-lbl_8024386C:
-/* 8024386C A8 7F 21 2C */ lha r3, 0x212c(r31)
-/* 80243870 38 03 FF FF */ addi r0, r3, -1
-/* 80243874 B0 1F 21 2C */ sth r0, 0x212c(r31)
-lbl_80243878:
-/* 80243878 7F E3 FB 78 */ mr r3, r31
-/* 8024387C 48 00 00 21 */ bl calcWave__14dMsgScrnHowl_cFv
-/* 80243880 7F E3 FB 78 */ mr r3, r31
-/* 80243884 48 00 01 CD */ bl calcGuide__14dMsgScrnHowl_cFv
-/* 80243888 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8024388C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80243890 7C 08 03 A6 */ mtlr r0
-/* 80243894 38 21 00 10 */ addi r1, r1, 0x10
-/* 80243898 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/fukiAlpha__14dMsgScrnHowl_cFf.s b/asm/msg/scrn/d_msg_scrn_howl/fukiAlpha__14dMsgScrnHowl_cFf.s
deleted file mode 100644
index 1f35829246..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/fukiAlpha__14dMsgScrnHowl_cFf.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8024205C:
-/* 8024205C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80242060 7C 08 02 A6 */ mflr r0
-/* 80242064 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80242068 80 63 00 08 */ lwz r3, 8(r3)
-/* 8024206C 48 01 37 65 */ bl setAlphaRate__13CPaneMgrAlphaFf
-/* 80242070 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80242074 7C 08 03 A6 */ mtlr r0
-/* 80242078 38 21 00 10 */ addi r1, r1, 0x10
-/* 8024207C 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/fukiTrans__14dMsgScrnHowl_cFff.s b/asm/msg/scrn/d_msg_scrn_howl/fukiTrans__14dMsgScrnHowl_cFff.s
deleted file mode 100644
index 602ab09bc6..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/fukiTrans__14dMsgScrnHowl_cFff.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_80242038:
-/* 80242038 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8024203C 7C 08 02 A6 */ mflr r0
-/* 80242040 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80242044 80 63 00 08 */ lwz r3, 8(r3)
-/* 80242048 48 01 25 69 */ bl paneTrans__8CPaneMgrFff
-/* 8024204C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80242050 7C 08 03 A6 */ mtlr r0
-/* 80242054 38 21 00 10 */ addi r1, r1, 0x10
-/* 80242058 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/getGuideDataSize__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/getGuideDataSize__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index ee788fd190..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/getGuideDataSize__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,37 +0,0 @@
-lbl_80244304:
-/* 80244304 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80244308 7C 08 02 A6 */ mflr r0
-/* 8024430C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80244310 39 61 00 20 */ addi r11, r1, 0x20
-/* 80244314 48 11 DE C5 */ bl _savegpr_28
-/* 80244318 7C 7C 1B 78 */ mr r28, r3
-/* 8024431C 8B C3 21 97 */ lbz r30, 0x2197(r3)
-/* 80244320 3B A0 00 00 */ li r29, 0
-/* 80244324 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80244328 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8024432C 48 00 00 38 */ b lbl_80244364
-lbl_80244330:
-/* 80244330 80 7F 5D B4 */ lwz r3, 0x5db4(r31)
-/* 80244334 38 63 2D 84 */ addi r3, r3, 0x2d84
-/* 80244338 57 A4 06 3E */ clrlwi r4, r29, 0x18
-/* 8024433C 48 08 6F E5 */ bl getCorrectLine__13Z2WolfHowlMgrFUc
-/* 80244340 54 60 84 3E */ srwi r0, r3, 0x10
-/* 80244344 B0 01 00 08 */ sth r0, 8(r1)
-/* 80244348 B0 01 00 0C */ sth r0, 0xc(r1)
-/* 8024434C 88 01 00 0D */ lbz r0, 0xd(r1)
-/* 80244350 38 7D 21 3A */ addi r3, r29, 0x213a
-/* 80244354 7C 1C 19 AE */ stbx r0, r28, r3
-/* 80244358 7C 1C 18 AE */ lbzx r0, r28, r3
-/* 8024435C 7F DE 02 14 */ add r30, r30, r0
-/* 80244360 3B BD 00 01 */ addi r29, r29, 1
-lbl_80244364:
-/* 80244364 88 1C 21 96 */ lbz r0, 0x2196(r28)
-/* 80244368 7C 1D 00 00 */ cmpw r29, r0
-/* 8024436C 41 80 FF C4 */ blt lbl_80244330
-/* 80244370 7F C3 F3 78 */ mr r3, r30
-/* 80244374 39 61 00 20 */ addi r11, r1, 0x20
-/* 80244378 48 11 DE AD */ bl _restgpr_28
-/* 8024437C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80244380 7C 08 03 A6 */ mtlr r0
-/* 80244384 38 21 00 20 */ addi r1, r1, 0x20
-/* 80244388 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/getGuideDataType__14dMsgScrnHowl_cFi.s b/asm/msg/scrn/d_msg_scrn_howl/getGuideDataType__14dMsgScrnHowl_cFi.s
deleted file mode 100644
index 0f25c9ee75..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/getGuideDataType__14dMsgScrnHowl_cFi.s
+++ /dev/null
@@ -1,55 +0,0 @@
-lbl_8024438C:
-/* 8024438C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80244390 7C 08 02 A6 */ mflr r0
-/* 80244394 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80244398 39 61 00 30 */ addi r11, r1, 0x30
-/* 8024439C 48 11 DE 35 */ bl _savegpr_26
-/* 802443A0 7C 7A 1B 78 */ mr r26, r3
-/* 802443A4 7C 9B 23 78 */ mr r27, r4
-/* 802443A8 88 03 21 97 */ lbz r0, 0x2197(r3)
-/* 802443AC 7C 1E 03 78 */ mr r30, r0
-/* 802443B0 7C 1D 03 78 */ mr r29, r0
-/* 802443B4 3B 80 00 00 */ li r28, 0
-/* 802443B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 802443BC 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 802443C0 48 00 00 6C */ b lbl_8024442C
-lbl_802443C4:
-/* 802443C4 80 7F 5D B4 */ lwz r3, 0x5db4(r31)
-/* 802443C8 38 63 2D 84 */ addi r3, r3, 0x2d84
-/* 802443CC 57 84 06 3E */ clrlwi r4, r28, 0x18
-/* 802443D0 48 08 6F 51 */ bl getCorrectLine__13Z2WolfHowlMgrFUc
-/* 802443D4 54 60 84 3E */ srwi r0, r3, 0x10
-/* 802443D8 B0 01 00 0C */ sth r0, 0xc(r1)
-/* 802443DC B0 01 00 14 */ sth r0, 0x14(r1)
-/* 802443E0 88 01 00 15 */ lbz r0, 0x15(r1)
-/* 802443E4 7F BD 02 14 */ add r29, r29, r0
-/* 802443E8 57 C0 04 3E */ clrlwi r0, r30, 0x10
-/* 802443EC 7C 00 D8 00 */ cmpw r0, r27
-/* 802443F0 41 81 00 34 */ bgt lbl_80244424
-/* 802443F4 57 A0 04 3E */ clrlwi r0, r29, 0x10
-/* 802443F8 7C 00 D8 00 */ cmpw r0, r27
-/* 802443FC 40 81 00 28 */ ble lbl_80244424
-/* 80244400 80 7F 5D B4 */ lwz r3, 0x5db4(r31)
-/* 80244404 38 63 2D 84 */ addi r3, r3, 0x2d84
-/* 80244408 57 84 06 3E */ clrlwi r4, r28, 0x18
-/* 8024440C 48 08 6F 15 */ bl getCorrectLine__13Z2WolfHowlMgrFUc
-/* 80244410 54 60 84 3E */ srwi r0, r3, 0x10
-/* 80244414 B0 01 00 08 */ sth r0, 8(r1)
-/* 80244418 B0 01 00 10 */ sth r0, 0x10(r1)
-/* 8024441C 88 61 00 10 */ lbz r3, 0x10(r1)
-/* 80244420 48 00 00 1C */ b lbl_8024443C
-lbl_80244424:
-/* 80244424 7F BE EB 78 */ mr r30, r29
-/* 80244428 3B 9C 00 01 */ addi r28, r28, 1
-lbl_8024442C:
-/* 8024442C 88 1A 21 96 */ lbz r0, 0x2196(r26)
-/* 80244430 7C 1C 00 00 */ cmpw r28, r0
-/* 80244434 41 80 FF 90 */ blt lbl_802443C4
-/* 80244438 38 60 00 00 */ li r3, 0
-lbl_8024443C:
-/* 8024443C 39 61 00 30 */ addi r11, r1, 0x30
-/* 80244440 48 11 DD DD */ bl _restgpr_26
-/* 80244444 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80244448 7C 08 03 A6 */ mtlr r0
-/* 8024444C 38 21 00 30 */ addi r1, r1, 0x30
-/* 80244450 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/getOnLineNum__14dMsgScrnHowl_cFi.s b/asm/msg/scrn/d_msg_scrn_howl/getOnLineNum__14dMsgScrnHowl_cFi.s
deleted file mode 100644
index 8b925f7446..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/getOnLineNum__14dMsgScrnHowl_cFi.s
+++ /dev/null
@@ -1,32 +0,0 @@
-lbl_80243EEC:
-/* 80243EEC 2C 04 00 00 */ cmpwi r4, 0
-/* 80243EF0 40 80 00 0C */ bge lbl_80243EFC
-/* 80243EF4 38 60 FF FF */ li r3, -1
-/* 80243EF8 4E 80 00 20 */ blr
-lbl_80243EFC:
-/* 80243EFC 2C 04 00 1E */ cmpwi r4, 0x1e
-/* 80243F00 41 80 00 50 */ blt lbl_80243F50
-/* 80243F04 A0 A3 21 38 */ lhz r5, 0x2138(r3)
-/* 80243F08 38 05 01 7C */ addi r0, r5, 0x17c
-/* 80243F0C 7C 04 00 00 */ cmpw r4, r0
-/* 80243F10 40 80 00 40 */ bge lbl_80243F50
-/* 80243F14 38 A0 00 1E */ li r5, 0x1e
-/* 80243F18 38 C0 00 00 */ li r6, 0
-/* 80243F1C 88 03 21 96 */ lbz r0, 0x2196(r3)
-/* 80243F20 7C 09 03 A6 */ mtctr r0
-/* 80243F24 2C 00 00 00 */ cmpwi r0, 0
-/* 80243F28 40 81 00 28 */ ble lbl_80243F50
-lbl_80243F2C:
-/* 80243F2C 38 06 21 3A */ addi r0, r6, 0x213a
-/* 80243F30 7C 03 00 AE */ lbzx r0, r3, r0
-/* 80243F34 7C A5 02 14 */ add r5, r5, r0
-/* 80243F38 7C 04 28 00 */ cmpw r4, r5
-/* 80243F3C 40 80 00 0C */ bge lbl_80243F48
-/* 80243F40 7C C3 07 74 */ extsb r3, r6
-/* 80243F44 4E 80 00 20 */ blr
-lbl_80243F48:
-/* 80243F48 38 C6 00 01 */ addi r6, r6, 1
-/* 80243F4C 42 00 FF E0 */ bdnz lbl_80243F2C
-lbl_80243F50:
-/* 80243F50 38 60 FF FF */ li r3, -1
-/* 80243F54 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_init__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_init__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index b786b20fd9..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_init__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,4 +0,0 @@
-lbl_80241F28:
-/* 80241F28 38 00 00 00 */ li r0, 0
-/* 80241F2C 98 03 27 9A */ stb r0, 0x279a(r3)
-/* 80241F30 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_proc__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_proc__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index 57ee65969c..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_proc__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,67 +0,0 @@
-lbl_80241F34:
-/* 80241F34 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80241F38 7C 08 02 A6 */ mflr r0
-/* 80241F3C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80241F40 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80241F44 93 C1 00 08 */ stw r30, 8(r1)
-/* 80241F48 7C 7F 1B 78 */ mr r31, r3
-/* 80241F4C 3C 80 80 3E */ lis r4, m_cpadInfo__8mDoCPd_c@ha /* 0x803DD2E8@ha */
-/* 80241F50 38 84 D2 E8 */ addi r4, r4, m_cpadInfo__8mDoCPd_c@l /* 0x803DD2E8@l */
-/* 80241F54 80 04 00 30 */ lwz r0, 0x30(r4)
-/* 80241F58 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
-/* 80241F5C 41 82 00 28 */ beq lbl_80241F84
-/* 80241F60 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241F64 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241F68 80 84 5D B4 */ lwz r4, 0x5db4(r4)
-/* 80241F6C 80 04 2E 0C */ lwz r0, 0x2e0c(r4)
-/* 80241F70 28 00 00 00 */ cmplwi r0, 0
-/* 80241F74 41 82 00 10 */ beq lbl_80241F84
-/* 80241F78 48 00 01 5D */ bl resetLine__14dMsgScrnHowl_cFv
-/* 80241F7C 38 00 00 01 */ li r0, 1
-/* 80241F80 98 1F 27 98 */ stb r0, 0x2798(r31)
-lbl_80241F84:
-/* 80241F84 7F E3 FB 78 */ mr r3, r31
-/* 80241F88 48 00 18 B1 */ bl calcMain__14dMsgScrnHowl_cFv
-/* 80241F8C 3B C0 00 00 */ li r30, 0
-/* 80241F90 A8 1F 21 2A */ lha r0, 0x212a(r31)
-/* 80241F94 2C 00 00 1E */ cmpwi r0, 0x1e
-/* 80241F98 40 82 00 08 */ bne lbl_80241FA0
-/* 80241F9C 3B C0 00 01 */ li r30, 1
-lbl_80241FA0:
-/* 80241FA0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241FA4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241FA8 80 63 5D B4 */ lwz r3, 0x5db4(r3)
-/* 80241FAC 81 83 06 28 */ lwz r12, 0x628(r3)
-/* 80241FB0 81 8C 02 98 */ lwz r12, 0x298(r12)
-/* 80241FB4 7D 89 03 A6 */ mtctr r12
-/* 80241FB8 4E 80 04 21 */ bctrl
-/* 80241FBC 7F C4 F3 78 */ mr r4, r30
-/* 80241FC0 48 08 9A C9 */ bl startGuideMelody__13Z2WolfHowlMgrFb
-/* 80241FC4 90 7F 01 7C */ stw r3, 0x17c(r31)
-/* 80241FC8 A8 1F 21 2A */ lha r0, 0x212a(r31)
-/* 80241FCC 2C 00 00 1E */ cmpwi r0, 0x1e
-/* 80241FD0 41 80 00 44 */ blt lbl_80242014
-/* 80241FD4 80 1F 01 7C */ lwz r0, 0x17c(r31)
-/* 80241FD8 28 00 00 00 */ cmplwi r0, 0
-/* 80241FDC 40 82 00 24 */ bne lbl_80242000
-/* 80241FE0 88 1F 27 9A */ lbz r0, 0x279a(r31)
-/* 80241FE4 28 00 00 00 */ cmplwi r0, 0
-/* 80241FE8 41 82 00 2C */ beq lbl_80242014
-/* 80241FEC 7F E3 FB 78 */ mr r3, r31
-/* 80241FF0 48 00 00 E5 */ bl resetLine__14dMsgScrnHowl_cFv
-/* 80241FF4 38 00 00 00 */ li r0, 0
-/* 80241FF8 98 1F 27 9A */ stb r0, 0x279a(r31)
-/* 80241FFC 48 00 00 18 */ b lbl_80242014
-lbl_80242000:
-/* 80242000 88 1F 27 9A */ lbz r0, 0x279a(r31)
-/* 80242004 28 00 00 00 */ cmplwi r0, 0
-/* 80242008 40 82 00 0C */ bne lbl_80242014
-/* 8024200C 38 00 00 01 */ li r0, 1
-/* 80242010 98 1F 27 9A */ stb r0, 0x279a(r31)
-lbl_80242014:
-/* 80242014 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80242018 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8024201C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80242020 7C 08 03 A6 */ mtlr r0
-/* 80242024 38 21 00 10 */ addi r1, r1, 0x10
-/* 80242028 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/guide_off_proc__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/guide_off_proc__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index f8dac4cef7..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/guide_off_proc__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,34 +0,0 @@
-lbl_80241E00:
-/* 80241E00 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80241E04 7C 08 02 A6 */ mflr r0
-/* 80241E08 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80241E0C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80241E10 93 C1 00 08 */ stw r30, 8(r1)
-/* 80241E14 7C 7E 1B 78 */ mr r30, r3
-/* 80241E18 48 00 1A 21 */ bl calcMain__14dMsgScrnHowl_cFv
-/* 80241E1C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241E20 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241E24 80 7F 5D B4 */ lwz r3, 0x5db4(r31)
-/* 80241E28 81 83 06 28 */ lwz r12, 0x628(r3)
-/* 80241E2C 81 8C 02 98 */ lwz r12, 0x298(r12)
-/* 80241E30 7D 89 03 A6 */ mtctr r12
-/* 80241E34 4E 80 04 21 */ bctrl
-/* 80241E38 88 03 00 8C */ lbz r0, 0x8c(r3)
-/* 80241E3C 28 00 00 1E */ cmplwi r0, 0x1e
-/* 80241E40 41 82 00 14 */ beq lbl_80241E54
-/* 80241E44 80 7F 5D B4 */ lwz r3, 0x5db4(r31)
-/* 80241E48 80 03 2E 0C */ lwz r0, 0x2e0c(r3)
-/* 80241E4C 28 00 00 00 */ cmplwi r0, 0
-/* 80241E50 40 82 00 14 */ bne lbl_80241E64
-lbl_80241E54:
-/* 80241E54 38 00 00 02 */ li r0, 2
-/* 80241E58 98 1E 27 98 */ stb r0, 0x2798(r30)
-/* 80241E5C 7F C3 F3 78 */ mr r3, r30
-/* 80241E60 48 00 02 75 */ bl resetLine__14dMsgScrnHowl_cFv
-lbl_80241E64:
-/* 80241E64 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80241E68 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80241E6C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80241E70 7C 08 03 A6 */ mtlr r0
-/* 80241E74 38 21 00 10 */ addi r1, r1, 0x10
-/* 80241E78 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/guide_on_proc__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/guide_on_proc__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index dc92983d0b..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/guide_on_proc__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,45 +0,0 @@
-lbl_80241D5C:
-/* 80241D5C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80241D60 7C 08 02 A6 */ mflr r0
-/* 80241D64 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80241D68 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80241D6C 7C 7F 1B 78 */ mr r31, r3
-/* 80241D70 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241D74 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241D78 80 84 5D B4 */ lwz r4, 0x5db4(r4)
-/* 80241D7C 80 04 2E 0C */ lwz r0, 0x2e0c(r4)
-/* 80241D80 28 00 00 00 */ cmplwi r0, 0
-/* 80241D84 40 82 00 44 */ bne lbl_80241DC8
-/* 80241D88 88 1F 21 95 */ lbz r0, 0x2195(r31)
-/* 80241D8C 28 00 00 01 */ cmplwi r0, 1
-/* 80241D90 40 82 00 0C */ bne lbl_80241D9C
-/* 80241D94 38 00 00 02 */ li r0, 2
-/* 80241D98 98 1F 21 95 */ stb r0, 0x2195(r31)
-lbl_80241D9C:
-/* 80241D9C 3C 60 80 3E */ lis r3, m_cpadInfo__8mDoCPd_c@ha /* 0x803DD2E8@ha */
-/* 80241DA0 38 63 D2 E8 */ addi r3, r3, m_cpadInfo__8mDoCPd_c@l /* 0x803DD2E8@l */
-/* 80241DA4 80 03 00 34 */ lwz r0, 0x34(r3)
-/* 80241DA8 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
-/* 80241DAC 41 82 00 3C */ beq lbl_80241DE8
-/* 80241DB0 88 1F 21 95 */ lbz r0, 0x2195(r31)
-/* 80241DB4 28 00 00 02 */ cmplwi r0, 2
-/* 80241DB8 40 82 00 30 */ bne lbl_80241DE8
-/* 80241DBC 7F E3 FB 78 */ mr r3, r31
-/* 80241DC0 48 00 03 15 */ bl resetLine__14dMsgScrnHowl_cFv
-/* 80241DC4 48 00 00 24 */ b lbl_80241DE8
-lbl_80241DC8:
-/* 80241DC8 88 1F 21 95 */ lbz r0, 0x2195(r31)
-/* 80241DCC 28 00 00 02 */ cmplwi r0, 2
-/* 80241DD0 40 82 00 08 */ bne lbl_80241DD8
-/* 80241DD4 48 00 03 01 */ bl resetLine__14dMsgScrnHowl_cFv
-lbl_80241DD8:
-/* 80241DD8 38 00 00 01 */ li r0, 1
-/* 80241DDC 98 1F 21 95 */ stb r0, 0x2195(r31)
-/* 80241DE0 7F E3 FB 78 */ mr r3, r31
-/* 80241DE4 48 00 1A 55 */ bl calcMain__14dMsgScrnHowl_cFv
-lbl_80241DE8:
-/* 80241DE8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80241DEC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80241DF0 7C 08 03 A6 */ mtlr r0
-/* 80241DF4 38 21 00 10 */ addi r1, r1, 0x10
-/* 80241DF8 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/guide_stop_proc__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/guide_stop_proc__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index d517050e9d..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/guide_stop_proc__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,45 +0,0 @@
-lbl_80241E80:
-/* 80241E80 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80241E84 7C 08 02 A6 */ mflr r0
-/* 80241E88 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80241E8C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80241E90 7C 7F 1B 78 */ mr r31, r3
-/* 80241E94 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80241E98 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80241E9C 80 63 5D B4 */ lwz r3, 0x5db4(r3)
-/* 80241EA0 81 83 06 28 */ lwz r12, 0x628(r3)
-/* 80241EA4 81 8C 02 98 */ lwz r12, 0x298(r12)
-/* 80241EA8 7D 89 03 A6 */ mtctr r12
-/* 80241EAC 4E 80 04 21 */ bctrl
-/* 80241EB0 48 08 8E 1D */ bl getNowInputValue__13Z2WolfHowlMgrFv
-/* 80241EB4 FC 20 08 50 */ fneg f1, f1
-/* 80241EB8 7F E3 FB 78 */ mr r3, r31
-/* 80241EBC 48 00 20 D9 */ bl getNowPlotPitch__14dMsgScrnHowl_cFf
-/* 80241EC0 A8 1F 21 24 */ lha r0, 0x2124(r31)
-/* 80241EC4 54 00 10 3A */ slwi r0, r0, 2
-/* 80241EC8 7C 7F 02 14 */ add r3, r31, r0
-/* 80241ECC D0 23 01 80 */ stfs f1, 0x180(r3)
-/* 80241ED0 3C 60 80 3E */ lis r3, m_cpadInfo__8mDoCPd_c@ha /* 0x803DD2E8@ha */
-/* 80241ED4 38 63 D2 E8 */ addi r3, r3, m_cpadInfo__8mDoCPd_c@l /* 0x803DD2E8@l */
-/* 80241ED8 80 03 00 30 */ lwz r0, 0x30(r3)
-/* 80241EDC 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
-/* 80241EE0 41 82 00 18 */ beq lbl_80241EF8
-/* 80241EE4 7F E3 FB 78 */ mr r3, r31
-/* 80241EE8 48 00 01 ED */ bl resetLine__14dMsgScrnHowl_cFv
-/* 80241EEC 38 00 00 01 */ li r0, 1
-/* 80241EF0 98 1F 27 98 */ stb r0, 0x2798(r31)
-/* 80241EF4 48 00 00 20 */ b lbl_80241F14
-lbl_80241EF8:
-/* 80241EF8 80 03 00 34 */ lwz r0, 0x34(r3)
-/* 80241EFC 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
-/* 80241F00 41 82 00 14 */ beq lbl_80241F14
-/* 80241F04 7F E3 FB 78 */ mr r3, r31
-/* 80241F08 48 00 01 CD */ bl resetLine__14dMsgScrnHowl_cFv
-/* 80241F0C 38 00 00 03 */ li r0, 3
-/* 80241F10 98 1F 27 98 */ stb r0, 0x2798(r31)
-lbl_80241F14:
-/* 80241F14 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80241F18 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80241F1C 7C 08 03 A6 */ mtlr r0
-/* 80241F20 38 21 00 10 */ addi r1, r1, 0x10
-/* 80241F24 4E 80 00 20 */ blr
diff --git a/asm/msg/scrn/d_msg_scrn_howl/isKeyCheck__14dMsgScrnHowl_cFv.s b/asm/msg/scrn/d_msg_scrn_howl/isKeyCheck__14dMsgScrnHowl_cFv.s
deleted file mode 100644
index e1e62779ae..0000000000
--- a/asm/msg/scrn/d_msg_scrn_howl/isKeyCheck__14dMsgScrnHowl_cFv.s
+++ /dev/null
@@ -1,24 +0,0 @@
-lbl_80242080:
-/* 80242080 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80242084 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80242088 80 84 5D B4 */ lwz r4, 0x5db4(r4)
-/* 8024208C 80 04 2E 0C */ lwz r0, 0x2e0c(r4)
-/* 80242090 28 00 00 00 */ cmplwi r0, 0
-/* 80242094 40 82 00 38 */ bne lbl_802420CC
-/* 80242098 88 03 27 99 */ lbz r0, 0x2799(r3)
-/* 8024209C 88 83 27 98 */ lbz r4, 0x2798(r3)
-/* 802420A0 7C 00 20 40 */ cmplw r0, r4
-/* 802420A4 40 82 00 28 */ bne lbl_802420CC
-/* 802420A8 28 04 00 03 */ cmplwi r4, 3
-/* 802420AC 41 82 00 18 */ beq lbl_802420C4
-/* 802420B0 28 04 00 00 */ cmplwi r4, 0
-/* 802420B4 40 82 00 18 */ bne lbl_802420CC
-/* 802420B8 88 03 21 95 */ lbz r0, 0x2195(r3)
-/* 802420BC 28 00 00 00 */ cmplwi r0, 0
-/* 802420C0 40 82 00 0C */ bne lbl_802420CC
-lbl_802420C4:
-/* 802420C4 38 60 00 01 */ li r3, 1
-/* 802420C8 4E 80 00 20 */ blr
-lbl_802420CC:
-/* 802420CC 38 60 00 00 */ li r3, 0
-/* 802420D0 4E 80 00 20 */ blr
diff --git a/include/JSystem/J2DGraph/J2DGrafContext.h b/include/JSystem/J2DGraph/J2DGrafContext.h
index b2e49ced53..ffa54f2e52 100644
--- a/include/JSystem/J2DGraph/J2DGrafContext.h
+++ b/include/JSystem/J2DGraph/J2DGrafContext.h
@@ -17,6 +17,10 @@ public:
/* 802E8B08 */ J2DGrafContext(f32 x, f32 y, f32 width, f32 height);
/* 802E90C0 */ void scissor(JGeometry::TBox2<f32> const& bounds);
+ void scissor(f32 x, f32 y, f32 width, f32 height) {
+ scissor(JGeometry::TBox2<f32>(x, y, x + width, y + height));
+ }
+
void setColor(JUtility::TColor c) { this->setColor(c, c, c, c); }
/* 802E9118 */ void setColor(JUtility::TColor colorTL, JUtility::TColor colorTR,
JUtility::TColor colorBR, JUtility::TColor colorBL);
diff --git a/include/Z2AudioLib/Z2WolfHowlMgr.h b/include/Z2AudioLib/Z2WolfHowlMgr.h
index 05faf2fd81..3e7a586d04 100644
--- a/include/Z2AudioLib/Z2WolfHowlMgr.h
+++ b/include/Z2AudioLib/Z2WolfHowlMgr.h
@@ -45,6 +45,7 @@ public:
void setCorrectCurve(s8 i_curve) { setCorrectData(i_curve, NULL); }
u32 getTimer() { return mTimer; }
u8 getReleaseTimer() { return mReleaseTimer; }
+ u8 getCorrectCurveID() { return mCorrectCurveID; }
private:
/* 0x00 */ JAISoundHandle field_0x00;
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index f3ef092aea..08d73420da 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -3367,6 +3367,12 @@ public:
bool checkRootTransZClearMode() { return field_0x2f99 & 4; }
bool checkRootTransXClearMode() { return field_0x2f99 & 1; }
bool checkRootTransYClearMode() { return field_0x2f99 & 2; }
+ s16 checkWindStoneHowl() {return mProcVar3.field_0x300e.y; }
+ u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); }
+ u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); }
+ u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); }
+ s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); }
+ SongNote getCorrectLine(u8 param_0) { return mZ2WolfHowlMgr.getCorrectLine(param_0); }
inline bool checkWindSpeedOnXZ() const;
inline void startRestartRoomFromOut(int, u32, int);
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index a075055164..5be233aa32 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -178,9 +178,13 @@ public:
/* 800562D0 */ dDlst_shadowReal_c() { mState = 0; }
dDlst_shadowReal_c* getZsortNext() { return mZsortNext; }
+ dDlst_shadowReal_c* getZsortPre() { return mZsortPre; }
bool isNoUse() { return mState == 0; }
bool isUse() { return mState == 1; }
bool checkKey(u32 i_key) { return mKey == i_key; }
+ f32 getCameraZ() { return mCameraZ; }
+ void setZsortNext(dDlst_shadowReal_c* next) { mZsortNext = next; }
+ void setZsortPre(dDlst_shadowReal_c* pre) { mZsortPre = pre; }
private:
/* 0x0000 */ u8 mState;
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index 69a043805a..f10e134d59 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -440,7 +440,7 @@ public:
/* 0xA8 */ f32 mLineSpaceOffset;
/* 0xAC */ u16 mWaveformThickness;
/* 0xAE */ u16 mWaveformLineLen;
- /* 0xB0 */ u16 mWaveformDotLen;
+ /* 0xB0 */ s16 mWaveformDotLen;
};
class dMsgObject_HIO_c {
diff --git a/include/d/pane/d_pane_class.h b/include/d/pane/d_pane_class.h
index 87fa3c194b..7599f3e42c 100644
--- a/include/d/pane/d_pane_class.h
+++ b/include/d/pane/d_pane_class.h
@@ -33,10 +33,22 @@ public:
/* 80254EBC */ Vec getGlobalVtxCenter(J2DPane*, bool, s16);
/* 80254FB8 */ JGeometry::TBox2<f32>* getBounds(J2DPane*);
+ Vec getGlobalVtx(Mtx* param_0, u8 param_1, bool param_2, s16 param_3) {
+ return getGlobalVtx(getPanePtr(), param_0, param_1, param_2, param_3);
+ }
+
Vec getGlobalVtxCenter(bool param_0, s16 param_1) {
return getGlobalVtxCenter(getPanePtr(), param_0, param_1);
}
+ f32 getGlobalCenterPosY() {
+ return getGlobalPosY() + mPane->getHeight() / 2;
+ }
+
+ f32 getCenterPosX() {
+ return mPane->getBounds().i.x + mPane->getWidth() / 2;
+ }
+
void translate(f32 x, f32 y) { getPanePtr()->translate(x, y); }
void scale(f32 h, f32 v) { getPanePtr()->scale(h, v); }
void resize(f32 x, f32 y) { getPanePtr()->resize(x, y); }
diff --git a/include/msg/scrn/d_msg_scrn_howl.h b/include/msg/scrn/d_msg_scrn_howl.h
index ace00b4355..73d504f7cc 100644
--- a/include/msg/scrn/d_msg_scrn_howl.h
+++ b/include/msg/scrn/d_msg_scrn_howl.h
@@ -2,5 +2,116 @@
#define MSG_SCRN_D_MSG_SCRN_HOWL_H
#include "dolphin/types.h"
+#include "msg/scrn/d_msg_scrn_base.h"
+
+struct dMsgScrnHowl_c : public dMsgScrnBase_c {
+ /* 8024096C */ dMsgScrnHowl_c();
+ /* 80241784 */ ~dMsgScrnHowl_c();
+ /* 80241A70 */ void exec();
+ /* 80241C30 */ void drawSelf();
+ /* 80241D58 */ void guide_on_init();
+ /* 80241D5C */ void guide_on_proc();
+ /* 80241DFC */ void guide_off_init();
+ /* 80241E00 */ void guide_off_proc();
+ /* 80241E7C */ void guide_stop_init();
+ /* 80241E80 */ void guide_stop_proc();
+ /* 80241F28 */ void guide_demo_play_init();
+ /* 80241F34 */ void guide_demo_play_proc();
+ /* 8024202C */ void guide_off_test_init();
+ /* 80242030 */ void guide_off_test_proc();
+ /* 80242034 */ void fukiScale(f32);
+ /* 80242038 */ void fukiTrans(f32, f32);
+ /* 8024205C */ void fukiAlpha(f32);
+ /* 80242080 */ bool isKeyCheck();
+ /* 802420D4 */ void resetLine();
+ /* 80242198 */ void drawWave();
+ /* 802427A8 */ void drawGuide();
+ /* 80242FE4 */ void drawGuide2();
+ /* 802435BC */ void drawEffect();
+ /* 80243838 */ void calcMain();
+ /* 8024389C */ void calcWave();
+ /* 80243A50 */ void calcGuide();
+ /* 80243BE0 */ void moveLineV(bool);
+ /* 80243DCC */ void moveBaseLength(bool);
+ /* 80243EEC */ s8 getOnLineNum(int);
+ /* 80243F58 */ s16 addCount(s16);
+ /* 80243F7C */ s16 addCountGuide(s16);
+ /* 80243F94 */ f32 getNowPlotPitch(f32);
+ /* 80244108 */ f32 getPlotPitch(f32);
+ /* 8024414C */ void calcPitchLevel();
+ /* 802441FC */ void initGuideData();
+ /* 80244304 */ u16 getGuideDataSize();
+ /* 8024438C */ u8 getGuideDataType(int);
+
+ /* 0x00C4 */ CPaneMgr* mpLineH[3];
+ /* 0x00D0 */ CPaneMgr* mpLineV[7];
+ /* 0x00EC */ CPaneMgr* mpLineAll;
+ /* 0x00F0 */ CPaneMgr* mpABase;
+ /* 0x00F4 */ CPaneMgr* mpButtonIcon[2];
+ /* 0x00FC */ CPaneMgr* mpButtonText[2];
+ /* 0x0104 */ J2DPicture* mpTopBall;
+ /* 0x0108 */ J2DPicture* mpTopBallTail[5];
+ /* 0x011C */ J2DPicture* mpDot;
+ /* 0x0120 */ J2DPicture* mpGuideDot;
+ /* 0x0124 */ J2DPicture* mpWaveTex;
+ /* 0x0128 */ Vec field_0x128;
+ /* 0x0134 */ Vec field_0x134;
+ /* 0x0140 */ Vec field_0x140;
+ /* 0x014C */ Vec field_0x14c;
+ /* 0x0158 */ Vec field_0x158;
+ /* 0x0164 */ Vec field_0x164;
+ /* 0x0170 */ Vec field_0x170;
+ /* 0x017C */ u32 field_0x17c;
+ /* 0x0180 */ f32 field_0x180[0x300];
+ /* 0x0D80 */ f32 field_0xd80[0x300];
+ /* 0x1980 */ f32 field_0x1980;
+ /* 0x1984 */ f32 field_0x1984;
+ /* 0x1988 */ f32 field_0x1988;
+ /* 0x198C */ f32 field_0x198c;
+ /* 0x1990 */ f32 field_0x1990;
+ /* 0x1994 */ f32 field_0x1994;
+ /* 0x1998 */ f32 field_0x1998;
+ /* 0x199C */ f32 field_0x199c;
+ /* 0x19A0 */ f32 field_0x19a0[30];
+ /* 0x1A18 */ f32 field_0x1a18[30];
+ /* 0x1A90 */ f32 field_0x1a90[30];
+ /* 0x1B08 */ f32 field_0x1b08[3];
+ /* 0x1B14 */ s16 field_0x1b14[0x300];
+ /* 0x2114 */ u32 field_0x2114;
+ /* 0x2118 */ u32 field_0x2118;
+ /* 0x211C */ u32 field_0x211c;
+ /* 0x2120 */ u32 field_0x2120;
+ /* 0x2124 */ s16 field_0x2124;
+ /* 0x2126 */ u16 field_0x2126;
+ /* 0x2128 */ s16 field_0x2128;
+ /* 0x212A */ s16 mPlotTime;
+ /* 0x212C */ s16 field_0x212c;
+ /* 0x212E */ s16 field_0x212e;
+ /* 0x2130 */ s16 field_0x2130;
+ /* 0x2132 */ s16 field_0x2132;
+ /* 0x2134 */ s16 field_0x2134;
+ /* 0x2136 */ s16 field_0x2136;
+ /* 0x2138 */ u16 field_0x2138;
+ /* 0x213A */ u8 field_0x213a[30];
+ /* 0x2158 */ u8 field_0x2158[30];
+ /* 0x2176 */ u8 field_0x2176[30];
+ /* 0x2194 */ s8 field_0x2194;
+ /* 0x2195 */ u8 field_0x2195;
+ /* 0x2196 */ u8 mCorrectLineMax;
+ /* 0x2197 */ u8 field_0x2197;
+ /* 0x2198 */ u8 field_0x2198[0x300];
+ /* 0x2498 */ u8 field_0x2498[0x300];
+ /* 0x2798 */ u8 field_0x2798;
+ /* 0x2799 */ u8 field_0x2799;
+ /* 0x279A */ u8 field_0x279a;
+ /* 0x279B */ u8 field_0x279b;
+ /* 0x279C */ f32 field_0x279c;
+ /* 0x27A0 */ f32 field_0x27a0;
+ /* 0x27A4 */ f32 field_0x27a4;
+ /* 0x27A8 */ f32 field_0x27a8;
+};
+
+#define LINE_MAX 30
+#define PLOT_BUFFER_MAX_e 0x300
#endif /* MSG_SCRN_D_MSG_SCRN_HOWL_H */
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp
index 1cfc970235..0c7cbbda02 100644
--- a/src/d/d_drawlist.cpp
+++ b/src/d/d_drawlist.cpp
@@ -4,7 +4,9 @@
//
#include "d/d_drawlist.h"
+#include "d/s/d_s_play.h"
#include "JSystem/J2DGraph/J2DScreen.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "SSystem/SComponent/c_bg_s_shdw_draw.h"
#include "d/com/d_com_inf_game.h"
@@ -351,7 +353,6 @@ extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mClipper__14mDoLib_clipper[92];
-extern "C" extern u8 g_envHIO[68];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 mBackColor__13mDoGph_gInf_c[4];
extern "C" f32 mSystemFar__14mDoLib_clipper;
@@ -430,7 +431,7 @@ extern "C" asm void draw__13dDlst_2DTri_cFv() {
#endif
/* 80051CF0-80051E5C 04C630 016C+00 1/0 0/0 0/0 .text draw__14dDlst_2DQuad_cFv */
-// regalloc
+// vtable
#ifdef NONMATCHING
void dDlst_2DQuad_c::draw() {
GXClearVtxDesc();
@@ -447,10 +448,10 @@ void dDlst_2DQuad_c::draw() {
GXLoadPosMtxImm(mDoMtx_getIdentity(), GX_PNMTX0);
GXSetCurrentMtx(GX_PNMTX0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
- GXPosition3s16(field_0x4, field_0x6, 0);
- GXPosition3s16(field_0x8, field_0x6, 0);
- GXPosition3s16(field_0x8, field_0xa, 0);
- GXPosition3s16(field_0x4, field_0xa, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0x6, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0x6, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0xa, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0xa, 0);
GXEnd();
dComIfGp_getCurrentGrafPort()->setup2D();
}
@@ -530,7 +531,7 @@ SECTION_SDATA2 static f64 lit_4076 = 4503599627370496.0 /* cast u32 to float */;
SECTION_SDATA2 static f64 lit_4079 = 4503601774854144.0 /* cast s32 to float */;
/* 80051F98-80052354 04C8D8 03BC+00 1/0 0/0 0/0 .text draw__11dDlst_2DT_cFv */
-// regalloc
+// Matches with literals
#ifdef NONMATCHING
void dDlst_2DT_c::draw() {
f32 var5 = field_0xe;
@@ -572,16 +573,16 @@ void dDlst_2DT_c::draw() {
GXSetClipMode(GX_CLIP_DISABLE);
GXSetCurrentMtx(GX_PNMTX0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
- GXPosition3s16(field_0x12, field_0x14, 0);
+ GXPosition3s16((s32)field_0x12, (s32)field_0x14, 0);
GXColor1u32(0xffffffff);
GXTexCoord2u16(var1, var2);
- GXPosition3s16(field_0x16, field_0x14, 0);
+ GXPosition3s16((s32)field_0x16, (s32)field_0x14, 0);
GXColor1u32(0xffffffff);
GXTexCoord2u16(var3, var2);
- GXPosition3s16(field_0x16, field_0x18, 0);
+ GXPosition3s16((s32)field_0x16, (s32)field_0x18, 0);
GXColor1u32(0xffffffff);
GXTexCoord2u16(var3, var4);
- GXPosition3s16(field_0x12, field_0x18, 0);
+ GXPosition3s16((s32)field_0x12, (s32)field_0x18, 0);
GXColor1u32(0xffffffff);
GXTexCoord2u16(var1, var4);
GXEnd();
@@ -1146,7 +1147,7 @@ void dDlst_2DT2_c::init(ResTIMG* i_timg, f32 param_1, f32 param_2, f32 param_3,
SECTION_SDATA2 static f32 lit_4360 = 256.0f;
/* 80052C58-8005312C 04D598 04D4+00 1/0 0/0 0/0 .text draw__11dDlst_2DM_cFv */
-// regalloc
+// Matches with literals
#ifdef NONMATCHING
void dDlst_2DM_c::draw() {
s16 r31 = field_0x22;
@@ -1193,16 +1194,16 @@ void dDlst_2DM_c::draw() {
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
- GXPosition3s16(field_0x4, field_0x6, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0x6, 0);
GXTexCoord2s16(r31, r30);
GXTexCoord2s16(r27, r26);
- GXPosition3s16(field_0x8, field_0x6, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0x6, 0);
GXTexCoord2s16(r29, r30);
GXTexCoord2s16(r25, r26);
- GXPosition3s16(field_0x8, field_0xa, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0xa, 0);
GXTexCoord2s16(r29, r28);
GXTexCoord2s16(r25, r24);
- GXPosition3s16(field_0x4, field_0xa, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0xa, 0);
GXTexCoord2s16(r31, r28);
GXTexCoord2s16(r27, r24);
GXEnd();
@@ -1221,7 +1222,7 @@ extern "C" asm void draw__11dDlst_2DM_cFv() {
#endif
/* 8005312C-8005364C 04DA6C 0520+00 1/0 0/0 0/0 .text draw__11dDlst_2Dm_cFv */
-// regalloc
+// Matches with literals
#ifdef NONMATCHING
void dDlst_2Dm_c::draw() {
s16 r31 = field_0x48;
@@ -1271,16 +1272,16 @@ void dDlst_2Dm_c::draw() {
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
GXSetCurrentMtx(0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
- GXPosition3s16(field_0x4, field_0x6, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0x6, 0);
GXTexCoord2s16(r31, r30);
GXTexCoord2s16(r27, r26);
- GXPosition3s16(field_0x8, field_0x6, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0x6, 0);
GXTexCoord2s16(r29, r30);
GXTexCoord2s16(r25, r26);
- GXPosition3s16(field_0x8, field_0xa, 0);
+ GXPosition3s16((s32)field_0x8, (s32)field_0xa, 0);
GXTexCoord2s16(r29, r28);
GXTexCoord2s16(r25, r24);
- GXPosition3s16(field_0x4, field_0xa, 0);
+ GXPosition3s16((s32)field_0x4, (s32)field_0xa, 0);
GXTexCoord2s16(r31, r28);
GXTexCoord2s16(r27, r24);
GXEnd();
@@ -1299,7 +1300,7 @@ extern "C" asm void draw__11dDlst_2Dm_cFv() {
#endif
/* 8005364C-800539DC 04DF8C 0390+00 1/0 0/0 0/0 .text draw__12dDlst_2DMt_cFv */
-// regalloc
+// vtable
#ifdef NONMATCHING
void dDlst_2DMt_c::draw() {
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
@@ -1307,7 +1308,6 @@ void dDlst_2DMt_c::draw() {
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
dDlst_2DMt_tex_c* r27 = field_0x8;
int r28 = 0;
- int r30 = 0;
for (int i = 0; i < field_0x4; i++) {
if (r27->check()) {
if (r27->getCI()) {
@@ -1319,12 +1319,11 @@ void dDlst_2DMt_c::draw() {
GXSetTevColor(GXTevRegID(GX_TEVREG0 + r28), r27->mColor);
GXSetTexCoordGen(GXTexCoordID(r28), GX_TG_MTX2x4, GXTexGenSrc(GX_TG_TEX0 + r28), GX_IDENTITY);
GXSetTevOrder(GXTevStageID(r28), GXTexCoordID(r28), GXTexMapID(r28), GX_COLOR_NULL);
- GXSetTevColorIn(GXTevStageID(r28), GX_CC_ZERO, GXTevColorArg(GX_CC_C0 + r30), GX_CC_TEXC, r28 ? GX_CC_CPREV : GX_CC_ZERO);
+ GXSetTevColorIn(GXTevStageID(r28), GX_CC_ZERO, GXTevColorArg(GX_CC_C0 + r28*2), GX_CC_TEXC, r28 ? GX_CC_CPREV : GX_CC_ZERO);
GXSetTevColorOp(GXTevStageID(r28), GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
GXSetTevAlphaIn(GXTevStageID(r28), GX_CA_ZERO, GXTevAlphaArg(GX_CA_A0 + r28), GX_CA_TEXA, r28 ? GX_CA_APREV : GX_CA_ZERO);
GXSetTevAlphaOp(GXTevStageID(r28), GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
r28++;
- r30 += 2;
if (r28 >= 3) {
break;
}
@@ -1386,14 +1385,13 @@ extern "C" asm void draw__12dDlst_2DMt_cFv() {
#endif
/* 800539DC-80053A00 04E31C 0024+00 0/0 1/0 0/0 .text getTexture__10J2DPictureCFUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm JUTTexture* J2DPicture::getTexture(u8 param_0) const {
- nofralloc
-#include "asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s"
+// Should be inline
+JUTTexture* J2DPicture::getTexture(u8 param_0) const {
+ if (param_0 < 2) {
+ return mTexture[param_0];
+ }
+ return NULL;
}
-#pragma pop
/* 80053A00-80053A9C 04E340 009C+00 0/0 1/1 0/0 .text __ct__10dDlst_2D_cFP7ResTIMGssssUc
*/
@@ -1968,7 +1966,7 @@ SECTION_SDATA2 static f32 lit_5275 = -0.5f;
/* 80054BD0-80055028 04F510 0458+00 1/1 0/0 0/0 .text
* setShadowRealMtx__18dDlst_shadowReal_cFP4cXyzP4cXyzfffP12dKy_tevstr_c */
-// g_envHIO
+// Matches with literals
#ifdef NONMATCHING
u8 dDlst_shadowReal_c::setShadowRealMtx(cXyz* param_0, cXyz* param_1, f32 param_2, f32 param_3,
f32 param_4, dKy_tevstr_c* param_5) {
@@ -2150,7 +2148,7 @@ SECTION_SDATA2 static f32 lit_5378 = 16.0f;
/* 800553EC-80055684 04FD2C 0298+00 1/1 0/0 0/0 .text
* set__20dDlst_shadowSimple_cFP4cXyzffP4cXyzsfP9_GXTexObj */
-// g_envHIO
+// Matches with literals
#ifdef NONMATCHING
void dDlst_shadowSimple_c::set(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3,
s16 param_4, f32 param_5, _GXTexObj* param_6) {
@@ -2330,7 +2328,7 @@ SECTION_SDATA2 static u32 lit_5433 = 0x00000020;
/* 80055A14-80055C74 050354 0260+00 0/0 1/1 0/0 .text draw__21dDlst_shadowControl_cFPA4_f
*/
-// extra stack var with GXColor
+// Matches with literals
#ifdef NONMATCHING
void dDlst_shadowControl_c::draw(Mtx param_0) {
j3dSys.reinitGX();
@@ -2343,7 +2341,8 @@ void dDlst_shadowControl_c::draw(Mtx param_0) {
GXSetNumTevStages(1);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXLoadPosMtxImm(param_0, GX_PNMTX0);
- GXSetChanMatColor(GX_ALPHA0, (GXColor){0, 0, 0, 0x20});
+ GXColor matColor = {0, 0, 0, 0x20};
+ GXSetChanMatColor(GX_ALPHA0, matColor);
clearColor.a = mDoGph_gInf_c::getBackColor().a;
GXSetTevColor(GX_TEVREG1, clearColor);
@@ -2405,6 +2404,100 @@ SECTION_SDATA2 static f32 lit_5553 = 0.0010000000474974513f;
/* 80055C74-80055F1C 0505B4 02A8+00 0/0 1/1 1/1 .text
* setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c */
+// Matches with literals
+#ifdef NONMATCHING
+int dDlst_shadowControl_c::setReal(u32 param_1, s8 param_2, J3DModel* param_3, cXyz* param_4,
+ f32 param_5, f32 param_6, dKy_tevstr_c* param_7) {
+ f32 fVar1;
+ f32 dVar16 = (param_2 == 0) ? 1.0f : (1.0f - 0.003000000026077032f * param_6);
+ if (dVar16 <= 0.0f) {
+ return 0;
+ }
+ if (dVar16 > 1.0f) {
+ dVar16 = 1.0f;
+ }
+ cXyz acStack_94;
+ cMtx_multVec(j3dSys.getViewMtx(), param_4, &acStack_94);
+ if ((acStack_94.z - param_5) >= 0.0f) {
+ return 0;
+ }
+ f32 dVar17 = acStack_94.z + param_5;
+ if (dVar17 < -1000.0f) {
+ f32 fVar1 = 0.0010000000474974513f *
+ (-1000.0f - dVar17);
+ if (fVar1 >= 1.0f) {
+ return 0;
+ }
+ dVar16 = (dVar16 * (1.0f - fVar1));
+ }
+ if (param_2 == 0) {
+ dVar17 = FLT_MAX;
+ }
+ dDlst_shadowReal_c* pdVar11;
+ dDlst_shadowReal_c* pdVar10 = NULL;
+ dDlst_shadowReal_c* local_98 = field_0x4;
+ pdVar11 = NULL;
+ while (local_98 != NULL) {
+ pdVar11 = local_98;
+ if (dVar17 > local_98->getCameraZ()) {
+ pdVar10 = local_98;
+ local_98 = NULL;
+ } else {
+ local_98 = local_98->getZsortNext();
+ }
+ }
+ dDlst_shadowReal_c* pdVar12;
+ if (mRealNum >= 8) {
+ if (pdVar10 == NULL) {
+ return 0;
+ }
+ pdVar12 = field_0x8;
+ field_0x8 = pdVar12->getZsortPre();
+ field_0x8->setZsortNext(NULL);
+ if (pdVar12 == pdVar10) {
+ pdVar10 = NULL;
+ pdVar11 = field_0x8;
+ }
+ pdVar12->reset();
+ mRealNum--;
+ } else {
+ pdVar12 = mReal;
+ for (int i = 0; i < 8; i++, pdVar12++) {
+ if (pdVar12->isNoUse()) {
+ break;
+ }
+ }
+ }
+
+ do {
+ } while (++mNextID == 0);
+ u32 rv = pdVar12->set(mNextID, param_3, param_4, param_5, param_6, param_7, dVar17, dVar16);
+ if (!rv) {
+ return 0;
+ }
+ mRealNum++;
+ if (pdVar10 == NULL) {
+ if (pdVar11 == NULL) {
+ field_0x4 = pdVar12;
+ } else {
+ pdVar11->setZsortNext(pdVar12);
+ pdVar12->setZsortPre(pdVar11);
+ }
+ field_0x8 = pdVar12;
+ } else {
+ pdVar11 = pdVar10->getZsortPre();
+ if (pdVar11 == NULL) {
+ field_0x4 = pdVar12;
+ } else {
+ pdVar11->setZsortNext(pdVar12);
+ pdVar12->setZsortPre(pdVar11);
+ }
+ pdVar12->setZsortNext(pdVar10);
+ pdVar10->setZsortPre(pdVar12);
+ }
+ return rv;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2414,6 +2507,7 @@ asm int dDlst_shadowControl_c::setReal(u32 param_0, s8 param_1, J3DModel* param_
#include "asm/d/d_drawlist/setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c.s"
}
#pragma pop
+#endif
/* 80055F1C-80055F84 05085C 0068+00 0/0 1/1 45/45 .text
* addReal__21dDlst_shadowControl_cFUlP8J3DModel */
@@ -2566,48 +2660,39 @@ dDlst_shadowSimple_c::dDlst_shadowSimple_c() {}
/* ############################################################################################## */
/* 8037A178-8037A1A4 0067D8 002A+02 1/1 0/0 0/0 .rodata l_drawlistSize$5656 */
-SECTION_RODATA static u16 const l_drawlistSize[21] = {
+static u16 const l_drawlistSize[21] = {
0x0001, 0x0001, 0x0001, 0x0080, 0x0001, 0x0001, 0x0001, 0x0080, 0x0100, 0x0001, 0x0100,
0x0001, 0x0020, 0x0010, 0x0010, 0x0020, 0x0020, 0x0100, 0x0001, 0x0004, 0x0004,
};
-COMPILER_STRIP_GATE(0x8037A178, &l_drawlistSize);
/* 8037A1A4-8037A1B0 006804 0009+03 1/1 0/0 0/0 .rodata l_nonSortId$5662 */
-SECTION_RODATA static u8 const l_nonSortId[9] = {
+static u8 const l_nonSortId[9] = {
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x09, 0x12, 0x0D,
};
-COMPILER_STRIP_GATE(0x8037A1A4, &l_nonSortId);
/* 804520C4-804520CC 0006C4 0006+02 1/1 0/0 0/0 .sdata2 l_zSortId$5668 */
-SECTION_SDATA2 static u8 l_zSortId[6] = {
+static const u8 l_zSortId[6] = {
0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x11,
};
/* 80056390-8005648C 050CD0 00FC+00 0/0 1/1 0/0 .text init__12dDlst_list_cFv */
-// r3 / r4 swap
-#ifdef NONMATCHING
void dDlst_list_c::init() {
J3DDrawBuffer** var_r30 = mDrawBuffers;
const u16* var_r29 = l_drawlistSize;
for (int i = 0; i < 21; i++) {
- u32 temp_r3 = *var_r29;
- var_r29++;
-
- *var_r30 = J3DDrawBuffer__create(temp_r3);
+ *var_r30 = J3DDrawBuffer__create(*var_r29++);
var_r30++;
}
const u8* var_r5 = l_nonSortId;
for (int i = 0; i < 9; i++) {
- mDrawBuffers[(u8)*var_r5]->setNonSort();
- var_r5++;
+ mDrawBuffers[*var_r5++]->setNonSort();
}
- u8* var_r5_2 = l_zSortId;
+ const u8* var_r5_2 = l_zSortId;
for (int i = 0; i < 6; i++) {
- mDrawBuffers[(u8)*var_r5_2]->setZSort();
- var_r5_2++;
+ mDrawBuffers[*var_r5_2++]->setZSort();
}
setOpaList();
@@ -2619,16 +2704,6 @@ void dDlst_list_c::init() {
mShadowControl.init();
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dDlst_list_c::init() {
- nofralloc
-#include "asm/d/d_drawlist/init__12dDlst_list_cFv.s"
-}
-#pragma pop
-#endif
/* 8005648C-80056538 050DCC 00AC+00 0/0 1/1 0/0 .text __dt__12dDlst_list_cFv */
// TU vtable data order has to be fixed
@@ -2683,18 +2758,19 @@ SECTION_SDATA2 static f32 lit_5747 = 9999.0f;
/* 800565EC-800566D4 050F2C 00E8+00 0/0 2/2 0/0 .text
* entryZSortXluDrawList__12dDlst_list_cFP13J3DDrawBufferP9J3DPacketR4cXyz */
-// (size / 9999.0f) register swap, but reversing values makes things much worse
+// Matches with literals
#ifdef NONMATCHING
void dDlst_list_c::entryZSortXluDrawList(J3DDrawBuffer* param_0, J3DPacket* param_1,
cXyz& param_2) {
f32 z_value = -J3DCalcZValue(j3dSys.getViewMtx(), param_2);
u32 size = param_0->getEntryTableSize();
- f32 temp_f1 = size / 9999.0f;
+ f32 fsize = size;
+ fsize = 9999.0f / fsize;
u16 var_r0;
- if (temp_f1 + 1.0f < z_value) {
- if (10000.0f - temp_f1 > z_value) {
- var_r0 = z_value / temp_f1;
+ if (fsize + 1.0f < z_value) {
+ if (10000.0f - fsize > z_value) {
+ var_r0 = z_value / fsize;
} else {
var_r0 = size - 1;
}
diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp
index e07fd63e27..32b555c52f 100644
--- a/src/d/d_lib.cpp
+++ b/src/d/d_lib.cpp
@@ -4,30 +4,18 @@
//
#include "d/d_lib.h"
+#include "d/event/d_event.h"
+#include "d/d_stage.h"
#include "SSystem/SComponent/c_m3d.h"
+#include "JSystem/JKernel/JKRAramArchive.h"
+#include "JSystem/JKernel/JKRAram.h"
+#include "JSystem/JKernel/JKRDecomp.h"
+#include "JSystem/JKernel/JKRDvdRipper.h"
#include "dol2asm.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_controller_pad.h"
//
-// Types:
-//
-
-struct dEvt_control_c {
- /* 800434D8 */ void searchMapEventData(u8);
-};
-
-struct JKRExpandSwitch {};
-
-struct JKRAramArchive {
- /* 802D781C */ void getAramAddress(char const*);
-};
-
-struct JKRAram {
- /* 802D25B4 */ void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*);
-};
-
-//
// Forward References:
//
@@ -316,37 +304,49 @@ bool STControl::checkDownTrigger() {
}
/* 8003261C-80032654 02CF5C 0038+00 0/0 0/0 1/1 .text dLib_getEventSwitchNo__Fi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm u8 dLib_getEventSwitchNo(int param_0) {
- nofralloc
-#include "asm/d/d_lib/dLib_getEventSwitchNo__Fi.s"
+u8 dLib_getEventSwitchNo(int param_0) {
+ dStage_MapEvent_dt_c* mapEvent = dEvt_control_c::searchMapEventData(param_0);
+ if (mapEvent != NULL) {
+ return mapEvent->mSwitch;
+ }
+ return 0xff;
}
-#pragma pop
/* 80032654-80032738 02CF94 00E4+00 0/0 0/0 8/8 .text
* dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm BOOL dLib_checkActorInRectangle(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz const* param_2,
- cXyz const* param_3) {
- nofralloc
-#include "asm/d/d_lib/dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz.s"
+BOOL dLib_checkActorInRectangle(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz const* param_2,
+ cXyz const* param_3) {
+ cXyz local_24 = param_0->current.pos - param_1->current.pos;
+ mDoMtx_stack_c::YrotS(-param_1->current.angle.y);
+ mDoMtx_stack_c::multVec(&local_24, &local_24);
+ if (param_2->x <= local_24.x && local_24.x <= param_3->x && param_2->z <= local_24.z &&
+ local_24.z <= param_3->z)
+ {
+ return TRUE;
+ }
+ return FALSE;
}
-#pragma pop
/* 80032738-80032804 02D078 00CC+00 0/0 4/4 0/0 .text
* dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* param_0, char const* param_1) {
- nofralloc
-#include "asm/d/d_lib/dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc.s"
+u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* i_aramArchive, char const* param_2) {
+ u8 header[32] __attribute__((aligned(32)));
+ JUT_ASSERT(1252, i_aramArchive != 0);
+ u32 address = i_aramArchive->getAramAddress(param_2);
+ if (address == 0) {
+ return 0;
+ }
+ u8* readAddress = JKRAramToMainRam(address, header, 0x20, EXPAND_SWITCH_UNKNOWN0, 0, 0, 0xffffffff, 0);
+ JUT_ASSERT(1260, readAddress == header);
+ JKRArchive::SDIFileEntry* entry = i_aramArchive->findFsResource(param_2, 0);
+ JUT_ASSERT(1263, entry != 0);
+ u32 uVar1 = ALIGN_NEXT(JKRDecompExpandSize(header), 32);
+ u32 uVar5 = ALIGN_NEXT(entry->data_size, 32);
+ if (uVar1 > uVar5) {
+ return uVar1;
+ }
+ return uVar5;
}
-#pragma pop
/* ############################################################################################## */
/* 80450DD8-80450DDC 0002D8 0004+00 2/2 0/0 0/0 .sbss m_diffTime__11dLib_time_c */
diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp
index 903bf23776..acbad3e5f8 100644
--- a/src/d/d_name.cpp
+++ b/src/d/d_name.cpp
@@ -723,13 +723,9 @@ int dName_c::mojiChange(u8 idx) {
mChrInfo[idx].mCharacter = 'ゥ';
}
} else {
- int c = 'ァ';
- if (mChrInfo[idx].mMojiSet != MOJI_HIRA) {
- c = 'ぁ';
- }
- bool check = mChrInfo[idx].mCharacter - c == 0 ? 1 : 0;
+ int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ぁ' : 'ァ';
- if (check) {
+ if ((mChrInfo[idx].mCharacter - c) % 2) {
--mChrInfo[idx].mCharacter;
} else {
++mChrInfo[idx].mCharacter;
@@ -737,36 +733,25 @@ int dName_c::mojiChange(u8 idx) {
}
break;
case 1:
- int c = 'か';
- if (mChrInfo[idx].mMojiSet != MOJI_HIRA) {
- c = 'カ';
+ int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'カ' : 'か';
+ if ((mChrInfo[idx].mCharacter - c) % 2 == 0) {
+ mChrInfo[idx].mCharacter += 1;
+ } else {
+ mChrInfo[idx].mCharacter -= 1;
}
-
- mChrInfo[idx].mCharacter == c ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--;
break;
case 2:
- int c2 = 'さ';
- if (mChrInfo[idx].mMojiSet != MOJI_HIRA) {
- c2 = 'サ';
- }
-
- mChrInfo[idx].mCharacter == c ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--;
+ int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ';
+ ((mChrInfo[idx].mCharacter - c) % 2) ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--;
break;
case 3:
case 12:
if (mChrInfo[idx].mCharacter != 0x815b) {
- int c = 'ぢ';
- if (mChrInfo[idx].mMojiSet != MOJI_HIRA) {
- c = 'ヂ';
- }
+ int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ': 'ぢ';
if (c < mChrInfo[idx].mCharacter) {
- int c2 = 'ぢ';
- if (mChrInfo[idx].mMojiSet != MOJI_HIRA) {
- c2 = 'ヂ';
- }
-
- mChrInfo[idx].mCharacter == c2 ? mChrInfo[idx].mCharacter++ :
+ int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ';
+ (mChrInfo[idx].mCharacter - c2) % 2 ? mChrInfo[idx].mCharacter++ :
mChrInfo[idx].mCharacter--;
}
}
diff --git a/src/msg/scrn/d_msg_scrn_base.cpp b/src/msg/scrn/d_msg_scrn_base.cpp
index c99550b468..2c715e2455 100644
--- a/src/msg/scrn/d_msg_scrn_base.cpp
+++ b/src/msg/scrn/d_msg_scrn_base.cpp
@@ -1,5 +1,4 @@
//
-// Generated By: dol2asm
// Translation Unit: msg/scrn/d_msg_scrn_base
//
diff --git a/src/msg/scrn/d_msg_scrn_boss.cpp b/src/msg/scrn/d_msg_scrn_boss.cpp
index ae609921a7..d1f32e4a9b 100644
--- a/src/msg/scrn/d_msg_scrn_boss.cpp
+++ b/src/msg/scrn/d_msg_scrn_boss.cpp
@@ -1,5 +1,4 @@
//
-// Generated By: dol2asm
// Translation Unit: msg/scrn/d_msg_scrn_boss
//
diff --git a/src/msg/scrn/d_msg_scrn_explain.cpp b/src/msg/scrn/d_msg_scrn_explain.cpp
index a81ac6363a..b7c317810a 100644
--- a/src/msg/scrn/d_msg_scrn_explain.cpp
+++ b/src/msg/scrn/d_msg_scrn_explain.cpp
@@ -1,5 +1,4 @@
//
-// Generated By: dol2asm
// Translation Unit: msg/scrn/d_msg_scrn_explain
//
@@ -19,14 +18,6 @@
#include "dolphin/types.h"
//
-// Types:
-//
-
-//
-// Forward References:
-//
-
-//
// External References:
//
diff --git a/src/msg/scrn/d_msg_scrn_howl.cpp b/src/msg/scrn/d_msg_scrn_howl.cpp
index d91720425c..07b0a93688 100644
--- a/src/msg/scrn/d_msg_scrn_howl.cpp
+++ b/src/msg/scrn/d_msg_scrn_howl.cpp
@@ -4,151 +4,25 @@
//
#include "msg/scrn/d_msg_scrn_howl.h"
+#include "m_Do/m_Do_controller_pad.h"
+#include "m_Do/m_Do_graphic.h"
+#include "d/msg/d_msg_class.h"
+#include "d/msg/d_msg_object.h"
+#include "d/meter/d_meter2_info.h"
+#include "d/meter/d_meter2_draw.h"
+#include "d/pane/d_pane_class_alpha.h"
+#include "d/pane/d_pane_class.h"
+#include "d/a/d_a_alink.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRArchive.h"
+#include "JSystem/JUtility/JUTTexture.h"
+#include "JSystem/JUtility/JUTAssert.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "Z2AudioLib/Z2WolfHowlMgr.h"
#include "dol2asm.h"
//
-// Types:
-//
-
-struct mDoCPd_c {
- static u8 m_cpadInfo[256];
-};
-
-struct dMsgScrnHowl_c {
- /* 8024096C */ dMsgScrnHowl_c();
- /* 80241784 */ ~dMsgScrnHowl_c();
- /* 80241A70 */ void exec();
- /* 80241C30 */ void drawSelf();
- /* 80241D58 */ void guide_on_init();
- /* 80241D5C */ void guide_on_proc();
- /* 80241DFC */ void guide_off_init();
- /* 80241E00 */ void guide_off_proc();
- /* 80241E7C */ void guide_stop_init();
- /* 80241E80 */ void guide_stop_proc();
- /* 80241F28 */ void guide_demo_play_init();
- /* 80241F34 */ void guide_demo_play_proc();
- /* 8024202C */ void guide_off_test_init();
- /* 80242030 */ void guide_off_test_proc();
- /* 80242034 */ void fukiScale(f32);
- /* 80242038 */ void fukiTrans(f32, f32);
- /* 8024205C */ void fukiAlpha(f32);
- /* 80242080 */ void isKeyCheck();
- /* 802420D4 */ void resetLine();
- /* 80242198 */ void drawWave();
- /* 802427A8 */ void drawGuide();
- /* 80242FE4 */ void drawGuide2();
- /* 802435BC */ void drawEffect();
- /* 80243838 */ void calcMain();
- /* 8024389C */ void calcWave();
- /* 80243A50 */ void calcGuide();
- /* 80243BE0 */ void moveLineV(bool);
- /* 80243DCC */ void moveBaseLength(bool);
- /* 80243EEC */ void getOnLineNum(int);
- /* 80243F58 */ void addCount(s16);
- /* 80243F7C */ void addCountGuide(s16);
- /* 80243F94 */ void getNowPlotPitch(f32);
- /* 80244108 */ void getPlotPitch(f32);
- /* 8024414C */ void calcPitchLevel();
- /* 802441FC */ void initGuideData();
- /* 80244304 */ void getGuideDataSize();
- /* 8024438C */ void getGuideDataType(int);
-};
-
-struct dMsgScrnBase_c {
- /* 80238C40 */ void setSelectRubyString(char*, char*, char*);
- /* 80238C44 */ void setSelectString(char*, char*, char*);
- /* 80238C48 */ bool selectAnimeMove(u8, u8, bool);
- /* 80238C50 */ void selectAnimeInit(u8, u8, f32, u8);
- /* 80238C54 */ void arwAnimeMove();
- /* 80238C58 */ void arwAnimeInit();
- /* 80238C5C */ void fukiPosCalc(u8);
- /* 80238C60 */ bool isSelect();
- /* 80238C68 */ bool selectAnimeEnd();
- /* 80238C70 */ void dotAnimeMove();
- /* 80238C74 */ void dotAnimeInit();
- /* 8023C0DC */ dMsgScrnBase_c();
- /* 8023C124 */ ~dMsgScrnBase_c();
- /* 8023C16C */ void init();
- /* 8023C234 */ void multiDraw();
- /* 8023C274 */ void draw();
- /* 8023C4F4 */ void fontAlpha(f32);
-};
-
-struct JMSMesgEntry_c {};
-
-struct dMeter2Info_c {
- /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*);
-};
-
-struct JUtility {
- struct TColor {};
-};
-
-struct dMeter2Draw_c {
- /* 802140DC */ void drawPikari(f32, f32, f32*, f32, JUtility::TColor, JUtility::TColor,
- JUtility::TColor, JUtility::TColor, f32, u8);
-};
-
-struct Z2WolfHowlMgr {
- /* 802CACCC */ void getNowInputValue();
- /* 802CB320 */ void getCorrectLine(u8);
- /* 802CB370 */ void getCorrectLineNum();
- /* 802CB650 */ void getOnLineNum();
- /* 802CBA88 */ void startGuideMelody(bool);
-};
-
-struct ResTIMG {};
-
-struct JKRExpHeap {};
-
-struct JKRArchive {};
-
-struct JGeometry {
- template <typename A1>
- struct TBox2 {};
- /* TBox2<f32> */
- struct TBox2__template0 {};
-};
-
-struct J2DTextBox {
- /* 80300658 */ void getStringPtr() const;
- /* 8030074C */ void setString(s16, char const*, ...);
-};
-
-struct J2DScreen {
- /* 802F8498 */ J2DScreen();
- /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
-};
-
-struct J2DPicture {
- /* 802FC708 */ J2DPicture(ResTIMG const*);
-};
-
-struct J2DPane {
- /* 802F7100 */ void getBounds();
-};
-
-struct J2DGrafContext {
- /* 802E90C0 */ void scissor(JGeometry::TBox2<f32> const&);
-};
-
-struct CPaneMgrAlpha {
- /* 802557D0 */ void setAlphaRate(f32);
- /* 80255828 */ void getAlphaRate();
-};
-
-struct CPaneMgr {
- /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
- /* 80253930 */ CPaneMgr();
- /* 80253A18 */ ~CPaneMgr();
- /* 802542E8 */ void getGlobalPosX();
- /* 80254364 */ void getGlobalPosY();
- /* 802545B0 */ void paneTrans(f32, f32);
- /* 80254C90 */ void getGlobalVtx(J2DPane*, f32 (*)[3][4], u8, bool, s16);
- /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16);
-};
-
-//
// Forward References:
//
@@ -243,7 +117,6 @@ extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
extern "C" void __ct__10J2DPictureFPC7ResTIMG();
extern "C" void getStringPtr__10J2DTextBoxCFv();
extern "C" void setString__10J2DTextBoxFsPCce();
-extern "C" void GXGetScissor();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_21();
extern "C" void _savegpr_23();
@@ -260,9 +133,8 @@ extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 g_meter2_info[248];
-extern "C" extern u8 g_MsgObject_HIO_c[1040];
+
+extern dMsgObject_HIO_c g_MsgObject_HIO_c;
//
// Declarations:
@@ -287,6 +159,18 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+typedef void (dMsgScrnHowl_c::*dMsgScrnHowl_cFunc)();
+
+#ifdef NONMATCHING
+static dMsgScrnHowl_cFunc init_proc[5] = {
+ &dMsgScrnHowl_c::guide_on_init,
+ &dMsgScrnHowl_c::guide_off_init,
+ &dMsgScrnHowl_c::guide_stop_init,
+ &dMsgScrnHowl_c::guide_demo_play_init,
+ &dMsgScrnHowl_c::guide_off_test_init,
+};
+#else
+
/* 803C0FDC-803C0FE8 -00001 000C+00 0/1 0/0 0/0 .data @4173 */
#pragma push
#pragma force_active on
@@ -345,6 +229,17 @@ SECTION_DATA static u8 init_proc[60] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+#endif
+
+#ifdef NONMATCHING
+static dMsgScrnHowl_cFunc process[5] = {
+ &dMsgScrnHowl_c::guide_on_proc,
+ &dMsgScrnHowl_c::guide_off_proc,
+ &dMsgScrnHowl_c::guide_stop_proc,
+ &dMsgScrnHowl_c::guide_demo_play_proc,
+ &dMsgScrnHowl_c::guide_off_test_proc,
+};
+#else
/* 803C1054-803C1060 -00001 000C+00 0/1 0/0 0/0 .data @4178 */
#pragma push
#pragma force_active on
@@ -463,46 +358,39 @@ SECTION_DATA static u8 process[60 + 4 /* padding */] = {
0x00,
0x00,
};
+#endif
/* 803C10D0-803C10E8 01E1F0 0018+00 0/1 0/0 0/0 .data ylinen_tag$4210 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 ylinen_tag[24] = {
- 0x79, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x30, 0x79, 0x6C, 0x69, 0x6E,
- 0x65, 0x6E, 0x30, 0x32, 0x79, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x34,
+SECTION_DATA static u64 ylinen_tag[3] = {
+ 'ylinen00',
+ 'ylinen02',
+ 'ylinen04',
};
#pragma pop
/* 803C10E8-803C1120 01E208 0038+00 0/1 0/0 0/0 .data tlinen_tag$4211 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 tlinen_tag[56] = {
- 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x30, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E,
- 0x30, 0x31, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x32, 0x74, 0x6C, 0x69, 0x6E,
- 0x65, 0x6E, 0x30, 0x33, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x34, 0x74, 0x6C,
- 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x35, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x36,
+SECTION_DATA static u64 tlinen_tag[7] = {
+ 'tlinen00', 'tlinen01', 'tlinen02', 'tlinen03', 'tlinen04', 'tlinen05', 'tlinen06',
};
#pragma pop
/* 803C1120-803C1158 01E240 0038+00 0/0 0/0 0/0 .data tline_tag$4212 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 tline_tag[56] = {
- 0x00, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x30, 0x30, 0x00, 0x74, 0x6C, 0x69, 0x6E, 0x65,
- 0x30, 0x31, 0x00, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x30, 0x32, 0x00, 0x74, 0x6C, 0x69,
- 0x6E, 0x65, 0x30, 0x33, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x6E, 0x30, 0x34, 0x00, 0x74,
- 0x6C, 0x69, 0x6E, 0x65, 0x30, 0x35, 0x00, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x30, 0x36,
+SECTION_DATA static u64 tline_tag[7] = {
+ 'tline00', 'tline01', 'tline02', 'tline03', 'tlinen04', 'tline05', 'tline06',
};
#pragma pop
/* 803C1158-803C1190 01E278 0038+00 0/0 0/0 0/0 .data tlines_tag$4213 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 tlines_tag[56] = {
- 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x30, 0x30, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x73,
- 0x30, 0x31, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x30, 0x32, 0x74, 0x6C, 0x69, 0x6E,
- 0x65, 0x73, 0x30, 0x33, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x30, 0x34, 0x74, 0x6C,
- 0x69, 0x6E, 0x65, 0x73, 0x30, 0x35, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x30, 0x36,
+SECTION_DATA static u64 tlines_tag[7] = {
+ 'tlines00', 'tlines01', 'tlines02', 'tlines03', 'tlines04', 'tlines05', 'tlines06',
};
#pragma pop
@@ -560,6 +448,168 @@ SECTION_SDATA2 static f32 lit_4431[1 + 1 /* padding */] = {
SECTION_SDATA2 static f64 lit_4434 = 4503601774854144.0 /* cast s32 to float */;
/* 8024096C-80241784 23B2AC 0E18+00 0/0 1/1 0/0 .text __ct__14dMsgScrnHowl_cFv */
+// Matches with literals (Maybe minor issue with tag arrays)
+#ifdef NONMATCHING
+dMsgScrnHowl_c::dMsgScrnHowl_c() {
+ init();
+ mpScreen = new J2DScreen();
+ JUT_ASSERT(61, mpScreen != 0);
+ bool fg = mpScreen->setPriority("zelda_wolf_howl.blo", 0x20000, dComIfGp_getMsgArchive(5));
+ JUT_ASSERT(73, fg != false);
+ dPaneClass_showNullPane(mpScreen);
+ mpScreen->search('line00')->hide();
+ mpPmp_c = new CPaneMgr(mpScreen, 'n_all', 3, NULL);
+ JUT_ASSERT(79, mpPmP_c != 0);
+ mpScreen->search('ag_n')->hide();
+ field_0x1994 = 0.0f;
+ field_0x1998 = 0.0f;
+ mpScreen->search('wi_btn_n')->hide();
+ mpButtonIcon[0] = new CPaneMgr(mpScreen, 'cbtn_n', 2, NULL);
+ JUT_ASSERT(91, mpButtonIcon[0] != 0);
+ mpButtonText[0] = new CPaneMgr(mpScreen, 'g_ltxt_n', 2, NULL);
+ JUT_ASSERT(93, mpButtonText[0] != 0);
+ mpButtonIcon[1] = new CPaneMgr(mpScreen, 'abt_n', 2, NULL);
+ JUT_ASSERT(96, mpButtonIcon[1] != 0);
+ mpButtonText[1] = new CPaneMgr(mpScreen, 'gr_txt_n', 2, NULL);
+ JUT_ASSERT(98, mpButtonText[1] != 0);
+ J2DTextBox* piStack_19c = (J2DTextBox*)mpScreen->search('fgl_info');
+ J2DTextBox* piStack_1a0 = (J2DTextBox*)mpScreen->search('fgr_info');
+ mpScreen->search('g_l_info')->hide();
+ mpScreen->search('g_r_info')->hide();
+ piStack_19c->setString(0x40, "");
+ piStack_19c->setFont(mDoExt_getMesgFont());
+ dMeter2Info_getStringKanji(0x4d4, piStack_19c->getStringPtr(), NULL);
+ piStack_1a0->setString(0x40, "");
+ piStack_1a0->setFont(mDoExt_getMesgFont());
+ dMeter2Info_getStringKanji(0x4d5, piStack_1a0->getStringPtr(), NULL);
+ field_0x2195 = 0;
+ for (int i = 0; i < 0x300; i++) {
+ field_0x180[i] = 0.0f;
+ field_0xd80[i] = 0.0f;
+ field_0x2198[i] = 0;
+ field_0x2498[i] = 0;
+ field_0x1b14[i] = 0;
+ }
+ for (int i = 0; i < 3; i++) {
+ field_0x1b08[i] = 0.0f;
+ }
+ field_0x2114 = 0;
+ field_0x2118 = 0;
+ field_0x211c = 0;
+ field_0x2120 = 0;
+ for (int i = 0; i < 30; i++) {
+ field_0x213a[i] = 0;
+ field_0x2158[i] = 0;
+ field_0x2176[i] = 0;
+ field_0x19a0[i] = 0.0f;
+ field_0x1a18[i] = 0.0f;
+ field_0x1a90[i] = 0.0f;
+ }
+ field_0x279b = 0x0;
+ field_0x2124 = 0;
+ field_0x2128 = 0;
+ mPlotTime = 0;
+ field_0x212c = 0;
+ field_0x212e = 0;
+ field_0x2126 = 0;
+ field_0x2130 = 0;
+ field_0x2132 = 0;
+ field_0x17c = 1;
+ field_0x279a = 0;
+ field_0x199c = 0.0f;
+ s16 howl = daAlink_getAlinkActorClass()->checkWindStoneHowl();
+ if (howl != 0) {
+ field_0x2798 = 3;
+ } else {
+ field_0x2798 = 0;
+ }
+ field_0x2799 = field_0x2798;
+ (this->*init_proc[field_0x2798])();
+ field_0x1980 = g_MsgObject_HIO_c.mHowlHIO.mDrawInterval;
+ field_0x2136 = (350.0f / field_0x1980);
+ field_0x2138 = 0;
+ field_0x1984 = 255.0f / field_0x2136;
+ mpABase = new CPaneMgr(mpScreen, 'a_base', 0, NULL);
+ JUT_ASSERT(218, mpABase != 0);
+ mpLineAll = new CPaneMgr(mpScreen, 'line_all', 0, NULL);
+ JUT_ASSERT(221, mpLineAll != 0);
+ f32 in_f31;
+ for (int i = 0; i < 7; i++) {
+ J2DPane* piStack_1b4 = mpScreen->search(tlinen_tag[i]);
+ if (i == 0) {
+ CPaneMgr aCStack_b0;
+ Mtx mtx1;
+ Vec fStack_120 = mpABase->getGlobalVtx(&mtx1, 0, true, 0);
+ Vec fStack_144 = aCStack_b0.getGlobalVtxCenter(piStack_1b4, true, 0);
+ in_f31 = fStack_120.x - fStack_144.x;
+ }
+ f32 f29 = piStack_1b4->getBounds().i.y;
+ piStack_1b4->move(g_MsgObject_HIO_c.mHowlHIO.mInputStartPoint +
+ ((in_f31 + piStack_1b4->getBounds().i.x) - 3.0f),
+ f29);
+ }
+ for (int i = 0; i < 3; i++) {
+ mpLineH[i] = new CPaneMgr(mpScreen, ylinen_tag[i], 0, NULL);
+ JUT_ASSERT(242, mpLineH[i] != 0);
+ }
+ for (int i = 0; i < 7; i++) {
+ mpLineV[i] = new CPaneMgr(mpScreen, tline_tag[i], 2, NULL);
+ JUT_ASSERT(247, mpLineV[i] != 0);
+ }
+ Mtx mtx2;
+ field_0x128 = mpLineH[0]->getGlobalVtx(&mtx2, 0, true, 0);
+ field_0x134 = mpLineH[0]->getGlobalVtx(&mtx2, 3, true, 0);
+ field_0x140 = mpLineH[2]->getGlobalVtx(&mtx2, 3, true, 0);
+ field_0x14c = mpLineV[0]->getGlobalVtx(&mtx2, 0, true, 0);
+ field_0x158 = mpLineV[0]->getGlobalVtx(&mtx2, 3, true, 0);
+ field_0x164 = mpLineV[1]->getGlobalVtx(&mtx2, 0, true, 0);
+ field_0x170 = mpLineV[1]->getGlobalVtx(&mtx2, 3, true, 0);
+ field_0x279c = 0.0f;
+ field_0x27a0 = 0.0f;
+ field_0x27a4 = 1.0f;
+ field_0x27a8 = 0.0f;
+ ResTIMG const* res = (ResTIMG const*) dComIfGp_getMsgArchive(5)->getResource('TIMG', "tt_ginnouroko_s3tc.bti");
+ mpDot = new J2DPicture(res);
+ JUT_ASSERT(275, mpDot != 0);
+ mpDot->setWhite(JUtility::TColor(0xff, 0xff, 0x71, 0xff));
+ res = (ResTIMG const*)dComIfGp_getMsgArchive(5)->getResource('TIMG', "tt_black_32.bti");
+ mpGuideDot = new J2DPicture(res);
+ JUT_ASSERT(280, mpGuideDot != 0);
+ mpGuideDot->setBlackWhite(((J2DPicture*)mpScreen->search('line00'))->getBlack(), ((J2DPicture*)mpScreen->search('line00'))->getWhite());
+ res = (ResTIMG const*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_iastarRR.bti");
+ mpTopBall = new J2DPicture(res);
+ JUT_ASSERT(287, mpTopBall != 0);
+ mpTopBall->setBlackWhite(g_MsgObject_HIO_c.mHowlHIO.mDotBlack, g_MsgObject_HIO_c.mHowlHIO.mDotWhite);
+
+ ;
+ for (int i = 0; i < 5; i++) {
+ mpTopBallTail[i] = new J2DPicture(res);
+ JUT_ASSERT(292, mpTopBallTail[i] != 0);
+ mpTopBallTail[i]->setBlackWhite(g_MsgObject_HIO_c.mHowlHIO.mDotBlack, g_MsgObject_HIO_c.mHowlHIO.mDotWhite);
+ }
+ field_0x2134 = 0;
+ field_0x1988 = mpScreen->search('line00')->getWidth();
+ field_0x198c = mpScreen->search('line00')->getHeight();
+ field_0x2194 = daAlink_getAlinkActorClass()->getCorrectCurveID();
+ mCorrectLineMax = 0;
+ field_0x2197 = 0;
+ res = (ResTIMG const*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti");
+ mpWaveTex = new J2DPicture(res);
+ JUT_ASSERT(307, mpWaveTex != 0);
+ mpWaveTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 200, 0, 255));
+ mpWaveTex->setCornerColor(
+ JUtility::TColor(128, 128, 128, 0), JUtility::TColor(255, 255, 255, 255),
+ JUtility::TColor(128, 128, 128, 0), JUtility::TColor(255, 255, 255, 255));
+ mpWaveTex->setAlpha(0);
+ if (field_0x2194 >= 0) {
+ mCorrectLineMax = daAlink_getAlinkActorClass()->getCorrectLineNum();
+ JUT_ASSERT(322, mCorrectLineMax < LINE_MAX);
+ field_0x2197 = LINE_MAX;
+ field_0x2138 = getGuideDataSize();
+ }
+ resetLine();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -568,16 +618,48 @@ asm dMsgScrnHowl_c::dMsgScrnHowl_c() {
#include "asm/msg/scrn/d_msg_scrn_howl/__ct__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 80241784-80241A70 23C0C4 02EC+00 1/0 0/0 0/0 .text __dt__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dMsgScrnHowl_c::~dMsgScrnHowl_c() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/__dt__14dMsgScrnHowl_cFv.s"
+dMsgScrnHowl_c::~dMsgScrnHowl_c() {
+ delete mpScreen;
+ mpScreen = NULL;
+
+ delete mpPmp_c;
+ mpPmp_c = NULL;
+
+ for (int i = 0; i < 2; i++) {
+ delete mpButtonIcon[i];
+ mpButtonIcon[i] = NULL;
+ delete mpButtonText[i];
+ mpButtonText[i] = NULL;
+ }
+ for (int i = 0; i < 3; i++) {
+ delete mpLineH[i];
+ mpLineH[i] = NULL;
+ }
+ for (int i = 0; i < 7; i++) {
+ delete mpLineV[i];
+ mpLineV[i] = NULL;
+ }
+ delete mpABase;
+ mpABase = NULL;
+ delete mpLineAll;
+ mpLineAll = NULL;
+ delete mpDot;
+ mpDot = NULL;
+ delete mpGuideDot;
+ mpGuideDot = NULL;
+ delete mpTopBall;
+ mpTopBall = NULL;
+ for (int i = 0; i < 5; i++) {
+ delete mpTopBallTail[i];
+ mpTopBallTail[i] = NULL;
+ }
+ delete mpWaveTex;
+ mpWaveTex = NULL;
+ dComIfGp_getMsgArchive(5)->removeResourceAll();;
}
-#pragma pop
/* ############################################################################################## */
/* 80454C70-80454C74 003270 0004+00 7/7 0/0 0/0 .sdata2 @4561 */
@@ -594,6 +676,48 @@ SECTION_SDATA2 static f32 lit_4563[1 + 1 /* padding */] = {
};
/* 80241A70-80241C30 23C3B0 01C0+00 1/0 0/0 0/0 .text exec__14dMsgScrnHowl_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::exec() {
+ field_0x2799 = field_0x2798;
+ (this->*process[field_0x2798])();
+ for (int i = 0; i < 0x300; i++) {
+ if (field_0x1b14[i] > 0) {
+ field_0x1b14[i]--;
+ }
+ }
+ if (field_0x2799 != field_0x2798) {
+ (this->*init_proc[field_0x2798])();
+ }
+
+ f32 dVar10 = mpPmp_c->getAlphaRate();
+ f32 fVar1;
+ f32 fVar2;
+ if (field_0x2798 == 3) {
+ fVar1 = 0.5f;
+ fVar2 = 0.0f;
+ } else {
+ fVar1 = 1.0f;
+ fVar2 = 1.0f;
+ }
+ if (field_0x1994 != fVar1) {
+ cLib_addCalc2(&field_0x1994, fVar1, 0.2f, 1.0f);
+ if (fabsf(field_0x1994 - fVar1) < 0.1f) {
+ field_0x1994 = fVar1;
+ }
+ }
+ if (field_0x1998 != fVar2) {
+ cLib_addCalc2(&field_0x1998, fVar2, 0.2f, 1.0f);
+ if (fabsf(field_0x1998 - fVar2) < 0.1f) {
+ field_0x1998 = fVar2;
+ }
+ }
+ mpButtonIcon[0]->setAlphaRate(field_0x1994 * dVar10);
+ mpButtonIcon[1]->setAlphaRate(field_0x1994 * dVar10);
+ mpButtonText[0]->setAlphaRate(field_0x1998 * dVar10);
+ mpButtonText[1]->setAlphaRate(field_0x1998 * dVar10);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -602,12 +726,32 @@ asm void dMsgScrnHowl_c::exec() {
#include "asm/msg/scrn/d_msg_scrn_howl/exec__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80454C80-80454C88 003280 0008+00 6/6 0/0 0/0 .sdata2 @4587 */
SECTION_SDATA2 static f64 lit_4587 = 4503599627370496.0 /* cast u32 to float */;
/* 80241C30-80241D58 23C570 0128+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnHowl_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::drawSelf() {
+ J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
+ GXGetScissor(&field_0x2114, &field_0x2118, &field_0x211c, &field_0x2120);
+ if (field_0x2138 != 0) {
+ if ((field_0x2798 == 0) || field_0x2798 == 4) {
+ drawGuide();
+ } else {
+ drawGuide2();
+ }
+ }
+ if (field_0x2798 != 3) {
+ drawWave();
+ }
+ grafContext->scissor(field_0x2114, field_0x2118, field_0x211c, field_0x2120);
+ grafContext->setScissor();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -616,6 +760,7 @@ asm void dMsgScrnHowl_c::drawSelf() {
#include "asm/msg/scrn/d_msg_scrn_howl/drawSelf__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 80241D58-80241D5C 23C698 0004+00 1/0 0/0 0/0 .text guide_on_init__14dMsgScrnHowl_cFv
*/
@@ -625,14 +770,22 @@ void dMsgScrnHowl_c::guide_on_init() {
/* 80241D5C-80241DFC 23C69C 00A0+00 1/0 0/0 0/0 .text guide_on_proc__14dMsgScrnHowl_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::guide_on_proc() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/guide_on_proc__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::guide_on_proc() {
+ if (daAlink_getAlinkActorClass()->getWolfHowlTimer() == 0) {
+ if (field_0x2195 == 1) {
+ field_0x2195 = 2;
+ }
+ if (mDoCPd_c::getTrigB(0) != 0 && field_0x2195 == 2) {
+ resetLine();
+ }
+ } else {
+ if (field_0x2195 == 2) {
+ resetLine();
+ }
+ field_0x2195 = 1;
+ calcMain();
+ }
}
-#pragma pop
/* 80241DFC-80241E00 23C73C 0004+00 1/0 0/0 0/0 .text guide_off_init__14dMsgScrnHowl_cFv
*/
@@ -642,14 +795,16 @@ void dMsgScrnHowl_c::guide_off_init() {
/* 80241E00-80241E7C 23C740 007C+00 1/0 0/0 0/0 .text guide_off_proc__14dMsgScrnHowl_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::guide_off_proc() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/guide_off_proc__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::guide_off_proc() {
+ calcMain();
+ if (daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer() != 30) {
+ if (daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) {
+ return;
+ }
+ }
+ field_0x2798 = 2;
+ resetLine();
}
-#pragma pop
/* 80241E7C-80241E80 23C7BC 0004+00 1/0 0/0 0/0 .text guide_stop_init__14dMsgScrnHowl_cFv
*/
@@ -659,34 +814,50 @@ void dMsgScrnHowl_c::guide_stop_init() {
/* 80241E80-80241F28 23C7C0 00A8+00 1/0 0/0 0/0 .text guide_stop_proc__14dMsgScrnHowl_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::guide_stop_proc() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/guide_stop_proc__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::guide_stop_proc() {
+ field_0x180[field_0x2124] =
+ getNowPlotPitch(-daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getNowInputValue());
+ if (mDoCPd_c::getHoldA(0) != 0) {
+ resetLine();
+ field_0x2798 = 1;
+ } else {
+ if (mDoCPd_c::getTrigB(0) != 0) {
+ resetLine();
+ field_0x2798 = 3;
+ }
+ }
}
-#pragma pop
/* 80241F28-80241F34 23C868 000C+00 1/0 0/0 0/0 .text guide_demo_play_init__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::guide_demo_play_init() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_init__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::guide_demo_play_init() {
+ field_0x279a = 0;
}
-#pragma pop
/* 80241F34-8024202C 23C874 00F8+00 1/0 0/0 0/0 .text guide_demo_play_proc__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::guide_demo_play_proc() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/guide_demo_play_proc__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::guide_demo_play_proc() {
+ if (mDoCPd_c::getHoldA(0) != 0) {
+ if (daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) {
+ resetLine();
+ field_0x2798 = 1;
+ }
+ }
+ calcMain();
+ bool startGuideMelody = false;
+ if (mPlotTime == 30) {
+ startGuideMelody = true;
+ }
+ field_0x17c = daAlink_getAlinkActorClass()->getWolfHowlMgrP()->startGuideMelody(startGuideMelody);
+ if (mPlotTime >= 30) {
+ if (field_0x17c == 0) {
+ if (field_0x279a != 0) {
+ resetLine();
+ field_0x279a = 0;
+ }
+ } else if (field_0x279a == 0) {
+ field_0x279a = 1;
+ }
+ }
}
-#pragma pop
/* 8024202C-80242030 23C96C 0004+00 1/0 0/0 0/0 .text guide_off_test_init__14dMsgScrnHowl_cFv */
void dMsgScrnHowl_c::guide_off_test_init() {
@@ -704,36 +875,53 @@ void dMsgScrnHowl_c::fukiScale(f32 param_0) {
}
/* 80242038-8024205C 23C978 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnHowl_cFff */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::fukiTrans(f32 param_0, f32 param_1) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/fukiTrans__14dMsgScrnHowl_cFff.s"
+void dMsgScrnHowl_c::fukiTrans(f32 param_0, f32 param_1) {
+ mpPmp_c->paneTrans(param_0, param_1);
}
-#pragma pop
/* 8024205C-80242080 23C99C 0024+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnHowl_cFf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::fukiAlpha(f32 param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/fukiAlpha__14dMsgScrnHowl_cFf.s"
+void dMsgScrnHowl_c::fukiAlpha(f32 param_0) {
+ mpPmp_c->setAlphaRate(param_0);
}
-#pragma pop
/* 80242080-802420D4 23C9C0 0054+00 0/0 1/1 0/0 .text isKeyCheck__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::isKeyCheck() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/isKeyCheck__14dMsgScrnHowl_cFv.s"
+bool dMsgScrnHowl_c::isKeyCheck() {
+ if (daAlink_getAlinkActorClass()->getWolfHowlTimer() == 0 && field_0x2799 == field_0x2798 &&
+ (field_0x2798 == 3 || (field_0x2798 == 0 && field_0x2195 == 0)))
+ {
+ return true;
+ }
+ return false;
}
-#pragma pop
/* 802420D4-80242198 23CA14 00C4+00 5/5 0/0 0/0 .text resetLine__14dMsgScrnHowl_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::resetLine() {
+ field_0x2195 = 0;
+ field_0x2128 = 0;
+ mPlotTime = 0;
+ field_0x212c = 0;
+ field_0x212e = 0;
+ field_0x2124 = 0;
+ field_0x2130 = 0;
+ field_0x2126 = 0;
+ field_0x279b = 0;
+ for (int i = 0; i < 30; i++) {
+ field_0x2158[i] = 0;
+ field_0x2176[i] = 0;
+ field_0x19a0[i] = 0.0f;
+ field_0x1a18[i] = 0.0f;
+ field_0x1a90[i] = 0.0f;
+ }
+ if (field_0x2138 != 0) {
+ initGuideData();
+ }
+ moveLineV(true);
+ moveBaseLength(true);
+ field_0x2138 = getGuideDataSize();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -742,6 +930,7 @@ asm void dMsgScrnHowl_c::resetLine() {
#include "asm/msg/scrn/d_msg_scrn_howl/resetLine__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 80454C88-80454C8C 003288 0004+00 2/2 0/0 0/0 .sdata2 @4824 */
@@ -763,6 +952,127 @@ SECTION_SDATA2 static f32 lit_4828 = 5.0f;
SECTION_SDATA2 static f32 lit_4829 = 15.0f;
/* 80242198-802427A8 23CAD8 0610+00 1/1 0/0 0/0 .text drawWave__14dMsgScrnHowl_cFv */
+// float regallocs
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::drawWave() {
+ J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
+ f32 local_e0 = mpLineH[0]->getGlobalPosX();
+ s16 sVar14 = field_0x2124;
+ f32 local_60 = 0.0f;
+ f32 local_64 = 0.0f;
+ f32 local_68 = 0.0f;
+ f32 f26 = local_e0;
+ f32 local_e4 = field_0x180[sVar14];
+ s32 uVar6 = g_MsgObject_HIO_c.mHowlHIO.mWaveformDotLen;
+ s32 local_80 = field_0x2128 - 1 - uVar6;
+ f32 fVar4 = (30 - daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer()) / 30.0f;
+ if (local_80 < 0) {
+ local_80 = 0;
+ }
+ s32 local_94 = 0;
+ Vec fVar12 = field_0x128;
+ Vec this_02 = field_0x140;
+ f32 fVar1 = mDoGph_gInf_c::getWidthF() / 608.0f;
+ f32 fVar2 = mDoGph_gInf_c::getHeightF() / 448.0f;
+ f32 dVar16 = mDoGph_gInf_c::getMinXF();
+ grafContext->scissor(
+ (fVar12.x - dVar16) / fVar1 - 16.0f,
+ (fVar12.y / fVar2) / fVar2 - 16.0f,
+ 32.0f + (this_02.x - fVar12.x) / fVar1,
+ 32.0f + ((this_02.y - fVar12.y) + 2.0f)
+ );
+ grafContext->setScissor();
+ bool bVar5 = true;
+ if (field_0x2798 == 0) {
+ if (mPlotTime != field_0x212c) {
+ field_0x212c = mPlotTime;
+ } else {
+ bVar5 = false;
+ }
+ }
+ if (bVar5) {
+ for (int iVar10 = 0; iVar10 < field_0x2128 - 1; iVar10++) {
+ f32 local_54 = local_e0;
+ f32 local_c8 = field_0x180[sVar14];
+ s32 sVar3 = field_0x1b14[sVar14];
+ local_e0 += field_0x1980;
+ local_68 += field_0x1984;
+ if (local_68 > 255.0f) {
+ local_68 = 255.0f;
+ }
+ sVar14 = addCount(sVar14);
+ f32 fVar2 = field_0x180[sVar14];
+ s16 temp_r4 = field_0x1b14[sVar14];
+ if (iVar10 == field_0x2128 - 2) {
+ local_60 = local_e0;
+ local_64 = fVar2;
+ local_94 = temp_r4;
+ }
+ if (mPlotTime >= 30 && iVar10 >= local_80 && iVar10 >= 30) {
+ f32 local_b0 = 0.0f;
+ if (sVar3 > 0) {
+ local_b0 = (f32)sVar3 / (f32)uVar6;
+ }
+ if (fVar4 > 0.0f && local_b0 > 0.0f) {
+ f32 fVar7 = 0.1f + 0.2f * local_b0;
+ f32 fVar8 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale * fVar7;
+ f32 fVar9 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale * fVar7;
+ u8 cVar9 = 255.0f * local_b0 * fVar4;
+ if (cVar9 != 0) {
+ f32 local_c4 = local_54;
+ f32 dVar16 = 5.0f;
+ fVar2 = local_e0 - local_54;
+ f32 f19 = fVar2 / 5.0f;
+ f32 f17 = (fVar2 - local_c8) / 5.0f;
+ for (int iVar15 = 0; iVar15 < 5; iVar15++) {
+ mpTopBallTail[iVar15]->setAlpha(cVar9);
+ mpTopBallTail[iVar15]->draw(local_c4 - fVar8 / 2,
+ local_c8 - fVar9 / 2, fVar8, fVar9,
+ false, false, false);
+ local_c4 += f19;
+ local_c8 += f17;
+ }
+ }
+ }
+ }
+ local_54 = fVar1;
+ }
+ if (fVar4 > 0.0f) {
+ f32 fVar1 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale;
+ f32 fVar2 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale;
+ f32 local_dc = 0.0f;
+ f32 f17;
+ f32 f18;
+ if (field_0x2128 != 0) {
+ if (local_94 > 0) {
+ local_dc = (f32)local_94 / (f32)uVar6;
+ }
+ f17 = local_60;
+ f18 = local_64;
+ } else {
+ field_0x2134++;
+ if (field_0x2134 > 30) {
+ field_0x2134 = 0;
+ }
+ if (field_0x2134 < 15) {
+ local_dc = field_0x2134 / 15.0f;
+ } else {
+ local_dc = (30.0f - field_0x2134) / 15.0f;
+ }
+ f17 = f26;
+ f18 = local_e4;
+ }
+ if (local_dc > 0.0f) {
+ mpTopBall->setAlpha(255.0f * local_dc * fVar4);
+ mpTopBall->draw(
+ f17 - fVar1 / 2,
+ f18 - fVar2 / 2, fVar1,
+ fVar2, false, false, false);
+ }
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -771,6 +1081,7 @@ asm void dMsgScrnHowl_c::drawWave() {
#include "asm/msg/scrn/d_msg_scrn_howl/drawWave__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 802427A8-80242FE4 23D0E8 083C+00 1/1 0/0 0/0 .text drawGuide__14dMsgScrnHowl_cFv */
#pragma push
@@ -814,16 +1125,54 @@ asm void dMsgScrnHowl_c::drawEffect() {
#pragma pop
/* 80243838-8024389C 23E178 0064+00 3/3 0/0 0/0 .text calcMain__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::calcMain() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/calcMain__14dMsgScrnHowl_cFv.s"
+void dMsgScrnHowl_c::calcMain() {
+ if (mPlotTime < field_0x2138 + 380) {
+ mPlotTime++;
+ } else {
+ field_0x212c--;
+ }
+ calcWave();
+ calcGuide();
}
-#pragma pop
/* 8024389C-80243A50 23E1DC 01B4+00 1/1 0/0 0/0 .text calcWave__14dMsgScrnHowl_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::calcWave() {
+ if (field_0x2128 < field_0x2136) {
+ field_0x2132 = field_0x2128;
+ field_0x2128++;
+ moveBaseLength(true);
+ } else {
+ if (field_0x212e < field_0x2138 + 380) {
+ field_0x212e++;
+ }
+ field_0x2132 = field_0x2124;
+ field_0x2124 = addCount(field_0x2124);
+ moveLineV(false);
+ moveBaseLength(false);
+ for (int iVar5 = 0; iVar5 < 30; iVar5++) {
+ if (field_0x1a90[iVar5] > 0.0f) {
+ field_0x19a0[iVar5] -= field_0x1980;
+ }
+ }
+ }
+ if (field_0x2798 != 3) {
+ s8 i_onNum = daAlink_getAlinkActorClass()->getOnLineNum();
+ if (i_onNum >= 0 && mPlotTime >= 30 && daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) {
+ JUT_ASSERT(1439, i_onNum < LINE_MAX);
+ JUT_ASSERT(1439, mPlotTime <= PLOT_BUFFER_MAX_e);
+ field_0x2158[i_onNum]++;
+ field_0x2498[mPlotTime] = 1;
+ } else {
+ field_0x2498[mPlotTime] = 0;
+ }
+ }
+
+ field_0x180[field_0x2132] = getNowPlotPitch(-daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getNowInputValue());
+ field_0x1b14[field_0x2132] = g_MsgObject_HIO_c.mHowlHIO.mWaveformDotLen;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -832,8 +1181,41 @@ asm void dMsgScrnHowl_c::calcWave() {
#include "asm/msg/scrn/d_msg_scrn_howl/calcWave__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 80243A50-80243BE0 23E390 0190+00 1/1 0/0 0/0 .text calcGuide__14dMsgScrnHowl_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::calcGuide() {
+ if (field_0x2138 != 0) {
+ if ((daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) || (field_0x2798 == 3)) {
+ calcPitchLevel();
+ for (int i = 0; i < 350; i++) {
+ if (field_0x2130 < field_0x2136) {
+ if (i < field_0x2138) {
+ u8 dataType = getGuideDataType(i);
+ field_0xd80[i] = getPlotPitch(dataType);
+ field_0x2198[i] = dataType;
+ } else {
+ field_0xd80[i] = 0.0f;
+ field_0x2198[i] = 0;
+ }
+ } else if (i + (field_0x2130 - field_0x2136) < field_0x2138) {
+ u8 dataType = getGuideDataType(i + (field_0x2130 - field_0x2136));
+ field_0xd80[i] = getPlotPitch(dataType);
+ field_0x2198[i] = dataType;
+ } else {
+ field_0xd80[i] = 0.0f;
+ field_0x2198[i] = 0;
+ }
+ }
+ if (field_0x2130 < (field_0x2138 + field_0x2136)) {
+ field_0x2130++;
+ }
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -842,8 +1224,45 @@ asm void dMsgScrnHowl_c::calcGuide() {
#include "asm/msg/scrn/d_msg_scrn_howl/calcGuide__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 80243BE0-80243DCC 23E520 01EC+00 2/2 0/0 0/0 .text moveLineV__14dMsgScrnHowl_cFb */
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::moveLineV(bool param_0) {
+ f32 dVar7 = (mpLineH[0]->getInitPosX() - mpLineV[0]->getInitCenterPosX());
+ f32 fVar1;
+ if (param_0) {
+ fVar1 = 0.0f;
+ } else {
+ fVar1 = (mpLineV[0]->getCenterPosX() - mpLineV[0]->getInitCenterPosX());
+ fVar1 -= field_0x1980;
+ }
+ f32 dVar8 = (mpLineV[0]->getInitCenterPosX() - mpLineV[1]->getInitCenterPosX()) - g_MsgObject_HIO_c.mHowlHIO.mLineSpaceOffset;
+ if (fVar1 < dVar7) {
+ fVar1 -= dVar8;
+ }
+ if (fVar1 < (dVar7 - (dVar8 / 2))) {
+ f32 fVar4 = ((dVar7 - (dVar8 / 2)) - fVar1);
+ dVar7 = fVar4 / (-dVar8 / 2);
+ mpLineV[0]->setAlphaRate(1.0f - dVar7);
+ mpLineV[6]->setAlphaRate(1.0f);
+ } else {
+ f32 fVar4 = fVar1 - (dVar7 - (dVar8 / 2));
+ dVar7 = fVar4 / (-dVar8 / 2);
+ mpLineV[0]->setAlphaRate(1.0f);
+ mpLineV[6]->setAlphaRate((1.0f - dVar7));
+ }
+ f32 fVar3 = 0.0f;
+ for (int i = 0; i < 7; i++) {
+ if (0 < i && i < 6) {
+ mpLineV[i]->setAlphaRate(1.0f);
+ }
+ mpLineV[i]->move((fVar3 + (fVar1 + mpLineV[i]->getInitPosX())), mpLineV[i]->getInitPosY());
+ fVar3 += g_MsgObject_HIO_c.mHowlHIO.mLineSpaceOffset;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -852,9 +1271,29 @@ asm void dMsgScrnHowl_c::moveLineV(bool param_0) {
#include "asm/msg/scrn/d_msg_scrn_howl/moveLineV__14dMsgScrnHowl_cFb.s"
}
#pragma pop
+#endif
/* 80243DCC-80243EEC 23E70C 0120+00 2/2 0/0 0/0 .text moveBaseLength__14dMsgScrnHowl_cFb
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::moveBaseLength(bool param_0) {
+ if (param_0) {
+ field_0x1990 = 0.0f;
+ } else {
+ field_0x1990 -= field_0x1980;
+ }
+ f32 dVar6 = mpLineH[0]->getGlobalPosX();
+ f32 dVar8 = mpABase->getGlobalPosX() + mpABase->getSizeX();
+ f32 dVar7 = field_0x1990 + (mpABase->getInitGlobalPosX() - field_0x27a8);
+ if (dVar7 < dVar6) {
+ dVar7 = dVar6;
+ }
+ f32 dVar9 = dVar7 - mpABase->getInitGlobalPosX();
+ mpABase->resize((dVar8 - dVar7), mpABase->getSizeY());
+ mpABase->move(dVar9 + mpABase->getInitPosX(), mpABase->getPosY());
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -863,37 +1302,42 @@ asm void dMsgScrnHowl_c::moveBaseLength(bool param_0) {
#include "asm/msg/scrn/d_msg_scrn_howl/moveBaseLength__14dMsgScrnHowl_cFb.s"
}
#pragma pop
+#endif
/* 80243EEC-80243F58 23E82C 006C+00 2/2 0/0 0/0 .text getOnLineNum__14dMsgScrnHowl_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::getOnLineNum(int param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/getOnLineNum__14dMsgScrnHowl_cFi.s"
+s8 dMsgScrnHowl_c::getOnLineNum(int param_0) {
+ if (param_0 < 0) {
+ return -1;
+ }
+
+ if (param_0 >= 30 && param_0 < field_0x2138 + 380) {
+ int iVar1 = 30;
+ for (int i = 0; i < mCorrectLineMax; i++) {
+ iVar1 += field_0x213a[i];
+ if (param_0 < iVar1) {
+ return i;
+ }
+ }
+ }
+ return -1;
}
-#pragma pop
/* 80243F58-80243F7C 23E898 0024+00 2/2 0/0 0/0 .text addCount__14dMsgScrnHowl_cFs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::addCount(s16 param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/addCount__14dMsgScrnHowl_cFs.s"
+s16 dMsgScrnHowl_c::addCount(s16 param_0) {
+ if (++param_0 >= field_0x2136) {
+ param_0 -= field_0x2136;
+ }
+ return param_0;
}
-#pragma pop
/* 80243F7C-80243F94 23E8BC 0018+00 2/2 0/0 0/0 .text addCountGuide__14dMsgScrnHowl_cFs
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::addCountGuide(s16 param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/addCountGuide__14dMsgScrnHowl_cFs.s"
+s16 dMsgScrnHowl_c::addCountGuide(s16 param_0) {
+ if (++param_0 >= 350) {
+ param_0 -= 350;
+ }
+ return param_0;
}
-#pragma pop
/* ############################################################################################## */
/* 80454CAC-80454CB0 0032AC 0004+00 1/1 0/0 0/0 .sdata2 @5508 */
@@ -901,27 +1345,62 @@ SECTION_SDATA2 static f32 lit_5508 = -1.0f;
/* 80243F94-80244108 23E8D4 0174+00 2/2 0/0 0/0 .text getNowPlotPitch__14dMsgScrnHowl_cFf
*/
+// Matches with literals
+#ifdef NONMATCHING
+f32 dMsgScrnHowl_c::getNowPlotPitch(f32 param_0) {
+ if (param_0 < 0.0f) {
+ param_0 *= -1.0f;
+ return mpLineH[1]->getGlobalCenterPosY() + (param_0 * (mpLineH[0]->getGlobalCenterPosY() - mpLineH[1]->getGlobalCenterPosY()));
+ }
+ return mpLineH[1]->getGlobalCenterPosY() + (param_0 * (mpLineH[2]->getGlobalCenterPosY() - mpLineH[1]->getGlobalCenterPosY()));
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::getNowPlotPitch(f32 param_0) {
+asm f32 dMsgScrnHowl_c::getNowPlotPitch(f32 param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_howl/getNowPlotPitch__14dMsgScrnHowl_cFf.s"
}
#pragma pop
+#endif
/* 80244108-8024414C 23EA48 0044+00 2/2 0/0 0/0 .text getPlotPitch__14dMsgScrnHowl_cFf */
+// Matches with literals
+#ifdef NONMATCHING
+f32 dMsgScrnHowl_c::getPlotPitch(f32 param_0) {
+ if (1.0f == param_0) {
+ return field_0x1b08[0];
+ }
+ if (2.0f == param_0) {
+ return field_0x1b08[1];
+ }
+ if (3.0f == param_0) {
+ return field_0x1b08[2];
+ }
+ return 0.0f;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::getPlotPitch(f32 param_0) {
+asm f32 dMsgScrnHowl_c::getPlotPitch(f32 param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_howl/getPlotPitch__14dMsgScrnHowl_cFf.s"
}
#pragma pop
+#endif
/* 8024414C-802441FC 23EA8C 00B0+00 2/2 0/0 0/0 .text calcPitchLevel__14dMsgScrnHowl_cFv
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::calcPitchLevel() {
+ field_0x1b08[0] = mpLineH[0]->getGlobalCenterPosY();
+ field_0x1b08[1] = mpLineH[1]->getGlobalCenterPosY();
+ field_0x1b08[2] = mpLineH[2]->getGlobalCenterPosY();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -930,9 +1409,32 @@ asm void dMsgScrnHowl_c::calcPitchLevel() {
#include "asm/msg/scrn/d_msg_scrn_howl/calcPitchLevel__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 802441FC-80244304 23EB3C 0108+00 1/1 0/0 0/0 .text initGuideData__14dMsgScrnHowl_cFv
*/
+// Matches with literals
+#ifdef NONMATCHING
+void dMsgScrnHowl_c::initGuideData() {
+ calcPitchLevel();
+ for (int i = 0; i < 350; i++) {
+ if (field_0x2138 <= 350) {
+ if (i < field_0x2138) {
+ u8 dataType = getGuideDataType(i);
+ field_0xd80[i] = getPlotPitch(dataType);
+ field_0x2198[i] = dataType;
+ } else {
+ field_0xd80[i] = 0.0f;
+ field_0x2198[i] = 0;
+ }
+ } else {
+ u8 dataType = getGuideDataType(i);
+ field_0xd80[i] = getPlotPitch(dataType);
+ field_0x2198[i] = dataType;
+ }
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -941,26 +1443,31 @@ asm void dMsgScrnHowl_c::initGuideData() {
#include "asm/msg/scrn/d_msg_scrn_howl/initGuideData__14dMsgScrnHowl_cFv.s"
}
#pragma pop
+#endif
/* 80244304-8024438C 23EC44 0088+00 2/2 0/0 0/0 .text getGuideDataSize__14dMsgScrnHowl_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::getGuideDataSize() {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/getGuideDataSize__14dMsgScrnHowl_cFv.s"
+u16 dMsgScrnHowl_c::getGuideDataSize() {
+ u16 dataSize = field_0x2197;
+ for (int i = 0; i < mCorrectLineMax; i++) {
+ field_0x213a[i] = daAlink_getAlinkActorClass()->getCorrectLine(i).length;
+ dataSize += field_0x213a[i];
+ }
+ return dataSize;
}
-#pragma pop
/* 8024438C-80244454 23ECCC 00C8+00 2/2 0/0 0/0 .text getGuideDataType__14dMsgScrnHowl_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dMsgScrnHowl_c::getGuideDataType(int param_0) {
- nofralloc
-#include "asm/msg/scrn/d_msg_scrn_howl/getGuideDataType__14dMsgScrnHowl_cFi.s"
+u8 dMsgScrnHowl_c::getGuideDataType(int param_0) {
+ u16 uVar2 = field_0x2197;
+ u16 uVar3 = field_0x2197;
+ for (int i = 0; i < mCorrectLineMax; i++) {
+ uVar3 += daAlink_getAlinkActorClass()->getCorrectLine(i).length;
+ if (uVar2 <= param_0 && uVar3 > param_0) {
+ return daAlink_getAlinkActorClass()->getCorrectLine(i).barType;
+ }
+ uVar2 = uVar3;
+ }
+ return 0;
}
-#pragma pop
/* 80244454-80244558 23ED94 0104+00 0/0 1/0 0/0 .text __sinit_d_msg_scrn_howl_cpp */
#pragma push