Work on d_com_static

This commit is contained in:
Tal Hayon 2023-06-28 14:54:53 +03:00
parent 31c37e5dcb
commit a3c4cc486e
15 changed files with 157 additions and 435 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 27.738852% | 997640 | 3596544
.text | 27.769659% | 998748 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 35.356677% | 1421576 | 4020672
Total | 35.384234% | 1422684 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 35.356677% | 1421576 | 4020672
main.dol | 35.384234% | 1422684 | 4020672
RELs | 33.657973% | 3870776 | 11500324
Total | 34.098018% | 5292352 | 15520996
Total | 34.105157% | 5293460 | 15520996
## RELs

View File

@ -1,41 +0,0 @@
lbl_800318B4:
/* 800318B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800318B8 7C 08 02 A6 */ mflr r0
/* 800318BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 800318C0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800318C4 7C 7F 1B 78 */ mr r31, r3
/* 800318C8 38 A1 00 08 */ addi r5, r1, 8
/* 800318CC 4B FE C0 35 */ bl fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz
/* 800318D0 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 800318D4 C0 02 83 54 */ lfs f0, lit_4338(r2)
/* 800318D8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800318DC 4C 41 13 82 */ cror 2, 1, 2
/* 800318E0 40 82 00 54 */ bne lbl_80031934
/* 800318E4 C0 1F 04 F0 */ lfs f0, 0x4f0(r31)
/* 800318E8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800318EC 4C 40 13 82 */ cror 2, 0, 2
/* 800318F0 40 82 00 44 */ bne lbl_80031934
/* 800318F4 C0 01 00 08 */ lfs f0, 8(r1)
/* 800318F8 FC 00 02 10 */ fabs f0, f0
/* 800318FC FC 20 00 18 */ frsp f1, f0
/* 80031900 C0 1F 04 EC */ lfs f0, 0x4ec(r31)
/* 80031904 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80031908 4C 40 13 82 */ cror 2, 0, 2
/* 8003190C 40 82 00 28 */ bne lbl_80031934
/* 80031910 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80031914 FC 00 02 10 */ fabs f0, f0
/* 80031918 FC 20 00 18 */ frsp f1, f0
/* 8003191C C0 1F 04 F4 */ lfs f0, 0x4f4(r31)
/* 80031920 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80031924 4C 40 13 82 */ cror 2, 0, 2
/* 80031928 40 82 00 0C */ bne lbl_80031934
/* 8003192C 38 60 00 01 */ li r3, 1
/* 80031930 48 00 00 08 */ b lbl_80031938
lbl_80031934:
/* 80031934 38 60 00 00 */ li r3, 0
lbl_80031938:
/* 80031938 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003193C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80031940 7C 08 03 A6 */ mtlr r0
/* 80031944 38 21 00 20 */ addi r1, r1, 0x20
/* 80031948 4E 80 00 20 */ blr

View File

@ -1,58 +0,0 @@
lbl_800314D4:
/* 800314D4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800314D8 7C 08 02 A6 */ mflr r0
/* 800314DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 800314E0 39 61 00 20 */ addi r11, r1, 0x20
/* 800314E4 48 33 0C F5 */ bl _savegpr_28
/* 800314E8 7C 7F 1B 78 */ mr r31, r3
/* 800314EC 88 03 04 96 */ lbz r0, 0x496(r3)
/* 800314F0 28 00 00 01 */ cmplwi r0, 1
/* 800314F4 41 82 00 98 */ beq lbl_8003158C
/* 800314F8 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 800314FC 28 00 00 05 */ cmplwi r0, 5
/* 80031500 41 82 00 8C */ beq lbl_8003158C
/* 80031504 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */
/* 80031508 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */
/* 8003150C 7C 1E 03 78 */ mr r30, r0
/* 80031510 3B A0 00 00 */ li r29, 0
/* 80031514 3B 80 00 00 */ li r28, 0
/* 80031518 48 00 00 34 */ b lbl_8003154C
lbl_8003151C:
/* 8003151C 88 1E 00 00 */ lbz r0, 0(r30)
/* 80031520 7C 00 07 75 */ extsb. r0, r0
/* 80031524 41 80 00 20 */ blt lbl_80031544
/* 80031528 88 1E 00 04 */ lbz r0, 4(r30)
/* 8003152C 28 00 00 00 */ cmplwi r0, 0
/* 80031530 40 82 00 14 */ bne lbl_80031544
/* 80031534 7F C3 F3 78 */ mr r3, r30
/* 80031538 7F E4 FB 78 */ mr r4, r31
/* 8003153C 4B FF FB 8D */ bl check__Q27daSus_c6data_cFP10fopAc_ac_c
/* 80031540 7F BD 1B 78 */ or r29, r29, r3
lbl_80031544:
/* 80031544 3B DE 00 24 */ addi r30, r30, 0x24
/* 80031548 3B 9C 00 01 */ addi r28, r28, 1
lbl_8003154C:
/* 8003154C 7F 80 07 34 */ extsh r0, r28
/* 80031550 2C 00 00 20 */ cmpwi r0, 0x20
/* 80031554 41 80 FF C8 */ blt lbl_8003151C
/* 80031558 57 A3 06 3E */ clrlwi r3, r29, 0x18
/* 8003155C 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18
/* 80031560 41 82 00 2C */ beq lbl_8003158C
/* 80031564 54 60 07 BE */ clrlwi r0, r3, 0x1e
/* 80031568 2C 00 00 03 */ cmpwi r0, 3
/* 8003156C 40 82 00 14 */ bne lbl_80031580
/* 80031570 80 1F 04 9C */ lwz r0, 0x49c(r31)
/* 80031574 64 00 20 00 */ oris r0, r0, 0x2000
/* 80031578 90 1F 04 9C */ stw r0, 0x49c(r31)
/* 8003157C 48 00 00 10 */ b lbl_8003158C
lbl_80031580:
/* 80031580 80 1F 04 9C */ lwz r0, 0x49c(r31)
/* 80031584 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 80031588 90 1F 04 9C */ stw r0, 0x49c(r31)
lbl_8003158C:
/* 8003158C 39 61 00 20 */ addi r11, r1, 0x20
/* 80031590 48 33 0C 95 */ bl _restgpr_28
/* 80031594 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80031598 7C 08 03 A6 */ mtlr r0
/* 8003159C 38 21 00 20 */ addi r1, r1, 0x20
/* 800315A0 4E 80 00 20 */ blr

View File

@ -1,45 +0,0 @@
lbl_80031434:
/* 80031434 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80031438 7C 08 02 A6 */ mflr r0
/* 8003143C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80031440 39 61 00 20 */ addi r11, r1, 0x20
/* 80031444 48 33 0D 95 */ bl _savegpr_28
/* 80031448 7C 9C 23 78 */ mr r28, r4
/* 8003144C 3C 80 80 42 */ lis r4, mData__7daSus_c@ha /* 0x80423FFC@ha */
/* 80031450 38 04 3F FC */ addi r0, r4, mData__7daSus_c@l /* 0x80423FFC@l */
/* 80031454 7C 1E 03 78 */ mr r30, r0
/* 80031458 3B A0 00 00 */ li r29, 0
/* 8003145C 7C 7F 07 74 */ extsb r31, r3
/* 80031460 48 00 00 4C */ b lbl_800314AC
lbl_80031464:
/* 80031464 88 7E 00 00 */ lbz r3, 0(r30)
/* 80031468 7C 60 07 75 */ extsb. r0, r3
/* 8003146C 41 80 00 38 */ blt lbl_800314A4
/* 80031470 7C 60 07 74 */ extsb r0, r3
/* 80031474 7C 1F 00 00 */ cmpw r31, r0
/* 80031478 40 82 00 2C */ bne lbl_800314A4
/* 8003147C 88 1E 00 04 */ lbz r0, 4(r30)
/* 80031480 28 00 00 00 */ cmplwi r0, 0
/* 80031484 41 82 00 20 */ beq lbl_800314A4
/* 80031488 7F C3 F3 78 */ mr r3, r30
/* 8003148C 7F 84 E3 78 */ mr r4, r28
/* 80031490 4B FF FB A9 */ bl check__Q27daSus_c6data_cFRC4cXyz
/* 80031494 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80031498 41 82 00 0C */ beq lbl_800314A4
/* 8003149C 38 60 00 01 */ li r3, 1
/* 800314A0 48 00 00 1C */ b lbl_800314BC
lbl_800314A4:
/* 800314A4 3B DE 00 24 */ addi r30, r30, 0x24
/* 800314A8 3B BD 00 01 */ addi r29, r29, 1
lbl_800314AC:
/* 800314AC 7F A0 07 34 */ extsh r0, r29
/* 800314B0 2C 00 00 20 */ cmpwi r0, 0x20
/* 800314B4 41 80 FF B0 */ blt lbl_80031464
/* 800314B8 38 60 00 00 */ li r3, 0
lbl_800314BC:
/* 800314BC 39 61 00 20 */ addi r11, r1, 0x20
/* 800314C0 48 33 0D 65 */ bl _restgpr_28
/* 800314C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800314C8 7C 08 03 A6 */ mtlr r0
/* 800314CC 38 21 00 20 */ addi r1, r1, 0x20
/* 800314D0 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_80031A20:
/* 80031A20 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80031A24 7C 08 02 A6 */ mflr r0
/* 80031A28 90 01 00 24 */ stw r0, 0x24(r1)
/* 80031A2C 7C 64 1B 78 */ mr r4, r3
/* 80031A30 80 6D 88 34 */ lwz r3, m_flower__9daGrass_c(r13)
/* 80031A34 28 03 00 00 */ cmplwi r3, 0
/* 80031A38 41 82 00 30 */ beq lbl_80031A68
/* 80031A3C 3C A0 80 42 */ lis r5, m_deleteRoom__16dFlower_packet_c@ha /* 0x80424594@ha */
/* 80031A40 38 C5 45 94 */ addi r6, r5, m_deleteRoom__16dFlower_packet_c@l /* 0x80424594@l */
/* 80031A44 80 A6 00 00 */ lwz r5, 0(r6)
/* 80031A48 80 06 00 04 */ lwz r0, 4(r6)
/* 80031A4C 90 A1 00 08 */ stw r5, 8(r1)
/* 80031A50 90 01 00 0C */ stw r0, 0xc(r1)
/* 80031A54 80 06 00 08 */ lwz r0, 8(r6)
/* 80031A58 90 01 00 10 */ stw r0, 0x10(r1)
/* 80031A5C 39 81 00 08 */ addi r12, r1, 8
/* 80031A60 48 33 06 25 */ bl __ptmf_scall
/* 80031A64 60 00 00 00 */ nop
lbl_80031A68:
/* 80031A68 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80031A6C 7C 08 03 A6 */ mtlr r0
/* 80031A70 38 21 00 20 */ addi r1, r1, 0x20
/* 80031A74 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_800319C8:
/* 800319C8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800319CC 7C 08 02 A6 */ mflr r0
/* 800319D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 800319D4 7C 64 1B 78 */ mr r4, r3
/* 800319D8 80 6D 88 30 */ lwz r3, m_grass__9daGrass_c(r13)
/* 800319DC 28 03 00 00 */ cmplwi r3, 0
/* 800319E0 41 82 00 30 */ beq lbl_80031A10
/* 800319E4 3C A0 80 42 */ lis r5, m_deleteRoom__15dGrass_packet_c@ha /* 0x80424588@ha */
/* 800319E8 38 C5 45 88 */ addi r6, r5, m_deleteRoom__15dGrass_packet_c@l /* 0x80424588@l */
/* 800319EC 80 A6 00 00 */ lwz r5, 0(r6)
/* 800319F0 80 06 00 04 */ lwz r0, 4(r6)
/* 800319F4 90 A1 00 08 */ stw r5, 8(r1)
/* 800319F8 90 01 00 0C */ stw r0, 0xc(r1)
/* 800319FC 80 06 00 08 */ lwz r0, 8(r6)
/* 80031A00 90 01 00 10 */ stw r0, 0x10(r1)
/* 80031A04 39 81 00 08 */ addi r12, r1, 8
/* 80031A08 48 33 06 7D */ bl __ptmf_scall
/* 80031A0C 60 00 00 00 */ nop
lbl_80031A10:
/* 80031A10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80031A14 7C 08 03 A6 */ mtlr r0
/* 80031A18 38 21 00 20 */ addi r1, r1, 0x20
/* 80031A1C 4E 80 00 20 */ blr

View File

@ -1,20 +0,0 @@
lbl_8003194C:
/* 8003194C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80031950 7C 08 02 A6 */ mflr r0
/* 80031954 90 01 00 14 */ stw r0, 0x14(r1)
/* 80031958 7C 64 1B 78 */ mr r4, r3
/* 8003195C 80 6D 88 28 */ lwz r3, m_myObj__10daMirror_c(r13)
/* 80031960 28 03 00 00 */ cmplwi r3, 0
/* 80031964 40 82 00 0C */ bne lbl_80031970
/* 80031968 38 60 00 00 */ li r3, 0
/* 8003196C 48 00 00 14 */ b lbl_80031980
lbl_80031970:
/* 80031970 3C A0 80 42 */ lis r5, m_entryModel__10daMirror_c@ha /* 0x8042457C@ha */
/* 80031974 39 85 45 7C */ addi r12, r5, m_entryModel__10daMirror_c@l /* 0x8042457C@l */
/* 80031978 48 33 07 0D */ bl __ptmf_scall
/* 8003197C 60 00 00 00 */ nop
lbl_80031980:
/* 80031980 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80031984 7C 08 03 A6 */ mtlr r0
/* 80031988 38 21 00 10 */ addi r1, r1, 0x10
/* 8003198C 4E 80 00 20 */ blr

View File

@ -1,30 +0,0 @@
lbl_800315A4:
/* 800315A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800315A8 7C 08 02 A6 */ mflr r0
/* 800315AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800315B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800315B4 93 C1 00 08 */ stw r30, 8(r1)
/* 800315B8 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */
/* 800315BC 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */
/* 800315C0 7C 1F 03 78 */ mr r31, r0
/* 800315C4 3B C0 00 00 */ li r30, 0
/* 800315C8 48 00 00 20 */ b lbl_800315E8
lbl_800315CC:
/* 800315CC 88 1F 00 00 */ lbz r0, 0(r31)
/* 800315D0 7C 00 07 75 */ extsb. r0, r0
/* 800315D4 41 80 00 0C */ blt lbl_800315E0
/* 800315D8 7F E3 FB 78 */ mr r3, r31
/* 800315DC 4B FF FB 75 */ bl execute__Q27daSus_c6data_cFv
lbl_800315E0:
/* 800315E0 3B FF 00 24 */ addi r31, r31, 0x24
/* 800315E4 3B DE 00 01 */ addi r30, r30, 1
lbl_800315E8:
/* 800315E8 7F C0 07 34 */ extsh r0, r30
/* 800315EC 2C 00 00 20 */ cmpwi r0, 0x20
/* 800315F0 41 80 FF DC */ blt lbl_800315CC
/* 800315F4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800315F8 83 C1 00 08 */ lwz r30, 8(r1)
/* 800315FC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80031600 7C 08 03 A6 */ mtlr r0
/* 80031604 38 21 00 10 */ addi r1, r1, 0x10
/* 80031608 4E 80 00 20 */ blr

View File

@ -1,6 +0,0 @@
lbl_80031D24:
/* 80031D24 1C 83 00 0C */ mulli r4, r3, 0xc
/* 80031D28 3C 60 80 42 */ lis r3, mPos__12daObjCarry_c@ha /* 0x804245AC@ha */
/* 80031D2C 38 03 45 AC */ addi r0, r3, mPos__12daObjCarry_c@l /* 0x804245AC@l */
/* 80031D30 7C 60 22 14 */ add r3, r0, r4
/* 80031D34 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_80031990:
/* 80031990 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80031994 7C 08 02 A6 */ mflr r0
/* 80031998 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003199C 80 6D 88 28 */ lwz r3, m_myObj__10daMirror_c(r13)
/* 800319A0 28 03 00 00 */ cmplwi r3, 0
/* 800319A4 40 82 00 0C */ bne lbl_800319B0
/* 800319A8 38 60 00 00 */ li r3, 0
/* 800319AC 48 00 00 0C */ b lbl_800319B8
lbl_800319B0:
/* 800319B0 4B FE 82 CD */ bl fopAcM_delete__FP10fopAc_ac_c
/* 800319B4 38 60 00 01 */ li r3, 1
lbl_800319B8:
/* 800319B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800319BC 7C 08 03 A6 */ mtlr r0
/* 800319C0 38 21 00 10 */ addi r1, r1, 0x10
/* 800319C4 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_800313BC:
/* 800313BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800313C0 7C 08 02 A6 */ mflr r0
/* 800313C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800313C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800313CC 93 C1 00 08 */ stw r30, 8(r1)
/* 800313D0 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */
/* 800313D4 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */
/* 800313D8 7C 1F 03 78 */ mr r31, r0
/* 800313DC 3B C0 00 00 */ li r30, 0
lbl_800313E0:
/* 800313E0 7F E3 FB 78 */ mr r3, r31
/* 800313E4 4B FF FB D9 */ bl reset__Q27daSus_c6data_cFv
/* 800313E8 3B DE 00 01 */ addi r30, r30, 1
/* 800313EC 2C 1E 00 20 */ cmpwi r30, 0x20
/* 800313F0 3B FF 00 24 */ addi r31, r31, 0x24
/* 800313F4 41 80 FF EC */ blt lbl_800313E0
/* 800313F8 3C 60 80 42 */ lis r3, mRoom__7daSus_c@ha /* 0x8042447C@ha */
/* 800313FC 38 03 44 7C */ addi r0, r3, mRoom__7daSus_c@l /* 0x8042447C@l */
/* 80031400 7C 04 03 78 */ mr r4, r0
/* 80031404 38 60 00 00 */ li r3, 0
/* 80031408 38 00 00 40 */ li r0, 0x40
/* 8003140C 7C 09 03 A6 */ mtctr r0
lbl_80031410:
/* 80031410 90 64 00 00 */ stw r3, 0(r4)
/* 80031414 38 84 00 04 */ addi r4, r4, 4
/* 80031418 42 00 FF F8 */ bdnz lbl_80031410
/* 8003141C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80031420 83 C1 00 08 */ lwz r30, 8(r1)
/* 80031424 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80031428 7C 08 03 A6 */ mtlr r0
/* 8003142C 38 21 00 10 */ addi r1, r1, 0x10
/* 80031430 4E 80 00 20 */ blr

View File

@ -1,12 +0,0 @@
lbl_80031D38:
/* 80031D38 C0 04 00 00 */ lfs f0, 0(r4)
/* 80031D3C 1C 03 00 0C */ mulli r0, r3, 0xc
/* 80031D40 3C 60 80 42 */ lis r3, mPos__12daObjCarry_c@ha /* 0x804245AC@ha */
/* 80031D44 38 63 45 AC */ addi r3, r3, mPos__12daObjCarry_c@l /* 0x804245AC@l */
/* 80031D48 7C 03 05 2E */ stfsx f0, r3, r0
/* 80031D4C C0 04 00 04 */ lfs f0, 4(r4)
/* 80031D50 7C 63 02 14 */ add r3, r3, r0
/* 80031D54 D0 03 00 04 */ stfs f0, 4(r3)
/* 80031D58 C0 04 00 08 */ lfs f0, 8(r4)
/* 80031D5C D0 03 00 08 */ stfs f0, 8(r3)
/* 80031D60 4E 80 00 20 */ blr

View File

@ -19,6 +19,8 @@ public:
void setNext(data_c* i_next) { mpNext = i_next; }
data_c* getNext() { return mpNext; }
u8 getType() { return mType; }
bool isUsed() { return mRoomNo < 0; }
s8 getRoomNo() { return mRoomNo; }
/* 0x00 */ s8 mRoomNo;
/* 0x01 */ bool field_0x1;
@ -35,11 +37,12 @@ public:
/* 80031190 */ void add(daSus_c::data_c*);
/* 800311FC */ void reset();
/* 80031EE4 */ room_c();
void init() { mpData = NULL; }
/* 0x0 */ data_c* mpData;
}; // Size: 0x4
/* 80031248 */ static void newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 80031248 */ static int newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 800313BC */ void reset();
/* 800314D4 */ static void check(fopAc_ac_c*);
/* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos);

View File

@ -29,8 +29,8 @@ public:
/* 80031CF8 */ static void clrSaveFlag();
/* 80031D04 */ static void setSaveFlag();
/* 80031D10 */ static bool chkSaveFlag();
/* 80031D24 */ void getPos(int);
/* 80031D38 */ void savePos(int, cXyz);
/* 80031D24 */ static const cXyz& getPos(int);
/* 80031D38 */ static void savePos(int, cXyz);
/* 80031D64 */ static void onSttsFlag(int, u8);
/* 80031D78 */ static void offSttsFlag(int, u8);
/* 80031D8C */ static u8 chkSttsFlag(int, u8);
@ -185,7 +185,7 @@ public:
s32 getType() { return mType; }
static u8 const mData[2072];
static u8 mPos[60];
static Vec mPos[5];
static u8 mSttsFlag[5];
static s8 mRoomNo[5];
static bool mSaveFlag;

View File

@ -13,6 +13,7 @@
#include "rel/d/a/d_a_movie_player/d_a_movie_player.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_stream/d_a_tag_stream.h"
//
// Types:
@ -24,12 +25,6 @@ struct daYkgr_c {
static u8 m_emitter[4];
};
struct daTagStream_c {
/* 800318B4 */ void checkArea(cXyz const*);
static u8 m_top[4];
};
struct daTagMist_c {
/* 80031CF0 */ static u8 getPlayerNo();
@ -46,21 +41,35 @@ struct daObjMovebox {
};
};
struct daMirror_c {
/* 8003194C */ void entry(J3DModel*);
/* 80031990 */ void remove();
struct dMirror_packet_c {
};
static u8 m_entryModel[12];
static u8 m_myObj[4];
struct daMirror_c: fopAc_ac_c {
/* 8003194C */ static int entry(J3DModel*);
/* 80031990 */ static int remove();
typedef int (daMirror_c::*entryModelFunc)(J3DModel*);
static entryModelFunc m_entryModel;
static daMirror_c* m_myObj;
};
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 */ void deleteRoomGrass(int);
/* 80031A20 */ void deleteRoomFlower(int);
/* 800319C8 */ static void deleteRoomGrass(int);
/* 80031A20 */ static void deleteRoomFlower(int);
static u8 m_myObj[4];
static u8 m_grass[4];
static u8 m_flower[4];
static dGrass_packet_c* m_grass;
static dFlower_packet_c* m_flower;
};
struct daDsh_c {
@ -75,14 +84,6 @@ struct daDsh_c {
static f32 CLOSE_BOUND_RATIO;
};
struct dGrass_packet_c {
static u8 m_deleteRoom[12];
};
struct dFlower_packet_c {
static u8 m_deleteRoom[12];
};
//
// Forward References:
//
@ -327,55 +328,102 @@ s16 m_count__9daArrow_c;
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) {
s16 setTop = mSetTop;
daSus_c::data_c* pData = ((daSus_c::data_c*)mData) + setTop;
for (s16 i = setTop; i < 32; pData++, i++) {
if (pData->isUsed()) {
pData->set(i_roomNo, param_1, param_2, param_3, param_4, i_type);
daSus_c::room_c* pRoom = ((daSus_c::room_c*)mRoom) + i_roomNo;
pRoom->add(pData);
mSetTop = (i + 1) % 32;
return 1;
}
}
pData = ((daSus_c::data_c*)mData);
for (s16 i = 0; i < setTop; pData++, i++) {
if (pData->isUsed()) {
pData->set(i_roomNo, param_1, param_2, param_3, param_4, i_type);
((daSus_c::room_c*)mRoom)[i_roomNo].add(pData);
mSetTop = (i + 1) % 32;
return 1;
}
}
return 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::newData(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3,
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) {
nofralloc
#include "asm/d/com/d_com_static/newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc.s"
}
#pragma pop
#endif
/* 800313BC-80031434 02BCFC 0078+00 0/0 1/1 0/0 .text reset__7daSus_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::reset() {
nofralloc
#include "asm/d/com/d_com_static/reset__7daSus_cFv.s"
void daSus_c::reset() {
daSus_c::data_c* pData = (daSus_c::data_c*)mData;
for (int i = 0; i < 0x20; i++, pData++) {
pData->reset();
}
daSus_c::room_c* pRoom = (daSus_c::room_c*)mRoom;
for (int i = 0; i < 0x40; i++, pRoom++) {
pRoom->init();
}
}
#pragma pop
/* 80031434-800314D4 02BD74 00A0+00 0/0 4/4 0/0 .text check__7daSus_cFScRC4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool daSus_c::check(s8 i_roomNo, cXyz const& i_pos) {
nofralloc
#include "asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s"
bool daSus_c::check(s8 i_roomNo, cXyz const& i_pos) {
daSus_c::data_c* pData = (daSus_c::data_c*)mData;
for (s16 i = 0; i < 0x20; pData++, i++) {
if (!pData->isUsed() && i_roomNo == pData->getRoomNo() && pData->getType()) {
if (pData->check(i_pos)) {
return true;
}
}
}
return false;
}
#pragma pop
/* 800314D4-800315A4 02BE14 00D0+00 0/0 1/1 0/0 .text check__7daSus_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::check(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s"
void daSus_c::check(fopAc_ac_c* i_actor) {
if (fopAcM_GetGroup(i_actor) != 1 && fopAcM_GetGroup(i_actor) != 5) {
daSus_c::data_c* pData = (daSus_c::data_c*)mData;
u8 res = 0;
for (s16 i = 0; i < 0x20; pData++, i++) {
if (!pData->isUsed() && pData->getType() == 0) {
res |= pData->check(i_actor);
}
}
if ((res & 0x80) != 0) {
if ((res & 3) == 3) {
fopAcM_OnStatus(i_actor, 0x20000000);
} else {
fopAcM_OffStatus(i_actor, 0x20000000);
}
}
}
}
#pragma pop
/* 800315A4-8003160C 02BEE4 0068+00 0/0 2/2 0/0 .text execute__7daSus_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::execute() {
nofralloc
#include "asm/d/com/d_com_static/execute__7daSus_cFv.s"
void daSus_c::execute() {
daSus_c::data_c* pData = (daSus_c::data_c*)mData;
for (s16 i = 0; i < 0x20; pData++, i++) {
if (!pData->isUsed()) {
pData->execute();
}
}
}
#pragma pop
/* 8003160C-80031648 02BF4C 003C+00 0/0 0/0 1/1 .text daNpcMsg_setEvtNum__FUc */
int daNpcMsg_setEvtNum(u8 iEvtNum) {
@ -503,91 +551,80 @@ SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_SPEED = 30.0f;
/* 80451D50-80451D54 000350 0004+00 0/0 0/0 1/1 .sdata2 CLOSE_BOUND_RATIO__7daDsh_c */
SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_RATIO = -0.4f;
/* 80451D54-80451D58 000354 0004+00 1/1 0/0 0/0 .sdata2 @4338 */
SECTION_SDATA2 static u8 lit_4338[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 800318B4-8003194C 02C1F4 0098+00 0/0 1/1 0/0 .text checkArea__13daTagStream_cFPC4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagStream_c::checkArea(cXyz const* param_0) {
nofralloc
#include "asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s"
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 &&
fabsf(relativePos.z) <= mScale.z)
{
return 1;
}
return 0;
}
#pragma pop
/* ############################################################################################## */
/* 8042457C-80424588 05129C 000C+00 1/2 0/0 1/1 .bss m_entryModel__10daMirror_c */
u8 daMirror_c::m_entryModel[12];
daMirror_c::entryModelFunc daMirror_c::m_entryModel;
/* 80450DA4-80450DA8 0002A4 0004+00 0/0 1/1 2/2 .sbss m_top__13daTagStream_c */
u8 daTagStream_c::m_top[4];
daTagStream_c* daTagStream_c::m_top;
/* 80450DA8-80450DAC 0002A8 0004+00 2/2 0/0 4/4 .sbss m_myObj__10daMirror_c */
u8 daMirror_c::m_myObj[4];
daMirror_c* daMirror_c::m_myObj;
/* 8003194C-80031990 02C28C 0044+00 0/0 1/1 9/9 .text entry__10daMirror_cFP8J3DModel */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMirror_c::entry(J3DModel* param_0) {
nofralloc
#include "asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s"
int daMirror_c::entry(J3DModel* param_0) {
if (m_myObj == NULL) {
return 0;
}
return (m_myObj->*(daMirror_c::m_entryModel))(param_0);
}
#pragma pop
/* 80031990-800319C8 02C2D0 0038+00 0/0 0/0 2/2 .text remove__10daMirror_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMirror_c::remove() {
nofralloc
#include "asm/d/com/d_com_static/remove__10daMirror_cFv.s"
int daMirror_c::remove() {
if (m_myObj == NULL) {
return 0;
}
fopAcM_delete(m_myObj);
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80424588-80424594 0512A8 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__15dGrass_packet_c */
u8 dGrass_packet_c::m_deleteRoom[12];
dGrass_packet_c::DeleteRoomFunc 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];
/* 80450DB0-80450DB4 0002B0 0004+00 1/1 0/0 11/11 .sbss m_grass__9daGrass_c */
u8 daGrass_c::m_grass[4];
dGrass_packet_c* daGrass_c::m_grass;
/* 800319C8-80031A20 02C308 0058+00 0/0 0/0 1/1 .text deleteRoomGrass__9daGrass_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daGrass_c::deleteRoomGrass(int param_0) {
nofralloc
#include "asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s"
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);
}
}
#pragma pop
/* ############################################################################################## */
/* 80424594-804245A0 0512B4 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__16dFlower_packet_c */
u8 dFlower_packet_c::m_deleteRoom[12];
dFlower_packet_c::DeleteRoomFunc dFlower_packet_c::m_deleteRoom;
/* 80450DB4-80450DB8 0002B4 0004+00 1/1 0/0 9/9 .sbss m_flower__9daGrass_c */
u8 daGrass_c::m_flower[4];
dFlower_packet_c* daGrass_c::m_flower;
/* 80031A20-80031A78 02C360 0058+00 0/0 0/0 1/1 .text deleteRoomFlower__9daGrass_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daGrass_c::deleteRoomFlower(int param_0) {
nofralloc
#include "asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s"
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);
}
}
#pragma pop
/* ############################################################################################## */
/* 80450DB8-80450DBC 0002B8 0004+00 4/4 0/0 2/2 .sbss m_myObj__6daMP_c */
@ -702,27 +739,19 @@ static u8 lit_4480[12];
#pragma pop
/* 804245AC-804245E8 0512CC 003C+00 3/4 0/0 0/0 .bss mPos__12daObjCarry_c */
u8 daObjCarry_c::mPos[60];
Vec daObjCarry_c::mPos[5];
/* 80031D24-80031D38 02C664 0014+00 0/0 0/0 1/1 .text getPos__12daObjCarry_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjCarry_c::getPos(int param_0) {
nofralloc
#include "asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s"
const cXyz& daObjCarry_c::getPos(int param_0) {
return *(cXyz*)&mPos[param_0];
}
#pragma pop
/* 80031D38-80031D64 02C678 002C+00 0/0 0/0 2/2 .text savePos__12daObjCarry_cFi4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjCarry_c::savePos(int param_0, cXyz param_1) {
nofralloc
#include "asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s"
void daObjCarry_c::savePos(int param_0, cXyz param_1) {
mPos[param_0].x = param_1.x;
mPos[param_0].y = param_1.y;
mPos[param_0].z = param_1.z;
}
#pragma pop
/* ############################################################################################## */
/* 80450DC4-80450DCC 0002C4 0005+03 3/3 0/0 0/0 .sbss mSttsFlag__12daObjCarry_c */