Work on d_msg_scrn_item (#2188)

This commit is contained in:
hatal175 2024-08-10 06:23:17 +03:00 committed by GitHub
parent e7e5453771
commit 7894ea5140
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 653 additions and 772 deletions

View File

@ -1,242 +0,0 @@
lbl_8023F51C:
/* 8023F51C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8023F520 7C 08 02 A6 */ mflr r0
/* 8023F524 90 01 00 24 */ stw r0, 0x24(r1)
/* 8023F528 39 61 00 20 */ addi r11, r1, 0x20
/* 8023F52C 48 12 2C A5 */ bl _savegpr_26
/* 8023F530 7C 7E 1B 79 */ or. r30, r3, r3
/* 8023F534 7C 9F 23 78 */ mr r31, r4
/* 8023F538 41 82 03 34 */ beq lbl_8023F86C
/* 8023F53C 3C 60 80 3C */ lis r3, __vt__14dMsgScrnItem_c@ha /* 0x803C0F78@ha */
/* 8023F540 38 03 0F 78 */ addi r0, r3, __vt__14dMsgScrnItem_c@l /* 0x803C0F78@l */
/* 8023F544 90 1E 00 00 */ stw r0, 0(r30)
/* 8023F548 3B 60 00 00 */ li r27, 0
/* 8023F54C 3B A0 00 00 */ li r29, 0
lbl_8023F550:
/* 8023F550 7F 9E EA 14 */ add r28, r30, r29
/* 8023F554 80 9C 00 D4 */ lwz r4, 0xd4(r28)
/* 8023F558 28 04 00 00 */ cmplwi r4, 0
/* 8023F55C 41 82 00 14 */ beq lbl_8023F570
/* 8023F560 80 7E 01 38 */ lwz r3, 0x138(r30)
/* 8023F564 48 08 EF E5 */ bl free__7JKRHeapFPv
/* 8023F568 38 00 00 00 */ li r0, 0
/* 8023F56C 90 1C 00 D4 */ stw r0, 0xd4(r28)
lbl_8023F570:
/* 8023F570 80 7C 00 C8 */ lwz r3, 0xc8(r28)
/* 8023F574 28 03 00 00 */ cmplwi r3, 0
/* 8023F578 41 82 00 24 */ beq lbl_8023F59C
/* 8023F57C 41 82 00 18 */ beq lbl_8023F594
/* 8023F580 38 80 00 01 */ li r4, 1
/* 8023F584 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F588 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F58C 7D 89 03 A6 */ mtctr r12
/* 8023F590 4E 80 04 21 */ bctrl
lbl_8023F594:
/* 8023F594 38 00 00 00 */ li r0, 0
/* 8023F598 90 1C 00 C8 */ stw r0, 0xc8(r28)
lbl_8023F59C:
/* 8023F59C 3B 7B 00 01 */ addi r27, r27, 1
/* 8023F5A0 2C 1B 00 03 */ cmpwi r27, 3
/* 8023F5A4 3B BD 00 04 */ addi r29, r29, 4
/* 8023F5A8 41 80 FF A8 */ blt lbl_8023F550
/* 8023F5AC 80 7E 00 04 */ lwz r3, 4(r30)
/* 8023F5B0 28 03 00 00 */ cmplwi r3, 0
/* 8023F5B4 41 82 00 18 */ beq lbl_8023F5CC
/* 8023F5B8 38 80 00 01 */ li r4, 1
/* 8023F5BC 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F5C0 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F5C4 7D 89 03 A6 */ mtctr r12
/* 8023F5C8 4E 80 04 21 */ bctrl
lbl_8023F5CC:
/* 8023F5CC 38 00 00 00 */ li r0, 0
/* 8023F5D0 90 1E 00 04 */ stw r0, 4(r30)
/* 8023F5D4 80 7E 00 C4 */ lwz r3, 0xc4(r30)
/* 8023F5D8 28 03 00 00 */ cmplwi r3, 0
/* 8023F5DC 41 82 00 18 */ beq lbl_8023F5F4
/* 8023F5E0 38 80 00 01 */ li r4, 1
/* 8023F5E4 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F5E8 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F5EC 7D 89 03 A6 */ mtctr r12
/* 8023F5F0 4E 80 04 21 */ bctrl
lbl_8023F5F4:
/* 8023F5F4 38 00 00 00 */ li r0, 0
/* 8023F5F8 90 1E 00 C4 */ stw r0, 0xc4(r30)
/* 8023F5FC 80 7E 00 EC */ lwz r3, 0xec(r30)
/* 8023F600 28 03 00 00 */ cmplwi r3, 0
/* 8023F604 41 82 00 18 */ beq lbl_8023F61C
/* 8023F608 38 80 00 01 */ li r4, 1
/* 8023F60C 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F610 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F614 7D 89 03 A6 */ mtctr r12
/* 8023F618 4E 80 04 21 */ bctrl
lbl_8023F61C:
/* 8023F61C 38 00 00 00 */ li r0, 0
/* 8023F620 90 1E 00 EC */ stw r0, 0xec(r30)
/* 8023F624 80 7E 00 F0 */ lwz r3, 0xf0(r30)
/* 8023F628 28 03 00 00 */ cmplwi r3, 0
/* 8023F62C 41 82 00 18 */ beq lbl_8023F644
/* 8023F630 38 80 00 01 */ li r4, 1
/* 8023F634 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F638 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F63C 7D 89 03 A6 */ mtctr r12
/* 8023F640 4E 80 04 21 */ bctrl
lbl_8023F644:
/* 8023F644 38 00 00 00 */ li r0, 0
/* 8023F648 90 1E 00 F0 */ stw r0, 0xf0(r30)
/* 8023F64C 80 7E 00 F4 */ lwz r3, 0xf4(r30)
/* 8023F650 28 03 00 00 */ cmplwi r3, 0
/* 8023F654 41 82 00 18 */ beq lbl_8023F66C
/* 8023F658 38 80 00 01 */ li r4, 1
/* 8023F65C 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F660 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F664 7D 89 03 A6 */ mtctr r12
/* 8023F668 4E 80 04 21 */ bctrl
lbl_8023F66C:
/* 8023F66C 38 00 00 00 */ li r0, 0
/* 8023F670 90 1E 00 F4 */ stw r0, 0xf4(r30)
/* 8023F674 80 9E 00 50 */ lwz r4, 0x50(r30)
/* 8023F678 28 04 00 00 */ cmplwi r4, 0
/* 8023F67C 41 82 00 14 */ beq lbl_8023F690
/* 8023F680 80 7E 01 38 */ lwz r3, 0x138(r30)
/* 8023F684 48 08 EE C5 */ bl free__7JKRHeapFPv
/* 8023F688 38 00 00 00 */ li r0, 0
/* 8023F68C 90 1E 00 50 */ stw r0, 0x50(r30)
lbl_8023F690:
/* 8023F690 80 7E 01 08 */ lwz r3, 0x108(r30)
/* 8023F694 28 03 00 00 */ cmplwi r3, 0
/* 8023F698 41 82 00 18 */ beq lbl_8023F6B0
/* 8023F69C 38 80 00 01 */ li r4, 1
/* 8023F6A0 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F6A4 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F6A8 7D 89 03 A6 */ mtctr r12
/* 8023F6AC 4E 80 04 21 */ bctrl
lbl_8023F6B0:
/* 8023F6B0 3B 80 00 00 */ li r28, 0
/* 8023F6B4 93 9E 01 08 */ stw r28, 0x108(r30)
/* 8023F6B8 3B 40 00 00 */ li r26, 0
/* 8023F6BC 3B A0 00 00 */ li r29, 0
lbl_8023F6C0:
/* 8023F6C0 3B 7D 01 0C */ addi r27, r29, 0x10c
/* 8023F6C4 7C 7E D8 2E */ lwzx r3, r30, r27
/* 8023F6C8 28 03 00 00 */ cmplwi r3, 0
/* 8023F6CC 41 82 00 18 */ beq lbl_8023F6E4
/* 8023F6D0 38 80 00 01 */ li r4, 1
/* 8023F6D4 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F6D8 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F6DC 7D 89 03 A6 */ mtctr r12
/* 8023F6E0 4E 80 04 21 */ bctrl
lbl_8023F6E4:
/* 8023F6E4 7F 9E D9 2E */ stwx r28, r30, r27
/* 8023F6E8 3B 5A 00 01 */ addi r26, r26, 1
/* 8023F6EC 2C 1A 00 02 */ cmpwi r26, 2
/* 8023F6F0 3B BD 00 04 */ addi r29, r29, 4
/* 8023F6F4 41 80 FF CC */ blt lbl_8023F6C0
/* 8023F6F8 3B 80 00 00 */ li r28, 0
/* 8023F6FC 80 7E 01 18 */ lwz r3, 0x118(r30)
/* 8023F700 28 03 00 00 */ cmplwi r3, 0
/* 8023F704 41 82 00 18 */ beq lbl_8023F71C
/* 8023F708 38 80 00 01 */ li r4, 1
/* 8023F70C 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F710 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F714 7D 89 03 A6 */ mtctr r12
/* 8023F718 4E 80 04 21 */ bctrl
lbl_8023F71C:
/* 8023F71C 93 9E 01 18 */ stw r28, 0x118(r30)
/* 8023F720 3B 40 00 00 */ li r26, 0
/* 8023F724 3B A0 00 00 */ li r29, 0
/* 8023F728 3B 80 00 00 */ li r28, 0
lbl_8023F72C:
/* 8023F72C 3B 7D 01 2C */ addi r27, r29, 0x12c
/* 8023F730 7C 7E D8 2E */ lwzx r3, r30, r27
/* 8023F734 28 03 00 00 */ cmplwi r3, 0
/* 8023F738 41 82 00 18 */ beq lbl_8023F750
/* 8023F73C 38 80 00 01 */ li r4, 1
/* 8023F740 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F744 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F748 7D 89 03 A6 */ mtctr r12
/* 8023F74C 4E 80 04 21 */ bctrl
lbl_8023F750:
/* 8023F750 7F 9E D9 2E */ stwx r28, r30, r27
/* 8023F754 3B 5A 00 01 */ addi r26, r26, 1
/* 8023F758 2C 1A 00 02 */ cmpwi r26, 2
/* 8023F75C 3B BD 00 04 */ addi r29, r29, 4
/* 8023F760 41 80 FF CC */ blt lbl_8023F72C
/* 8023F764 80 7E 00 08 */ lwz r3, 8(r30)
/* 8023F768 28 03 00 00 */ cmplwi r3, 0
/* 8023F76C 41 82 00 18 */ beq lbl_8023F784
/* 8023F770 38 80 00 01 */ li r4, 1
/* 8023F774 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F778 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F77C 7D 89 03 A6 */ mtctr r12
/* 8023F780 4E 80 04 21 */ bctrl
lbl_8023F784:
/* 8023F784 38 00 00 00 */ li r0, 0
/* 8023F788 90 1E 00 08 */ stw r0, 8(r30)
/* 8023F78C 3B 40 00 00 */ li r26, 0
/* 8023F790 3B A0 00 00 */ li r29, 0
lbl_8023F794:
/* 8023F794 7F 7E EA 14 */ add r27, r30, r29
/* 8023F798 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8023F79C 28 03 00 00 */ cmplwi r3, 0
/* 8023F7A0 41 82 00 18 */ beq lbl_8023F7B8
/* 8023F7A4 38 80 00 01 */ li r4, 1
/* 8023F7A8 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F7AC 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F7B0 7D 89 03 A6 */ mtctr r12
/* 8023F7B4 4E 80 04 21 */ bctrl
lbl_8023F7B8:
/* 8023F7B8 38 00 00 00 */ li r0, 0
/* 8023F7BC 90 1B 00 0C */ stw r0, 0xc(r27)
/* 8023F7C0 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 8023F7C4 28 03 00 00 */ cmplwi r3, 0
/* 8023F7C8 41 82 00 24 */ beq lbl_8023F7EC
/* 8023F7CC 41 82 00 18 */ beq lbl_8023F7E4
/* 8023F7D0 38 80 00 01 */ li r4, 1
/* 8023F7D4 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F7D8 81 8C 00 08 */ lwz r12, 8(r12)
/* 8023F7DC 7D 89 03 A6 */ mtctr r12
/* 8023F7E0 4E 80 04 21 */ bctrl
lbl_8023F7E4:
/* 8023F7E4 38 00 00 00 */ li r0, 0
/* 8023F7E8 90 1B 00 28 */ stw r0, 0x28(r27)
lbl_8023F7EC:
/* 8023F7EC 3B 5A 00 01 */ addi r26, r26, 1
/* 8023F7F0 2C 1A 00 03 */ cmpwi r26, 3
/* 8023F7F4 3B BD 00 04 */ addi r29, r29, 4
/* 8023F7F8 41 80 FF 9C */ blt lbl_8023F794
/* 8023F7FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8023F800 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8023F804 80 63 5C 6C */ lwz r3, 0x5c6c(r3)
/* 8023F808 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F80C 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8023F810 7D 89 03 A6 */ mtctr r12
/* 8023F814 4E 80 04 21 */ bctrl
/* 8023F818 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8023F81C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8023F820 80 63 5C 78 */ lwz r3, 0x5c78(r3)
/* 8023F824 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F828 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8023F82C 7D 89 03 A6 */ mtctr r12
/* 8023F830 4E 80 04 21 */ bctrl
/* 8023F834 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8023F838 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8023F83C 80 63 5C E4 */ lwz r3, 0x5ce4(r3)
/* 8023F840 81 83 00 00 */ lwz r12, 0(r3)
/* 8023F844 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8023F848 7D 89 03 A6 */ mtctr r12
/* 8023F84C 4E 80 04 21 */ bctrl
/* 8023F850 7F C3 F3 78 */ mr r3, r30
/* 8023F854 38 80 00 00 */ li r4, 0
/* 8023F858 4B FF C8 CD */ bl __dt__14dMsgScrnBase_cFv
/* 8023F85C 7F E0 07 35 */ extsh. r0, r31
/* 8023F860 40 81 00 0C */ ble lbl_8023F86C
/* 8023F864 7F C3 F3 78 */ mr r3, r30
/* 8023F868 48 08 F4 D5 */ bl __dl__FPv
lbl_8023F86C:
/* 8023F86C 7F C3 F3 78 */ mr r3, r30
/* 8023F870 39 61 00 20 */ addi r11, r1, 0x20
/* 8023F874 48 12 29 A9 */ bl _restgpr_26
/* 8023F878 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8023F87C 7C 08 03 A6 */ mtlr r0
/* 8023F880 38 21 00 20 */ addi r1, r1, 0x20
/* 8023F884 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FF30:
/* 8023FF30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FF34 7C 08 02 A6 */ mflr r0
/* 8023FF38 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FF3C 80 63 00 EC */ lwz r3, 0xec(r3)
/* 8023FF40 4B FF BE F5 */ bl arwAnimeInit__15dMsgScrnArrow_cFv
/* 8023FF44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FF48 7C 08 03 A6 */ mtlr r0
/* 8023FF4C 38 21 00 10 */ addi r1, r1, 0x10
/* 8023FF50 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FF54:
/* 8023FF54 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FF58 7C 08 02 A6 */ mflr r0
/* 8023FF5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FF60 80 63 00 EC */ lwz r3, 0xec(r3)
/* 8023FF64 4B FF BF 2D */ bl arwAnimeMove__15dMsgScrnArrow_cFv
/* 8023FF68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FF6C 7C 08 03 A6 */ mtlr r0
/* 8023FF70 38 21 00 10 */ addi r1, r1, 0x10
/* 8023FF74 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FF78:
/* 8023FF78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FF7C 7C 08 02 A6 */ mflr r0
/* 8023FF80 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FF84 80 63 00 EC */ lwz r3, 0xec(r3)
/* 8023FF88 4B FF C0 3D */ bl dotAnimeInit__15dMsgScrnArrow_cFv
/* 8023FF8C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FF90 7C 08 03 A6 */ mtlr r0
/* 8023FF94 38 21 00 10 */ addi r1, r1, 0x10
/* 8023FF98 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FF9C:
/* 8023FF9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FFA0 7C 08 02 A6 */ mflr r0
/* 8023FFA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FFA8 80 63 00 EC */ lwz r3, 0xec(r3)
/* 8023FFAC 4B FF C0 65 */ bl dotAnimeMove__15dMsgScrnArrow_cFv
/* 8023FFB0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FFB4 7C 08 03 A6 */ mtlr r0
/* 8023FFB8 38 21 00 10 */ addi r1, r1, 0x10
/* 8023FFBC 4E 80 00 20 */ blr

View File

@ -1,45 +0,0 @@
lbl_802400CC:
/* 802400CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802400D0 7C 08 02 A6 */ mflr r0
/* 802400D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802400D8 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 802400DC F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 802400E0 39 61 00 20 */ addi r11, r1, 0x20
/* 802400E4 48 12 20 F5 */ bl _savegpr_28
/* 802400E8 7C 7C 1B 78 */ mr r28, r3
/* 802400EC FF E0 08 90 */ fmr f31, f1
/* 802400F0 D3 E3 01 3C */ stfs f31, 0x13c(r3)
/* 802400F4 D3 E3 01 94 */ stfs f31, 0x194(r3)
/* 802400F8 80 63 00 08 */ lwz r3, 8(r3)
/* 802400FC 3C 80 80 43 */ lis r4, g_MsgObject_HIO_c@ha /* 0x8043028C@ha */
/* 80240100 38 84 02 8C */ addi r4, r4, g_MsgObject_HIO_c@l /* 0x8043028C@l */
/* 80240104 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 80240108 EC 3F 00 32 */ fmuls f1, f31, f0
/* 8024010C 48 01 56 C5 */ bl setAlphaRate__13CPaneMgrAlphaFf
/* 80240110 3B A0 00 00 */ li r29, 0
/* 80240114 3B E0 00 00 */ li r31, 0
lbl_80240118:
/* 80240118 7F DC FA 14 */ add r30, r28, r31
/* 8024011C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80240120 C0 1C 00 BC */ lfs f0, 0xbc(r28)
/* 80240124 EC 3F 00 32 */ fmuls f1, f31, f0
/* 80240128 48 01 56 A9 */ bl setAlphaRate__13CPaneMgrAlphaFf
/* 8024012C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80240130 28 03 00 00 */ cmplwi r3, 0
/* 80240134 41 82 00 10 */ beq lbl_80240144
/* 80240138 C0 1C 00 BC */ lfs f0, 0xbc(r28)
/* 8024013C EC 3F 00 32 */ fmuls f1, f31, f0
/* 80240140 48 01 56 91 */ bl setAlphaRate__13CPaneMgrAlphaFf
lbl_80240144:
/* 80240144 3B BD 00 01 */ addi r29, r29, 1
/* 80240148 2C 1D 00 03 */ cmpwi r29, 3
/* 8024014C 3B FF 00 04 */ addi r31, r31, 4
/* 80240150 41 80 FF C8 */ blt lbl_80240118
/* 80240154 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 80240158 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8024015C 39 61 00 20 */ addi r11, r1, 0x20
/* 80240160 48 12 20 C5 */ bl _restgpr_28
/* 80240164 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80240168 7C 08 03 A6 */ mtlr r0
/* 8024016C 38 21 00 30 */ addi r1, r1, 0x30
/* 80240170 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_802400A8:
/* 802400A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802400AC 7C 08 02 A6 */ mflr r0
/* 802400B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802400B4 80 63 00 08 */ lwz r3, 8(r3)
/* 802400B8 48 01 44 F9 */ bl paneTrans__8CPaneMgrFff
/* 802400BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802400C0 7C 08 03 A6 */ mtlr r0
/* 802400C4 38 21 00 10 */ addi r1, r1, 0x10
/* 802400C8 4E 80 00 20 */ blr

View File

@ -1,59 +0,0 @@
lbl_802408A4:
/* 802408A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802408A8 7C 08 02 A6 */ mflr r0
/* 802408AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802408B0 4B FF 7B 21 */ bl getMessageID__12dMsgObject_cFv
/* 802408B4 2C 03 18 B4 */ cmpwi r3, 0x18b4
/* 802408B8 41 82 00 98 */ beq lbl_80240950
/* 802408BC 40 80 00 4C */ bge lbl_80240908
/* 802408C0 2C 03 18 5C */ cmpwi r3, 0x185c
/* 802408C4 41 82 00 8C */ beq lbl_80240950
/* 802408C8 40 80 00 28 */ bge lbl_802408F0
/* 802408CC 2C 03 18 23 */ cmpwi r3, 0x1823
/* 802408D0 41 82 00 80 */ beq lbl_80240950
/* 802408D4 40 80 00 10 */ bge lbl_802408E4
/* 802408D8 2C 03 17 ED */ cmpwi r3, 0x17ed
/* 802408DC 41 82 00 74 */ beq lbl_80240950
/* 802408E0 48 00 00 78 */ b lbl_80240958
lbl_802408E4:
/* 802408E4 2C 03 18 3F */ cmpwi r3, 0x183f
/* 802408E8 41 82 00 68 */ beq lbl_80240950
/* 802408EC 48 00 00 6C */ b lbl_80240958
lbl_802408F0:
/* 802408F0 2C 03 18 95 */ cmpwi r3, 0x1895
/* 802408F4 41 82 00 5C */ beq lbl_80240950
/* 802408F8 40 80 00 60 */ bge lbl_80240958
/* 802408FC 2C 03 18 77 */ cmpwi r3, 0x1877
/* 80240900 41 82 00 50 */ beq lbl_80240950
/* 80240904 48 00 00 54 */ b lbl_80240958
lbl_80240908:
/* 80240908 2C 03 3F 87 */ cmpwi r3, 0x3f87
/* 8024090C 41 82 00 44 */ beq lbl_80240950
/* 80240910 40 80 00 28 */ bge lbl_80240938
/* 80240914 2C 03 3F 33 */ cmpwi r3, 0x3f33
/* 80240918 41 82 00 38 */ beq lbl_80240950
/* 8024091C 40 80 00 10 */ bge lbl_8024092C
/* 80240920 2C 03 3E FD */ cmpwi r3, 0x3efd
/* 80240924 41 82 00 2C */ beq lbl_80240950
/* 80240928 48 00 00 30 */ b lbl_80240958
lbl_8024092C:
/* 8024092C 2C 03 3F 6C */ cmpwi r3, 0x3f6c
/* 80240930 41 82 00 20 */ beq lbl_80240950
/* 80240934 48 00 00 24 */ b lbl_80240958
lbl_80240938:
/* 80240938 2C 03 3F C4 */ cmpwi r3, 0x3fc4
/* 8024093C 41 82 00 14 */ beq lbl_80240950
/* 80240940 40 80 00 18 */ bge lbl_80240958
/* 80240944 2C 03 3F A5 */ cmpwi r3, 0x3fa5
/* 80240948 41 82 00 08 */ beq lbl_80240950
/* 8024094C 48 00 00 0C */ b lbl_80240958
lbl_80240950:
/* 80240950 38 60 00 01 */ li r3, 1
/* 80240954 48 00 00 08 */ b lbl_8024095C
lbl_80240958:
/* 80240958 38 60 00 00 */ li r3, 0
lbl_8024095C:
/* 8024095C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240960 7C 08 03 A6 */ mtlr r0
/* 80240964 38 21 00 10 */ addi r1, r1, 0x10
/* 80240968 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_80240008:
/* 80240008 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8024000C 7C 08 02 A6 */ mflr r0
/* 80240010 90 01 00 14 */ stw r0, 0x14(r1)
/* 80240014 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 80240018 4B FF 9C 4D */ bl isSelect__17dMsgScrn3Select_cFv
/* 8024001C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240020 7C 08 03 A6 */ mtlr r0
/* 80240024 38 21 00 10 */ addi r1, r1, 0x10
/* 80240028 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_80240080:
/* 80240080 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80240084 7C 08 02 A6 */ mflr r0
/* 80240088 90 01 00 14 */ stw r0, 0x14(r1)
/* 8024008C 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 80240090 4B FF A5 F1 */ bl selAnimeEnd__17dMsgScrn3Select_cFv
/* 80240094 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240098 7C 08 03 A6 */ mtlr r0
/* 8024009C 38 21 00 10 */ addi r1, r1, 0x10
/* 802400A0 4E 80 00 20 */ blr

View File

@ -1,13 +0,0 @@
lbl_8024002C:
/* 8024002C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80240030 7C 08 02 A6 */ mflr r0
/* 80240034 90 01 00 14 */ stw r0, 0x14(r1)
/* 80240038 7C 68 1B 78 */ mr r8, r3
/* 8024003C 7C C7 33 78 */ mr r7, r6
/* 80240040 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 80240044 88 C8 01 9C */ lbz r6, 0x19c(r8)
/* 80240048 4B FF A0 4D */ bl selAnimeInit__17dMsgScrn3Select_cFUcUcUcfUc
/* 8024004C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240050 7C 08 03 A6 */ mtlr r0
/* 80240054 38 21 00 10 */ addi r1, r1, 0x10
/* 80240058 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8024005C:
/* 8024005C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80240060 7C 08 02 A6 */ mflr r0
/* 80240064 90 01 00 14 */ stw r0, 0x14(r1)
/* 80240068 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 8024006C 4B FF A3 2D */ bl selAnimeMove__17dMsgScrn3Select_cFUcUcb
/* 80240070 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240074 7C 08 03 A6 */ mtlr r0
/* 80240078 38 21 00 10 */ addi r1, r1, 0x10
/* 8024007C 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_802407E8:
/* 802407E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802407EC 7C 08 02 A6 */ mflr r0
/* 802407F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802407F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802407F8 7C 9F 23 78 */ mr r31, r4
/* 802407FC 80 63 00 04 */ lwz r3, 4(r3)
/* 80240800 3C 80 6D 61 */ lis r4, 0x6D61 /* 0x6D617030@ha */
/* 80240804 38 C4 70 30 */ addi r6, r4, 0x7030 /* 0x6D617030@l */
/* 80240808 38 A0 00 00 */ li r5, 0
/* 8024080C 81 83 00 00 */ lwz r12, 0(r3)
/* 80240810 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 80240814 7D 89 03 A6 */ mtctr r12
/* 80240818 4E 80 04 21 */ bctrl
/* 8024081C 7F E4 FB 78 */ mr r4, r31
/* 80240820 81 83 00 00 */ lwz r12, 0(r3)
/* 80240824 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 80240828 7D 89 03 A6 */ mtctr r12
/* 8024082C 4E 80 04 21 */ bctrl
/* 80240830 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80240834 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240838 7C 08 03 A6 */ mtlr r0
/* 8024083C 38 21 00 10 */ addi r1, r1, 0x10
/* 80240840 4E 80 00 20 */ blr

View File

@ -1,25 +0,0 @@
lbl_80240844:
/* 80240844 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80240848 7C 08 02 A6 */ mflr r0
/* 8024084C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80240850 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80240854 7C 9F 23 78 */ mr r31, r4
/* 80240858 80 63 00 04 */ lwz r3, 4(r3)
/* 8024085C 3C 80 6F 75 */ lis r4, 0x6F75 /* 0x6F755F31@ha */
/* 80240860 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x6F755F31@l */
/* 80240864 3C 80 00 6D */ lis r4, 0x006D /* 0x006D6F79@ha */
/* 80240868 38 A4 6F 79 */ addi r5, r4, 0x6F79 /* 0x006D6F79@l */
/* 8024086C 81 83 00 00 */ lwz r12, 0(r3)
/* 80240870 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 80240874 7D 89 03 A6 */ mtctr r12
/* 80240878 4E 80 04 21 */ bctrl
/* 8024087C 7F E4 FB 78 */ mr r4, r31
/* 80240880 81 83 00 00 */ lwz r12, 0(r3)
/* 80240884 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 80240888 7D 89 03 A6 */ mtctr r12
/* 8024088C 4E 80 04 21 */ bctrl
/* 80240890 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80240894 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80240898 7C 08 03 A6 */ mtlr r0
/* 8024089C 38 21 00 10 */ addi r1, r1, 0x10
/* 802408A0 4E 80 00 20 */ blr

View File

@ -1,40 +0,0 @@
lbl_8024074C:
/* 8024074C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80240750 7C 08 02 A6 */ mflr r0
/* 80240754 90 01 00 14 */ stw r0, 0x14(r1)
/* 80240758 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8024075C 93 C1 00 08 */ stw r30, 8(r1)
/* 80240760 7C 7E 1B 78 */ mr r30, r3
/* 80240764 7C 9F 23 78 */ mr r31, r4
/* 80240768 80 63 00 04 */ lwz r3, 4(r3)
/* 8024076C 3C 80 6C 64 */ lis r4, 0x6C64 /* 0x6C643030@ha */
/* 80240770 38 C4 30 30 */ addi r6, r4, 0x3030 /* 0x6C643030@l */
/* 80240774 38 A0 67 6F */ li r5, 0x676f
/* 80240778 81 83 00 00 */ lwz r12, 0(r3)
/* 8024077C 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 80240780 7D 89 03 A6 */ mtctr r12
/* 80240784 4E 80 04 21 */ bctrl
/* 80240788 7F E4 FB 78 */ mr r4, r31
/* 8024078C 81 83 00 00 */ lwz r12, 0(r3)
/* 80240790 81 8C 00 6C */ lwz r12, 0x6c(r12)
/* 80240794 7D 89 03 A6 */ mtctr r12
/* 80240798 4E 80 04 21 */ bctrl
/* 8024079C 80 7E 00 04 */ lwz r3, 4(r30)
/* 802407A0 3C 80 6C 64 */ lis r4, 0x6C64 /* 0x6C643031@ha */
/* 802407A4 38 C4 30 31 */ addi r6, r4, 0x3031 /* 0x6C643031@l */
/* 802407A8 38 A0 67 6F */ li r5, 0x676f
/* 802407AC 81 83 00 00 */ lwz r12, 0(r3)
/* 802407B0 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 802407B4 7D 89 03 A6 */ mtctr r12
/* 802407B8 4E 80 04 21 */ bctrl
/* 802407BC 7F E4 FB 78 */ mr r4, r31
/* 802407C0 81 83 00 00 */ lwz r12, 0(r3)
/* 802407C4 81 8C 00 6C */ lwz r12, 0x6c(r12)
/* 802407C8 7D 89 03 A6 */ mtctr r12
/* 802407CC 4E 80 04 21 */ bctrl
/* 802407D0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802407D4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802407D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802407DC 7C 08 03 A6 */ mtlr r0
/* 802407E0 38 21 00 10 */ addi r1, r1, 0x10
/* 802407E4 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FFE4:
/* 8023FFE4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FFE8 7C 08 02 A6 */ mflr r0
/* 8023FFEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FFF0 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 8023FFF4 4B FF 9D 15 */ bl setRubyString__17dMsgScrn3Select_cFPcPcPc
/* 8023FFF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FFFC 7C 08 03 A6 */ mtlr r0
/* 80240000 38 21 00 10 */ addi r1, r1, 0x10
/* 80240004 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_8023FFC0:
/* 8023FFC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023FFC4 7C 08 02 A6 */ mflr r0
/* 8023FFC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023FFCC 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 8023FFD0 4B FF 9C A9 */ bl setString__17dMsgScrn3Select_cFPcPcPc
/* 8023FFD4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023FFD8 7C 08 03 A6 */ mtlr r0
/* 8023FFDC 38 21 00 10 */ addi r1, r1, 0x10
/* 8023FFE0 4E 80 00 20 */ blr

View File

@ -138,6 +138,8 @@ public:
MtxP getGlbMtx() { return mGlobalMtx; }
JGeometry::TBox2<f32>& getGlbBounds() { return mGlobalBounds; }
void setMtx(Mtx m) { MTXCopy(m, mPositionMtx); }
void translate(f32 transX, f32 transY) {

View File

@ -242,4 +242,8 @@ inline void JKRUnmountArchive(JKRArchive* arc) {
arc->unmount();
}
inline void JKRReadIdxResource(void* param_1, u32 param_2, u32 param_3, JKRArchive* param_4) {
param_4->readIdxResource(param_1, param_2, param_3);
}
#endif

View File

@ -251,7 +251,7 @@ public:
/* 0xD90 */ u32 field_0xd90;
/* 0xD94 */ u32 field_0xd94;
/* 0xD98 */ u32 field_0xd98;
/* 0xD9C */ profile_method_class* sub_method;
/* 0xD9C */ u32 mMsgId;
/* 0xDA0 */ u8 field_0xda0[8];
/* 0xDA8 */ u32 field_0xda8;
/* 0xDAC */ int field_0xdac;

View File

@ -11,6 +11,8 @@ struct dItem_itemInfo {
};
struct dItem_itemResource {
f32 getTexScale() { return mTexScale; }
/* 0x00 */ const char* mArcName;
/* 0x04 */ s16 mBmdName;
/* 0x06 */ s16 mBtkName;

View File

@ -119,7 +119,7 @@ public:
char*, char*, char*, s16*);
/* 80238174 */ static void* getMsgDtPtr();
/* 80238188 */ static void setProcessID(unsigned int);
/* 8023819C */ static fopAc_ac_c* getActor();
/* 8023819C */ static msg_class* getActor();
/* 802381C0 */ static fopAc_ac_c* getpTalkActor();
/* 802381D4 */ static int getIdx();
/* 802381E8 */ static u16 getNodeIdx();
@ -222,8 +222,7 @@ public:
u8 getBombNumLocal(int idx) { return mBombNum[idx]; }
bool isCameraCancelFlagLocal() { return mCameraCancelFlag; }
void* getMsgDtPtrLocal() { return mpMsgDt; }
// TODO: The type return is unclear. Maybe msg_class*.
fopAc_ac_c* getActorLocal() { return (fopAc_ac_c*)field_0x100; }
msg_class* getActorLocal() { return field_0x100; }
fopAc_ac_c* getpTalkActorLocal() { return mpTalkActor; }
int getIdxLocal() { return mIdx; }
u16 getNodeIdxLocal() { return mNodeIdx; }
@ -677,4 +676,8 @@ public:
/* 0x35C */ dMsgObject_HowlHIO_c mHowlHIO;
};
#ifndef DISABLE_MSG_OBJECT_EXTERN
extern dMsgObject_HIO_c g_MsgObject_HIO_c;
#endif
#endif /* D_MSG_D_MSG_OBJECT_H */

View File

@ -31,7 +31,7 @@ public:
/* 80239D98 */ void translate(f32, f32);
/* 80239DD4 */ void draw(f32, f32);
/* 8023A094 */ void selAnimeInit(u8, u8, u8, f32, u8);
/* 8023A398 */ BOOL selAnimeMove(u8, u8, bool);
/* 8023A398 */ bool selAnimeMove(u8, u8, bool);
/* 8023A680 */ bool selAnimeEnd();
/* 8023A934 */ f32 getTextBoxWidth();
/* 8023A94C */ f32 getFontSize();

View File

@ -4,6 +4,10 @@
#include "dolphin/types.h"
#include "d/msg/d_msg_scrn_base.h"
class dMsgScrnArrow_c;
class dMsgScrn3Select_c;
class dMsgScrnLight_c;
struct dMsgScrnItem_c : public dMsgScrnBase_c {
/* 8023E79C */ dMsgScrnItem_c(u8, u8, JKRExpHeap*);
/* 8023F51C */ ~dMsgScrnItem_c();
@ -26,9 +30,47 @@ struct dMsgScrnItem_c : public dMsgScrnBase_c {
/* 8024074C */ void setBtk0Animation(J2DAnmTextureSRTKey*);
/* 802407E8 */ void setBpk0Animation(J2DAnmColor*);
/* 80240844 */ void setBpk1Animation(J2DAnmColor*);
/* 802408A4 */ void isOugiID();
/* 802408A4 */ bool isOugiID();
u8 field_0xc4[0x1a0 - 0xc4];
/* 0x0C4 */ J2DScreen* mpTxScreen;
/* 0x0C8 */ J2DPicture* mpItemPane[3];
/* 0x0D4 */ void* mpItemTex[3];
/* 0x0E0 */ ResTIMG* field_0x0e0[3];
/* 0x0EC */ dMsgScrnArrow_c* mpArrow_c;
/* 0x0F0 */ dMsgScrn3Select_c* mpSelect_c;
/* 0x0F4 */ dMsgScrnLight_c* mpLight_c;
/* 0x0F8 */ u8 field_0xf8[0x108 - 0xf8];
/* 0x108 */ CPaneMgr* mpArw_c;
/* 0x10C */ CPaneMgr* mpMg_c[2];
/* 0x114 */ u32 field_0x114;
/* 0x118 */ J2DAnmTextureSRTKey* field_0x118[1];
/* 0x11C */ u32 field_0x11c;
/* 0x120 */ u8 field_0x120[0x12c - 0x120];
/* 0x12C */ J2DAnmColorKey* field_0x12c[2];
/* 0x134 */ u32 field_0x134;
/* 0x138 */ JKRExpHeap* field_0x138;
/* 0x13C */ f32 field_0x13c;
/* 0x140 */ f32 field_0x140[1];
/* 0x13C */ u8 field_0x144[0x154 - 0x144];
/* 0x154 */ f32 field_0x154[2];
/* 0x15C */ f32 field_0x15c;
/* 0x160 */ f32 field_0x160;
/* 0x164 */ f32 field_0x164;
/* 0x168 */ f32 field_0x168;
/* 0x16C */ f32 field_0x16c;
/* 0x170 */ f32 field_0x170;
/* 0x174 */ f32 field_0x174;
/* 0x178 */ f32 field_0x178;
/* 0x17C */ f32 field_0x17c;
/* 0x180 */ f32 field_0x180;
/* 0x184 */ f32 field_0x184;
/* 0x188 */ f32 field_0x188[3];
/* 0x194 */ f32 field_0x194;
/* 0x198 */ int mItemIndex;
/* 0x19C */ u8 field_0x19c;
/* 0x19D */ bool field_0x19d;
/* 0x19E */ bool field_0x19e;
/* 0x19F */ u8 field_0x19f;
};
#endif /* MSG_SCRN_D_MSG_SCRN_ITEM_H */

View File

@ -2178,16 +2178,16 @@ int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int pa
dMsgObject_c* talk_partner_conv = (dMsgObject_c*)talk_partner;
if (talk_partner == param_2) {
fopAc_ac_c* conv_actor = talk_partner_conv->getActor();
u16 actor_command = conv_actor->eventInfo.mCommand;
msg_class* conv_actor = talk_partner_conv->getActor();
u16 actor_command = conv_actor->mMode;
if (actor_command == 2 || actor_command == 3) {
sub_method = (profile_method_class*)-1;
mMsgId = -1;
} else if (actor_command == 6) {
if (conv_actor->sub_method != sub_method) {
if (conv_actor->mMsgID != mMsgId) {
*param_0 = dComIfGp_getMesgFaceAnimeAttrInfo();
*param_1 = dComIfGp_getMesgAnimeAttrInfo();
sub_method = conv_actor->sub_method;
mMsgId = conv_actor->mMsgID;
}
if (dMsgObject_c::isMouthCheck()) {
@ -2201,10 +2201,10 @@ int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int pa
if (field_0xd98 & 0x4000) {
field_0xd98 &= ~0x4000;
}
sub_method = (profile_method_class*)-1;
mMsgId = -1;
}
} else {
sub_method = (profile_method_class*)-1;
mMsgId = -1;
if (field_0xdb4) {
field_0xdb4 = 1;
}
@ -5393,16 +5393,16 @@ int daNpcF_c::ctrlMsgAnm(int& o_expression, int& o_motion, fopAc_ac_c* param_2,
if (param_3 || eventInfo.checkCommandTalk() || mStaffID != -1) {
fopAc_ac_c* talkPartner = dComIfGp_event_getTalkPartner();
if (talkPartner == param_2) {
fopAc_ac_c* actor = dMsgObject_c::getActor();
if (actor->eventInfo.mCommand == dEvtCmd_INDEMO_e
|| actor->eventInfo.mCommand == dEvtCmd_INDOOR_e)
msg_class* actor = dMsgObject_c::getActor();
if (actor->mMode == dEvtCmd_INDEMO_e
|| actor->mMode == dEvtCmd_INDOOR_e)
{
field_0x9a4 = -1;
} else if (actor->eventInfo.mCommand == dEvtCmd_INCATCH_e) {
if ((u32)actor->sub_method != field_0x9a4) {
} else if (actor->mMode == dEvtCmd_INCATCH_e) {
if (actor->mMsgId != field_0x9a4) {
o_expression = dComIfGp_getMesgFaceAnimeAttrInfo();
o_motion = dComIfGp_getMesgAnimeAttrInfo();
field_0x9a4 = (u32)actor->sub_method;
field_0x9a4 = actor->mMsgId;
}
if (dMsgObject_c::isMouthCheck()) {
mAnmFlags &= ~ANM_PAUSE_EXPRESSION;

View File

@ -3,6 +3,8 @@
// Translation Unit: d/msg/d_msg_object
//
#define DISABLE_MSG_OBJECT_EXTERN
#include "d/msg/d_msg_object.h"
#include "d/msg/d_msg_class.h"
#include "d/msg/d_msg_string.h"
@ -3129,7 +3131,7 @@ void dMsgObject_c::setProcessID(unsigned int id) {
}
/* 8023819C-802381C0 232ADC 0024+00 0/0 5/5 5/5 .text getActor__12dMsgObject_cFv */
fopAc_ac_c* dMsgObject_c::getActor() {
msg_class* dMsgObject_c::getActor() {
if (dMsgObject_getMsgObjectClass() == NULL) {
return NULL;
}

View File

@ -440,7 +440,7 @@ void dMsgScrn3Select_c::selAnimeInit(u8 i_selNum, u8 i_selNo, u8 param_2, f32 i_
}
/* 8023A398-8023A680 234CD8 02E8+00 0/0 5/5 0/0 .text selAnimeMove__17dMsgScrn3Select_cFUcUcb */
BOOL dMsgScrn3Select_c::selAnimeMove(u8 i_selNum, u8 param_1, bool param_2) {
bool dMsgScrn3Select_c::selAnimeMove(u8 i_selNum, u8 param_1, bool param_2) {
field_0x110 = param_1;
mSelNum = i_selNum;
field_0x114 = 0;
@ -490,7 +490,7 @@ BOOL dMsgScrn3Select_c::selAnimeMove(u8 i_selNum, u8 param_1, bool param_2) {
}
}
return mProcess == PROC_SELECT_e;
return mProcess == PROC_SELECT_e ? TRUE : FALSE;
}
/* 8023A680-8023A934 234FC0 02B4+00 0/0 9/9 0/0 .text selAnimeEnd__17dMsgScrn3Select_cFv

View File

@ -6,85 +6,21 @@
#include "d/msg/d_msg_scrn_item.h"
#include "d/msg/d_msg_scrn_light.h"
#include "d/msg/d_msg_scrn_arrow.h"
#include "d/msg/d_msg_scrn_3select.h"
#include "d/msg/d_msg_object.h"
#include "d/msg/d_msg_class.h"
#include "d/meter/d_meter2_info.h"
#include "d/meter/d_meter_HIO.h"
#include "d/d_item_data.h"
#include "d/pane/d_pane_class.h"
#include "m_Do/m_Do_lib.h"
#include "JSystem/J2DGraph/J2DAnmLoader.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DGrafContext.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "dol2asm.h"
//
// Types:
//
struct JKRExpHeap {};
struct dMsgScrn3Select_c {
/* 802390B4 */ dMsgScrn3Select_c();
/* 80239C64 */ void isSelect();
/* 80239C78 */ void setString(char*, char*, char*);
/* 80239D08 */ void setRubyString(char*, char*, char*);
/* 80239D98 */ void translate(f32, f32);
/* 80239DD4 */ void draw(f32, f32);
/* 8023A094 */ void selAnimeInit(u8, u8, u8, f32, u8);
/* 8023A398 */ void selAnimeMove(u8, u8, bool);
/* 8023A680 */ void selAnimeEnd();
/* 8023A934 */ void getTextBoxWidth();
/* 8023A94C */ void getFontSize();
/* 8023A95C */ void getRubyFontSize();
/* 8023A97C */ void getCharSpace();
/* 8023A98C */ void getRubyCharSpace();
/* 8023A9AC */ void getTextBoxGlobalPosX(int);
/* 8023A9D8 */ void getTextBoxGlobalPosY(int);
};
struct dMsgObject_c {
/* 8023819C */ void getActor();
/* 802383D0 */ void getMessageID();
};
struct ResTIMG {};
struct dMeter2Info_c {
/* 8021CF08 */ void readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*,
J2DPicture*, void*, J2DPicture*, int);
/* 8021D36C */ void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
};
struct dItem_data {
static void* item_resource[1530];
};
struct JKRFileLoader {
/* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
};
struct JKRArchive {
/* 802D5ECC */ void readIdxResource(void*, u32, u32);
};
struct J2DGrafContext {};
struct J2DScreen {
/* 802F8498 */ J2DScreen();
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
/* 802F9690 */ void animation();
};
struct J2DAnmLoaderDataBase {
/* 80308A6C */ void load(void const*);
};
struct CPaneMgrAlpha {
/* 802557D0 */ void setAlphaRate(f32);
/* 80255828 */ void getAlphaRate();
};
struct CPaneMgr {
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
/* 80253B2C */ void reinit();
/* 802542E8 */ void getGlobalPosX();
/* 80254364 */ void getGlobalPosY();
/* 802545B0 */ void paneTrans(f32, f32);
/* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16);
};
//
// Forward References:
//
@ -192,10 +128,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void* item_resource__10dItem_data[1530];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_drawHIO[3880];
extern "C" extern u8 g_meter2_info[248];
extern "C" extern u8 g_MsgObject_HIO_c[1040];
//
// Declarations:
@ -267,6 +199,228 @@ SECTION_SDATA2 static f32 lit_4197 = 0.5f;
SECTION_SDATA2 static f64 lit_4199 = 4503599627370496.0 /* cast u32 to float */;
/* 8023E79C-8023F51C 2390DC 0D80+00 0/0 1/1 0/0 .text __ct__14dMsgScrnItem_cFUcUcP10JKRExpHeap */
// Matches with literals
#ifdef NONMATCHING
dMsgScrnItem_c::dMsgScrnItem_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
if (param_3 != NULL) {
field_0x138 = param_3;
} else {
field_0x138 = dComIfGp_getSubHeap2D(7);
}
field_0x19e = false;
init();
int iVar6 = dMsgObject_getMessageID();
bool bVar5 = false;
if (iVar6 >= 0x645 && iVar6 <= 0x648) {
mItemIndex = iVar6 - 0x641;
bVar5 = true;
} else if (iVar6 >= 0x8f5 && iVar6 <= 0x90c) {
mItemIndex = iVar6 - 0x835;
bVar5 = true;
}
if (!bVar5) {
mItemIndex = dMsgObject_getMessageID() - 0x65;
}
if (mItemIndex == 0x240) {
mItemIndex = 0x40;
} else if (mItemIndex == 0x191e || mItemIndex == 0x402e) {
mItemIndex = 0x46;
} else if (mItemIndex == 0x46a || mItemIndex == 0x46b || mItemIndex == 0x46c) {
mItemIndex = 0xe0;
} else if (mItemIndex == 0x1d35) {
mItemIndex = 0x21;
} else if (mItemIndex == 0x55b || mItemIndex == 0x55c) {
mItemIndex = 0x23;
} else if (mItemIndex == 0x6b9 || mItemIndex == 0x6eb) {
mItemIndex = 0x60;
}
if (mItemIndex == 0xec) {
mItemIndex = 0x33;
}
if ((mItemIndex < 0 || 0xff < mItemIndex) && !isOugiID()) {
if (*dComIfGp_getNextStageName() != 'T') {
JUT_WARN(85, "Item Index Not Exist!! %d", mItemIndex);
}
mItemIndex = 0x43;
}
for (int i = 0; i < 3; i++) {
mpItemPane[i] = 0;
field_0x0e0[i] = 0;
mpItemTex[i] = field_0x138->alloc(0xc00, 0x20);
JUT_ASSERT(100, mpItemTex[i] != 0);
}
int uStack_60 = 0xffffffff;
if (mItemIndex == 0x46 || mItemIndex == 0x4c) {
uStack_60 = 0x16;
} else if (mItemIndex == 0x21 || mItemIndex == 0x37 ||
mItemIndex == 0x38 ||
mItemIndex == 0x39 || mItemIndex == 0x3a)
{
switch(dComIfGs_getMaxLife() % 5) {
case 0:
uStack_60 = 0x75;
break;
case 1:
uStack_60 = 0x76;
break;
case 2:
uStack_60 = 0x77;
break;
case 3:
uStack_60 = 0x78;
break;
case 4:
uStack_60 = 0x51;
break;
}
}
if (isOugiID()) {
JKRReadIdxResource(mpItemTex[0], 0xc00, 0x3d, dComIfGp_getItemIconArchive());
field_0x0e0[0] = (ResTIMG*)mpItemTex[0];
mpItemPane[0] = new J2DPicture(field_0x0e0[0]);
JUT_ASSERT(148, mpItemPane[0] != 0);
} else {
int texNum =
dMeter2Info_readItemTexture(mItemIndex, mpItemTex[0], (J2DPicture*)NULL, mpItemTex[1],
(J2DPicture*)NULL, mpItemTex[2], (J2DPicture*)NULL, NULL, (J2DPicture*)NULL, uStack_60);
for (int i = 0; i < texNum; i++) {
field_0x0e0[i] = (ResTIMG*)mpItemTex[i];
mpItemPane[i] = new J2DPicture(field_0x0e0[i]);
JUT_ASSERT(165, mpItemPane[i] != 0);
}
dMeter2Info_setItemColor(
mItemIndex, mpItemPane[0], mpItemPane[1],
mpItemPane[2], NULL);
#ifdef DEBUG
if (mItemIndex == 0x81 || mItemIndex == 0x23) {
field_0x19e = true;
}
#endif
}
mpScreen = new J2DScreen();
JUT_ASSERT(188, mpScreen != 0);
bool fg = mpScreen->setPriority("zelda_item_get_window_revo.blo", 0x1020000, dComIfGp_getMsgArchive(3));
JUT_ASSERT(195, fg != false);
dPaneClass_showNullPane(mpScreen);
mpTxScreen = new J2DScreen();
JUT_ASSERT(199, mpTxScreen != 0);
fg = mpTxScreen->setPriority("zelda_item_get_window_text.blo", 0x20000, dComIfGp_getMsgArchive(3));
JUT_ASSERT(206, fg != false);
dPaneClass_showNullPane(mpTxScreen);
f32 dVar18;
if (g_drawHIO.mItemScaleAdjustON == 1) {
dVar18 = g_drawHIO.mItemScalePercent / 100.0f;
} else if (mItemIndex >= 0 && mItemIndex <= 0xff) {
dVar18 = dItem_data::getTexScale(mItemIndex) / 100.0f;
} else {
dVar18 = 1.0f;
}
field_0x178 = field_0x0e0[0]->width * mpScreen->search('set_it_n')->getWidth() / 48.0f;
field_0x17c = field_0x0e0[0]->height * mpScreen->search('set_it_n')->getHeight() / 48.0f;
field_0x170 = mpScreen->search('set_it_n')->getWidth();
field_0x174 = mpScreen->search('set_it_n')->getHeight();
for (int i = 0; i < 3; i++) {
if (mpItemPane[i] != NULL) {
mpItemPane[i]->resize(field_0x178 * dVar18, field_0x17c * dVar18);
mpItemPane[i]->setBasePosition(J2DBasePosition_4);
}
}
mpArrow_c = new dMsgScrnArrow_c();
JUT_ASSERT(280, mpArrow_c != 0);
mpSelect_c = new dMsgScrn3Select_c();
JUT_ASSERT(284, mpSelect_c != 0);
mpLight_c = new dMsgScrnLight_c(3, param_2);
JUT_ASSERT(288, mpLight_c != 0);
void* mpBuf = field_0x138->alloc(0x106a, 0x20);
JUT_ASSERT(291, mpBuf != 0);
memset(mpBuf, 0, 0x106a);
mCharInfoPtr = (CharInfo_c*)mpBuf;
field_0x160 = mpScreen->search('n_all')->getBounds().i.x;
field_0x164 = mpScreen->search('n_all')->getBounds().i.y;
field_0x180 = 0.0f;
field_0x184 = 0.0f;
for (int i = 0; i < 3; i++) {
field_0x188[i] = g_MsgObject_HIO_c.mBoxPos[i][3];
}
field_0x194 = 0.0f;
mpArw_c = new CPaneMgr(mpScreen, 'set_ya_n', 0, NULL);
JUT_ASSERT(306, mpArw_c != 0);
mpMg_c[0] = new CPaneMgr(mpScreen, 'mg_null', 0, NULL);
JUT_ASSERT(309, mpMg_c[0] != 0);
mpMg_c[1] = new CPaneMgr(mpTxScreen, 'mg_null', 0, NULL);
JUT_ASSERT(312, mpMg_c[1] != 0);
OSInitFastCast();
fukiPosCalc(param_1);
field_0x118[0] = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window_revo.btk", dComIfGp_getMsgArchive(3)));
field_0x118[0]->searchUpdateMaterialID(mpScreen);
field_0x140[0] = 0.0f;
field_0x12c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window_revo.bpk", dComIfGp_getMsgArchive(3)));
field_0x12c[0]->searchUpdateMaterialID(mpScreen);
field_0x154[0] = 0.0f;
field_0x12c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window_revo_02.bpk", dComIfGp_getMsgArchive(3)));
field_0x12c[1]->searchUpdateMaterialID(mpScreen);
field_0x154[1] = 0.0f;
field_0x19d = false;
mpPmP_c = new CPaneMgr(mpScreen, 'n_all', 3, NULL);
JUT_ASSERT(389, mpPmP_c != 0);
mpPmP_c->scale(g_MsgObject_HIO_c.mBoxItemScaleX, g_MsgObject_HIO_c.mBoxItemScaleY);
mpTm_c[0] = new CPaneMgr(mpTxScreen, 'mg_e4lin', 0, NULL);
JUT_ASSERT(407, mpTm_c[0] != 0);
mpTm_c[1] = new CPaneMgr(mpTxScreen, 't4_s', 0, NULL);
JUT_ASSERT(410, mpTm_c[1] != 0);
mpTm_c[2] = new CPaneMgr(mpTxScreen, 't4_w', 0, NULL);
JUT_ASSERT(413, mpTm_c[2] != 0);
mpTxScreen->search('n_3line')->hide();
mpTxScreen->search('n_3fline')->hide();
mpTxScreen->search('n_e4line')->show();
for (int i = 0; i < 3; i++) {
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
if (mpTmr_c[i] != NULL) {
((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
}
}
((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize);
mTBoxWidth = mpTm_c[0]->getSizeX();
mTBoxHeight = mpTm_c[0]->getSizeY();
mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace();
mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace();
for (int i = 0; i < 3; i++) {
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace);
mpTm_c[i]->resize(1.2f * mpTm_c[i]->getSizeX(), mpTm_c[i]->getSizeY());
}
mTextBoxPosX =
mpTm_c[0]->getGlobalPosX() +
(0.5f * ((1.0f - g_MsgObject_HIO_c.mBoxItemTextSizeX) * mpTm_c[0]->getInitSizeX()));
mTextBoxPosY =
mpTm_c[0]->getGlobalPosY() +
(0.5f * ((1.0f - g_MsgObject_HIO_c.mBoxItemTextSizeY) * mpTm_c[0]->getInitSizeY()));
mTextBoxScaleX = g_MsgObject_HIO_c.mBoxItemTextSizeX;
mTextBoxScaleY = g_MsgObject_HIO_c.mBoxItemTextSizeY;
for (int i = 0; i < 3; i++) {
if (mpTmr_c[i] != NULL) {
((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setLineSpace(mLineSpace);
if (i == 0) {
J2DTextBox::TFontSize fontSize;
((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getFontSize(fontSize);
mRubySize = fontSize.mSizeX;
mRubyCharSpace = ((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getCharSpace();
}
mpTmr_c[i]->resize(1.2f * mpTmr_c[i]->getSizeX(), mpTmr_c[i]->getSizeY());
}
}
mSelTBoxWidth = mpSelect_c->getTextBoxWidth();
mSelFontSize = mpSelect_c->getFontSize();
mSelRubySize = mpSelect_c->getRubyFontSize();
mSelCharSpace = mpSelect_c->getCharSpace();
mSelRubyCharSpace = mpSelect_c->getRubyCharSpace();
for (int i = 0; i < 3; i++) {
mSelTextBoxPosX[i] = mpSelect_c->getTextBoxGlobalPosX(i);
mSelTextBoxPosY[i] = mpSelect_c->getTextBoxGlobalPosY(i);
}
field_0x13c = 0.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -275,22 +429,119 @@ asm dMsgScrnItem_c::dMsgScrnItem_c(u8 param_0, u8 param_1, JKRExpHeap* param_2)
#include "asm/msg/scrn/d_msg_scrn_item/__ct__14dMsgScrnItem_cFUcUcP10JKRExpHeap.s"
}
#pragma pop
#endif
/* 8023F51C-8023F888 239E5C 036C+00 1/0 0/0 0/0 .text __dt__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMsgScrnItem_c::~dMsgScrnItem_c() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/__dt__14dMsgScrnItem_cFv.s"
dMsgScrnItem_c::~dMsgScrnItem_c() {
for (int i = 0; i < 3; i++) {
if (mpItemTex[i] != NULL) {
field_0x138->free(mpItemTex[i]);
mpItemTex[i] = NULL;
}
if (mpItemPane[i] != NULL) {
delete mpItemPane[i];
mpItemPane[i] = NULL;
}
}
delete mpScreen;
mpScreen = NULL;
delete mpTxScreen;
mpTxScreen = NULL;
delete mpArrow_c;
mpArrow_c = NULL;
delete mpSelect_c;
mpSelect_c = NULL;
delete mpLight_c;
mpLight_c = NULL;
if (mCharInfoPtr != 0) {
field_0x138->free(mCharInfoPtr);
mCharInfoPtr = NULL;
}
delete mpArw_c;
mpArw_c = NULL;
for (int i = 0; i < 2; i++) {
delete mpMg_c[i];
mpMg_c[i] = NULL;
}
for (int i = 0; i < 1; i++) {
delete field_0x118[i];
field_0x118[i] = NULL;
}
for (int i = 0; i < 2; i++) {
delete field_0x12c[i];
field_0x12c[i] = NULL;
}
delete mpPmP_c;
mpPmP_c = NULL;
for (int i = 0; i < 3; i++) {
delete mpTm_c[i];
mpTm_c[i] = NULL;
if (mpTmr_c[i] != NULL) {
delete mpTmr_c[i];
mpTmr_c[i] = NULL;
}
}
dComIfGp_getMsgArchive(0)->removeResourceAll();;
dComIfGp_getMsgArchive(3)->removeResourceAll();;
dComIfGp_getMsgCommonArchive()->removeResourceAll();;
}
#pragma pop
/* ############################################################################################## */
/* 80454C18-80454C20 003218 0008+00 2/2 0/0 0/0 .sdata2 @4388 */
SECTION_SDATA2 static f64 lit_4388 = 4503601774854144.0 /* cast s32 to float */;
/* 8023F888-8023FB24 23A1C8 029C+00 1/0 0/0 0/0 .text exec__14dMsgScrnItem_cFv */
// Matches with literals
#ifdef NONMATCHING
void dMsgScrnItem_c::exec() {
f32 dVar12 = field_0x13c;
if (!field_0x19d) {
setBtk0Animation(field_0x118[0]);
setBpk0Animation(field_0x12c[0]);
setBpk1Animation(field_0x12c[1]);
field_0x19d = true;
}
for (int i = 0; i < 1; i++) {
field_0x140[i] += g_MsgObject_HIO_c.mBoxItemAnmSpeed;
if (field_0x140[i] >= field_0x118[i]->getFrameMax()) {
field_0x140[i] -= field_0x118[i]->getFrameMax();
}
field_0x118[i]->setFrame(field_0x140[i]);
}
for (int i = 0; i < 2; i++) {
field_0x154[i] += g_MsgObject_HIO_c.mBoxItemAnmSpeed;
if (field_0x154[i] >= field_0x12c[i]->getFrameMax())
{
field_0x154[i] -= field_0x12c[i]->getFrameMax();
}
field_0x12c[i]->setFrame(field_0x154[i]);
}
mpScreen->animation();
if (isTalkNow()) {
fukiAlpha(1.0f);
} else {
fukiAlpha(dVar12);
}
f32 yOffset;
switch(field_0x19c) {
case 1:
yOffset = field_0x188[2] - field_0x184;
break;
case 2:
yOffset = field_0x188[1] - field_0x184;
break;
default:
yOffset = field_0x188[0] - field_0x184;
break;
}
mpPmP_c->scale(g_MsgObject_HIO_c.mBoxItemScaleX, g_MsgObject_HIO_c.mBoxItemScaleY);
mpMg_c[1]->translate(field_0x168 + g_MsgObject_HIO_c.mBoxItemTextPosX,
yOffset + (field_0x16c + g_MsgObject_HIO_c.mBoxItemTextPosY));
mpMg_c[1]->scale(g_MsgObject_HIO_c.mBoxItemTextSizeX, g_MsgObject_HIO_c.mBoxItemTextSizeY);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -299,6 +550,7 @@ asm void dMsgScrnItem_c::exec() {
#include "asm/msg/scrn/d_msg_scrn_item/exec__14dMsgScrnItem_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80454C20-80454C24 003220 0004+00 1/1 0/0 0/0 .sdata2 @4476 */
@ -311,6 +563,88 @@ SECTION_SDATA2 static f32 lit_4477 = 255.0f;
SECTION_SDATA2 static f32 lit_4478 = 3.0f / 5.0f;
/* 8023FB24-8023FF30 23A464 040C+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnItem_cFv */
// Issues with float regs order
#ifdef NONMATCHING
void dMsgScrnItem_c::drawSelf() {
J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
grafContext->setup2D();
u8* iVar6 = (u8*)mCharInfoPtr;
if (*(s16*)(iVar6 + 0x1068) > 0) {
f32 dVar12 = mpTm_c[0]->getAlphaRate();
for (int i = 0; i < *(short*)(iVar6 + 0x1068); i = i + 1) {
mpLight_c->draw(&mCharInfoPtr[i].field_0x14, mCharInfoPtr[i].field_0x00,
mCharInfoPtr[i].field_0x04, mCharInfoPtr[i].field_0x08,
mCharInfoPtr[i].field_0x0c,
dVar12 * g_MsgObject_HIO_c.mBoxItemHaloAlpha, mCharInfoPtr[i].mColorNo);
}
}
//f32 this_00 = mpTm_c[0]->getGlobalPosX();
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f, g_MsgObject_HIO_c.mBoxItemTextPosY,
1.0f);
mpTxScreen->draw(0.0f, 0.0f, grafContext);
mpSelect_c->draw(0.0f, 0.0f);
mpArrow_c->draw();
for (int i = 0; i < 3; i++) {
if (mpItemPane[i] != NULL) {
mpItemPane[i]->setAlpha(255.0f * field_0x194);
switch (mItemIndex) {
case 0x20:
case 0x2a:
case 0x2b:
case 0x21:
case 0x37:
case 0x38:
case 0x39:
case 0x3a:
case 0x3d:
case 0x40:
case 0x42:
case 0x44:
case 0x47:
case 0x48:
case 0x4a:
case 0x58:
case 0x5b:
case 0x5c:
case 0x5d:
case 0x5e:
case 0x5f:
case 0x9c:
case 0xee:
case 0xf3:
case 0xf8:
case 0xf9:
case 0xfa:
case 0xfb:
case 0xfc:
case 0xfd:
case 0xfe:
mpItemPane[i]->scale(0.6f, 0.6f);
break;
default:
mpItemPane[i]->scale(g_MsgObject_HIO_c.mBoxItemSizeX, g_MsgObject_HIO_c.mBoxItemSizeY);
}
f32 texScale;
if (g_drawHIO.mItemScaleAdjustON == true) {
texScale = (g_drawHIO.mItemScalePercent / 100.0f);
} else if (mItemIndex >= 0 && mItemIndex <= 0xff) {
texScale = dItem_data::item_resource[(u8)mItemIndex].getTexScale() / 100.0f;
} else {
texScale = 1.0f;
};
// operation order is wrong here
mpItemPane[i]->draw(
mpScreen->search('set_it_n')->getGlbBounds().i.x + g_MsgObject_HIO_c.mBoxItemPosX +
(field_0x174 - (field_0x17c * texScale)) / 2,
mpScreen->search('set_it_n')->getGlbBounds().i.y + g_MsgObject_HIO_c.mBoxItemPosY +
(field_0x170 - (field_0x178 * texScale)) / 2,
field_0x19e, false, false);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -319,133 +653,81 @@ asm void dMsgScrnItem_c::drawSelf() {
#include "asm/msg/scrn/d_msg_scrn_item/drawSelf__14dMsgScrnItem_cFv.s"
}
#pragma pop
#endif
/* 8023FF30-8023FF54 23A870 0024+00 1/0 0/0 0/0 .text arwAnimeInit__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::arwAnimeInit() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/arwAnimeInit__14dMsgScrnItem_cFv.s"
void dMsgScrnItem_c::arwAnimeInit() {
mpArrow_c->arwAnimeInit();
}
#pragma pop
/* 8023FF54-8023FF78 23A894 0024+00 1/0 0/0 0/0 .text arwAnimeMove__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::arwAnimeMove() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/arwAnimeMove__14dMsgScrnItem_cFv.s"
void dMsgScrnItem_c::arwAnimeMove() {
mpArrow_c->arwAnimeMove();
}
#pragma pop
/* 8023FF78-8023FF9C 23A8B8 0024+00 1/0 0/0 0/0 .text dotAnimeInit__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::dotAnimeInit() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/dotAnimeInit__14dMsgScrnItem_cFv.s"
void dMsgScrnItem_c::dotAnimeInit() {
mpArrow_c->dotAnimeInit();
}
#pragma pop
/* 8023FF9C-8023FFC0 23A8DC 0024+00 1/0 0/0 0/0 .text dotAnimeMove__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::dotAnimeMove() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/dotAnimeMove__14dMsgScrnItem_cFv.s"
void dMsgScrnItem_c::dotAnimeMove() {
mpArrow_c->dotAnimeMove();
}
#pragma pop
/* 8023FFC0-8023FFE4 23A900 0024+00 1/0 0/0 0/0 .text setSelectString__14dMsgScrnItem_cFPcPcPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::setSelectString(char* param_0, char* param_1, char* param_2) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/setSelectString__14dMsgScrnItem_cFPcPcPc.s"
void dMsgScrnItem_c::setSelectString(char* param_0, char* param_1, char* param_2) {
mpSelect_c->setString(param_0, param_1, param_2);
}
#pragma pop
/* 8023FFE4-80240008 23A924 0024+00 1/0 0/0 0/0 .text setSelectRubyString__14dMsgScrnItem_cFPcPcPc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::setSelectRubyString(char* param_0, char* param_1, char* param_2) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/setSelectRubyString__14dMsgScrnItem_cFPcPcPc.s"
void dMsgScrnItem_c::setSelectRubyString(char* param_0, char* param_1, char* param_2) {
mpSelect_c->setRubyString(param_0, param_1, param_2);
}
#pragma pop
/* 80240008-8024002C 23A948 0024+00 1/0 0/0 0/0 .text isSelect__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMsgScrnItem_c::isSelect() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/isSelect__14dMsgScrnItem_cFv.s"
bool dMsgScrnItem_c::isSelect() {
return mpSelect_c->isSelect();
}
#pragma pop
/* 8024002C-8024005C 23A96C 0030+00 1/0 0/0 0/0 .text selectAnimeInit__14dMsgScrnItem_cFUcUcfUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::selectAnimeInit(u8 param_0, u8 param_1, f32 param_2, u8 param_3) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/selectAnimeInit__14dMsgScrnItem_cFUcUcfUc.s"
void dMsgScrnItem_c::selectAnimeInit(u8 param_0, u8 param_1, f32 param_2, u8 param_3) {
mpSelect_c->selAnimeInit(param_0, param_1, field_0x19c, param_2, param_3);
}
#pragma pop
/* 8024005C-80240080 23A99C 0024+00 1/0 0/0 0/0 .text selectAnimeMove__14dMsgScrnItem_cFUcUcb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMsgScrnItem_c::selectAnimeMove(u8 param_0, u8 param_1, bool param_2) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/selectAnimeMove__14dMsgScrnItem_cFUcUcb.s"
bool dMsgScrnItem_c::selectAnimeMove(u8 param_0, u8 param_1, bool param_2) {
return mpSelect_c->selAnimeMove(param_0, param_1, param_2);
}
#pragma pop
/* 80240080-802400A4 23A9C0 0024+00 1/0 0/0 0/0 .text selectAnimeEnd__14dMsgScrnItem_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMsgScrnItem_c::selectAnimeEnd() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/selectAnimeEnd__14dMsgScrnItem_cFv.s"
bool dMsgScrnItem_c::selectAnimeEnd() {
return mpSelect_c->selAnimeEnd();
}
#pragma pop
/* 802400A4-802400A8 23A9E4 0004+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnItem_cFf */
void dMsgScrnItem_c::fukiScale(f32 param_0) {
/* empty function */
}
/* 802400A8-802400CC 23A9E8 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnItem_cFff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::fukiTrans(f32 param_0, f32 param_1) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/fukiTrans__14dMsgScrnItem_cFff.s"
void dMsgScrnItem_c::fukiTrans(f32 x, f32 y) {
mpPmP_c->paneTrans(x, y);
}
#pragma pop
/* 802400CC-80240174 23AA0C 00A8+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnItem_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::fukiAlpha(f32 param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/fukiAlpha__14dMsgScrnItem_cFf.s"
void dMsgScrnItem_c::fukiAlpha(f32 param_1) {
field_0x13c = param_1;
field_0x194 = param_1;
mpPmP_c->setAlphaRate(param_1 * g_MsgObject_HIO_c.mBoxItemAlphaP);
for (int i = 0; i < 3; i++) {
mpTm_c[i]->setAlphaRate(param_1 * mCharAlphaRate);
if (mpTmr_c[i] != NULL) {
mpTmr_c[i]->setAlphaRate(param_1 * mCharAlphaRate);
}
}
}
#pragma pop
/* ############################################################################################## */
/* 80454C2C-80454C30 00322C 0004+00 1/1 0/0 0/0 .sdata2 @4663 */
@ -476,6 +758,100 @@ SECTION_SDATA2 static f32 lit_4670 = 355.0f;
SECTION_SDATA2 static f32 lit_4671 = 209.0f;
/* 80240174-8024074C 23AAB4 05D8+00 1/0 0/0 0/0 .text fukiPosCalc__14dMsgScrnItem_cFUc */
// Matches with literals
#ifdef NONMATCHING
void dMsgScrnItem_c::fukiPosCalc(u8 param_1) {
msg_class* iVar6 = dMsgObject_c::getActor();
if (mpPmP_c != NULL) {
mpPmP_c->move(field_0x160, field_0x164);
}
if (param_1 == 3) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz local_70;
cXyz cStack_7c;
f32 f3;
mDoLib_project(&player->eyePos, &cStack_7c);
if (iVar6->mPos == cXyz(0.0f, 0.0f, 0.0f)) {
f3 = cStack_7c.y;
} else {
mDoLib_project(&iVar6->mPos, &local_70);
if (local_70.x >= 0.0f && local_70.x <= 608.0f && local_70.y >= 0.0f &&
local_70.y <= 448.0f)
{
f3 = 0.5f * (cStack_7c.y + local_70.y);
} else {
f3 = cStack_7c.y;
}
}
if (mpPmP_c != NULL) {
switch(field_0x19c) {
case 1:
if (f3 < g_MsgObject_HIO_c.mBoxAppearBound - 50.0f) {
param_1 = 0;
} else {
param_1 = 1;
}
break;
case 3:
if (f3 < g_MsgObject_HIO_c.mBoxAppearBound + 50.0f) {
param_1 = 0;
} else {
param_1 = 1;
}
break;
}
} else {
if (f3 < g_MsgObject_HIO_c.mBoxAppearBound) {
param_1 = 0;
} else {
param_1 = 1;
}
}
}
field_0x180 = 0.0f;
field_0x19c = param_1;
f32 yOffset;
switch(field_0x19c) {
case 1:
yOffset = g_MsgObject_HIO_c.mBoxPos[2][3];
field_0x180 = 105.0f - (mpScreen->search('n_all')->getBounds().i.y +
mpScreen->search('n_all')->getBounds().f.y) / 2;
mpSelect_c->translate(486.0f, 230.0f);
break;
case 2:
yOffset = g_MsgObject_HIO_c.mBoxPos[1][3];
field_0x180 = 235.0f - (mpScreen->search('n_all')->getBounds().i.y +
mpScreen->search('n_all')->getBounds().f.y) / 2;
mpSelect_c->translate(486.0f, 355.0f);
break;
default:
yOffset = g_MsgObject_HIO_c.mBoxPos[0][3];
field_0x180 = 0.0f;
mpSelect_c->translate(486.0f, 209.0f);
}
field_0x184 = yOffset;
setTextBoxPosOffsetY(field_0x180 + yOffset);
mpScreen->search('n_all')->move(field_0x160, yOffset + (field_0x164 + field_0x180));
if (mpPmP_c != NULL) {
mpPmP_c->reinit();
mpArrow_c->setPos(mpArw_c->getGlobalPosX() + (0.5f * mpArw_c->getSizeX()),
mpArw_c->getGlobalPosY() + (0.5f * mpArw_c->getSizeY()));
mpMg_c[1]->translate(mpMg_c[0]->getGlobalPosX() + 0.5f * mpMg_c[0]->getSizeX(),
mpMg_c[0]->getGlobalPosY() + 0.5f * mpMg_c[0]->getSizeY());
mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
mTextBoxPosY = mpTm_c[0]->getGlobalPosY();
field_0x168 = mpMg_c[0]->getGlobalPosX() + 0.5f * mpMg_c[0]->getSizeX();
field_0x16c = (mpMg_c[0]->getGlobalPosY() + 0.5f * mpMg_c[0]->getSizeY());
} else {
Vec arwCenter = mpArw_c->getGlobalVtxCenter(false, 0);
mpArrow_c->setPos(arwCenter.x, arwCenter.y);
Vec local_b8 = mpMg_c[0]->getGlobalVtxCenter(false, 0);
field_0x168 = local_b8.x;
field_0x16c = local_b8.y;
mpMg_c[1]->translate(field_0x168, field_0x16c);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -484,48 +860,46 @@ asm void dMsgScrnItem_c::fukiPosCalc(u8 param_0) {
#include "asm/msg/scrn/d_msg_scrn_item/fukiPosCalc__14dMsgScrnItem_cFUc.s"
}
#pragma pop
#endif
/* 8024074C-802407E8 23B08C 009C+00 1/1 0/0 0/0 .text
* setBtk0Animation__14dMsgScrnItem_cFP19J2DAnmTextureSRTKey */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::setBtk0Animation(J2DAnmTextureSRTKey* param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/setBtk0Animation__14dMsgScrnItem_cFP19J2DAnmTextureSRTKey.s"
void dMsgScrnItem_c::setBtk0Animation(J2DAnmTextureSRTKey* param_1) {
mpScreen->search('gold00')->setAnimation(param_1);
mpScreen->search('gold01')->setAnimation(param_1);
}
#pragma pop
/* 802407E8-80240844 23B128 005C+00 1/1 0/0 0/0 .text
* setBpk0Animation__14dMsgScrnItem_cFP11J2DAnmColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::setBpk0Animation(J2DAnmColor* param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/setBpk0Animation__14dMsgScrnItem_cFP11J2DAnmColor.s"
void dMsgScrnItem_c::setBpk0Animation(J2DAnmColor* param_0) {
mpScreen->search('map0')->setAnimation(param_0);
}
#pragma pop
/* 80240844-802408A4 23B184 0060+00 1/1 0/0 0/0 .text
* setBpk1Animation__14dMsgScrnItem_cFP11J2DAnmColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::setBpk1Animation(J2DAnmColor* param_0) {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/setBpk1Animation__14dMsgScrnItem_cFP11J2DAnmColor.s"
void dMsgScrnItem_c::setBpk1Animation(J2DAnmColor* param_0) {
mpScreen->search('moyou_1')->setAnimation(param_0);
}
#pragma pop
/* 802408A4-8024096C 23B1E4 00C8+00 1/1 0/0 0/0 .text isOugiID__14dMsgScrnItem_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgScrnItem_c::isOugiID() {
nofralloc
#include "asm/msg/scrn/d_msg_scrn_item/isOugiID__14dMsgScrnItem_cFv.s"
bool dMsgScrnItem_c::isOugiID() {
switch(dMsgObject_getMessageID()) {
case 0x17ed:
case 0x1823:
case 0x183f:
case 0x18b4:
case 0x185c:
case 0x1877:
case 0x1895:
case 0x3efd:
case 0x3f33:
case 0x3f6c:
case 0x3f87:
case 0x3fa5:
case 0x3fc4:
return true;
}
return false;
}
#pragma pop
/* 80399990-80399990 025FF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */