d_a_npc / d_a_tag_mhint / d_a_grass work (#1916)

* some npc work / cleanup

* tag_mhint / grass work

* fix path / remove asm
This commit is contained in:
TakaRikka 2023-09-07 21:22:55 -07:00 committed by GitHub
parent 3dd1963a59
commit 6deaa22a19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
70 changed files with 2592 additions and 6748 deletions

View File

@ -1,36 +0,0 @@
lbl_8007E74C:
/* 8007E74C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8007E750 7C 08 02 A6 */ mflr r0
/* 8007E754 90 01 00 14 */ stw r0, 0x14(r1)
/* 8007E758 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8007E75C 93 C1 00 08 */ stw r30, 8(r1)
/* 8007E760 7C 7E 1B 79 */ or. r30, r3, r3
/* 8007E764 7C 9F 23 78 */ mr r31, r4
/* 8007E768 41 82 00 4C */ beq lbl_8007E7B4
/* 8007E76C 3C 60 80 3B */ lis r3, __vt__8dBgWKCol@ha /* 0x803ABDC8@ha */
/* 8007E770 38 03 BD C8 */ addi r0, r3, __vt__8dBgWKCol@l /* 0x803ABDC8@l */
/* 8007E774 90 1E 00 04 */ stw r0, 4(r30)
/* 8007E778 34 1E 00 20 */ addic. r0, r30, 0x20
/* 8007E77C 41 82 00 10 */ beq lbl_8007E78C
/* 8007E780 3C 60 80 3A */ lis r3, __vt__8cM3dGAab@ha /* 0x803A7218@ha */
/* 8007E784 38 03 72 18 */ addi r0, r3, __vt__8cM3dGAab@l /* 0x803A7218@l */
/* 8007E788 90 1E 00 38 */ stw r0, 0x38(r30)
lbl_8007E78C:
/* 8007E78C 38 7E 00 1C */ addi r3, r30, 0x1c
/* 8007E790 38 80 FF FF */ li r4, -1
/* 8007E794 4B FF 58 ED */ bl __dt__6dBgPlcFv
/* 8007E798 7F C3 F3 78 */ mr r3, r30
/* 8007E79C 38 80 00 00 */ li r4, 0
/* 8007E7A0 4B FF FE A1 */ bl __dt__9dBgW_BaseFv
/* 8007E7A4 7F E0 07 35 */ extsh. r0, r31
/* 8007E7A8 40 81 00 0C */ ble lbl_8007E7B4
/* 8007E7AC 7F C3 F3 78 */ mr r3, r30
/* 8007E7B0 48 25 05 8D */ bl __dl__FPv
lbl_8007E7B4:
/* 8007E7B4 7F C3 F3 78 */ mr r3, r30
/* 8007E7B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8007E7BC 83 C1 00 08 */ lwz r30, 8(r1)
/* 8007E7C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8007E7C4 7C 08 03 A6 */ mtlr r0
/* 8007E7C8 38 21 00 10 */ addi r1, r1, 0x10
/* 8007E7CC 4E 80 00 20 */ blr

View File

@ -1,78 +0,0 @@
lbl_8025140C:
/* 8025140C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80251410 7C 08 02 A6 */ mflr r0
/* 80251414 90 01 00 34 */ stw r0, 0x34(r1)
/* 80251418 39 61 00 30 */ addi r11, r1, 0x30
/* 8025141C 48 11 0D A5 */ bl _savegpr_22
/* 80251420 7C 78 1B 78 */ mr r24, r3
/* 80251424 7C 99 23 78 */ mr r25, r4
/* 80251428 7C BA 2B 78 */ mr r26, r5
/* 8025142C 7C DB 33 78 */ mr r27, r6
/* 80251430 7C FC 3B 78 */ mr r28, r7
/* 80251434 38 60 00 00 */ li r3, 0
/* 80251438 38 80 FF FF */ li r4, -1
/* 8025143C 38 00 00 04 */ li r0, 4
/* 80251440 7C 09 03 A6 */ mtctr r0
lbl_80251444:
/* 80251444 38 03 00 BC */ addi r0, r3, 0xbc
/* 80251448 7C 98 01 2E */ stwx r4, r24, r0
/* 8025144C 38 63 00 04 */ addi r3, r3, 4
/* 80251450 42 00 FF F4 */ bdnz lbl_80251444
/* 80251454 3B C0 00 00 */ li r30, 0
/* 80251458 93 D8 00 CC */ stw r30, 0xcc(r24)
/* 8025145C 3A E0 00 00 */ li r23, 0
/* 80251460 3A C0 00 00 */ li r22, 0
/* 80251464 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80251468 3B E3 D4 70 */ addi r31, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
lbl_8025146C:
/* 8025146C 7F BA B0 2E */ lwzx r29, r26, r22
/* 80251470 2C 1D 00 00 */ cmpwi r29, 0
/* 80251474 41 80 00 A8 */ blt lbl_8025151C
/* 80251478 80 79 00 84 */ lwz r3, 0x84(r25)
/* 8025147C 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80251480 1C 1D 00 30 */ mulli r0, r29, 0x30
/* 80251484 7C 63 02 14 */ add r3, r3, r0
/* 80251488 7F E4 FB 78 */ mr r4, r31
/* 8025148C 48 0F 50 25 */ bl PSMTXCopy
/* 80251490 80 18 00 CC */ lwz r0, 0xcc(r24)
/* 80251494 1C 60 00 0C */ mulli r3, r0, 0xc
/* 80251498 38 63 00 04 */ addi r3, r3, 4
/* 8025149C 7C 78 1A 14 */ add r3, r24, r3
/* 802514A0 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 802514A4 D0 03 00 00 */ stfs f0, 0(r3)
/* 802514A8 C0 1F 00 1C */ lfs f0, 0x1c(r31)
/* 802514AC D0 03 00 04 */ stfs f0, 4(r3)
/* 802514B0 C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 802514B4 D0 03 00 08 */ stfs f0, 8(r3)
/* 802514B8 38 16 00 BC */ addi r0, r22, 0xbc
/* 802514BC 7F B8 01 2E */ stwx r29, r24, r0
/* 802514C0 7C 7B BA 14 */ add r3, r27, r23
/* 802514C4 A8 03 00 00 */ lha r0, 0(r3)
/* 802514C8 7C 98 BA 14 */ add r4, r24, r23
/* 802514CC B0 04 00 94 */ sth r0, 0x94(r4)
/* 802514D0 A8 03 00 02 */ lha r0, 2(r3)
/* 802514D4 B0 04 00 96 */ sth r0, 0x96(r4)
/* 802514D8 A8 03 00 04 */ lha r0, 4(r3)
/* 802514DC B0 04 00 98 */ sth r0, 0x98(r4)
/* 802514E0 7C 7C BA 14 */ add r3, r28, r23
/* 802514E4 A8 03 00 00 */ lha r0, 0(r3)
/* 802514E8 B0 04 00 7C */ sth r0, 0x7c(r4)
/* 802514EC A8 03 00 02 */ lha r0, 2(r3)
/* 802514F0 B0 04 00 7E */ sth r0, 0x7e(r4)
/* 802514F4 A8 03 00 04 */ lha r0, 4(r3)
/* 802514F8 B0 04 00 80 */ sth r0, 0x80(r4)
/* 802514FC 80 78 00 CC */ lwz r3, 0xcc(r24)
/* 80251500 38 03 00 01 */ addi r0, r3, 1
/* 80251504 90 18 00 CC */ stw r0, 0xcc(r24)
/* 80251508 3B DE 00 01 */ addi r30, r30, 1
/* 8025150C 2C 1E 00 03 */ cmpwi r30, 3
/* 80251510 3A F7 00 06 */ addi r23, r23, 6
/* 80251514 3A D6 00 04 */ addi r22, r22, 4
/* 80251518 41 80 FF 54 */ blt lbl_8025146C
lbl_8025151C:
/* 8025151C 39 61 00 30 */ addi r11, r1, 0x30
/* 80251520 48 11 0C ED */ bl _restgpr_22
/* 80251524 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80251528 7C 08 03 A6 */ mtlr r0
/* 8025152C 38 21 00 30 */ addi r1, r1, 0x30
/* 80251530 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80520934:
/* 80520934 38 00 00 00 */ li r0, 0
/* 80520938 98 03 00 00 */ stb r0, 0(r3)
/* 8052093C 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80522FC0:
/* 80522FC0 38 00 00 00 */ li r0, 0
/* 80522FC4 98 03 00 00 */ stb r0, 0(r3)
/* 80522FC8 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_8052097C:
/* 8052097C 38 00 00 00 */ li r0, 0
/* 80520980 98 03 00 00 */ stb r0, 0(r3)
/* 80520984 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80520928:
/* 80520928 38 00 00 00 */ li r0, 0
/* 8052092C 90 03 00 00 */ stw r0, 0(r3)
/* 80520930 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80523008:
/* 80523008 38 00 00 00 */ li r0, 0
/* 8052300C 98 03 00 00 */ stb r0, 0(r3)
/* 80523010 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80522FB4:
/* 80522FB4 38 00 00 00 */ li r0, 0
/* 80522FB8 90 03 00 00 */ stw r0, 0(r3)
/* 80522FBC 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_80520940:
/* 80520940 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80520944 7C 08 02 A6 */ mflr r0
/* 80520948 90 01 00 14 */ stw r0, 0x14(r1)
/* 8052094C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80520950 7C 7F 1B 79 */ or. r31, r3, r3
/* 80520954 41 82 00 10 */ beq lbl_80520964
/* 80520958 7C 80 07 35 */ extsh. r0, r4
/* 8052095C 40 81 00 08 */ ble lbl_80520964
/* 80520960 4B DA E3 DD */ bl __dl__FPv
lbl_80520964:
/* 80520964 7F E3 FB 78 */ mr r3, r31
/* 80520968 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8052096C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80520970 7C 08 03 A6 */ mtlr r0
/* 80520974 38 21 00 10 */ addi r1, r1, 0x10
/* 80520978 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_80522FCC:
/* 80522FCC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80522FD0 7C 08 02 A6 */ mflr r0
/* 80522FD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80522FD8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80522FDC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80522FE0 41 82 00 10 */ beq lbl_80522FF0
/* 80522FE4 7C 80 07 35 */ extsh. r0, r4
/* 80522FE8 40 81 00 08 */ ble lbl_80522FF0
/* 80522FEC 4B DA BD 51 */ bl __dl__FPv
lbl_80522FF0:
/* 80522FF0 7F E3 FB 78 */ mr r3, r31
/* 80522FF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80522FF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80522FFC 7C 08 03 A6 */ mtlr r0
/* 80523000 38 21 00 10 */ addi r1, r1, 0x10
/* 80523004 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_8051BFBC:
/* 8051BFBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051BFC0 7C 08 02 A6 */ mflr r0
/* 8051BFC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051BFC8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051BFCC 93 C1 00 08 */ stw r30, 8(r1)
/* 8051BFD0 7C 7E 1B 79 */ or. r30, r3, r3
/* 8051BFD4 7C 9F 23 78 */ mr r31, r4
/* 8051BFD8 41 82 00 4C */ beq lbl_8051C024
/* 8051BFDC 3C 60 80 52 */ lis r3, __vt__15dGrass_packet_c@ha /* 0x805278A4@ha */
/* 8051BFE0 38 03 78 A4 */ addi r0, r3, __vt__15dGrass_packet_c@l /* 0x805278A4@l */
/* 8051BFE4 90 1E 00 00 */ stw r0, 0(r30)
/* 8051BFE8 38 7E 00 14 */ addi r3, r30, 0x14
/* 8051BFEC 3C 80 80 52 */ lis r4, __dt__13dGrass_data_cFv@ha /* 0x80520940@ha */
/* 8051BFF0 38 84 09 40 */ addi r4, r4, __dt__13dGrass_data_cFv@l /* 0x80520940@l */
/* 8051BFF4 38 A0 00 4C */ li r5, 0x4c
/* 8051BFF8 38 C0 05 DC */ li r6, 0x5dc
/* 8051BFFC 4B E4 5C ED */ bl __destroy_arr
/* 8051C000 28 1E 00 00 */ cmplwi r30, 0
/* 8051C004 41 82 00 10 */ beq lbl_8051C014
/* 8051C008 3C 60 80 3D */ lis r3, __vt__9J3DPacket@ha /* 0x803CD97C@ha */
/* 8051C00C 38 03 D9 7C */ addi r0, r3, __vt__9J3DPacket@l /* 0x803CD97C@l */
/* 8051C010 90 1E 00 00 */ stw r0, 0(r30)
lbl_8051C014:
/* 8051C014 7F E0 07 35 */ extsh. r0, r31
/* 8051C018 40 81 00 0C */ ble lbl_8051C024
/* 8051C01C 7F C3 F3 78 */ mr r3, r30
/* 8051C020 4B DB 2D 1D */ bl __dl__FPv
lbl_8051C024:
/* 8051C024 7F C3 F3 78 */ mr r3, r30
/* 8051C028 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051C02C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8051C030 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C034 7C 08 03 A6 */ mtlr r0
/* 8051C038 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C03C 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_8051C194:
/* 8051C194 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C198 7C 08 02 A6 */ mflr r0
/* 8051C19C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C1A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051C1A4 93 C1 00 08 */ stw r30, 8(r1)
/* 8051C1A8 7C 7E 1B 79 */ or. r30, r3, r3
/* 8051C1AC 7C 9F 23 78 */ mr r31, r4
/* 8051C1B0 41 82 00 4C */ beq lbl_8051C1FC
/* 8051C1B4 3C 60 80 52 */ lis r3, __vt__16dFlower_packet_c@ha /* 0x80527890@ha */
/* 8051C1B8 38 03 78 90 */ addi r0, r3, __vt__16dFlower_packet_c@l /* 0x80527890@l */
/* 8051C1BC 90 1E 00 00 */ stw r0, 0(r30)
/* 8051C1C0 38 7E 00 14 */ addi r3, r30, 0x14
/* 8051C1C4 3C 80 80 52 */ lis r4, __dt__14dFlower_data_cFv@ha /* 0x80522FCC@ha */
/* 8051C1C8 38 84 2F CC */ addi r4, r4, __dt__14dFlower_data_cFv@l /* 0x80522FCC@l */
/* 8051C1CC 38 A0 00 48 */ li r5, 0x48
/* 8051C1D0 38 C0 03 E8 */ li r6, 0x3e8
/* 8051C1D4 4B E4 5B 15 */ bl __destroy_arr
/* 8051C1D8 28 1E 00 00 */ cmplwi r30, 0
/* 8051C1DC 41 82 00 10 */ beq lbl_8051C1EC
/* 8051C1E0 3C 60 80 3D */ lis r3, __vt__9J3DPacket@ha /* 0x803CD97C@ha */
/* 8051C1E4 38 03 D9 7C */ addi r0, r3, __vt__9J3DPacket@l /* 0x803CD97C@l */
/* 8051C1E8 90 1E 00 00 */ stw r0, 0(r30)
lbl_8051C1EC:
/* 8051C1EC 7F E0 07 35 */ extsh. r0, r31
/* 8051C1F0 40 81 00 0C */ ble lbl_8051C1FC
/* 8051C1F4 7F C3 F3 78 */ mr r3, r30
/* 8051C1F8 4B DB 2B 45 */ bl __dl__FPv
lbl_8051C1FC:
/* 8051C1FC 7F C3 F3 78 */ mr r3, r30
/* 8051C200 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051C204 83 C1 00 08 */ lwz r30, 8(r1)
/* 8051C208 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C20C 7C 08 03 A6 */ mtlr r0
/* 8051C210 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C214 4E 80 00 20 */ blr

View File

@ -1,32 +0,0 @@
lbl_8051C0D4:
/* 8051C0D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C0D8 7C 08 02 A6 */ mflr r0
/* 8051C0DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C0E0 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C0E4 80 03 0D B4 */ lwz r0, m_flower__9daGrass_c@l(r3) /* 0x80450DB4@l */
/* 8051C0E8 28 00 00 00 */ cmplwi r0, 0
/* 8051C0EC 41 82 00 0C */ beq lbl_8051C0F8
/* 8051C0F0 38 60 00 01 */ li r3, 1
/* 8051C0F4 48 00 00 3C */ b lbl_8051C130
lbl_8051C0F8:
/* 8051C0F8 3C 60 00 01 */ lis r3, 0x0001 /* 0x00012A54@ha */
/* 8051C0FC 38 63 2A 54 */ addi r3, r3, 0x2A54 /* 0x00012A54@l */
/* 8051C100 4B DB 2B 4D */ bl __nw__FUl
/* 8051C104 7C 60 1B 79 */ or. r0, r3, r3
/* 8051C108 41 82 00 0C */ beq lbl_8051C114
/* 8051C10C 48 00 5B 59 */ bl __ct__16dFlower_packet_cFv
/* 8051C110 7C 60 1B 78 */ mr r0, r3
lbl_8051C114:
/* 8051C114 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C118 90 03 0D B4 */ stw r0, m_flower__9daGrass_c@l(r3) /* 0x80450DB4@l */
/* 8051C11C 28 00 00 00 */ cmplwi r0, 0
/* 8051C120 40 82 00 0C */ bne lbl_8051C12C
/* 8051C124 38 60 00 00 */ li r3, 0
/* 8051C128 48 00 00 08 */ b lbl_8051C130
lbl_8051C12C:
/* 8051C12C 38 60 00 01 */ li r3, 1
lbl_8051C130:
/* 8051C130 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C134 7C 08 03 A6 */ mtlr r0
/* 8051C138 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C13C 4E 80 00 20 */ blr

View File

@ -1,32 +0,0 @@
lbl_8051BEFC:
/* 8051BEFC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051BF00 7C 08 02 A6 */ mflr r0
/* 8051BF04 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051BF08 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051BF0C 80 03 0D B0 */ lwz r0, m_grass__9daGrass_c@l(r3) /* 0x80450DB0@l */
/* 8051BF10 28 00 00 00 */ cmplwi r0, 0
/* 8051BF14 41 82 00 0C */ beq lbl_8051BF20
/* 8051BF18 38 60 00 01 */ li r3, 1
/* 8051BF1C 48 00 00 3C */ b lbl_8051BF58
lbl_8051BF20:
/* 8051BF20 3C 60 00 02 */ lis r3, 0x0002 /* 0x0001D718@ha */
/* 8051BF24 38 63 D7 18 */ addi r3, r3, 0xD718 /* 0x0001D718@l */
/* 8051BF28 4B DB 2D 25 */ bl __nw__FUl
/* 8051BF2C 7C 60 1B 79 */ or. r0, r3, r3
/* 8051BF30 41 82 00 0C */ beq lbl_8051BF3C
/* 8051BF34 48 00 2F 59 */ bl __ct__15dGrass_packet_cFv
/* 8051BF38 7C 60 1B 78 */ mr r0, r3
lbl_8051BF3C:
/* 8051BF3C 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051BF40 90 03 0D B0 */ stw r0, m_grass__9daGrass_c@l(r3) /* 0x80450DB0@l */
/* 8051BF44 28 00 00 00 */ cmplwi r0, 0
/* 8051BF48 40 82 00 0C */ bne lbl_8051BF54
/* 8051BF4C 38 60 00 00 */ li r3, 0
/* 8051BF50 48 00 00 08 */ b lbl_8051BF58
lbl_8051BF54:
/* 8051BF54 38 60 00 01 */ li r3, 1
lbl_8051BF58:
/* 8051BF58 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051BF5C 7C 08 03 A6 */ mtlr r0
/* 8051BF60 38 21 00 10 */ addi r1, r1, 0x10
/* 8051BF64 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_8051D6CC:
/* 8051D6CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051D6D0 7C 08 02 A6 */ mflr r0
/* 8051D6D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051D6D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051D6DC 7C 7F 1B 78 */ mr r31, r3
/* 8051D6E0 3C 80 80 45 */ lis r4, m_myObj__9daGrass_c@ha /* 0x80450DAC@ha */
/* 8051D6E4 80 04 0D AC */ lwz r0, m_myObj__9daGrass_c@l(r4) /* 0x80450DAC@l */
/* 8051D6E8 7C 00 F8 40 */ cmplw r0, r31
/* 8051D6EC 40 82 00 1C */ bne lbl_8051D708
/* 8051D6F0 4B FF E8 79 */ bl deleteGrass__9daGrass_cFv
/* 8051D6F4 7F E3 FB 78 */ mr r3, r31
/* 8051D6F8 4B FF EA 49 */ bl deleteFlower__9daGrass_cFv
/* 8051D6FC 38 00 00 00 */ li r0, 0
/* 8051D700 3C 60 80 45 */ lis r3, m_myObj__9daGrass_c@ha /* 0x80450DAC@ha */
/* 8051D704 90 03 0D AC */ stw r0, m_myObj__9daGrass_c@l(r3) /* 0x80450DAC@l */
lbl_8051D708:
/* 8051D708 38 60 00 01 */ li r3, 1
/* 8051D70C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051D710 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051D714 7C 08 03 A6 */ mtlr r0
/* 8051D718 38 21 00 10 */ addi r1, r1, 0x10
/* 8051D71C 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_8051C2B0:
/* 8051C2B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C2B4 7C 08 02 A6 */ mflr r0
/* 8051C2B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C2BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051C2C0 7C 7F 1B 78 */ mr r31, r3
/* 8051C2C4 80 03 04 A0 */ lwz r0, 0x4a0(r3)
/* 8051C2C8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 8051C2CC 40 82 00 1C */ bne lbl_8051C2E8
/* 8051C2D0 28 1F 00 00 */ cmplwi r31, 0
/* 8051C2D4 41 82 00 08 */ beq lbl_8051C2DC
/* 8051C2D8 4B AF C8 8D */ bl __ct__10fopAc_ac_cFv
lbl_8051C2DC:
/* 8051C2DC 80 1F 04 A0 */ lwz r0, 0x4a0(r31)
/* 8051C2E0 60 00 00 08 */ ori r0, r0, 8
/* 8051C2E4 90 1F 04 A0 */ stw r0, 0x4a0(r31)
lbl_8051C2E8:
/* 8051C2E8 7F E3 FB 78 */ mr r3, r31
/* 8051C2EC 48 00 00 19 */ bl create__9daGrass_cFv
/* 8051C2F0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051C2F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C2F8 7C 08 03 A6 */ mtlr r0
/* 8051C2FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C300 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8051D77C:
/* 8051D77C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051D780 7C 08 02 A6 */ mflr r0
/* 8051D784 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051D788 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051D78C 7C 7F 1B 78 */ mr r31, r3
/* 8051D790 4B FF E8 E5 */ bl drawGrass__9daGrass_cFv
/* 8051D794 7F E3 FB 78 */ mr r3, r31
/* 8051D798 4B FF EA B5 */ bl drawFlower__9daGrass_cFv
/* 8051D79C 38 60 00 01 */ li r3, 1
/* 8051D7A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051D7A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051D7A8 7C 08 03 A6 */ mtlr r0
/* 8051D7AC 38 21 00 10 */ addi r1, r1, 0x10
/* 8051D7B0 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_8051D720:
/* 8051D720 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051D724 7C 08 02 A6 */ mflr r0
/* 8051D728 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051D72C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8051D730 7C 7F 1B 78 */ mr r31, r3
/* 8051D734 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8051D738 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8051D73C 38 63 4B 88 */ addi r3, r3, 0x4b88
/* 8051D740 4B B6 7F 51 */ bl Prepare__12dCcMassS_MngFv
/* 8051D744 7F E3 FB 78 */ mr r3, r31
/* 8051D748 4B FF E8 F9 */ bl executeGrass__9daGrass_cFv
/* 8051D74C 7F E3 FB 78 */ mr r3, r31
/* 8051D750 4B FF EA C9 */ bl executeFlower__9daGrass_cFv
/* 8051D754 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8051D758 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8051D75C 38 63 23 3C */ addi r3, r3, 0x233c
/* 8051D760 4B B6 9B AD */ bl MassClear__4dCcSFv
/* 8051D764 38 60 00 01 */ li r3, 1
/* 8051D768 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8051D76C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051D770 7C 08 03 A6 */ mtlr r0
/* 8051D774 38 21 00 10 */ addi r1, r1, 0x10
/* 8051D778 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_80520AD8:
/* 80520AD8 88 03 00 01 */ lbz r0, 1(r3)
/* 80520ADC 7C 00 07 74 */ extsb r0, r0
/* 80520AE0 2C 00 00 08 */ cmpwi r0, 8
/* 80520AE4 4D 80 00 20 */ bltlr
/* 80520AE8 38 C0 00 00 */ li r6, 0
/* 80520AEC 3C 80 80 45 */ lis r4, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 80520AF0 38 A4 0D B4 */ addi r5, r4, m_flower__9daGrass_c@l /* 0x80450DB4@l */
/* 80520AF4 80 85 00 00 */ lwz r4, 0(r5)
/* 80520AF8 3C 84 00 01 */ addis r4, r4, 1
/* 80520AFC 1C 00 00 38 */ mulli r0, r0, 0x38
/* 80520B00 7C 84 02 14 */ add r4, r4, r0
/* 80520B04 98 C4 19 54 */ stb r6, 0x1954(r4)
/* 80520B08 80 A5 00 00 */ lwz r5, 0(r5)
/* 80520B0C 88 03 00 01 */ lbz r0, 1(r3)
/* 80520B10 7C 00 07 74 */ extsb r0, r0
/* 80520B14 1C 80 00 38 */ mulli r4, r0, 0x38
/* 80520B18 3C 84 00 01 */ addis r4, r4, 1
/* 80520B1C 38 84 19 54 */ addi r4, r4, 0x1954
/* 80520B20 7C 85 22 14 */ add r4, r5, r4
/* 80520B24 A8 04 00 02 */ lha r0, 2(r4)
/* 80520B28 54 00 9F 7E */ rlwinm r0, r0, 0x13, 0x1d, 0x1f
/* 80520B2C 98 03 00 01 */ stb r0, 1(r3)
/* 80520B30 4E 80 00 20 */ blr

View File

@ -1,43 +0,0 @@
lbl_8051EDF0:
/* 8051EDF0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8051EDF4 7C 08 02 A6 */ mflr r0
/* 8051EDF8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8051EDFC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8051EE00 7C 7F 1B 78 */ mr r31, r3
/* 8051EE04 48 00 00 68 */ b lbl_8051EE6C
lbl_8051EE08:
/* 8051EE08 38 A0 00 00 */ li r5, 0
/* 8051EE0C 98 A3 00 00 */ stb r5, 0(r3)
/* 8051EE10 80 7F 00 00 */ lwz r3, 0(r31)
/* 8051EE14 88 03 00 02 */ lbz r0, 2(r3)
/* 8051EE18 7C 00 07 74 */ extsb r0, r0
/* 8051EE1C 2C 00 00 10 */ cmpwi r0, 0x10
/* 8051EE20 41 80 00 40 */ blt lbl_8051EE60
/* 8051EE24 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051EE28 80 83 0D B0 */ lwz r4, m_grass__9daGrass_c@l(r3) /* 0x80450DB0@l */
/* 8051EE2C 1C 60 00 38 */ mulli r3, r0, 0x38
/* 8051EE30 3C 63 00 02 */ addis r3, r3, 2
/* 8051EE34 38 63 BD 64 */ addi r3, r3, -17052
/* 8051EE38 7C A4 19 AE */ stbx r5, r4, r3
/* 8051EE3C 4B D4 8A 31 */ bl cM_rnd__Fv
/* 8051EE40 3C 60 80 52 */ lis r3, lit_4600@ha /* 0x80523098@ha */
/* 8051EE44 C0 03 30 98 */ lfs f0, lit_4600@l(r3) /* 0x80523098@l */
/* 8051EE48 EC 00 00 72 */ fmuls f0, f0, f1
/* 8051EE4C FC 00 00 1E */ fctiwz f0, f0
/* 8051EE50 D8 01 00 08 */ stfd f0, 8(r1)
/* 8051EE54 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8051EE58 80 7F 00 00 */ lwz r3, 0(r31)
/* 8051EE5C 98 03 00 02 */ stb r0, 2(r3)
lbl_8051EE60:
/* 8051EE60 80 7F 00 00 */ lwz r3, 0(r31)
/* 8051EE64 80 03 00 48 */ lwz r0, 0x48(r3)
/* 8051EE68 90 1F 00 00 */ stw r0, 0(r31)
lbl_8051EE6C:
/* 8051EE6C 80 7F 00 00 */ lwz r3, 0(r31)
/* 8051EE70 28 03 00 00 */ cmplwi r3, 0
/* 8051EE74 40 82 FF 94 */ bne lbl_8051EE08
/* 8051EE78 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8051EE7C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8051EE80 7C 08 03 A6 */ mtlr r0
/* 8051EE84 38 21 00 20 */ addi r1, r1, 0x20
/* 8051EE88 4E 80 00 20 */ blr

View File

@ -1,26 +0,0 @@
lbl_80521C08:
/* 80521C08 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80521C0C 7C 08 02 A6 */ mflr r0
/* 80521C10 90 01 00 14 */ stw r0, 0x14(r1)
/* 80521C14 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80521C18 93 C1 00 08 */ stw r30, 8(r1)
/* 80521C1C 7C 7E 1B 78 */ mr r30, r3
/* 80521C20 3B E0 00 00 */ li r31, 0
/* 80521C24 48 00 00 1C */ b lbl_80521C40
lbl_80521C28:
/* 80521C28 4B FF EE B1 */ bl deleteAnm__14dFlower_data_cFv
/* 80521C2C 80 7E 00 00 */ lwz r3, 0(r30)
/* 80521C30 9B E3 00 00 */ stb r31, 0(r3)
/* 80521C34 80 7E 00 00 */ lwz r3, 0(r30)
/* 80521C38 80 03 00 44 */ lwz r0, 0x44(r3)
/* 80521C3C 90 1E 00 00 */ stw r0, 0(r30)
lbl_80521C40:
/* 80521C40 80 7E 00 00 */ lwz r3, 0(r30)
/* 80521C44 28 03 00 00 */ cmplwi r3, 0
/* 80521C48 40 82 FF E0 */ bne lbl_80521C28
/* 80521C4C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80521C50 83 C1 00 08 */ lwz r30, 8(r1)
/* 80521C54 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80521C58 7C 08 03 A6 */ mtlr r0
/* 80521C5C 38 21 00 10 */ addi r1, r1, 0x10
/* 80521C60 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_8051C140:
/* 8051C140 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C144 7C 08 02 A6 */ mflr r0
/* 8051C148 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C14C 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C150 38 63 0D B4 */ addi r3, r3, m_flower__9daGrass_c@l /* 0x80450DB4@l */
/* 8051C154 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C158 28 03 00 00 */ cmplwi r3, 0
/* 8051C15C 41 82 00 28 */ beq lbl_8051C184
/* 8051C160 41 82 00 18 */ beq lbl_8051C178
/* 8051C164 38 80 00 01 */ li r4, 1
/* 8051C168 81 83 00 00 */ lwz r12, 0(r3)
/* 8051C16C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8051C170 7D 89 03 A6 */ mtctr r12
/* 8051C174 4E 80 04 21 */ bctrl
lbl_8051C178:
/* 8051C178 38 00 00 00 */ li r0, 0
/* 8051C17C 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C180 90 03 0D B4 */ stw r0, m_flower__9daGrass_c@l(r3) /* 0x80450DB4@l */
lbl_8051C184:
/* 8051C184 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C188 7C 08 03 A6 */ mtlr r0
/* 8051C18C 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C190 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_8051BF68:
/* 8051BF68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051BF6C 7C 08 02 A6 */ mflr r0
/* 8051BF70 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051BF74 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051BF78 38 63 0D B0 */ addi r3, r3, m_grass__9daGrass_c@l /* 0x80450DB0@l */
/* 8051BF7C 80 63 00 00 */ lwz r3, 0(r3)
/* 8051BF80 28 03 00 00 */ cmplwi r3, 0
/* 8051BF84 41 82 00 28 */ beq lbl_8051BFAC
/* 8051BF88 41 82 00 18 */ beq lbl_8051BFA0
/* 8051BF8C 38 80 00 01 */ li r4, 1
/* 8051BF90 81 83 00 00 */ lwz r12, 0(r3)
/* 8051BF94 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8051BF98 7D 89 03 A6 */ mtctr r12
/* 8051BF9C 4E 80 04 21 */ bctrl
lbl_8051BFA0:
/* 8051BFA0 38 00 00 00 */ li r0, 0
/* 8051BFA4 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051BFA8 90 03 0D B0 */ stw r0, m_grass__9daGrass_c@l(r3) /* 0x80450DB0@l */
lbl_8051BFAC:
/* 8051BFAC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051BFB0 7C 08 03 A6 */ mtlr r0
/* 8051BFB4 38 21 00 10 */ addi r1, r1, 0x10
/* 8051BFB8 4E 80 00 20 */ blr

View File

@ -1,14 +0,0 @@
lbl_80520864:
/* 80520864 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80520868 7C 08 02 A6 */ mflr r0
/* 8052086C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80520870 7C 60 1B 78 */ mr r0, r3
/* 80520874 54 83 10 3A */ slwi r3, r4, 2
/* 80520878 3C 63 00 02 */ addis r3, r3, 2
/* 8052087C 38 63 D5 E4 */ addi r3, r3, -10780
/* 80520880 7C 60 1A 14 */ add r3, r0, r3
/* 80520884 4B FF E5 6D */ bl deleteData__13dGrass_room_cFv
/* 80520888 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8052088C 7C 08 03 A6 */ mtlr r0
/* 80520890 38 21 00 10 */ addi r1, r1, 0x10
/* 80520894 4E 80 00 20 */ blr

View File

@ -1,14 +0,0 @@
lbl_80522F0C:
/* 80522F0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80522F10 7C 08 02 A6 */ mflr r0
/* 80522F14 90 01 00 14 */ stw r0, 0x14(r1)
/* 80522F18 7C 60 1B 78 */ mr r0, r3
/* 80522F1C 54 83 10 3A */ slwi r3, r4, 2
/* 80522F20 3C 63 00 01 */ addis r3, r3, 1
/* 80522F24 38 63 29 14 */ addi r3, r3, 0x2914
/* 80522F28 7C 60 1A 14 */ add r3, r0, r3
/* 80522F2C 4B FF EC DD */ bl deleteData__14dFlower_room_cFv
/* 80522F30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80522F34 7C 08 03 A6 */ mtlr r0
/* 80522F38 38 21 00 10 */ addi r1, r1, 0x10
/* 80522F3C 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8051C24C:
/* 8051C24C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C250 7C 08 02 A6 */ mflr r0
/* 8051C254 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C258 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C25C 38 63 0D B4 */ addi r3, r3, m_flower__9daGrass_c@l /* 0x80450DB4@l */
/* 8051C260 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C264 28 03 00 00 */ cmplwi r3, 0
/* 8051C268 41 82 00 08 */ beq lbl_8051C270
/* 8051C26C 48 00 67 F9 */ bl update__16dFlower_packet_cFv
lbl_8051C270:
/* 8051C270 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C274 7C 08 03 A6 */ mtlr r0
/* 8051C278 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C27C 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8051C074:
/* 8051C074 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C078 7C 08 02 A6 */ mflr r0
/* 8051C07C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C080 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051C084 38 63 0D B0 */ addi r3, r3, m_grass__9daGrass_c@l /* 0x80450DB0@l */
/* 8051C088 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C08C 28 03 00 00 */ cmplwi r3, 0
/* 8051C090 41 82 00 08 */ beq lbl_8051C098
/* 8051C094 48 00 3F 9D */ bl update__15dGrass_packet_cFv
lbl_8051C098:
/* 8051C098 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C09C 7C 08 03 A6 */ mtlr r0
/* 8051C0A0 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C0A4 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8051C218:
/* 8051C218 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C21C 7C 08 02 A6 */ mflr r0
/* 8051C220 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C224 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C228 38 63 0D B4 */ addi r3, r3, m_flower__9daGrass_c@l /* 0x80450DB4@l */
/* 8051C22C 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C230 28 03 00 00 */ cmplwi r3, 0
/* 8051C234 41 82 00 08 */ beq lbl_8051C23C
/* 8051C238 48 00 65 3D */ bl calc__16dFlower_packet_cFv
lbl_8051C23C:
/* 8051C23C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C240 7C 08 03 A6 */ mtlr r0
/* 8051C244 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C248 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8051C040:
/* 8051C040 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C044 7C 08 02 A6 */ mflr r0
/* 8051C048 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C04C 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051C050 38 63 0D B0 */ addi r3, r3, m_grass__9daGrass_c@l /* 0x80450DB0@l */
/* 8051C054 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C058 28 03 00 00 */ cmplwi r3, 0
/* 8051C05C 41 82 00 08 */ beq lbl_8051C064
/* 8051C060 48 00 3A 5D */ bl calc__15dGrass_packet_cFv
lbl_8051C064:
/* 8051C064 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C068 7C 08 03 A6 */ mtlr r0
/* 8051C06C 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C070 4E 80 00 20 */ blr

View File

@ -1,22 +0,0 @@
lbl_80520898:
/* 80520898 3C 83 00 02 */ addis r4, r3, 2
/* 8052089C 38 60 00 10 */ li r3, 0x10
/* 805208A0 38 00 00 60 */ li r0, 0x60
/* 805208A4 7C 09 03 A6 */ mtctr r0
/* 805208A8 38 84 C0 E4 */ addi r4, r4, -16156
lbl_805208AC:
/* 805208AC 88 04 00 00 */ lbz r0, 0(r4)
/* 805208B0 28 00 00 00 */ cmplwi r0, 0
/* 805208B4 40 82 00 1C */ bne lbl_805208D0
/* 805208B8 38 00 00 01 */ li r0, 1
/* 805208BC 98 04 00 00 */ stb r0, 0(r4)
/* 805208C0 38 00 00 00 */ li r0, 0
/* 805208C4 B0 04 00 02 */ sth r0, 2(r4)
/* 805208C8 B0 04 00 04 */ sth r0, 4(r4)
/* 805208CC 4E 80 00 20 */ blr
lbl_805208D0:
/* 805208D0 38 84 00 38 */ addi r4, r4, 0x38
/* 805208D4 38 63 00 01 */ addi r3, r3, 1
/* 805208D8 42 00 FF D4 */ bdnz lbl_805208AC
/* 805208DC 38 60 FF FF */ li r3, -1
/* 805208E0 4E 80 00 20 */ blr

View File

@ -1,22 +0,0 @@
lbl_80522F40:
/* 80522F40 3C 83 00 01 */ addis r4, r3, 1
/* 80522F44 38 60 00 08 */ li r3, 8
/* 80522F48 38 00 00 40 */ li r0, 0x40
/* 80522F4C 7C 09 03 A6 */ mtctr r0
/* 80522F50 38 84 1B 14 */ addi r4, r4, 0x1b14
lbl_80522F54:
/* 80522F54 88 04 00 00 */ lbz r0, 0(r4)
/* 80522F58 28 00 00 00 */ cmplwi r0, 0
/* 80522F5C 40 82 00 1C */ bne lbl_80522F78
/* 80522F60 38 00 00 01 */ li r0, 1
/* 80522F64 98 04 00 00 */ stb r0, 0(r4)
/* 80522F68 38 00 00 00 */ li r0, 0
/* 80522F6C B0 04 00 02 */ sth r0, 2(r4)
/* 80522F70 B0 04 00 04 */ sth r0, 4(r4)
/* 80522F74 4E 80 00 20 */ blr
lbl_80522F78:
/* 80522F78 38 84 00 38 */ addi r4, r4, 0x38
/* 80522F7C 38 63 00 01 */ addi r3, r3, 1
/* 80522F80 42 00 FF D4 */ bdnz lbl_80522F54
/* 80522F84 38 60 FF FF */ li r3, -1
/* 80522F88 4E 80 00 20 */ blr

View File

@ -1,5 +0,0 @@
lbl_8051EDE0:
/* 8051EDE0 80 03 00 00 */ lwz r0, 0(r3)
/* 8051EDE4 90 04 00 48 */ stw r0, 0x48(r4)
/* 8051EDE8 90 83 00 00 */ stw r4, 0(r3)
/* 8051EDEC 4E 80 00 20 */ blr

View File

@ -1,5 +0,0 @@
lbl_80521BF8:
/* 80521BF8 80 03 00 00 */ lwz r0, 0(r3)
/* 80521BFC 90 04 00 44 */ stw r0, 0x44(r4)
/* 80521C00 90 83 00 00 */ stw r4, 0(r3)
/* 80521C04 4E 80 00 20 */ blr

View File

@ -1,69 +0,0 @@
lbl_80520770:
/* 80520770 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80520774 7C 08 02 A6 */ mflr r0
/* 80520778 90 01 00 24 */ stw r0, 0x24(r1)
/* 8052077C 39 61 00 20 */ addi r11, r1, 0x20
/* 80520780 4B E4 1A 5D */ bl _savegpr_29
/* 80520784 7C 9D 23 78 */ mr r29, r4
/* 80520788 7C BE 2B 78 */ mr r30, r5
/* 8052078C 7C CC 33 78 */ mr r12, r6
/* 80520790 7C EB 3B 78 */ mr r11, r7
/* 80520794 7D 0A 43 78 */ mr r10, r8
/* 80520798 A0 C3 00 10 */ lhz r6, 0x10(r3)
/* 8052079C 1C 86 00 4C */ mulli r4, r6, 0x4c
/* 805207A0 3B E4 00 14 */ addi r31, r4, 0x14
/* 805207A4 7F E3 FA 14 */ add r31, r3, r31
/* 805207A8 7C C5 33 78 */ mr r5, r6
/* 805207AC 20 06 05 DC */ subfic r0, r6, 0x5dc
/* 805207B0 7C 09 03 A6 */ mtctr r0
/* 805207B4 2C 06 05 DC */ cmpwi r6, 0x5dc
/* 805207B8 40 80 00 40 */ bge lbl_805207F8
lbl_805207BC:
/* 805207BC 88 1F 00 00 */ lbz r0, 0(r31)
/* 805207C0 28 00 00 00 */ cmplwi r0, 0
/* 805207C4 40 82 00 28 */ bne lbl_805207EC
/* 805207C8 91 21 00 08 */ stw r9, 8(r1)
/* 805207CC 7F E4 FB 78 */ mr r4, r31
/* 805207D0 7F A6 EB 78 */ mr r6, r29
/* 805207D4 7F C7 F3 78 */ mr r7, r30
/* 805207D8 7D 88 63 78 */ mr r8, r12
/* 805207DC 7D 69 5B 78 */ mr r9, r11
/* 805207E0 4B FF FE 9D */ bl setData__15dGrass_packet_cFP13dGrass_data_ciR4cXyziUcUcsUc
/* 805207E4 7F E3 FB 78 */ mr r3, r31
/* 805207E8 48 00 00 64 */ b lbl_8052084C
lbl_805207EC:
/* 805207EC 3B FF 00 4C */ addi r31, r31, 0x4c
/* 805207F0 38 A5 00 01 */ addi r5, r5, 1
/* 805207F4 42 00 FF C8 */ bdnz lbl_805207BC
lbl_805207F8:
/* 805207F8 3B E3 00 14 */ addi r31, r3, 0x14
/* 805207FC 38 A0 00 00 */ li r5, 0
/* 80520800 7C C9 03 A6 */ mtctr r6
/* 80520804 2C 06 00 00 */ cmpwi r6, 0
/* 80520808 40 81 00 40 */ ble lbl_80520848
lbl_8052080C:
/* 8052080C 88 1F 00 00 */ lbz r0, 0(r31)
/* 80520810 28 00 00 00 */ cmplwi r0, 0
/* 80520814 40 82 00 28 */ bne lbl_8052083C
/* 80520818 91 21 00 08 */ stw r9, 8(r1)
/* 8052081C 7F E4 FB 78 */ mr r4, r31
/* 80520820 7F A6 EB 78 */ mr r6, r29
/* 80520824 7F C7 F3 78 */ mr r7, r30
/* 80520828 7D 88 63 78 */ mr r8, r12
/* 8052082C 7D 69 5B 78 */ mr r9, r11
/* 80520830 4B FF FE 4D */ bl setData__15dGrass_packet_cFP13dGrass_data_ciR4cXyziUcUcsUc
/* 80520834 7F E3 FB 78 */ mr r3, r31
/* 80520838 48 00 00 14 */ b lbl_8052084C
lbl_8052083C:
/* 8052083C 3B FF 00 4C */ addi r31, r31, 0x4c
/* 80520840 38 A5 00 01 */ addi r5, r5, 1
/* 80520844 42 00 FF C8 */ bdnz lbl_8052080C
lbl_80520848:
/* 80520848 38 60 00 00 */ li r3, 0
lbl_8052084C:
/* 8052084C 39 61 00 20 */ addi r11, r1, 0x20
/* 80520850 4B E4 19 D9 */ bl _restgpr_29
/* 80520854 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80520858 7C 08 03 A6 */ mtlr r0
/* 8052085C 38 21 00 20 */ addi r1, r1, 0x20
/* 80520860 4E 80 00 20 */ blr

View File

@ -1,65 +0,0 @@
lbl_80522E28:
/* 80522E28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80522E2C 7C 08 02 A6 */ mflr r0
/* 80522E30 90 01 00 14 */ stw r0, 0x14(r1)
/* 80522E34 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80522E38 93 C1 00 08 */ stw r30, 8(r1)
/* 80522E3C 7C 9E 23 78 */ mr r30, r4
/* 80522E40 7C AC 2B 78 */ mr r12, r5
/* 80522E44 7C CB 33 78 */ mr r11, r6
/* 80522E48 7C E9 3B 78 */ mr r9, r7
/* 80522E4C 7D 0A 43 78 */ mr r10, r8
/* 80522E50 A0 C3 00 10 */ lhz r6, 0x10(r3)
/* 80522E54 1C 86 00 48 */ mulli r4, r6, 0x48
/* 80522E58 3B E4 00 14 */ addi r31, r4, 0x14
/* 80522E5C 7F E3 FA 14 */ add r31, r3, r31
/* 80522E60 7C C5 33 78 */ mr r5, r6
/* 80522E64 20 06 03 E8 */ subfic r0, r6, 0x3e8
/* 80522E68 7C 09 03 A6 */ mtctr r0
/* 80522E6C 2C 06 03 E8 */ cmpwi r6, 0x3e8
/* 80522E70 40 80 00 38 */ bge lbl_80522EA8
lbl_80522E74:
/* 80522E74 88 1F 00 00 */ lbz r0, 0(r31)
/* 80522E78 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80522E7C 40 82 00 20 */ bne lbl_80522E9C
/* 80522E80 7F E4 FB 78 */ mr r4, r31
/* 80522E84 7F C6 F3 78 */ mr r6, r30
/* 80522E88 7D 87 63 78 */ mr r7, r12
/* 80522E8C 7D 68 5B 78 */ mr r8, r11
/* 80522E90 4B FF FE 2D */ bl setData__16dFlower_packet_cFP14dFlower_data_ciScR4cXyziScs
/* 80522E94 7F E3 FB 78 */ mr r3, r31
/* 80522E98 48 00 00 5C */ b lbl_80522EF4
lbl_80522E9C:
/* 80522E9C 3B FF 00 48 */ addi r31, r31, 0x48
/* 80522EA0 38 A5 00 01 */ addi r5, r5, 1
/* 80522EA4 42 00 FF D0 */ bdnz lbl_80522E74
lbl_80522EA8:
/* 80522EA8 3B E3 00 14 */ addi r31, r3, 0x14
/* 80522EAC 38 A0 00 00 */ li r5, 0
/* 80522EB0 7C C9 03 A6 */ mtctr r6
/* 80522EB4 2C 06 00 00 */ cmpwi r6, 0
/* 80522EB8 40 81 00 38 */ ble lbl_80522EF0
lbl_80522EBC:
/* 80522EBC 88 1F 00 00 */ lbz r0, 0(r31)
/* 80522EC0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80522EC4 40 82 00 20 */ bne lbl_80522EE4
/* 80522EC8 7F E4 FB 78 */ mr r4, r31
/* 80522ECC 7F C6 F3 78 */ mr r6, r30
/* 80522ED0 7D 87 63 78 */ mr r7, r12
/* 80522ED4 7D 68 5B 78 */ mr r8, r11
/* 80522ED8 4B FF FD E5 */ bl setData__16dFlower_packet_cFP14dFlower_data_ciScR4cXyziScs
/* 80522EDC 7F E3 FB 78 */ mr r3, r31
/* 80522EE0 48 00 00 14 */ b lbl_80522EF4
lbl_80522EE4:
/* 80522EE4 3B FF 00 48 */ addi r31, r31, 0x48
/* 80522EE8 38 A5 00 01 */ addi r5, r5, 1
/* 80522EEC 42 00 FF D0 */ bdnz lbl_80522EBC
lbl_80522EF0:
/* 80522EF0 38 60 00 00 */ li r3, 0
lbl_80522EF4:
/* 80522EF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80522EF8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80522EFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80522F00 7C 08 03 A6 */ mtlr r0
/* 80522F04 38 21 00 10 */ addi r1, r1, 0x10
/* 80522F08 4E 80 00 20 */ blr

View File

@ -1,12 +0,0 @@
lbl_8051C280:
/* 8051C280 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C284 7C 08 02 A6 */ mflr r0
/* 8051C288 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C28C 3C 60 80 45 */ lis r3, m_flower__9daGrass_c@ha /* 0x80450DB4@ha */
/* 8051C290 38 63 0D B4 */ addi r3, r3, m_flower__9daGrass_c@l /* 0x80450DB4@l */
/* 8051C294 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C298 48 00 6B 91 */ bl newData__16dFlower_packet_cFScR4cXyziScs
/* 8051C29C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C2A0 7C 08 03 A6 */ mtlr r0
/* 8051C2A4 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C2A8 4E 80 00 20 */ blr

View File

@ -1,12 +0,0 @@
lbl_8051C0A8:
/* 8051C0A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8051C0AC 7C 08 02 A6 */ mflr r0
/* 8051C0B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8051C0B4 3C 60 80 45 */ lis r3, m_grass__9daGrass_c@ha /* 0x80450DB0@ha */
/* 8051C0B8 38 63 0D B0 */ addi r3, r3, m_grass__9daGrass_c@l /* 0x80450DB0@l */
/* 8051C0BC 80 63 00 00 */ lwz r3, 0(r3)
/* 8051C0C0 48 00 46 B1 */ bl newData__15dGrass_packet_cFR4cXyziUcUcsUc
/* 8051C0C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8051C0C8 7C 08 03 A6 */ mtlr r0
/* 8051C0CC 38 21 00 10 */ addi r1, r1, 0x10
/* 8051C0D0 4E 80 00 20 */ blr

View File

@ -1,11 +0,0 @@
lbl_805208E4:
/* 805208E4 1C 84 00 38 */ mulli r4, r4, 0x38
/* 805208E8 3C 84 00 02 */ addis r4, r4, 2
/* 805208EC 38 84 BD 64 */ addi r4, r4, -17052
/* 805208F0 7C 83 22 14 */ add r4, r3, r4
/* 805208F4 38 00 00 01 */ li r0, 1
/* 805208F8 98 04 00 00 */ stb r0, 0(r4)
/* 805208FC 38 00 00 00 */ li r0, 0
/* 80520900 B0 04 00 02 */ sth r0, 2(r4)
/* 80520904 B0 04 00 04 */ sth r0, 4(r4)
/* 80520908 4E 80 00 20 */ blr

View File

@ -1,11 +0,0 @@
lbl_80522F8C:
/* 80522F8C 1C 84 00 38 */ mulli r4, r4, 0x38
/* 80522F90 3C 84 00 01 */ addis r4, r4, 1
/* 80522F94 38 84 19 54 */ addi r4, r4, 0x1954
/* 80522F98 7C 83 22 14 */ add r4, r3, r4
/* 80522F9C 38 00 00 01 */ li r0, 1
/* 80522FA0 98 04 00 00 */ stb r0, 0(r4)
/* 80522FA4 B0 A4 00 02 */ sth r5, 2(r4)
/* 80522FA8 38 00 00 00 */ li r0, 0
/* 80522FAC B0 04 00 04 */ sth r0, 4(r4)
/* 80522FB0 4E 80 00 20 */ blr

View File

@ -1,64 +0,0 @@
lbl_8052067C:
/* 8052067C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80520680 7C 08 02 A6 */ mflr r0
/* 80520684 90 01 00 54 */ stw r0, 0x54(r1)
/* 80520688 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8052068C F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 80520690 39 61 00 40 */ addi r11, r1, 0x40
/* 80520694 4B E4 1B 31 */ bl _savegpr_23
/* 80520698 7C 77 1B 78 */ mr r23, r3
/* 8052069C 7C 98 23 78 */ mr r24, r4
/* 805206A0 7C B9 2B 78 */ mr r25, r5
/* 805206A4 7C DA 33 78 */ mr r26, r6
/* 805206A8 7C FB 3B 78 */ mr r27, r7
/* 805206AC 7D 1C 43 78 */ mr r28, r8
/* 805206B0 7D 3D 4B 78 */ mr r29, r9
/* 805206B4 7D 5E 53 78 */ mr r30, r10
/* 805206B8 8B E1 00 5B */ lbz r31, 0x5b(r1)
/* 805206BC 4B AF DE 9D */ bl fopOvlpM_IsPeek__Fv
/* 805206C0 2C 03 00 00 */ cmpwi r3, 0
/* 805206C4 41 82 00 1C */ beq lbl_805206E0
/* 805206C8 7F 43 D3 78 */ mr r3, r26
/* 805206CC 4B FF F8 BD */ bl checkGroundY__FR4cXyz
/* 805206D0 FF E0 08 90 */ fmr f31, f1
/* 805206D4 38 00 00 02 */ li r0, 2
/* 805206D8 98 18 00 00 */ stb r0, 0(r24)
/* 805206DC 48 00 00 10 */ b lbl_805206EC
lbl_805206E0:
/* 805206E0 C3 FA 00 04 */ lfs f31, 4(r26)
/* 805206E4 38 00 00 01 */ li r0, 1
/* 805206E8 98 18 00 00 */ stb r0, 0(r24)
lbl_805206EC:
/* 805206EC 38 00 00 02 */ li r0, 2
/* 805206F0 98 18 00 01 */ stb r0, 1(r24)
/* 805206F4 3C 60 80 52 */ lis r3, lit_4600@ha /* 0x80523098@ha */
/* 805206F8 C0 23 30 98 */ lfs f1, lit_4600@l(r3) /* 0x80523098@l */
/* 805206FC 4B D4 72 59 */ bl cM_rndF__Ff
/* 80520700 FC 00 08 1E */ fctiwz f0, f1
/* 80520704 D8 01 00 08 */ stfd f0, 8(r1)
/* 80520708 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8052070C 98 18 00 02 */ stb r0, 2(r24)
/* 80520710 C0 3A 00 08 */ lfs f1, 8(r26)
/* 80520714 C0 1A 00 00 */ lfs f0, 0(r26)
/* 80520718 D0 18 00 0C */ stfs f0, 0xc(r24)
/* 8052071C D3 F8 00 10 */ stfs f31, 0x10(r24)
/* 80520720 D0 38 00 14 */ stfs f1, 0x14(r24)
/* 80520724 9B 98 00 03 */ stb r28, 3(r24)
/* 80520728 9B B8 00 04 */ stb r29, 4(r24)
/* 8052072C B3 D8 00 08 */ sth r30, 8(r24)
/* 80520730 9B F8 00 05 */ stb r31, 5(r24)
/* 80520734 57 63 10 3A */ slwi r3, r27, 2
/* 80520738 3C 63 00 02 */ addis r3, r3, 2
/* 8052073C 38 63 D5 E4 */ addi r3, r3, -10780
/* 80520740 7C 77 1A 14 */ add r3, r23, r3
/* 80520744 7F 04 C3 78 */ mr r4, r24
/* 80520748 4B FF E6 99 */ bl newData__13dGrass_room_cFP13dGrass_data_c
/* 8052074C B3 37 00 10 */ sth r25, 0x10(r23)
/* 80520750 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 80520754 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80520758 39 61 00 40 */ addi r11, r1, 0x40
/* 8052075C 4B E4 1A B5 */ bl _restgpr_23
/* 80520760 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80520764 7C 08 03 A6 */ mtlr r0
/* 80520768 38 21 00 50 */ addi r1, r1, 0x50
/* 8052076C 4E 80 00 20 */ blr

View File

@ -1,96 +0,0 @@
lbl_80522CBC:
/* 80522CBC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80522CC0 7C 08 02 A6 */ mflr r0
/* 80522CC4 90 01 00 54 */ stw r0, 0x54(r1)
/* 80522CC8 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80522CCC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 80522CD0 39 61 00 40 */ addi r11, r1, 0x40
/* 80522CD4 4B E3 F4 F1 */ bl _savegpr_23
/* 80522CD8 7C 7B 1B 78 */ mr r27, r3
/* 80522CDC 7C 9C 23 78 */ mr r28, r4
/* 80522CE0 7C BD 2B 78 */ mr r29, r5
/* 80522CE4 7C D7 33 78 */ mr r23, r6
/* 80522CE8 7C F8 3B 78 */ mr r24, r7
/* 80522CEC 7D 1E 43 78 */ mr r30, r8
/* 80522CF0 7D 39 4B 78 */ mr r25, r9
/* 80522CF4 7D 5A 53 78 */ mr r26, r10
/* 80522CF8 3C 60 80 52 */ lis r3, cNullVec__6Z2Calc@ha /* 0x805231D8@ha */
/* 80522CFC 3B E3 31 D8 */ addi r31, r3, cNullVec__6Z2Calc@l /* 0x805231D8@l */
/* 80522D00 4B AF B8 59 */ bl fopOvlpM_IsPeek__Fv
/* 80522D04 2C 03 00 00 */ cmpwi r3, 0
/* 80522D08 41 82 00 1C */ beq lbl_80522D24
/* 80522D0C 7F 03 C3 78 */ mr r3, r24
/* 80522D10 4B FF FC 8D */ bl flowerCheckGroundY__FR4cXyz
/* 80522D14 FF E0 08 90 */ fmr f31, f1
/* 80522D18 38 00 00 06 */ li r0, 6
/* 80522D1C 98 1C 00 00 */ stb r0, 0(r28)
/* 80522D20 48 00 00 10 */ b lbl_80522D30
lbl_80522D24:
/* 80522D24 C3 F8 00 04 */ lfs f31, 4(r24)
/* 80522D28 38 00 00 26 */ li r0, 0x26
/* 80522D2C 98 1C 00 00 */ stb r0, 0(r28)
lbl_80522D30:
/* 80522D30 7E E0 07 74 */ extsb r0, r23
/* 80522D34 2C 00 00 02 */ cmpwi r0, 2
/* 80522D38 40 82 00 10 */ bne lbl_80522D48
/* 80522D3C 88 1C 00 00 */ lbz r0, 0(r28)
/* 80522D40 60 00 00 40 */ ori r0, r0, 0x40
/* 80522D44 98 1C 00 00 */ stb r0, 0(r28)
lbl_80522D48:
/* 80522D48 3C 60 80 52 */ lis r3, lit_6262@ha /* 0x805231A8@ha */
/* 80522D4C C0 23 31 A8 */ lfs f1, lit_6262@l(r3) /* 0x805231A8@l */
/* 80522D50 4B D4 4C 05 */ bl cM_rndF__Ff
/* 80522D54 FC 00 08 1E */ fctiwz f0, f1
/* 80522D58 D8 01 00 08 */ stfd f0, 8(r1)
/* 80522D5C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80522D60 98 1C 00 01 */ stb r0, 1(r28)
/* 80522D64 C0 38 00 08 */ lfs f1, 8(r24)
/* 80522D68 C0 18 00 00 */ lfs f0, 0(r24)
/* 80522D6C D0 1C 00 08 */ stfs f0, 8(r28)
/* 80522D70 D3 FC 00 0C */ stfs f31, 0xc(r28)
/* 80522D74 D0 3C 00 10 */ stfs f1, 0x10(r28)
/* 80522D78 9B 3C 00 02 */ stb r25, 2(r28)
/* 80522D7C 38 00 00 00 */ li r0, 0
/* 80522D80 98 1C 00 03 */ stb r0, 3(r28)
/* 80522D84 B3 5C 00 04 */ sth r26, 4(r28)
/* 80522D88 3C 9B 00 01 */ addis r4, r27, 1
/* 80522D8C 57 C5 10 3A */ slwi r5, r30, 2
/* 80522D90 7C 64 2A 14 */ add r3, r4, r5
/* 80522D94 80 03 29 14 */ lwz r0, 0x2914(r3)
/* 80522D98 28 00 00 00 */ cmplwi r0, 0
/* 80522D9C 40 82 00 54 */ bne lbl_80522DF0
/* 80522DA0 38 1F 3A 40 */ addi r0, r31, 0x3a40
/* 80522DA4 90 04 2A 28 */ stw r0, 0x2a28(r4)
/* 80522DA8 38 1F 40 28 */ addi r0, r31, 0x4028
/* 80522DAC 90 04 2A 2C */ stw r0, 0x2a2c(r4)
/* 80522DB0 38 1F 40 30 */ addi r0, r31, 0x4030
/* 80522DB4 90 04 2A 30 */ stw r0, 0x2a30(r4)
/* 80522DB8 38 1F 44 C0 */ addi r0, r31, 0x44c0
/* 80522DBC 90 04 2A 34 */ stw r0, 0x2a34(r4)
/* 80522DC0 38 60 00 80 */ li r3, 0x80
/* 80522DC4 90 64 2A 38 */ stw r3, 0x2a38(r4)
/* 80522DC8 38 1F 45 60 */ addi r0, r31, 0x4560
/* 80522DCC 90 04 2A 3C */ stw r0, 0x2a3c(r4)
/* 80522DD0 90 64 2A 40 */ stw r3, 0x2a40(r4)
/* 80522DD4 38 1F 41 60 */ addi r0, r31, 0x4160
/* 80522DD8 90 04 2A 44 */ stw r0, 0x2a44(r4)
/* 80522DDC 38 60 01 20 */ li r3, 0x120
/* 80522DE0 90 64 2A 48 */ stw r3, 0x2a48(r4)
/* 80522DE4 38 1F 43 80 */ addi r0, r31, 0x4380
/* 80522DE8 90 04 2A 4C */ stw r0, 0x2a4c(r4)
/* 80522DEC 90 64 2A 50 */ stw r3, 0x2a50(r4)
lbl_80522DF0:
/* 80522DF0 3C 65 00 01 */ addis r3, r5, 1
/* 80522DF4 38 63 29 14 */ addi r3, r3, 0x2914
/* 80522DF8 7C 7B 1A 14 */ add r3, r27, r3
/* 80522DFC 7F 84 E3 78 */ mr r4, r28
/* 80522E00 4B FF ED F9 */ bl newData__14dFlower_room_cFP14dFlower_data_c
/* 80522E04 B3 BB 00 10 */ sth r29, 0x10(r27)
/* 80522E08 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 80522E0C CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80522E10 39 61 00 40 */ addi r11, r1, 0x40
/* 80522E14 4B E3 F3 FD */ bl _restgpr_23
/* 80522E18 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80522E1C 7C 08 03 A6 */ mtlr r0
/* 80522E20 38 21 00 50 */ addi r1, r1, 0x50
/* 80522E24 4E 80 00 20 */ blr

View File

@ -1,27 +0,0 @@
lbl_805A58E8:
/* 805A58E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 805A58EC 7C 08 02 A6 */ mflr r0
/* 805A58F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 805A58F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 805A58F8 93 C1 00 08 */ stw r30, 8(r1)
/* 805A58FC 7C 7E 1B 79 */ or. r30, r3, r3
/* 805A5900 7C 9F 23 78 */ mr r31, r4
/* 805A5904 41 82 00 2C */ beq lbl_805A5930
/* 805A5908 38 7E 05 80 */ addi r3, r30, 0x580
/* 805A590C 38 80 FF FF */ li r4, -1
/* 805A5910 4B CA 46 39 */ bl __dt__10dMsgFlow_cFv
/* 805A5914 7F C3 F3 78 */ mr r3, r30
/* 805A5918 38 80 00 00 */ li r4, 0
/* 805A591C 4B A7 33 71 */ bl __dt__10fopAc_ac_cFv
/* 805A5920 7F E0 07 35 */ extsh. r0, r31
/* 805A5924 40 81 00 0C */ ble lbl_805A5930
/* 805A5928 7F C3 F3 78 */ mr r3, r30
/* 805A592C 4B D2 94 11 */ bl __dl__FPv
lbl_805A5930:
/* 805A5930 7F C3 F3 78 */ mr r3, r30
/* 805A5934 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 805A5938 83 C1 00 08 */ lwz r30, 8(r1)
/* 805A593C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 805A5940 7C 08 03 A6 */ mtlr r0
/* 805A5944 38 21 00 10 */ addi r1, r1, 0x10
/* 805A5948 4E 80 00 20 */ blr

View File

@ -1,143 +0,0 @@
lbl_805A56B8:
/* 805A56B8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 805A56BC 7C 08 02 A6 */ mflr r0
/* 805A56C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 805A56C4 39 61 00 20 */ addi r11, r1, 0x20
/* 805A56C8 4B DB CB 15 */ bl _savegpr_29
/* 805A56CC 7C 7E 1B 78 */ mr r30, r3
/* 805A56D0 3C 80 80 5A */ lis r4, lit_3741@ha /* 0x805A6034@ha */
/* 805A56D4 3B E4 60 34 */ addi r31, r4, lit_3741@l /* 0x805A6034@l */
/* 805A56D8 80 03 04 A0 */ lwz r0, 0x4a0(r3)
/* 805A56DC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 805A56E0 40 82 00 28 */ bne lbl_805A5708
/* 805A56E4 7F C0 F3 79 */ or. r0, r30, r30
/* 805A56E8 41 82 00 14 */ beq lbl_805A56FC
/* 805A56EC 7C 1D 03 78 */ mr r29, r0
/* 805A56F0 4B A7 34 75 */ bl __ct__10fopAc_ac_cFv
/* 805A56F4 38 7D 05 80 */ addi r3, r29, 0x580
/* 805A56F8 4B CA 48 09 */ bl __ct__10dMsgFlow_cFv
lbl_805A56FC:
/* 805A56FC 80 1E 04 A0 */ lwz r0, 0x4a0(r30)
/* 805A5700 60 00 00 08 */ ori r0, r0, 8
/* 805A5704 90 1E 04 A0 */ stw r0, 0x4a0(r30)
lbl_805A5708:
/* 805A5708 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A570C 54 00 05 BE */ clrlwi r0, r0, 0x16
/* 805A5710 B0 1E 05 74 */ sth r0, 0x574(r30)
/* 805A5714 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A5718 54 00 B5 BE */ rlwinm r0, r0, 0x16, 0x16, 0x1f
/* 805A571C B0 1E 05 7C */ sth r0, 0x57c(r30)
/* 805A5720 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A5724 54 00 65 FE */ rlwinm r0, r0, 0xc, 0x17, 0x1f
/* 805A5728 B0 1E 05 78 */ sth r0, 0x578(r30)
/* 805A572C A0 1E 05 78 */ lhz r0, 0x578(r30)
/* 805A5730 B0 1E 05 7A */ sth r0, 0x57a(r30)
/* 805A5734 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A5738 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
/* 805A573C 41 82 00 10 */ beq lbl_805A574C
/* 805A5740 38 00 00 01 */ li r0, 1
/* 805A5744 98 1E 05 6A */ stb r0, 0x56a(r30)
/* 805A5748 48 00 00 0C */ b lbl_805A5754
lbl_805A574C:
/* 805A574C 38 00 00 00 */ li r0, 0
/* 805A5750 98 1E 05 6A */ stb r0, 0x56a(r30)
lbl_805A5754:
/* 805A5754 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A5758 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
/* 805A575C 98 1E 05 6B */ stb r0, 0x56b(r30)
/* 805A5760 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 805A5764 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 805A5768 80 83 5D AC */ lwz r4, 0x5dac(r3)
/* 805A576C 28 04 00 00 */ cmplwi r4, 0
/* 805A5770 41 82 00 2C */ beq lbl_805A579C
/* 805A5774 80 7E 04 A4 */ lwz r3, 0x4a4(r30)
/* 805A5778 41 82 00 0C */ beq lbl_805A5784
/* 805A577C 80 04 00 04 */ lwz r0, 4(r4)
/* 805A5780 48 00 00 08 */ b lbl_805A5788
lbl_805A5784:
/* 805A5784 38 00 FF FF */ li r0, -1
lbl_805A5788:
/* 805A5788 7C 03 00 50 */ subf r0, r3, r0
/* 805A578C 7C 00 00 34 */ cntlzw r0, r0
/* 805A5790 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 805A5794 98 1E 05 72 */ stb r0, 0x572(r30)
/* 805A5798 48 00 00 0C */ b lbl_805A57A4
lbl_805A579C:
/* 805A579C 38 00 00 00 */ li r0, 0
/* 805A57A0 98 1E 05 72 */ stb r0, 0x572(r30)
lbl_805A57A4:
/* 805A57A4 A8 1E 04 E4 */ lha r0, 0x4e4(r30)
/* 805A57A8 98 1E 05 68 */ stb r0, 0x568(r30)
/* 805A57AC A8 1E 04 E4 */ lha r0, 0x4e4(r30)
/* 805A57B0 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 805A57B4 98 1E 05 69 */ stb r0, 0x569(r30)
/* 805A57B8 A8 1E 04 E6 */ lha r0, 0x4e6(r30)
/* 805A57BC 98 1E 05 6D */ stb r0, 0x56d(r30)
/* 805A57C0 A8 1E 04 E6 */ lha r0, 0x4e6(r30)
/* 805A57C4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 805A57C8 98 1E 05 6C */ stb r0, 0x56c(r30)
/* 805A57CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 805A57D0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 805A57D4 38 63 4F F8 */ addi r3, r3, 0x4ff8
/* 805A57D8 7F C4 F3 78 */ mr r4, r30
/* 805A57DC 88 BE 05 6C */ lbz r5, 0x56c(r30)
/* 805A57E0 4B AA 1E B9 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc
/* 805A57E4 B0 7E 05 76 */ sth r3, 0x576(r30)
/* 805A57E8 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 805A57EC 54 00 17 FF */ rlwinm. r0, r0, 2, 0x1f, 0x1f
/* 805A57F0 41 82 00 20 */ beq lbl_805A5810
/* 805A57F4 C0 1E 04 EC */ lfs f0, 0x4ec(r30)
/* 805A57F8 C0 3F 00 00 */ lfs f1, 0(r31)
/* 805A57FC EC 00 00 72 */ fmuls f0, f0, f1
/* 805A5800 D0 1E 04 EC */ stfs f0, 0x4ec(r30)
/* 805A5804 C0 1E 04 F0 */ lfs f0, 0x4f0(r30)
/* 805A5808 EC 00 00 72 */ fmuls f0, f0, f1
/* 805A580C D0 1E 04 F0 */ stfs f0, 0x4f0(r30)
lbl_805A5810:
/* 805A5810 C0 3E 04 EC */ lfs f1, 0x4ec(r30)
/* 805A5814 C0 1F 00 04 */ lfs f0, 4(r31)
/* 805A5818 EC 00 00 72 */ fmuls f0, f0, f1
/* 805A581C EC 01 00 32 */ fmuls f0, f1, f0
/* 805A5820 D0 1E 05 CC */ stfs f0, 0x5cc(r30)
/* 805A5824 C0 5E 04 D4 */ lfs f2, 0x4d4(r30)
/* 805A5828 C0 3F 00 08 */ lfs f1, 8(r31)
/* 805A582C C0 1E 04 F0 */ lfs f0, 0x4f0(r30)
/* 805A5830 EC 01 00 32 */ fmuls f0, f1, f0
/* 805A5834 EC 02 00 2A */ fadds f0, f2, f0
/* 805A5838 D0 1E 05 D0 */ stfs f0, 0x5d0(r30)
/* 805A583C 8B FE 05 6D */ lbz r31, 0x56d(r30)
/* 805A5840 28 1F 00 FF */ cmplwi r31, 0xff
/* 805A5844 41 82 00 68 */ beq lbl_805A58AC
/* 805A5848 88 1E 04 E2 */ lbz r0, 0x4e2(r30)
/* 805A584C 7C 1D 07 74 */ extsb r29, r0
/* 805A5850 7F A3 EB 78 */ mr r3, r29
/* 805A5854 4B A8 7A 09 */ bl dComIfGp_getRoomCamera__Fi
/* 805A5858 80 63 00 04 */ lwz r3, 4(r3)
/* 805A585C 1C 1F 00 18 */ mulli r0, r31, 0x18
/* 805A5860 7C 63 02 14 */ add r3, r3, r0
/* 805A5864 88 03 00 10 */ lbz r0, 0x10(r3)
/* 805A5868 1F E0 00 14 */ mulli r31, r0, 0x14
/* 805A586C 7F A3 EB 78 */ mr r3, r29
/* 805A5870 4B A8 7A 3D */ bl dComIfGp_getRoomArrow__Fi
/* 805A5874 80 03 00 04 */ lwz r0, 4(r3)
/* 805A5878 7C 60 FA 14 */ add r3, r0, r31
/* 805A587C C0 43 00 08 */ lfs f2, 8(r3)
/* 805A5880 C0 23 00 04 */ lfs f1, 4(r3)
/* 805A5884 C0 03 00 00 */ lfs f0, 0(r3)
/* 805A5888 D0 1E 05 38 */ stfs f0, 0x538(r30)
/* 805A588C D0 3E 05 3C */ stfs f1, 0x53c(r30)
/* 805A5890 D0 5E 05 40 */ stfs f2, 0x540(r30)
/* 805A5894 C0 1E 05 38 */ lfs f0, 0x538(r30)
/* 805A5898 D0 1E 05 50 */ stfs f0, 0x550(r30)
/* 805A589C C0 1E 05 3C */ lfs f0, 0x53c(r30)
/* 805A58A0 D0 1E 05 54 */ stfs f0, 0x554(r30)
/* 805A58A4 C0 1E 05 40 */ lfs f0, 0x540(r30)
/* 805A58A8 D0 1E 05 58 */ stfs f0, 0x558(r30)
lbl_805A58AC:
/* 805A58AC 38 60 00 04 */ li r3, 4
/* 805A58B0 39 61 00 20 */ addi r11, r1, 0x20
/* 805A58B4 4B DB C9 75 */ bl _restgpr_29
/* 805A58B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 805A58BC 7C 08 03 A6 */ mtlr r0
/* 805A58C0 38 21 00 20 */ addi r1, r1, 0x20
/* 805A58C4 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_805A58C8:
/* 805A58C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 805A58CC 7C 08 02 A6 */ mflr r0
/* 805A58D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 805A58D4 4B FF FD E5 */ bl create__12daTagMhint_cFv
/* 805A58D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 805A58DC 7C 08 03 A6 */ mtlr r0
/* 805A58E0 38 21 00 10 */ addi r1, r1, 0x10
/* 805A58E4 4E 80 00 20 */ blr

View File

@ -1,11 +0,0 @@
lbl_805A594C:
/* 805A594C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 805A5950 7C 08 02 A6 */ mflr r0
/* 805A5954 90 01 00 14 */ stw r0, 0x14(r1)
/* 805A5958 38 80 FF FF */ li r4, -1
/* 805A595C 4B FF FF 8D */ bl __dt__12daTagMhint_cFv
/* 805A5960 38 60 00 01 */ li r3, 1
/* 805A5964 80 01 00 14 */ lwz r0, 0x14(r1)
/* 805A5968 7C 08 03 A6 */ mtlr r0
/* 805A596C 38 21 00 10 */ addi r1, r1, 0x10
/* 805A5970 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_805A6004:
/* 805A6004 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 805A6008 7C 08 02 A6 */ mflr r0
/* 805A600C 90 01 00 14 */ stw r0, 0x14(r1)
/* 805A6010 4B FF FA D5 */ bl execute__12daTagMhint_cFv
/* 805A6014 80 01 00 14 */ lwz r0, 0x14(r1)
/* 805A6018 7C 08 03 A6 */ mtlr r0
/* 805A601C 38 21 00 10 */ addi r1, r1, 0x10
/* 805A6020 4E 80 00 20 */ blr

View File

@ -6365,39 +6365,22 @@ public:
}
bool checkShadowModelDrawSmode() const {
if (field_0x84e != 3 && field_0x84e != 4) {
if (field_0x84e == 2) {
return false;
}
}
return true;
return field_0x84e == 3 || field_0x84e == 4 || field_0x84e == 2;
}
int checkShadowModelDraw() const {
int ret = 0;
if (checkShadowModelDrawDemoForce() == 0) {
if (checkShadowModelDrawSmode() != 0) {
ret = 0;
}
}
return ret;
bool checkShadowModelDraw() const {
return checkShadowModelDrawDemoForce() || checkShadowModelDrawSmode();
}
int checkShadowReturnEnd() const {
if (field_0x5e4[0].getIdx() == 0x21C && !field_0x578->isStop()) {
return 1;
}
return 0;
bool checkShadowReturnEnd() const {
return field_0x5e4[0].getIdx() == 0x21C && field_0x578->isStop();
}
bool checkShadowModeTalkWait() const {
return (field_0x84e == 2 || field_0x84e == 1) ;
}
void setShadowReturn() { mDemoType = 4; }
void setShadowReturn() { field_0x84e = 4; }
bool checkPortalObjRide() const {

View File

@ -290,7 +290,7 @@ public:
/* 0xE1E */ u16 field_0xe1e;
/* 0xE20 */ u16 field_0xe20;
/* 0xE22 */ u16 field_0xe22;
/* 0xE24 */ u8 field_0xe24;
/* 0xE24 */ s8 field_0xe24;
/* 0xE25 */ u8 field_0xe25;
/* 0xE26 */ u8 field_0xe26;
/* 0xE27 */ u8 field_0xe27;
@ -422,8 +422,8 @@ public:
}
static u8 const mCcDObjData[48];
static u8 mCcDCyl[68];
static u8 mCcDSph[64];
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
static fopAc_ac_c* mFindActorPtrs[50];
static s16 mSrchName;
static s32 mFindCount;
@ -643,7 +643,7 @@ public:
static u8 const mCcDObjInfo[48];
static dCcD_SrcCyl mCcDCyl;
static u8 mCcDSph[64];
static dCcD_SrcSph mCcDSph;
static fopAc_ac_c* mFindActorPList[100];
static s32 mFindCount;
static s16 mSrchActorName;
@ -794,8 +794,8 @@ public:
void setVtable(void* table) { vtable = table;}
static u8 const mCcDObj[48];
static u8 mCcDCyl[68];
static u8 mCcDSph[64];
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
};
class daBaseNpc_moveBgActor_c : public daBaseNpc_c {

View File

@ -41,6 +41,7 @@ public:
void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; }
void SetAtHitObj(cCcD_Obj* obj) { mpAtObj = obj; }
void SetCoHitLen(f32 len) { mCoHitLen = len; }
cCcD_Obj* GetAtHitObj() const { return mpAtObj; }
};
class dCcMassS_Mng {

View File

@ -46,10 +46,10 @@ public:
/* 80086754 */ virtual void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*);
void SetMass(cCcD_Obj* i_obj, u8 i_priority) { mMass_Mng.Set(i_obj, i_priority); }
void PrepareMass() { mMass_Mng.Prepare(); }
static u8 m_mtrl_hit_tbl[64];
private:
// /* 0x0000 */ cCcS mCCcS;
/* 0x284C */ dCcMassS_Mng mMass_Mng;
}; // Size = 0x2AC4

View File

@ -1831,6 +1831,10 @@ inline u8 dComIfGp_att_getCatchChgItem() {
return dComIfGp_getAttention().getCatchChgItem();
}
inline int dComIfGp_att_ZHintRequest(fopAc_ac_c *param_1, int param_2) {
return dComIfGp_getAttention().ZHintRequest(param_1, param_2);
}
inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist, f32 i_upDist,
f32 i_downDist, s16 i_angle, int param_5) {
dComIfGp_getAttention().LookRequest(param_0, i_horizontalDist, i_upDist, i_downDist, i_angle,

View File

@ -4,7 +4,8 @@
#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
struct dNpcLib_lookat_c {
class dNpcLib_lookat_c {
public:
/* 80251314 */ dNpcLib_lookat_c();
/* 8025140C */ void init(J3DModel*, int*, csXyz*, csXyz*);
/* 80251534 */ void action(cXyz, cXyz, fopAc_ac_c*, f32 (*)[4], int);

View File

@ -165,12 +165,12 @@ struct stage_camera_class {
struct stage_arrow_data_class {
/* 0x00 */ cXyz mPosition;
/* 0x0C */ csXyz mAngle;
};
}; // Size: 0x14
struct stage_arrow_class {
/* 0x00 */ int mNum;
/* 0x04 */ stage_arrow_data_class* mEntries;
}; // Size: 0x14
};
class stage_actor_data_class {
public:

View File

@ -278,11 +278,7 @@ public:
void changeAnm(J3DAnmTransform* anm) { mpAnm = anm; }
bool isStop() {
bool stopped = true;
if (!mFrameCtrl.checkState(1) && mFrameCtrl.getRate() != 0.0f) {
stopped = false;
}
return stopped;
return mFrameCtrl.checkState(1) || mFrameCtrl.getRate() == 0.0f;
}
/* 0x04 */ J3DModel* mpModel;

View File

@ -1,6 +1,212 @@
#ifndef D_A_GRASS_H
#define D_A_GRASS_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class dCcMassS_HitInf;
class cCcD_Obj;
class dGrass_data_c {
public:
/* 8051D88C */ void WorkCo(fopAc_ac_c*, u32, int);
/* 8051DA20 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
/* 8051DF54 */ void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
/* 8051E1C8 */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
/* 8051EB88 */ void hitCheck(int, u16);
/* 80520940 */ ~dGrass_data_c();
/* 8052097C */ dGrass_data_c();
/* 0x00 */ u8 m_state;
/* 0x01 */ u8 field_0x01;
/* 0x02 */ s8 field_0x02;
/* 0x03 */ u8 m_tableNo;
/* 0x04 */ u8 m_itemBitNo;
/* 0x05 */ u8 field_0x05;
/* 0x06 */ u8 field_0x06[0x08 - 0x06];
/* 0x08 */ s16 m_addCol;
/* 0x0C */ cXyz m_pos;
/* 0x18 */ Mtx m_modelMtx;
/* 0x48 */ dGrass_data_c* mp_next;
};
class dGrass_room_c {
public:
/* 8051EDE0 */ void newData(dGrass_data_c*);
/* 8051EDF0 */ void deleteData();
/* 80520928 */ dGrass_room_c();
/* 0x0 */ dGrass_data_c* mp_data;
};
class dGrass_anm_c {
public:
/* 80520934 */ dGrass_anm_c();
/* 0x00 */ u8 m_state;
/* 0x02 */ s16 m_angY;
/* 0x04 */ s16 m_angX;
/* 0x08 */ Mtx m_animMtx;
};
class dGrass_packet_c : public J3DPacket {
public:
/* 8051EE8C */ dGrass_packet_c();
/* 8051FABC */ void calc();
/* 80520030 */ void update();
/* 8052067C */ void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
/* 80520770 */ dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
/* 80520864 */ void deleteRoom(int);
/* 80520898 */ int newAnm();
/* 805208E4 */ void setAnm(int, s16);
/* 8051F03C */ virtual void draw();
/* 8051BFBC */ virtual ~dGrass_packet_c();
typedef void (dGrass_packet_c::*deleteFunc)(int);
static deleteFunc m_deleteRoom;
dGrass_anm_c* getAnm() { return m_anm; }
dGrass_data_c* getData() { return m_data; }
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
/* 0x00010 */ u16 field_0x10;
/* 0x00014 */ dGrass_data_c m_data[1500];
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
/* 0x1D5E4 */ dGrass_room_c m_room[64];
/* 0x1D6E4 */ Vec* mp_pos;
/* 0x1D6E8 */ Vec* mp_normal;
/* 0x1D6EC */ GXColor* mp_colors;
/* 0x1D6F0 */ Vec* mp_texCoords;
/* 0x1D6F4 */ u8* mp_kusa9q_DL;
/* 0x1D6F8 */ u32 m_kusa9q_DL_size;
/* 0x1D6FC */ u8* mp_kusa9q_14_DL;
/* 0x1D700 */ u32 m_kusa9q_DL_14_size;
/* 0x1D704 */ u8* mp_Mkusa_9q_DL;
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
/* 0x1D714 */ u16 field_0x1d714;
}; // Size: 0x1D718
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
class dFlower_data_c {
public:
/* 80520988 */ void WorkCo(fopAc_ac_c*, u32, int);
/* 80520AD8 */ void deleteAnm();
/* 80520B34 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
/* 80520CFC */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
/* 80521A3C */ void hitCheck(fopAc_ac_c*, int);
/* 80522FCC */ ~dFlower_data_c();
/* 80523008 */ dFlower_data_c();
/* 0x00 */ u8 m_state;
/* 0x01 */ s8 field_0x01;
/* 0x02 */ s8 m_tableNo;
/* 0x03 */ u8 field_0x03;
/* 0x04 */ s16 field_0x04;
/* 0x08 */ cXyz m_pos;
/* 0x14 */ Mtx m_modelMtx;
/* 0x44 */ dFlower_data_c* mp_next;
};
class dFlower_room_c {
public:
/* 80521BF8 */ void newData(dFlower_data_c*);
/* 80521C08 */ void deleteData();
/* 80522FB4 */ dFlower_room_c();
/* 0x0 */ dFlower_data_c* mp_data;
};
class dFlower_anm_c {
public:
/* 80522FC0 */ dFlower_anm_c();
/* 0x00 */ u8 m_state;
/* 0x02 */ s16 m_angY;
/* 0x04 */ s16 m_angX;
/* 0x08 */ Mtx m_animMtx;
};
class dFlower_packet_c : public J3DPacket {
public:
/* 80521C64 */ dFlower_packet_c();
/* 80522774 */ void calc();
/* 80522A64 */ void update();
/* 80522CBC */ void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
/* 80522E28 */ dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
/* 80522F0C */ void deleteRoom(int);
/* 80522F40 */ int newAnm();
/* 80522F8C */ void setAnm(int, s16);
/* 80521DAC */ virtual void draw();
/* 8051C194 */ virtual ~dFlower_packet_c();
typedef void (dFlower_packet_c::*deleteFunc)(int);
static deleteFunc m_deleteRoom;
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
dFlower_data_c* getData() { return m_data; }
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
/* 0x00010 */ u16 field_0x10;
/* 0x00014 */ dFlower_data_c m_data[1000];
/* 0x11954 */ dFlower_anm_c m_anm[72];
/* 0x12914 */ dFlower_room_c m_room[64];
/* 0x12A14 */ u8 m_playerCutFlg;
/* 0x12A16 */ s16 m_playerSwordAngY;
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
/* 0x12A1C */ cXyz m_playerSwordTop;
/* 0x12A28 */ Vec* mp_pos;
/* 0x12A2C */ GXColor* mp_colors;
/* 0x12A30 */ Vec* mp_texCoords;
/* 0x12A34 */ u8* mp_mat2DL;
/* 0x12A38 */ u32 m_mat2DL_size;
/* 0x12A3C */ u8* mp_mat2Light4DL;
/* 0x12A40 */ u32 m_mat2Light4DL_size;
/* 0x12A44 */ u8* mp_Jhana01DL;
/* 0x12A48 */ u32 m_Jhana01DL_size;
/* 0x12A4C */ u8* mp_Jhana01_cDL;
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
}; // Size: 0x12A54
class daGrass_c : public fopAc_ac_c {
public:
/* 8051BEFC */ int createGrass();
/* 8051BF68 */ void deleteGrass();
/* 8051C040 */ void executeGrass();
/* 8051C074 */ void drawGrass();
/* 8051C0A8 */ void newGrassData(cXyz&, int, u8, u8, s16, u8);
/* 8051C0D4 */ int createFlower();
/* 8051C140 */ void deleteFlower();
/* 8051C218 */ void executeFlower();
/* 8051C24C */ void drawFlower();
/* 8051C280 */ void newFlowerData(s8, cXyz&, int, s8, s16);
/* 8051C304 */ int create();
inline int Delete();
inline int execute();
inline int draw();
static dGrass_packet_c* getGrass() { return m_grass; }
static dFlower_packet_c* getFlower() { return m_flower; }
/* 800319C8 */ static void deleteRoomGrass(int);
/* 80031A20 */ static void deleteRoomFlower(int);
static daGrass_c* m_myObj;
static dGrass_packet_c* m_grass;
static dFlower_packet_c* m_flower;
};
namespace daGrass_prm {
inline u8 getKind(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 4) & 3; }
inline u8 getType(daGrass_c* i_this) { return fopAcM_GetParam(i_this) & 0xF; }
inline u8 getItemNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 0x10) & 0xFF; }
inline u8 getItemBitNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
};
#endif /* D_A_GRASS_H */

View File

@ -1,16 +1,18 @@
#ifndef D_A_TAG_MHINT_H
#define D_A_TAG_MHINT_H
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_mng.h"
#include "d/msg/d_msg_flow.h"
class daTagMhint_c : public fopAc_ac_c {
public:
/* 805A56B8 */ void create();
/* 805A56B8 */ int create();
/* 805A58E8 */ ~daTagMhint_c();
/* 805A5974 */ void eventOrder();
/* 805A5AE4 */ void execute();
/* 805A5AE4 */ int execute();
bool checkNoAttention() const { return field_0x56d == 0xFF; }
bool checkEventID() const { return mToolEventID != 0xFF; }
private:
/* 0x568 */ u8 field_0x568;

View File

@ -12,10 +12,6 @@ struct daTagWljump_c : fopAc_ac_c {
/* 80D65090 */ int execute();
/* 80D6589C */ int draw();
int dComIfGp_att_ZHintRequest(fopAc_ac_c *param_1, int param_2) {
return dComIfGp_getAttention().ZHintRequest(param_1, param_2);
}
/* 0x568 */ s8 field_0x568;
/* 0x568 */ s8 field_0x569;
/* 0x568 */ u8 field_0x56a;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,259 @@
/* 80520988-80520AD8 004D28 0150+00 1/1 0/0 0/0 .text WorkCo__14dFlower_data_cFP10fopAc_ac_cUli */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkCo__14dFlower_data_cFP10fopAc_ac_cUli.s"
}
#pragma pop
/* 80520AD8-80520B34 004E78 005C+00 4/4 0/0 0/0 .text deleteAnm__14dFlower_data_cFv */
void dFlower_data_c::deleteAnm() {
if (field_0x01 >= 8) {
daGrass_c::getFlower()->deleteAnm(field_0x01);
dFlower_anm_c* anm_p = daGrass_c::getFlower()->getAnm(field_0x01);
field_0x01 = (anm_p->m_angY >> 0xD) & 7;
}
}
/* 80520B34-80520CFC 004ED4 01C8+00 1/1 0/0 0/0 .text
* WorkAt_NoCutAnim__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt_NoCutAnim__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj.s"
}
#pragma pop
/* 80520CFC-80521A3C 00509C 0D40+00 1/1 0/0 0/0 .text
* WorkAt__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInf.s"
}
#pragma pop
/* 80521A3C-80521BF8 005DDC 01BC+00 1/1 0/0 0/0 .text hitCheck__14dFlower_data_cFP10fopAc_ac_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::hitCheck(fopAc_ac_c* param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/hitCheck__14dFlower_data_cFP10fopAc_ac_ci.s"
}
#pragma pop
/* 80521BF8-80521C08 005F98 0010+00 1/1 0/0 0/0 .text newData__14dFlower_room_cFP14dFlower_data_c
*/
void dFlower_room_c::newData(dFlower_data_c* i_data) {
i_data->mp_next = mp_data;
mp_data = i_data;
}
/* 80521C08-80521C64 005FA8 005C+00 1/1 0/0 0/0 .text deleteData__14dFlower_room_cFv */
void dFlower_room_c::deleteData() {
while (mp_data != NULL) {
mp_data->deleteAnm();
mp_data->m_state = 0;
mp_data = mp_data->mp_next;
}
}
/* 80521C64-80521DAC 006004 0148+00 1/1 0/0 0/0 .text __ct__16dFlower_packet_cFv */
// matches with data
#ifdef NONMATCHING
dFlower_packet_c::dFlower_packet_c() {
dFlower_data_c* data_p = m_data;
for (int i = 0; i < 1000; i++) {
data_p->m_state = 0;
data_p++;
}
dFlower_anm_c* anm_p = m_anm;
for (int i = 0; i < 72; i++) {
anm_p->m_state = 0;
anm_p++;
}
s16 unused = 0;
for (int i = 0; i < 8; i++) {
setAnm(i, unused);
unused += 0x2000;
}
m_deleteRoom = &deleteRoom;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dFlower_packet_c::dFlower_packet_c() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__ct__16dFlower_packet_cFv.s"
}
#pragma pop
#endif
/* 80521DAC-80522774 00614C 09C8+00 2/0 0/0 0/0 .text draw__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void dFlower_packet_c::draw() {
extern "C" asm void draw__16dFlower_packet_cFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/draw__16dFlower_packet_cFv.s"
}
#pragma pop
/* 80522774-8052299C 006B14 0228+00 1/1 0/0 0/0 .text calc__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_packet_c::calc() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/calc__16dFlower_packet_cFv.s"
}
#pragma pop
/* 8052299C-80522A64 006D3C 00C8+00 2/2 0/0 0/0 .text flowerCheckGroundY__FR4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm f32 flowerCheckGroundY(cXyz& param_0) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/flowerCheckGroundY__FR4cXyz.s"
}
#pragma pop
/* 80522A64-80522CBC 006E04 0258+00 1/1 0/0 0/0 .text update__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_packet_c::update() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/update__16dFlower_packet_cFv.s"
}
#pragma pop
/* 80522CBC-80522E28 00705C 016C+00 1/1 0/0 0/0 .text
* setData__16dFlower_packet_cFP14dFlower_data_ciScR4cXyziScs */
void dFlower_packet_c::setData(dFlower_data_c* i_data, int param_1, s8 param_2, cXyz& i_pos,
int i_roomNo, s8 i_tableNo, s16 i_addCol) {
f32 y_pos;
if (fopOvlpM_IsPeek()) {
y_pos = flowerCheckGroundY(i_pos);
i_data->m_state = 6;
} else {
y_pos = i_pos.y;
i_data->m_state = 38;
}
if (param_2 == 2) {
cLib_onBit(i_data->m_state, 0x40);
}
i_data->field_0x01 = cM_rndF(FLOAT_LABEL(lit_6262));
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
i_data->m_tableNo = i_tableNo;
i_data->field_0x03 = 0;
i_data->field_0x04 = i_addCol;
if (m_room[i_roomNo].mp_data == NULL) {
mp_pos = (Vec*)l_flowerPos2;
mp_colors = (GXColor*)l_flowerColor2;
mp_texCoords = (Vec*)l_flowerTexCoord2;
mp_mat2DL = l_mat2DL;
m_mat2DL_size = 0x80;
mp_mat2Light4DL = l_mat2Light4DL;
m_mat2Light4DL_size = 0x80;
mp_Jhana01DL = l_J_hana01DL;
m_Jhana01DL_size = 0x120;
mp_Jhana01_cDL = l_J_hana01_c_01DL;
m_Jhana01_cDL_size = 0x120;
}
m_room[i_roomNo].newData(i_data);
field_0x10 = param_1;
}
/* 80522E28-80522F0C 0071C8 00E4+00 1/1 0/0 0/0 .text newData__16dFlower_packet_cFScR4cXyziScs */
dFlower_data_c* dFlower_packet_c::newData(s8 param_0, cXyz& i_pos, int i_roomNo, s8 i_tableNo,
s16 i_addCol) {
dFlower_data_c* data_p = m_data + field_0x10;
for (int i = field_0x10; i < 1000; i++) {
if (!cLib_checkBit(data_p->m_state, 2)) {
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
return data_p;
}
data_p++;
}
data_p = m_data;
for (int i = 0; i < field_0x10; i++) {
if (!cLib_checkBit(data_p->m_state, 2)) {
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
return data_p;
}
data_p++;
}
return NULL;
}
/* 80522F0C-80522F40 0072AC 0034+00 1/0 0/0 0/0 .text deleteRoom__16dFlower_packet_cFi */
void dFlower_packet_c::deleteRoom(int i_roomNo) {
m_room[i_roomNo].deleteData();
}
/* 80522F40-80522F8C 0072E0 004C+00 2/2 0/0 0/0 .text newAnm__16dFlower_packet_cFv */
int dFlower_packet_c::newAnm() {
dFlower_anm_c* anm_p = m_anm + 8;
for (int i = 8; i < 72; i++) {
if (anm_p->m_state == 0) {
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
return i;
}
anm_p++;
}
return -1;
}
/* 80522F8C-80522FB4 00732C 0028+00 1/1 0/0 0/0 .text setAnm__16dFlower_packet_cFis */
void dFlower_packet_c::setAnm(int i_idx, s16 param_1) {
dFlower_anm_c* anm_p = m_anm + i_idx;
anm_p->m_state = 1;
anm_p->m_angY = param_1;
anm_p->m_angX = 0;
}
/* 80522FB4-80522FC0 007354 000C+00 1/1 0/0 0/0 .text __ct__14dFlower_room_cFv */
dFlower_room_c::dFlower_room_c() {
mp_data = NULL;
}
/* 80522FC0-80522FCC 007360 000C+00 1/1 0/0 0/0 .text __ct__13dFlower_anm_cFv */
dFlower_anm_c::dFlower_anm_c() {
m_state = 0;
}
/* 80522FCC-80523008 00736C 003C+00 2/2 0/0 0/0 .text __dt__14dFlower_data_cFv */
dFlower_data_c::~dFlower_data_c() {}
/* 80523008-80523014 0073A8 000C+00 1/1 0/0 0/0 .text __ct__14dFlower_data_cFv */
dFlower_data_c::dFlower_data_c() {
m_state = 0;
}

View File

@ -0,0 +1,530 @@
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "SSystem/SComponent/c_lib.h"
#include "f_op/f_op_overlap_mng.h"
/* 8051D88C-8051DA20 001C2C 0194+00 1/1 0/0 0/0 .text WorkCo__13dGrass_data_cFP10fopAc_ac_cUli */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkCo__13dGrass_data_cFP10fopAc_ac_cUli.s"
}
#pragma pop
/* 8051DA20-8051DF54 001DC0 0534+00 1/1 0/0 0/0 .text
* WorkAt_NoCutAnim__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt_NoCutAnim__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj.s"
}
#pragma pop
/* 8051DF54-8051E1C8 0022F4 0274+00 1/1 0/0 0/0 .text
* Direction_Set__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_ObjP5csXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::Direction_Set(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4, csXyz* param_5) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/Direction_Set__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_ObjP5csXyz.s"
}
#pragma pop
/* 8051E1C8-8051EB4C 002568 0984+00 1/1 0/0 0/0 .text
* WorkAt__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfUs */
// literals / regswap, equivalent?
#ifdef NONMATCHING
void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMassS_HitInf* param_3,
u16 i_particleID) {
cCcD_Obj* hit_obj = param_3->GetAtHitObj();
if (hit_obj != NULL) {
if (hit_obj->ChkAtType(0) || hit_obj->ChkAtType(AT_TYPE_ARROW) ||
hit_obj->ChkAtType(AT_TYPE_SLINGSHOT) || hit_obj->ChkAtType(0x20000000) ||
hit_obj->ChkAtType(AT_TYPE_SHIELD_ATTACK) || hit_obj->ChkAtType(AT_TYPE_BOOMERANG) ||
hit_obj->ChkAtType(0x100) || hit_obj->ChkAtType(AT_TYPE_LANTERN_SWING) ||
hit_obj->ChkAtType(AT_TYPE_HOOKSHOT))
{
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
}
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
if (hit_obj->ChkAtType(AT_TYPE_BOMB)) {
if (param_0 != NULL && m_pos.abs(param_0->current.pos) > 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() >= CUT_TYPE_NM_RIGHT &&
daPy_getPlayerActorClass()->getCutType() <= CUT_TYPE_FINISH_VERTICAL)
{
if (m_pos.abs(player_p->current.pos) > 158.0f) {
if (m_pos.abs(player_p->current.pos) < 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
}
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_TURN_RIGHT ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_TURN_LEFT)
{
if (m_pos.abs(player_p->current.pos) > 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_LARGE_TURN_RIGHT ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_LARGE_TURN_LEFT)
{
if (m_pos.abs(player_p->current.pos) > 500.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_NM_VERTICAL ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_NM_STAB)
{
if (m_pos.abs(player_p->current.pos) > 158.0f) {
return;
}
}
if (field_0x02 >= 16) {
daGrass_c::getGrass()->deleteAnm(field_0x02);
}
int itemBitNo = m_itemBitNo;
if (m_itemBitNo == 0xFF) {
itemBitNo = -1;
}
bool create_direct = false;
if (daPy_getPlayerActorClass()->checkHorseRide()) {
create_direct = true;
}
fopAcM_createItemFromTable(&m_pos, m_tableNo, itemBitNo, i_roomNo, NULL, 0, NULL, NULL, NULL,
create_direct);
field_0x02 = -1;
static csXyz ang(0, 0, 0);
cXyz sp50(m_pos.x, m_pos.y + 25.0f, m_pos.z);
dKy_tevstr_c* tevstr = dComIfGp_roomControl_getTevStr(i_roomNo);
csXyz sp40;
Direction_Set(param_0, param_1, i_roomNo, param_3, hit_obj, &sp40);
GXColor envcolor;
envcolor.r = (m_addCol >> 8) & 0xFF;
envcolor.g = m_addCol & 0xFF;
dComIfGp_particle_set(i_particleID, &sp50, tevstr, &sp40, NULL, 255,
dPa_control_c::getLight8EcallBack(), -1, &envcolor, NULL, NULL);
static bool init;
if (!init) {
init = true;
mDoAud_seStart(JA_SE_LK_CUT_GRASS, &m_pos, 0, dComIfGp_getReverb(i_roomNo));
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, u16 param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfUs.s"
}
#pragma pop
#endif
/* 8051EB4C-8051EB88 002EEC 003C+00 3/3 0/0 0/0 .text __dt__5csXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm csXyz::~csXyz() {
extern "C" asm void __dt__5csXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__dt__5csXyzFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 805278B8-805278C4 0046E0 000C+00 3/3 0/0 0/0 .data __vt__15dCcMassS_HitInf */
SECTION_DATA extern void* __vt__15dCcMassS_HitInf[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dCcMassS_HitInfFv,
};
/* 8051EB88-8051ED98 002F28 0210+00 1/1 0/0 0/0 .text hitCheck__13dGrass_data_cFiUs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::hitCheck(int param_0, u16 param_1) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/hitCheck__13dGrass_data_cFiUs.s"
}
#pragma pop
/* 8051ED98-8051EDE0 003138 0048+00 1/0 0/0 0/0 .text __dt__15dCcMassS_HitInfFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dCcMassS_HitInf::~dCcMassS_HitInf() {
extern "C" asm void __dt__15dCcMassS_HitInfFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__dt__15dCcMassS_HitInfFv.s"
}
#pragma pop
/* 8051EDE0-8051EDF0 003180 0010+00 1/1 0/0 0/0 .text newData__13dGrass_room_cFP13dGrass_data_c */
void dGrass_room_c::newData(dGrass_data_c* i_data) {
i_data->mp_next = mp_data;
mp_data = i_data;
}
/* 8051EDF0-8051EE8C 003190 009C+00 1/1 0/0 0/0 .text deleteData__13dGrass_room_cFv */
void dGrass_room_c::deleteData() {
while (mp_data != NULL) {
mp_data->m_state = 0;
s8 anm_id = mp_data->field_0x02;
if (anm_id >= 16) {
daGrass_c::getGrass()->deleteAnm(anm_id);
mp_data->field_0x02 = cM_rnd() * FLOAT_LABEL(lit_4600);
}
mp_data = mp_data->mp_next;
}
}
/* 8051EE8C-8051F03C 00322C 01B0+00 1/1 0/0 0/0 .text __ct__15dGrass_packet_cFv */
// matches with ptmf data in right place
#ifdef NONMATCHING
dGrass_packet_c::dGrass_packet_c() {
dGrass_data_c* data_p = m_data;
for (int i = 0; i < 1500; i++) {
data_p->m_state = 0;
data_p++;
}
field_0x10 = 0;
dGrass_anm_c* anm_p = m_anm;
for (int i = 0; i < 112; i++) {
anm_p->m_state = 0;
anm_p++;
}
s16 unused = 0;
for (int i = 0; i < 16; i++) {
setAnm(i, unused);
unused += 0x1000;
}
mp_pos = (Vec*)l_pos;
mp_normal = (Vec*)l_normal;
mp_colors = (GXColor*)l_color;
mp_texCoords = (Vec*)l_texCoord;
mp_kusa9q_DL = l_kusa9q_matDL;
m_kusa9q_DL_size = 0xA0;
mp_kusa9q_14_DL = l_kusa9q_l4_matDL;
m_kusa9q_DL_14_size = 0xA0;
mp_Mkusa_9q_DL = l_M_Kusa_9qDL;
m_Mkusa_9q_DL_size = 0xC0;
mp_Mkusa_9q_cDL = l_M_Kusa_9q_cDL;
m_Mkusa_9q_cDL_size = 0xC0;
field_0x1d714 = 0;
m_deleteRoom = &deleteRoom;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dGrass_packet_c::dGrass_packet_c() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__ct__15dGrass_packet_cFv.s"
}
#pragma pop
#endif
/* 8051F03C-8051FABC 0033DC 0A80+00 1/0 0/0 0/0 .text draw__15dGrass_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void dGrass_packet_c::draw() {
extern "C" asm void draw__15dGrass_packet_cFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/draw__15dGrass_packet_cFv.s"
}
#pragma pop
/* 8051FABC-8051FF88 003E5C 04CC+00 1/1 0/0 0/0 .text calc__15dGrass_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_packet_c::calc() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/calc__15dGrass_packet_cFv.s"
}
#pragma pop
/* 8051FF88-80520030 004328 00A8+00 2/3 0/0 0/1 .text checkGroundY__FR4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm f32 checkGroundY(cXyz& param_0) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/checkGroundY__FR4cXyz.s"
}
#pragma pop
/* 80520030-8052067C 0043D0 064C+00 1/1 0/0 0/0 .text update__15dGrass_packet_cFv */
// mostly matches except literals, some regalloc, and one out of order block
#ifdef NONMATCHING
void dGrass_packet_c::update() {
static s16 mAngleZ[1500];
dGrass_anm_c* anm_p = getAnm();
for (int i = 0; i < 112; i++) {
mDoMtx_stack_c::YrotS(anm_p->m_angY);
mDoMtx_stack_c::XrotM(anm_p->m_angX);
mDoMtx_stack_c::YrotM(-anm_p->m_angY);
cMtx_copy(mDoMtx_stack_c::get(), anm_p->m_animMtx);
anm_p++;
}
dGrass_data_c* data_p = getData();
anm_p = getAnm();
int var_r26 = 0;
cXyz sp1C;
f32 far = mDoLib_clipper::getFar();
mDoLib_clipper::changeFar(far * 1.636364f);
for (int i = 0; i < 1500; i++) {
if (data_p->m_state != 0) {
if (data_p->m_state == 1 && var_r26 < 30) {
data_p->m_pos.y = checkGroundY(data_p->m_pos);
data_p->m_state = 2;
var_r26++;
}
sp1C.set(data_p->m_pos.x, data_p->m_pos.y + 260.0f, data_p->m_pos.z);
if (mDoLib_clipper::clip(j3dSys.getViewMtx(), sp1C, 260.0f)) {
cLib_onBit(data_p->field_0x01, 2);
} else {
cLib_offBit(data_p->field_0x01, 2);
if (data_p->field_0x02 >= 0) {
MtxP mtx = anm_p[data_p->field_0x02].m_animMtx;
mtx[0][3] = data_p->m_pos.x;
mtx[1][3] = data_p->m_pos.y;
mtx[2][3] = data_p->m_pos.z;
if (g_env_light.mInitAnmTimer == 1) {
mAngleZ[i] = 0;
}
f32 temp_f2 = ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f) +
((((s16)data_p->m_pos.z * 3535) & 0xFFF) / 4096.0f);
temp_f2 *= 0.5f;
f32 var_f31;
f32 var_f30;
if (data_p->field_0x05 >= 10) {
var_f31 = temp_f2 * 0.4f + 0.6f;
var_f30 = temp_f2 * 0.3f + 0.7f;
} else {
var_f31 = temp_f2 * 0.3f + 0.7f;
var_f30 = (temp_f2 * 0.3f + 0.7f) * 0.8f;
}
mDoMtx_stack_c::copy(mtx);
if (data_p->field_0x05 >= 7 && data_p->field_0x05 <= 9) {
mDoMtx_stack_c::ZrotM(mAngleZ[i]);
mDoMtx_stack_c::scaleM(var_f31, var_f30 - 0.22f, var_f31);
mDoMtx_stack_c::ZrotM(-mAngleZ[i]);
s16 ang = ((i + 1) & 0xF) * 5.0f + 162.0f;
mAngleZ[i] += ang;
} else {
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
mDoMtx_stack_c::ZrotM(mAngleZ[i]);
}
mDoMtx_stack_c::scaleM(var_f31, var_f30, var_f31);
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
mDoMtx_stack_c::ZrotM(-mAngleZ[i]);
}
if (data_p->field_0x05 >= 10) {
mDoMtx_stack_c::scaleM(2.0f, (i & 3) * 0.1f + 0.64f, 2.0f);
}
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
f32 pow =
dKyw_get_wind_pow() * dKyw_get_wind_pow() * dKyw_get_wind_pow();
s16 ang = (((i + 1) & 0xF) * 25.0f + 3200.0f) * pow;
mAngleZ[i] = mAngleZ[i] + ang;
}
}
cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), data_p->m_modelMtx);
} else {
mDoMtx_stack_c::transS(data_p->m_pos.x, data_p->m_pos.y, data_p->m_pos.z);
mDoMtx_stack_c::YrotM(i * 3535);
if (data_p->field_0x02 < -2) {
mDoMtx_stack_c::scaleM(1.0f, -data_p->field_0x02 / 40.0f, 1.0f);
}
f32 scale = ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f) * 0.3f + 0.7f;
mDoMtx_stack_c::scaleM(scale, scale, scale);
cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), data_p->m_modelMtx);
}
}
}
data_p++;
}
mDoLib_clipper::resetFar();
dComIfGd_getListPacket()->entryImm(this, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_packet_c::update() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/update__15dGrass_packet_cFv.s"
}
#pragma pop
#endif
/* 8052067C-80520770 004A1C 00F4+00 1/1 0/0 0/0 .text
* setData__15dGrass_packet_cFP13dGrass_data_ciR4cXyziUcUcsUc */
void dGrass_packet_c::setData(dGrass_data_c* i_data, int param_1, cXyz& i_pos, int i_roomNo,
u8 i_tableNo, u8 i_itemBitNo, s16 i_addCol, u8 param_7) {
f32 y_pos;
if (fopOvlpM_IsPeek()) {
y_pos = checkGroundY(i_pos);
i_data->m_state = 2;
} else {
y_pos = i_pos.y;
i_data->m_state = 1;
}
i_data->field_0x01 = 2;
i_data->field_0x02 = cM_rndF(FLOAT_LABEL(lit_4600));
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
i_data->m_tableNo = i_tableNo;
i_data->m_itemBitNo = i_itemBitNo;
i_data->m_addCol = i_addCol;
i_data->field_0x05 = param_7;
m_room[i_roomNo].newData(i_data);
field_0x10 = param_1;
}
/* 80520770-80520864 004B10 00F4+00 1/1 0/0 0/0 .text newData__15dGrass_packet_cFR4cXyziUcUcsUc */
dGrass_data_c* dGrass_packet_c::newData(cXyz& i_pos, int i_roomNo, u8 i_tableNo, u8 i_itemBitNo,
s16 i_addCol, u8 param_5) {
dGrass_data_c* data_p = m_data + field_0x10;
for (int i = field_0x10; i < 1500; i++) {
if (data_p->m_state == 0) {
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
return data_p;
}
data_p++;
}
data_p = m_data;
for (int i = 0; i < field_0x10; i++) {
if (data_p->m_state == 0) {
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
return data_p;
}
data_p++;
}
return NULL;
}
/* 80520864-80520898 004C04 0034+00 1/0 0/0 0/0 .text deleteRoom__15dGrass_packet_cFi */
void dGrass_packet_c::deleteRoom(int i_roomNo) {
m_room[i_roomNo].deleteData();
}
/* 80520898-805208E4 004C38 004C+00 2/2 0/0 0/0 .text newAnm__15dGrass_packet_cFv */
int dGrass_packet_c::newAnm() {
dGrass_anm_c* anm_p = m_anm + 16;
for (int i = 16; i < 112; i++) {
if (anm_p->m_state == 0) {
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
return i;
}
anm_p++;
}
return -1;
}
/* 805208E4-8052090C 004C84 0028+00 1/1 0/0 0/0 .text setAnm__15dGrass_packet_cFis */
void dGrass_packet_c::setAnm(int i_idx, s16) {
dGrass_anm_c* anm_p = m_anm + i_idx;
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
}
/* 8052090C-80520928 004CAC 001C+00 1/1 0/0 0/0 .text getSwordTopPos__9daPy_py_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void daPy_py_c::getSwordTopPos() const {
extern "C" asm void getSwordTopPos__9daPy_py_cCFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/getSwordTopPos__9daPy_py_cCFv.s"
}
#pragma pop
/* 80520928-80520934 004CC8 000C+00 1/1 0/0 0/0 .text __ct__13dGrass_room_cFv */
dGrass_room_c::dGrass_room_c() {
mp_data = NULL;
}
/* 80520934-80520940 004CD4 000C+00 1/1 0/0 0/0 .text __ct__12dGrass_anm_cFv */
dGrass_anm_c::dGrass_anm_c() {
m_state = 0;
}
/* 80520940-8052097C 004CE0 003C+00 2/2 0/0 0/0 .text __dt__13dGrass_data_cFv */
dGrass_data_c::~dGrass_data_c() {}
/* 8052097C-80520988 004D1C 000C+00 1/1 0/0 0/0 .text __ct__13dGrass_data_cFv */
dGrass_data_c::dGrass_data_c() {
m_state = 0;
}

View File

@ -23,7 +23,7 @@ static int daKytag14_Execute(kytag14_class* i_this) {
BOOL switch1_set = true;
BOOL switch2_unset = true;
if (dComIfGs_isTmpBit(0x1301)) {
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::NO_TELOP)) {
return 1;
}
@ -84,17 +84,17 @@ static int daKytag14_Delete(kytag14_class*) {
/* 80529B44-80529BE0 000224 009C+00 1/0 0/0 0/0 .text daKytag14_Create__FP10fopAc_ac_c */
static int daKytag14_Create(fopAc_ac_c* i_this) {
fopAcM_SetupActor(i_this, kytag14_class);
kytag14_class* kytag = static_cast<kytag14_class*>(i_this);
kytag14_class* a_this = static_cast<kytag14_class*>(i_this);
kytag->mSavePoint = fopAcM_GetParam(kytag);
kytag->mSaveRoomNo = (fopAcM_GetParam(kytag) >> 8) & 0xFF;
kytag->mEventID1 = kytag->current.angle.x;
kytag->mEventID2 = kytag->current.angle.y;
kytag->mSwitchNo1 = kytag->current.angle.z;
kytag->mSwitchNo2 = (kytag->current.angle.z >> 8) & 0xFF;
a_this->mSavePoint = fopAcM_GetParam(a_this) & 0xFF;
a_this->mSaveRoomNo = (fopAcM_GetParam(a_this) >> 8) & 0xFF;
a_this->mEventID1 = a_this->current.angle.x & 0xFFFF;
a_this->mEventID2 = a_this->current.angle.y & 0xFFFF;
a_this->mSwitchNo1 = a_this->current.angle.z & 0xFF;
a_this->mSwitchNo2 = (a_this->current.angle.z >> 8) & 0xFF;
if (kytag->orig.roomNo != -1) {
kytag->mSaveRoomNo = kytag->orig.roomNo;
if (a_this->orig.roomNo != -1) {
a_this->mSaveRoomNo = a_this->orig.roomNo;
}
return cPhs_COMPLEATE_e;

View File

@ -4,42 +4,15 @@
//
#include "rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/a/d_a_alink.h"
#include "d/a/d_a_npc.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/meter/d_meter2_info.h"
#include "dol2asm.h"
//
// Types:
//
struct daPy_py_c {
static u8 m_midnaActor[4];
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dEvent_manager_c {
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047A78 */ void endCheck(s16);
};
struct dAttHint_c {
/* 800738FC */ void request(fopAc_ac_c*, int);
};
//
// Forward References:
//
@ -53,7 +26,7 @@ extern "C" void execute__12daTagMhint_cFv();
extern "C" static void daTagMhint_Execute__FP12daTagMhint_c();
extern "C" static bool daTagMhint_Draw__FP12daTagMhint_c();
extern "C" extern char const* const d_a_tag_mhint__stringBase0;
extern "C" extern void* g_profile_Tag_Mhint[12];
// extern "C" extern void* g_profile_Tag_Mhint[12];
//
// External References:
@ -84,10 +57,7 @@ extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_meter2_info[248];
extern "C" u8 m_midnaActor__9daPy_py_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@ -100,61 +70,73 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
SECTION_RODATA static f32 const lit_3741 = 10.0f;
COMPILER_STRIP_GATE(0x805A6034, &lit_3741);
/* 805A6038-805A603C 000004 0004+00 0/1 0/0 0/0 .rodata @3742 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3742 = 10000.0f;
COMPILER_STRIP_GATE(0x805A6038, &lit_3742);
#pragma pop
/* 805A603C-805A6040 000008 0004+00 0/1 0/0 0/0 .rodata @3743 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3743 = 100.0f;
COMPILER_STRIP_GATE(0x805A603C, &lit_3743);
#pragma pop
/* 805A56B8-805A58C8 000078 0210+00 1/1 0/0 0/0 .text create__12daTagMhint_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagMhint_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/create__12daTagMhint_cFv.s"
int daTagMhint_c::create() {
fopAcM_SetupActor(this, daTagMhint_c);
field_0x574 = fopAcM_GetParam(this) & 0x3FF;
field_0x57c = (fopAcM_GetParam(this) >> 10) & 0x3FF;
field_0x578 = (fopAcM_GetParam(this) >> 20) & 0x1FF;
field_0x57a = field_0x578;
if ((fopAcM_GetParam(this) >> 0x1F)) {
field_0x56a = 1;
} else {
field_0x56a = 0;
}
field_0x56b = (fopAcM_GetParam(this) >> 0x1D) & 1;
if (daPy_getPlayerActorClass() != NULL) {
field_0x572 = fopAcM_GetID(daPy_getPlayerActorClass()) == mParentPcId;
} else {
field_0x572 = 0;
}
field_0x568 = shape_angle.x & 0xFF;
mSwitch = (shape_angle.x >> 8) & 0xFF;
field_0x56d = shape_angle.y & 0xFF;
mToolEventID = (shape_angle.y >> 8) & 0xFF;
mEventID = i_dComIfGp_getEventManager().getEventIdx(this, mToolEventID);
if ((fopAcM_GetParam(this) >> 0x1E) & 1) {
mScale.x *= FLOAT_LABEL(lit_3741);
mScale.y *= FLOAT_LABEL(lit_3741);
}
field_0x5cc = mScale.x * (mScale.x * 10000.0f);
field_0x5d0 = current.pos.y + mScale.y * 100.0f;
if (!checkNoAttention()) {
stage_arrow_data_class* arrow_data_p =
&dComIfGp_getRoomArrow(fopAcM_GetRoomNo(this))
->mEntries[dComIfGp_getRoomCamera(fopAcM_GetRoomNo(this))
->field_0x4[field_0x56d]
.field_0x10];
mEyePos.set(arrow_data_p->mPosition.x, arrow_data_p->mPosition.y,
arrow_data_p->mPosition.z);
mAttentionInfo.mPosition = mEyePos;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 805A58C8-805A58E8 000288 0020+00 1/0 0/0 0/0 .text daTagMhint_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Create__FP10fopAc_ac_c.s"
static int daTagMhint_Create(fopAc_ac_c* i_this) {
return static_cast<daTagMhint_c*>(i_this)->create();
}
#pragma pop
/* 805A58E8-805A594C 0002A8 0064+00 1/1 0/0 0/0 .text __dt__12daTagMhint_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagMhint_c::~daTagMhint_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/__dt__12daTagMhint_cFv.s"
}
#pragma pop
daTagMhint_c::~daTagMhint_c() {}
/* 805A594C-805A5974 00030C 0028+00 1/0 0/0 0/0 .text daTagMhint_Delete__FP12daTagMhint_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Delete(daTagMhint_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Delete__FP12daTagMhint_c.s"
static int daTagMhint_Delete(daTagMhint_c* i_this) {
i_this->~daTagMhint_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 805A6040-805A6044 00000C 0004+00 1/2 0/0 0/0 .rodata @3803 */
@ -172,6 +154,39 @@ SECTION_DEAD static char const* const stringBase_805A604C = "D_MN04B";
#pragma pop
/* 805A5974-805A5AE4 000334 0170+00 1/1 0/0 0/0 .text eventOrder__12daTagMhint_cFv */
// literals / player ptr re-loads
#ifdef NONMATCHING
void daTagMhint_c::eventOrder() {
if (!i_dComIfGp_event_runCheck()) {
mEvtInfo.i_onCondition(1);
if (!daPy_getPlayerActorClass()->checkPlayerFly() ||
i_dComIfGp_checkPlayerStatus0(0, 0x100000))
{
if (field_0x56a != 0) {
if (checkEventID()) {
fopAcM_orderOtherEventId(this, mEventID, mToolEventID, 0xFFFF, 0, 1);
} else {
fopAcM_orderSpeakEvent(this, 0, 0);
}
} else if (!daPy_getPlayerActorClass()->i_checkMagneBootsOn() ||
strcmp(dComIfGp_getStartStageName(), "D_MN04B") == 0)
{
dComIfGp_att_ZHintRequest(this, 0x1FF);
if (field_0x56f == 0) {
field_0x56f = 1;
if (field_0x57e == 0) {
mDoAud_seStart(Z2SE_NAVI_CALLVOICE, NULL, 0, 0);
}
field_0x57e = 60;
}
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -180,6 +195,7 @@ asm void daTagMhint_c::eventOrder() {
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/eventOrder__12daTagMhint_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 805A6048-805A604C 000014 0004+00 0/1 0/0 0/0 .rodata @3956 */
@ -195,52 +211,166 @@ COMPILER_STRIP_GATE(0x805A6048, &lit_3956);
#pragma pop
/* 805A5AE4-805A6004 0004A4 0520+00 1/1 0/0 0/0 .text execute__12daTagMhint_cFv */
// should match with literals, mDoExt_morf_c::isStop has optimization issues
#ifdef NONMATCHING
int daTagMhint_c::execute() {
daMidna_c* midna_p = daPy_py_c::getMidnaActor();
if (midna_p == NULL) {
return 1;
}
if (field_0x57e != 0) {
field_0x57e--;
}
if (checkNoAttention()) {
mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition;
shape_angle.y = midna_p->shape_angle.y;
mEyePos = mAttentionInfo.mPosition;
} else {
shape_angle.y = fopAcM_searchPlayerAngleY(this);
}
if (mEvtInfo.i_checkCommandDemoAccrpt()) {
if (dComIfGp_evmng_endCheck(mEventID)) {
i_dComIfGp_event_reset();
fopAcM_orderSpeakEvent(this, 3, 0);
field_0x570 = 1;
}
} else if (mEvtInfo.checkCommandTalk()) {
if (!midna_p->checkShadowModeTalkWait()) {
if (field_0x56e == 0) {
mMsgFlow.init(this, shape_angle.z & 0xFFFF, 0, NULL);
field_0x56e = 1;
mDoAud_seStart(Z2SE_NAVI_TALK_START, NULL, 0, 0);
field_0x571 = 0;
} else if (mMsgFlow.doFlow(this, NULL, 0)) {
int sp28;
if (mMsgFlow.getEventId(&sp28) == 7) {
dMeter2Info_setPauseStatus(1);
}
if (field_0x571 == 0) {
field_0x571 = 1;
mDoAud_seStart(Z2SE_NAVI_TALK_END, NULL, 0, 0);
}
bool tmp;
if (midna_p->checkShadowModelDraw()) {
midna_p->setShadowReturn();
tmp = midna_p->checkShadowReturnEnd();
} else {
tmp = 1;
}
if (tmp) {
i_dComIfGp_event_reset();
field_0x570 = 0;
if (field_0x572 != 0 || (field_0x56b != 0 && mSwitch != 0xFF)) {
if (field_0x56b != 0) {
i_fopAcM_onSwitch(this, mSwitch);
}
fopAcM_delete(this);
field_0x578 = field_0x57a;
}
}
}
}
} else {
if (field_0x570 != 0) {
mEvtInfo.i_onCondition(1);
fopAcM_orderSpeakEvent(this, 3, 0);
return 1;
}
if (field_0x57c != 0x3FF &&
i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x57c]))
{
return 1;
}
if (mSwitch != 0xFF && i_fopAcM_isSwitch(this, mSwitch)) {
fopAcM_delete(this);
return 1;
}
field_0x56e = 0;
daPy_py_c* player_p = daPy_getPlayerActorClass();
if (current.pos.y <= player_p->current.pos.y && field_0x5d0 >= player_p->current.pos.y &&
fopAcM_searchPlayerDistanceXZ2(this) < field_0x5cc)
{
if ((field_0x574 == 0x3FF ||
i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x574])) &&
(field_0x568 == 0xFF || i_fopAcM_isSwitch(this, field_0x568)))
{
if (field_0x578 != 0x1FF && field_0x578 != 0 && !i_dComIfGp_event_runCheck()) {
field_0x578--;
}
if (field_0x578 == 0 || field_0x578 == 0x1FF) {
eventOrder();
}
} else {
field_0x578 = field_0x57a;
}
} else {
field_0x578 = field_0x57a;
}
}
if (!mEvtInfo.chkCondition(1)) {
field_0x56f = 0;
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagMhint_c::execute() {
asm int daTagMhint_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/execute__12daTagMhint_cFv.s"
}
#pragma pop
#endif
/* 805A6004-805A6024 0009C4 0020+00 1/0 0/0 0/0 .text daTagMhint_Execute__FP12daTagMhint_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Execute(daTagMhint_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Execute__FP12daTagMhint_c.s"
static int daTagMhint_Execute(daTagMhint_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 805A6024-805A602C 0009E4 0008+00 1/0 0/0 0/0 .text daTagMhint_Draw__FP12daTagMhint_c
*/
static bool daTagMhint_Draw(daTagMhint_c* param_0) {
return true;
static int daTagMhint_Draw(daTagMhint_c* i_this) {
return 1;
}
/* ############################################################################################## */
/* 805A6054-805A6074 -00001 0020+00 1/0 0/0 0/0 .data l_daTagMhint_Method */
SECTION_DATA static void* l_daTagMhint_Method[8] = {
(void*)daTagMhint_Create__FP10fopAc_ac_c,
(void*)daTagMhint_Delete__FP12daTagMhint_c,
(void*)daTagMhint_Execute__FP12daTagMhint_c,
(void*)NULL,
(void*)daTagMhint_Draw__FP12daTagMhint_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagMhint_Method = {
(process_method_func)daTagMhint_Create, (process_method_func)daTagMhint_Delete,
(process_method_func)daTagMhint_Execute, (process_method_func)NULL,
(process_method_func)daTagMhint_Draw,
};
/* 805A6074-805A60A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mhint */
SECTION_DATA extern void* g_profile_Tag_Mhint[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02C10000, (void*)&g_fpcLf_Method,
(void*)0x000005D4, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x00FE0000, (void*)&l_daTagMhint_Method,
(void*)0x00044000, (void*)0x030E0000,
extern actor_process_profile_definition g_profile_Tag_Mhint = {
-3,
7,
-3,
PROC_Tag_Mhint,
&g_fpcLf_Method.mBase,
sizeof(daTagMhint_c),
0,
0,
&g_fopAc_Method.base,
254,
&l_daTagMhint_Method,
0x44000,
3,
14,
};
/* 805A604C-805A604C 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,15 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s
//
/**
* d_bg_s.cpp
* Background (Map) Collision main handler
*/
#include "d/bg/d_bg_s.h"
#include "d/bg/d_bg_s_sph_chk.h"
#include "d/bg/d_bg_w.h"
#include "d/com/d_com_inf_game.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
//
// Forward References:
//
//
// External References:
//
//
// Declarations:
//
/* 800740F4-80074110 06EA34 001C+00 2/2 1/1 0/0 .text Init__11cBgS_ChkElmFv */
void cBgS_ChkElm::Init() {
m_bgw_base_ptr = NULL;
@ -160,7 +147,9 @@ f32 cBgS::GroundCross(cBgS_GndChk* p_gnd) {
return p_gnd->GetNowY();
}
struct cBgS_dzb_data {
// this is identical to cBgD_t except using u32's for the table offsets.
// u32 is needed to match in ConvDzb ?
struct cBgD_t_ {
// Vertex Info
/* 0x00 */ int m_v_num;
/* 0x04 */ u32 m_v_tbl;
@ -185,20 +174,20 @@ struct cBgS_dzb_data {
/* 0x28 */ int m_ti_num;
/* 0x2C */ u32 m_ti_tbl;
/* 0x30 */ u32 field_0x30;
/* 0x30 */ u32 m_flags;
}; // Size: 0x34
struct cBgS_dzb_strgroup {
struct cBgD_Grp_t_ {
u32 strOffset;
u8 data[0x30];
};
/* 80074578-80074618 06EEB8 00A0+00 0/0 1/1 0/0 .text ConvDzb__4cBgSFPv */
void* cBgS::ConvDzb(void* p_dzb) {
cBgS_dzb_data* pbgd = (cBgS_dzb_data*)p_dzb;
cBgD_t_* pbgd = (cBgD_t_*)p_dzb;
if (((pbgd->field_0x30 & 0x80000000) == 0)) {
pbgd->field_0x30 |= 0x80000000;
if (((pbgd->m_flags & 0x80000000) == 0)) {
pbgd->m_flags |= 0x80000000;
} else {
return p_dzb;
}
@ -214,8 +203,8 @@ void* cBgS::ConvDzb(void* p_dzb) {
pbgd->m_ti_tbl += (u32)p_dzb;
for (int i = 0; i < pbgd->m_g_num; i++) {
((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset =
(u32)p_dzb + ((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset;
((cBgD_Grp_t_*)pbgd->m_g_tbl)[i].strOffset =
(u32)p_dzb + ((cBgD_Grp_t_*)pbgd->m_g_tbl)[i].strOffset;
}
return p_dzb;
@ -920,6 +909,3 @@ f32 dBgS_GetNY(cBgS_PolyInfo const& poly) {
dComIfG_Bgsp().GetTriPla(poly, &pla);
return pla.mNormal.y;
}
/* 80450F68-80450F70 000468 0008+00 0/0 1/1 0/0 .sbss None */
u8 data_80450F68[8] __attribute__((aligned(8)));

View File

@ -313,6 +313,9 @@ void dBgS_Acch::GroundCheckInit(dBgS& param_0) {
}
}
/* 80450F68-80450F70 000468 0008+00 0/0 1/1 0/0 .sbss None */
s8 data_80450F68;
/* 80076350-8007654C 070C90 01FC+00 2/2 0/0 0/0 .text GroundCheck__9dBgS_AcchFR4dBgS */
// issues with tmpRoofChk
#ifdef NONMATCHING

View File

@ -32,15 +32,11 @@ bool dBgW_Base::ChkMemoryError() {
/* 8007E6D8-8007E6DC 079018 0004+00 1/0 2/0 0/0 .text
* CallRideCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_c */
void dBgW_Base::CallRideCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1) {
/* empty function */
}
void dBgW_Base::CallRideCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1) {}
/* 8007E6DC-8007E6E0 07901C 0004+00 1/0 2/0 0/0 .text
* CallArrowStickCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_cR4cXyz */
void dBgW_Base::CallArrowStickCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz& param_2) {
/* empty function */
}
void dBgW_Base::CallArrowStickCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1, cXyz& param_2) {}
/* 8007E6E0-8007E6F4 079020 0014+00 0/0 1/1 0/0 .text CalcDiffShapeAngleY__9dBgW_BaseFs
*/

View File

@ -140,86 +140,13 @@ extern "C" u8 sincosTable___5JMath[65536];
// Declarations:
//
/* ############################################################################################## */
/* 803ABDC8-803ABEB8 008EE8 00F0+00 2/2 0/0 0/0 .data __vt__8dBgWKCol */
SECTION_DATA extern void* __vt__8dBgWKCol[60] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8dBgWKColFv,
(void*)ChkMemoryError__9dBgW_BaseFv,
(void*)ChkNotReady__8dBgWKColCFv,
(void*)ChkLock__8dBgWKColCFv,
(void*)ChkMoveBg__8dBgWKColCFv,
(void*)ChkMoveFlag__8dBgWKColCFv,
(void*)GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo,
(void*)GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz,
(void*)GetBnd__8dBgWKColCFv,
(void*)GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo,
(void*)OffMoveFlag__8dBgWKColFv,
(void*)GetTopUnder__8dBgWKColCFPfPf,
(void*)SetOldShapeAngleY__9dBgW_BaseFs,
(void*)LineCheck__8dBgWKColFP11cBgS_LinChk,
(void*)GroundCross__8dBgWKColFP11cBgS_GndChk,
(void*)ShdwDraw__8dBgWKColFP13cBgS_ShdwDraw,
(void*)CaptPoly__8dBgWKColFR13dBgS_CaptPoly,
(void*)WallCorrect__8dBgWKColFP9dBgS_Acch,
(void*)WallCorrectSort__8dBgWKColFP9dBgS_Acch,
(void*)RoofChk__8dBgWKColFP12dBgS_RoofChk,
(void*)SplGrpChk__8dBgWKColFP14dBgS_SplGrpChk,
(void*)SphChk__8dBgWKColFP11dBgS_SphChkPv,
(void*)GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo,
(void*)GetExitId__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetSpecialCode__8dBgWKColFi,
(void*)GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetPolyObjThrough__8dBgWKColFi,
(void*)GetPolyCamThrough__8dBgWKColFi,
(void*)GetPolyLinkThrough__8dBgWKColFi,
(void*)GetPolyArrowThrough__8dBgWKColFi,
(void*)GetPolyHSStick__8dBgWKColFi,
(void*)GetPolyBoomerangThrough__8dBgWKColFi,
(void*)GetPolyRopeThrough__8dBgWKColFi,
(void*)GetPolyBombThrough__8dBgWKColFi,
(void*)GetShdwThrough__8dBgWKColFi,
(void*)GetUnderwaterRoofCode__8dBgWKColFi,
(void*)GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetWallCode__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetIronBallThrough__8dBgWKColFi,
(void*)GetAttackThrough__8dBgWKColFi,
(void*)GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo,
(void*)GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo,
(void*)CrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz,
(void*)TransPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz,
(void*)MatrixCrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz,
(void*)CallRideCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_c,
(void*)CallArrowStickCallBack__9dBgW_BaseFP10fopAc_ac_cP10fopAc_ac_cR4cXyz,
};
/* 8007E6F4-8007E74C 079034 0058+00 0/0 0/0 1/1 .text __ct__8dBgWKColFv */
dBgWKCol::dBgWKCol() {
m_pkc_head = NULL;
}
/* 8007E74C-8007E7D0 07908C 0084+00 1/0 0/0 0/0 .text __dt__8dBgWKColFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgWKCol::~dBgWKCol() {
extern "C" asm void __dt__8dBgWKColFv() {
nofralloc
#include "asm/d/bg/d_bg_w_kcol/__dt__8dBgWKColFv.s"
}
#pragma pop
dBgWKCol::~dBgWKCol() {}
/* 8007E7D0-8007E804 079110 0034+00 0/0 1/1 0/0 .text initKCollision__8dBgWKColFPv */
void dBgWKCol::initKCollision(void* i_kclData) {

View File

@ -2428,11 +2428,11 @@ int dComLbG_PhaseHandler(request_of_phase_process_class* i_phaseReq, cPhs__Handl
void* i_data) {
int phase = cPhs_Handler(i_phaseReq, i_handler, i_data);
switch (phase) {
case 2:
case cPhs_NEXT_e:
phase = dComLbG_PhaseHandler(i_phaseReq, i_handler, i_data);
break;
case 1:
case 3:
case cPhs_LOADING_e:
case cPhs_UNK3_e:
break;
}

View File

@ -7,11 +7,15 @@
#include "MSL_C/stdio.h"
#include "d/d_demo.h"
#include "dol2asm.h"
#include "rel/d/a/d_a_dshutter/d_a_dshutter.h"
#include "rel/d/a/d_a_grass/d_a_grass.h"
#include "rel/d/a/d_a_mirror/d_a_mirror.h"
#include "rel/d/a/d_a_movie_player/d_a_movie_player.h"
#include "rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h"
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
#include "rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h"
#include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h"
#include "rel/d/a/d_a_mirror/d_a_mirror.h"
//
// Types:
@ -23,53 +27,12 @@ struct daYkgr_c {
static u8 m_emitter[4];
};
struct daTagMist_c {
/* 80031CF0 */ static u8 getPlayerNo();
static u8 mPlayerNo;
};
struct daSetBgObj_c {
/* 80031870 */ static const char* getArcName(fopAc_ac_c*);
};
struct daObjMovebox {
struct Act_c {
static void* M_dir_base[2];
};
};
struct dFlower_packet_c {
typedef void (dFlower_packet_c::*DeleteRoomFunc)(int);
static DeleteRoomFunc m_deleteRoom;
};
struct dGrass_packet_c {
typedef void (dGrass_packet_c::*DeleteRoomFunc)(int);
static DeleteRoomFunc m_deleteRoom;
};
struct daGrass_c {
/* 800319C8 */ static void deleteRoomGrass(int);
/* 80031A20 */ static void deleteRoomFlower(int);
static u8 m_myObj[4];
static dGrass_packet_c* m_grass;
static dFlower_packet_c* m_flower;
};
struct daDsh_c {
static f32 OPEN_SIZE;
static f32 OPEN_ACCEL;
static f32 OPEN_SPEED;
static f32 OPEN_BOUND_SPEED;
static f32 OPEN_BOUND_RATIO;
static f32 CLOSE_ACCEL;
static f32 CLOSE_SPEED;
static f32 CLOSE_BOUND_SPEED;
static f32 CLOSE_BOUND_RATIO;
};
//
// Forward References:
//
@ -227,7 +190,8 @@ bool daSus_c::data_c::check(cXyz const& i_pos) {
if ((field_0x8.x <= i_pos.x && i_pos.x <= field_0x14.x) &&
(field_0x8.y <= i_pos.y && i_pos.y <= field_0x14.y) &&
(field_0x8.z <= i_pos.z && i_pos.z <= field_0x14.z)) {
(field_0x8.z <= i_pos.z && i_pos.z <= field_0x14.z))
{
return true;
}
@ -279,7 +243,8 @@ void daSus_c::room_c::add(daSus_c::data_c* i_data) {
daSus_c::data_c* data1 = mpData;
daSus_c::data_c* data2 = data1->getNext();
while (data2 != NULL) {
if (data1->getType() != 0) break;
if (data1->getType() != 0)
break;
data1 = data2;
data2 = data2->getNext();
}
@ -316,8 +281,8 @@ s16 daSus_c::mSetTop;
/* 80031248-800313BC 02BB88 0174+00 0/0 0/0 1/1 .text newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc */
// Issues with mSetTop and m_count__9daArrow_c relocation
#ifdef NONMATCHING
int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 param_3,
u8 param_4, u8 i_type) {
int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 param_3, u8 param_4,
u8 i_type) {
s16 setTop = mSetTop;
daSus_c::data_c* pData = ((daSus_c::data_c*)mData) + setTop;
for (s16 i = setTop; i < 32; pData++, i++) {
@ -347,7 +312,7 @@ int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 p
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daSus_c::newData(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3,
u8 param_4, u8 param_5) {
u8 param_4, u8 param_5) {
nofralloc
#include "asm/d/com/d_com_static/newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc.s"
}
@ -542,8 +507,7 @@ SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_RATIO = -0.4f;
int daTagStream_c::checkArea(cXyz const* param_0) {
cXyz relativePos;
fpoAcM_relativePos(this, param_0, &relativePos);
if (relativePos.y >= 0.0f && relativePos.y <= mScale.y &&
fabsf(relativePos.x) <= mScale.x &&
if (relativePos.y >= 0.0f && relativePos.y <= mScale.y && fabsf(relativePos.x) <= mScale.x &&
fabsf(relativePos.z) <= mScale.z)
{
return 1;
@ -581,34 +545,34 @@ int daMirror_c::remove() {
/* ############################################################################################## */
/* 80424588-80424594 0512A8 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__15dGrass_packet_c */
dGrass_packet_c::DeleteRoomFunc dGrass_packet_c::m_deleteRoom;
dGrass_packet_c::deleteFunc dGrass_packet_c::m_deleteRoom;
/* 80450DAC-80450DB0 0002AC 0004+00 0/0 0/0 2/2 .sbss m_myObj__9daGrass_c */
u8 daGrass_c::m_myObj[4];
daGrass_c* daGrass_c::m_myObj;
/* 80450DB0-80450DB4 0002B0 0004+00 1/1 0/0 11/11 .sbss m_grass__9daGrass_c */
dGrass_packet_c* daGrass_c::m_grass;
/* 800319C8-80031A20 02C308 0058+00 0/0 0/0 1/1 .text deleteRoomGrass__9daGrass_cFi */
void daGrass_c::deleteRoomGrass(int param_0) {
if (m_grass) {
dGrass_packet_c::DeleteRoomFunc func = dGrass_packet_c::m_deleteRoom;
(m_grass->*(func))(param_0);
if (m_grass != NULL) {
dGrass_packet_c::deleteFunc delete_func = dGrass_packet_c::m_deleteRoom;
(m_grass->*(delete_func))(param_0);
}
}
/* ############################################################################################## */
/* 80424594-804245A0 0512B4 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__16dFlower_packet_c */
dFlower_packet_c::DeleteRoomFunc dFlower_packet_c::m_deleteRoom;
dFlower_packet_c::deleteFunc dFlower_packet_c::m_deleteRoom;
/* 80450DB4-80450DB8 0002B4 0004+00 1/1 0/0 9/9 .sbss m_flower__9daGrass_c */
dFlower_packet_c* daGrass_c::m_flower;
/* 80031A20-80031A78 02C360 0058+00 0/0 0/0 1/1 .text deleteRoomFlower__9daGrass_cFi */
void daGrass_c::deleteRoomFlower(int param_0) {
if (m_flower) {
dFlower_packet_c::DeleteRoomFunc func = dFlower_packet_c::m_deleteRoom;
(m_flower->*(func))(param_0);
if (m_flower != NULL) {
dFlower_packet_c::deleteFunc delete_func = dFlower_packet_c::m_deleteRoom;
(m_flower->*(delete_func))(param_0);
}
}
@ -655,7 +619,8 @@ int daTagMagne_c::checkMagnetCode(cBgS_PolyInfo& poly) {
int magCode = dComIfG_Bgsp().GetMagnetCode(poly);
if ((magCode == 1 && mTagMagne->checkMagneA()) || (magCode == 2 && mTagMagne->checkMagneB()) ||
(magCode == 3 && mTagMagne->checkMagneC())) {
(magCode == 3 && mTagMagne->checkMagneC()))
{
return 1;
}
@ -776,8 +741,7 @@ s8 daObjCarry_c::getRoomNo(int idx) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_com_static_cpp() {
nofralloc
asm void __sinit_d_com_static_cpp(){nofralloc
#include "asm/d/com/d_com_static/__sinit_d_com_static_cpp.s"
}
#pragma pop

View File

@ -4,6 +4,7 @@
//
#include "d/d_npc_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "dol2asm.h"
//
@ -52,29 +53,32 @@ extern "C" extern u8 data_80451164[4];
// Declarations:
//
/* ############################################################################################## */
/* 803C2B88-803C2B98 01FCA8 000C+04 2/2 0/0 0/0 .data __vt__16dNpcLib_lookat_c */
SECTION_DATA extern void* __vt__16dNpcLib_lookat_c[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16dNpcLib_lookat_cFv,
/* padding */
NULL,
};
/* 80251314-8025140C 24BC54 00F8+00 0/0 0/0 4/4 .text __ct__16dNpcLib_lookat_cFv */
dNpcLib_lookat_c::dNpcLib_lookat_c() {}
/* 8025140C-80251534 24BD4C 0128+00 0/0 0/0 2/2 .text
* init__16dNpcLib_lookat_cFP8J3DModelPiP5csXyzP5csXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dNpcLib_lookat_c::init(J3DModel* param_0, int* param_1, csXyz* param_2, csXyz* param_3) {
nofralloc
#include "asm/d/d_npc_lib/init__16dNpcLib_lookat_cFP8J3DModelPiP5csXyzP5csXyz.s"
void dNpcLib_lookat_c::init(J3DModel* i_mdl_p, int* param_1, csXyz* param_2, csXyz* param_3) {
int i;
for (i = 0; i < 4; i++) {
field_0xbc[i] = -1;
}
mCount = 0;
for (i = 0; i < 3; i++) {
int a_jntNum = param_1[i];
if (a_jntNum < 0) {
break;
}
mDoMtx_stack_c::copy(i_mdl_p->i_getAnmMtx(a_jntNum));
mDoMtx_stack_c::multVecZero(&field_0x04[mCount]);
field_0xbc[i] = a_jntNum;
field_0x94[i] = param_2[i];
field_0x7c[i] = param_3[i];
mCount++;
}
}
#pragma pop
/* ############################################################################################## */
/* 80454DE8-80454DEC 0033E8 0004+00 3/3 0/0 0/0 .sdata2 @3864 */
@ -111,20 +115,96 @@ SECTION_SDATA2 static f64 lit_3873 = 4503601774854144.0 /* cast s32 to float */;
/* 80251534-80251B60 24BE74 062C+00 0/0 0/0 2/2 .text
* action__16dNpcLib_lookat_cF4cXyz4cXyzP10fopAc_ac_cPA4_fi */
// regswap, equivalent
#ifdef NONMATCHING
void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, Mtx param_3,
int param_4) {
cXyz spA0;
Mtx sp90;
cMtx_copy(param_3, sp90);
sp90[2][3] = 0.0f;
sp90[1][3] = 0.0f;
sp90[0][3] = 0.0f;
mDoMtx_stack_c::copy(sp90);
mDoMtx_stack_c::inverse();
cMtx_copy(mDoMtx_stack_c::get(), sp90);
for (int i = 0; i < mCount; i++) {
spA0 = field_0x04[i] - param_2->current.pos;
mDoMtx_stack_c::transS(param_2->current.pos);
mDoMtx_stack_c::concat(sp90);
mDoMtx_stack_c::multVec(&spA0, &field_0x04[i]);
}
spA0 = param_0 - param_2->current.pos;
mDoMtx_stack_c::transS(param_2->current.pos);
mDoMtx_stack_c::concat(sp90);
mDoMtx_stack_c::multVec(&spA0, &param_0);
spA0 = param_1 - param_2->current.pos;
mDoMtx_stack_c::transS(param_2->current.pos);
mDoMtx_stack_c::concat(sp90);
mDoMtx_stack_c::multVec(&spA0, &field_0x04[mCount]);
setPrm();
update();
cXyz spAC;
cXyz spB8;
f32 tmp = 1.0f;
for (int i = mCount - 1; i >= 0 && param_4 == 1; i--) {
spAC = param_0 - field_0x04[i];
if (!spAC.isZero()) {
spAC.normalize();
spB8 = field_0x04[mCount] - field_0x04[i];
if (!spB8.isZero()) {
spB8.normalize();
s16 svar7 = -cM_atan2s(spAC.y, spAC.absXZ());
s16 svar8 = cM_atan2s(spAC.x, spAC.z);
s16 svar9 = -cM_atan2s(spB8.y, spB8.absXZ());
s16 svar10 = cM_atan2s(spB8.x, spB8.z);
field_0x4c[i].x += (s16)(tmp * (f32)(svar7 - svar9));
field_0x4c[i].y += (s16)(tmp * (f32)(svar8 - svar10));
limitter(&field_0x4c[i].x, field_0x34[i].x, field_0x94[i].x, field_0x7c[i].x);
limitter(&field_0x4c[i].y, field_0x34[i].y, field_0x94[i].y, field_0x7c[i].y);
}
}
tmp *= 0.5f;
update();
}
csXyz sp114(csXyz::Zero);
for (int i = 0; i < 4; i++) {
sp114 += field_0x4c[i];
field_0x64[i].x = sp114.x;
field_0x64[i].y = sp114.y;
field_0x64[i].z = 0;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2,
f32 (*param_3)[4], int param_4) {
asm void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, Mtx param_3,
int param_4) {
nofralloc
#include "asm/d/d_npc_lib/action__16dNpcLib_lookat_cF4cXyz4cXyzP10fopAc_ac_cPA4_fi.s"
}
#pragma pop
#endif
/* 80251B60-80251B64 24C4A0 0004+00 0/0 0/0 2/2 .text dbView__16dNpcLib_lookat_cFv */
void dNpcLib_lookat_c::dbView() {
/* empty function */
}
void dNpcLib_lookat_c::dbView() {}
/* ############################################################################################## */
/* 80454E18-80454E20 003418 0004+04 1/1 0/0 0/0 .sdata2 @3970 */
@ -145,6 +225,29 @@ asm void dNpcLib_lookat_c::setPrm() {
#pragma pop
/* 80251EF8-80252018 24C838 0120+00 1/1 0/0 0/0 .text update__16dNpcLib_lookat_cFv */
// matches with literals
#ifdef NONMATCHING
void dNpcLib_lookat_c::update() {
cXyz sp50;
csXyz sp58(csXyz::Zero);
Mtx m;
for (int i = 0; i < mCount; i++) {
mDoMtx_stack_c::XYZrotS(field_0x34[i]);
cMtx_copy(mDoMtx_stack_c::get(), m);
mDoMtx_stack_c::transS(field_0x04[i]);
sp58.x += field_0x4c[i].x;
sp58.y += field_0x4c[i].y;
mDoMtx_stack_c::ZXYrotM(sp58);
mDoMtx_stack_c::concat(m);
sp50.set(0.0f, 0.0f, field_0xac[i]);
mDoMtx_stack_c::multVec(&sp50, &field_0x04[i + 1]);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -153,24 +256,27 @@ asm void dNpcLib_lookat_c::update() {
#include "asm/d/d_npc_lib/update__16dNpcLib_lookat_cFv.s"
}
#pragma pop
#endif
/* 80252018-80252094 24C958 007C+00 1/1 0/0 0/0 .text limitter__16dNpcLib_lookat_cFPssss */
int dNpcLib_lookat_c::limitter(s16* param_0, s16 param_1, s16 param_2, s16 param_3) {
int limit = param_1 + *param_0;
int dNpcLib_lookat_c::limitter(s16* o_value, s16 param_1, s16 param_2, s16 param_3) {
int limit = param_1 + *o_value;
if (param_2 <= limit) {
if (param_2 <= param_1) {
*param_0 = 0;
*o_value = 0;
} else {
*param_0 -= (s16)(limit - param_2);
*o_value -= (s16)(limit - param_2);
}
}
if (limit <= param_3) {
if (param_1 <= param_3) {
*param_0 = 0;
*o_value = 0;
} else {
*param_0 -= (s16)(limit - param_3);
*o_value -= (s16)(limit - param_3);
}
}
return 1;
}