diff --git a/asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s b/asm/d/d_drawlist/getTexture__10J2DPictureCFUc.s deleted file mode 100644 index b03fec81196..00000000000 --- 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 cc1507a0d51..00000000000 --- 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 f85c75466f2..00000000000 --- 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 33781d2daa0..00000000000 --- 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 03338b46e37..00000000000 --- 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 b56b93de47d..00000000000 --- 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 3082dbaab01..00000000000 --- 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 3ad85952e4d..00000000000 --- 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 187ae8475e7..00000000000 --- 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 1f358292466..00000000000 --- 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 602ab09bc63..00000000000 --- 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 ee788fd190b..00000000000 --- 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 0f25c9ee751..00000000000 --- 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 8b925f7446b..00000000000 --- 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 b786b20fd9b..00000000000 --- 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 57ee65969c0..00000000000 --- 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 f8dac4cef7d..00000000000 --- 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 dc92983d0b3..00000000000 --- 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 d517050e9d0..00000000000 --- 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 e1e62779aeb..00000000000 --- 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 b2e49ced53a..ffa54f2e522 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 const& bounds); + void scissor(f32 x, f32 y, f32 width, f32 height) { + scissor(JGeometry::TBox2(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 05faf2fd81a..3e7a586d042 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 f3ef092aea3..08d73420da2 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 a075055164b..5be233aa324 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 69a043805a4..f10e134d596 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 87fa3c194b0..7599f3e42c4 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* 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 ace00b4355b..73d504f7cc8 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 1cfc970235b..0c7cbbda028 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 e07fd63e275..32b555c52fb 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -4,29 +4,17 @@ // #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 903bf23776a..acbad3e5f82 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 c99550b468d..2c715e24554 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 ae609921a79..d1f32e4a9bf 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 a81ac6363a2..b7c317810a7 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 // @@ -18,14 +17,6 @@ #include "dolphin/os.h" #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 d91720425c1..07b0a936881 100644 --- a/src/msg/scrn/d_msg_scrn_howl.cpp +++ b/src/msg/scrn/d_msg_scrn_howl.cpp @@ -4,150 +4,24 @@ // #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 - struct TBox2 {}; - /* TBox2 */ - 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 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