diff --git a/asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s b/asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s deleted file mode 100644 index d022c155ed7..00000000000 --- a/asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80115C20: -/* 80115C20 38 A0 00 00 */ li r5, 0 -/* 80115C24 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80115C28 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80115C2C 88 04 4F AD */ lbz r0, 0x4fad(r4) -/* 80115C30 28 00 00 00 */ cmplwi r0, 0 -/* 80115C34 40 82 00 10 */ bne lbl_80115C44 -/* 80115C38 A0 03 06 04 */ lhz r0, 0x604(r3) -/* 80115C3C 2C 00 00 00 */ cmpwi r0, 0 -/* 80115C40 41 82 00 08 */ beq lbl_80115C48 -lbl_80115C44: -/* 80115C44 38 A0 00 01 */ li r5, 1 -lbl_80115C48: -/* 80115C48 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 80115C4C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkFastUnequip__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkFastUnequip__9daAlink_cFv.s deleted file mode 100644 index e18691a0850..00000000000 --- a/asm/d/a/d_a_alink/checkFastUnequip__9daAlink_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_800B97EC: -/* 800B97EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800B97F0 7C 08 02 A6 */ mflr r0 -/* 800B97F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800B97F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800B97FC 3B E0 00 00 */ li r31, 0 -/* 800B9800 A0 03 2F E8 */ lhz r0, 0x2fe8(r3) -/* 800B9804 28 00 00 00 */ cmplwi r0, 0 -/* 800B9808 41 82 00 18 */ beq lbl_800B9820 -/* 800B980C 28 00 00 3B */ cmplwi r0, 0x3b -/* 800B9810 41 82 00 10 */ beq lbl_800B9820 -/* 800B9814 48 05 C4 0D */ bl checkEventRun__9daAlink_cCFv -/* 800B9818 2C 03 00 00 */ cmpwi r3, 0 -/* 800B981C 41 82 00 08 */ beq lbl_800B9824 -lbl_800B9820: -/* 800B9820 3B E0 00 01 */ li r31, 1 -lbl_800B9824: -/* 800B9824 7F E3 FB 78 */ mr r3, r31 -/* 800B9828 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800B982C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800B9830 7C 08 03 A6 */ mtlr r0 -/* 800B9834 38 21 00 10 */ addi r1, r1, 0x10 -/* 800B9838 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkGoronRide__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkGoronRide__9daAlink_cFv.s deleted file mode 100644 index a9dffcc705b..00000000000 --- a/asm/d/a/d_a_alink/checkGoronRide__9daAlink_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_800A2280: -/* 800A2280 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800A2284 7C 08 02 A6 */ mflr r0 -/* 800A2288 90 01 00 14 */ stw r0, 0x14(r1) -/* 800A228C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800A2290 7C 7F 1B 78 */ mr r31, r3 -/* 800A2294 80 03 19 9C */ lwz r0, 0x199c(r3) -/* 800A2298 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 800A229C 41 82 00 34 */ beq lbl_800A22D0 -/* 800A22A0 38 7F 1A 60 */ addi r3, r31, 0x1a60 -/* 800A22A4 38 80 00 00 */ li r4, 0 -/* 800A22A8 4B FF FF 39 */ bl getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi -/* 800A22AC 7C 60 07 34 */ extsh r0, r3 -/* 800A22B0 2C 00 00 21 */ cmpwi r0, 0x21 -/* 800A22B4 40 82 00 1C */ bne lbl_800A22D0 -/* 800A22B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800A22BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800A22C0 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 800A22C4 A0 9F 1A 62 */ lhz r4, 0x1a62(r31) -/* 800A22C8 4B FD 23 51 */ bl GetActorPointer__4cBgSCFi -/* 800A22CC 48 00 00 08 */ b lbl_800A22D4 -lbl_800A22D0: -/* 800A22D0 38 60 00 00 */ li r3, 0 -lbl_800A22D4: -/* 800A22D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800A22D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800A22DC 7C 08 03 A6 */ mtlr r0 -/* 800A22E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800A22E4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/commonCheckNextAction__9daAlink_cFi.s b/asm/d/a/d_a_alink/commonCheckNextAction__9daAlink_cFi.s deleted file mode 100644 index 9fb0f852150..00000000000 --- a/asm/d/a/d_a_alink/commonCheckNextAction__9daAlink_cFi.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_800BA09C: -/* 800BA09C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800BA0A0 7C 08 02 A6 */ mflr r0 -/* 800BA0A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800BA0A8 80 03 05 74 */ lwz r0, 0x574(r3) -/* 800BA0AC 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 800BA0B0 41 82 00 0C */ beq lbl_800BA0BC -/* 800BA0B4 48 06 FA 91 */ bl checkNextActionWolf__9daAlink_cFi -/* 800BA0B8 48 00 00 08 */ b lbl_800BA0C0 -lbl_800BA0BC: -/* 800BA0BC 48 00 00 15 */ bl checkNextAction__9daAlink_cFi -lbl_800BA0C0: -/* 800BA0C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800BA0C4 7C 08 03 A6 */ mtlr r0 -/* 800BA0C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800BA0CC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/commonLineCheck__9daAlink_cFP4cXyzP4cXyz.s b/asm/d/a/d_a_alink/commonLineCheck__9daAlink_cFP4cXyzP4cXyz.s deleted file mode 100644 index c04476d05de..00000000000 --- a/asm/d/a/d_a_alink/commonLineCheck__9daAlink_cFP4cXyzP4cXyz.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_800A2198: -/* 800A2198 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800A219C 7C 08 02 A6 */ mflr r0 -/* 800A21A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800A21A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800A21A8 7C 7F 1B 78 */ mr r31, r3 -/* 800A21AC 38 7F 1B 48 */ addi r3, r31, 0x1b48 -/* 800A21B0 7F E6 FB 78 */ mr r6, r31 -/* 800A21B4 4B FD 5B B1 */ bl Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c -/* 800A21B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800A21BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800A21C0 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 800A21C4 38 9F 1B 48 */ addi r4, r31, 0x1b48 -/* 800A21C8 4B FD 21 ED */ bl LineCross__4cBgSFP11cBgS_LinChk -/* 800A21CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800A21D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800A21D4 7C 08 03 A6 */ mtlr r0 -/* 800A21D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800A21DC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s b/asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s deleted file mode 100644 index 9cf56cceb63..00000000000 --- a/asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_800A21E0: -/* 800A21E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800A21E4 7C 08 02 A6 */ mflr r0 -/* 800A21E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800A21EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800A21F0 93 C1 00 08 */ stw r30, 8(r1) -/* 800A21F4 7C 7E 1B 78 */ mr r30, r3 -/* 800A21F8 2C 04 00 00 */ cmpwi r4, 0 -/* 800A21FC 40 82 00 20 */ bne lbl_800A221C -/* 800A2200 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800A2204 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800A2208 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 800A220C 7F C4 F3 78 */ mr r4, r30 -/* 800A2210 4B FD 24 51 */ bl ChkPolySafe__4cBgSFRC13cBgS_PolyInfo -/* 800A2214 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800A2218 41 82 00 4C */ beq lbl_800A2264 -lbl_800A221C: -/* 800A221C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800A2220 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800A2224 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 800A2228 7F E3 FB 78 */ mr r3, r31 -/* 800A222C 7F C4 F3 78 */ mr r4, r30 -/* 800A2230 4B FD 29 11 */ bl ChkMoveBG_NoDABg__4dBgSFRC13cBgS_PolyInfo -/* 800A2234 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800A2238 41 82 00 2C */ beq lbl_800A2264 -/* 800A223C 7F E3 FB 78 */ mr r3, r31 -/* 800A2240 A0 9E 00 02 */ lhz r4, 2(r30) -/* 800A2244 4B FD 23 D5 */ bl GetActorPointer__4cBgSCFi -/* 800A2248 28 03 00 00 */ cmplwi r3, 0 -/* 800A224C 41 82 00 18 */ beq lbl_800A2264 -/* 800A2250 7F E3 FB 78 */ mr r3, r31 -/* 800A2254 A0 9E 00 02 */ lhz r4, 2(r30) -/* 800A2258 4B FD 23 C1 */ bl GetActorPointer__4cBgSCFi -/* 800A225C A8 63 00 08 */ lha r3, 8(r3) -/* 800A2260 48 00 00 08 */ b lbl_800A2268 -lbl_800A2264: -/* 800A2264 38 60 00 FD */ li r3, 0xfd -lbl_800A2268: -/* 800A2268 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800A226C 83 C1 00 08 */ lwz r30, 8(r1) -/* 800A2270 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800A2274 7C 08 03 A6 */ mtlr r0 -/* 800A2278 38 21 00 10 */ addi r1, r1, 0x10 -/* 800A227C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getStickAngleFromPlayerShape__9daAlink_cCFPs.s b/asm/d/a/d_a_alink/getStickAngleFromPlayerShape__9daAlink_cCFPs.s deleted file mode 100644 index dd3e36aeccc..00000000000 --- a/asm/d/a/d_a_alink/getStickAngleFromPlayerShape__9daAlink_cCFPs.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_800A2160: -/* 800A2160 C0 23 33 AC */ lfs f1, 0x33ac(r3) -/* 800A2164 C0 02 92 A4 */ lfs f0, lit_6021(r2) -/* 800A2168 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800A216C 40 81 00 1C */ ble lbl_800A2188 -/* 800A2170 A8 A3 04 E6 */ lha r5, 0x4e6(r3) -/* 800A2174 A8 03 2F E2 */ lha r0, 0x2fe2(r3) -/* 800A2178 7C 05 00 50 */ subf r0, r5, r0 -/* 800A217C B0 04 00 00 */ sth r0, 0(r4) -/* 800A2180 38 60 00 01 */ li r3, 1 -/* 800A2184 4E 80 00 20 */ blr -lbl_800A2188: -/* 800A2188 38 00 00 00 */ li r0, 0 -/* 800A218C B0 04 00 00 */ sth r0, 0(r4) -/* 800A2190 38 60 00 00 */ li r3, 0 -/* 800A2194 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setIdxMask__9daAlink_cFPUsPUs.s b/asm/d/a/d_a_alink/setIdxMask__9daAlink_cFPUsPUs.s deleted file mode 100644 index d7fd0e99926..00000000000 --- a/asm/d/a/d_a_alink/setIdxMask__9daAlink_cFPUsPUs.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_800A3CE4: -/* 800A3CE4 A0 04 00 00 */ lhz r0, 0(r4) -/* 800A3CE8 28 00 FF FF */ cmplwi r0, 0xffff -/* 800A3CEC 4C 82 00 20 */ bnelr -/* 800A3CF0 A0 05 00 00 */ lhz r0, 0(r5) -/* 800A3CF4 54 03 A7 3F */ rlwinm. r3, r0, 0x14, 0x1c, 0x1f -/* 800A3CF8 54 00 05 3E */ clrlwi r0, r0, 0x14 -/* 800A3CFC B0 05 00 00 */ sth r0, 0(r5) -/* 800A3D00 4D 82 00 20 */ beqlr -/* 800A3D04 B0 64 00 00 */ sth r3, 0(r4) -/* 800A3D08 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s b/asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s deleted file mode 100644 index a29c1da9dd5..00000000000 --- a/asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_800A3C8C: -/* 800A3C8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800A3C90 7C 08 02 A6 */ mflr r0 -/* 800A3C94 90 01 00 14 */ stw r0, 0x14(r1) -/* 800A3C98 7C 64 1B 78 */ mr r4, r3 -/* 800A3C9C 80 03 05 80 */ lwz r0, 0x580(r3) -/* 800A3CA0 54 00 04 63 */ rlwinm. r0, r0, 0, 0x11, 0x11 -/* 800A3CA4 40 82 00 1C */ bne lbl_800A3CC0 -/* 800A3CA8 88 04 2F A0 */ lbz r0, 0x2fa0(r4) -/* 800A3CAC 68 00 00 01 */ xori r0, r0, 1 -/* 800A3CB0 98 04 2F A0 */ stb r0, 0x2fa0(r4) -/* 800A3CB4 80 04 05 80 */ lwz r0, 0x580(r4) -/* 800A3CB8 60 00 40 00 */ ori r0, r0, 0x4000 -/* 800A3CBC 90 04 05 80 */ stw r0, 0x580(r4) -lbl_800A3CC0: -/* 800A3CC0 88 04 2F A0 */ lbz r0, 0x2fa0(r4) -/* 800A3CC4 1C 60 00 14 */ mulli r3, r0, 0x14 -/* 800A3CC8 38 63 21 B0 */ addi r3, r3, 0x21b0 -/* 800A3CCC 7C 64 1A 14 */ add r3, r4, r3 -/* 800A3CD0 48 0B B4 99 */ bl setAnimeHeap__14daPy_anmHeap_cFv -/* 800A3CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800A3CD8 7C 08 03 A6 */ mtlr r0 -/* 800A3CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800A3CE0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPA4_f.s b/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPA4_f.s deleted file mode 100644 index e25645aa50a..00000000000 --- a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPA4_f.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_800B24F4: -/* 800B24F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800B24F8 7C 08 02 A6 */ mflr r0 -/* 800B24FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800B2500 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800B2504 93 C1 00 08 */ stw r30, 8(r1) -/* 800B2508 7C 7E 1B 78 */ mr r30, r3 -/* 800B250C 7C 9F 23 78 */ mr r31, r4 -/* 800B2510 48 06 37 11 */ bl checkEventRun__9daAlink_cCFv -/* 800B2514 2C 03 00 00 */ cmpwi r3, 0 -/* 800B2518 40 82 00 10 */ bne lbl_800B2528 -/* 800B251C 88 1E 05 6A */ lbz r0, 0x56a(r30) -/* 800B2520 28 00 00 00 */ cmplwi r0, 0 -/* 800B2524 41 82 00 90 */ beq lbl_800B25B4 -lbl_800B2528: -/* 800B2528 C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 800B252C D0 1E 04 D0 */ stfs f0, 0x4d0(r30) -/* 800B2530 C0 1F 00 1C */ lfs f0, 0x1c(r31) -/* 800B2534 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 800B2538 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 800B253C D0 1E 04 D8 */ stfs f0, 0x4d8(r30) -/* 800B2540 C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 800B2544 D0 1E 04 BC */ stfs f0, 0x4bc(r30) -/* 800B2548 C0 1E 04 D4 */ lfs f0, 0x4d4(r30) -/* 800B254C D0 1E 04 C0 */ stfs f0, 0x4c0(r30) -/* 800B2550 C0 1E 04 D8 */ lfs f0, 0x4d8(r30) -/* 800B2554 D0 1E 04 C4 */ stfs f0, 0x4c4(r30) -/* 800B2558 C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 800B255C D0 1E 37 98 */ stfs f0, 0x3798(r30) -/* 800B2560 C0 1E 04 D4 */ lfs f0, 0x4d4(r30) -/* 800B2564 D0 1E 37 9C */ stfs f0, 0x379c(r30) -/* 800B2568 C0 1E 04 D8 */ lfs f0, 0x4d8(r30) -/* 800B256C D0 1E 37 A0 */ stfs f0, 0x37a0(r30) -/* 800B2570 80 1E 05 88 */ lwz r0, 0x588(r30) -/* 800B2574 64 00 00 80 */ oris r0, r0, 0x80 -/* 800B2578 90 1E 05 88 */ stw r0, 0x588(r30) -/* 800B257C 80 1E 05 90 */ lwz r0, 0x590(r30) -/* 800B2580 60 00 01 00 */ ori r0, r0, 0x100 -/* 800B2584 90 1E 05 90 */ stw r0, 0x590(r30) -/* 800B2588 7F E3 FB 78 */ mr r3, r31 -/* 800B258C 38 9E 04 E4 */ addi r4, r30, 0x4e4 -/* 800B2590 4B F5 A6 71 */ bl mDoMtx_MtxToRot__FPA4_CfP5csXyz -/* 800B2594 A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 800B2598 B0 1E 04 DE */ sth r0, 0x4de(r30) -/* 800B259C A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 800B25A0 B0 1E 2F E6 */ sth r0, 0x2fe6(r30) -/* 800B25A4 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800B25A8 D0 1E 04 FC */ stfs f0, 0x4fc(r30) -/* 800B25AC 38 7E 08 14 */ addi r3, r30, 0x814 -/* 800B25B0 48 1B 13 AD */ bl ClrCcMove__9cCcD_SttsFv -lbl_800B25B4: -/* 800B25B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800B25B8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800B25BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800B25C0 7C 08 03 A6 */ mtlr r0 -/* 800B25C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800B25C8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz.s b/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz.s deleted file mode 100644 index b69f4ade850..00000000000 --- a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_800B23FC: -/* 800B23FC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800B2400 7C 08 02 A6 */ mflr r0 -/* 800B2404 90 01 00 24 */ stw r0, 0x24(r1) -/* 800B2408 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B240C 48 2A FD D1 */ bl _savegpr_29 -/* 800B2410 7C 7D 1B 78 */ mr r29, r3 -/* 800B2414 7C 9E 23 78 */ mr r30, r4 -/* 800B2418 7C BF 2B 78 */ mr r31, r5 -/* 800B241C 48 06 38 05 */ bl checkEventRun__9daAlink_cCFv -/* 800B2420 2C 03 00 00 */ cmpwi r3, 0 -/* 800B2424 40 82 00 10 */ bne lbl_800B2434 -/* 800B2428 88 1D 05 6A */ lbz r0, 0x56a(r29) -/* 800B242C 28 00 00 00 */ cmplwi r0, 0 -/* 800B2430 41 82 00 AC */ beq lbl_800B24DC -lbl_800B2434: -/* 800B2434 28 1E 00 00 */ cmplwi r30, 0 -/* 800B2438 41 82 00 6C */ beq lbl_800B24A4 -/* 800B243C C0 1E 00 00 */ lfs f0, 0(r30) -/* 800B2440 D0 1D 04 D0 */ stfs f0, 0x4d0(r29) -/* 800B2444 C0 1E 00 04 */ lfs f0, 4(r30) -/* 800B2448 D0 1D 04 D4 */ stfs f0, 0x4d4(r29) -/* 800B244C C0 1E 00 08 */ lfs f0, 8(r30) -/* 800B2450 D0 1D 04 D8 */ stfs f0, 0x4d8(r29) -/* 800B2454 C0 1D 04 D0 */ lfs f0, 0x4d0(r29) -/* 800B2458 D0 1D 04 BC */ stfs f0, 0x4bc(r29) -/* 800B245C C0 1D 04 D4 */ lfs f0, 0x4d4(r29) -/* 800B2460 D0 1D 04 C0 */ stfs f0, 0x4c0(r29) -/* 800B2464 C0 1D 04 D8 */ lfs f0, 0x4d8(r29) -/* 800B2468 D0 1D 04 C4 */ stfs f0, 0x4c4(r29) -/* 800B246C C0 1D 04 D0 */ lfs f0, 0x4d0(r29) -/* 800B2470 D0 1D 37 98 */ stfs f0, 0x3798(r29) -/* 800B2474 C0 1D 04 D4 */ lfs f0, 0x4d4(r29) -/* 800B2478 D0 1D 37 9C */ stfs f0, 0x379c(r29) -/* 800B247C C0 1D 04 D8 */ lfs f0, 0x4d8(r29) -/* 800B2480 D0 1D 37 A0 */ stfs f0, 0x37a0(r29) -/* 800B2484 80 1D 05 88 */ lwz r0, 0x588(r29) -/* 800B2488 64 00 00 80 */ oris r0, r0, 0x80 -/* 800B248C 90 1D 05 88 */ stw r0, 0x588(r29) -/* 800B2490 80 1D 05 90 */ lwz r0, 0x590(r29) -/* 800B2494 60 00 01 00 */ ori r0, r0, 0x100 -/* 800B2498 90 1D 05 90 */ stw r0, 0x590(r29) -/* 800B249C C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800B24A0 D0 1D 04 FC */ stfs f0, 0x4fc(r29) -lbl_800B24A4: -/* 800B24A4 28 1F 00 00 */ cmplwi r31, 0 -/* 800B24A8 41 82 00 2C */ beq lbl_800B24D4 -/* 800B24AC A8 1F 00 00 */ lha r0, 0(r31) -/* 800B24B0 B0 1D 04 E4 */ sth r0, 0x4e4(r29) -/* 800B24B4 A8 1F 00 02 */ lha r0, 2(r31) -/* 800B24B8 B0 1D 04 E6 */ sth r0, 0x4e6(r29) -/* 800B24BC A8 1F 00 04 */ lha r0, 4(r31) -/* 800B24C0 B0 1D 04 E8 */ sth r0, 0x4e8(r29) -/* 800B24C4 A8 1D 04 E6 */ lha r0, 0x4e6(r29) -/* 800B24C8 B0 1D 04 DE */ sth r0, 0x4de(r29) -/* 800B24CC A8 1D 04 E6 */ lha r0, 0x4e6(r29) -/* 800B24D0 B0 1D 2F E6 */ sth r0, 0x2fe6(r29) -lbl_800B24D4: -/* 800B24D4 38 7D 08 14 */ addi r3, r29, 0x814 -/* 800B24D8 48 1B 14 85 */ bl ClrCcMove__9cCcD_SttsFv -lbl_800B24DC: -/* 800B24DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B24E0 48 2A FD 49 */ bl _restgpr_29 -/* 800B24E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800B24E8 7C 08 03 A6 */ mtlr r0 -/* 800B24EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 800B24F0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c.s b/asm/d/a/d_a_player/cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c.s deleted file mode 100644 index aa1fb05061e..00000000000 --- a/asm/d/a/d_a_player/cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8015F8E4: -/* 8015F8E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F8E8 7C 08 02 A6 */ mflr r0 -/* 8015F8EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F8F0 7C 64 1B 78 */ mr r4, r3 -/* 8015F8F4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F8F8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F8FC 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F900 4B F8 08 CD */ bl cancelBoomerangLock__9daAlink_cFP10fopAc_ac_c -/* 8015F904 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F908 7C 08 03 A6 */ mtlr r0 -/* 8015F90C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F910 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/cancelFmChainGrab__9daPy_py_cFv.s b/asm/d/a/d_a_player/cancelFmChainGrab__9daPy_py_cFv.s deleted file mode 100644 index eb0cacd4c0a..00000000000 --- a/asm/d/a/d_a_player/cancelFmChainGrab__9daPy_py_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8015F4B8: -/* 8015F4B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F4BC 7C 08 02 A6 */ mflr r0 -/* 8015F4C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F4C4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F4C8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F4CC 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F4D0 38 00 00 00 */ li r0, 0 -/* 8015F4D4 98 03 2F A3 */ stb r0, 0x2fa3(r3) -/* 8015F4D8 38 63 28 44 */ addi r3, r3, 0x2844 -/* 8015F4DC 4B FF F8 21 */ bl clearData__16daPy_actorKeep_cFv -/* 8015F4E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F4E4 7C 08 03 A6 */ mtlr r0 -/* 8015F4E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F4EC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkBoomerangCharge__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkBoomerangCharge__9daPy_py_cFv.s deleted file mode 100644 index c5807571b5d..00000000000 --- a/asm/d/a/d_a_player/checkBoomerangCharge__9daPy_py_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8015F89C: -/* 8015F89C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F8A0 7C 08 02 A6 */ mflr r0 -/* 8015F8A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F8A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F8AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F8B0 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F8B4 4B F8 09 91 */ bl checkBoomerangChargeEnd__9daAlink_cFv -/* 8015F8B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F8BC 7C 08 03 A6 */ mtlr r0 -/* 8015F8C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F8C4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s b/asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s deleted file mode 100644 index b8c38051578..00000000000 --- a/asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8015EA88: -/* 8015EA88 38 00 00 00 */ li r0, 0 -/* 8015EA8C 2C 03 00 60 */ cmpwi r3, 0x60 -/* 8015EA90 41 80 00 0C */ blt lbl_8015EA9C -/* 8015EA94 2C 03 00 6C */ cmpwi r3, 0x6c -/* 8015EA98 40 81 00 34 */ ble lbl_8015EACC -lbl_8015EA9C: -/* 8015EA9C 2C 03 00 76 */ cmpwi r3, 0x76 -/* 8015EAA0 41 82 00 2C */ beq lbl_8015EACC -/* 8015EAA4 2C 03 00 74 */ cmpwi r3, 0x74 -/* 8015EAA8 41 82 00 24 */ beq lbl_8015EACC -/* 8015EAAC 2C 03 00 73 */ cmpwi r3, 0x73 -/* 8015EAB0 41 82 00 1C */ beq lbl_8015EACC -/* 8015EAB4 2C 03 00 9F */ cmpwi r3, 0x9f -/* 8015EAB8 41 82 00 14 */ beq lbl_8015EACC -/* 8015EABC 2C 03 00 77 */ cmpwi r3, 0x77 -/* 8015EAC0 41 80 00 10 */ blt lbl_8015EAD0 -/* 8015EAC4 2C 03 00 7F */ cmpwi r3, 0x7f -/* 8015EAC8 41 81 00 08 */ bgt lbl_8015EAD0 -lbl_8015EACC: -/* 8015EACC 38 00 00 01 */ li r0, 1 -lbl_8015EAD0: -/* 8015EAD0 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8015EAD4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s deleted file mode 100644 index a29c246b71d..00000000000 --- a/asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8015F698: -/* 8015F698 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F69C 7C 08 02 A6 */ mflr r0 -/* 8015F6A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F6A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015F6A8 4B FF FF B9 */ bl checkRoomRestartStart__9daPy_py_cFv -/* 8015F6AC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8015F6B0 40 82 00 54 */ bne lbl_8015F704 -/* 8015F6B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F6B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F6BC 37 E3 4E 20 */ addic. r31, r3, 0x4e20 -/* 8015F6C0 41 82 00 44 */ beq lbl_8015F704 -/* 8015F6C4 7F E3 FB 78 */ mr r3, r31 -/* 8015F6C8 81 9F 00 00 */ lwz r12, 0(r31) -/* 8015F6CC 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8015F6D0 7D 89 03 A6 */ mtctr r12 -/* 8015F6D4 4E 80 04 21 */ bctrl -/* 8015F6D8 28 03 00 00 */ cmplwi r3, 0 -/* 8015F6DC 41 82 00 28 */ beq lbl_8015F704 -/* 8015F6E0 7F E3 FB 78 */ mr r3, r31 -/* 8015F6E4 81 9F 00 00 */ lwz r12, 0(r31) -/* 8015F6E8 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8015F6EC 7D 89 03 A6 */ mtctr r12 -/* 8015F6F0 4E 80 04 21 */ bctrl -/* 8015F6F4 88 03 00 09 */ lbz r0, 9(r3) -/* 8015F6F8 54 00 FE FE */ rlwinm r0, r0, 0x1f, 0x1b, 0x1f -/* 8015F6FC 2C 00 00 17 */ cmpwi r0, 0x17 -/* 8015F700 41 82 00 0C */ beq lbl_8015F70C -lbl_8015F704: -/* 8015F704 38 60 00 00 */ li r3, 0 -/* 8015F708 48 00 00 14 */ b lbl_8015F71C -lbl_8015F70C: -/* 8015F70C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F710 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F714 80 03 0D D0 */ lwz r0, 0xdd0(r3) -/* 8015F718 54 03 02 D6 */ rlwinm r3, r0, 0, 0xb, 0xb -lbl_8015F71C: -/* 8015F71C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015F720 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F724 7C 08 03 A6 */ mtlr r0 -/* 8015F728 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F72C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s deleted file mode 100644 index c3c41764e71..00000000000 --- a/asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8015F730: -/* 8015F730 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F734 7C 08 02 A6 */ mflr r0 -/* 8015F738 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F73C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015F740 4B FF FF 21 */ bl checkRoomRestartStart__9daPy_py_cFv -/* 8015F744 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8015F748 40 82 00 54 */ bne lbl_8015F79C -/* 8015F74C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F750 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F754 37 E3 4E 20 */ addic. r31, r3, 0x4e20 -/* 8015F758 41 82 00 44 */ beq lbl_8015F79C -/* 8015F75C 7F E3 FB 78 */ mr r3, r31 -/* 8015F760 81 9F 00 00 */ lwz r12, 0(r31) -/* 8015F764 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8015F768 7D 89 03 A6 */ mtctr r12 -/* 8015F76C 4E 80 04 21 */ bctrl -/* 8015F770 28 03 00 00 */ cmplwi r3, 0 -/* 8015F774 41 82 00 28 */ beq lbl_8015F79C -/* 8015F778 7F E3 FB 78 */ mr r3, r31 -/* 8015F77C 81 9F 00 00 */ lwz r12, 0(r31) -/* 8015F780 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8015F784 7D 89 03 A6 */ mtctr r12 -/* 8015F788 4E 80 04 21 */ bctrl -/* 8015F78C 88 03 00 09 */ lbz r0, 9(r3) -/* 8015F790 54 00 FE FE */ rlwinm r0, r0, 0x1f, 0x1b, 0x1f -/* 8015F794 2C 00 00 17 */ cmpwi r0, 0x17 -/* 8015F798 41 82 00 0C */ beq lbl_8015F7A4 -lbl_8015F79C: -/* 8015F79C 38 60 00 00 */ li r3, 0 -/* 8015F7A0 48 00 00 14 */ b lbl_8015F7B4 -lbl_8015F7A4: -/* 8015F7A4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F7A8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F7AC 80 03 0D D0 */ lwz r0, 0xdd0(r3) -/* 8015F7B0 54 03 03 18 */ rlwinm r3, r0, 0, 0xc, 0xc -lbl_8015F7B4: -/* 8015F7B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015F7B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F7BC 7C 08 03 A6 */ mtlr r0 -/* 8015F7C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F7C4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkDrinkBottleItem__9daPy_py_cFi.s b/asm/d/a/d_a_player/checkDrinkBottleItem__9daPy_py_cFi.s deleted file mode 100644 index 80ba12255da..00000000000 --- a/asm/d/a/d_a_player/checkDrinkBottleItem__9daPy_py_cFi.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8015EAD8: -/* 8015EAD8 38 00 00 00 */ li r0, 0 -/* 8015EADC 2C 03 00 61 */ cmpwi r3, 0x61 -/* 8015EAE0 41 80 00 0C */ blt lbl_8015EAEC -/* 8015EAE4 2C 03 00 65 */ cmpwi r3, 0x65 -/* 8015EAE8 40 81 00 4C */ ble lbl_8015EB34 -lbl_8015EAEC: -/* 8015EAEC 2C 03 00 69 */ cmpwi r3, 0x69 -/* 8015EAF0 41 82 00 44 */ beq lbl_8015EB34 -/* 8015EAF4 2C 03 00 6A */ cmpwi r3, 0x6a -/* 8015EAF8 41 82 00 3C */ beq lbl_8015EB34 -/* 8015EAFC 2C 03 00 6B */ cmpwi r3, 0x6b -/* 8015EB00 41 82 00 34 */ beq lbl_8015EB34 -/* 8015EB04 2C 03 00 76 */ cmpwi r3, 0x76 -/* 8015EB08 41 82 00 2C */ beq lbl_8015EB34 -/* 8015EB0C 2C 03 00 9F */ cmpwi r3, 0x9f -/* 8015EB10 41 82 00 24 */ beq lbl_8015EB34 -/* 8015EB14 2C 03 00 73 */ cmpwi r3, 0x73 -/* 8015EB18 41 82 00 1C */ beq lbl_8015EB34 -/* 8015EB1C 2C 03 00 77 */ cmpwi r3, 0x77 -/* 8015EB20 41 80 00 18 */ blt lbl_8015EB38 -/* 8015EB24 2C 03 00 7B */ cmpwi r3, 0x7b -/* 8015EB28 41 82 00 10 */ beq lbl_8015EB38 -/* 8015EB2C 2C 03 00 7F */ cmpwi r3, 0x7f -/* 8015EB30 41 81 00 08 */ bgt lbl_8015EB38 -lbl_8015EB34: -/* 8015EB34 38 00 00 01 */ li r0, 1 -lbl_8015EB38: -/* 8015EB38 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8015EB3C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkFishingRodItem__9daPy_py_cFi.s b/asm/d/a/d_a_player/checkFishingRodItem__9daPy_py_cFi.s deleted file mode 100644 index f872a1b328a..00000000000 --- a/asm/d/a/d_a_player/checkFishingRodItem__9daPy_py_cFi.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8015EA20: -/* 8015EA20 38 00 00 00 */ li r0, 0 -/* 8015EA24 2C 03 00 4A */ cmpwi r3, 0x4a -/* 8015EA28 41 82 00 14 */ beq lbl_8015EA3C -/* 8015EA2C 2C 03 00 5B */ cmpwi r3, 0x5b -/* 8015EA30 41 80 00 10 */ blt lbl_8015EA40 -/* 8015EA34 2C 03 00 5F */ cmpwi r3, 0x5f -/* 8015EA38 41 81 00 08 */ bgt lbl_8015EA40 -lbl_8015EA3C: -/* 8015EA3C 38 00 00 01 */ li r0, 1 -lbl_8015EA40: -/* 8015EA40 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8015EA44 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkRoomRestartStart__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkRoomRestartStart__9daPy_py_cFv.s deleted file mode 100644 index ead000b4759..00000000000 --- a/asm/d/a/d_a_player/checkRoomRestartStart__9daPy_py_cFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8015F660: -/* 8015F660 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F664 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F668 80 03 0D D0 */ lwz r0, 0xdd0(r3) -/* 8015F66C 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 8015F670 28 00 00 04 */ cmplwi r0, 4 -/* 8015F674 41 82 00 14 */ beq lbl_8015F688 -/* 8015F678 28 00 00 08 */ cmplwi r0, 8 -/* 8015F67C 41 82 00 0C */ beq lbl_8015F688 -/* 8015F680 28 00 00 05 */ cmplwi r0, 5 -/* 8015F684 40 82 00 0C */ bne lbl_8015F690 -lbl_8015F688: -/* 8015F688 38 60 00 01 */ li r3, 1 -/* 8015F68C 4E 80 00 20 */ blr -lbl_8015F690: -/* 8015F690 38 60 00 00 */ li r3, 0 -/* 8015F694 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s b/asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s deleted file mode 100644 index cd0d33792fd..00000000000 --- a/asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8015EBD8: -/* 8015EBD8 38 00 00 00 */ li r0, 0 -/* 8015EBDC 2C 03 00 80 */ cmpwi r3, 0x80 -/* 8015EBE0 41 80 00 0C */ blt lbl_8015EBEC -/* 8015EBE4 2C 03 00 83 */ cmpwi r3, 0x83 -/* 8015EBE8 40 81 00 34 */ ble lbl_8015EC1C -lbl_8015EBEC: -/* 8015EBEC 2C 03 00 E9 */ cmpwi r3, 0xe9 -/* 8015EBF0 41 82 00 2C */ beq lbl_8015EC1C -/* 8015EBF4 2C 03 00 EA */ cmpwi r3, 0xea -/* 8015EBF8 41 82 00 24 */ beq lbl_8015EC1C -/* 8015EBFC 2C 03 00 EB */ cmpwi r3, 0xeb -/* 8015EC00 41 82 00 1C */ beq lbl_8015EC1C -/* 8015EC04 2C 03 00 90 */ cmpwi r3, 0x90 -/* 8015EC08 41 82 00 14 */ beq lbl_8015EC1C -/* 8015EC0C 2C 03 00 2D */ cmpwi r3, 0x2d -/* 8015EC10 41 82 00 0C */ beq lbl_8015EC1C -/* 8015EC14 2C 03 00 91 */ cmpwi r3, 0x91 -/* 8015EC18 40 82 00 08 */ bne lbl_8015EC20 -lbl_8015EC1C: -/* 8015EC1C 38 00 00 01 */ li r0, 1 -lbl_8015EC20: -/* 8015EC20 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8015EC24 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE.s b/asm/d/a/d_a_player/createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE.s deleted file mode 100644 index 7488dc28cfe..00000000000 --- a/asm/d/a/d_a_player/createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE.s +++ /dev/null @@ -1,108 +0,0 @@ -lbl_8015EE00: -/* 8015EE00 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8015EE04 7C 08 02 A6 */ mflr r0 -/* 8015EE08 90 01 00 24 */ stw r0, 0x24(r1) -/* 8015EE0C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8015EE10 48 20 33 CD */ bl _savegpr_29 -/* 8015EE14 7C 7D 1B 78 */ mr r29, r3 -/* 8015EE18 7C 9E 23 78 */ mr r30, r4 -/* 8015EE1C 2C 1E 00 04 */ cmpwi r30, 4 -/* 8015EE20 40 82 00 0C */ bne lbl_8015EE2C -/* 8015EE24 83 FD 00 08 */ lwz r31, 8(r29) -/* 8015EE28 48 00 00 38 */ b lbl_8015EE60 -lbl_8015EE2C: -/* 8015EE2C 2C 1E 00 03 */ cmpwi r30, 3 -/* 8015EE30 40 82 00 0C */ bne lbl_8015EE3C -/* 8015EE34 3B E0 00 50 */ li r31, 0x50 -/* 8015EE38 48 00 00 28 */ b lbl_8015EE60 -lbl_8015EE3C: -/* 8015EE3C 2C 1E 00 00 */ cmpwi r30, 0 -/* 8015EE40 40 82 00 0C */ bne lbl_8015EE4C -/* 8015EE44 3B E0 00 40 */ li r31, 0x40 -/* 8015EE48 48 00 00 18 */ b lbl_8015EE60 -lbl_8015EE4C: -/* 8015EE4C 2C 1E 00 01 */ cmpwi r30, 1 -/* 8015EE50 40 82 00 0C */ bne lbl_8015EE5C -/* 8015EE54 3B E0 00 40 */ li r31, 0x40 -/* 8015EE58 48 00 00 08 */ b lbl_8015EE60 -lbl_8015EE5C: -/* 8015EE5C 3B E0 00 A0 */ li r31, 0xa0 -lbl_8015EE60: -/* 8015EE60 38 61 00 08 */ addi r3, r1, 8 -/* 8015EE64 7F E4 FB 78 */ mr r4, r31 -/* 8015EE68 38 A0 00 20 */ li r5, 0x20 -/* 8015EE6C 4B EB 01 89 */ bl mDoExt_createSolidHeapFromGameToCurrent__FPP7JKRHeapUlUl -/* 8015EE70 90 7D 00 10 */ stw r3, 0x10(r29) -/* 8015EE74 2C 1E 00 04 */ cmpwi r30, 4 -/* 8015EE78 40 82 00 10 */ bne lbl_8015EE88 -/* 8015EE7C 7F E3 FB 78 */ mr r3, r31 -/* 8015EE80 48 16 FE 45 */ bl __nwa__FUl -/* 8015EE84 48 00 00 D8 */ b lbl_8015EF5C -lbl_8015EE88: -/* 8015EE88 2C 1E 00 03 */ cmpwi r30, 3 -/* 8015EE8C 40 82 00 54 */ bne lbl_8015EEE0 -/* 8015EE90 38 60 00 2C */ li r3, 0x2c -/* 8015EE94 48 16 FD B9 */ bl __nw__FUl -/* 8015EE98 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8015EE9C 41 82 00 C0 */ beq lbl_8015EF5C -/* 8015EEA0 38 80 00 00 */ li r4, 0 -/* 8015EEA4 38 A0 00 00 */ li r5, 0 -/* 8015EEA8 38 C0 00 00 */ li r6, 0 -/* 8015EEAC 38 E0 00 00 */ li r7, 0 -/* 8015EEB0 48 1C 9F 91 */ bl __ct__15J3DAnmTransformFsPfPsPf -/* 8015EEB4 3C 60 80 3A */ lis r3, __vt__18J3DAnmTransformKey@ha /* 0x803A7C70@ha */ -/* 8015EEB8 38 03 7C 70 */ addi r0, r3, __vt__18J3DAnmTransformKey@l /* 0x803A7C70@l */ -/* 8015EEBC 90 1F 00 00 */ stw r0, 0(r31) -/* 8015EEC0 38 80 00 00 */ li r4, 0 -/* 8015EEC4 90 9F 00 20 */ stw r4, 0x20(r31) -/* 8015EEC8 90 9F 00 24 */ stw r4, 0x24(r31) -/* 8015EECC 3C 60 80 3A */ lis r3, __vt__18mDoExt_transAnmBas@ha /* 0x803A7C5C@ha */ -/* 8015EED0 38 03 7C 5C */ addi r0, r3, __vt__18mDoExt_transAnmBas@l /* 0x803A7C5C@l */ -/* 8015EED4 90 1F 00 00 */ stw r0, 0(r31) -/* 8015EED8 90 9F 00 28 */ stw r4, 0x28(r31) -/* 8015EEDC 48 00 00 80 */ b lbl_8015EF5C -lbl_8015EEE0: -/* 8015EEE0 2C 1E 00 00 */ cmpwi r30, 0 -/* 8015EEE4 40 82 00 44 */ bne lbl_8015EF28 -/* 8015EEE8 38 60 00 28 */ li r3, 0x28 -/* 8015EEEC 48 16 FD 61 */ bl __nw__FUl -/* 8015EEF0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8015EEF4 41 82 00 68 */ beq lbl_8015EF5C -/* 8015EEF8 38 80 00 00 */ li r4, 0 -/* 8015EEFC 38 A0 00 00 */ li r5, 0 -/* 8015EF00 38 C0 00 00 */ li r6, 0 -/* 8015EF04 38 E0 00 00 */ li r7, 0 -/* 8015EF08 48 1C 9F 39 */ bl __ct__15J3DAnmTransformFsPfPsPf -/* 8015EF0C 3C 60 80 3A */ lis r3, __vt__18J3DAnmTransformKey@ha /* 0x803A7C70@ha */ -/* 8015EF10 38 03 7C 70 */ addi r0, r3, __vt__18J3DAnmTransformKey@l /* 0x803A7C70@l */ -/* 8015EF14 90 1F 00 00 */ stw r0, 0(r31) -/* 8015EF18 38 00 00 00 */ li r0, 0 -/* 8015EF1C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 8015EF20 90 1F 00 24 */ stw r0, 0x24(r31) -/* 8015EF24 48 00 00 38 */ b lbl_8015EF5C -lbl_8015EF28: -/* 8015EF28 2C 1E 00 01 */ cmpwi r30, 1 -/* 8015EF2C 40 82 00 1C */ bne lbl_8015EF48 -/* 8015EF30 38 60 00 2C */ li r3, 0x2c -/* 8015EF34 48 16 FD 19 */ bl __nw__FUl -/* 8015EF38 28 03 00 00 */ cmplwi r3, 0 -/* 8015EF3C 41 82 00 20 */ beq lbl_8015EF5C -/* 8015EF40 48 1C BF 99 */ bl __ct__16J3DAnmTexPatternFv -/* 8015EF44 48 00 00 18 */ b lbl_8015EF5C -lbl_8015EF48: -/* 8015EF48 38 60 00 7C */ li r3, 0x7c -/* 8015EF4C 48 16 FD 01 */ bl __nw__FUl -/* 8015EF50 28 03 00 00 */ cmplwi r3, 0 -/* 8015EF54 41 82 00 08 */ beq lbl_8015EF5C -/* 8015EF58 48 1C AF 05 */ bl __ct__19J3DAnmTextureSRTKeyFv -lbl_8015EF5C: -/* 8015EF5C 80 61 00 08 */ lwz r3, 8(r1) -/* 8015EF60 4B EB 02 6D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8015EF64 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 8015EF68 4B EB 01 25 */ bl mDoExt_adjustSolidHeap__FP12JKRSolidHeap -/* 8015EF6C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8015EF70 48 20 32 B9 */ bl _restgpr_29 -/* 8015EF74 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8015EF78 7C 08 03 A6 */ mtlr r0 -/* 8015EF7C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8015EF80 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/forceRestartRoom__9daPy_py_cFiUli.s b/asm/d/a/d_a_player/forceRestartRoom__9daPy_py_cFiUli.s deleted file mode 100644 index 7e053b79462..00000000000 --- a/asm/d/a/d_a_player/forceRestartRoom__9daPy_py_cFiUli.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8015F438: -/* 8015F438 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F43C 7C 08 02 A6 */ mflr r0 -/* 8015F440 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F444 7C 66 1B 78 */ mr r6, r3 -/* 8015F448 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F44C 38 E3 61 C0 */ addi r7, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F450 80 67 5D B4 */ lwz r3, 0x5db4(r7) -/* 8015F454 88 E7 4F AD */ lbz r7, 0x4fad(r7) -/* 8015F458 30 07 FF FF */ addic r0, r7, -1 -/* 8015F45C 7C 00 39 10 */ subfe r0, r0, r7 -/* 8015F460 54 07 06 3E */ clrlwi r7, r0, 0x18 -/* 8015F464 4B F5 EA FD */ bl startRestartRoom__9daAlink_cFUliii -/* 8015F468 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F46C 7C 08 03 A6 */ mtlr r0 -/* 8015F470 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F474 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/loadData__14daPy_anmHeap_cFUs.s b/asm/d/a/d_a_player/loadData__14daPy_anmHeap_cFUs.s deleted file mode 100644 index f840927f063..00000000000 --- a/asm/d/a/d_a_player/loadData__14daPy_anmHeap_cFUs.s +++ /dev/null @@ -1,61 +0,0 @@ -lbl_8015EF84: -/* 8015EF84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015EF88 7C 08 02 A6 */ mflr r0 -/* 8015EF8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015EF90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015EF94 93 C1 00 08 */ stw r30, 8(r1) -/* 8015EF98 7C 7E 1B 78 */ mr r30, r3 -/* 8015EF9C 7C 86 23 78 */ mr r6, r4 -/* 8015EFA0 A0 03 00 04 */ lhz r0, 4(r3) -/* 8015EFA4 28 00 FF FF */ cmplwi r0, 0xffff -/* 8015EFA8 40 82 00 4C */ bne lbl_8015EFF4 -/* 8015EFAC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015EFB0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015EFB4 80 63 5C AC */ lwz r3, 0x5cac(r3) -/* 8015EFB8 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 8015EFBC 80 BE 00 08 */ lwz r5, 8(r30) -/* 8015EFC0 54 C6 04 3E */ clrlwi r6, r6, 0x10 -/* 8015EFC4 48 17 6F 09 */ bl readIdxResource__10JKRArchiveFPvUlUl -/* 8015EFC8 7F C3 F3 78 */ mr r3, r30 -/* 8015EFCC 48 00 01 9D */ bl setAnimeHeap__14daPy_anmHeap_cFv -/* 8015EFD0 7C 7F 1B 78 */ mr r31, r3 -/* 8015EFD4 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 8015EFD8 38 80 00 00 */ li r4, 0 -/* 8015EFDC 48 1D 8B 65 */ bl load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag -/* 8015EFE0 7C 7E 1B 78 */ mr r30, r3 -/* 8015EFE4 7F E3 FB 78 */ mr r3, r31 -/* 8015EFE8 4B EB 01 E5 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8015EFEC 7F C3 F3 78 */ mr r3, r30 -/* 8015EFF0 48 00 00 60 */ b lbl_8015F050 -lbl_8015EFF4: -/* 8015EFF4 28 00 00 00 */ cmplwi r0, 0 -/* 8015EFF8 40 82 00 28 */ bne lbl_8015F020 -/* 8015EFFC 3C 60 80 40 */ lis r3, mDemoArcName__20dStage_roomControl_c@ha /* 0x80406194@ha */ -/* 8015F000 38 63 61 94 */ addi r3, r3, mDemoArcName__20dStage_roomControl_c@l /* 0x80406194@l */ -/* 8015F004 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F008 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F00C 3C A5 00 02 */ addis r5, r5, 2 -/* 8015F010 38 C0 00 80 */ li r6, 0x80 -/* 8015F014 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8015F018 4B ED D3 E9 */ bl getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci -/* 8015F01C 48 00 00 34 */ b lbl_8015F050 -lbl_8015F020: -/* 8015F020 3C 60 80 3C */ lis r3, arcName@ha /* 0x803BA0A0@ha */ -/* 8015F024 38 63 A0 A0 */ addi r3, r3, arcName@l /* 0x803BA0A0@l */ -/* 8015F028 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 8015F02C 7C 63 02 14 */ add r3, r3, r0 -/* 8015F030 80 63 FF FC */ lwz r3, -4(r3) -/* 8015F034 54 C4 04 3E */ clrlwi r4, r6, 0x10 -/* 8015F038 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F03C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F040 3C A5 00 02 */ addis r5, r5, 2 -/* 8015F044 38 C0 00 80 */ li r6, 0x80 -/* 8015F048 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8015F04C 4B ED D2 A1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -lbl_8015F050: -/* 8015F050 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015F054 83 C1 00 08 */ lwz r30, 8(r1) -/* 8015F058 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F05C 7C 08 03 A6 */ mtlr r0 -/* 8015F060 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F064 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s b/asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s deleted file mode 100644 index 68735ad05be..00000000000 --- a/asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8015EDC4: -/* 8015EDC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015EDC8 7C 08 02 A6 */ mflr r0 -/* 8015EDCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015EDD0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015EDD4 7C 7F 1B 78 */ mr r31, r3 -/* 8015EDD8 80 63 00 08 */ lwz r3, 8(r3) -/* 8015EDDC 38 80 00 20 */ li r4, 0x20 -/* 8015EDE0 48 16 FF 0D */ bl __nwa__FUli -/* 8015EDE4 90 7F 00 0C */ stw r3, 0xc(r31) -/* 8015EDE8 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8015EDEC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015EDF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015EDF4 7C 08 03 A6 */ mtlr r0 -/* 8015EDF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015EDFC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s b/asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s deleted file mode 100644 index 205e7e557dc..00000000000 --- a/asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8015F478: -/* 8015F478 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F47C 7C 08 02 A6 */ mflr r0 -/* 8015F480 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F484 7C 67 1B 78 */ mr r7, r3 -/* 8015F488 7C 80 23 78 */ mr r0, r4 -/* 8015F48C 7C A6 2B 78 */ mr r6, r5 -/* 8015F490 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F494 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F498 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F49C 7C E4 3B 78 */ mr r4, r7 -/* 8015F4A0 7C 05 03 78 */ mr r5, r0 -/* 8015F4A4 4B F8 86 49 */ bl setFmChainPosFromOut__9daAlink_cFP10fopAc_ac_cP4cXyzi -/* 8015F4A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F4AC 7C 08 03 A6 */ mtlr r0 -/* 8015F4B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F4B4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setLookPos__9daPy_py_cFP4cXyz.s b/asm/d/a/d_a_player/setLookPos__9daPy_py_cFP4cXyz.s deleted file mode 100644 index a7990c81777..00000000000 --- a/asm/d/a/d_a_player/setLookPos__9daPy_py_cFP4cXyz.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8015F4F0: -/* 8015F4F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F4F4 7C 08 02 A6 */ mflr r0 -/* 8015F4F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F4FC 7C 64 1B 78 */ mr r4, r3 -/* 8015F500 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F504 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F508 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F50C 4B F4 12 39 */ bl setLookPosFromOut__9daAlink_cFP4cXyz -/* 8015F510 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F514 7C 08 03 A6 */ mtlr r0 -/* 8015F518 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F51C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setMidnaFaceNum__9daPy_py_cFi.s b/asm/d/a/d_a_player/setMidnaFaceNum__9daPy_py_cFi.s deleted file mode 100644 index f2b517f8450..00000000000 --- a/asm/d/a/d_a_player/setMidnaFaceNum__9daPy_py_cFi.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8015F968: -/* 8015F968 80 8D 8A 98 */ lwz r4, m_midnaActor__9daPy_py_c(r13) -/* 8015F96C 28 04 00 00 */ cmplwi r4, 0 -/* 8015F970 4D 82 00 20 */ beqlr -/* 8015F974 98 64 08 49 */ stb r3, 0x849(r4) -/* 8015F978 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setMidnaMotionNum__9daPy_py_cFi.s b/asm/d/a/d_a_player/setMidnaMotionNum__9daPy_py_cFi.s deleted file mode 100644 index 25b3473a83d..00000000000 --- a/asm/d/a/d_a_player/setMidnaMotionNum__9daPy_py_cFi.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8015F954: -/* 8015F954 80 8D 8A 98 */ lwz r4, m_midnaActor__9daPy_py_c(r13) -/* 8015F958 28 04 00 00 */ cmplwi r4, 0 -/* 8015F95C 4D 82 00 20 */ beqlr -/* 8015F960 98 64 08 48 */ stb r3, 0x848(r4) -/* 8015F964 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s b/asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s deleted file mode 100644 index 53d11652183..00000000000 --- a/asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8015EA0C: -/* 8015EA0C 54 80 63 E6 */ rlwinm r0, r4, 0xc, 0xf, 0x13 -/* 8015EA10 50 60 06 BE */ rlwimi r0, r3, 0, 0x1a, 0x1f -/* 8015EA14 50 A0 C0 0E */ rlwimi r0, r5, 0x18, 0, 7 -/* 8015EA18 7C C3 03 78 */ or r3, r6, r0 -/* 8015EA1C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setPlayerDamage__9daPy_py_cFii.s b/asm/d/a/d_a_player/setPlayerDamage__9daPy_py_cFii.s deleted file mode 100644 index aded67b584f..00000000000 --- a/asm/d/a/d_a_player/setPlayerDamage__9daPy_py_cFii.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8015F914: -/* 8015F914 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F918 7C 08 02 A6 */ mflr r0 -/* 8015F91C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F920 7C 60 1B 78 */ mr r0, r3 -/* 8015F924 7C 86 23 78 */ mr r6, r4 -/* 8015F928 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F92C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F930 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F934 7C 04 03 78 */ mr r4, r0 -/* 8015F938 38 A0 00 00 */ li r5, 0 -/* 8015F93C 38 E0 00 00 */ li r7, 0 -/* 8015F940 4B F7 79 7D */ bl setDamagePoint__9daAlink_cFiiii -/* 8015F944 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F948 7C 08 03 A6 */ mtlr r0 -/* 8015F94C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F950 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setPlayerSe__9daPy_py_cFUl.s b/asm/d/a/d_a_player/setPlayerSe__9daPy_py_cFUl.s deleted file mode 100644 index b2ff09ed4c6..00000000000 --- a/asm/d/a/d_a_player/setPlayerSe__9daPy_py_cFUl.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8015F520: -/* 8015F520 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F524 7C 08 02 A6 */ mflr r0 -/* 8015F528 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F52C 7C 64 1B 78 */ mr r4, r3 -/* 8015F530 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F534 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F538 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 8015F53C 81 83 06 28 */ lwz r12, 0x628(r3) -/* 8015F540 81 8C 01 18 */ lwz r12, 0x118(r12) -/* 8015F544 7D 89 03 A6 */ mtctr r12 -/* 8015F548 4E 80 04 21 */ bctrl -/* 8015F54C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F550 7C 08 03 A6 */ mtlr r0 -/* 8015F554 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F558 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/setSightImage__18daPy_sightPacket_cFP7ResTIMG.s b/asm/d/a/d_a_player/setSightImage__18daPy_sightPacket_cFP7ResTIMG.s deleted file mode 100644 index ab8567191ff..00000000000 --- a/asm/d/a/d_a_player/setSightImage__18daPy_sightPacket_cFP7ResTIMG.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8015F384: -/* 8015F384 90 83 00 44 */ stw r4, 0x44(r3) -/* 8015F388 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 8015F38C 7C 04 02 14 */ add r0, r4, r0 -/* 8015F390 90 03 00 48 */ stw r0, 0x48(r3) -/* 8015F394 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s b/asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s deleted file mode 100644 index 54d7c673aa8..00000000000 --- a/asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_801F9E2C: -/* 801F9E2C 3C 80 80 3C */ lis r4, __vt__10dMw_DHIO_c@ha /* 0x803BE8E0@ha */ -/* 801F9E30 38 04 E8 E0 */ addi r0, r4, __vt__10dMw_DHIO_c@l /* 0x803BE8E0@l */ -/* 801F9E34 90 03 00 00 */ stw r0, 0(r3) -/* 801F9E38 38 A0 00 00 */ li r5, 0 -/* 801F9E3C 38 00 00 20 */ li r0, 0x20 -/* 801F9E40 7C 09 03 A6 */ mtctr r0 -lbl_801F9E44: -/* 801F9E44 38 00 00 00 */ li r0, 0 -/* 801F9E48 7C 83 2A 14 */ add r4, r3, r5 -/* 801F9E4C 98 04 00 05 */ stb r0, 5(r4) -/* 801F9E50 98 04 00 25 */ stb r0, 0x25(r4) -/* 801F9E54 98 04 00 45 */ stb r0, 0x45(r4) -/* 801F9E58 98 04 00 65 */ stb r0, 0x65(r4) -/* 801F9E5C 98 04 00 85 */ stb r0, 0x85(r4) -/* 801F9E60 98 04 00 A5 */ stb r0, 0xa5(r4) -/* 801F9E64 98 04 00 C5 */ stb r0, 0xc5(r4) -/* 801F9E68 98 04 00 E5 */ stb r0, 0xe5(r4) -/* 801F9E6C 98 04 01 05 */ stb r0, 0x105(r4) -/* 801F9E70 98 04 01 25 */ stb r0, 0x125(r4) -/* 801F9E74 98 04 01 45 */ stb r0, 0x145(r4) -/* 801F9E78 98 04 01 65 */ stb r0, 0x165(r4) -/* 801F9E7C 98 04 01 85 */ stb r0, 0x185(r4) -/* 801F9E80 98 04 01 A5 */ stb r0, 0x1a5(r4) -/* 801F9E84 98 04 01 C5 */ stb r0, 0x1c5(r4) -/* 801F9E88 98 04 01 E5 */ stb r0, 0x1e5(r4) -/* 801F9E8C 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9E90 42 00 FF B4 */ bdnz lbl_801F9E44 -/* 801F9E94 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s b/asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s deleted file mode 100644 index e4f640b4676..00000000000 --- a/asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801F9AFC: -/* 801F9AFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801F9B00 7C 08 02 A6 */ mflr r0 -/* 801F9B04 90 01 00 14 */ stw r0, 0x14(r1) -/* 801F9B08 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801F9B0C 7C 7F 1B 78 */ mr r31, r3 -/* 801F9B10 3C 80 80 3C */ lis r4, __vt__9dMw_HIO_c@ha /* 0x803BE8EC@ha */ -/* 801F9B14 38 04 E8 EC */ addi r0, r4, __vt__9dMw_HIO_c@l /* 0x803BE8EC@l */ -/* 801F9B18 90 03 00 00 */ stw r0, 0(r3) -/* 801F9B1C 48 00 00 1D */ bl init__9dMw_HIO_cFv -/* 801F9B20 7F E3 FB 78 */ mr r3, r31 -/* 801F9B24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801F9B28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801F9B2C 7C 08 03 A6 */ mtlr r0 -/* 801F9B30 38 21 00 10 */ addi r1, r1, 0x10 -/* 801F9B34 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s b/asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s deleted file mode 100644 index 579773c42ec..00000000000 --- a/asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_801F9E98: -/* 801F9E98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801F9E9C 7C 08 02 A6 */ mflr r0 -/* 801F9EA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801F9EA4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801F9EA8 7C 7F 1B 79 */ or. r31, r3, r3 -/* 801F9EAC 41 82 00 1C */ beq lbl_801F9EC8 -/* 801F9EB0 3C A0 80 3C */ lis r5, __vt__10dMw_DHIO_c@ha /* 0x803BE8E0@ha */ -/* 801F9EB4 38 05 E8 E0 */ addi r0, r5, __vt__10dMw_DHIO_c@l /* 0x803BE8E0@l */ -/* 801F9EB8 90 1F 00 00 */ stw r0, 0(r31) -/* 801F9EBC 7C 80 07 35 */ extsh. r0, r4 -/* 801F9EC0 40 81 00 08 */ ble lbl_801F9EC8 -/* 801F9EC4 48 0D 4E 79 */ bl __dl__FPv -lbl_801F9EC8: -/* 801F9EC8 7F E3 FB 78 */ mr r3, r31 -/* 801F9ECC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801F9ED0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801F9ED4 7C 08 03 A6 */ mtlr r0 -/* 801F9ED8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801F9EDC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s b/asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s deleted file mode 100644 index 196132b684e..00000000000 --- a/asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_801F9EE0: -/* 801F9EE0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801F9EE4 7C 08 02 A6 */ mflr r0 -/* 801F9EE8 90 01 00 14 */ stw r0, 0x14(r1) -/* 801F9EEC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801F9EF0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 801F9EF4 41 82 00 1C */ beq lbl_801F9F10 -/* 801F9EF8 3C A0 80 3C */ lis r5, __vt__9dMw_HIO_c@ha /* 0x803BE8EC@ha */ -/* 801F9EFC 38 05 E8 EC */ addi r0, r5, __vt__9dMw_HIO_c@l /* 0x803BE8EC@l */ -/* 801F9F00 90 1F 00 00 */ stw r0, 0(r31) -/* 801F9F04 7C 80 07 35 */ extsh. r0, r4 -/* 801F9F08 40 81 00 08 */ ble lbl_801F9F10 -/* 801F9F0C 48 0D 4E 31 */ bl __dl__FPv -lbl_801F9F10: -/* 801F9F10 7F E3 FB 78 */ mr r3, r31 -/* 801F9F14 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801F9F18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801F9F1C 7C 08 03 A6 */ mtlr r0 -/* 801F9F20 38 21 00 10 */ addi r1, r1, 0x10 -/* 801F9F24 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s b/asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s deleted file mode 100644 index f7362b4f4df..00000000000 --- a/asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_801F9F28: -/* 801F9F28 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801F9F2C 7C 08 02 A6 */ mflr r0 -/* 801F9F30 90 01 00 14 */ stw r0, 0x14(r1) -/* 801F9F34 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801F9F38 3C 60 80 43 */ lis r3, lit_3773@ha /* 0x8042E860@ha */ -/* 801F9F3C 3B E3 E8 60 */ addi r31, r3, lit_3773@l /* 0x8042E860@l */ -/* 801F9F40 38 7F 00 0C */ addi r3, r31, 0xc -/* 801F9F44 4B FF FB B9 */ bl __ct__9dMw_HIO_cFv -/* 801F9F48 3C 80 80 20 */ lis r4, __dt__9dMw_HIO_cFv@ha /* 0x801F9EE0@ha */ -/* 801F9F4C 38 84 9E E0 */ addi r4, r4, __dt__9dMw_HIO_cFv@l /* 0x801F9EE0@l */ -/* 801F9F50 38 BF 00 00 */ addi r5, r31, 0 -/* 801F9F54 48 16 7C D1 */ bl __register_global_object -/* 801F9F58 38 7F 01 48 */ addi r3, r31, 0x148 -/* 801F9F5C 4B FF FE D1 */ bl __ct__10dMw_DHIO_cFv -/* 801F9F60 3C 80 80 20 */ lis r4, __dt__10dMw_DHIO_cFv@ha /* 0x801F9E98@ha */ -/* 801F9F64 38 84 9E 98 */ addi r4, r4, __dt__10dMw_DHIO_cFv@l /* 0x801F9E98@l */ -/* 801F9F68 38 BF 01 3C */ addi r5, r31, 0x13c -/* 801F9F6C 48 16 7C B9 */ bl __register_global_object -/* 801F9F70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801F9F74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801F9F78 7C 08 03 A6 */ mtlr r0 -/* 801F9F7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801F9F80 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s b/asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s deleted file mode 100644 index 4588289c04f..00000000000 --- a/asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s +++ /dev/null @@ -1,195 +0,0 @@ -lbl_801F9B38: -/* 801F9B38 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801F9B3C 7C 08 02 A6 */ mflr r0 -/* 801F9B40 90 01 00 24 */ stw r0, 0x24(r1) -/* 801F9B44 39 61 00 20 */ addi r11, r1, 0x20 -/* 801F9B48 48 16 86 89 */ bl _savegpr_26 -/* 801F9B4C 7C 7F 1B 78 */ mr r31, r3 -/* 801F9B50 38 80 00 00 */ li r4, 0 -/* 801F9B54 98 83 01 1B */ stb r4, 0x11b(r3) -/* 801F9B58 98 83 01 1D */ stb r4, 0x11d(r3) -/* 801F9B5C 98 83 01 1C */ stb r4, 0x11c(r3) -/* 801F9B60 B0 83 00 24 */ sth r4, 0x24(r3) -/* 801F9B64 B0 83 00 06 */ sth r4, 6(r3) -/* 801F9B68 B0 83 00 26 */ sth r4, 0x26(r3) -/* 801F9B6C B0 83 00 08 */ sth r4, 8(r3) -/* 801F9B70 98 83 00 28 */ stb r4, 0x28(r3) -/* 801F9B74 98 83 00 0A */ stb r4, 0xa(r3) -/* 801F9B78 98 83 00 29 */ stb r4, 0x29(r3) -/* 801F9B7C 98 83 00 0B */ stb r4, 0xb(r3) -/* 801F9B80 90 83 00 2C */ stw r4, 0x2c(r3) -/* 801F9B84 90 83 00 0C */ stw r4, 0xc(r3) -/* 801F9B88 90 83 00 30 */ stw r4, 0x30(r3) -/* 801F9B8C 90 83 00 10 */ stw r4, 0x10(r3) -/* 801F9B90 90 83 00 34 */ stw r4, 0x34(r3) -/* 801F9B94 90 83 00 14 */ stw r4, 0x14(r3) -/* 801F9B98 90 83 00 38 */ stw r4, 0x38(r3) -/* 801F9B9C 90 83 00 18 */ stw r4, 0x18(r3) -/* 801F9BA0 98 83 00 3C */ stb r4, 0x3c(r3) -/* 801F9BA4 98 83 00 1C */ stb r4, 0x1c(r3) -/* 801F9BA8 98 83 00 3D */ stb r4, 0x3d(r3) -/* 801F9BAC 98 83 00 1D */ stb r4, 0x1d(r3) -/* 801F9BB0 B0 83 00 3E */ sth r4, 0x3e(r3) -/* 801F9BB4 B0 83 00 1E */ sth r4, 0x1e(r3) -/* 801F9BB8 B0 83 00 40 */ sth r4, 0x40(r3) -/* 801F9BBC B0 83 00 20 */ sth r4, 0x20(r3) -/* 801F9BC0 98 83 00 46 */ stb r4, 0x46(r3) -/* 801F9BC4 98 83 00 22 */ stb r4, 0x22(r3) -/* 801F9BC8 98 83 00 47 */ stb r4, 0x47(r3) -/* 801F9BCC 98 83 00 23 */ stb r4, 0x23(r3) -/* 801F9BD0 98 83 01 1A */ stb r4, 0x11a(r3) -/* 801F9BD4 98 83 01 19 */ stb r4, 0x119(r3) -/* 801F9BD8 98 83 00 49 */ stb r4, 0x49(r3) -/* 801F9BDC 98 83 00 48 */ stb r4, 0x48(r3) -/* 801F9BE0 B0 83 00 44 */ sth r4, 0x44(r3) -/* 801F9BE4 B0 83 00 42 */ sth r4, 0x42(r3) -/* 801F9BE8 38 C0 00 00 */ li r6, 0 -/* 801F9BEC 38 60 00 FF */ li r3, 0xff -/* 801F9BF0 38 00 00 18 */ li r0, 0x18 -/* 801F9BF4 7C 09 03 A6 */ mtctr r0 -lbl_801F9BF8: -/* 801F9BF8 7C BF 32 14 */ add r5, r31, r6 -/* 801F9BFC 98 65 00 62 */ stb r3, 0x62(r5) -/* 801F9C00 98 65 00 4A */ stb r3, 0x4a(r5) -/* 801F9C04 98 85 00 7A */ stb r4, 0x7a(r5) -/* 801F9C08 38 C6 00 01 */ addi r6, r6, 1 -/* 801F9C0C 42 00 FF EC */ bdnz lbl_801F9BF8 -/* 801F9C10 38 A0 00 00 */ li r5, 0 -/* 801F9C14 38 60 00 00 */ li r3, 0 -/* 801F9C18 38 00 00 04 */ li r0, 4 -/* 801F9C1C 7C 09 03 A6 */ mtctr r0 -lbl_801F9C20: -/* 801F9C20 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9C24 98 64 00 F5 */ stb r3, 0xf5(r4) -/* 801F9C28 98 64 00 EB */ stb r3, 0xeb(r4) -/* 801F9C2C 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9C30 42 00 FF F0 */ bdnz lbl_801F9C20 -/* 801F9C34 38 A0 00 00 */ li r5, 0 -/* 801F9C38 38 60 00 00 */ li r3, 0 -/* 801F9C3C 38 00 00 03 */ li r0, 3 -/* 801F9C40 7C 09 03 A6 */ mtctr r0 -lbl_801F9C44: -/* 801F9C44 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9C48 98 64 00 F1 */ stb r3, 0xf1(r4) -/* 801F9C4C 98 64 00 E7 */ stb r3, 0xe7(r4) -/* 801F9C50 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9C54 42 00 FF F0 */ bdnz lbl_801F9C44 -/* 801F9C58 38 00 00 FF */ li r0, 0xff -/* 801F9C5C 98 1F 00 A7 */ stb r0, 0xa7(r31) -/* 801F9C60 98 1F 00 A6 */ stb r0, 0xa6(r31) -/* 801F9C64 38 00 00 00 */ li r0, 0 -/* 801F9C68 98 1F 00 A8 */ stb r0, 0xa8(r31) -/* 801F9C6C 98 1F 00 F4 */ stb r0, 0xf4(r31) -/* 801F9C70 98 1F 00 EA */ stb r0, 0xea(r31) -/* 801F9C74 3B 60 00 00 */ li r27, 0 -/* 801F9C78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801F9C7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801F9C80 3B 83 00 CC */ addi r28, r3, 0xcc -/* 801F9C84 3B AD 81 CC */ la r29, m_sword_item(r13) /* 8045074C-_SDA_BASE_ */ -lbl_801F9C88: -/* 801F9C88 7F 83 E3 78 */ mr r3, r28 -/* 801F9C8C 88 9D 00 00 */ lbz r4, 0(r29) -/* 801F9C90 4B E3 A2 39 */ bl isFirstBit__21dSv_player_get_item_cCFUc -/* 801F9C94 30 03 FF FF */ addic r0, r3, -1 -/* 801F9C98 7C 00 19 10 */ subfe r0, r0, r3 -/* 801F9C9C 7C 7F DA 14 */ add r3, r31, r27 -/* 801F9CA0 98 03 00 9C */ stb r0, 0x9c(r3) -/* 801F9CA4 98 03 00 92 */ stb r0, 0x92(r3) -/* 801F9CA8 3B 7B 00 01 */ addi r27, r27, 1 -/* 801F9CAC 2C 1B 00 04 */ cmpwi r27, 4 -/* 801F9CB0 3B BD 00 01 */ addi r29, r29, 1 -/* 801F9CB4 41 80 FF D4 */ blt lbl_801F9C88 -/* 801F9CB8 3B 40 00 00 */ li r26, 0 -/* 801F9CBC 3B AD 81 D0 */ la r29, m_shield_item(r13) /* 80450750-_SDA_BASE_ */ -/* 801F9CC0 3B CD 81 C8 */ la r30, m_cloth_item(r13) /* 80450748-_SDA_BASE_ */ -lbl_801F9CC4: -/* 801F9CC4 7F 83 E3 78 */ mr r3, r28 -/* 801F9CC8 88 9D 00 00 */ lbz r4, 0(r29) -/* 801F9CCC 4B E3 A1 FD */ bl isFirstBit__21dSv_player_get_item_cCFUc -/* 801F9CD0 30 03 FF FF */ addic r0, r3, -1 -/* 801F9CD4 7C 00 19 10 */ subfe r0, r0, r3 -/* 801F9CD8 7F 7F D2 14 */ add r27, r31, r26 -/* 801F9CDC 98 1B 00 A0 */ stb r0, 0xa0(r27) -/* 801F9CE0 98 1B 00 96 */ stb r0, 0x96(r27) -/* 801F9CE4 7F 83 E3 78 */ mr r3, r28 -/* 801F9CE8 88 9E 00 00 */ lbz r4, 0(r30) -/* 801F9CEC 4B E3 A1 DD */ bl isFirstBit__21dSv_player_get_item_cCFUc -/* 801F9CF0 30 03 FF FF */ addic r0, r3, -1 -/* 801F9CF4 7C 00 19 10 */ subfe r0, r0, r3 -/* 801F9CF8 98 1B 00 A3 */ stb r0, 0xa3(r27) -/* 801F9CFC 98 1B 00 99 */ stb r0, 0x99(r27) -/* 801F9D00 3B 5A 00 01 */ addi r26, r26, 1 -/* 801F9D04 2C 1A 00 03 */ cmpwi r26, 3 -/* 801F9D08 3B DE 00 01 */ addi r30, r30, 1 -/* 801F9D0C 3B BD 00 01 */ addi r29, r29, 1 -/* 801F9D10 41 80 FF B4 */ blt lbl_801F9CC4 -/* 801F9D14 38 60 00 00 */ li r3, 0 -/* 801F9D18 98 7F 00 AA */ stb r3, 0xaa(r31) -/* 801F9D1C 98 7F 00 A9 */ stb r3, 0xa9(r31) -/* 801F9D20 38 A0 00 00 */ li r5, 0 -/* 801F9D24 38 00 00 03 */ li r0, 3 -/* 801F9D28 7C 09 03 A6 */ mtctr r0 -lbl_801F9D2C: -/* 801F9D2C 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9D30 98 64 00 AE */ stb r3, 0xae(r4) -/* 801F9D34 98 64 00 AB */ stb r3, 0xab(r4) -/* 801F9D38 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9D3C 42 00 FF F0 */ bdnz lbl_801F9D2C -/* 801F9D40 38 A0 00 00 */ li r5, 0 -/* 801F9D44 38 60 00 00 */ li r3, 0 -/* 801F9D48 38 00 00 02 */ li r0, 2 -/* 801F9D4C 7C 09 03 A6 */ mtctr r0 -lbl_801F9D50: -/* 801F9D50 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9D54 98 64 00 B3 */ stb r3, 0xb3(r4) -/* 801F9D58 98 64 00 B1 */ stb r3, 0xb1(r4) -/* 801F9D5C 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9D60 42 00 FF F0 */ bdnz lbl_801F9D50 -/* 801F9D64 38 A0 00 00 */ li r5, 0 -/* 801F9D68 38 60 00 00 */ li r3, 0 -/* 801F9D6C 38 00 00 18 */ li r0, 0x18 -/* 801F9D70 7C 09 03 A6 */ mtctr r0 -lbl_801F9D74: -/* 801F9D74 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9D78 98 64 00 CD */ stb r3, 0xcd(r4) -/* 801F9D7C 98 64 00 B5 */ stb r3, 0xb5(r4) -/* 801F9D80 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9D84 42 00 FF F0 */ bdnz lbl_801F9D74 -/* 801F9D88 38 A0 00 00 */ li r5, 0 -/* 801F9D8C 38 60 00 00 */ li r3, 0 -/* 801F9D90 38 00 00 08 */ li r0, 8 -/* 801F9D94 7C 09 03 A6 */ mtctr r0 -lbl_801F9D98: -/* 801F9D98 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9D9C 98 64 01 01 */ stb r3, 0x101(r4) -/* 801F9DA0 98 64 00 F9 */ stb r3, 0xf9(r4) -/* 801F9DA4 98 64 01 11 */ stb r3, 0x111(r4) -/* 801F9DA8 98 64 01 09 */ stb r3, 0x109(r4) -/* 801F9DAC 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9DB0 42 00 FF E8 */ bdnz lbl_801F9D98 -/* 801F9DB4 38 A0 00 00 */ li r5, 0 -/* 801F9DB8 38 60 00 00 */ li r3, 0 -/* 801F9DBC 38 00 00 04 */ li r0, 4 -/* 801F9DC0 7C 09 03 A6 */ mtctr r0 -lbl_801F9DC4: -/* 801F9DC4 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9DC8 98 64 01 22 */ stb r3, 0x122(r4) -/* 801F9DCC 98 64 01 1E */ stb r3, 0x11e(r4) -/* 801F9DD0 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9DD4 42 00 FF F0 */ bdnz lbl_801F9DC4 -/* 801F9DD8 38 A0 00 00 */ li r5, 0 -/* 801F9DDC 38 60 00 00 */ li r3, 0 -/* 801F9DE0 38 00 00 04 */ li r0, 4 -/* 801F9DE4 7C 09 03 A6 */ mtctr r0 -lbl_801F9DE8: -/* 801F9DE8 7C 9F 2A 14 */ add r4, r31, r5 -/* 801F9DEC 98 64 01 2A */ stb r3, 0x12a(r4) -/* 801F9DF0 98 64 01 26 */ stb r3, 0x126(r4) -/* 801F9DF4 38 A5 00 01 */ addi r5, r5, 1 -/* 801F9DF8 42 00 FF F0 */ bdnz lbl_801F9DE8 -/* 801F9DFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 801F9E00 48 16 84 1D */ bl _restgpr_26 -/* 801F9E04 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801F9E08 7C 08 03 A6 */ mtlr r0 -/* 801F9E0C 38 21 00 20 */ addi r1, r1, 0x20 -/* 801F9E10 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/_create__9dMeter2_cFv.s b/asm/d/meter/d_meter2/_create__9dMeter2_cFv.s deleted file mode 100644 index 5c684a9eafd..00000000000 --- a/asm/d/meter/d_meter2/_create__9dMeter2_cFv.s +++ /dev/null @@ -1,480 +0,0 @@ -lbl_8021EA14: -/* 8021EA14 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8021EA18 7C 08 02 A6 */ mflr r0 -/* 8021EA1C 90 01 00 34 */ stw r0, 0x34(r1) -/* 8021EA20 39 61 00 30 */ addi r11, r1, 0x30 -/* 8021EA24 48 14 37 A9 */ bl _savegpr_25 -/* 8021EA28 7C 7F 1B 78 */ mr r31, r3 -/* 8021EA2C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EA30 3B 63 61 C0 */ addi r27, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EA34 38 7B 4E 20 */ addi r3, r27, 0x4e20 -/* 8021EA38 81 9B 4E 20 */ lwz r12, 0x4e20(r27) -/* 8021EA3C 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8021EA40 7D 89 03 A6 */ mtctr r12 -/* 8021EA44 4E 80 04 21 */ bctrl -/* 8021EA48 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8021EA4C 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8021EA50 2C 00 00 01 */ cmpwi r0, 1 -/* 8021EA54 40 82 00 1C */ bne lbl_8021EA70 -/* 8021EA58 3C 60 00 06 */ lis r3, 0x0006 /* 0x0005A400@ha */ -/* 8021EA5C 38 63 A4 00 */ addi r3, r3, 0xA400 /* 0x0005A400@l */ -/* 8021EA60 38 80 00 00 */ li r4, 0 -/* 8021EA64 4B E0 19 39 */ bl fopMsgM_createExpHeap__FUlP7JKRHeap -/* 8021EA68 90 7F 01 00 */ stw r3, 0x100(r31) -/* 8021EA6C 48 00 00 18 */ b lbl_8021EA84 -lbl_8021EA70: -/* 8021EA70 3C 60 00 06 */ lis r3, 0x0006 /* 0x00060800@ha */ -/* 8021EA74 38 63 08 00 */ addi r3, r3, 0x0800 /* 0x00060800@l */ -/* 8021EA78 38 80 00 00 */ li r4, 0 -/* 8021EA7C 4B E0 19 21 */ bl fopMsgM_createExpHeap__FUlP7JKRHeap -/* 8021EA80 90 7F 01 00 */ stw r3, 0x100(r31) -lbl_8021EA84: -/* 8021EA84 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EA88 4B DF 07 45 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8021EA8C 7C 7E 1B 78 */ mr r30, r3 -/* 8021EA90 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EA94 48 0A FC F1 */ bl getTotalFreeSize__7JKRHeapFv -/* 8021EA98 38 7B 4E 00 */ addi r3, r27, 0x4e00 -/* 8021EA9C 3C 80 80 3A */ lis r4, d_meter_d_meter2__stringBase0@ha /* 0x80399338@ha */ -/* 8021EAA0 38 84 93 38 */ addi r4, r4, d_meter_d_meter2__stringBase0@l /* 0x80399338@l */ -/* 8021EAA4 48 14 9E F1 */ bl strcmp -/* 8021EAA8 2C 03 00 00 */ cmpwi r3, 0 -/* 8021EAAC 40 82 00 18 */ bne lbl_8021EAC4 -/* 8021EAB0 38 00 00 00 */ li r0, 0 -/* 8021EAB4 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021EAB8 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021EABC 98 03 00 BC */ stb r0, 0xbc(r3) -/* 8021EAC0 98 03 00 BB */ stb r0, 0xbb(r3) -lbl_8021EAC4: -/* 8021EAC4 38 60 00 00 */ li r3, 0 -/* 8021EAC8 90 7F 01 28 */ stw r3, 0x128(r31) -/* 8021EACC 80 1F 01 28 */ lwz r0, 0x128(r31) -/* 8021EAD0 90 1F 01 2C */ stw r0, 0x12c(r31) -/* 8021EAD4 90 7F 01 24 */ stw r3, 0x124(r31) -/* 8021EAD8 98 7F 01 E5 */ stb r3, 0x1e5(r31) -/* 8021EADC B0 7F 01 B6 */ sth r3, 0x1b6(r31) -/* 8021EAE0 98 7F 01 E6 */ stb r3, 0x1e6(r31) -/* 8021EAE4 98 7F 01 E7 */ stb r3, 0x1e7(r31) -/* 8021EAE8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EAEC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EAF0 3B A3 00 F8 */ addi r29, r3, 0xf8 -/* 8021EAF4 88 03 00 F8 */ lbz r0, 0xf8(r3) -/* 8021EAF8 98 1F 01 FB */ stb r0, 0x1fb(r31) -/* 8021EAFC 3B 83 00 EC */ addi r28, r3, 0xec -/* 8021EB00 88 03 00 EC */ lbz r0, 0xec(r3) -/* 8021EB04 98 1F 01 DA */ stb r0, 0x1da(r31) -/* 8021EB08 38 00 00 32 */ li r0, 0x32 -/* 8021EB0C 98 1F 01 FC */ stb r0, 0x1fc(r31) -/* 8021EB10 88 03 00 F4 */ lbz r0, 0xf4(r3) -/* 8021EB14 98 1F 01 DB */ stb r0, 0x1db(r31) -/* 8021EB18 3B 20 00 00 */ li r25, 0 -/* 8021EB1C 3B 63 00 9C */ addi r27, r3, 0x9c -lbl_8021EB20: -/* 8021EB20 7F 63 DB 78 */ mr r3, r27 -/* 8021EB24 38 19 00 0F */ addi r0, r25, 0xf -/* 8021EB28 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 8021EB2C 38 A0 00 01 */ li r5, 1 -/* 8021EB30 4B E1 45 01 */ bl getItem__17dSv_player_item_cCFib -/* 8021EB34 7C 64 1B 78 */ mr r4, r3 -/* 8021EB38 7F A3 EB 78 */ mr r3, r29 -/* 8021EB3C 4B E1 55 BD */ bl getBombNum__21dSv_player_item_max_cCFUc -/* 8021EB40 7F 5F CA 14 */ add r26, r31, r25 -/* 8021EB44 98 7A 01 F6 */ stb r3, 0x1f6(r26) -/* 8021EB48 7F 83 E3 78 */ mr r3, r28 -/* 8021EB4C 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EB50 4B E1 54 2D */ bl getBombNum__24dSv_player_item_record_cCFUc -/* 8021EB54 98 7A 01 F3 */ stb r3, 0x1f3(r26) -/* 8021EB58 3B 39 00 01 */ addi r25, r25, 1 -/* 8021EB5C 2C 19 00 03 */ cmpwi r25, 3 -/* 8021EB60 41 80 FF C0 */ blt lbl_8021EB20 -/* 8021EB64 3B 20 00 00 */ li r25, 0 -/* 8021EB68 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EB6C 3B 63 61 C0 */ addi r27, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -lbl_8021EB70: -/* 8021EB70 7F 63 DB 78 */ mr r3, r27 -/* 8021EB74 7F 24 CB 78 */ mr r4, r25 -/* 8021EB78 4B E1 3E E5 */ bl getSelectItemIndex__21dSv_player_status_a_cCFi -/* 8021EB7C 38 19 01 F9 */ addi r0, r25, 0x1f9 -/* 8021EB80 7C 7F 01 AE */ stbx r3, r31, r0 -/* 8021EB84 3B 39 00 01 */ addi r25, r25, 1 -/* 8021EB88 2C 19 00 02 */ cmpwi r25, 2 -/* 8021EB8C 41 80 FF E4 */ blt lbl_8021EB70 -/* 8021EB90 3B 20 00 00 */ li r25, 0 -lbl_8021EB94: -/* 8021EB94 7F 83 E3 78 */ mr r3, r28 -/* 8021EB98 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EB9C 4B E1 54 95 */ bl getBottleNum__24dSv_player_item_record_cCFUc -/* 8021EBA0 38 19 01 EF */ addi r0, r25, 0x1ef -/* 8021EBA4 7C 7F 01 AE */ stbx r3, r31, r0 -/* 8021EBA8 3B 39 00 01 */ addi r25, r25, 1 -/* 8021EBAC 2C 19 00 04 */ cmpwi r25, 4 -/* 8021EBB0 41 80 FF E4 */ blt lbl_8021EB94 -/* 8021EBB4 38 80 00 00 */ li r4, 0 -/* 8021EBB8 98 9F 01 E8 */ stb r4, 0x1e8(r31) -/* 8021EBBC 98 9F 01 E9 */ stb r4, 0x1e9(r31) -/* 8021EBC0 98 9F 01 EA */ stb r4, 0x1ea(r31) -/* 8021EBC4 98 9F 01 EB */ stb r4, 0x1eb(r31) -/* 8021EBC8 7C 83 23 78 */ mr r3, r4 -/* 8021EBCC 38 00 00 05 */ li r0, 5 -/* 8021EBD0 7C 09 03 A6 */ mtctr r0 -lbl_8021EBD4: -/* 8021EBD4 38 03 01 B8 */ addi r0, r3, 0x1b8 -/* 8021EBD8 7C 9F 03 2E */ sthx r4, r31, r0 -/* 8021EBDC 38 63 00 02 */ addi r3, r3, 2 -/* 8021EBE0 42 00 FF F4 */ bdnz lbl_8021EBD4 -/* 8021EBE4 38 00 00 00 */ li r0, 0 -/* 8021EBE8 98 1F 01 EC */ stb r0, 0x1ec(r31) -/* 8021EBEC 98 1F 01 ED */ stb r0, 0x1ed(r31) -/* 8021EBF0 98 1F 01 EE */ stb r0, 0x1ee(r31) -/* 8021EBF4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EBF8 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EBFC A0 04 00 02 */ lhz r0, 2(r4) -/* 8021EC00 B0 1F 01 92 */ sth r0, 0x192(r31) -/* 8021EC04 A8 1F 01 92 */ lha r0, 0x192(r31) -/* 8021EC08 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 8021EC0C B0 04 5E 16 */ sth r0, 0x5e16(r4) -/* 8021EC10 A0 04 00 00 */ lhz r0, 0(r4) -/* 8021EC14 B0 1F 01 94 */ sth r0, 0x194(r31) -/* 8021EC18 88 04 00 1B */ lbz r0, 0x1b(r4) -/* 8021EC1C B0 1F 01 96 */ sth r0, 0x196(r31) -/* 8021EC20 A8 1F 01 96 */ lha r0, 0x196(r31) -/* 8021EC24 B0 04 5D CE */ sth r0, 0x5dce(r4) -/* 8021EC28 88 04 00 1A */ lbz r0, 0x1a(r4) -/* 8021EC2C B0 1F 01 98 */ sth r0, 0x198(r31) -/* 8021EC30 A0 04 00 08 */ lhz r0, 8(r4) -/* 8021EC34 7C 00 07 34 */ extsh r0, r0 -/* 8021EC38 90 1F 01 9C */ stw r0, 0x19c(r31) -/* 8021EC3C 80 1F 01 9C */ lwz r0, 0x19c(r31) -/* 8021EC40 90 04 5D D8 */ stw r0, 0x5dd8(r4) -/* 8021EC44 A0 04 00 06 */ lhz r0, 6(r4) -/* 8021EC48 7C 00 07 34 */ extsh r0, r0 -/* 8021EC4C 90 1F 01 A0 */ stw r0, 0x1a0(r31) -/* 8021EC50 80 04 5D E0 */ lwz r0, 0x5de0(r4) -/* 8021EC54 90 1F 01 A4 */ stw r0, 0x1a4(r31) -/* 8021EC58 80 1F 01 A4 */ lwz r0, 0x1a4(r31) -/* 8021EC5C 90 04 5D E4 */ stw r0, 0x5de4(r4) -/* 8021EC60 80 04 5D E8 */ lwz r0, 0x5de8(r4) -/* 8021EC64 90 1F 01 A8 */ stw r0, 0x1a8(r31) -/* 8021EC68 C0 02 AF C8 */ lfs f0, lit_4662(r2) -/* 8021EC6C D0 1F 01 30 */ stfs f0, 0x130(r31) -/* 8021EC70 38 64 01 14 */ addi r3, r4, 0x114 -/* 8021EC74 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 8021EC78 4B E1 56 C9 */ bl getLightDropNum__16dSv_light_drop_cCFUc -/* 8021EC7C 98 7F 01 C2 */ stb r3, 0x1c2(r31) -/* 8021EC80 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EC84 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EC88 88 03 5E A1 */ lbz r0, 0x5ea1(r3) -/* 8021EC8C 98 1F 01 C3 */ stb r0, 0x1c3(r31) -/* 8021EC90 A0 03 00 04 */ lhz r0, 4(r3) -/* 8021EC94 B0 1F 01 B0 */ sth r0, 0x1b0(r31) -/* 8021EC98 88 03 09 74 */ lbz r0, 0x974(r3) -/* 8021EC9C B0 1F 01 B2 */ sth r0, 0x1b2(r31) -/* 8021ECA0 88 03 5E 24 */ lbz r0, 0x5e24(r3) -/* 8021ECA4 98 1F 01 C4 */ stb r0, 0x1c4(r31) -/* 8021ECA8 88 03 5E 4A */ lbz r0, 0x5e4a(r3) -/* 8021ECAC 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 8021ECB0 98 1F 01 DC */ stb r0, 0x1dc(r31) -/* 8021ECB4 38 60 00 00 */ li r3, 0 -/* 8021ECB8 C0 02 AF C8 */ lfs f0, lit_4662(r2) -/* 8021ECBC 38 00 00 02 */ li r0, 2 -/* 8021ECC0 7C 09 03 A6 */ mtctr r0 -lbl_8021ECC4: -/* 8021ECC4 7C 9F 1A 14 */ add r4, r31, r3 -/* 8021ECC8 D0 04 01 34 */ stfs f0, 0x134(r4) -/* 8021ECCC D0 04 01 3C */ stfs f0, 0x13c(r4) -/* 8021ECD0 38 63 00 04 */ addi r3, r3, 4 -/* 8021ECD4 42 00 FF F0 */ bdnz lbl_8021ECC4 -/* 8021ECD8 C0 02 AF CC */ lfs f0, lit_4663(r2) -/* 8021ECDC D0 1F 01 44 */ stfs f0, 0x144(r31) -/* 8021ECE0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021ECE4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021ECE8 88 03 5E 1D */ lbz r0, 0x5e1d(r3) -/* 8021ECEC 98 1F 01 C5 */ stb r0, 0x1c5(r31) -/* 8021ECF0 38 00 00 00 */ li r0, 0 -/* 8021ECF4 98 1F 01 C6 */ stb r0, 0x1c6(r31) -/* 8021ECF8 88 03 5E 43 */ lbz r0, 0x5e43(r3) -/* 8021ECFC 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 8021ED00 98 1F 01 DD */ stb r0, 0x1dd(r31) -/* 8021ED04 38 60 00 00 */ li r3, 0 -/* 8021ED08 C0 02 AF C8 */ lfs f0, lit_4662(r2) -/* 8021ED0C 38 00 00 02 */ li r0, 2 -/* 8021ED10 7C 09 03 A6 */ mtctr r0 -lbl_8021ED14: -/* 8021ED14 7C 9F 1A 14 */ add r4, r31, r3 -/* 8021ED18 D0 04 01 48 */ stfs f0, 0x148(r4) -/* 8021ED1C D0 04 01 50 */ stfs f0, 0x150(r4) -/* 8021ED20 38 63 00 04 */ addi r3, r3, 4 -/* 8021ED24 42 00 FF F0 */ bdnz lbl_8021ED14 -/* 8021ED28 C0 02 AF CC */ lfs f0, lit_4663(r2) -/* 8021ED2C D0 1F 01 58 */ stfs f0, 0x158(r31) -/* 8021ED30 38 80 00 00 */ li r4, 0 -/* 8021ED34 98 9F 01 E4 */ stb r4, 0x1e4(r31) -/* 8021ED38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021ED3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021ED40 88 03 00 14 */ lbz r0, 0x14(r3) -/* 8021ED44 98 1F 01 E2 */ stb r0, 0x1e2(r31) -/* 8021ED48 98 9F 01 E3 */ stb r4, 0x1e3(r31) -/* 8021ED4C 98 9F 01 FE */ stb r4, 0x1fe(r31) -/* 8021ED50 98 9F 01 FD */ stb r4, 0x1fd(r31) -/* 8021ED54 98 9F 01 FF */ stb r4, 0x1ff(r31) -/* 8021ED58 98 9F 02 00 */ stb r4, 0x200(r31) -/* 8021ED5C 98 9F 02 01 */ stb r4, 0x201(r31) -/* 8021ED60 88 03 00 16 */ lbz r0, 0x16(r3) -/* 8021ED64 98 1F 01 C7 */ stb r0, 0x1c7(r31) -/* 8021ED68 88 03 5E 1C */ lbz r0, 0x5e1c(r3) -/* 8021ED6C 98 1F 01 C8 */ stb r0, 0x1c8(r31) -/* 8021ED70 88 03 5E 42 */ lbz r0, 0x5e42(r3) -/* 8021ED74 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 8021ED78 98 1F 01 DE */ stb r0, 0x1de(r31) -/* 8021ED7C 88 03 5E 5E */ lbz r0, 0x5e5e(r3) -/* 8021ED80 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 8021ED84 98 1F 01 DF */ stb r0, 0x1df(r31) -/* 8021ED88 88 03 5E 62 */ lbz r0, 0x5e62(r3) -/* 8021ED8C 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 8021ED90 98 1F 01 E0 */ stb r0, 0x1e0(r31) -/* 8021ED94 3B 20 00 00 */ li r25, 0 -lbl_8021ED98: -/* 8021ED98 7F 23 CB 78 */ mr r3, r25 -/* 8021ED9C 4B E0 F0 59 */ bl dComIfGp_setSelectItem__Fi -/* 8021EDA0 3B 39 00 01 */ addi r25, r25, 1 -/* 8021EDA4 2C 19 00 02 */ cmpwi r25, 2 -/* 8021EDA8 41 80 FF F0 */ blt lbl_8021ED98 -/* 8021EDAC 38 60 00 00 */ li r3, 0 -/* 8021EDB0 4B E0 F1 6D */ bl dComIfGp_getSelectItem__Fi -/* 8021EDB4 98 7F 01 D2 */ stb r3, 0x1d2(r31) -/* 8021EDB8 38 60 00 01 */ li r3, 1 -/* 8021EDBC 4B E0 F1 61 */ bl dComIfGp_getSelectItem__Fi -/* 8021EDC0 98 7F 01 D4 */ stb r3, 0x1d4(r31) -/* 8021EDC4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EDC8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EDCC 88 03 5E 5C */ lbz r0, 0x5e5c(r3) -/* 8021EDD0 98 1F 01 D3 */ stb r0, 0x1d3(r31) -/* 8021EDD4 88 03 5E 60 */ lbz r0, 0x5e60(r3) -/* 8021EDD8 98 1F 01 D5 */ stb r0, 0x1d5(r31) -/* 8021EDDC C0 02 AF C8 */ lfs f0, lit_4662(r2) -/* 8021EDE0 D0 1F 01 88 */ stfs f0, 0x188(r31) -/* 8021EDE4 D0 1F 01 8C */ stfs f0, 0x18c(r31) -/* 8021EDE8 3B 20 00 00 */ li r25, 0 -/* 8021EDEC 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021EDF0 3B 63 01 88 */ addi r27, r3, g_meter2_info@l /* 0x80430188@l */ -lbl_8021EDF4: -/* 8021EDF4 7F 63 DB 78 */ mr r3, r27 -/* 8021EDF8 7F 24 CB 78 */ mr r4, r25 -/* 8021EDFC 4B FF DB 55 */ bl isDirectUseItem__13dMeter2Info_cFi -/* 8021EE00 7F 5F CA 14 */ add r26, r31, r25 -/* 8021EE04 98 7A 01 D6 */ stb r3, 0x1d6(r26) -/* 8021EE08 7F 23 CB 78 */ mr r3, r25 -/* 8021EE0C 4B E0 F7 B5 */ bl dComIfGp_getSelectItemNum__Fi -/* 8021EE10 98 7A 01 D8 */ stb r3, 0x1d8(r26) -/* 8021EE14 3B 39 00 01 */ addi r25, r25, 1 -/* 8021EE18 2C 19 00 02 */ cmpwi r25, 2 -/* 8021EE1C 41 80 FF D8 */ blt lbl_8021EDF4 -/* 8021EE20 38 00 00 00 */ li r0, 0 -/* 8021EE24 98 1F 01 E1 */ stb r0, 0x1e1(r31) -/* 8021EE28 B0 1F 01 B4 */ sth r0, 0x1b4(r31) -/* 8021EE2C C0 02 AF C8 */ lfs f0, lit_4662(r2) -/* 8021EE30 D0 1F 01 5C */ stfs f0, 0x15c(r31) -/* 8021EE34 38 60 00 00 */ li r3, 0 -/* 8021EE38 38 00 00 04 */ li r0, 4 -/* 8021EE3C 7C 09 03 A6 */ mtctr r0 -lbl_8021EE40: -/* 8021EE40 7C 9F 1A 14 */ add r4, r31, r3 -/* 8021EE44 D0 04 01 60 */ stfs f0, 0x160(r4) -/* 8021EE48 D0 04 01 74 */ stfs f0, 0x174(r4) -/* 8021EE4C 38 63 00 04 */ addi r3, r3, 4 -/* 8021EE50 42 00 FF F0 */ bdnz lbl_8021EE40 -/* 8021EE54 38 80 00 00 */ li r4, 0 -/* 8021EE58 B0 9F 01 90 */ sth r4, 0x190(r31) -/* 8021EE5C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021EE60 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021EE64 88 03 5E 33 */ lbz r0, 0x5e33(r3) -/* 8021EE68 98 1F 01 C9 */ stb r0, 0x1c9(r31) -/* 8021EE6C 88 03 5E 26 */ lbz r0, 0x5e26(r3) -/* 8021EE70 98 1F 01 CA */ stb r0, 0x1ca(r31) -/* 8021EE74 88 03 5E 2F */ lbz r0, 0x5e2f(r3) -/* 8021EE78 98 1F 01 CB */ stb r0, 0x1cb(r31) -/* 8021EE7C 88 03 5E 32 */ lbz r0, 0x5e32(r3) -/* 8021EE80 98 1F 01 CC */ stb r0, 0x1cc(r31) -/* 8021EE84 88 03 5E 1F */ lbz r0, 0x5e1f(r3) -/* 8021EE88 98 1F 01 CD */ stb r0, 0x1cd(r31) -/* 8021EE8C 88 03 5E 21 */ lbz r0, 0x5e21(r3) -/* 8021EE90 98 1F 01 CE */ stb r0, 0x1ce(r31) -/* 8021EE94 88 03 5E 64 */ lbz r0, 0x5e64(r3) -/* 8021EE98 98 1F 01 CF */ stb r0, 0x1cf(r31) -/* 8021EE9C 88 03 5E 68 */ lbz r0, 0x5e68(r3) -/* 8021EEA0 98 1F 01 D0 */ stb r0, 0x1d0(r31) -/* 8021EEA4 88 03 5E 20 */ lbz r0, 0x5e20(r3) -/* 8021EEA8 98 1F 01 D1 */ stb r0, 0x1d1(r31) -/* 8021EEAC 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021EEB0 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021EEB4 A0 03 00 AE */ lhz r0, 0xae(r3) -/* 8021EEB8 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f -/* 8021EEBC 90 1F 01 AC */ stw r0, 0x1ac(r31) -/* 8021EEC0 B0 9F 01 9A */ sth r4, 0x19a(r31) -/* 8021EEC4 38 60 08 64 */ li r3, 0x864 -/* 8021EEC8 48 0A FD 85 */ bl __nw__FUl -/* 8021EECC 7C 60 1B 79 */ or. r0, r3, r3 -/* 8021EED0 41 82 00 10 */ beq lbl_8021EEE0 -/* 8021EED4 80 9F 01 00 */ lwz r4, 0x100(r31) -/* 8021EED8 4B FF 0B DD */ bl __ct__13dMeter2Draw_cFP10JKRExpHeap -/* 8021EEDC 7C 60 1B 78 */ mr r0, r3 -lbl_8021EEE0: -/* 8021EEE0 90 1F 01 0C */ stw r0, 0x10c(r31) -/* 8021EEE4 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021EEE8 4B FF 6E C1 */ bl getNowLightDropRateCalc__13dMeter2Draw_cFv -/* 8021EEEC D0 3F 01 30 */ stfs f1, 0x130(r31) -/* 8021EEF0 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EEF4 48 0A F8 91 */ bl getTotalFreeSize__7JKRHeapFv -/* 8021EEF8 3B 20 00 00 */ li r25, 0 -/* 8021EEFC 3B 80 00 00 */ li r28, 0 -lbl_8021EF00: -/* 8021EF00 80 1F 01 28 */ lwz r0, 0x128(r31) -/* 8021EF04 28 00 00 00 */ cmplwi r0, 0 -/* 8021EF08 40 82 01 48 */ bne lbl_8021F050 -/* 8021EF0C 38 1C 01 D2 */ addi r0, r28, 0x1d2 -/* 8021EF10 7C 1F 00 AE */ lbzx r0, r31, r0 -/* 8021EF14 28 00 00 50 */ cmplwi r0, 0x50 -/* 8021EF18 41 82 00 1C */ beq lbl_8021EF34 -/* 8021EF1C 28 00 00 70 */ cmplwi r0, 0x70 -/* 8021EF20 41 82 00 14 */ beq lbl_8021EF34 -/* 8021EF24 28 00 00 71 */ cmplwi r0, 0x71 -/* 8021EF28 41 82 00 0C */ beq lbl_8021EF34 -/* 8021EF2C 28 00 00 72 */ cmplwi r0, 0x72 -/* 8021EF30 40 82 00 30 */ bne lbl_8021EF60 -lbl_8021EF34: -/* 8021EF34 7F 23 CB 78 */ mr r3, r25 -/* 8021EF38 4B E0 F7 51 */ bl dComIfGp_getSelectItemMaxNum__Fi -/* 8021EF3C 54 7B 06 3E */ clrlwi r27, r3, 0x18 -/* 8021EF40 7F 23 CB 78 */ mr r3, r25 -/* 8021EF44 4B E0 F6 7D */ bl dComIfGp_getSelectItemNum__Fi -/* 8021EF48 54 65 06 3E */ clrlwi r5, r3, 0x18 -/* 8021EF4C 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021EF50 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EF54 7F 66 DB 78 */ mr r6, r27 -/* 8021EF58 4B FF BC 2D */ bl setItemNum__13dMeter2Draw_cFUcUcUc -/* 8021EF5C 48 00 00 F4 */ b lbl_8021F050 -lbl_8021EF60: -/* 8021EF60 28 00 00 76 */ cmplwi r0, 0x76 -/* 8021EF64 40 82 00 30 */ bne lbl_8021EF94 -/* 8021EF68 7F 23 CB 78 */ mr r3, r25 -/* 8021EF6C 4B E0 F7 1D */ bl dComIfGp_getSelectItemMaxNum__Fi -/* 8021EF70 54 7B 06 3E */ clrlwi r27, r3, 0x18 -/* 8021EF74 7F 23 CB 78 */ mr r3, r25 -/* 8021EF78 4B E0 F6 49 */ bl dComIfGp_getSelectItemNum__Fi -/* 8021EF7C 54 65 06 3E */ clrlwi r5, r3, 0x18 -/* 8021EF80 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021EF84 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EF88 7F 66 DB 78 */ mr r6, r27 -/* 8021EF8C 4B FF BB F9 */ bl setItemNum__13dMeter2Draw_cFUcUcUc -/* 8021EF90 48 00 00 C0 */ b lbl_8021F050 -lbl_8021EF94: -/* 8021EF94 28 00 00 43 */ cmplwi r0, 0x43 -/* 8021EF98 41 82 00 2C */ beq lbl_8021EFC4 -/* 8021EF9C 28 00 00 53 */ cmplwi r0, 0x53 -/* 8021EFA0 41 82 00 24 */ beq lbl_8021EFC4 -/* 8021EFA4 28 00 00 54 */ cmplwi r0, 0x54 -/* 8021EFA8 41 82 00 1C */ beq lbl_8021EFC4 -/* 8021EFAC 28 00 00 55 */ cmplwi r0, 0x55 -/* 8021EFB0 41 82 00 14 */ beq lbl_8021EFC4 -/* 8021EFB4 28 00 00 56 */ cmplwi r0, 0x56 -/* 8021EFB8 41 82 00 0C */ beq lbl_8021EFC4 -/* 8021EFBC 28 00 00 5A */ cmplwi r0, 0x5a -/* 8021EFC0 40 82 00 1C */ bne lbl_8021EFDC -lbl_8021EFC4: -/* 8021EFC4 88 DD 00 00 */ lbz r6, 0(r29) -/* 8021EFC8 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021EFCC 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EFD0 88 BF 01 DA */ lbz r5, 0x1da(r31) -/* 8021EFD4 4B FF BB B1 */ bl setItemNum__13dMeter2Draw_cFUcUcUc -/* 8021EFD8 48 00 00 78 */ b lbl_8021F050 -lbl_8021EFDC: -/* 8021EFDC 28 00 00 4B */ cmplwi r0, 0x4b -/* 8021EFE0 40 82 00 1C */ bne lbl_8021EFFC -/* 8021EFE4 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021EFE8 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021EFEC 88 BF 01 DB */ lbz r5, 0x1db(r31) -/* 8021EFF0 38 C0 00 32 */ li r6, 0x32 -/* 8021EFF4 4B FF BB 91 */ bl setItemNum__13dMeter2Draw_cFUcUcUc -/* 8021EFF8 48 00 00 58 */ b lbl_8021F050 -lbl_8021EFFC: -/* 8021EFFC 28 00 00 59 */ cmplwi r0, 0x59 -/* 8021F000 40 82 00 50 */ bne lbl_8021F050 -/* 8021F004 7F 23 CB 78 */ mr r3, r25 -/* 8021F008 4B E0 F5 B9 */ bl dComIfGp_getSelectItemNum__Fi -/* 8021F00C 54 7A 06 3E */ clrlwi r26, r3, 0x18 -/* 8021F010 7F 23 CB 78 */ mr r3, r25 -/* 8021F014 4B E0 F6 75 */ bl dComIfGp_getSelectItemMaxNum__Fi -/* 8021F018 54 66 06 3E */ clrlwi r6, r3, 0x18 -/* 8021F01C 88 1F 01 DA */ lbz r0, 0x1da(r31) -/* 8021F020 7C 1A 00 40 */ cmplw r26, r0 -/* 8021F024 40 81 00 08 */ ble lbl_8021F02C -/* 8021F028 7C 1A 03 78 */ mr r26, r0 -lbl_8021F02C: -/* 8021F02C 88 7D 00 00 */ lbz r3, 0(r29) -/* 8021F030 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8021F034 7C 06 00 40 */ cmplw r6, r0 -/* 8021F038 40 80 00 08 */ bge lbl_8021F040 -/* 8021F03C 7C 66 1B 78 */ mr r6, r3 -lbl_8021F040: -/* 8021F040 80 7F 01 0C */ lwz r3, 0x10c(r31) -/* 8021F044 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 8021F048 7F 45 D3 78 */ mr r5, r26 -/* 8021F04C 4B FF BB 39 */ bl setItemNum__13dMeter2Draw_cFUcUcUc -lbl_8021F050: -/* 8021F050 3B 39 00 01 */ addi r25, r25, 1 -/* 8021F054 2C 19 00 02 */ cmpwi r25, 2 -/* 8021F058 3B 9C 00 02 */ addi r28, r28, 2 -/* 8021F05C 41 80 FE A4 */ blt lbl_8021EF00 -/* 8021F060 38 00 00 00 */ li r0, 0 -/* 8021F064 90 1F 01 20 */ stw r0, 0x120(r31) -/* 8021F068 4B FE E5 E9 */ bl isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv -/* 8021F06C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8021F070 41 82 00 2C */ beq lbl_8021F09C -/* 8021F074 38 60 00 34 */ li r3, 0x34 -/* 8021F078 48 0A FB D5 */ bl __nw__FUl -/* 8021F07C 7C 60 1B 79 */ or. r0, r3, r3 -/* 8021F080 41 82 00 14 */ beq lbl_8021F094 -/* 8021F084 80 9F 01 0C */ lwz r4, 0x10c(r31) -/* 8021F088 80 84 00 78 */ lwz r4, 0x78(r4) -/* 8021F08C 4B FE E8 BD */ bl __ct__11dMeterMap_cFP9J2DScreen -/* 8021F090 7C 60 1B 78 */ mr r0, r3 -lbl_8021F094: -/* 8021F094 90 1F 01 20 */ stw r0, 0x120(r31) -/* 8021F098 48 00 00 20 */ b lbl_8021F0B8 -lbl_8021F09C: -/* 8021F09C 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021F0A0 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021F0A4 88 03 00 BF */ lbz r0, 0xbf(r3) -/* 8021F0A8 28 00 00 02 */ cmplwi r0, 2 -/* 8021F0AC 40 82 00 0C */ bne lbl_8021F0B8 -/* 8021F0B0 38 00 00 00 */ li r0, 0 -/* 8021F0B4 98 03 00 BF */ stb r0, 0xbf(r3) -lbl_8021F0B8: -/* 8021F0B8 80 1F 01 20 */ lwz r0, 0x120(r31) -/* 8021F0BC 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021F0C0 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021F0C4 90 03 00 20 */ stw r0, 0x20(r3) -/* 8021F0C8 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0CC 48 0A F6 B9 */ bl getTotalFreeSize__7JKRHeapFv -/* 8021F0D0 38 60 50 00 */ li r3, 0x5000 -/* 8021F0D4 80 9F 01 00 */ lwz r4, 0x100(r31) -/* 8021F0D8 4B E0 12 C5 */ bl fopMsgM_createExpHeap__FUlP7JKRHeap -/* 8021F0DC 90 7F 01 04 */ stw r3, 0x104(r31) -/* 8021F0E0 38 00 00 00 */ li r0, 0 -/* 8021F0E4 90 1F 01 08 */ stw r0, 0x108(r31) -/* 8021F0E8 90 1F 01 10 */ stw r0, 0x110(r31) -/* 8021F0EC 90 1F 01 14 */ stw r0, 0x114(r31) -/* 8021F0F0 90 1F 01 18 */ stw r0, 0x118(r31) -/* 8021F0F4 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0F8 48 0A F6 8D */ bl getTotalFreeSize__7JKRHeapFv -/* 8021F0FC 38 00 00 00 */ li r0, 0 -/* 8021F100 90 1F 01 1C */ stw r0, 0x11c(r31) -/* 8021F104 7F C3 F3 78 */ mr r3, r30 -/* 8021F108 4B DF 00 C5 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8021F10C 38 60 00 04 */ li r3, 4 -/* 8021F110 39 61 00 30 */ addi r11, r1, 0x30 -/* 8021F114 48 14 31 05 */ bl _restgpr_25 -/* 8021F118 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8021F11C 7C 08 03 A6 */ mtlr r0 -/* 8021F120 38 21 00 30 */ addi r1, r1, 0x30 -/* 8021F124 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/_execute__9dMeter2_cFv.s b/asm/d/meter/d_meter2/_execute__9dMeter2_cFv.s deleted file mode 100644 index fd5992d20b8..00000000000 --- a/asm/d/meter/d_meter2/_execute__9dMeter2_cFv.s +++ /dev/null @@ -1,152 +0,0 @@ -lbl_8021F128: -/* 8021F128 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8021F12C 7C 08 02 A6 */ mflr r0 -/* 8021F130 90 01 00 24 */ stw r0, 0x24(r1) -/* 8021F134 39 61 00 20 */ addi r11, r1, 0x20 -/* 8021F138 48 14 30 A5 */ bl _savegpr_29 -/* 8021F13C 7C 7D 1B 78 */ mr r29, r3 -/* 8021F140 80 63 01 00 */ lwz r3, 0x100(r3) -/* 8021F144 4B DF 00 89 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8021F148 7C 7F 1B 78 */ mr r31, r3 -/* 8021F14C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F150 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F154 3B C3 01 00 */ addi r30, r3, 0x100 -/* 8021F158 7F C3 F3 78 */ mr r3, r30 -/* 8021F15C 38 80 00 00 */ li r4, 0 -/* 8021F160 4B E1 51 31 */ bl isCollectMirror__20dSv_player_collect_cCFUc -/* 8021F164 2C 03 00 00 */ cmpwi r3, 0 -/* 8021F168 40 82 00 2C */ bne lbl_8021F194 -/* 8021F16C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F170 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F174 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 8021F178 38 80 54 20 */ li r4, 0x5420 -/* 8021F17C 4B E1 58 41 */ bl isEventBit__11dSv_event_cCFUs -/* 8021F180 2C 03 00 00 */ cmpwi r3, 0 -/* 8021F184 41 82 00 10 */ beq lbl_8021F194 -/* 8021F188 7F C3 F3 78 */ mr r3, r30 -/* 8021F18C 38 80 00 00 */ li r4, 0 -/* 8021F190 4B E1 50 E1 */ bl onCollectMirror__20dSv_player_collect_cFUc -lbl_8021F194: -/* 8021F194 7F C3 F3 78 */ mr r3, r30 -/* 8021F198 38 80 00 03 */ li r4, 3 -/* 8021F19C 4B E1 50 B1 */ bl isCollectCrystal__20dSv_player_collect_cCFUc -/* 8021F1A0 2C 03 00 00 */ cmpwi r3, 0 -/* 8021F1A4 40 82 00 2C */ bne lbl_8021F1D0 -/* 8021F1A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F1AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F1B0 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 8021F1B4 38 80 54 10 */ li r4, 0x5410 -/* 8021F1B8 4B E1 58 05 */ bl isEventBit__11dSv_event_cCFUs -/* 8021F1BC 2C 03 00 00 */ cmpwi r3, 0 -/* 8021F1C0 41 82 00 10 */ beq lbl_8021F1D0 -/* 8021F1C4 7F C3 F3 78 */ mr r3, r30 -/* 8021F1C8 38 80 00 03 */ li r4, 3 -/* 8021F1CC 4B E1 50 61 */ bl onCollectCrystal__20dSv_player_collect_cFUc -lbl_8021F1D0: -/* 8021F1D0 7F A3 EB 78 */ mr r3, r29 -/* 8021F1D4 48 00 05 DD */ bl checkStatus__9dMeter2_cFv -/* 8021F1D8 80 7D 01 0C */ lwz r3, 0x10c(r29) -/* 8021F1DC 80 9D 01 24 */ lwz r4, 0x124(r29) -/* 8021F1E0 4B FF 21 7D */ bl exec__13dMeter2Draw_cFUl -/* 8021F1E4 7F A3 EB 78 */ mr r3, r29 -/* 8021F1E8 48 00 0B 79 */ bl moveLife__9dMeter2_cFv -/* 8021F1EC 7F A3 EB 78 */ mr r3, r29 -/* 8021F1F0 48 00 0F 91 */ bl moveKantera__9dMeter2_cFv -/* 8021F1F4 7F A3 EB 78 */ mr r3, r29 -/* 8021F1F8 48 00 13 25 */ bl moveOxygen__9dMeter2_cFv -/* 8021F1FC 7F A3 EB 78 */ mr r3, r29 -/* 8021F200 48 00 16 89 */ bl moveLightDrop__9dMeter2_cFv -/* 8021F204 7F A3 EB 78 */ mr r3, r29 -/* 8021F208 48 00 1A 29 */ bl moveRupee__9dMeter2_cFv -/* 8021F20C 7F A3 EB 78 */ mr r3, r29 -/* 8021F210 48 00 1E 9D */ bl moveKey__9dMeter2_cFv -/* 8021F214 7F A3 EB 78 */ mr r3, r29 -/* 8021F218 48 00 33 01 */ bl moveButtonXY__9dMeter2_cFv -/* 8021F21C 7F A3 EB 78 */ mr r3, r29 -/* 8021F220 48 00 20 25 */ bl moveButtonA__9dMeter2_cFv -/* 8021F224 7F A3 EB 78 */ mr r3, r29 -/* 8021F228 48 00 25 CD */ bl moveButtonB__9dMeter2_cFv -/* 8021F22C 7F A3 EB 78 */ mr r3, r29 -/* 8021F230 48 00 2C 99 */ bl moveButtonR__9dMeter2_cFv -/* 8021F234 7F A3 EB 78 */ mr r3, r29 -/* 8021F238 48 00 2D C9 */ bl moveButtonZ__9dMeter2_cFv -/* 8021F23C 7F A3 EB 78 */ mr r3, r29 -/* 8021F240 48 00 30 61 */ bl moveButton3D__9dMeter2_cFv -/* 8021F244 7F A3 EB 78 */ mr r3, r29 -/* 8021F248 48 00 31 1D */ bl moveButtonC__9dMeter2_cFv -/* 8021F24C 7F A3 EB 78 */ mr r3, r29 -/* 8021F250 48 00 32 45 */ bl moveButtonS__9dMeter2_cFv -/* 8021F254 7F A3 EB 78 */ mr r3, r29 -/* 8021F258 48 00 3C 31 */ bl moveButtonCross__9dMeter2_cFv -/* 8021F25C 7F A3 EB 78 */ mr r3, r29 -/* 8021F260 48 00 3E 99 */ bl moveTouchSubMenu__9dMeter2_cFv -/* 8021F264 7F A3 EB 78 */ mr r3, r29 -/* 8021F268 48 00 4B 99 */ bl moveBombNum__9dMeter2_cFv -/* 8021F26C 7F A3 EB 78 */ mr r3, r29 -/* 8021F270 48 00 50 E5 */ bl moveArrowNum__9dMeter2_cFv -/* 8021F274 7F A3 EB 78 */ mr r3, r29 -/* 8021F278 48 00 54 09 */ bl movePachinkoNum__9dMeter2_cFv -/* 8021F27C 7F A3 EB 78 */ mr r3, r29 -/* 8021F280 48 00 4F D9 */ bl moveBottleNum__9dMeter2_cFv -/* 8021F284 80 7D 01 20 */ lwz r3, 0x120(r29) -/* 8021F288 28 03 00 00 */ cmplwi r3, 0 -/* 8021F28C 41 82 00 10 */ beq lbl_8021F29C -/* 8021F290 80 9D 01 24 */ lwz r4, 0x124(r29) -/* 8021F294 4B FE EA 51 */ bl _move__11dMeterMap_cFUl -/* 8021F298 48 00 00 0C */ b lbl_8021F2A4 -lbl_8021F29C: -/* 8021F29C 80 7D 01 24 */ lwz r3, 0x124(r29) -/* 8021F2A0 4B FE F4 B5 */ bl meter_map_move__11dMeterMap_cFUl -lbl_8021F2A4: -/* 8021F2A4 7F A3 EB 78 */ mr r3, r29 -/* 8021F2A8 48 00 3E 55 */ bl moveSubContents__9dMeter2_cFv -/* 8021F2AC 7F A3 EB 78 */ mr r3, r29 -/* 8021F2B0 48 00 3F 19 */ bl move2DContents__9dMeter2_cFv -/* 8021F2B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F2B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F2BC 88 03 5E B5 */ lbz r0, 0x5eb5(r3) -/* 8021F2C0 28 00 00 00 */ cmplwi r0, 0 -/* 8021F2C4 40 82 00 1C */ bne lbl_8021F2E0 -/* 8021F2C8 88 03 4F AD */ lbz r0, 0x4fad(r3) -/* 8021F2CC 28 00 00 00 */ cmplwi r0, 0 -/* 8021F2D0 40 82 00 10 */ bne lbl_8021F2E0 -/* 8021F2D4 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021F2D8 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021F2DC 4B FF EA 05 */ bl decHotSpringTimer__13dMeter2Info_cFv -lbl_8021F2E0: -/* 8021F2E0 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 8021F2E4 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 8021F2E8 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 8021F2EC 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8021F2F0 B0 03 00 AE */ sth r0, 0xae(r3) -/* 8021F2F4 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8021F2F8 54 00 05 66 */ rlwinm r0, r0, 0, 0x15, 0x13 -/* 8021F2FC B0 03 00 AE */ sth r0, 0xae(r3) -/* 8021F300 38 00 00 00 */ li r0, 0 -/* 8021F304 B0 03 00 B0 */ sth r0, 0xb0(r3) -/* 8021F308 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F30C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F310 98 03 5E 1F */ stb r0, 0x5e1f(r3) -/* 8021F314 98 03 5E 28 */ stb r0, 0x5e28(r3) -/* 8021F318 98 03 5E 45 */ stb r0, 0x5e45(r3) -/* 8021F31C 98 03 5E 21 */ stb r0, 0x5e21(r3) -/* 8021F320 98 03 5E 2A */ stb r0, 0x5e2a(r3) -/* 8021F324 98 03 5E 47 */ stb r0, 0x5e47(r3) -/* 8021F328 98 03 5E 64 */ stb r0, 0x5e64(r3) -/* 8021F32C 98 03 5E 65 */ stb r0, 0x5e65(r3) -/* 8021F330 98 03 5E 68 */ stb r0, 0x5e68(r3) -/* 8021F334 98 03 5E 69 */ stb r0, 0x5e69(r3) -/* 8021F338 98 03 5E 20 */ stb r0, 0x5e20(r3) -/* 8021F33C 98 03 5E 46 */ stb r0, 0x5e46(r3) -/* 8021F340 98 03 5E 2F */ stb r0, 0x5e2f(r3) -/* 8021F344 98 03 5E 30 */ stb r0, 0x5e30(r3) -/* 8021F348 98 03 5E 4C */ stb r0, 0x5e4c(r3) -/* 8021F34C 7F E3 FB 78 */ mr r3, r31 -/* 8021F350 4B DE FE 7D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 8021F354 38 60 00 01 */ li r3, 1 -/* 8021F358 39 61 00 20 */ addi r11, r1, 0x20 -/* 8021F35C 48 14 2E CD */ bl _restgpr_29 -/* 8021F360 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8021F364 7C 08 03 A6 */ mtlr r0 -/* 8021F368 38 21 00 20 */ addi r1, r1, 0x20 -/* 8021F36C 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/dMeter2_Delete__FP9dMeter2_c.s b/asm/d/meter/d_meter2/dMeter2_Delete__FP9dMeter2_c.s deleted file mode 100644 index 96ffc3b69bf..00000000000 --- a/asm/d/meter/d_meter2/dMeter2_Delete__FP9dMeter2_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80225AE8: -/* 80225AE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80225AEC 7C 08 02 A6 */ mflr r0 -/* 80225AF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80225AF4 4B FF 99 A9 */ bl _delete__9dMeter2_cFv -/* 80225AF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80225AFC 7C 08 03 A6 */ mtlr r0 -/* 80225B00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80225B04 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/dMeter2_Draw__FP9dMeter2_c.s b/asm/d/meter/d_meter2/dMeter2_Draw__FP9dMeter2_c.s deleted file mode 100644 index fa8a5066ce5..00000000000 --- a/asm/d/meter/d_meter2/dMeter2_Draw__FP9dMeter2_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80225AA0: -/* 80225AA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80225AA4 7C 08 02 A6 */ mflr r0 -/* 80225AA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80225AAC 4B FF 98 C5 */ bl _draw__9dMeter2_cFv -/* 80225AB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80225AB4 7C 08 03 A6 */ mtlr r0 -/* 80225AB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80225ABC 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/dMeter2_Execute__FP9dMeter2_c.s b/asm/d/meter/d_meter2/dMeter2_Execute__FP9dMeter2_c.s deleted file mode 100644 index ba09d9cdc1a..00000000000 --- a/asm/d/meter/d_meter2/dMeter2_Execute__FP9dMeter2_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80225AC0: -/* 80225AC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80225AC4 7C 08 02 A6 */ mflr r0 -/* 80225AC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80225ACC 4B FF 96 5D */ bl _execute__9dMeter2_cFv -/* 80225AD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80225AD4 7C 08 03 A6 */ mtlr r0 -/* 80225AD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80225ADC 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter2/setLifeZero__9dMeter2_cFv.s b/asm/d/meter/d_meter2/setLifeZero__9dMeter2_cFv.s deleted file mode 100644 index d23f1b9b8df..00000000000 --- a/asm/d/meter/d_meter2/setLifeZero__9dMeter2_cFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8021F780: -/* 8021F780 38 00 00 01 */ li r0, 1 -/* 8021F784 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8021F788 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8021F78C B0 04 00 02 */ sth r0, 2(r4) -/* 8021F790 B0 03 01 92 */ sth r0, 0x192(r3) -/* 8021F794 C0 24 5D C0 */ lfs f1, 0x5dc0(r4) -/* 8021F798 C0 02 AF D0 */ lfs f0, lit_4837(r2) -/* 8021F79C EC 01 00 2A */ fadds f0, f1, f0 -/* 8021F7A0 D0 04 5D C0 */ stfs f0, 0x5dc0(r4) -/* 8021F7A4 38 00 00 00 */ li r0, 0 -/* 8021F7A8 98 04 5E B6 */ stb r0, 0x5eb6(r4) -/* 8021F7AC 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_HIO/__sinit_d_meter_HIO_cpp.s b/asm/d/meter/d_meter_HIO/__sinit_d_meter_HIO_cpp.s deleted file mode 100644 index 802e6d12d3f..00000000000 --- a/asm/d/meter/d_meter_HIO/__sinit_d_meter_HIO_cpp.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80201284: -/* 80201284 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80201288 7C 08 02 A6 */ mflr r0 -/* 8020128C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80201290 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80201294 3C 60 80 43 */ lis r3, lit_3766@ha /* 0x8042EBB0@ha */ -/* 80201298 3B E3 EB B0 */ addi r31, r3, lit_3766@l /* 0x8042EBB0@l */ -/* 8020129C 38 6D 8B 30 */ la r3, g_menuHIO(r13) /* 804510B0-_SDA_BASE_ */ -/* 802012A0 4B FF D0 91 */ bl __ct__16dMeter_menuHIO_cFv -/* 802012A4 3C 80 80 20 */ lis r4, __dt__16dMeter_menuHIO_cFv@ha /* 0x8020123C@ha */ -/* 802012A8 38 84 12 3C */ addi r4, r4, __dt__16dMeter_menuHIO_cFv@l /* 0x8020123C@l */ -/* 802012AC 38 BF 00 00 */ addi r5, r31, 0 -/* 802012B0 48 16 09 75 */ bl __register_global_object -/* 802012B4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802012B8 4B FF E3 01 */ bl __ct__16dMeter_drawHIO_cFv -/* 802012BC 3C 80 80 20 */ lis r4, __dt__16dMeter_drawHIO_cFv@ha /* 0x80201128@ha */ -/* 802012C0 38 84 11 28 */ addi r4, r4, __dt__16dMeter_drawHIO_cFv@l /* 0x80201128@l */ -/* 802012C4 38 BF 00 0C */ addi r5, r31, 0xc -/* 802012C8 48 16 09 5D */ bl __register_global_object -/* 802012CC 38 7F 0F 4C */ addi r3, r31, 0xf4c -/* 802012D0 4B FF EE DD */ bl __ct__16dMeter_ringHIO_cFv -/* 802012D4 3C 80 80 20 */ lis r4, __dt__16dMeter_ringHIO_cFv@ha /* 0x802010E0@ha */ -/* 802012D8 38 84 10 E0 */ addi r4, r4, __dt__16dMeter_ringHIO_cFv@l /* 0x802010E0@l */ -/* 802012DC 38 BF 0F 40 */ addi r5, r31, 0xf40 -/* 802012E0 48 16 09 45 */ bl __register_global_object -/* 802012E4 38 7F 10 B0 */ addi r3, r31, 0x10b0 -/* 802012E8 4B FF F3 E1 */ bl __ct__16dMeter_fmapHIO_cFv -/* 802012EC 3C 80 80 20 */ lis r4, __dt__16dMeter_fmapHIO_cFv@ha /* 0x80200BCC@ha */ -/* 802012F0 38 84 0B CC */ addi r4, r4, __dt__16dMeter_fmapHIO_cFv@l /* 0x80200BCC@l */ -/* 802012F4 38 BF 10 A4 */ addi r5, r31, 0x10a4 -/* 802012F8 48 16 09 2D */ bl __register_global_object -/* 802012FC 38 7F 15 60 */ addi r3, r31, 0x1560 -/* 80201300 4B FF F9 D5 */ bl __ct__18dMeter_cursorHIO_cFv -/* 80201304 3C 80 80 20 */ lis r4, __dt__18dMeter_cursorHIO_cFv@ha /* 0x80201098@ha */ -/* 80201308 38 84 10 98 */ addi r4, r4, __dt__18dMeter_cursorHIO_cFv@l /* 0x80201098@l */ -/* 8020130C 38 BF 15 54 */ addi r5, r31, 0x1554 -/* 80201310 48 16 09 15 */ bl __register_global_object -/* 80201314 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80201318 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020131C 7C 08 03 A6 */ mtlr r0 -/* 80201320 38 21 00 10 */ addi r1, r1, 0x10 -/* 80201324 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/__ct__11dMeterMap_cFP9J2DScreen.s b/asm/d/meter/d_meter_map/__ct__11dMeterMap_cFP9J2DScreen.s deleted file mode 100644 index cc6e3a0b58f..00000000000 --- a/asm/d/meter/d_meter_map/__ct__11dMeterMap_cFP9J2DScreen.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8020D948: -/* 8020D948 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D94C 7C 08 02 A6 */ mflr r0 -/* 8020D950 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D954 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020D958 7C 7F 1B 78 */ mr r31, r3 -/* 8020D95C 3C A0 80 3A */ lis r5, __vt__12dDlst_base_c@ha /* 0x803A6F88@ha */ -/* 8020D960 38 05 6F 88 */ addi r0, r5, __vt__12dDlst_base_c@l /* 0x803A6F88@l */ -/* 8020D964 90 03 00 00 */ stw r0, 0(r3) -/* 8020D968 3C A0 80 3C */ lis r5, __vt__11dMeterMap_c@ha /* 0x803BF2F8@ha */ -/* 8020D96C 38 05 F2 F8 */ addi r0, r5, __vt__11dMeterMap_c@l /* 0x803BF2F8@l */ -/* 8020D970 90 03 00 00 */ stw r0, 0(r3) -/* 8020D974 48 00 00 79 */ bl _create__11dMeterMap_cFP9J2DScreen -/* 8020D978 7F E3 FB 78 */ mr r3, r31 -/* 8020D97C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020D980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D984 7C 08 03 A6 */ mtlr r0 -/* 8020D988 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D98C 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/__dt__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/__dt__11dMeterMap_cFv.s deleted file mode 100644 index 46a9804abe6..00000000000 --- a/asm/d/meter/d_meter_map/__dt__11dMeterMap_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8020D990: -/* 8020D990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D994 7C 08 02 A6 */ mflr r0 -/* 8020D998 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D99C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020D9A0 93 C1 00 08 */ stw r30, 8(r1) -/* 8020D9A4 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8020D9A8 7C 9F 23 78 */ mr r31, r4 -/* 8020D9AC 41 82 00 24 */ beq lbl_8020D9D0 -/* 8020D9B0 3C 80 80 3C */ lis r4, __vt__11dMeterMap_c@ha /* 0x803BF2F8@ha */ -/* 8020D9B4 38 04 F2 F8 */ addi r0, r4, __vt__11dMeterMap_c@l /* 0x803BF2F8@l */ -/* 8020D9B8 90 1E 00 00 */ stw r0, 0(r30) -/* 8020D9BC 48 00 02 95 */ bl _delete__11dMeterMap_cFv -/* 8020D9C0 7F E0 07 35 */ extsh. r0, r31 -/* 8020D9C4 40 81 00 0C */ ble lbl_8020D9D0 -/* 8020D9C8 7F C3 F3 78 */ mr r3, r30 -/* 8020D9CC 48 0C 13 71 */ bl __dl__FPv -lbl_8020D9D0: -/* 8020D9D0 7F C3 F3 78 */ mr r3, r30 -/* 8020D9D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020D9D8 83 C1 00 08 */ lwz r30, 8(r1) -/* 8020D9DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D9E0 7C 08 03 A6 */ mtlr r0 -/* 8020D9E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D9E8 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/_delete__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/_delete__11dMeterMap_cFv.s deleted file mode 100644 index 7d20c624412..00000000000 --- a/asm/d/meter/d_meter_map/_delete__11dMeterMap_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8020DC50: -/* 8020DC50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020DC54 7C 08 02 A6 */ mflr r0 -/* 8020DC58 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020DC5C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020DC60 7C 7F 1B 78 */ mr r31, r3 -/* 8020DC64 80 63 00 04 */ lwz r3, 4(r3) -/* 8020DC68 28 03 00 00 */ cmplwi r3, 0 -/* 8020DC6C 41 82 00 1C */ beq lbl_8020DC88 -/* 8020DC70 41 82 00 18 */ beq lbl_8020DC88 -/* 8020DC74 38 80 00 01 */ li r4, 1 -/* 8020DC78 81 83 00 00 */ lwz r12, 0(r3) -/* 8020DC7C 81 8C 00 08 */ lwz r12, 8(r12) -/* 8020DC80 7D 89 03 A6 */ mtctr r12 -/* 8020DC84 4E 80 04 21 */ bctrl -lbl_8020DC88: -/* 8020DC88 80 7F 00 08 */ lwz r3, 8(r31) -/* 8020DC8C 28 03 00 00 */ cmplwi r3, 0 -/* 8020DC90 41 82 00 1C */ beq lbl_8020DCAC -/* 8020DC94 41 82 00 18 */ beq lbl_8020DCAC -/* 8020DC98 38 80 00 01 */ li r4, 1 -/* 8020DC9C 81 83 00 00 */ lwz r12, 0(r3) -/* 8020DCA0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8020DCA4 7D 89 03 A6 */ mtctr r12 -/* 8020DCA8 4E 80 04 21 */ bctrl -lbl_8020DCAC: -/* 8020DCAC 4B FF F9 A5 */ bl isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv -/* 8020DCB0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8020DCB4 41 82 00 1C */ beq lbl_8020DCD0 -/* 8020DCB8 88 1F 00 2D */ lbz r0, 0x2d(r31) -/* 8020DCBC 28 00 00 00 */ cmplwi r0, 0 -/* 8020DCC0 41 82 00 0C */ beq lbl_8020DCCC -/* 8020DCC4 4B E2 03 85 */ bl dComIfGp_mapShow__Fv -/* 8020DCC8 48 00 00 08 */ b lbl_8020DCD0 -lbl_8020DCCC: -/* 8020DCCC 4B E2 03 AD */ bl dComIfGp_mapHide__Fv -lbl_8020DCD0: -/* 8020DCD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020DCD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020DCD8 7C 08 03 A6 */ mtlr r0 -/* 8020DCDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020DCE0 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/_draw__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/_draw__11dMeterMap_cFv.s deleted file mode 100644 index c9364a88673..00000000000 --- a/asm/d/meter/d_meter_map/_draw__11dMeterMap_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8020DF1C: -/* 8020DF1C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020DF20 7C 08 02 A6 */ mflr r0 -/* 8020DF24 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020DF28 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020DF2C 7C 7F 1B 78 */ mr r31, r3 -/* 8020DF30 80 63 00 08 */ lwz r3, 8(r3) -/* 8020DF34 4B E1 CC 21 */ bl _draw__6dMap_cFv -/* 8020DF38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020DF3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020DF40 38 63 5F 64 */ addi r3, r3, 0x5f64 -/* 8020DF44 38 83 01 B4 */ addi r4, r3, 0x1b4 -/* 8020DF48 38 A3 01 B8 */ addi r5, r3, 0x1b8 -/* 8020DF4C 7F E6 FB 78 */ mr r6, r31 -/* 8020DF50 4B E4 88 45 */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c -/* 8020DF54 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020DF58 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020DF5C 7C 08 03 A6 */ mtlr r0 -/* 8020DF60 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020DF64 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/draw__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/draw__11dMeterMap_cFv.s deleted file mode 100644 index 53dd74f1d48..00000000000 --- a/asm/d/meter/d_meter_map/draw__11dMeterMap_cFv.s +++ /dev/null @@ -1,68 +0,0 @@ -lbl_8020DF68: -/* 8020DF68 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8020DF6C 7C 08 02 A6 */ mflr r0 -/* 8020DF70 90 01 00 54 */ stw r0, 0x54(r1) -/* 8020DF74 DB E1 00 40 */ stfd f31, 0x40(r1) -/* 8020DF78 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */ -/* 8020DF7C DB C1 00 30 */ stfd f30, 0x30(r1) -/* 8020DF80 F3 C1 00 38 */ psq_st f30, 56(r1), 0, 0 /* qr0 */ -/* 8020DF84 DB A1 00 20 */ stfd f29, 0x20(r1) -/* 8020DF88 F3 A1 00 28 */ psq_st f29, 40(r1), 0, 0 /* qr0 */ -/* 8020DF8C DB 81 00 10 */ stfd f28, 0x10(r1) -/* 8020DF90 F3 81 00 18 */ psq_st f28, 24(r1), 0, 0 /* qr0 */ -/* 8020DF94 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020DF98 7C 7F 1B 78 */ mr r31, r3 -/* 8020DF9C 80 63 00 08 */ lwz r3, 8(r3) -/* 8020DFA0 28 03 00 00 */ cmplwi r3, 0 -/* 8020DFA4 41 82 00 98 */ beq lbl_8020E03C -/* 8020DFA8 88 03 00 31 */ lbz r0, 0x31(r3) -/* 8020DFAC 28 00 00 00 */ cmplwi r0, 0 -/* 8020DFB0 41 82 00 8C */ beq lbl_8020E03C -/* 8020DFB4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020DFB8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020DFBC 80 63 5F 50 */ lwz r3, 0x5f50(r3) -/* 8020DFC0 81 83 00 00 */ lwz r12, 0(r3) -/* 8020DFC4 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 8020DFC8 7D 89 03 A6 */ mtctr r12 -/* 8020DFCC 4E 80 04 21 */ bctrl -/* 8020DFD0 C3 FF 00 20 */ lfs f31, 0x20(r31) -/* 8020DFD4 C3 DF 00 24 */ lfs f30, 0x24(r31) -/* 8020DFD8 C3 BF 00 18 */ lfs f29, 0x18(r31) -/* 8020DFDC C3 9F 00 1C */ lfs f28, 0x1c(r31) -/* 8020DFE0 80 7F 00 04 */ lwz r3, 4(r31) -/* 8020DFE4 88 9F 00 2C */ lbz r4, 0x2c(r31) -/* 8020DFE8 81 83 00 00 */ lwz r12, 0(r3) -/* 8020DFEC 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 8020DFF0 7D 89 03 A6 */ mtctr r12 -/* 8020DFF4 4E 80 04 21 */ bctrl -/* 8020DFF8 80 7F 00 04 */ lwz r3, 4(r31) -/* 8020DFFC FC 20 E8 90 */ fmr f1, f29 -/* 8020E000 FC 40 E0 90 */ fmr f2, f28 -/* 8020E004 FC 60 F8 90 */ fmr f3, f31 -/* 8020E008 FC 80 F0 90 */ fmr f4, f30 -/* 8020E00C 38 80 00 00 */ li r4, 0 -/* 8020E010 38 A0 00 00 */ li r5, 0 -/* 8020E014 38 C0 00 00 */ li r6, 0 -/* 8020E018 81 83 00 00 */ lwz r12, 0(r3) -/* 8020E01C 81 8C 00 EC */ lwz r12, 0xec(r12) -/* 8020E020 7D 89 03 A6 */ mtctr r12 -/* 8020E024 4E 80 04 21 */ bctrl -/* 8020E028 80 7F 00 04 */ lwz r3, 4(r31) -/* 8020E02C 81 83 00 00 */ lwz r12, 0(r3) -/* 8020E030 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 8020E034 7D 89 03 A6 */ mtctr r12 -/* 8020E038 4E 80 04 21 */ bctrl -lbl_8020E03C: -/* 8020E03C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */ -/* 8020E040 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 8020E044 E3 C1 00 38 */ psq_l f30, 56(r1), 0, 0 /* qr0 */ -/* 8020E048 CB C1 00 30 */ lfd f30, 0x30(r1) -/* 8020E04C E3 A1 00 28 */ psq_l f29, 40(r1), 0, 0 /* qr0 */ -/* 8020E050 CB A1 00 20 */ lfd f29, 0x20(r1) -/* 8020E054 E3 81 00 18 */ psq_l f28, 24(r1), 0, 0 /* qr0 */ -/* 8020E058 CB 81 00 10 */ lfd f28, 0x10(r1) -/* 8020E05C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020E060 80 01 00 54 */ lwz r0, 0x54(r1) -/* 8020E064 7C 08 03 A6 */ mtlr r0 -/* 8020E068 38 21 00 50 */ addi r1, r1, 0x50 -/* 8020E06C 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/getMapDispEdgeBottomY_Layout__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/getMapDispEdgeBottomY_Layout__11dMeterMap_cFv.s deleted file mode 100644 index d3ce0bfaa04..00000000000 --- a/asm/d/meter/d_meter_map/getMapDispEdgeBottomY_Layout__11dMeterMap_cFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8020D690: -/* 8020D690 C0 22 AE 20 */ lfs f1, lit_4076(r2) -/* 8020D694 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/isDmapScreen__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/isDmapScreen__11dMeterMap_cFv.s deleted file mode 100644 index ef4e47d88d9..00000000000 --- a/asm/d/meter/d_meter_map/isDmapScreen__11dMeterMap_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8020E70C: -/* 8020E70C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020E710 7C 08 02 A6 */ mflr r0 -/* 8020E714 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020E718 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020E71C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020E720 85 83 4E 20 */ lwzu r12, 0x4e20(r3) -/* 8020E724 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E728 7D 89 03 A6 */ mtctr r12 -/* 8020E72C 4E 80 04 21 */ bctrl -/* 8020E730 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E734 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020E738 20 00 00 01 */ subfic r0, r0, 1 -/* 8020E73C 7C 00 00 34 */ cntlzw r0, r0 -/* 8020E740 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f -/* 8020E744 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020E748 7C 08 03 A6 */ mtlr r0 -/* 8020E74C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020E750 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv.s deleted file mode 100644 index cfc3ec8712e..00000000000 --- a/asm/d/meter/d_meter_map/isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8020D650: -/* 8020D650 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D654 7C 08 02 A6 */ mflr r0 -/* 8020D658 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D65C 4B FF FE 41 */ bl isEnableDispMap__11dMeterMap_cFv -/* 8020D660 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8020D664 41 82 00 18 */ beq lbl_8020D67C -/* 8020D668 4B FF FE C1 */ bl getMapDispSizeTypeNo__11dMeterMap_cFv -/* 8020D66C 2C 03 00 00 */ cmpwi r3, 0 -/* 8020D670 41 82 00 0C */ beq lbl_8020D67C -/* 8020D674 38 60 00 01 */ li r3, 1 -/* 8020D678 48 00 00 08 */ b lbl_8020D680 -lbl_8020D67C: -/* 8020D67C 38 60 00 00 */ li r3, 0 -lbl_8020D680: -/* 8020D680 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D684 7C 08 03 A6 */ mtlr r0 -/* 8020D688 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D68C 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/isEnableDispMap__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/isEnableDispMap__11dMeterMap_cFv.s deleted file mode 100644 index 27b1e18a7a6..00000000000 --- a/asm/d/meter/d_meter_map/isEnableDispMap__11dMeterMap_cFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8020D49C: -/* 8020D49C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D4A0 7C 08 02 A6 */ mflr r0 -/* 8020D4A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D4A8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020D4AC 93 C1 00 08 */ stw r30, 8(r1) -/* 8020D4B0 3B C0 00 00 */ li r30, 0 -/* 8020D4B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020D4B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020D4BC 85 83 4E 20 */ lwzu r12, 0x4e20(r3) -/* 8020D4C0 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020D4C4 7D 89 03 A6 */ mtctr r12 -/* 8020D4C8 4E 80 04 21 */ bctrl -/* 8020D4CC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8020D4D0 41 82 00 20 */ beq lbl_8020D4F0 -/* 8020D4D4 48 00 00 55 */ bl getMapDispSizeTypeNo__11dMeterMap_cFv -/* 8020D4D8 2C 03 00 00 */ cmpwi r3, 0 -/* 8020D4DC 41 82 00 14 */ beq lbl_8020D4F0 -/* 8020D4E0 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 8020D4E4 54 03 9F 7E */ rlwinm r3, r0, 0x13, 0x1d, 0x1f -/* 8020D4E8 30 03 FF FF */ addic r0, r3, -1 -/* 8020D4EC 7F C0 19 10 */ subfe r30, r0, r3 -lbl_8020D4F0: -/* 8020D4F0 3B E0 00 00 */ li r31, 0 -/* 8020D4F4 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 8020D4F8 41 82 00 14 */ beq lbl_8020D50C -/* 8020D4FC 4B E3 22 5D */ bl isExistMapPathData__8dMpath_cFv -/* 8020D500 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8020D504 41 82 00 08 */ beq lbl_8020D50C -/* 8020D508 3B E0 00 01 */ li r31, 1 -lbl_8020D50C: -/* 8020D50C 7F E3 FB 78 */ mr r3, r31 -/* 8020D510 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020D514 83 C1 00 08 */ lwz r30, 8(r1) -/* 8020D518 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D51C 7C 08 03 A6 */ mtlr r0 -/* 8020D520 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D524 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/isFmapScreen__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/isFmapScreen__11dMeterMap_cFv.s deleted file mode 100644 index c768d307878..00000000000 --- a/asm/d/meter/d_meter_map/isFmapScreen__11dMeterMap_cFv.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_8020E620: -/* 8020E620 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020E624 7C 08 02 A6 */ mflr r0 -/* 8020E628 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020E62C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020E630 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020E634 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020E638 3B E3 4E 20 */ addi r31, r3, 0x4e20 -/* 8020E63C 7F E3 FB 78 */ mr r3, r31 -/* 8020E640 81 9F 00 00 */ lwz r12, 0(r31) -/* 8020E644 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E648 7D 89 03 A6 */ mtctr r12 -/* 8020E64C 4E 80 04 21 */ bctrl -/* 8020E650 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E654 54 00 07 7F */ clrlwi. r0, r0, 0x1d -/* 8020E658 41 82 00 94 */ beq lbl_8020E6EC -/* 8020E65C 7F E3 FB 78 */ mr r3, r31 -/* 8020E660 81 9F 00 00 */ lwz r12, 0(r31) -/* 8020E664 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E668 7D 89 03 A6 */ mtctr r12 -/* 8020E66C 4E 80 04 21 */ bctrl -/* 8020E670 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E674 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020E678 2C 00 00 05 */ cmpwi r0, 5 -/* 8020E67C 41 82 00 70 */ beq lbl_8020E6EC -/* 8020E680 7F E3 FB 78 */ mr r3, r31 -/* 8020E684 81 9F 00 00 */ lwz r12, 0(r31) -/* 8020E688 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E68C 7D 89 03 A6 */ mtctr r12 -/* 8020E690 4E 80 04 21 */ bctrl -/* 8020E694 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E698 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020E69C 2C 00 00 03 */ cmpwi r0, 3 -/* 8020E6A0 41 82 00 4C */ beq lbl_8020E6EC -/* 8020E6A4 7F E3 FB 78 */ mr r3, r31 -/* 8020E6A8 81 9F 00 00 */ lwz r12, 0(r31) -/* 8020E6AC 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E6B0 7D 89 03 A6 */ mtctr r12 -/* 8020E6B4 4E 80 04 21 */ bctrl -/* 8020E6B8 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E6BC 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020E6C0 2C 00 00 04 */ cmpwi r0, 4 -/* 8020E6C4 41 82 00 28 */ beq lbl_8020E6EC -/* 8020E6C8 7F E3 FB 78 */ mr r3, r31 -/* 8020E6CC 81 9F 00 00 */ lwz r12, 0(r31) -/* 8020E6D0 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020E6D4 7D 89 03 A6 */ mtctr r12 -/* 8020E6D8 4E 80 04 21 */ bctrl -/* 8020E6DC A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020E6E0 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020E6E4 2C 00 00 06 */ cmpwi r0, 6 -/* 8020E6E8 40 82 00 0C */ bne lbl_8020E6F4 -lbl_8020E6EC: -/* 8020E6EC 38 60 00 01 */ li r3, 1 -/* 8020E6F0 48 00 00 08 */ b lbl_8020E6F8 -lbl_8020E6F4: -/* 8020E6F4 38 60 00 00 */ li r3, 0 -lbl_8020E6F8: -/* 8020E6F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020E6FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020E700 7C 08 03 A6 */ mtlr r0 -/* 8020E704 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020E708 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/isMapOpenCheck__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/isMapOpenCheck__11dMeterMap_cFv.s deleted file mode 100644 index b4a1f0adeff..00000000000 --- a/asm/d/meter/d_meter_map/isMapOpenCheck__11dMeterMap_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8020D900: -/* 8020D900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D904 7C 08 02 A6 */ mflr r0 -/* 8020D908 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D90C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8020D910 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8020D914 85 83 4E 20 */ lwzu r12, 0x4e20(r3) -/* 8020D918 81 8C 00 BC */ lwz r12, 0xbc(r12) -/* 8020D91C 7D 89 03 A6 */ mtctr r12 -/* 8020D920 4E 80 04 21 */ bctrl -/* 8020D924 A0 03 00 0A */ lhz r0, 0xa(r3) -/* 8020D928 54 00 07 7E */ clrlwi r0, r0, 0x1d -/* 8020D92C 20 60 00 07 */ subfic r3, r0, 7 -/* 8020D930 30 03 FF FF */ addic r0, r3, -1 -/* 8020D934 7C 60 19 10 */ subfe r3, r0, r3 -/* 8020D938 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D93C 7C 08 03 A6 */ mtlr r0 -/* 8020D940 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D944 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/setDispPosInsideFlg_SE_On__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/setDispPosInsideFlg_SE_On__11dMeterMap_cFv.s deleted file mode 100644 index e85c98188be..00000000000 --- a/asm/d/meter/d_meter_map/setDispPosInsideFlg_SE_On__11dMeterMap_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8020D874: -/* 8020D874 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D878 7C 08 02 A6 */ mflr r0 -/* 8020D87C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D880 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020D884 7C 7F 1B 78 */ mr r31, r3 -/* 8020D888 4B FF FD C9 */ bl isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv -/* 8020D88C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8020D890 41 82 00 18 */ beq lbl_8020D8A8 -/* 8020D894 4B E2 07 B5 */ bl dComIfGp_mapShow__Fv -/* 8020D898 38 00 00 01 */ li r0, 1 -/* 8020D89C 98 1F 00 2D */ stb r0, 0x2d(r31) -/* 8020D8A0 38 00 00 07 */ li r0, 7 -/* 8020D8A4 98 1F 00 2E */ stb r0, 0x2e(r31) -lbl_8020D8A8: -/* 8020D8A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020D8AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D8B0 7C 08 03 A6 */ mtlr r0 -/* 8020D8B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D8B8 4E 80 00 20 */ blr diff --git a/asm/d/meter/d_meter_map/setDispPosOutsideFlg_SE_On__11dMeterMap_cFv.s b/asm/d/meter/d_meter_map/setDispPosOutsideFlg_SE_On__11dMeterMap_cFv.s deleted file mode 100644 index c2afb7f3b29..00000000000 --- a/asm/d/meter/d_meter_map/setDispPosOutsideFlg_SE_On__11dMeterMap_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8020D8BC: -/* 8020D8BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8020D8C0 7C 08 02 A6 */ mflr r0 -/* 8020D8C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8020D8C8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8020D8CC 7C 7F 1B 78 */ mr r31, r3 -/* 8020D8D0 4B E2 07 A9 */ bl dComIfGp_mapHide__Fv -/* 8020D8D4 38 00 00 00 */ li r0, 0 -/* 8020D8D8 98 1F 00 2D */ stb r0, 0x2d(r31) -/* 8020D8DC 38 00 00 07 */ li r0, 7 -/* 8020D8E0 98 1F 00 2E */ stb r0, 0x2e(r31) -/* 8020D8E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8020D8E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8020D8EC 7C 08 03 A6 */ mtlr r0 -/* 8020D8F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8020D8F4 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index 18ff4ee9e2a..a745ef473a5 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -40,6 +40,12 @@ private: }; // Size: 0x20 class J3DAnmTransformKey : public J3DAnmTransform { +public: + J3DAnmTransformKey() : J3DAnmTransform(0, NULL, NULL, NULL) { + field_0x20 = 0; + field_0x24 = 0; + } + /* 80329A34 */ void calcTransform(f32, u16, J3DTransformInfo*) const; /* 8003B8D0 */ virtual ~J3DAnmTransformKey(); diff --git a/include/JSystem/J3DGraphLoader/J3DAnmLoader.h b/include/JSystem/J3DGraphLoader/J3DAnmLoader.h index 265bc83c180..0c6a6a84746 100644 --- a/include/JSystem/J3DGraphLoader/J3DAnmLoader.h +++ b/include/JSystem/J3DGraphLoader/J3DAnmLoader.h @@ -3,12 +3,12 @@ #include "dolphin/types.h" -struct J3DAnmLoaderDataBaseFlag {}; +enum J3DAnmLoaderDataBaseFlag { UNK_FLAG0 }; struct J3DAnmBase; struct J3DAnmLoaderDataBase { - /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); + /* 80337B40 */ static void* load(void const*, J3DAnmLoaderDataBaseFlag); /* 80338134 */ void setResource(J3DAnmBase*, void const*); }; diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h index e94ea2cf13c..61bac44a425 100644 --- a/include/JSystem/JAudio2/JAISound.h +++ b/include/JSystem/JAudio2/JAISound.h @@ -13,7 +13,7 @@ public: operator u32() const { return this->mId; } void operator=(JAISoundID const&); - JAISoundID(u32 pId); + JAISoundID(u32 pId) { mId = pId; }; JAISoundID(JAISoundID const& other); diff --git a/include/JSystem/JSupport/JSUInputStream.h b/include/JSystem/JSupport/JSUInputStream.h index 3c4968b66aa..5bb0f4f98e6 100644 --- a/include/JSystem/JSupport/JSUInputStream.h +++ b/include/JSystem/JSupport/JSUInputStream.h @@ -47,4 +47,8 @@ public: /* 802DC298 */ s32 read(void*, s32); }; // Size = 0x8 +// move? +template +T* JSUConvertOffsetToPtr(const void*, const void*); + #endif /* JSUINPUTSTREAM_H */ diff --git a/include/SSystem/SComponent/c_math.h b/include/SSystem/SComponent/c_math.h index 632fa9091eb..1ea9516d83a 100644 --- a/include/SSystem/SComponent/c_math.h +++ b/include/SSystem/SComponent/c_math.h @@ -25,4 +25,8 @@ inline f32 cM_ssin(s16 s) { return JMath::sincosTable_.table[static_cast(s) >> 3].a1; } +inline s16 cM_deg2s(f32 val) { + return val * 182.04445f; +} + #endif /* C_MATH_H */ diff --git a/include/Z2AudioLib/Z2AudioMgr.h b/include/Z2AudioLib/Z2AudioMgr.h index 99796c8e012..11e9446f36b 100644 --- a/include/Z2AudioLib/Z2AudioMgr.h +++ b/include/Z2AudioLib/Z2AudioMgr.h @@ -57,4 +57,8 @@ public: STATIC_ASSERT(sizeof(Z2AudioMgr) == 0x138C); +inline Z2AudioMgr* Z2GetAudioMgr() { + return Z2AudioMgr::getInterface(); +} + #endif /* Z2AUDIOMGR_H */ diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index d906fe333ee..1fd1e895d90 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -184,6 +184,8 @@ public: /* 0xBF */ ANM_BACKWARD_SLIDE_LAND, /* 0xC0 */ ANM_FORWARD_SLIDE_LAND, + /* 0xFD */ ANM_TRANSFORM_WOLF = 0xFD, // verify + /* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify ANM_GANON_FINISH = 408 // name probably wrong, fix later }; @@ -199,7 +201,9 @@ public: enum daAlink_WARP_MAT_MODE {}; enum daAlink_WANM { - /* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94 + /* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94, + + /* 0x70 */ ANM_TRANFORM_HUMAN = 0x70, // verify }; enum MODE_FLG { @@ -446,9 +450,9 @@ public: /* 800A142C */ void getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*); /* 800A1AEC */ void setEyeMove(cXyz*, s16, s16); /* 800A1F90 */ void setNeckAngle(); - /* 800A2198 */ void commonLineCheck(cXyz*, cXyz*); + /* 800A2198 */ bool commonLineCheck(cXyz*, cXyz*); /* 800A21E0 */ static s16 getMoveBGActorName(cBgS_PolyInfo&, int); - /* 800A2280 */ void checkGoronRide(); + /* 800A2280 */ fopAc_ac_c* checkGoronRide(); /* 800A22E8 */ void setMoveSlantAngle(); /* 800A2710 */ void setArmMatrix(); /* 800A29DC */ void setFootMatrix(); @@ -458,7 +462,7 @@ public: /* 800A39B8 */ void handBgCheck(); /* 800A3C8C */ JKRHeap* setItemHeap(); /* 800A3CE4 */ void setIdxMask(u16*, u16*); - /* 800A3D0C */ void getAnimeResource(daPy_anmHeap_c*, u16, u32); + /* 800A3D0C */ void* getAnimeResource(daPy_anmHeap_c*, u16, u32); /* 800A3D7C */ J3DModel* initModel(J3DModelData*, u32, u32); /* 800A3E30 */ void initModel(u16, u32); /* 800A3E98 */ void initModelEnv(u16, u32); @@ -649,7 +653,7 @@ public: /* 800B9580 */ void swordUnequip(); /* 800B9640 */ void itemEquip(u16); /* 800B96A4 */ void itemUnequip(u16, f32); - /* 800B97EC */ void checkFastUnequip(); + /* 800B97EC */ bool checkFastUnequip(); /* 800B983C */ void allUnequip(int); /* 800B994C */ BOOL checkItemChangeFromButton(); /* 800B9D2C */ BOOL checkNextActionFromButton(); @@ -1029,7 +1033,7 @@ public: /* 800E01A0 */ bool checkBossBabaRoom(); /* 800E01CC */ void cancelBoomerangLock(fopAc_ac_c*); /* 800E0210 */ fopAc_ac_c* getBoomerangActor(); - /* 800E0244 */ void checkBoomerangChargeEnd(); + /* 800E0244 */ bool checkBoomerangChargeEnd(); /* 800E02B8 */ void checkBoomerangCarry(fopAc_ac_c*); /* 800E03D0 */ void initBoomerangUpperAnimeSpeed(int); /* 800E0440 */ BOOL checkBoomerangAnime() const; @@ -2314,7 +2318,7 @@ public: bool checkFisingRodLure() const { return mEquipItem == 0x105; } bool doTrigger() const { return mItemTrigger & 0x10; } u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } - bool checkInputOnR() const { return field_0x33ac <= 0.05f; } + bool checkInputOnR() const { return field_0x33ac > 0.05f; } static int getSightBti() { return 0x5B; } bool checkBoomerangChargeEndWait() const { return mEquipItem != 0x102 && checkBoomerangAnime(); @@ -2323,9 +2327,15 @@ public: return mNowAnmPack[param_0].getAnmTransform(); } void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); } + void cancelFmChainGrabFromOut() { + field_0x2fa3 = 0; + field_0x2844.clearData(); + } + s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); } BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } + inline void startRestartRoomFromOut(int, u32, int); inline u16 getReadyItem(); static u8 const m_mainBckShield[80]; @@ -4347,112 +4357,6 @@ public: static daAlinkHIO_hookshot_c1 const m; }; -class daHorseRein_c { -private: - /* 0x00 */ cXyz* field_0x0[2]; - /* 0x08 */ int field_0x8[2]; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ cXyz field_0x1c; -}; // Size: 0x28 - -class daHorseFootData_c { -private: - /* 0x0 */ u8 field_0x0[0xE4]; -}; // Size: 0xE4 - -class daHorse_c : public fopAc_ac_c { -public: - enum daHorse_ERFLG0 { - /* 0x010 */ MOVE_ACCEPT = 0x10, - /* 0x080 */ RIDE_RUN_FLG = 0x80, - /* 0x100 */ CUT_TURN_CANCEL = 0x100, - }; - - enum daHorse_RFLG0 { - /* 0x02 */ ENEMY_SEARCH = 2, - /* 0x08 */ LASH_DASH_START = 8, - /* 0x10 */ TURN_STAND = 0x10, - /* 0x40 */ TURN_STAND_CAMERA = 0x40, - }; - - enum daHorse_FLG0 { - /* 0x00000020 */ RODEO_LEFT = 0x20, - /* 0x00000040 */ RIDE_START_FLG = 0x40, - /* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000, - /* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000, - /* 0x80000000 */ RODEO_MODE = 0x80000000 - }; - - fopAc_ac_c* getZeldaActor(); - - bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; } - bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; } - bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } - bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; } - -private: - /* 0x0568 */ u8 field_0x568[8]; - /* 0x0570 */ J3DModel* field_0x570; - /* 0x0574 */ void* field_0x574; - /* 0x0578 */ J3DFrameCtrl field_0x578; - /* 0x058C */ int field_0x58c; - /* 0x0590 */ u8 field_0x590[4]; - /* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3]; - /* 0x05AC */ void* field_0x5ac; - /* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3]; - /* 0x05F8 */ u8 field_0x5f8[4]; - /* 0x05FC */ dBgS_AcchCir field_0x5fc[3]; - /* 0x06BC */ dBgS_Acch field_0x6bc; - /* 0x0894 */ dCcD_Stts field_0x894; - /* 0x08D0 */ dBgS_HorseLinChk field_0x8d0; - /* 0x0940 */ dCcD_Cyl field_0x940[3]; - /* 0x0CF4 */ dCcD_Cyl field_0xcf4; - /* 0x0E30 */ dCcD_Cyl field_0xe30; - /* 0x0F6C */ dCcD_Sph field_0xf6c; - /* 0x10A4 */ Z2CreatureRide field_0x10a4; - /* 0x1140 */ u8 field_0x1140[0x10]; - /* 0x1150 */ daHorseRein_c field_0x1150[3]; - /* 0x11C8 */ u8 field_0x11c8[0x40]; - /* 0x1208 */ dMsgFlow_c field_0x1208; - /* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep; - /* 0x125C */ u8 field_0x125c[0xC8]; - /* 0x1324 */ daHorseFootData_c mFootData[4]; - /* 0x16B4 */ u8 field_0x16b4; - /* 0x16B5 */ u8 field_0x16b5[3]; - /* 0x16B8 */ u8 field_0x16b8; - /* 0x16B9 */ u8 field_0x16b9[2]; - /* 0x16BB */ u8 mRodeoPointCnt; - /* 0x16BC */ u8 field_0x16bc[0x36]; - /* 0x16F2 */ s16 mAimNeckAngleY; - /* 0x16F4 */ u8 field_0x16f4[0xA]; - /* 0x16FC */ s16 mDemoMoveAngle; - /* 0x16FE */ u8 field_0x16fe[4]; - /* 0x1702 */ s16 field_0x1702; - /* 0x1704 */ u8 field_0x1704[2]; - /* 0x1706 */ s16 mCowHitAngle; - /* 0x1708 */ s16 mCowHit; - /* 0x170A */ u8 field_0x170a[0x1E]; - /* 0x1728 */ int field_0x1728; - /* 0x172C */ u8 field_0x172c[0x14]; - /* 0x1740 */ u32 field_0x1740; - /* 0x1744 */ u32 mStateFlg0; - /* 0x1748 */ u32 mResetStateFlg0; - /* 0x174C */ u32 mEndResetStateFlg0; - /* 0x1750 */ f32 mMorfFrame; - /* 0x1754 */ u8 field_0x1754[0x14]; - /* 0x1768 */ f32 field_0x1768; - /* 0x176C */ f32 field_0x176c; - /* 0x1770 */ f32 field_0x1770; - /* 0x1774 */ u8 field_0x1774[0x14]; - /* 0x1788 */ f32 mDemoStickR; - /* 0x178C */ f32 mNormalMaxSpeedF; - /* 0x1790 */ f32 mLashMaxSpeedF; - /* 0x1794 */ u8 field_0x1794[0x30]; - /* 0x17C4 */ cXyz mDemoPos0; -}; - class mDoExt_morf_c; class daMidna_c : public fopAc_ac_c { @@ -4518,6 +4422,13 @@ public: void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; } + void setFaceNum(int num) { mFaceNum = num; } + void setMotionNum(int num) { mMotionNum = num; } + bool checkDemoTypeNone() const { return mDemoType == 0; } + void changeOriginalDemo() { mDemoType = 3; } + void changeDemoMode(u32 mode) { mDemoMode = mode; } + + inline bool checkMidnaRealBody(); static u8 const m_texDataTable[84]; static u8 const m_anmDataTable[636]; diff --git a/include/d/a/d_a_horse_static.h b/include/d/a/d_a_horse_static.h index e38dc4bb057..a2873bdfbaa 100644 --- a/include/d/a/d_a_horse_static.h +++ b/include/d/a/d_a_horse_static.h @@ -1,30 +1,8 @@ #ifndef D_A_D_A_HORSE_STATIC_H #define D_A_D_A_HORSE_STATIC_H -#include "Z2AudioLib/Z2Creature.h" #include "dolphin/types.h" - -class e_wb_class { -public: - BOOL checkWait(void); - void setPlayerRideNow(void); - void setPlayerRide(void); - void getOff(void); - BOOL checkDownDamage(void); - u8 checkNormalRideMode(void) const; - void setRunRideMode(void); - -private: - u8 unk0[0x5b4]; - s16 unk1460; - u8 unk1462[0x36]; - Z2CreatureRide mZ2Ride; - u8 unk1673[7]; - s16 unk1680; - u16 unk1682; - u8 unk1684[0x2a]; - u16 unk1726; -}; +#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h" class daTagHstop_c { static daTagHstop_c* m_top; diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index fa7b20ef7bf..61e0b9b342e 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -26,8 +26,8 @@ private: /* 0x05 */ u8 field_0x5[3]; /* 0x08 */ cXyz mPos; /* 0x14 */ Mtx field_0x14; - /* 0x44 */ ResTIMG* field_0x44; - /* 0x48 */ ResTIMG* field_0x48; + /* 0x44 */ ResTIMG* mpImg; + /* 0x48 */ u8* mpData; }; class daPy_boomerangMove_c { @@ -53,10 +53,10 @@ public: void initData(); void* mallocBuffer(); void createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE); - J3DAnmBase* loadData(u16); - J3DAnmBase* loadDataIdx(u16); - J3DAnmBase* loadDataPriIdx(u16); - J3DAnmBase* loadDataDemoRID(u16, u16); + void* loadData(u16); + void* loadDataIdx(u16); + void* loadDataPriIdx(u16); + void* loadDataDemoRID(u16, u16); JKRHeap* setAnimeHeap(); u16 getIdx() const { return mIdx; } @@ -64,6 +64,7 @@ public: void resetPriIdx() { mPriIdx = 0xffff; } void resetArcNo() { mArcNo = 0xffff; } bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; } + void setBufferSize(u32 size) { mBufferSize = size; } private: /* 0x00 */ u16 mIdx; @@ -126,6 +127,7 @@ public: u16 getDemoType() const { return mDemoType; } void setDemoMode(u32 mode) { mDemoMode = mode; } u32 getDemoMode() const { return mDemoMode; } + int getParam1() const { return mParam1; } void i_setSpecialDemoType() { setDemoType(5); } private: @@ -189,7 +191,7 @@ public: FLG0_UNK_20 = 0x20, UNK_F_ROLL_CRASH_2 = 0x10, UNK_F_ROLL_CRASH_1 = 0x8, - FLG0_UNK_4 = 4, + MIDNA_RIDE = 4, HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000, }; @@ -211,7 +213,9 @@ public: enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_1000000 = 0x1000000, + ERFLG0_UNK_800000 = 0x800000, ERFLG0_UNK_100000 = 0x100000, + ERFLG0_UNK_2 = 2, ERFLG0_UNK_1 = 1, }; enum daPy_ERFLG1 { @@ -219,9 +223,13 @@ public: UNK_FORCE_PUT_POS = 0x2000, ERFLG1_UNK_1 = 1, }; - enum daPy_ERFLG2 {}; + enum daPy_ERFLG2 { + ERFLG2_UNK_100 = 0x100, + }; enum daPy_RFLG0 { RFLG0_UNK_8000000 = 0x8000000, + RFLG0_UNK_4000 = 0x4000, + ENEMY_ATTENTION_LOCK = 0x1000, RFLG0_UNK_80 = 0x80, RFLG0_UNK_40 = 0x40, RFLG0_UNK_2 = 0x2, @@ -262,10 +270,10 @@ public: }; static u32 setParamData(int, int, int, int); - int checkFishingRodItem(int); + static BOOL checkFishingRodItem(int); static BOOL checkBombItem(int); static BOOL checkBottleItem(int); - void checkDrinkBottleItem(int); + static BOOL checkDrinkBottleItem(int); static BOOL checkOilBottleItem(int); static BOOL checkOpenBottleItem(int); static BOOL checkBowItem(int); @@ -276,25 +284,25 @@ public: void checkWoodShieldEquip(); f32 getAttentionOffsetY(); s16 checkNowWolfEyeUp(); - void forceRestartRoom(int, u32, int); - void setFmChainPos(fopAc_ac_c*, cXyz*, int); - void cancelFmChainGrab(); - void setLookPos(cXyz*); - void setPlayerSe(u32); - void linkGrabSubjectNoDraw(fopAc_ac_c*); + static void forceRestartRoom(int, u32, int); + static void setFmChainPos(fopAc_ac_c*, cXyz*, int); + static void cancelFmChainGrab(); + static void setLookPos(cXyz*); + static void setPlayerSe(u32); + static bool linkGrabSubjectNoDraw(fopAc_ac_c*); void wolfGrabSubjectNoDraw(fopAc_ac_c*); - void checkRoomRestartStart(); + static bool checkRoomRestartStart(); static u32 checkCarryStartLightBallA(); static u32 checkCarryStartLightBallB(); float getSpinnerRideSpeed() const; void checkSpinnerReflectEffect(); - void checkBoomerangCharge(); + static bool checkBoomerangCharge(); bool checkBoomerangChargeTime(); static daBoomerang_c* getThrowBoomerangActor(); - void cancelBoomerangLockActor(fopAc_ac_c*); - void setPlayerDamage(int, int); - void setMidnaMotionNum(int); - void setMidnaFaceNum(int); + static void cancelBoomerangLockActor(fopAc_ac_c*); + static void setPlayerDamage(int, int); + static void setMidnaMotionNum(int); + static void setMidnaFaceNum(int); int checkNoResetFlg0(daPy_FLG0) const; int checkEquipHeavyBoots() const; int checkBoarSingleBattle() const; @@ -314,6 +322,11 @@ public: int checkResetFlg0(daPy_py_c::daPy_RFLG0) const; int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const; int checkMagneBootsOn() const; + void changeDemoPos0(cXyz const*); + void changeDemoMode(u32, int, int, s16); + void changeDemoParam2(s16); + void cancelOriginalDemo(); + void changeOriginalDemo(); virtual cXyz* getMidnaAtnPos() const; virtual void setMidnaMsgNum(fopAc_ac_c*, u16); @@ -493,9 +506,12 @@ public: return sumouCameraMode; } + bool i_getSumouMode() const { return getSumouCameraMode(); } + bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); } bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; } bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); } + bool checkEnemyAttentionLock() const { return i_checkResetFlg0(ENEMY_ATTENTION_LOCK); } // some functions use these function as an inline // is there a better way to handle this? @@ -513,22 +529,25 @@ public: void i_onResetFlg0(int flag) { mResetFlg0 |= flag; } void i_onResetFlg1(int flag) { mResetFlg1 |= flag; } void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; } + void i_onEndResetFlg2(int flag) { mEndResetFlg2 |= flag; } int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; } int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; } int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; } void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; } - int i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); } + u32 i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); } BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); } BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); } - bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_UNK_4); } + bool i_checkMidnaRide() const { return i_checkNoResetFlg0(MIDNA_RIDE); } - inline u32 getLastSceneMode(); + inline static u32 getLastSceneMode(); inline bool checkWoodSwordEquip(); inline BOOL i_checkSwordGet(); inline bool i_checkShieldGet() const; inline BOOL checkNowWolf(); inline bool checkZoraWearFlg() const; + static daMidna_c* getMidnaActor() { return m_midnaActor; } + static daMidna_c* m_midnaActor; }; diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 0f8b51946b2..62219f8cf64 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -53,6 +53,10 @@ public: virtual ~cBgS() {} virtual void Ct(); virtual void Dt(); + + fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& info) const { + return GetActorPointer(info.GetBgIndex()); + } }; // Size: 0x1404 class dBgS_Acch; @@ -75,7 +79,7 @@ public: bool GetMagnetCode(cBgS_PolyInfo const&); bool GetMonkeyBarsCode(cBgS_PolyInfo const&); bool GetUnderwaterRoofCode(cBgS_PolyInfo const&); - bool GetWallCode(cBgS_PolyInfo const&); + s32 GetWallCode(cBgS_PolyInfo const&); bool GetPolyAtt0(cBgS_PolyInfo const&); bool GetPolyAtt1(cBgS_PolyInfo const&); bool GetGroundCode(cBgS_PolyInfo const&); diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index 121895ba9e4..02d8cf72874 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -124,7 +124,7 @@ public: virtual void GetShdwThrough(int) = 0; virtual bool GetUnderwaterRoofCode(int) = 0; virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; - virtual bool GetWallCode(cBgS_PolyInfo const&) = 0; + virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0; virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0; @@ -224,7 +224,7 @@ public: /* 8007B630 */ virtual bool GetUnderwaterRoofCode(int); /* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&); /* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&); - /* 8007B6D8 */ virtual bool GetWallCode(cBgS_PolyInfo const&); + /* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 8007B704 */ virtual bool GetPolyAtt0(cBgS_PolyInfo const&); /* 8007B734 */ virtual bool GetPolyAtt1(cBgS_PolyInfo const&); /* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&); diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h index 2b67b17c5a0..d2797f66fce 100644 --- a/include/d/bg/d_bg_w_base.h +++ b/include/d/bg/d_bg_w_base.h @@ -65,7 +65,7 @@ public: virtual bool GetUnderwaterRoofCode(int) = 0; virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; virtual void GetLinkNo(cBgS_PolyInfo const&) = 0; - virtual bool GetWallCode(cBgS_PolyInfo const&) = 0; + virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0; virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0; diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h index f46686e1572..4fd7aa108d6 100644 --- a/include/d/bg/d_bg_w_kcol.h +++ b/include/d/bg/d_bg_w_kcol.h @@ -61,7 +61,7 @@ public: /* 80082CCC */ virtual void GetUnderwaterRoofCode(int); /* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&); /* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&); - /* 80082D54 */ virtual void GetWallCode(cBgS_PolyInfo const&); + /* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 80082D84 */ virtual void GetPolyAtt0(cBgS_PolyInfo const&); /* 80082DB4 */ virtual void GetPolyAtt1(cBgS_PolyInfo const&); /* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&); diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 202b637c5e2..aa8d749584e 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -72,6 +72,7 @@ enum PlayerPtr { LINK_PTR, HORSE_PTR }; class daHorse_c; class dPa_control_c; class daAlink_c; +class dMsgObject_c; class dComIfG_play_c { public: @@ -110,7 +111,7 @@ public: // inlines bool& isPauseFlag() { return mPauseFlag; } - void* getMsgObjectClass() { return mMsgObjectClass; } + dMsgObject_c* getMsgObjectClass() { return mMsgObjectClass; } dStage_roomControl_c* getRoomControl() { return &mRoomControl; } dStage_stageDt_c& getStage() { return mStageData; } dEvt_control_c& getEvent() { return mEvent; } @@ -155,6 +156,29 @@ public: mBottleStatus = status; mBottleSetFlag = flag; } + void setNunStatus(u8 status, u8 param_1, u8 flag) { + mNunStatus = status; + field_0x4ef0 = param_1; + mNunSetFlag = flag; + } + void setRemoConStatus(u8 status, u8 param_1, u8 flag) { + mRemoConStatus = status; + field_0x4ef2 = param_1; + mRemoConSetFlag = flag; + } + void setNunZStatus(u8 status, u8 flag) { + mNunZStatus = status; + mNunZSetFlag = flag; + } + void setNunCStatus(u8 status, u8 flag) { + mNunCStatus = status; + mNunCSetFlag = flag; + } + void setCStickStatus(u8 status, u8 param_1, u8 flag) { + mCStickStatus = status; + mCStickDirection = param_1; + mCStickSetFlag = flag; + } void setItemLifeCount(float hearts, u8 type) { mItemLifeCount += hearts; mItemLifeCountType = type; @@ -167,9 +191,33 @@ public: void setItemKeyNumCount(s16 keys) { mItemKeyNumCount += keys; } void setItemMaxLifeCount(s16 max) { mItemMaxLifeCount += max; } void setOxygen(int oxygen) { mOxygen = oxygen; } + void setNowOxygen(s32 oxygen) { mNowOxygen = oxygen; } + int getOxygen() { return mOxygen; } + int getMaxOxygen() { return mMaxOxygen; } void setMaxOxygen(int max) { mMaxOxygen = max; } + void setItemNowLife(u16 life) { mItemNowLife = life; } + void setItemNowMagic(s16 magic) { mItemNowMagicCount = magic; } + void setItemNowOil(s32 oil) { mItemNowOil = oil; } + u8 getNeedLightDropNum() { return mNeedLightDropNum; } u8 getDoStatus() { return mDoStatus; } u8 getRStatus() { return mRStatus; } + u8 getAStatus() { return mAStatus; } + u8 getXStatus() { return mXStatus; } + u8 getYStatus() { return mYStatus; } + u8 getZStatus() { return mZStatus; } + u8 get3DStatus() { return m3DStatus; } + u8 getCStickStatus() { return mCStickStatus; } + u8 getSButtonStatus() { return mSButtonStatus; } + u8 getNunStatus() { return mNunStatus; } + u8 getRemoConStatus() { return mRemoConStatus; } + u8 getNunZStatus() { return mNunZStatus; } + u8 getNunCStatus() { return mNunCStatus; } + u8 getBottleStatus() { return mBottleStatus; } + bool isDoSetFlag(u8 flag) { return flag & mDoSetFlag; } + bool isASetFlag(u8 flag) { return flag & mASetFlag; } + bool isRSetFlag(u8 flag) { return flag & mRSetFlag; } + bool isXSetFlag(u8 flag) { return flag & mXSetFlag; } + bool isYSetFlag(u8 flag) { return flag & mYSetFlag; } const char* getStartStageName() { return mStartStage.getName(); } s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); } s8 getStartStageLayer() { return mStartStage.getLayer(); } @@ -189,7 +237,9 @@ public: s8 getStartStageDarkArea() { return mStartStage.getDarkArea(); } void setStartStageDarkArea(s8 darkArea) { mStartStage.setDarkArea(darkArea); } void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; } + void* getPlayer(int idx) { return mPlayer[idx]; } JKRArchive* getMain2DArchive() { return mMain2DArchive; } + JKRArchive* getAnmArchive() { return mAnmArchive; } J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; } dVibration_c& getVibration() { return mVibration; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } @@ -254,7 +304,7 @@ public: /* 0x04E74 */ daAlink_c* mPlayer[1]; /* 0x04E78 */ s8 mPlayerCameraID[4]; /* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong - /* 0x04E84 */ void* mMsgObjectClass; + /* 0x04E84 */ dMsgObject_c* mMsgObjectClass; /* 0x04E88 */ float mItemLifeCount; /* 0x04E8C */ int mItemRupeeCount; /* 0x04E90 */ s16 mItemKeyNumCount; @@ -492,6 +542,11 @@ const char* dComIfGs_getWarpStageName(); s16 dComIfGs_getWarpPlayerAngleY(); s8 dComIfGs_getWarpRoomNo(); char* dComIfG_getRoomArcName(int); +int dComIfGp_getSelectItemNum(int); +int dComIfGp_getSelectItemMaxNum(int); +void dComIfGp_mapShow(); +void dComIfGp_mapHide(); +bool dComIfGp_checkMapShow(); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -677,6 +732,10 @@ inline s32 dComIfGs_isDungeonItemMap() { return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemMap(); } +inline s32 dComIfGs_isDungeonItemCompass() { + return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemCompass(); +} + inline s32 dComIfGs_isDungeonItemBossKey() { return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemBossKey(); } @@ -912,10 +971,14 @@ inline JKRHeap* dComIfGp_getExpHeap2D() { return g_dComIfG_gameInfo.play.getExpHeap2D(); } -inline u16 dComIfGs_getOil() { +inline s16 dComIfGs_getOil() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getOil(); } +inline s16 dComIfGs_getMaxOil() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxOil(); +} + inline s64 dComIfGs_getSaveStartTime() { return g_dComIfG_gameInfo.info.getStartTime(); } @@ -1064,6 +1127,10 @@ inline JKRArchive* dComIfGp_getMain2DArchive() { return g_dComIfG_gameInfo.play.getMain2DArchive(); } +inline JKRArchive* dComIfGp_getAnmArchive() { + return g_dComIfG_gameInfo.play.getAnmArchive(); +} + inline J2DGrafContext* dComIfGp_getCurrentGrafPort() { return g_dComIfG_gameInfo.play.getCurrentGrafPort(); } @@ -1104,7 +1171,7 @@ inline void dComIfGp_set3DStatus(u8 status, u8 direction, u8 flag) { g_dComIfG_gameInfo.play.set3DStatus(status, direction, flag); } -inline u8 dComIfGs_getLastSceneMode() { +inline s32 dComIfGs_getLastSceneMode() { return g_dComIfG_gameInfo.info.getRestart().getLastMode(); } @@ -1192,4 +1259,168 @@ inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) { return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no); } +inline void dComIfGp_setItemNowLife(u16 life) { + g_dComIfG_gameInfo.play.setItemNowLife(life); +} + +inline void dComIfGp_setItemNowMagic(s16 magic) { + g_dComIfG_gameInfo.play.setItemNowMagic(magic); +} + +inline u8 dComIfGs_getMagic() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMagic(); +} + +inline u8 dComIfGs_getMaxMagic() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxMagic(); +} + +inline void dComIfGp_setOxygen(int oxygen) { + g_dComIfG_gameInfo.play.setOxygen(oxygen); +} + +inline void dComIfGp_setNowOxygen(s32 oxygen) { + g_dComIfG_gameInfo.play.setNowOxygen(oxygen); +} + +inline int dComIfGp_getMaxOxygen() { + return g_dComIfG_gameInfo.play.getMaxOxygen(); +} + +inline int dComIfGp_getOxygen() { + return g_dComIfG_gameInfo.play.getOxygen(); +} + +inline u8 dComIfGp_getNeedLightDropNum() { + return g_dComIfG_gameInfo.play.getNeedLightDropNum(); +} + +inline void dComIfGp_setItemNowOil(s32 oil) { + g_dComIfG_gameInfo.play.setItemNowOil(oil); +} + +inline u8 dComIfGp_getAStatus() { + return g_dComIfG_gameInfo.play.getAStatus(); +} + +inline u8 dComIfGp_getXStatus() { + return g_dComIfG_gameInfo.play.getXStatus(); +} + +inline u8 dComIfGp_getYStatus() { + return g_dComIfG_gameInfo.play.getYStatus(); +} + +inline u8 dComIfGp_getZStatus() { + return g_dComIfG_gameInfo.play.getZStatus(); +} + +inline u8 dComIfGp_get3DStatus() { + return g_dComIfG_gameInfo.play.get3DStatus(); +} + +inline u8 dComIfGp_getCStickStatus() { + return g_dComIfG_gameInfo.play.getCStickStatus(); +} + +inline u8 dComIfGp_getSButtonStatus() { + return g_dComIfG_gameInfo.play.getSButtonStatus(); +} + +inline u8 dComIfGp_getNunStatus() { + return g_dComIfG_gameInfo.play.getNunStatus(); +} + +inline u8 dComIfGp_getNunZStatus() { + return g_dComIfG_gameInfo.play.getNunZStatus(); +} + +inline u8 dComIfGp_getNunCStatus() { + return g_dComIfG_gameInfo.play.getNunCStatus(); +} + +inline u8 dComIfGp_getBottleStatus() { + return g_dComIfG_gameInfo.play.getBottleStatus(); +} + +inline u8 dComIfGp_getRemoConStatus() { + return g_dComIfG_gameInfo.play.getRemoConStatus(); +} + +inline bool dComIfGp_isDoSetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isDoSetFlag(flag); +} + +inline bool dComIfGp_isASetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isASetFlag(flag); +} + +inline bool dComIfGp_isRSetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isRSetFlag(flag); +} + +inline bool dComIfGp_isXSetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isXSetFlag(flag); +} + +inline bool dComIfGp_isYSetFlag(u8 flag) { + return g_dComIfG_gameInfo.play.isYSetFlag(flag); +} + +inline bool dComIfGs_isCollectMirror(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectMirror(param_0); +} + +inline bool dComIfGs_isCollectCrystal(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectCrystal(param_0); +} + +inline void dComIfGs_onCollectMirror(u8 param_0) { + g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectMirror(param_0); +} + +inline void dComIfGs_onCollectCrystal(u8 param_0) { + g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectCrystal(param_0); +} + +inline bool dComIfGp_isPauseFlag() { + return g_dComIfG_gameInfo.play.isPauseFlag(); +} + +inline void dComIfGp_setNunStatus(u8 param_0, u8 param_1, u8 param_2) { + g_dComIfG_gameInfo.play.setNunStatus(param_0, param_1, param_2); +} + +inline void dComIfGp_setRemoConStatus(u8 param_0, u8 param_1, u8 param_2) { + g_dComIfG_gameInfo.play.setRemoConStatus(param_0, param_1, param_2); +} + +inline void dComIfGp_setNunZStatus(u8 param_0, u8 param_1) { + g_dComIfG_gameInfo.play.setNunZStatus(param_0, param_1); +} + +inline void dComIfGp_setNunCStatus(u8 param_0, u8 param_1) { + g_dComIfG_gameInfo.play.setNunCStatus(param_0, param_1); +} + +inline void dComIfGp_setCStickStatus(u8 param_0, u8 param_1, u8 param_2) { + g_dComIfG_gameInfo.play.setCStickStatus(param_0, param_1, param_2); +} + +inline void* dComIfG_getObjectIDRes(const char* arc_name, u16 id) { + return g_dComIfG_gameInfo.mResControl.getObjectIDRes(arc_name, id); +} + +inline void* dComIfGp_getPlayer(int idx) { + return g_dComIfG_gameInfo.play.getPlayer(idx); +} + +inline void dComIfGd_set2DOpa(dDlst_base_c* dlst) { + g_dComIfG_gameInfo.drawlist.set2DOpa(dlst); +} + +inline dMsgObject_c* dComIfGp_getMsgObjectClass() { + return g_dComIfG_gameInfo.play.getMsgObjectClass(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index a2c6e064301..493fa2079a6 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -191,6 +191,8 @@ public: /* 800568D8 */ void wipeIn(f32); /* 80056900 */ void calcWipe(); + void set2DOpa(dDlst_base_c* dlst) { set(field_0x1b4, field_0x1b8, dlst); } + static u8 mWipeDlst[72]; static u8 mWipeColor[4]; static f32 mWipeRate; @@ -228,8 +230,8 @@ private: /* 0x000B0 */ dDlst_list_c** field_0xb0; /* 0x000B4 */ dDlst_list_c** field_0xb4; // array? /* 0x000B8 */ u8 field_0xb8[0xFC]; - /* 0x001B4 */ dDlst_list_c* field_0x1b4; - /* 0x001B8 */ dDlst_list_c** field_0x1b8; + /* 0x001B4 */ dDlst_base_c** field_0x1b4; + /* 0x001B8 */ dDlst_base_c** field_0x1b8; /* 0x001BC */ dDlst_list_c** field_0x1bc; // array? /* 0x001C0 */ u8 field_0x1c0[0x7C]; /* 0x0023C */ dDlst_list_c* field_0x23c; diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h index 67e81da529c..5419ba7fe5a 100644 --- a/include/d/d_resorce.h +++ b/include/d/d_resorce.h @@ -59,7 +59,7 @@ public: /* 8003C260 */ static dRes_info_c* newResInfo(dRes_info_c*, int); /* 8003C288 */ static dRes_info_c* getResInfoLoaded(char const*, dRes_info_c*, int); /* 8003C2EC */ static void* getRes(char const*, s32, dRes_info_c*, int); - /* 8003C400 */ void getIDRes(char const*, u16, dRes_info_c*, int); + /* 8003C400 */ static void* getIDRes(char const*, u16, dRes_info_c*, int); /* 8003C470 */ static int syncAllRes(dRes_info_c*, int); /* 8003C4E4 */ int setObjectRes(char const*, void*, u32, JKRHeap*); /* 8003C5BC */ int setStageRes(char const*, JKRHeap*); @@ -79,6 +79,10 @@ public: return getRes(arcName, param_1, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); } + void* getObjectIDRes(const char* arcName, u16 id) { + return getIDRes(arcName, id, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); + } + int syncObjectRes(const char* name) { return syncRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); } diff --git a/include/d/d_stage.h b/include/d/d_stage.h index c5b70bd2568..59be2cc8a39 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -45,8 +45,8 @@ struct stage_stag_info_class { /* 0x2A */ u16 mStageTitleNo; }; // Size: Unknown -inline u16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) { - return p_info->field_0x10 & 7; +inline s16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) { + return p_info->field_0x0a & 7; } struct stage_scls_info_class { @@ -99,7 +99,9 @@ struct dStage_Multi_c {}; struct dStage_SoundInfo_c {}; -struct dStage_FileList_dt_c {}; +struct dStage_FileList_dt_c { + /* 0x0 */ u32 field_0x0; +}; struct dStage_dPnt_c {}; @@ -547,11 +549,12 @@ public: bool checkStatusFlag(int i_roomNo, u8 flag) const { return cLib_checkBit(mStatus[i_roomNo].unk_0x3F4, flag); } + static char* getDemoArcName() { return mDemoArcName; } static JKRExpHeap* mMemoryBlock[19]; static char mArcBank[32][10]; static dStage_roomStatus_c mStatus[0x40]; - static u8 mDemoArcName[10 + 2 /* padding */]; + static char mDemoArcName[10]; static u32 mProcID; static char* mArcBankName; static char* mArcBankData; @@ -680,6 +683,10 @@ inline u32 dStage_stagInfo_GetEscapeWarp(stage_stag_info_class* pstag) { return pstag->field_0x10 >> 0x18; } +inline u32 dStage_stagInfo_GetMiniMap(stage_stag_info_class* pstag) { + return (pstag->field_0x0a >> 0xD) & 7; +} + inline s8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) { return p_info->field_0xb & 0xF; } @@ -696,4 +703,8 @@ inline s8 dStage_sclsInfo_getTimeH(stage_scls_info_class* p_info) { return (p_info->field_0xa >> 4) | (p_info->field_0xb & 16); } +inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) { + return p_fList->field_0x0 >> 3 & 7; +} + #endif /* D_D_STAGE_H */ diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index 6fdb8b79a4b..d007a65ad68 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -83,6 +83,9 @@ public: bool runCheck() { return field_0xe5 != 0; } u16 chkEventFlag(u16 flag) { return flag & mEventFlag; } u8 getMode() const { return mMode; } + u16 checkHind(u16 flag) { return flag & mHindFlag; } + + bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; } public: /* 0x000 */ u8 field_0x0[4]; diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 60bb54f246a..4b585272113 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -665,5 +665,6 @@ STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880); BOOL dKy_darkworld_stage_check(char const*, int); BOOL dKy_withwarp_capture_check(); +bool dKy_darkworld_check(); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h index e0bbcce9a2b..f4fc8a3f2ec 100644 --- a/include/d/map/d_map_path.h +++ b/include/d/map/d_map_path.h @@ -1,6 +1,84 @@ #ifndef D_MAP_D_MAP_PATH_H #define D_MAP_D_MAP_PATH_H +#include "d/d_drawlist.h" #include "dolphin/types.h" +class dDrawPath_c : public dDlst_base_c { +public: + struct line_class {}; + + struct poly_class {}; + + struct group_class {}; + + struct floor_class {}; + + struct room_class {}; + + /* 8003CB00 */ void rendering(dDrawPath_c::group_class const*); + /* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*); + + /* 8002AD3C */ virtual ~dDrawPath_c(); + /* 8002ABF0 */ virtual bool isDrawType(int); + virtual void getColor(int) = 0; + /* 8002AD84 */ virtual void getLineColor(int, int); + virtual void getLineWidth(int) = 0; + virtual void isSwitch(dDrawPath_c::group_class const*) = 0; + virtual void isRenderingFloor(int) = 0; + virtual void getFirstRoomPointer() = 0; + virtual void getNextRoomPointer() = 0; + /* 8003CCC4 */ virtual void drawPath(); + /* 8003C94C */ virtual void rendering(dDrawPath_c::line_class const*); + /* 8003CA40 */ virtual void rendering(dDrawPath_c::poly_class const*); + /* 8003CC24 */ virtual void rendering(dDrawPath_c::room_class const*); +}; + +class dDrawPathWithNormalPattern_c : public dDrawPath_c { +public: + /* 8002ACE0 */ virtual ~dDrawPathWithNormalPattern_c(); +}; + +class dRenderingMap_c : public dDrawPathWithNormalPattern_c { +public: + /* 8003CD38 */ void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const; + /* 8003CDAC */ void renderingMap(); + + /* 8002AC74 */ virtual ~dRenderingMap_c(); + virtual void beforeDrawPath() = 0; + virtual void afterDrawPath() = 0; + virtual void preDrawPath() = 0; + virtual void postDrawPath() = 0; + virtual void isDrawPath() = 0; + virtual void preRenderingMap() = 0; + virtual void postRenderingMap() = 0; + virtual void getBackColor() const = 0; +}; + +class dRenderingFDAmap_c : public dRenderingMap_c { +public: + /* 8003CE78 */ void setTevSettingNonTextureDirectColor() const; + /* 8003CF40 */ void setTevSettingIntensityTextureToCI() const; + /* 8003D0AC */ void drawBack() const; + /* 8003D3C0 */ void renderingDecoration(dDrawPath_c::line_class const*); + + /* 8002ABF8 */ virtual ~dRenderingFDAmap_c(); + /* 8003D188 */ virtual void preRenderingMap(); + /* 8003D320 */ virtual void postRenderingMap(); + /* 8003D68C */ virtual void getDecoLineColor(int, int); + /* 8003D6B8 */ virtual void getDecorationLineWidth(int); + +private: + /* 0x04 */ int field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 mCmPerTexel; + /* 0x1C */ u16 field_0x1c; + /* 0x1E */ u16 field_0x1e; + /* 0x20 */ u16 field_0x20; + /* 0x22 */ u16 field_0x22; +}; // Size: 0x24 + #endif /* D_MAP_D_MAP_PATH_H */ diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h index 3add67c7127..d556a2f6721 100644 --- a/include/d/map/d_map_path_dmap.h +++ b/include/d/map/d_map_path_dmap.h @@ -1,6 +1,140 @@ #ifndef D_MAP_D_MAP_PATH_DMAP_H #define D_MAP_D_MAP_PATH_DMAP_H +#include "d/d_stage.h" +#include "d/map/d_map_path.h" #include "dolphin/types.h" +struct dTres_c { + struct data_s {}; + + struct typeGroupData_c {}; + + struct list_class {}; + + /* 8009BCB4 */ void addData(dTres_c::list_class*, s8); + /* 8009C360 */ void getFirstData(u8); + /* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*); + /* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*); + /* 8009C4B0 */ void getTypeToTypeGroupNo(u8); + + static u8 mTypeGroupListAll[204 + 4 /* padding */]; +}; + +class dMpath_c { +public: + /* 8003F758 */ static u8 isExistMapPathData(); + /* 8003F760 */ void getTopBottomFloorNo(s8*, s8*); + /* 8003F7E8 */ void createWork(); + /* 8003FA40 */ void setPointer(s8, void*, int); + /* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*); + /* 8003FB70 */ void create(); + /* 8003FBD0 */ void reset(); + /* 8003FC70 */ void remove(); + + static u8 mLayerList[4]; + static f32 mMinX; + static f32 mMaxX; + static f32 mMinZ; + static f32 mMaxZ; + static f32 mAllCenterX; + static f32 mAllCenterZ; + static f32 mAllSizeX; + static f32 mAllSizeZ; +}; + +struct dMapInfo_n { + /* 8003ECA0 */ void chkGetCompass(); + /* 8003ECD8 */ void chkGetMap(); + /* 8003ED10 */ void isVisitedRoom(int); + /* 8003ED60 */ void correctionOriginPos(s8, Vec*); + /* 8003EDC0 */ void offsetPlus(dStage_FileList2_dt_c const*, Vec*); + /* 8003EDEC */ void rotAngle(dStage_FileList2_dt_c const*, Vec*); + /* 8003EE5C */ static Vec getMapPlayerPos(); + /* 8003EF20 */ void getMapPlayerAngleY(); + /* 8003EF70 */ void getConstRestartIconPointer(); + /* 8003F02C */ void getMapRestartPos(); + /* 8003F0F8 */ void getMapRestartAngleY(); + /* 8003F19C */ void getRoomCenter(int, f32*, f32*); + /* 8003F1F4 */ void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*); + /* 8003F24C */ void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*); +}; + +class renderingDAmap_c : public dRenderingFDAmap_c { +public: + /* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const; + /* 8003FCC8 */ void init(u8*, u16, u16, u16, u16); + /* 8003FD08 */ void entry(f32, f32, f32, int, s8); + /* 8003FE6C */ void setSingleRoomSetting(); + /* 8003FFF4 */ void getFirstDrawRoomNo(); + /* 80040094 */ void getNextDrawRoomNo(int); + + /* 8003FE18 */ virtual void draw(); + /* 8002B150 */ virtual ~renderingDAmap_c(); + /* 8003FD9C */ virtual void isSwitch(dDrawPath_c::group_class const*); + /* 8003FE54 */ virtual void isRenderingFloor(int); + /* 80040134 */ virtual void getFirstRoomPointer(); + /* 800401E8 */ virtual void getNextRoomPointer(); + /* 8003FF14 */ virtual void preDrawPath(); + /* 8003FFC4 */ virtual void postDrawPath(); + /* 800402C0 */ virtual void isDrawPath(); + /* 8003FE4C */ virtual void getBackColor() const; + /* 800402E0 */ virtual bool getFirstDrawLayerNo(); + /* 800402E8 */ virtual void getNextDrawLayerNo(int); + /* 800409E0 */ virtual void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool, + Vec const*) const; + /* 80040AE4 */ virtual void getIconGroupNumber(u8) const; + virtual void hasMap() const = 0; + virtual void isRendAllRoom() const = 0; + virtual void isRendDoor() const = 0; + virtual bool isCheckFloor() const = 0; + virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const = 0; + /* 8003FFEC */ virtual void getRoomNoSingle(); + /* 8003FE70 */ virtual void isDrawRoom(int, int) const; + /* 800409B4 */ virtual void isDrawRoomIcon(int, int) const; + + bool isDraw() const { return mDraw; } + +private: + /* 0x24 */ int field_0x24; + /* 0x28 */ int field_0x28; + /* 0x2C */ int mRoomNoSingle; + /* 0x30 */ u8 field_0x30; + /* 0x31 */ bool mDraw; +}; // Size: 0x34 + +class stage_tgsc_data_class; + +class renderingPlusDoor_c : public renderingDAmap_c { +public: + /* 80040574 */ void drawDoor1(); + /* 800405B8 */ void drawDoor2(); + /* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool); + /* 80040710 */ void checkDispDoorS(int, int, f32); + /* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool); + + /* 8002B0B4 */ virtual ~renderingPlusDoor_c(); + /* 8004145C */ virtual void beforeDrawPath(); + /* 80040518 */ virtual void afterDrawPath(); + virtual bool isRendRestart() const = 0; + virtual bool isRendCursor() const = 0; + virtual bool isRendIcon() const = 0; +}; + +class renderingPlusDoorAndCursor_c : public renderingPlusDoor_c { +public: + /* 80040B00 */ void drawTreasure(); + /* 80040E84 */ void drawTreasureAfterPlayer(); + /* 80041208 */ void drawIconSingle(Vec const&, f32, f32); + /* 800412C0 */ void drawCursor(Vec const&, s16, int, f32); + + /* 8002B008 */ virtual ~renderingPlusDoorAndCursor_c(); + /* 800402FC */ virtual void afterDrawPath(); + /* 80040ADC */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const; + /* 80040A94 */ virtual void getFirstData(u8); + /* 80040AB8 */ virtual void getNextData(dTres_c::typeGroupData_c*); + virtual void getPlayerCursorSize() = 0; + virtual void getRestartCursorSize() = 0; +}; + #endif /* D_MAP_D_MAP_PATH_DMAP_H */ diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h index 781f1ed640c..62847702451 100644 --- a/include/d/menu/d_menu_window.h +++ b/include/d/menu/d_menu_window.h @@ -172,4 +172,7 @@ private: /* 0x154 */ bool mPauseWindow; }; +BOOL dMw_LEFT_TRIGGER(); +BOOL dMw_RIGHT_TRIGGER(); + #endif /* D_MENU_D_MENU_WINDOW_H */ diff --git a/include/d/menu/d_menu_window_HIO.h b/include/d/menu/d_menu_window_HIO.h index 1b6694db08f..dc3054edfd5 100644 --- a/include/d/menu/d_menu_window_HIO.h +++ b/include/d/menu/d_menu_window_HIO.h @@ -3,4 +3,123 @@ #include "dolphin/types.h" +class dMw_DHIO_c { +public: + /* 801F9E2C */ dMw_DHIO_c(); + + /* 801F9E98 */ virtual ~dMw_DHIO_c() {} + +private: + /* 0x004 */ u8 field_0x4; + /* 0x005 */ bool mMap[32]; + /* 0x025 */ bool mCompass[32]; + /* 0x045 */ bool mBossKey[32]; + /* 0x065 */ bool mBossClear[32]; + /* 0x085 */ bool mHeartContainer[32]; + /* 0x0A5 */ bool mBossDemo[32]; + /* 0x0C5 */ bool mPortal[32]; + /* 0x0E5 */ bool mMidBossClear[32]; + /* 0x105 */ bool mMapCopy[32]; + /* 0x125 */ bool mCompassCopy[32]; + /* 0x145 */ bool mBossKeyCopy[32]; + /* 0x165 */ bool mBossClearCopy[32]; + /* 0x185 */ bool mHeartContainerCopy[32]; + /* 0x1A5 */ bool mBossDemoCopy[32]; + /* 0x1C5 */ bool mPortalCopy[32]; + /* 0x1E5 */ bool mMidBossClearCopy[32]; +}; + +extern dMw_DHIO_c g_mwDHIO; + +class dMw_HIO_c { +public: + /* 801F9AFC */ dMw_HIO_c(); + /* 801F9B38 */ void init(); + /* 801F9E14 */ bool getBombFlag(); + /* 801F9E1C */ bool getArrowFlag(); + /* 801F9E24 */ bool getPachinkoFlag(); + + /* 801F9EE0 */ virtual ~dMw_HIO_c() {} + +private: + /* 0x004 */ u8 field_0x4; + /* 0x006 */ u16 mLife; + /* 0x008 */ u16 mMaxLife; + /* 0x00A */ u8 mMagic; + /* 0x00B */ u8 mMaxMagic; + /* 0x00C */ s32 mOil; + /* 0x010 */ s32 mMaxOil; + /* 0x014 */ s32 mOxygen; + /* 0x018 */ s32 mMaxOxygen; + /* 0x01C */ bool mEnableMagic; + /* 0x01D */ bool mEnableArrowDrops; + /* 0x01E */ s16 mRupees; + /* 0x020 */ s16 mWalletSize; + /* 0x022 */ u8 mKeys; + /* 0x023 */ u8 field_0x23; + /* 0x024 */ u16 mLifeCopy; + /* 0x026 */ u16 mMaxLifeCopy; + /* 0x028 */ u8 mMagicCopy; + /* 0x029 */ u8 mMaxMagicCopy; + /* 0x02C */ s32 mOilCopy; + /* 0x030 */ s32 mMaxOilCopy; + /* 0x034 */ s32 mOxygenCopy; + /* 0x038 */ s32 mMaxOxygenCopy; + /* 0x03C */ bool mEnableMagicCopy; + /* 0x03D */ bool mEnableArrowDropsCopy; + /* 0x03E */ s16 mRupeesCopy; + /* 0x040 */ s16 mWalletSizeCopy; + /* 0x042 */ s16 mDonationAmount; + /* 0x044 */ s16 mDonationAmountCopy; + /* 0x046 */ u8 mKeysCopy; + /* 0x047 */ u8 field_0x47; + /* 0x048 */ u8 mPoes; + /* 0x049 */ u8 mPoesCopy; + /* 0x04A */ u8 mItems[24]; + /* 0x062 */ u8 mItemsCopy[24]; + /* 0x07A */ u8 field_0x7a[24]; + /* 0x092 */ bool mSwords[4]; + /* 0x096 */ bool mShields[3]; + /* 0x099 */ bool mClothes[3]; + /* 0x09C */ bool mSwordsCopy[4]; + /* 0x0A0 */ bool mShieldsCopy[3]; + /* 0x0A3 */ bool mClothesCopy[3]; + /* 0x0A6 */ u8 mScent; + /* 0x0A7 */ u8 mScentCopy; + /* 0x0A8 */ u8 field_0xa8; + /* 0x0A9 */ bool mBombBagLV2; + /* 0x0AA */ bool mBombBagLV2Copy; + /* 0x0AB */ bool mLV2KeyShards[3]; + /* 0x0AE */ bool mLV2KeyShardsCopy[3]; + /* 0x0B1 */ bool mLV5Item[2]; + /* 0x0B3 */ bool mLV5ItemCopy[2]; + /* 0x0B5 */ bool mGoldBug[24]; + /* 0x0CD */ bool mGoldBugCopy[24]; + /* 0x0E5 */ u8 mArrowNum; + /* 0x0E6 */ u8 mSeedNum; + /* 0x0E7 */ u8 mBombNum[3]; + /* 0x0EA */ u8 field_0xea; + /* 0x0EB */ u8 mBottleNum[4]; + /* 0x0EF */ u8 mArrowNumCopy; + /* 0x0F0 */ u8 mSeedNumCopy; + /* 0x0F1 */ u8 mBombNumCopy[3]; + /* 0x0F4 */ u8 field_0xf4; + /* 0x0F5 */ u8 mBottleNumCopy[4]; + /* 0x0F9 */ u8 field_0xf9[8]; + /* 0x101 */ u8 field_0x101[8]; + /* 0x109 */ u8 field_0x109[8]; + /* 0x111 */ u8 field_0x111[8]; + /* 0x119 */ bool mEnableOxygenMeter; + /* 0x11A */ bool mEnableOxygenMeterCopy; + /* 0x11B */ u8 mArrowFlag; + /* 0x11C */ u8 mPachinkoFlag; + /* 0x11D */ u8 mBombFlag; + /* 0x11E */ bool mFusedShadow[4]; + /* 0x122 */ bool mFusedShadowCopy[4]; + /* 0x126 */ bool mMirrorShard[4]; + /* 0x12A */ bool mMirrorShardCopy[4]; +}; // Size: 0x130 + +extern dMw_HIO_c g_mwHIO; + #endif /* D_MENU_D_MENU_WINDOW_HIO_H */ diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h index 890777f9716..4dd2347f623 100644 --- a/include/d/meter/d_meter2.h +++ b/include/d/meter/d_meter2.h @@ -14,12 +14,12 @@ public: class dMeterMap_c; -class dMeter2_c { +class dMeter2_c : public msg_class { public: - /* 8021EA14 */ void _create(); - /* 8021F128 */ void _execute(); - /* 8021F370 */ void _draw(); - /* 8021F49C */ void _delete(); + /* 8021EA14 */ int _create(); + /* 8021F128 */ int _execute(); + /* 8021F370 */ int _draw(); + /* 8021F49C */ int _delete(); /* 8021F6EC */ void emphasisButtonDelete(); /* 8021F780 */ void setLifeZero(); /* 8021F7B0 */ void checkStatus(); @@ -61,6 +61,8 @@ public: /* 802259F8 */ void isArrowEquip(); /* 80225A64 */ void isPachinkoEquip(); + void setNowLifeGauge(s16 life) { mNowLifeGauge = life; } + private: /* 0x100 */ JKRExpHeap* mpHeap; /* 0x104 */ JKRExpHeap* mpSubHeap; @@ -72,7 +74,7 @@ private: /* 0x11C */ void* field_0x11c; /* 0x120 */ dMeterMap_c* mpMap; /* 0x124 */ u32 field_0x124; - /* 0x128 */ int field_0x128; + /* 0x128 */ u32 field_0x128; /* 0x12C */ int field_0x12c; /* 0x130 */ f32 field_0x130; /* 0x134 */ f32 field_0x134[2]; @@ -90,22 +92,22 @@ private: /* 0x18C */ f32 field_0x18c; /* 0x190 */ s16 field_0x190; /* 0x192 */ s16 mNowLifeGauge; - /* 0x194 */ s16 field_0x194; - /* 0x196 */ s16 field_0x196; - /* 0x198 */ s16 field_0x198; + /* 0x194 */ s16 mMaxLife; + /* 0x196 */ s16 mNowMagic; + /* 0x198 */ s16 mMaxMagic; /* 0x19A */ s16 field_0x19a; - /* 0x19C */ int field_0x19c; - /* 0x1A0 */ int field_0x1a0; - /* 0x1A4 */ int field_0x1a4; - /* 0x1A8 */ int field_0x1a8; + /* 0x19C */ int mNowOil; + /* 0x1A0 */ int mMaxOil; + /* 0x1A4 */ int mNowOxygen; + /* 0x1A8 */ int mMaxOxygen; /* 0x1AC */ int field_0x1ac; - /* 0x1B0 */ u16 field_0x1b0; - /* 0x1B2 */ u16 field_0x1b2; + /* 0x1B0 */ u16 mRupeeNum; + /* 0x1B2 */ u16 mKeyNum; /* 0x1B4 */ u16 field_0x1b4; /* 0x1B6 */ u16 mSubContentsStringType; /* 0x1B8 */ u16 field_0x1b8[5]; - /* 0x1C2 */ u8 field_0x1c2; - /* 0x1C3 */ u8 field_0x1c3; + /* 0x1C2 */ u8 mLightDropNum; + /* 0x1C3 */ u8 mNeedLightDropNum; /* 0x1C4 */ u8 field_0x1c4; /* 0x1C5 */ u8 field_0x1c5; /* 0x1C6 */ u8 field_0x1c6; @@ -123,8 +125,8 @@ private: /* 0x1D2 */ u8 field_0x1d2[4]; /* 0x1D6 */ u8 field_0x1d6[2]; /* 0x1D8 */ u8 field_0x1d8[2]; - /* 0x1DA */ u8 field_0x1da; - /* 0x1DB */ u8 field_0x1db; + /* 0x1DA */ u8 mArrowNum; + /* 0x1DB */ u8 mPachinkoNum; /* 0x1DC */ u8 field_0x1dc; /* 0x1DD */ u8 field_0x1dd; /* 0x1DE */ u8 field_0x1de; @@ -144,10 +146,10 @@ private: /* 0x1EC */ u8 field_0x1ec; /* 0x1ED */ u8 field_0x1ed; /* 0x1EE */ u8 field_0x1ee; - /* 0x1EF */ u8 field_0x1ef[4]; - /* 0x1F3 */ u8 field_0x1f3[3]; - /* 0x1F6 */ u8 field_0x1f6[3]; - /* 0x1F9 */ u8 field_0x1f9[4]; + /* 0x1EF */ u8 mBottleNum[4]; + /* 0x1F3 */ u8 mBombNum[3]; + /* 0x1F6 */ u8 mBombMax[3]; + /* 0x1F9 */ u8 mItemMaxNum[4]; /* 0x1FD */ u8 field_0x1fd; /* 0x1FE */ u8 field_0x1fe; /* 0x1FF */ u8 field_0x1ff; @@ -155,4 +157,6 @@ private: /* 0x201 */ u8 field_0x201; }; +typedef int (*dMeter2_Method)(dMeter2_c*); + #endif /* D_METER_D_METER2_H */ diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h index 8a3cd44dcdd..4e914825740 100644 --- a/include/d/meter/d_meter2_draw.h +++ b/include/d/meter/d_meter2_draw.h @@ -51,7 +51,7 @@ public: /* 80215A94 */ void setAlphaOxygenAnimeMax(); /* 80215B18 */ void drawLightDrop(u8, u8, f32, f32, f32, f32, u8); /* 80215DA4 */ void setAlphaLightDropChange(bool); - /* 80215DA8 */ void getNowLightDropRateCalc(); + /* 80215DA8 */ f32 getNowLightDropRateCalc(); /* 80215E40 */ void setAlphaLightDropAnimeMin(); /* 80215F88 */ void setAlphaLightDropAnimeMax(); /* 8021632C */ void drawRupee(s16); @@ -114,6 +114,8 @@ public: /* 802102F8 */ virtual ~dMeter2Draw_c(); + J2DScreen* getMainScreenPtr() { return mpScreen; } + private: /* 0x004 */ f32 field_0x4; /* 0x008 */ f32 field_0x8; @@ -210,9 +212,9 @@ private: /* 0x518 */ J2DPicture* mpItemXYPane[3]; /* 0x524 */ int field_0x524[2][2]; /* 0x534 */ u8 field_0x534[8]; - /* 0x53C */ void* field_0x53c; - /* 0x540 */ J2DAnmBase* field_0x540; // bpk - /* 0x544 */ J2DAnmBase* field_0x544; // bpk + /* 0x53C */ J2DAnmColorKey* field_0x53c; + /* 0x540 */ J2DAnmColorKey* field_0x540; + /* 0x544 */ J2DAnmColorKey* field_0x544; /* 0x548 */ u8 field_0x548[8]; /* 0x550 */ f32 field_0x550; /* 0x554 */ f32 field_0x554; @@ -227,7 +229,35 @@ private: /* 0x578 */ f32 field_0x578; /* 0x57C */ f32 field_0x57c; /* 0x580 */ f32 field_0x580; - /* 0x584 */ u8 field_0x584[0x78]; + /* 0x584 */ f32 field_0x584; + /* 0x588 */ f32 field_0x588; + /* 0x58C */ f32 field_0x58c; + /* 0x590 */ f32 field_0x590; + /* 0x594 */ f32 field_0x594; + /* 0x598 */ f32 field_0x598; + /* 0x59C */ f32 field_0x59c; + /* 0x5A0 */ f32 field_0x5a0; + /* 0x5A4 */ f32 field_0x5a4; + /* 0x5A8 */ f32 field_0x5a8; + /* 0x5AC */ f32 field_0x5ac; + /* 0x5B0 */ f32 field_0x5b0; + /* 0x5B4 */ f32 field_0x5b4; + /* 0x5B8 */ f32 field_0x5b8; + /* 0x5BC */ f32 field_0x5bc; + /* 0x5C0 */ f32 field_0x5c0; + /* 0x5C4 */ f32 field_0x5c4; + /* 0x5C8 */ f32 field_0x5c8; + /* 0x5CC */ f32 field_0x5cc; + /* 0x5D0 */ f32 field_0x5d0; + /* 0x5D4 */ f32 field_0x5d4; + /* 0x5D8 */ f32 field_0x5d8; + /* 0x5DC */ f32 field_0x5dc; + /* 0x5E0 */ f32 field_0x5e0; + /* 0x5E4 */ f32 field_0x5e4; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ f32 field_0x5ec; + /* 0x5F0 */ f32 field_0x5f0; + /* 0x5F4 */ u8 field_0x5f4[0x8]; /* 0x5FC */ f32 field_0x5fc[3]; /* 0x608 */ f32 field_0x608; /* 0x60C */ f32 field_0x60c; diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 5d3f9847c36..49bb7bcf69d 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -10,13 +10,6 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" -struct dMsgObject_c { - /* 802384C4 */ static void setLetterNameID(u16); - /* 802379AC */ void setKillMessageFlag(); - /* 8023822C */ void getStatus(); - /* 802371E4 */ void isPlaceMessage(); -}; - struct JMSMesgEntry_c { /* 0x00 */ u32 mStringOffset; /* 0x04 */ u16 mStringId; @@ -129,8 +122,20 @@ public: const char* getWarpStageName() { return mWarpInfo.mStageName; } void setNowCount(u8 count) { mNowCount = count; } void setMaxCount(u8 count) { mMaxCount = count; } + void allUseButton() { mUseButton = -1; } + bool isUseButton(int param_0) { return param_0 & mUseButton; } + void setMeterMapClass(dMeterMap_c* p_map) { mMeterMap = p_map; } + void resetGameStatus() { mGameStatus = 0; } + void setMapStatus(u8 status) { mMapStatus = status; } + u8 getMapStatus() { return mMapStatus; } + void setPauseStatus(u8 status) { mPauseStatus = status; } + void resetPauseStatus() { mPauseStatus = 0; } + u8 getPauseStatus() { return mPauseStatus; } + bool isGameStatus(int status) { return mGameStatus & status; } + void setMapKeyDirection(u16 direction) { mMapKeyDirection = direction; } + bool isSub2DStatus(int flag) { return mSub2DStatus & (1 << flag); } -private: +public: /* 0x04 */ u8 unk4[4]; /* 0x08 */ u64 unk8; /* 0x10 */ void* mMsgResource; @@ -216,6 +221,7 @@ private: extern dMeter2Info_c g_meter2_info; void dMeter2Info_setSword(u8, bool); +void dMeter2Info_set2DVibration(); inline void dMeter2Info_Initialize() { g_meter2_info.init(); @@ -277,4 +283,60 @@ inline void dMeter2Info_setMaxCount(u8 count) { g_meter2_info.setMaxCount(count); } +inline bool dMeter2Info_isDirectUseItem(int param_0) { + return g_meter2_info.isDirectUseItem(param_0); +} + +inline bool dMeter2Info_isUseButton(int param_0) { + return g_meter2_info.isUseButton(param_0); +} + +inline void dMeter2Info_setMeterMapClass(dMeterMap_c* p_map) { + g_meter2_info.setMeterMapClass(p_map); +} + +inline void dMeter2Info_decHotSpringTimer() { + g_meter2_info.decHotSpringTimer(); +} + +inline void dMeter2Info_allUseButton() { + g_meter2_info.allUseButton(); +} + +inline void dMeter2Info_resetGameStatus() { + g_meter2_info.resetGameStatus(); +} + +inline void dMeter2Info_setMapStatus(u8 status) { + g_meter2_info.setMapStatus(status); +} + +inline u8 dMeter2Info_getMapStatus() { + return g_meter2_info.getMapStatus(); +} + +inline void dMeter2Info_setPauseStatus(u8 status) { + g_meter2_info.setPauseStatus(status); +} + +inline void dMeter2Info_resetPauseStatus() { + g_meter2_info.resetPauseStatus(); +} + +inline u8 dMeter2Info_getPauseStatus() { + return g_meter2_info.getPauseStatus(); +} + +inline bool dMeter2Info_isGameStatus(int status) { + return g_meter2_info.isGameStatus(status); +} + +inline void dMeter2Info_setMapKeyDirection(u16 direction) { + g_meter2_info.setMapKeyDirection(direction); +} + +inline bool dMeter2Info_isSub2DStatus(int flag) { + return g_meter2_info.isSub2DStatus(flag); +} + #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/meter/d_meter_HIO.h b/include/d/meter/d_meter_HIO.h index d731a2051b0..8e593844382 100644 --- a/include/d/meter/d_meter_HIO.h +++ b/include/d/meter/d_meter_HIO.h @@ -1380,4 +1380,10 @@ public: STATIC_ASSERT(sizeof(dMeter_cursorHIO_c) == 68); +extern dMeter_menuHIO_c g_menuHIO; +extern dMeter_drawHIO_c g_drawHIO; +extern dMeter_ringHIO_c g_ringHIO; +extern dMeter_fmapHIO_c g_fmapHIO; +extern dMeter_cursorHIO_c g_cursorHIO; + #endif /* D_METER_D_METER_HIO_H */ diff --git a/include/d/meter/d_meter_map.h b/include/d/meter/d_meter_map.h index 4d10d3521e0..b65ba6cc832 100644 --- a/include/d/meter/d_meter_map.h +++ b/include/d/meter/d_meter_map.h @@ -1,38 +1,176 @@ #ifndef D_METER_D_METER_MAP_H #define D_METER_D_METER_MAP_H +#include "JSystem/J2DGraph/J2DPicture.h" #include "JSystem/J2DGraph/J2DScreen.h" +#include "d/map/d_map_path_dmap.h" #include "dolphin/types.h" -class dMeterMap_c { +// move renderingAmap_c + dMap_c later +class renderingAmap_c : public renderingPlusDoorAndCursor_c { public: - /* 8020D49C */ void isEnableDispMap(); - /* 8020D528 */ void getMapDispSizeTypeNo(); - /* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo(); - /* 8020D690 */ void getMapDispEdgeBottomY_Layout(); - /* 8020D698 */ void isEventRunCheck(); - /* 8020D72C */ void getMapDispEdgeLeftX_Layout(); - /* 8020D75C */ void getMapDispEdgeTop(); - /* 8020D7E4 */ bool getDispPosInside_OffsetX(); - /* 8020D7EC */ void getDispPosOutSide_OffsetX(); + /* 800288C4 */ void getDispType() const; + /* 80028BB4 */ void isDrawOutSideTrim(); + /* 80028C4C */ void getOutSideBlackLineNumber(); + /* 80028C60 */ void isOutSideBlackLine(); + /* 80028C90 */ void getLineWidthSub(int); + /* 80029160 */ void getStayType() const; + /* 8002AE6C */ renderingAmap_c(); + + /* 800284D0 */ virtual void draw(); + /* 8002ADB0 */ virtual ~renderingAmap_c(); + /* 80028EE4 */ virtual void getLineColor(int, int); + /* 80028DD4 */ virtual void getLineWidth(int); + /* 80028A10 */ virtual void drawPath(); + /* 80028A30 */ virtual void rendering(dDrawPath_c::line_class const*); + /* 80028B3C */ virtual void rendering(dDrawPath_c::poly_class const*); + /* 800289F0 */ virtual void rendering(dDrawPath_c::room_class const*); + /* 80028960 */ virtual void beforeDrawPath(); + /* 800289D0 */ virtual void afterDrawPath(); + /* 80028FB4 */ virtual void getDecoLineColor(int, int); + /* 80028CF4 */ virtual void getDecorationLineWidth(int); + /* 80029058 */ virtual void getIconGroupNumber(u8) const; + /* 80029078 */ virtual void hasMap() const; + /* 8002911C */ virtual void isRendAllRoom() const; + /* 800290C0 */ virtual void isRendDoor() const; + /* 80029104 */ virtual bool isCheckFloor() const; + /* 80029190 */ virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const; + /* 8002910C */ virtual bool isRendRestart() const; + /* 80029114 */ virtual bool isRendCursor() const; + /* 8002B000 */ virtual bool isRendIcon() const; + /* 800284BC */ virtual void getIconSize(u8) const; + /* 80028B04 */ virtual void getPlayerCursorSize(); + /* 80028B10 */ virtual void getRestartCursorSize(); + virtual void setAmapPaletteColor(int, u8, u8, u8, u8) = 0; + virtual bool isSpecialOutline() = 0; + +private: + /* 0x34 */ s32 m_outSideBlackLineCnt; + /* 0x38 */ s32 field_0x38; + /* 0x3C */ s32 field_0x3c; +}; // Size: 0x40 + +class dMap_c : public renderingAmap_c { +public: + /* 8002974C */ void copyPalette(); + /* 8002A064 */ void copyPalette(int, int, f32); + /* 80029F84 */ void setMapPaletteColorAlphaPer(int, f32); + /* 800297A8 */ void setMapPaletteColorAlphaPer(int, int, f32); + /* 80029818 */ void resCopy(); + /* 80029874 */ dMap_c(int, int, int, int); + /* 80029A1C */ void _remove(); + /* 80029A8C */ void getMapMinMaxXZ(int, f32*, f32*, f32*, f32*); + /* 80029C10 */ void getPack(int, f32*, f32*); + /* 80029D78 */ void calcMapCenterXZ(int, f32*, f32*); + /* 80029E1C */ void calcMapCmPerTexel(int, f32*); + /* 8002A1BC */ void getDispType() const; + /* 8002A32C */ void _move(f32, f32, int, f32); + /* 8002AB54 */ void _draw(); + + /* 8002AF20 */ virtual ~dMap_c(); + /* 800296EC */ virtual void isDrawType(int); + /* 80028DF4 */ virtual void getColor(int); + /* 800296F8 */ virtual void isRendAllRoom() const; + /* 8002A254 */ virtual void getRoomNoSingle(); + /* 8002A1DC */ virtual void isDrawRoom(int, int) const; + /* 8002A294 */ virtual void isDrawRoomIcon(int, int) const; + /* 80029038 */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const; + /* 8002ABAC */ virtual void getFirstData(u8); + /* 8002ABCC */ virtual void getNextData(dTres_c::typeGroupData_c*); + /* 8002A148 */ virtual void setAmapPaletteColor(int, u8, u8, u8, u8); + /* 80029744 */ virtual bool isSpecialOutline(); + + bool isDraw() const { return renderingDAmap_c::isDraw(); } + + ResTIMG* getResTIMGPointer() { return mResTIMG; } + f32 getTopEdgePlus() { return mTopEdgePlus; } + f32 getPackPlusZ() { return mPackPlusZ; } + f32 getPackZ() { return mPackZ; } + f32 getTexelPerCm() { return 1.0f / field_0x58; } + u16 getTexSizeY() { return mTexSizeH; } + f32 getRightEdgePlus() { return mRightEdgePlus; } + f32 getPackX() { return mPackX; } + +private: + /* 0x40 */ u8* m_res_src; + /* 0x44 */ u8* m_res; + /* 0x48 */ ResTIMG* mResTIMG; + /* 0x4C */ u8* mImage_p; + /* 0x50 */ f32 mCenterX; + /* 0x54 */ f32 mCenterZ; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 mPackX; + /* 0x60 */ f32 mPackZ; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 mPackPlusZ; + /* 0x6C */ f32 mRightEdgePlus; + /* 0x70 */ f32 mTopEdgePlus; + /* 0x74 */ int field_0x74; + /* 0x78 */ u16 mTexSizeW; + /* 0x7A */ u16 mTexSizeH; + /* 0x7C */ s32 mStayRoomNo; + /* 0x80 */ int field_0x80; + /* 0x84 */ int field_0x84; + /* 0x88 */ int field_0x88; + /* 0x8C */ u8 field_0x8c; + /* 0x8D */ u8 field_0x8d; + /* 0x8E */ u8 field_0x8e; + /* 0x8F */ u8 field_0x8f; + /* 0x90 */ u8 field_0x90; +}; // Size: 0x94 + +class dMeterMap_c : public dDlst_base_c { +public: + /* 8020D49C */ static bool isEnableDispMap(); + /* 8020D528 */ static int getMapDispSizeTypeNo(); + /* 8020D650 */ static bool isEnableDispMapAndMapDispSizeTypeNo(); + /* 8020D690 */ f32 getMapDispEdgeBottomY_Layout(); + /* 8020D698 */ bool isEventRunCheck(); + /* 8020D72C */ f32 getMapDispEdgeLeftX_Layout(); + /* 8020D75C */ f32 getMapDispEdgeTop(); + /* 8020D7E4 */ s16 getDispPosInside_OffsetX(); + /* 8020D7EC */ s16 getDispPosOutSide_OffsetX(); /* 8020D874 */ void setDispPosInsideFlg_SE_On(); /* 8020D8BC */ void setDispPosOutsideFlg_SE_On(); /* 8020D8F8 */ void setMapAlpha(u8); /* 8020D900 */ static bool isMapOpenCheck(); /* 8020D948 */ dMeterMap_c(J2DScreen*); - /* 8020D990 */ ~dMeterMap_c(); /* 8020D9EC */ void _create(J2DScreen*); /* 8020DC50 */ void _delete(); /* 8020DCE4 */ void _move(u32); /* 8020DF1C */ void _draw(); - /* 8020DF68 */ void draw(); /* 8020E070 */ void ctrlShowMap(); - /* 8020E45C */ void checkMoveStatus(); - /* 8020E4C8 */ void isShow(u32); - /* 8020E620 */ void isFmapScreen(); - /* 8020E70C */ void isDmapScreen(); - /* 8020E754 */ void meter_map_move(u32); + /* 8020E45C */ u8 checkMoveStatus(); + /* 8020E4C8 */ static bool isShow(u32); + /* 8020E620 */ static bool isFmapScreen(); + /* 8020E70C */ static bool isDmapScreen(); + /* 8020E754 */ static void meter_map_move(u32); /* 8020E9CC */ void keyCheck(); + + /* 8020DF68 */ virtual void draw(); + /* 8020D990 */ virtual ~dMeterMap_c(); + + bool isDispPosInsideFlg() { return field_0x2d != 0; } + + enum { MAP_SIZE_TYPE_BIG = 2, MAP_SIZE_TYPE_SMALL = 3, MAP_SIZE_TYPE_STAGE = 7 }; + +private: + /* 0x04 */ J2DPicture* mMapJ2DPicture; + /* 0x08 */ dMap_c* mMap; + /* 0x0C */ s32 mIsCompass; + /* 0x10 */ s32 mIsMap; + /* 0x14 */ u32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 mSizeW; + /* 0x24 */ f32 mSizeH; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ u8 field_0x2a; + /* 0x2B */ u8 field_0x2b; + /* 0x2C */ u8 mMapAlpha; + /* 0x2D */ u8 field_0x2d; + /* 0x2E */ u8 field_0x2e; + /* 0x30 */ int field_0x30; }; #endif /* D_METER_D_METER_MAP_H */ diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index 0a9cf51695b..903cc910f29 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -1,6 +1,162 @@ #ifndef D_MSG_D_MSG_OBJECT_H #define D_MSG_D_MSG_OBJECT_H +#include "JSystem/J2DGraph/J2DTextbox.h" +#include "d/com/d_com_inf_game.h" #include "dolphin/types.h" +class msg_class; +class COutFont_c; + +class dMsgObject_c { +public: + /* 80233284 */ void _create(msg_class*); + /* 80233590 */ void _execute(); + /* 802339BC */ void _draw(); + /* 80233AE8 */ void _delete(); + /* 80233D04 */ void setMessageIndex(u32, u32, bool); + /* 80233E70 */ void setMessageIndexDemo(u32, bool); + /* 80233F84 */ void getMessageIndex(u32); + /* 80233FD8 */ void getRevoMessageIndex(u32); + /* 802340D4 */ void getMessageIndexAlways(u32); + /* 80234128 */ void getMessageIDAlways(u32); + /* 8023413C */ void getMessageGroup(u32); + /* 80234150 */ void waitProc(); + /* 80234318 */ void openProc(); + /* 802349D8 */ void outnowProc(); + /* 80234CCC */ void outwaitProc(); + /* 80234FF0 */ void stopProc(); + /* 80234FF4 */ void continueProc(); + /* 8023531C */ void selectProc(); + /* 8023587C */ void selectEndProc(); + /* 802358D4 */ void inputProc(); + /* 80235AD4 */ void finishProc(); + /* 80235CC0 */ void endProc(); + /* 80235EBC */ void deleteProc(); + /* 8023609C */ void textmodeProc(); + /* 802360A0 */ void talkStartInit(); + /* 8023670C */ void fukiPosCalc(bool); + /* 802368E4 */ void setStatusLocal(u16); + /* 802368F8 */ void getStatusLocal(); + /* 8023690C */ void delete_screen(bool); + /* 802369D8 */ void isSend(); + /* 80236BF8 */ void readMessageGroupLocal(mDoDvdThd_mountXArchive_c**); + /* 80236C90 */ void changeFlowGroupLocal(s32); + /* 80236CD4 */ void demoMessageGroupLocal(); + /* 80236D00 */ void endFlowGroupLocal(); + /* 80236D0C */ void changeGroupLocal(s16); + /* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, + char*, char*, s16*); + /* 802370A8 */ void isGetItemMessage(); + /* 802370BC */ void isKanbanMessage(); + /* 802370E8 */ void isHowlMessage(); + /* 802370FC */ void isMidonaMessage(); + /* 80237138 */ void isMidonaNormalTalkWait(); + /* 802371B0 */ void isMidonaTalkWait(); + /* 802371E4 */ void isPlaceMessage(); + /* 802371F8 */ void isBossMessage(); + /* 8023720C */ bool isBookMessage(); + /* 80237214 */ void isStaffMessage(); + /* 80237228 */ void isSaveMessage(); + /* 8023723C */ void isTalkMessage(); + /* 802372CC */ void getSmellName(); + /* 80237334 */ void getPortalName(); + /* 8023738C */ void getBombName(); + /* 8023741C */ void getInsectName(); + /* 80237478 */ void getLetterName(); + /* 802374D0 */ void getSelectBombNum(); + /* 80237520 */ void onMsgSendControlLocal(); + /* 80237530 */ void offMsgSendControlLocal(); + /* 80237550 */ void isMsgSendControlLocal(); + /* 8023755C */ void onMsgSendLocal(); + /* 8023756C */ void offMsgSendLocal(); + /* 8023757C */ void isMsgSendLocal(); + /* 80237588 */ void isMouthCheckLocal(); + /* 8023759C */ void getBombBuyPriceLocal(u8); + /* 802375E4 */ void addSelectBomBag(u8); + /* 80237610 */ void resetSelectBomBag(); + /* 8023763C */ void getSelectBombBagIDLocal(); + /* 8023768C */ void getSelectBombPriceLocal(); + /* 8023773C */ void setEquipBombInfoLocal(); + /* 80237748 */ void updateEquipBombInfoLocal(); + /* 802378B8 */ void setShopWaitTimer(u8); + /* 802378CC */ void setSelectWordFlagLocal(u8); + /* 802378D4 */ void isHowlHearingModeLocal(); + /* 80237934 */ void isCameraCancelFlag(); + /* 80237950 */ void onCameraCancelFlag(); + /* 80237968 */ void offCameraCancelFlag(); + /* 80237980 */ void isKillMessageFlag(); + /* 80237994 */ void onKillMessageFlag(); + /* 802379AC */ void setKillMessageFlag(); + /* 802379D8 */ void setKillMessageFlagLocal(); + /* 80237A74 */ void setTalkPartner(fopAc_ac_c*); + /* 80237A88 */ void setNowTalkFlowNo(s16); + /* 80237A9C */ void getNowTalkFlowNo(); + /* 80237AB0 */ void setDemoMessage(u32); + /* 80237AE0 */ void setTalkHeap(void*); + /* 80237B10 */ void setTalkHeapLocal(void*); + /* 80237B54 */ void getTalkHeap(); + /* 80237B68 */ void isDraw(); + /* 80237BFC */ void setButtonStatusLocal(); + /* 80237D88 */ void setDemoMessageLocal(u32); + /* 80237DD8 */ void getSmellTypeMessageIDLocal(); + /* 80237E04 */ void setSmellTypeLocal(u8); + /* 80237E58 */ void getSelectCursorPosLocal(); + /* 80237E68 */ void setSelectCursorPosLocal(u8); + /* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*); + /* 8023800C */ void readMessageGroup(mDoDvdThd_mountXArchive_c**); + /* 8023803C */ void changeFlowGroup(s32); + /* 8023806C */ void demoMessageGroup(); + /* 80238098 */ void endFlowGroup(); + /* 802380C4 */ void changeGroup(s16); + /* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, + char*, char*, s16*); + /* 80238174 */ void getMsgDtPtr(); + /* 80238188 */ void setProcessID(unsigned int); + /* 8023819C */ void getActor(); + /* 802381C0 */ void getpTalkActor(); + /* 802381D4 */ void getIdx(); + /* 802381E8 */ void getNodeIdx(); + /* 802381FC */ void setStatus(u16); + /* 8023822C */ static u16 getStatus(); + /* 80238258 */ void getScrnDrawPtr(); + /* 8023826C */ void setTalkActor(fopAc_ac_c*); + /* 8023829C */ void onMsgSendControl(); + /* 802382C8 */ void offMsgSendControl(); + /* 802382F4 */ void isMsgSendControl(); + /* 80238320 */ void onMsgSend(); + /* 8023834C */ void offMsgSend(); + /* 80238378 */ void isMsgSend(); + /* 802383A4 */ void isMouthCheck(); + /* 802383D0 */ void getMessageID(); + /* 802383E4 */ void getSmellTypeMessageID(); + /* 80238410 */ void setSmellType(u8); + /* 80238440 */ void getSelectCursorPos(); + /* 8023846C */ void setSelectCursorPos(u8); + /* 8023849C */ void setPortalMessageID(u16); + /* 802384B0 */ void setInsectItemNo(u8); + /* 802384C4 */ static void setLetterNameID(u16); + /* 802384D8 */ void setArrowNum(u8); + /* 802384EC */ void setMsgOutputType(u8); + /* 80238500 */ void getMsgOutputType(); + /* 80238514 */ void getWord(); + /* 80238528 */ void getSelectWord(int); + /* 80238544 */ void setSelectWordFlag(u8); + /* 80238574 */ void getSelectWordFlag(); + /* 80238588 */ void isHowlHearingMode(); + /* 802385B4 */ void getSelectBombBagID(); + /* 802385E0 */ void getSelectBombPrice(); + /* 8023860C */ void setEquipBombInfo(); + /* 80238638 */ void getItemEquipButton(); + /* 8023864C */ void setSelectCancelPos(u8); +}; + +inline dMsgObject_c* dMsgObject_getMsgObjectClass() { + return dComIfGp_getMsgObjectClass(); +} + +inline bool dMsgObject_isTalkNowCheck() { + return dMsgObject_getMsgObjectClass()->getStatus() != 1 ? true : false; +} + #endif /* D_MSG_D_MSG_OBJECT_H */ diff --git a/include/d/pane/d_pane_class.h b/include/d/pane/d_pane_class.h index 40b33a9ed07..f77aafc09bf 100644 --- a/include/d/pane/d_pane_class.h +++ b/include/d/pane/d_pane_class.h @@ -47,6 +47,12 @@ public: f32 getInitCenterPosY() { return mInitPos.y + mInitSize.y * 0.5f; } + f32 getInitSizeX() { return mInitSize.x; } + f32 getInitSizeY() { return mInitSize.y; } + + f32 getInitPosX() { return mInitPos.x; } + f32 getInitPosY() { return mInitPos.y; } + private: /* 0x1C */ void* mpFirstStackSize; /* 0x20 */ void* field_0x20; diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 217ba4c4190..0e58a882c79 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -371,6 +371,9 @@ public: u16& getLife() { return mLife; } u16& getRupee() { return mRupee; } u16& getOil() { return mOil; } + u16& getMaxOil() { return mMaxOil; } + u8& getMagic() { return mMagic; } + u8& getMaxMagic() { return mMaxMagic; } u8 getSelectEquip(int item) const { return mSelectEquip[item]; } void setOil(u16 oil) { mOil = oil; } void setMaxOil(u16 max) { mMaxOil = max; } @@ -765,6 +768,7 @@ public: void onDungeonItemMap() { onDungeonItem(MAP); } s32 isDungeonItemMap() const { return isDungeonItem(MAP); } void onDungeonItemCompass() { onDungeonItem(COMPASS); } + s32 isDungeonItemCompass() const { return isDungeonItem(COMPASS); } void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE); } void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); } s32 isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY); } @@ -1001,7 +1005,7 @@ public: BOOL isActor(int, int) const; int memory_to_card(char*, int); int card_to_memory(char*, int); - void initdata_to_card(char*, int); + int initdata_to_card(char*, int); dSv_save_c& getSavedata() { return mSavedata; } dSv_memory_c& getMemory() { return mMemory; } diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index bf16d5b99ab..3ba9ad5b162 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -50,6 +50,8 @@ public: }; // Size = 0x18 struct actor_place { + /* 807E2468 */ void operator=(actor_place const&); + cXyz mPosition; csXyz mAngle; s8 mRoomNo; diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index ff338d68b01..25aa4981243 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -18,6 +18,15 @@ private: /* 0x0 */ J3DFrameCtrl mFrameCtrl; }; // Size: 0x14 +class mDoExt_transAnmBas : public J3DAnmTransformKey { +public: + mDoExt_transAnmBas(void* bas) { mBas = bas; } + virtual ~mDoExt_transAnmBas(); + +private: + /* 0x28 */ void* mBas; +}; + class mDoExt_btkAnm : public mDoExt_baseAnm { public: mDoExt_btkAnm(void) { mBtkAnm = 0; } @@ -165,6 +174,7 @@ JKRExpHeap* mDoExt_getHostIOHeap(); JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap**, u32, JKRHeap*, u32); JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32, JKRHeap*, u32); JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32, u32); +JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap**, u32, u32); JKRHeap* mDoExt_getCurrentHeap(); extern JKRExpHeap* zeldaHeap; diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 79c09b2fbff..30c90bdd625 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -15,6 +15,7 @@ void mDoMtx_ZrotS(Mtx, s16); void mDoMtx_YrotS(Mtx, s16); void mDoMtx_XrotS(Mtx, s16); void mDoMtx_YrotM(Mtx, s16); +void mDoMtx_MtxToRot(MtxP, csXyz*); class mDoMtx_stack_c { public: diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h index 71cbc68c4d8..9db68e95be0 100644 --- a/include/rel/d/a/d_a_horse/d_a_horse.h +++ b/include/rel/d/a/d_a_horse/d_a_horse.h @@ -1,6 +1,220 @@ #ifndef D_A_HORSE_H #define D_A_HORSE_H +#include "Z2AudioLib/Z2Creature.h" +#include "d/bg/d_bg_s.h" +#include "d/cc/d_cc_d.h" +#include "d/msg/d_msg_flow.h" #include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class daHorseRein_c { +public: + /* 80837F2C */ void setReinPos(int); + /* 808383A8 */ void setReinPosPart(int); + /* 80844FB0 */ ~daHorseRein_c(); + /* 80844FEC */ daHorseRein_c(); + +private: + /* 0x00 */ cXyz* field_0x0[2]; + /* 0x08 */ int field_0x8[2]; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ cXyz field_0x1c; +}; // Size: 0x28 + +class daHorseFootData_c { +public: + /* 80844F70 */ ~daHorseFootData_c(); + /* 80844FAC */ daHorseFootData_c(); + +private: + /* 0x0 */ u8 field_0x0[0xE4]; +}; // Size: 0xE4 + +class daHorse_c : public fopAc_ac_c { +public: + enum daHorse_ERFLG0 { + /* 0x010 */ MOVE_ACCEPT = 0x10, + /* 0x080 */ RIDE_RUN_FLG = 0x80, + /* 0x100 */ CUT_TURN_CANCEL = 0x100, + }; + + enum daHorse_RFLG0 { + /* 0x02 */ ENEMY_SEARCH = 2, + /* 0x08 */ LASH_DASH_START = 8, + /* 0x10 */ TURN_STAND = 0x10, + /* 0x40 */ TURN_STAND_CAMERA = 0x40, + }; + + enum daHorse_FLG0 { + /* 0x00000020 */ RODEO_LEFT = 0x20, + /* 0x00000040 */ RIDE_START_FLG = 0x40, + /* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000, + /* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000, + /* 0x80000000 */ RODEO_MODE = 0x80000000 + }; + + fopAc_ac_c* getZeldaActor(); + /* 807E27BC */ void cancelOriginalDemo(); + /* 807E27F8 */ void onDemoJumpDistance(f32, f32); + /* 807E28B8 */ void changeDemoPos0(cXyz const*); + /* 807E28D4 */ void changeDemoMode(u32, int); + /* 807E28E0 */ void setHorsePosAndAngle(cXyz const*, s16); + /* 807E2964 */ void changeOriginalDemo(); + /* 80838498 */ void coHitCallbackBoarJump(fopAc_ac_c*); + /* 80838798 */ void coHitCallbackBoarHit(fopAc_ac_c*, dCcD_GObjInf*); + /* 80838904 */ void coHitCallbackCowHit(fopAc_ac_c*); + /* 80838B78 */ void modelCallBack(int); + /* 80838F98 */ void createHeap(); + /* 8083940C */ void checkEnding(); + /* 80839498 */ void create(); + /* 80839D1C */ void setBasAnime(int); + /* 80839EBC */ void resetBasAnime(); + /* 80839ED4 */ void setDoubleAnime(f32, f32, f32, u16, u16, f32); + /* 8083A20C */ void setSingleAnime(u16, f32, f32, s16, f32, int); + /* 8083A3C4 */ void animePlay(); + /* 8083A5AC */ void checkDemoAction(); + /* 8083A890 */ void setStickRodeoMove(); + /* 8083AC7C */ void setStickCallMove(); + /* 8083ACEC */ void setDemoMoveData(u32*, cXyz const*); + /* 8083AEC0 */ void setDemoData(); + /* 8083B578 */ void acceptPlayerRide(); + /* 8083B600 */ void setStickData(); + /* 8083B828 */ void setTurnStartVibration(); + /* 8083B82C */ void setTurnVibration(); + /* 8083B830 */ void setMoveAnime(f32); + /* 8083BF48 */ void checkHorseNoMove(int); + /* 8083CA80 */ void checkTurnPlayerState(); + /* 8083CB38 */ void setSpeedAndAngle(); + /* 8083D748 */ void checkWaitTurn() const; + /* 8083D774 */ void setRoomInfo(int); + /* 8083D918 */ void setBodyPart(); + /* 8083D9D8 */ void setMatrix(); + /* 8083DC58 */ void setDashEffect(u32*); + /* 8083DEEC */ void setEffect(); + /* 8083E4D8 */ void setCollision(); + /* 8083E6E8 */ void autoGroundHit(); + /* 8083E760 */ void setTailAngle(); + /* 8083E8A4 */ void setNeckAngle(); + /* 8083EA78 */ void copyFootMatrix(); + /* 8083EB10 */ void setFootMatrix(); + /* 8083ED88 */ void setLegAngle(f32, int, int, s16*); + /* 8083F3B0 */ void footBgCheck(); + /* 8083F9AC */ void setReinPosMoveInit(int); + /* 8083FDAC */ void copyReinPos(); + /* 8083FEB4 */ void setReinPosHandSubstance(int); + /* 8084010C */ void setReinPosNormalSubstance(); + /* 808402F8 */ void bgCheck(); + /* 80840714 */ void checkSpecialWallHitSubstance(cXyz const&) const; + /* 808407B0 */ void setServiceWaitTimer(); + /* 80840800 */ void checkServiceWaitAnime(); + /* 80840844 */ void checkTurnInput(); + /* 808408F0 */ void checkTgHitTurn(); + /* 808409C0 */ void checkTurnAfterFastMove(f32); + /* 80840B28 */ void setNeckAnimeMorf(); + /* 80840B88 */ void setNeckAnime(u16, f32, f32, s16); + /* 80840CA4 */ void resetNeckAnime(); + /* 80840CE4 */ void setLashCnt(); + /* 80840FE0 */ void setTalkModeWolf(); + /* 80841084 */ void setBoarHit(fopAc_ac_c*, int); + /* 8084116C */ void savePos(); + /* 808411D0 */ void callHorseSubstance(cXyz const*); + /* 80841468 */ void setHorsePosAndAngleSubstance(cXyz const*, s16); + /* 808415B4 */ void checkPlayerHeavy(); + /* 80841628 */ void setTgCoGrp(u32, u32); + /* 80841698 */ void onRideFlgSubstance(); + /* 808416D4 */ void offRideFlgSubstance(); + /* 80841708 */ void procWaitInit(); + /* 808417B8 */ void procWait(); + /* 80841F04 */ void procMoveInit(); + /* 80841F80 */ void procMove(); + /* 808423DC */ void procStopInit(); + /* 808425BC */ void procStop(); + /* 80842878 */ void procTurnInit(int); + /* 80842AB0 */ void procTurn(); + /* 80843008 */ void procJumpInit(int); + /* 808432E0 */ void procJump(); + /* 80843604 */ void procLandInit(f32, int); + /* 80843770 */ void procLand(); + /* 808438AC */ void procLargeDamageInit(); + /* 8084396C */ void procLargeDamage(); + /* 808439C8 */ void procToolDemoInit(); + /* 80843A44 */ void procToolDemo(); + /* 80843BFC */ void searchSceneChangeArea(fopAc_ac_c*); + /* 80843C74 */ void execute(); + /* 80844590 */ void draw(); + /* 8084478C */ ~daHorse_c(); + /* 80844CB0 */ daHorse_c(); + + bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; } + bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; } + bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } + bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; } + + static u8 const m_footJointTable[8]; + static f32 const m_callLimitDistance2; + +private: + /* 0x0568 */ u8 field_0x568[8]; + /* 0x0570 */ J3DModel* field_0x570; + /* 0x0574 */ void* field_0x574; + /* 0x0578 */ J3DFrameCtrl field_0x578; + /* 0x058C */ int field_0x58c; + /* 0x0590 */ u8 field_0x590[4]; + /* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3]; + /* 0x05AC */ void* field_0x5ac; + /* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3]; + /* 0x05F8 */ u8 field_0x5f8[4]; + /* 0x05FC */ dBgS_AcchCir field_0x5fc[3]; + /* 0x06BC */ dBgS_Acch field_0x6bc; + /* 0x0894 */ dCcD_Stts field_0x894; + /* 0x08D0 */ dBgS_HorseLinChk field_0x8d0; + /* 0x0940 */ dCcD_Cyl field_0x940[3]; + /* 0x0CF4 */ dCcD_Cyl field_0xcf4; + /* 0x0E30 */ dCcD_Cyl field_0xe30; + /* 0x0F6C */ dCcD_Sph field_0xf6c; + /* 0x10A4 */ Z2CreatureRide field_0x10a4; + /* 0x1140 */ u8 field_0x1140[0x10]; + /* 0x1150 */ daHorseRein_c field_0x1150[3]; + /* 0x11C8 */ u8 field_0x11c8[0x40]; + /* 0x1208 */ dMsgFlow_c field_0x1208; + /* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep; + /* 0x125C */ u8 field_0x125c[0xC8]; + /* 0x1324 */ daHorseFootData_c mFootData[4]; + /* 0x16B4 */ u8 field_0x16b4; + /* 0x16B5 */ u8 field_0x16b5[3]; + /* 0x16B8 */ u8 field_0x16b8; + /* 0x16B9 */ u8 field_0x16b9[2]; + /* 0x16BB */ u8 mRodeoPointCnt; + /* 0x16BC */ u8 field_0x16bc[0x36]; + /* 0x16F2 */ s16 mAimNeckAngleY; + /* 0x16F4 */ u8 field_0x16f4[0xA]; + /* 0x16FC */ s16 mDemoMoveAngle; + /* 0x16FE */ u8 field_0x16fe[4]; + /* 0x1702 */ s16 field_0x1702; + /* 0x1704 */ u8 field_0x1704[2]; + /* 0x1706 */ s16 mCowHitAngle; + /* 0x1708 */ s16 mCowHit; + /* 0x170A */ u8 field_0x170a[0x1E]; + /* 0x1728 */ int field_0x1728; + /* 0x172C */ u8 field_0x172c[0x14]; + /* 0x1740 */ u32 field_0x1740; + /* 0x1744 */ u32 mStateFlg0; + /* 0x1748 */ u32 mResetStateFlg0; + /* 0x174C */ u32 mEndResetStateFlg0; + /* 0x1750 */ f32 mMorfFrame; + /* 0x1754 */ u8 field_0x1754[0x14]; + /* 0x1768 */ f32 field_0x1768; + /* 0x176C */ f32 field_0x176c; + /* 0x1770 */ f32 field_0x1770; + /* 0x1774 */ u8 field_0x1774[0x14]; + /* 0x1788 */ f32 mDemoStickR; + /* 0x178C */ f32 mNormalMaxSpeedF; + /* 0x1790 */ f32 mLashMaxSpeedF; + /* 0x1794 */ u8 field_0x1794[0x30]; + /* 0x17C4 */ cXyz mDemoPos0; +}; #endif /* D_A_HORSE_H */ diff --git a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h index 3326ee208e7..0f5478c59da 100644 --- a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h +++ b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h @@ -1,6 +1,53 @@ #ifndef D_A_E_WB_H #define D_A_E_WB_H +#include "Z2AudioLib/Z2Creature.h" #include "dolphin/types.h" +#include "rel/d/a/d_a_horse/d_a_horse.h" + +class e_wb_class : public fopAc_ac_c { +public: + BOOL checkWait(); + void setPlayerRideNow(); + void setPlayerRide(); + void getOff(); + BOOL checkDownDamage(); + u8 checkNormalRideMode() const; + void setRunRideMode(); + +private: + /* 0x0568 */ u8 field_0x568[0x4C]; + /* 0x05B4 */ s16 field_0x5b4; + /* 0x05B6 */ u8 unk1462[9]; + /* 0x05BF */ bool field_0x5bf; + /* 0x05C0 */ u8 field_0x5c0[0x20]; + /* 0x05E0 */ void* field_0x5e0; + /* 0x05E4 */ u8 field_0x5e4[8]; + /* 0x05EC */ Z2CreatureRide mZ2Ride; + /* 0x0688 */ u8 unk1673[6]; + /* 0x068E */ s16 field_0x68e; + /* 0x0690 */ s16 field_0x690; + /* 0x0692 */ u16 field_0x692; + /* 0x0694 */ u8 unk1684[0xc]; + /* 0x06A0 */ s16 field_0x6a0; + /* 0x06A2 */ u8 field_0x6a2[0xc]; + /* 0x06AE */ s16 field_0x6ae; + /* 0x06B0 */ s16 field_0x6b0; + /* 0x06B2 */ u8 field_0x6b2[0xc]; + /* 0x06BE */ u16 field_0x6be; + /* 0x06C0 */ u8 field_0x6c0[0xdd]; + /* 0x079D */ u8 field_0x79d; + /* 0x079E */ u8 field_0x79e[0x4e]; + /* 0x07EC */ dBgS_Acch field_0x7ec; + /* 0x09C4 */ cXyz field_0x9c4; + /* 0x09D0 */ u8 field_0x9d0[0xa5f]; + /* 0x142F */ u8 field_0x142f; + /* 0x1430 */ u8 field_0x1430; + /* 0x1432 */ s16 field_0x1432; + /* 0x1434 */ u8 field_0x1434[0x250]; + /* 0x1684 */ f32 field_0x1684; + /* 0x1688 */ u8 field_0x1688[0x16]; + /* 0x169E */ s16 field_0x169e; +}; #endif /* D_A_E_WB_H */ diff --git a/libs/JSystem/J2DGraph/J2DScreen.cpp b/libs/JSystem/J2DGraph/J2DScreen.cpp index 11c5d58bf42..11318c75e98 100644 --- a/libs/JSystem/J2DGraph/J2DScreen.cpp +++ b/libs/JSystem/J2DGraph/J2DScreen.cpp @@ -4,6 +4,7 @@ // #include "JSystem/J2DGraph/J2DScreen.h" +#include "JSystem/JGeometry.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -247,6 +248,19 @@ SECTION_SDATA2 static f32 lit_1563[1 + 1 /* padding */] = { }; /* 802F8498-802F8540 2F2DD8 00A8+00 0/0 59/59 4/4 .text __ct__9J2DScreenFv */ +#ifdef NONMATCHING +J2DScreen::J2DScreen() + : J2DPane(NULL, true, 'root', JGeometry::TBox2(0.0f, 0.0f, 640.0f, 480.0f)) { + field_0x114 = -1; + _4 = -1; + mScissor = false; + mMaterialNum = 0; + mMaterials = NULL; + field_0x108 = NULL; + field_0x10c = NULL; + mNameTable = NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -255,6 +269,7 @@ asm J2DScreen::J2DScreen() { #include "asm/JSystem/J2DGraph/J2DScreen/__ct__9J2DScreenFv.s" } #pragma pop +#endif /* 802F8540-802F85A8 2F2E80 0068+00 1/0 0/0 0/0 .text __dt__9J2DScreenFv */ #pragma push diff --git a/libs/JSystem/J3DGraphLoader/J3DAnmLoader.cpp b/libs/JSystem/J3DGraphLoader/J3DAnmLoader.cpp index 96f7494548e..7bccd2a5088 100644 --- a/libs/JSystem/J3DGraphLoader/J3DAnmLoader.cpp +++ b/libs/JSystem/J3DGraphLoader/J3DAnmLoader.cpp @@ -283,7 +283,7 @@ SECTION_SDATA2 static f32 lit_889[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DAnmLoaderDataBase::load(void const* param_0, J3DAnmLoaderDataBaseFlag param_1) { +asm void* J3DAnmLoaderDataBase::load(void const* param_0, J3DAnmLoaderDataBaseFlag param_1) { nofralloc #include "asm/JSystem/J3DGraphLoader/J3DAnmLoader/load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag.s" } diff --git a/libs/Z2AudioLib/Z2SceneMgr.cpp b/libs/Z2AudioLib/Z2SceneMgr.cpp index 7bcc9989c3f..6666fd36310 100644 --- a/libs/Z2AudioLib/Z2SceneMgr.cpp +++ b/libs/Z2AudioLib/Z2SceneMgr.cpp @@ -124,7 +124,7 @@ extern "C" static void dComIfGs_isSaveSwitch__Fi(); extern "C" void resetCrowdSize__7Z2SeMgrFv(); extern "C" void setTwilightGateVol__8Z2SeqMgrFf(); extern "C" void setWindStoneVol__8Z2SeqMgrFfUl(); -extern "C" void __ct__10JAISoundIDFUl(); +extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1); extern "C" void sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb(); extern "C" void framework__10Z2SceneMgrFv(); extern "C" void load1stDynamicWave__10Z2SceneMgrFv(); @@ -875,8 +875,9 @@ asm void Z2SeqMgr::setWindStoneVol(f32 param_0, u32 param_1) { #pragma pop /* 802B9B60-802B9B68 -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */ -JAISoundID::JAISoundID(u32 id) { - mId = id; +// JAISoundID::JAISoundID(u32 id) { +extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1) { + *(u32*)param_0 = (u32)(param_1); } /* 802B9B68-802B9C50 2B44A8 00E8+00 1/1 0/0 0/0 .text diff --git a/libs/Z2AudioLib/Z2SoundHandles.cpp b/libs/Z2AudioLib/Z2SoundHandles.cpp index 3449f798be3..c475fabdc54 100644 --- a/libs/Z2AudioLib/Z2SoundHandles.cpp +++ b/libs/Z2AudioLib/Z2SoundHandles.cpp @@ -71,7 +71,7 @@ extern "C" extern u8 data_80451348[8]; // Declarations: // -inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {} +// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {} inline JAISoundID JAISound::getID() const { return JAISoundID((u32)soundID); diff --git a/rel/d/a/d_a_horse/d_a_horse.cpp b/rel/d/a/d_a_horse/d_a_horse.cpp index 270dc74faaf..22c9a94e35e 100644 --- a/rel/d/a/d_a_horse/d_a_horse.cpp +++ b/rel/d/a/d_a_horse/d_a_horse.cpp @@ -4,6 +4,7 @@ // #include "rel/d/a/d_a_horse/d_a_horse.h" +#include "d/a/d_a_player.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,26 +12,6 @@ // Types: // -struct request_of_phase_process_class {}; - -struct Quaternion {}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80266F48 */ void normalizeZP(); - /* 80267128 */ void atan2sX_Z() const; - /* 80267150 */ void atan2sY_XZ() const; - /* 8083836C */ ~cXyz(); - /* 808392D8 */ cXyz(); - - static f32 Zero[3]; - static u8 BaseX[12]; -}; - struct mDoMtx_stack_c { /* 8000CD64 */ void transS(cXyz const&); /* 8000CD9C */ void transM(f32, f32, f32); @@ -40,36 +21,11 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct J3DMaterialTable {}; - -struct J3DAnmTexPattern {}; - struct mDoExt_btpAnm { /* 8000D54C */ void init(J3DMaterialTable*, J3DAnmTexPattern*, int, int, f32, s16, s16); /* 8000D5E8 */ void entry(J3DMaterialTable*, s16); }; -struct mDoExt_MtxCalcOldFrame { - /* 8000F848 */ void initOldFrameMorf(f32, u16, u16); -}; - -struct mDoExt_AnmRatioPack { - /* 808453FC */ ~mDoExt_AnmRatioPack(); - /* 80845438 */ mDoExt_AnmRatioPack(); -}; - -struct mDoExt_3DlineMat_c {}; - -struct mDoExt_3DlineMatSortPacket { - /* 80014738 */ void setMat(mDoExt_3DlineMat_c*); -}; - -struct ResTIMG {}; - -struct _GXColor {}; - -struct dKy_tevstr_c {}; - struct mDoExt_3DlineMat1_c { /* 80013360 */ void init(u16, u16, ResTIMG*, int); /* 8001373C */ void update(int, f32, _GXColor&, u16, dKy_tevstr_c*); @@ -79,167 +35,19 @@ struct mDoCPd_c { static u8 m_cpadInfo[256]; }; -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct fopAcM_wt_c { - /* 8001DD84 */ void waterCheck(cXyz const*); - - static f32 mWaterY[1 + 1 /* padding */]; -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static u8 mGndCheck[84]; - static f32 mGroundY; -}; - struct daTagHstop_c { static u8 m_top[4 + 4 /* padding */]; }; -struct daPy_py_c { - /* 8015F4F0 */ void setLookPos(cXyz*); -}; - -struct daPy_frameCtrl_c { - /* 8015E4CC */ void checkAnmEnd(); - /* 8015E510 */ void updateFrame(); - /* 8015E544 */ void setFrameCtrl(u8, s16, s16, f32, f32); - /* 80845354 */ ~daPy_frameCtrl_c(); - /* 808453B0 */ daPy_frameCtrl_c(); -}; - -struct daPy_actorKeep_c { - /* 8015EC48 */ void setActor(); - /* 8015ECFC */ void clearData(); -}; - struct daHorse_hio_c0 { static u8 const m[292]; }; -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084318 */ void ResetAtHit(); - /* 80084460 */ void ChkTgHit(); -}; - -struct daHorse_c { - /* 80838498 */ void coHitCallbackBoarJump(fopAc_ac_c*); - /* 80838798 */ void coHitCallbackBoarHit(fopAc_ac_c*, dCcD_GObjInf*); - /* 80838904 */ void coHitCallbackCowHit(fopAc_ac_c*); - /* 80838B78 */ void modelCallBack(int); - /* 80838F98 */ void createHeap(); - /* 8083940C */ void checkEnding(); - /* 80839498 */ void create(); - /* 80839D1C */ void setBasAnime(int); - /* 80839EBC */ void resetBasAnime(); - /* 80839ED4 */ void setDoubleAnime(f32, f32, f32, u16, u16, f32); - /* 8083A20C */ void setSingleAnime(u16, f32, f32, s16, f32, int); - /* 8083A3C4 */ void animePlay(); - /* 8083A5AC */ void checkDemoAction(); - /* 8083A890 */ void setStickRodeoMove(); - /* 8083AC7C */ void setStickCallMove(); - /* 8083ACEC */ void setDemoMoveData(u32*, cXyz const*); - /* 8083AEC0 */ void setDemoData(); - /* 8083B578 */ void acceptPlayerRide(); - /* 8083B600 */ void setStickData(); - /* 8083B828 */ void setTurnStartVibration(); - /* 8083B82C */ void setTurnVibration(); - /* 8083B830 */ void setMoveAnime(f32); - /* 8083BF48 */ void checkHorseNoMove(int); - /* 8083CA80 */ void checkTurnPlayerState(); - /* 8083CB38 */ void setSpeedAndAngle(); - /* 8083D748 */ void checkWaitTurn() const; - /* 8083D774 */ void setRoomInfo(int); - /* 8083D918 */ void setBodyPart(); - /* 8083D9D8 */ void setMatrix(); - /* 8083DC58 */ void setDashEffect(u32*); - /* 8083DEEC */ void setEffect(); - /* 8083E4D8 */ void setCollision(); - /* 8083E6E8 */ void autoGroundHit(); - /* 8083E760 */ void setTailAngle(); - /* 8083E8A4 */ void setNeckAngle(); - /* 8083EA78 */ void copyFootMatrix(); - /* 8083EB10 */ void setFootMatrix(); - /* 8083ED88 */ void setLegAngle(f32, int, int, s16*); - /* 8083F3B0 */ void footBgCheck(); - /* 8083F9AC */ void setReinPosMoveInit(int); - /* 8083FDAC */ void copyReinPos(); - /* 8083FEB4 */ void setReinPosHandSubstance(int); - /* 8084010C */ void setReinPosNormalSubstance(); - /* 808402F8 */ void bgCheck(); - /* 80840714 */ void checkSpecialWallHitSubstance(cXyz const&) const; - /* 808407B0 */ void setServiceWaitTimer(); - /* 80840800 */ void checkServiceWaitAnime(); - /* 80840844 */ void checkTurnInput(); - /* 808408F0 */ void checkTgHitTurn(); - /* 808409C0 */ void checkTurnAfterFastMove(f32); - /* 80840B28 */ void setNeckAnimeMorf(); - /* 80840B88 */ void setNeckAnime(u16, f32, f32, s16); - /* 80840CA4 */ void resetNeckAnime(); - /* 80840CE4 */ void setLashCnt(); - /* 80840FE0 */ void setTalkModeWolf(); - /* 80841084 */ void setBoarHit(fopAc_ac_c*, int); - /* 8084116C */ void savePos(); - /* 808411D0 */ void callHorseSubstance(cXyz const*); - /* 80841468 */ void setHorsePosAndAngleSubstance(cXyz const*, s16); - /* 808415B4 */ void checkPlayerHeavy(); - /* 80841628 */ void setTgCoGrp(u32, u32); - /* 80841698 */ void onRideFlgSubstance(); - /* 808416D4 */ void offRideFlgSubstance(); - /* 80841708 */ void procWaitInit(); - /* 808417B8 */ void procWait(); - /* 80841F04 */ void procMoveInit(); - /* 80841F80 */ void procMove(); - /* 808423DC */ void procStopInit(); - /* 808425BC */ void procStop(); - /* 80842878 */ void procTurnInit(int); - /* 80842AB0 */ void procTurn(); - /* 80843008 */ void procJumpInit(int); - /* 808432E0 */ void procJump(); - /* 80843604 */ void procLandInit(f32, int); - /* 80843770 */ void procLand(); - /* 808438AC */ void procLargeDamageInit(); - /* 8084396C */ void procLargeDamage(); - /* 808439C8 */ void procToolDemoInit(); - /* 80843A44 */ void procToolDemo(); - /* 80843BFC */ void searchSceneChangeArea(fopAc_ac_c*); - /* 80843C74 */ void execute(); - /* 80844590 */ void draw(); - /* 8084478C */ ~daHorse_c(); - /* 80844CB0 */ daHorse_c(); - - static u8 const m_footJointTable[8]; - static f32 const m_callLimitDistance2; -}; - -struct daHorseRein_c { - /* 80837F2C */ void setReinPos(int); - /* 808383A8 */ void setReinPosPart(int); - /* 80844FB0 */ ~daHorseRein_c(); - /* 80844FEC */ daHorseRein_c(); -}; - -struct daHorseFootData_c { - /* 80844F70 */ ~daHorseFootData_c(); - /* 80844FAC */ daHorseFootData_c(); -}; - struct daCow_c { /* 8065CFBC */ void isAngry(); /* 8065D0B8 */ void setAngryHit(); }; -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - struct daAlink_c { struct daAlink_ANM {}; @@ -261,38 +69,10 @@ struct dVibration_c { /* 8006FD94 */ void StopQuake(int); }; -struct dSv_horse_place_c { - /* 80032C64 */ void set(char const*, cXyz const&, s16, s8); -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dStage_roomControl_c { - static u8 mDemoArcName[10 + 2 /* padding */]; -}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); - /* 8003C400 */ void getIDRes(char const*, u16, dRes_info_c*, int); -}; - struct dPath {}; struct dPa_levelEcallBack {}; -struct csXyz {}; - struct dPa_control_c { struct level_c { /* 8004B918 */ void getEmitter(u32); @@ -303,28 +83,6 @@ struct dPa_control_c { _GXColor const*, cXyz const*, f32); }; -struct dBgS { - /* 80074B98 */ void GetExitId(cBgS_PolyInfo const&); - /* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 80074C6C */ void GetHorseNoEntry(cBgS_PolyInfo const&); - /* 80074CBC */ void GetSpecialCode(cBgS_PolyInfo const&); - /* 80074EF0 */ void GetGroundCode(cBgS_PolyInfo const&); - /* 80075100 */ void GetRoomId(cBgS_PolyInfo const&); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 808452E4 */ ~dBgS_AcchCir(); -}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - struct dPaPo_c { /* 80050C9C */ void init(dBgS_Acch*, f32, f32); }; @@ -338,13 +96,6 @@ struct dPaPoF_c { static u8 m_emitterFourData[60 + 28 /* padding */]; }; -struct dMsgFlow_c { - /* 80249F00 */ dMsgFlow_c(); - /* 80249F48 */ ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); - /* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int); -}; - struct dEvt_control_c { /* 80042468 */ void reset(); }; @@ -357,10 +108,6 @@ struct dEvent_manager_c { /* 800483E0 */ void getGoal(); }; -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - struct dDemo_object_c { /* 80039088 */ void getActor(u8); }; @@ -377,50 +124,10 @@ struct dComIfG_play_c { /* 8002C97C */ void getLayerNo(int); }; -struct cCcD_Obj {}; - struct dCcMassS_Mng { /* 80085D98 */ void Set(cCcD_Obj*, u8); }; -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_SrcCyl {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80083830 */ void Move(); - /* 80845218 */ ~dCcD_GStts(); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); - /* 80084954 */ void MoveCAt(cXyz&); - /* 808450C8 */ ~dCcD_Cyl(); - /* 80845194 */ dCcD_Cyl(); -}; - -struct dBgS_PolyPassChk { - /* 80078EF8 */ void SetHorse(); -}; - -struct dBgS_LinChk { - /* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*); -}; - -struct dBgS_HorseLinChk { - /* 80078460 */ dBgS_HorseLinChk(); - /* 800784BC */ ~dBgS_HorseLinChk(); -}; - struct dBgS_HorseAcch { /* 80845274 */ ~dBgS_HorseAcch(); }; @@ -436,81 +143,18 @@ struct dAttList_c { struct camera_class {}; -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 80844FF0 */ ~cM3dGSph(); -}; - -struct cM3dGPla { - /* 80838750 */ ~cM3dGPla(); -}; - -struct cM3dGCyl { - /* 8026F1DC */ void SetC(cXyz const&); - /* 8026F1F8 */ void SetH(f32); - /* 8026F200 */ void SetR(f32); - /* 80845038 */ ~cM3dGCyl(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 80845080 */ ~cM3dGAab(); -}; - struct cCcS { /* 80264BA8 */ void Set(cCcD_Obj*); }; -struct cCcD_Stts { - /* 8026395C */ void ClrCcMove(); -}; - -struct cCcD_ObjTg { - /* 80264894 */ void SetGrp(u32); -}; - -struct cCcD_ObjCo { - /* 8026491C */ void SetVsGrp(u32); -}; - -struct cCcD_GStts { - /* 80844B44 */ ~cCcD_GStts(); -}; - -struct cBgS_LinChk {}; - -struct cBgS { - /* 800743B4 */ void LineCross(cBgS_LinChk*); - /* 80074660 */ void ChkPolySafe(cBgS_PolyInfo const&); - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct _GXTexObj {}; - struct Z2SeqMgr { /* 802AF49C */ void subBgmStart(u32); }; -struct JAISoundID {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; -struct Z2CreatureRide { - /* 802C4FFC */ Z2CreatureRide(); - /* 802C5114 */ ~Z2CreatureRide(); - /* 802C520C */ void init(Vec*, Vec*, u8, u8); -}; - -struct Z2Creature { - /* 802C0628 */ void initAnime(void*, bool, f32, f32); - /* 802C06D0 */ void updateAnime(f32, f32); -}; - struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; @@ -519,57 +163,6 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct J3DTransformInfo {}; - -struct J3DSys { - static u8 mCurrentMtx[48]; -}; - -struct J3DMtxCalcNoAnmBase { - /* 80839348 */ ~J3DMtxCalcNoAnmBase(); -}; - -template -struct J3DMtxCalcNoAnm {}; -/* J3DMtxCalcNoAnm */ -struct J3DMtxCalcNoAnm__template0 { - /* 808392DC */ void func_808392DC(void* _this); - /* 80844BB4 */ void func_80844BB4(void* _this, Vec const&, f32 const (&)[3][4]); - /* 80844BDC */ void func_80844BDC(void* _this); -}; - -struct J3DMtxCalcJ3DSysInitMaya { - /* 8032ECAC */ void init(Vec const&, f32 const (&)[3][4]); -}; - -struct J3DMtxCalcCalcTransformMaya { - /* 8032EFBC */ void calcTransform(J3DTransformInfo const&); -}; - -struct J3DAnmTransform {}; - -struct J3DMtxCalc { - /* 808393A4 */ ~J3DMtxCalc(); - /* 80844B8C */ void setAnmTransform(u8, J3DAnmTransform*); - /* 80844B90 */ void setAnmTransform(J3DAnmTransform*); - /* 80844B94 */ bool getAnmTransform(u8); - /* 80844B9C */ bool getAnmTransform(); - /* 80844BA4 */ void setWeight(u8, f32); - /* 80844BA8 */ void getWeight(u8) const; - - static u8 mJoint[4]; -}; - -struct J3DModel {}; - -struct J3DJoint {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 8032842C */ void checkPass(f32); - /* 80845450 */ ~J3DFrameCtrl(); -}; - // // Forward References: // @@ -878,17 +471,6 @@ extern "C" void checkPass__12J3DFrameCtrlFf(); extern "C" void init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf(); extern "C" void calcTransform__27J3DMtxCalcCalcTransformMayaFRC16J3DTransformInfo(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXInverse(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXQuat(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECSubtract(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareMag(); -extern "C" void PSVECSquareDistance(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __construct_new_array(); @@ -913,8 +495,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void abs(); -extern "C" void strcmp(); extern "C" u8 const m_handLeftInSidePos__9daAlink_c[12]; extern "C" u8 const m_handRightInSidePos__9daAlink_c[12]; extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5]; @@ -941,16 +521,12 @@ extern "C" extern u8 g_env_light[4880]; extern "C" extern u8 g_meter2_info[248]; extern "C" f32 Zero__4cXyz[3]; extern "C" u8 BaseX__4cXyz[12]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_nan; extern "C" f32 mGroundY__11fopAcM_gc_c; extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; -extern "C" extern u8 struct_80450D64[4]; extern "C" u8 m_top__12daTagHstop_c[4 + 4 /* padding */]; extern "C" u8 m_object__7dDemo_c[4]; -extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" u8 mJoint__10J3DMtxCalc[4]; extern "C" void isAngry__7daCow_cFv(); @@ -1122,7 +698,8 @@ asm void daHorseRein_c::setReinPos(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__4cXyzFv.s" } @@ -1510,7 +1087,8 @@ asm void daHorse_c::coHitCallbackBoarJump(fopAc_ac_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGPla::~cM3dGPla() { +// asm cM3dGPla::~cM3dGPla() { +extern "C" asm void __dt__8cM3dGPlaFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__8cM3dGPlaFv.s" } @@ -1627,7 +1205,8 @@ asm void daHorse_c::createHeap() { #pragma pop /* 808392D8-808392DC 001498 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { +// cXyz::cXyz() +extern "C" void __ct__4cXyzFv() { /* empty function */ } @@ -1646,7 +1225,8 @@ extern "C" asm void func_808392DC(void* _this) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { +// asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { +extern "C" asm void __dt__19J3DMtxCalcNoAnmBaseFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__19J3DMtxCalcNoAnmBaseFv.s" } @@ -1656,7 +1236,8 @@ asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DMtxCalc::~J3DMtxCalc() { +// asm J3DMtxCalc::~J3DMtxCalc() { +extern "C" asm void __dt__10J3DMtxCalcFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__10J3DMtxCalcFv.s" } @@ -3520,7 +3101,8 @@ static asm void daHorse_Delete(daHorse_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__10cCcD_GSttsFv.s" } @@ -3672,14 +3254,16 @@ daHorseFootData_c::daHorseFootData_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm daHorseRein_c::~daHorseRein_c() { +// asm daHorseRein_c::~daHorseRein_c() { +extern "C" asm void __dt__13daHorseRein_cFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__13daHorseRein_cFv.s" } #pragma pop /* 80844FEC-80844FF0 00D1AC 0004+00 1/1 0/0 0/0 .text __ct__13daHorseRein_cFv */ -daHorseRein_c::daHorseRein_c() { +// daHorseRein_c::daHorseRein_c() { +extern "C" void __ct__13daHorseRein_cFv() { /* empty function */ } @@ -3687,7 +3271,8 @@ daHorseRein_c::daHorseRein_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__8cM3dGSphFv.s" } @@ -3697,7 +3282,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGCyl::~cM3dGCyl() { +// asm cM3dGCyl::~cM3dGCyl() { +extern "C" asm void __dt__8cM3dGCylFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__8cM3dGCylFv.s" } @@ -3707,7 +3293,8 @@ asm cM3dGCyl::~cM3dGCyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__8cM3dGAabFv.s" } @@ -3717,7 +3304,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Cyl::~dCcD_Cyl() { +// asm dCcD_Cyl::~dCcD_Cyl() { +extern "C" asm void __dt__8dCcD_CylFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__8dCcD_CylFv.s" } @@ -3727,7 +3315,8 @@ asm dCcD_Cyl::~dCcD_Cyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Cyl::dCcD_Cyl() { +// asm dCcD_Cyl::dCcD_Cyl() { +extern "C" asm void __ct__8dCcD_CylFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__ct__8dCcD_CylFv.s" } @@ -3737,7 +3326,8 @@ asm dCcD_Cyl::dCcD_Cyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__10dCcD_GSttsFv.s" } @@ -3757,7 +3347,8 @@ asm dBgS_HorseAcch::~dBgS_HorseAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__12dBgS_AcchCirFv.s" } @@ -3767,7 +3358,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm daPy_frameCtrl_c::~daPy_frameCtrl_c() { +// asm daPy_frameCtrl_c::~daPy_frameCtrl_c() { +extern "C" asm void __dt__16daPy_frameCtrl_cFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__16daPy_frameCtrl_cFv.s" } @@ -3807,7 +3399,8 @@ asm mDoExt_AnmRatioPack::mDoExt_AnmRatioPack() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { +// asm J3DFrameCtrl::~J3DFrameCtrl() { +extern "C" asm void __dt__12J3DFrameCtrlFv() { nofralloc #include "asm/rel/d/a/d_a_horse/d_a_horse/__dt__12J3DFrameCtrlFv.s" } diff --git a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp index d2d9dfc92da..b149a30ec29 100644 --- a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp +++ b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp @@ -15,10 +15,6 @@ namespace std { /* 807E2350 */ void fabsf(f32); }; -struct request_of_phase_process_class {}; - -struct Vec {}; - struct mDoMtx_stack_c { /* 8000CD9C */ void transM(f32, f32, f32); /* 8000CE38 */ void scaleM(f32, f32, f32); @@ -28,8 +24,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct _GXColor {}; - struct mDoGph_gInf_c { /* 80007FD8 */ void fadeOut(f32, _GXColor&); /* 807DFAB4 */ void fadeIn(f32, _GXColor&); @@ -37,14 +31,6 @@ struct mDoGph_gInf_c { struct mDoExt_McaMorfCallBack2_c {}; -struct mDoExt_McaMorfCallBack1_c {}; - -struct J3DAnmTransform {}; - -struct J3DModelData {}; - -struct Z2Creature {}; - struct mDoExt_McaMorfSO { /* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*, mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, @@ -56,16 +42,6 @@ struct mDoExt_McaMorfSO { /* 80011310 */ void stopZelAnime(); }; -struct mDoExt_3DlineMat_c {}; - -struct mDoExt_3DlineMatSortPacket { - /* 80014738 */ void setMat(mDoExt_3DlineMat_c*); -}; - -struct ResTIMG {}; - -struct dKy_tevstr_c {}; - struct mDoExt_3DlineMat1_c { /* 80013360 */ void init(u16, u16, ResTIMG*, int); /* 80013FB0 */ void update(int, _GXColor&, dKy_tevstr_c*); @@ -81,39 +57,6 @@ struct himo_s { /* 807E1D2C */ himo_s(); }; -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 807D2B48 */ ~cXyz(); - /* 807E27E8 */ cXyz(f32, f32, f32); - /* 807E24FC */ cXyz(); - /* 807E235C */ cXyz(cXyz const&); - /* 807E24C8 */ void set(f32, f32, f32); - /* 807E25EC */ void abs() const; - /* 807E2808 */ void operator=(cXyz const&); - /* 807E2824 */ void operator+=(Vec const&); -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static f32 mGroundY; -}; - -struct e_wb_class {}; - -struct daPy_py_c { - /* 807E2318 */ void changeDemoPos0(cXyz const*); - /* 807E2334 */ void changeDemoMode(u32, int, int, s16); - /* 807E2348 */ void changeDemoParam2(s16); - /* 807E2404 */ void cancelOriginalDemo(); - /* 807E2444 */ void changeOriginalDemo(); -}; - struct daObjCRVSTEEL_c { /* 80BD5BFC */ void OpenSet(f32, f32); /* 80BD5C18 */ void CloseSet(f32); @@ -123,15 +66,6 @@ struct daObjCRVGATE_c { /* 80BD245C */ void SetB_Close(); }; -struct daHorse_c { - /* 807E27BC */ void cancelOriginalDemo(); - /* 807E27F8 */ void onDemoJumpDistance(f32, f32); - /* 807E28B8 */ void changeDemoPos0(cXyz const*); - /* 807E28D4 */ void changeDemoMode(u32, int); - /* 807E28E0 */ void setHorsePosAndAngle(cXyz const*, s16); - /* 807E2964 */ void changeOriginalDemo(); -}; - struct daE_WB_HIO_c { /* 807D248C */ daE_WB_HIO_c(); /* 807E20DC */ ~daE_WB_HIO_c(); @@ -148,35 +82,8 @@ struct dVibration_c { /* 8006FD94 */ void StopQuake(int); }; -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 8003498C */ void onEventBit(u16); - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - struct dPa_levelEcallBack {}; -struct csXyz { - /* 802673F4 */ csXyz(s16, s16, s16); - /* 807E2090 */ csXyz(); - /* 807D79B0 */ ~csXyz(); - /* 807E24AC */ void operator=(csXyz const&); -}; - struct dPa_control_c { struct level_c { /* 8004B918 */ void getEmitter(u32); @@ -195,11 +102,6 @@ struct dMsgObject_c { /* 8023822C */ void getStatus(); }; -struct dEvt_info_c { - /* 807E24D8 */ void onCondition(u16); - /* 807E24E8 */ void checkCommandDemoAccrpt(); -}; - struct dEvt_control_c { /* 80042468 */ void reset(); /* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int); @@ -213,45 +115,12 @@ struct dEvent_manager_c { /* 8004817C */ void cutEnd(int); }; -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - struct dComIfG_play_c { /* 8002C97C */ void getLayerNo(int); }; struct dCcU_AtInfo {}; -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); - /* 807E1E04 */ ~dCcD_Sph(); - /* 807E1ED0 */ dCcD_Sph(); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80083830 */ void Move(); - /* 807E1F54 */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 800842C0 */ void ChkAtHit(); - /* 80084358 */ void GetAtHitObj(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); - /* 80084658 */ void ChkCoHit(); - /* 800846F0 */ void GetCoHitObj(); -}; - struct dCamera_c { /* 801614AC */ void Start(); /* 801614D0 */ void Stop(); @@ -261,100 +130,12 @@ struct dCamera_c { /* 80180C18 */ void Reset(cXyz, cXyz); }; -struct dBgS_PolyPassChk { - /* 80078E68 */ void SetObj(); -}; - -struct dBgS_ObjGndChk_Spl { - /* 800777B0 */ dBgS_ObjGndChk_Spl(); - /* 80077848 */ ~dBgS_ObjGndChk_Spl(); -}; - -struct dBgS_ObjAcch { - /* 807E1FB0 */ ~dBgS_ObjAcch(); -}; - -struct dBgS_LinChk { - /* 80077C68 */ dBgS_LinChk(); - /* 80077CDC */ ~dBgS_LinChk(); - /* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*); -}; - -struct dBgS_GndChk { - /* 8007757C */ dBgS_GndChk(); - /* 800775F0 */ ~dBgS_GndChk(); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 807E2020 */ ~dBgS_AcchCir(); -}; - -struct dBgS {}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - struct camera_class {}; -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 8026F708 */ void SetR(f32); - /* 807E1D74 */ ~cM3dGSph(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 807E1DBC */ ~cM3dGAab(); -}; - -struct cCcD_Obj { - /* 80263A48 */ void GetAc(); -}; - struct cCcS { /* 80264BA8 */ void Set(cCcD_Obj*); }; -struct cCcD_ObjTg { - /* 80264894 */ void SetGrp(u32); -}; - -struct cCcD_GStts { - /* 807E2094 */ ~cCcD_GStts(); -}; - -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct cBgS_LinChk {}; - -struct cBgS_GndChk { - /* 80267D28 */ void SetPos(cXyz const*); - /* 80267D0C */ void SetPos(Vec const*); -}; - -struct cBgS { - /* 800743B4 */ void LineCross(cBgS_LinChk*); - /* 800744A0 */ void GroundCross(cBgS_GndChk*); - /* 80074618 */ void GetActorPointer(int) const; -}; - -struct actor_place { - /* 807E2468 */ void operator=(actor_place const&); -}; - -struct _GXTexObj {}; - struct Z2SeqMgr { /* 802AF010 */ void bgmStart(u32, u32, s32); /* 802AF408 */ void bgmStop(u32, s32); @@ -364,20 +145,11 @@ struct Z2SeqMgr { /* 802AFEDC */ void bgmStreamStop(u32); }; -struct JAISoundID { - /* 807E27D0 */ JAISoundID(u32); -}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; -struct Z2CreatureRide { - /* 802C4FFC */ Z2CreatureRide(); - /* 802C520C */ void init(Vec*, Vec*, u8, u8); -}; - struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; @@ -386,25 +158,6 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct J3DSys { - static u8 mCurrentMtx[48]; -}; - -struct J3DModel {}; - -struct J3DJoint {}; - -struct J3DFrameCtrl { - /* 8032842C */ void checkPass(f32); -}; - // // Forward References: // @@ -513,7 +266,7 @@ extern "C" void onCondition__11dEvt_info_cFUs(); extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv(); extern "C" void __ct__4cXyzFv(); extern "C" static void fopAcM_SearchByName__Fs(); -extern "C" static void fopAcM_SearchByID__FUi(); +extern "C" static void fopAcM_SearchByID__FUi(unsigned int); extern "C" static void dComIfGp_getHorseActor__Fv(); extern "C" static void dComIfGp_getPlayer__Fi(); extern "C" static void dComIfGp_getCamera__Fi(); @@ -692,12 +445,6 @@ extern "C" void init__14Z2CreatureRideFP3VecP3VecUcUc(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareMag(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __ptmf_scall(); @@ -721,8 +468,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void abs(); -extern "C" void strcmp(); extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5]; extern "C" extern void* g_fopAc_Method[8]; extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; @@ -737,12 +482,10 @@ extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" extern u32 g_blackColor; extern "C" extern void* calc_mtx[1 + 1 /* padding */]; -extern "C" extern u32 __float_nan; extern "C" extern u8 struct_80450C98[4]; extern "C" f32 mGroundY__11fopAcM_gc_c; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -1601,7 +1344,8 @@ static asm void himo_control1(e_wb_class* param_0, cXyz* param_1, int param_2, s #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__4cXyzFv.s" } @@ -2487,7 +2231,8 @@ static asm void e_wb_b_ikki(e_wb_class* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm csXyz::~csXyz() { +// asm csXyz::~csXyz() { +extern "C" asm void __dt__5csXyzFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__5csXyzFv.s" } @@ -4739,7 +4484,8 @@ asm himo_s::himo_s() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__8cM3dGSphFv.s" } @@ -4749,7 +4495,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__8cM3dGAabFv.s" } @@ -4759,7 +4506,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Sph::~dCcD_Sph() { +// asm dCcD_Sph::~dCcD_Sph() { +extern "C" asm void __dt__8dCcD_SphFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__8dCcD_SphFv.s" } @@ -4769,7 +4517,8 @@ asm dCcD_Sph::~dCcD_Sph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Sph::dCcD_Sph() { +// asm dCcD_Sph::dCcD_Sph() { +extern "C" asm void __ct__8dCcD_SphFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__ct__8dCcD_SphFv.s" } @@ -4779,7 +4528,8 @@ asm dCcD_Sph::dCcD_Sph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__10dCcD_GSttsFv.s" } @@ -4789,7 +4539,8 @@ asm dCcD_GStts::~dCcD_GStts() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_ObjAcch::~dBgS_ObjAcch() { +// asm dBgS_ObjAcch::~dBgS_ObjAcch() { +extern "C" asm void __dt__12dBgS_ObjAcchFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__12dBgS_ObjAcchFv.s" } @@ -4799,14 +4550,16 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__12dBgS_AcchCirFv.s" } #pragma pop /* 807E2090-807E2094 00FCF0 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -csXyz::csXyz() { +// csXyz::csXyz() { +extern "C" void __ct__5csXyzFv() { /* empty function */ } @@ -4814,7 +4567,8 @@ csXyz::csXyz() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__dt__10cCcD_GSttsFv.s" } @@ -4945,7 +4699,8 @@ asm void std::fabsf(f32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::cXyz(cXyz const& param_0) { +// asm cXyz::cXyz(cXyz const& param_0) { +extern "C" asm void __ct__4cXyzFRC4cXyz() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__ct__4cXyzFRC4cXyz.s" } @@ -5047,7 +4802,8 @@ asm void actor_place::operator=(actor_place const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void csXyz::operator=(csXyz const& param_0) { +// asm void csXyz::operator=(csXyz const& param_0) { +extern "C" asm void __as__5csXyzFRC5csXyz() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__as__5csXyzFRC5csXyz.s" } @@ -5057,7 +4813,8 @@ asm void csXyz::operator=(csXyz const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::set(f32 param_0, f32 param_1, f32 param_2) { +// asm void cXyz::set(f32 param_0, f32 param_1, f32 param_2) { +extern "C" asm void set__4cXyzFfff() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/set__4cXyzFfff.s" } @@ -5077,14 +4834,15 @@ asm void dEvt_info_c::onCondition(u16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvt_info_c::checkCommandDemoAccrpt() { +asm bool dEvt_info_c::checkCommandDemoAccrpt() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/checkCommandDemoAccrpt__11dEvt_info_cFv.s" } #pragma pop /* 807E24FC-807E2500 01015C 0004+00 4/4 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { +// cXyz::cXyz() { +extern "C" void __ct__4cXyzFv() { /* empty function */ } @@ -5102,7 +4860,7 @@ static asm void fopAcM_SearchByName(s16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void fopAcM_SearchByID(unsigned int param_0) { +extern "C" static asm void fopAcM_SearchByID__FUi(unsigned int param_0) { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/fopAcM_SearchByID__FUi.s" } @@ -5162,7 +4920,8 @@ static asm void dMsgObject_isTalkNowCheck() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::abs() const { +// asm void cXyz::abs() const { +extern "C" asm void abs__4cXyzCFv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/abs__4cXyzCFv.s" } @@ -5229,7 +4988,8 @@ static asm void dComIfGp_getVibration() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::cXyz(f32 param_0, f32 param_1, f32 param_2) { +// asm cXyz::cXyz(f32 param_0, f32 param_1, f32 param_2) { +extern "C" asm void __ct__4cXyzFfff() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__ct__4cXyzFfff.s" } @@ -5250,7 +5010,8 @@ asm void daHorse_c::onDemoJumpDistance(f32 param_0, f32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::operator=(cXyz const& param_0) { +// asm void cXyz::operator=(cXyz const& param_0) { +extern "C" asm void __as__4cXyzFRC4cXyz() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__as__4cXyzFRC4cXyz.s" } @@ -5260,7 +5021,8 @@ asm void cXyz::operator=(cXyz const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::operator+=(Vec const& param_0) { +// asm void cXyz::operator+=(Vec const& param_0) { +extern "C" asm void __apl__4cXyzFRC3Vec() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/__apl__4cXyzFRC3Vec.s" } diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 153c21af875..8c397548c83 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -20,6 +20,7 @@ #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" #include "rel/d/a/d_a_crod/d_a_crod.h" +#include "rel/d/a/d_a_horse/d_a_horse.h" #include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" // @@ -6429,46 +6430,41 @@ asm void daAlink_c::setNeckAngle() { /* 800A2160-800A2198 09CAA0 0038+00 1/0 0/0 0/0 .text getStickAngleFromPlayerShape__9daAlink_cCFPs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getStickAngleFromPlayerShape(s16* param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/getStickAngleFromPlayerShape__9daAlink_cCFPs.s" +bool daAlink_c::getStickAngleFromPlayerShape(s16* param_0) const { + // inline uses literal + // if (checkInputOnR()) { + if (field_0x33ac > lit_6021) { + *param_0 = field_0x2fe2 - mCollisionRot.y; + return true; + } + *param_0 = 0; + return false; } -#pragma pop /* 800A2198-800A21E0 09CAD8 0048+00 42/42 0/0 0/0 .text commonLineCheck__9daAlink_cFP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/commonLineCheck__9daAlink_cFP4cXyzP4cXyz.s" +bool daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) { + mLinkLinChk.Set(param_0, param_1, this); + return dComIfG_Bgsp().LineCross(&mLinkLinChk); } -#pragma pop /* 800A21E0-800A2280 09CB20 00A0+00 18/18 0/0 2/2 .text * getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s" +s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) { + if ((param_1 != 0 || dComIfG_Bgsp().ChkPolySafe(param_0)) && + dComIfG_Bgsp().ChkMoveBG_NoDABg(param_0) && dComIfG_Bgsp().GetActorPointer(param_0)) { + return fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(param_0)); + } + return 0xFD; } -#pragma pop /* 800A2280-800A22E8 09CBC0 0068+00 2/2 0/0 0/0 .text checkGoronRide__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkGoronRide() { - nofralloc -#include "asm/d/a/d_a_alink/checkGoronRide__9daAlink_cFv.s" +fopAc_ac_c* daAlink_c::checkGoronRide() { + if (mLinkAcch.ChkGroundHit() && getMoveBGActorName(mLinkAcch.m_gnd, 0) == 0x21) { + return dComIfG_Bgsp().GetActorPointer(mLinkAcch.m_gnd); + } + return NULL; } -#pragma pop /* ############################################################################################## */ /* 80453224-80453228 001824 0004+00 1/1 0/0 0/0 .sdata2 @56018 */ @@ -8409,35 +8405,54 @@ asm void daAlink_c::handBgCheck() { #pragma pop /* 800A3C8C-800A3CE4 09E5CC 0058+00 11/11 0/0 0/0 .text setItemHeap__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRHeap* daAlink_c::setItemHeap() { - nofralloc -#include "asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s" +JKRHeap* daAlink_c::setItemHeap() { + if (!i_checkResetFlg0(RFLG0_UNK_4000)) { + field_0x2fa0 ^= 1; + i_onResetFlg0(RFLG0_UNK_4000); + } + return mItemHeap[field_0x2fa0].setAnimeHeap(); } -#pragma pop /* 800A3CE4-800A3D0C 09E624 0028+00 4/4 0/0 0/0 .text setIdxMask__9daAlink_cFPUsPUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setIdxMask(u16* param_0, u16* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/setIdxMask__9daAlink_cFPUsPUs.s" +void daAlink_c::setIdxMask(u16* param_0, u16* param_1) { + if (*param_0 == 0xFFFF) { + u16 tmp = (*param_1 >> 12) & 0xF; + *param_1 &= 0xFFF; + + if (tmp != 0) { + *param_0 = tmp; + } + } } -#pragma pop /* 800A3D0C-800A3D7C 09E64C 0070+00 5/5 0/0 0/0 .text * getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl */ +// setIdxMask param loads backwards +#ifdef NONMATCHING +void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 param_1, u32 buf_size) { + p_anmHeap->setBufferSize(buf_size); + + u16 tmp2 = 0xFFFF; + u16* tmp1 = ¶m_1; + + setIdxMask(tmp1, &tmp2); + + if (tmp2 == 0xFFFF) { + return p_anmHeap->loadDataIdx(*tmp1); + } else { + return p_anmHeap->loadDataDemoRID(*tmp1, tmp2); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 param_2) { +asm void* daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 param_2) { nofralloc #include "asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s" } #pragma pop +#endif /* 800A3D7C-800A3E30 09E6BC 00B4+00 16/16 0/0 0/0 .text initModel__9daAlink_cFP12J3DModelDataUlUl */ @@ -14470,7 +14485,7 @@ COMPILER_STRIP_GATE(0x80391FEC, &swimOffset); static u8 lit_4409[12]; /* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */ -static f32 l_waitBaseAnime[3]; +static Vec l_waitBaseAnime; /* 80425520-8042552C 052240 000C+00 0/1 0/0 0/0 .bss @4410 */ #pragma push @@ -15548,8 +15563,55 @@ BOOL daAlink_c::checkSlope() const { return field_0x3174 != 8 && field_0x2ff0 < -field_0x3122; } +inline daHorse_c* i_dComIfGp_getHorseActor() { + return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); +} + /* 800B221C-800B23FC 0ACB5C 01E0+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi */ +// need to figure out member function pointer calls +#ifdef NONMATCHING +void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2) { + if (checkEventRun() || param_2 != 0 || mSpecialMode != 0) { + if (p_pos != NULL) { + mCurrent.mPosition = *p_pos; + mNext.mPosition = mCurrent.mPosition; + field_0x3798 = mCurrent.mPosition; + i_onEndResetFlg0(ERFLG0_UNK_800000); + i_onEndResetFlg2(ERFLG2_UNK_100); + if (mDemo.getDemoMode() != 0x59) { + mSpeed.y = FLOAT_LABEL(lit_6108); + } + } + + mCollisionRot.y = param_1; + mCurrent.mAngle.y = param_1; + field_0x2fe6 = mCollisionRot.y; + if ((mActionID == 0x145 || mActionID == 0xE2) && !i_checkWolf()) { + if (field_0x3198 != 0) { + field_0x37c8.x = mCurrent.mPosition.x; + field_0x37c8.z = mCurrent.mPosition.z; + } + } + + if (i_checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { + field_0x3118 = mCollisionRot.y; + } + + if (checkHorseRide() || checkSpinnerRide()) { + fopAc_ac_c* rideAc = mRideActor.getActor(); + rideAc->mCurrent.mPosition = mCurrent.mPosition; + rideAc->mCollisionRot.y = mCollisionRot.y; + rideAc->mCurrent.mAngle.y = mCollisionRot.y; + rideAc->mSpeed.y = FLOAT_LABEL(lit_6108); + } else { + i_dComIfGp_getHorseActor()->setHorsePosAndAngle(&mCurrent.mPosition, mCollisionRot.y); + } + + field_0x814.ClrCcMove(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -15558,27 +15620,48 @@ asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int p #include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s" } #pragma pop +#endif /* 800B23FC-800B24F4 0ACD3C 00F8+00 1/0 0/0 0/0 .text * setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, csXyz const* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz.s" +void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) { + if (checkEventRun() || mSpecialMode != 0) { + if (p_pos != NULL) { + mCurrent.mPosition = *p_pos; + mNext.mPosition = mCurrent.mPosition; + field_0x3798 = mCurrent.mPosition; + i_onEndResetFlg0(ERFLG0_UNK_800000); + i_onEndResetFlg2(ERFLG2_UNK_100); + mSpeed.y = FLOAT_LABEL(lit_6108); + } + + if (p_angle != NULL) { + mCollisionRot = *p_angle; + mCurrent.mAngle.y = mCollisionRot.y; + field_0x2fe6 = mCollisionRot.y; + } + + field_0x814.ClrCcMove(); + } } -#pragma pop /* 800B24F4-800B25CC 0ACE34 00D8+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setPlayerPosAndAngle(f32 (*param_0)[4]) { - nofralloc -#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPA4_f.s" +void daAlink_c::setPlayerPosAndAngle(Mtx param_0) { + if (checkEventRun() || mSpecialMode != 0) { + mCurrent.mPosition.x = param_0[0][3]; + mCurrent.mPosition.y = param_0[1][3]; + mCurrent.mPosition.z = param_0[2][3]; + mNext.mPosition = mCurrent.mPosition; + field_0x3798 = mCurrent.mPosition; + i_onEndResetFlg0(ERFLG0_UNK_800000); + i_onEndResetFlg2(ERFLG2_UNK_100); + mDoMtx_MtxToRot(param_0, &mCollisionRot); + mCurrent.mAngle.y = mCollisionRot.y; + field_0x2fe6 = mCollisionRot.y; + mSpeed.y = FLOAT_LABEL(lit_6108); + field_0x814.ClrCcMove(); + } } -#pragma pop /* 800B25CC-800B25E8 0ACF0C 001C+00 16/16 0/0 0/0 .text itemTriggerCheck__9daAlink_cFUc */ @@ -16384,14 +16467,9 @@ asm void daAlink_c::itemUnequip(u16 param_0, f32 param_1) { #pragma pop /* 800B97EC-800B983C 0B412C 0050+00 2/2 0/0 0/0 .text checkFastUnequip__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkFastUnequip() { - nofralloc -#include "asm/d/a/d_a_alink/checkFastUnequip__9daAlink_cFv.s" +bool daAlink_c::checkFastUnequip() { + return mActionID == PREACTION_UNEQUIP || mActionID == HORSE_GETOFF || checkEventRun(); } -#pragma pop /* 800B983C-800B994C 0B417C 0110+00 10/10 0/0 0/0 .text allUnequip__9daAlink_cFi */ #pragma push @@ -16435,14 +16513,13 @@ asm BOOL daAlink_c::checkGroundSpecialMode() { /* 800BA09C-800BA0D0 0B49DC 0034+00 4/4 0/0 0/0 .text commonCheckNextAction__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::commonCheckNextAction(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/commonCheckNextAction__9daAlink_cFi.s" +void daAlink_c::commonCheckNextAction(int param_0) { + if (i_checkWolf()) { + checkNextActionWolf(param_0); + } else { + checkNextAction(param_0); + } } -#pragma pop /* 800BA0D0-800BA6A0 0B4A10 05D0+00 91/91 0/0 0/0 .text checkNextAction__9daAlink_cFi */ #pragma push @@ -16927,10 +17004,6 @@ asm void daAlink_c::returnKeepItemData() { } #pragma pop -inline daHorse_c* i_dComIfGp_getHorseActor() { - return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); -} - /* 800BF8D0-800BF9F0 0BA210 0120+00 2/2 0/0 0/0 .text setItemModel__9daAlink_cFv */ #pragma push #pragma optimization_level 0 @@ -17963,9 +18036,7 @@ bool daAlink_c::procSlideLandInit(int param_0) { field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.field_0x10; field_0x3198 = 1; field_0x2f99 = 4; - field_0x3588.x = l_waitBaseAnime[0]; - field_0x3588.y = l_waitBaseAnime[1]; - field_0x3588.z = l_waitBaseAnime[2]; + field_0x3588 = l_waitBaseAnime; } else { setSingleAnimeParam(ANM_FORWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.field_0x10; @@ -18411,9 +18482,132 @@ static u8 lit_4420[12]; #pragma pop /* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */ -static f32 l_wolfBaseAnime[3]; +static Vec l_wolfBaseAnime; + +inline dEvt_control_c& i_dComIfGp_getEvent() { + return g_dComIfG_gameInfo.play.getEvent(); +} + +bool daMidna_c::checkMidnaRealBody() { + return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3); +} /* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */ +// 1 missing instruction, lots of regalloc. maybe related +#ifdef NONMATCHING +bool daAlink_c::procCoMetamorphoseInit() { + int svar8 = 0; + + if (i_dComIfGp_getEvent().i_isOrderOK()) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { + return 0; + } + mDemo.i_setSpecialDemoType(); + mDamageTimer = 0; + svar8 = 1; + } + + if (!commonProcInitNotSameProc(METAMORPHOSE)) { + return 1; + } + + field_0x3198 = svar8; + field_0x3008 = 0; + field_0x300e = 0; + field_0x3010 = 0; + field_0x347c = 1.0f; + mFallVoiceInit = 0; + + if ((i_checkWolf() && mDemo.getDemoMode() == 0x39) || + (!i_checkWolf() && mDemo.getDemoMode() == 0x3A)) { + field_0x300a = 1; + mSpeed.y = 0.0f; + mNormalSpeed = 0.0f; + if (i_checkWolf()) { + mCommonCounter = mCollisionRot.x; + } + } else { + deleteEquipItem(0, 1); + + if (i_checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) { + field_0x3010 = 1; + } + field_0x300a = 0; + + if (i_checkWolf()) { + // Transform Wolf -> Human + setSingleAnimeWolfBase(ANM_TRANFORM_HUMAN); + field_0x3588 = l_wolfBaseAnime; + field_0x347c = 0.5f; + field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed; + mCommonCounter = mCollisionRot.x; + + daMidna_c* midna = getMidnaActor(); + if (i_checkMidnaRide() && midna->checkMidnaRealBody() && midna->checkDemoTypeNone()) { + midna->changeOriginalDemo(); + midna->changeDemoMode(15); + } + } else { + // Transform Human -> Wolf + if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) { + voiceStart(Z2SE_AL_V_TRANSFORM); + } + setSingleAnimeBase(ANM_TRANSFORM_WOLF); + setMetamorphoseModel(1); + field_0x3588 = l_waitBaseAnime; + field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed; + + cXyz pos(mCurrent.mPosition.x + (cM_ssin(mCollisionRot.y) * 100.0f), + mCurrent.mPosition.y + 300.0f, + mCurrent.mPosition.z + (cM_scos(mCollisionRot.y) * 100.0f)); + mLinkGndChk.SetPos(&pos); + + f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (gnd_cross != -1000000000.0f) { + pos.y = -1000000000.0f; + cXyz tmp_4c = mCurrent.mPosition; + cXyz tmp_58 = pos; + BOOL check = false; + for (int i = 0; i < 4; i++) { + if (i == 3) { + tmp_4c.y = gnd_cross + 5.0f; + } else { + tmp_4c.y = mCurrent.mPosition.y + field_0x18B0[i].GetWallH(); + } + tmp_58.y = tmp_4c.y; + + if (commonLineCheck(&tmp_4c, &tmp_58) && dBgS_CheckBWallPoly(mLinkLinChk)) { + if (dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) { + check = true; + break; + } + } + } + + if (check) { + mCommonCounter = field_0x2ff0; + } else { + pos -= mCurrent.mPosition; + pos.atan2sY_XZ(); + mCommonCounter = svar8; + + if (cM_deg2s(70.0f) < abs(mCommonCounter)) { + mCommonCounter = field_0x2ff0; + } + } + } else { + mCommonCounter = 0; + } + } + mSpeed.y = 0.0f; + mNormalSpeed = 0.0f; + field_0x3012 = 0; + } + + field_0x3484 = mCurrent.mPosition.y; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -18422,6 +18616,7 @@ asm bool daAlink_c::procCoMetamorphoseInit() { #include "asm/d/a/d_a_alink/procCoMetamorphoseInit__9daAlink_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80392070-8039207C 01E6D0 000C+00 0/1 0/0 0/0 .rodata @74273 */ @@ -19258,11 +19453,11 @@ u8 daAlink_c::getClothesChangeWaitTimer() const { /* 800D01A8-800D01E0 0CAAE8 0038+00 1/0 0/0 0/0 .text checkHorseStart__9daAlink_cFv */ u32 daPy_py_c::getLastSceneMode() { - return dComIfGs_getLastSceneMode(); + return dComIfGs_getLastSceneMode() & 0xF; } BOOL daAlink_c::checkHorseStart() { - return checkHorseStart(getLastSceneMode() & 0xF, getStartMode()); + return checkHorseStart(getLastSceneMode(), getStartMode()); } /* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv @@ -22110,7 +22305,7 @@ fopAc_ac_c* daAlink_c::getBoomerangActor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkBoomerangChargeEnd() { +asm bool daAlink_c::checkBoomerangChargeEnd() { nofralloc #include "asm/d/a/d_a_alink/checkBoomerangChargeEnd__9daAlink_cFv.s" } @@ -29505,15 +29700,14 @@ asm void daAlink_c::procIronBallReturn() { } #pragma pop -/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkEventRun() const { - nofralloc -#include "asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s" +inline BOOL i_dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); +} + +/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */ +BOOL daAlink_c::checkEventRun() const { + return i_dComIfGp_event_runCheck() || checkPlayerDemoMode(); } -#pragma pop /* 80115C50-80115D08 110590 00B8+00 2/2 0/0 0/0 .text createNpcTks__9daAlink_cFP4cXyziUl */ diff --git a/src/d/a/d_a_horse_static.cpp b/src/d/a/d_a_horse_static.cpp index 6b8db456072..8f7a8a18e9c 100644 --- a/src/d/a/d_a_horse_static.cpp +++ b/src/d/a/d_a_horse_static.cpp @@ -8,58 +8,47 @@ #include "dolphin/types.h" BOOL e_wb_class::checkWait() { - return unk1460 == 0x2A; + return field_0x5b4 == 0x2A; } void e_wb_class::setPlayerRideNow() { - unk1680 = 0x67; - unk1460 = 0; - unk1726 |= 3; + field_0x690 = 0x67; + field_0x5b4 = 0; + field_0x6be |= 3; } void e_wb_class::setPlayerRide() { - unk1680 = 0x65; - unk1460 = 0; - unk1726 |= 3; + field_0x690 = 0x65; + field_0x5b4 = 0; + field_0x6be |= 3; mZ2Ride.setLinkRiding(true); } void e_wb_class::getOff() { - if (!checkDownDamage() || unk1680 == 0x67) { - unk1680 = 0; + if (!checkDownDamage() || field_0x690 == 0x67) { + field_0x690 = 0; } else { - unk1682 = 0; + field_0x692 = 0; } - unk1460 = 0; - unk1726 &= 0xfffc; + field_0x5b4 = 0; + field_0x6be &= 0xfffc; mZ2Ride.setLinkRiding(false); } BOOL e_wb_class::checkDownDamage() { - bool downDamage = false; - s16 tmp = unk1680; - - if (tmp != 0x65 && tmp != 0x66 && tmp != 0x15) { - downDamage = true; - } - return downDamage; + return field_0x690 != 0x65 && field_0x690 != 0x66 && field_0x690 != 0x15; } u8 e_wb_class::checkNormalRideMode() const { - bool normalRideMode = false; - - if (unk1680 != 0x66 || unk1460 < 1) { - normalRideMode = 1; - } - return normalRideMode; + return field_0x690 != 0x66 || field_0x5b4 < 1; } void e_wb_class::setRunRideMode() { - if (unk1680 == 0x65) { - unk1460 = 0; - unk1680 = 0x15; - unk1682 = 0x65; + if (field_0x690 == 0x65) { + field_0x5b4 = 0; + field_0x690 = 0x15; + field_0x692 = 0x65; } } diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 96411623985..a09b46c0b77 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -4,6 +4,7 @@ // #include "d/a/d_a_player.h" +#include "JSystem/J3DGraphLoader/J3DAnmLoader.h" #include "SSystem/SComponent/c_math.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" @@ -23,12 +24,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct J3DAnmLoaderDataBaseFlag {}; - -struct J3DAnmLoaderDataBase { - /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); -}; - // // Forward References: // @@ -146,6 +141,10 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // Declarations: // +inline s8 dComIfGp_getPlayerCameraID(int idx) { + return g_dComIfG_gameInfo.play.getPlayerCameraID(idx); +} + /* ############################################################################################## */ /* 80453600-80453608 001C00 0004+04 6/6 0/0 0/0 .sdata2 @4215 */ SECTION_SDATA2 static f32 lit_4215[1 + 1 /* padding */] = { @@ -302,37 +301,15 @@ asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { #endif /* 8015EA0C-8015EA20 15934C 0014+00 0/0 3/3 0/0 .text setParamData__9daPy_py_cFiiii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s" +u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { + return param_3 | (param_0 & 0x3F | (param_1 & 0x1F) << 0xC | param_2 << 0x18); } -#pragma pop /* 8015EA20-8015EA48 159360 0028+00 0/0 10/10 3/3 .text checkFishingRodItem__9daPy_py_cFi */ -#ifdef NONMATCHING -BOOL daPy_py_c::checkFishingRodItem(int i_item_id) { - bool is_fishing_item = false; - - if (i_item_id == FISHING_ROD_1 || i_item_id < BEE_ROD || i_item_id <= JEWEL_WORM_ROD) { - is_fishing_item = true; - } - - return is_fishing_item; +BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) { + return i_itemNo == FISHING_ROD_1 || (i_itemNo >= BEE_ROD && i_itemNo <= JEWEL_WORM_ROD); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daPy_py_c::checkFishingRodItem(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/checkFishingRodItem__9daPy_py_cFi.s" -} -#pragma pop -#endif /* 8015EA48-8015EA88 159388 0040+00 0/0 3/3 0/0 .text checkBombItem__9daPy_py_cFi */ #pragma push @@ -345,25 +322,22 @@ asm BOOL daPy_py_c::checkBombItem(int param_0) { #pragma pop /* 8015EA88-8015EAD8 1593C8 0050+00 0/0 5/5 0/0 .text checkBottleItem__9daPy_py_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daPy_py_c::checkBottleItem(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s" +// is there a way to write this with a switch? +BOOL daPy_py_c::checkBottleItem(int i_itemNo) { + return (i_itemNo >= EMPTY_BOTTLE && i_itemNo <= FAIRY) || i_itemNo == BEE_CHILD || + i_itemNo == WORM || i_itemNo == FAIRY_DROP || i_itemNo == CHUCHU_BLACK || + (i_itemNo >= CHUCHU_RARE && i_itemNo <= LV3_SOUP); } -#pragma pop /* 8015EAD8-8015EB40 159418 0068+00 0/0 3/3 0/0 .text checkDrinkBottleItem__9daPy_py_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::checkDrinkBottleItem(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/checkDrinkBottleItem__9daPy_py_cFi.s" +// is there a way to write this with a switch? +BOOL daPy_py_c::checkDrinkBottleItem(int i_itemNo) { + return (i_itemNo >= RED_BOTTLE && i_itemNo <= HALF_MILK_BOTTLE) || i_itemNo == RED_BOTTLE_2 || + i_itemNo == UGLY_SOUP || i_itemNo == HOT_SPRING || i_itemNo == BEE_CHILD || + i_itemNo == CHUCHU_BLACK || i_itemNo == FAIRY_DROP || + (i_itemNo >= CHUCHU_RARE && i_itemNo != CHUCHU_YELLOW && i_itemNo <= LV3_SOUP); } -#pragma pop /* 8015EB40-8015EB68 159480 0028+00 0/0 4/4 0/0 .text checkOilBottleItem__9daPy_py_cFi */ BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) { @@ -388,14 +362,11 @@ BOOL daPy_py_c::checkHookshotItem(int i_itemNo) { } /* 8015EBD8-8015EC28 159518 0050+00 0/0 3/3 0/0 .text checkTradeItem__9daPy_py_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daPy_py_c::checkTradeItem(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s" +BOOL daPy_py_c::checkTradeItem(int i_itemNo) { + return (i_itemNo >= LETTER && i_itemNo <= IRIAS_PENDANT) || i_itemNo == ANCIENT_DOCUMENT || + i_itemNo == AIR_LETTER || i_itemNo == ANCIENT_DOCUMENT2 || i_itemNo == RAFRELS_MEMO || + i_itemNo == TKS_LETTER || i_itemNo == ASHS_SCRIBBLING; } -#pragma pop /* 8015EC28-8015EC48 159568 0020+00 0/0 2/2 0/0 .text checkDungeonWarpItem__9daPy_py_cFi */ @@ -450,33 +421,46 @@ void daPy_anmHeap_c::initData() { } /* 8015EDC4-8015EE00 159704 003C+00 0/0 1/1 1/1 .text mallocBuffer__14daPy_anmHeap_cFv */ -#ifdef NONMATCHING void* daPy_anmHeap_c::mallocBuffer() { - void* buf = new (0x20) void*[mBufferSize]; - mBuffer = buf; + mBuffer = new (0x20) char[mBufferSize]; return mBuffer; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* daPy_anmHeap_c::mallocBuffer() { - nofralloc -#include "asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s" -} -#pragma pop -#endif /* 8015EE00-8015EF84 159740 0184+00 0/0 1/1 1/1 .text * createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE param_0) { - nofralloc -#include "asm/d/a/d_a_player/createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE.s" +void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE heap_type) { + u32 size; + + if (heap_type == 4) { + size = mBufferSize; + } else if (heap_type == 3) { + size = 0x50; + } else if (heap_type == 0) { + size = 0x40; + } else if (heap_type == 1) { + size = 0x40; + } else { + size = 0xA0; + } + + JKRHeap* tmp; + mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20); + + if (heap_type == 4) { + char* tmpWork = new char[size]; + } else if (heap_type == 3) { + mDoExt_transAnmBas* tmpTransBas = new mDoExt_transAnmBas(NULL); + } else if (heap_type == 0) { + J3DAnmTransformKey* tmpTrans = new J3DAnmTransformKey(); + } else if (heap_type == 1) { + J3DAnmTexPattern* tmpTp = new J3DAnmTexPattern(); + } else { + J3DAnmTextureSRTKey* tmpTk = new J3DAnmTextureSRTKey(); + } + + mDoExt_setCurrentHeap(tmp); + mDoExt_adjustSolidHeap(mAnimeHeap); } -#pragma pop /* ############################################################################################## */ /* 80453648-80453650 001C48 0008+00 1/0 0/0 0/0 .sdata2 sumouArcName$4614 */ @@ -519,59 +503,66 @@ SECTION_SDATA2 static char lastGanonArcName[8] = "B_gnd"; SECTION_SDATA2 static char pigGanonArcName[8] = "B_mgn"; /* 8015EF84-8015F068 1598C4 00E4+00 3/3 0/0 0/0 .text loadData__14daPy_anmHeap_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DAnmBase* daPy_anmHeap_c::loadData(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_player/loadData__14daPy_anmHeap_cFUs.s" +void* daPy_anmHeap_c::loadData(u16 id) { + if (mArcNo == 0xFFFF) { + dComIfGp_getAnmArchive()->readIdxResource(mBuffer, mBufferSize, id); + JKRHeap* heap = setAnimeHeap(); + void* data = J3DAnmLoaderDataBase::load(mBuffer, UNK_FLAG0); + mDoExt_setCurrentHeap(heap); + return data; + } + + if (mArcNo == 0) { + return dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), id); + } + + return dComIfG_getObjectRes(arcName[mArcNo - 1], id); } -#pragma pop /* 8015F068-8015F0D0 1599A8 0068+00 0/0 9/9 5/5 .text loadDataIdx__14daPy_anmHeap_cFUs */ -J3DAnmBase* daPy_anmHeap_c::loadDataIdx(u16 pID) { - J3DAnmBase* tmp; +void* daPy_anmHeap_c::loadDataIdx(u16 id) { + void* data; - if (pID == mIdx && mArcNo == 0xffff) { - tmp = NULL; + if (id == mIdx && mArcNo == 0xFFFF) { + data = NULL; } else { - mIdx = pID; - mArcNo = 0xffff; - if (mPriIdx == 0xffff) { - tmp = loadData(pID); + mIdx = id; + mArcNo = 0xFFFF; + if (mPriIdx == 0xFFFF) { + data = loadData(id); } else { - tmp = NULL; + data = NULL; } } - return tmp; + return data; } /* 8015F0D0-8015F118 159A10 0048+00 0/0 3/3 0/0 .text loadDataPriIdx__14daPy_anmHeap_cFUs */ -J3DAnmBase* daPy_anmHeap_c::loadDataPriIdx(u16 pID) { - J3DAnmBase* tmp; +void* daPy_anmHeap_c::loadDataPriIdx(u16 id) { + void* data; - if (pID == mPriIdx || mArcNo != 0xffff) { - tmp = NULL; + if (id == mPriIdx || mArcNo != 0xFFFF) { + data = NULL; } else { - mPriIdx = pID; - tmp = loadData(pID); + mPriIdx = id; + data = loadData(id); } - return tmp; + return data; } /* 8015F118-8015F168 159A58 0050+00 0/0 5/5 5/5 .text loadDataDemoRID__14daPy_anmHeap_cFUsUs */ -J3DAnmBase* daPy_anmHeap_c::loadDataDemoRID(u16 pID, u16 pArcNo) { - J3DAnmBase* tmp; +void* daPy_anmHeap_c::loadDataDemoRID(u16 id, u16 arc_no) { + void* data; - if (pID == mIdx && pArcNo == mArcNo) { - tmp = NULL; + if (id == mIdx && arc_no == mArcNo) { + data = NULL; } else { - mIdx = pID; - mArcNo = pArcNo; - tmp = loadData(pID); + mIdx = id; + mArcNo = arc_no; + data = loadData(id); } - return tmp; + return data; } /* 8015F168-8015F1A0 159AA8 0038+00 1/1 4/4 0/0 .text setAnimeHeap__14daPy_anmHeap_cFv */ @@ -582,148 +573,16 @@ JKRHeap* daPy_anmHeap_c::setAnimeHeap() { /* ############################################################################################## */ /* 803BA0C0-803BA14C 0171E0 0089+03 1/1 0/0 0/0 .data l_sightDL */ -SECTION_DATA static u8 l_sightDL[137 + 3 /* padding */] = { - 0x10, - 0x00, - 0x00, - 0x10, - 0x40, - 0xFF, - 0xFF, - 0x42, - 0x80, - 0x08, - 0x30, - 0x3C, - 0xF3, - 0xCF, - 0x00, - 0x10, - 0x00, - 0x00, - 0x10, - 0x18, - 0x3C, - 0xF3, - 0xCF, - 0x00, - 0x61, - 0x28, - 0x38, - 0x03, - 0xC0, - 0x61, - 0xC0, - 0x08, - 0x42, - 0x8F, - 0x61, - 0xC1, - 0x08, - 0xE6, - 0x70, - 0x61, - 0x43, - 0x00, - 0x00, - 0x01, - 0x61, - 0x40, - 0x00, - 0x00, - 0x06, - 0x61, - 0x41, - 0x00, - 0x04, - 0xAD, - 0x61, - 0xF3, - 0x64, - 0x00, - 0x00, - 0x10, - 0x00, - 0x00, - 0x10, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x10, - 0x00, - 0x00, - 0x10, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x61, - 0x00, - 0x00, - 0x00, - 0x01, - 0x98, - 0x00, - 0x04, - 0x01, - 0x01, - 0x00, - 0x01, - 0x01, - 0xFF, - 0x01, - 0x00, - 0x00, - 0x01, - 0x01, - 0xFF, - 0x00, - 0x01, - 0x00, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, +SECTION_DATA static u8 l_sightDL[137] = { + 0x10, 0x00, 0x00, 0x10, 0x40, 0xFF, 0xFF, 0x42, 0x80, 0x08, 0x30, 0x3C, 0xF3, 0xCF, 0x00, 0x10, + 0x00, 0x00, 0x10, 0x18, 0x3C, 0xF3, 0xCF, 0x00, 0x61, 0x28, 0x38, 0x03, 0xC0, 0x61, 0xC0, 0x08, + 0x42, 0x8F, 0x61, 0xC1, 0x08, 0xE6, 0x70, 0x61, 0x43, 0x00, 0x00, 0x01, 0x61, 0x40, 0x00, 0x00, + 0x06, 0x61, 0x41, 0x00, 0x04, 0xAD, 0x61, 0xF3, 0x64, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x3F, + 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, + 0x00, 0x01, 0x98, 0x00, 0x04, 0x01, 0x01, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x01, 0x01, + 0xFF, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80453678-8045367C 001C78 0004+00 1/1 0/0 0/0 .sdata2 @4668 */ @@ -759,14 +618,10 @@ asm void daPy_sightPacket_c::setSight() { /* 8015F384-8015F398 159CC4 0014+00 0/0 1/1 0/0 .text * setSightImage__18daPy_sightPacket_cFP7ResTIMG */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_sightPacket_c::setSightImage(ResTIMG* param_0) { - nofralloc -#include "asm/d/a/d_a_player/setSightImage__18daPy_sightPacket_cFP7ResTIMG.s" +void daPy_sightPacket_c::setSightImage(ResTIMG* p_img) { + mpImg = p_img; + mpData = (u8*)p_img + p_img->texDataOffset; } -#pragma pop /* 8015F398-8015F3C4 159CD8 002C+00 0/0 8/8 10/10 .text checkMasterSwordEquip__9daPy_py_cFv */ BOOL daPy_py_c::checkMasterSwordEquip() { @@ -811,72 +666,74 @@ s16 daPy_py_c::checkNowWolfEyeUp() { /* 8015F438-8015F478 159D78 0040+00 0/0 0/0 1/1 .text forceRestartRoom__9daPy_py_cFiUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) { - nofralloc -#include "asm/d/a/d_a_player/forceRestartRoom__9daPy_py_cFiUli.s" +// move these inlines? +inline BOOL i_dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); +} + +void daAlink_c::startRestartRoomFromOut(int param_0, u32 param_1, int param_2) { + startRestartRoom(param_1, param_2, param_0, i_dComIfGp_event_runCheck()); +} + +void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) { + daAlink_getAlinkActorClass()->startRestartRoomFromOut(param_0, param_1, param_2); } -#pragma pop /* 8015F478-8015F4B8 159DB8 0040+00 0/0 0/0 3/3 .text * setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi */ -#ifdef NONMATCHING void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) { daAlink_getAlinkActorClass()->setFmChainPosFromOut(param_0, param_1, param_2); } + +/* 8015F4B8-8015F4F0 159DF8 0038+00 0/0 0/0 1/1 .text cancelFmChainGrab__9daPy_py_cFv */ +void daPy_py_c::cancelFmChainGrab() { + daAlink_getAlinkActorClass()->cancelFmChainGrabFromOut(); +} + +/* 8015F4F0-8015F520 159E30 0030+00 0/0 0/0 17/17 .text setLookPos__9daPy_py_cFP4cXyz */ +void daPy_py_c::setLookPos(cXyz* p_pos) { + daAlink_getAlinkActorClass()->setLookPosFromOut(p_pos); +} + +/* 8015F520-8015F55C 159E60 003C+00 0/0 0/0 4/4 .text setPlayerSe__9daPy_py_cFUl */ +void daPy_py_c::setPlayerSe(u32 se_id) { + daAlink_getAlinkActorClass()->seStartOnlyReverb(se_id); +} + +/* 8015F55C-8015F60C 159E9C 00B0+00 1/1 0/0 2/2 .text + * linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ +// regalloc +#ifdef NONMATCHING +inline daPy_py_c* daPy_getPlayerActorClass() { + return (daPy_py_c*)dComIfGp_getPlayer(0); +} + +bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* p_ac) { + bool check_carry = false; + bool ret = false; + + if (fopAcM_checkCarryNow(p_ac)) { + if (daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(p_ac)) { + check_carry = true; + } + } + + if (check_carry && dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2) != 0) { + ret = true; + } + + return ret; +} #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) { - nofralloc -#include "asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s" -} -#pragma pop -#endif - -/* 8015F4B8-8015F4F0 159DF8 0038+00 0/0 0/0 1/1 .text cancelFmChainGrab__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::cancelFmChainGrab() { - nofralloc -#include "asm/d/a/d_a_player/cancelFmChainGrab__9daPy_py_cFv.s" -} -#pragma pop - -/* 8015F4F0-8015F520 159E30 0030+00 0/0 0/0 17/17 .text setLookPos__9daPy_py_cFP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::setLookPos(cXyz* param_0) { - nofralloc -#include "asm/d/a/d_a_player/setLookPos__9daPy_py_cFP4cXyz.s" -} -#pragma pop - -/* 8015F520-8015F55C 159E60 003C+00 0/0 0/0 4/4 .text setPlayerSe__9daPy_py_cFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::setPlayerSe(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_player/setPlayerSe__9daPy_py_cFUl.s" -} -#pragma pop - -/* 8015F55C-8015F60C 159E9C 00B0+00 1/1 0/0 2/2 .text - * linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) { +asm bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) { nofralloc #include "asm/d/a/d_a_player/linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s" } #pragma pop +#endif /* 8015F60C-8015F660 159F4C 0054+00 0/0 0/0 2/2 .text * wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ @@ -889,36 +746,47 @@ asm void daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* param_0) { } #pragma pop +u32 daPy_py_c::getLastSceneMode() { + return dComIfGs_getLastSceneMode() & 0xF; +} + /* 8015F660-8015F698 159FA0 0038+00 2/2 1/1 1/1 .text checkRoomRestartStart__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::checkRoomRestartStart() { - nofralloc -#include "asm/d/a/d_a_player/checkRoomRestartStart__9daPy_py_cFv.s" +bool daPy_py_c::checkRoomRestartStart() { + u8 mode = getLastSceneMode(); + + if (mode == 4 || mode == 8 || mode == 5) { + return true; + } else { + return false; + } +} + +inline dStage_stageDt_c* dComIfGp_getStage() { + return &g_dComIfG_gameInfo.play.getStage(); +} + +inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { + return param_0->field_0x09 >> 1 & 0x1f; } -#pragma pop /* 8015F698-8015F730 159FD8 0098+00 0/0 2/2 1/1 .text checkCarryStartLightBallA__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 daPy_py_c::checkCarryStartLightBallA() { - nofralloc -#include "asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s" +u32 daPy_py_c::checkCarryStartLightBallA() { + if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() || + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) { + return FALSE; + } + return dComIfGs_getLastSceneMode() & 0x100000; } -#pragma pop /* 8015F730-8015F7C8 15A070 0098+00 0/0 2/2 1/1 .text checkCarryStartLightBallB__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 daPy_py_c::checkCarryStartLightBallB() { - nofralloc -#include "asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s" +u32 daPy_py_c::checkCarryStartLightBallB() { + if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() || + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) { + return FALSE; + } + return dComIfGs_getLastSceneMode() & 0x80000; } -#pragma pop float daPy_py_c::getSpinnerRideSpeed() const { float rideSpeed; @@ -942,14 +810,9 @@ asm void daPy_py_c::checkSpinnerReflectEffect() { /* 8015F89C-8015F8C8 15A1DC 002C+00 0/0 0/0 7/7 .text checkBoomerangCharge__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::checkBoomerangCharge() { - nofralloc -#include "asm/d/a/d_a_player/checkBoomerangCharge__9daPy_py_cFv.s" +bool daPy_py_c::checkBoomerangCharge() { + return daAlink_getAlinkActorClass()->checkBoomerangChargeEnd(); } -#pragma pop /* 8015F8C8-8015F8D0 15A208 0008+00 0/0 0/0 1/1 .text checkBoomerangChargeTime__9daPy_py_cFv */ bool daPy_py_c::checkBoomerangChargeTime() { @@ -964,46 +827,74 @@ daBoomerang_c* daPy_py_c::getThrowBoomerangActor() { /* 8015F8E4-8015F914 15A224 0030+00 0/0 0/0 2/2 .text * cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_player/cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c.s" +void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* p_ac) { + daAlink_getAlinkActorClass()->cancelBoomerangLock(p_ac); } -#pragma pop /* 8015F914-8015F954 15A254 0040+00 0/0 0/0 2/2 .text setPlayerDamage__9daPy_py_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::setPlayerDamage(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_player/setPlayerDamage__9daPy_py_cFii.s" +void daPy_py_c::setPlayerDamage(int param_0, int param_1) { + daAlink_getAlinkActorClass()->setDamagePoint(param_0, 0, param_1, 0); } -#pragma pop /* 8015F954-8015F968 15A294 0014+00 0/0 3/3 0/0 .text setMidnaMotionNum__9daPy_py_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::setMidnaMotionNum(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/setMidnaMotionNum__9daPy_py_cFi.s" +void daPy_py_c::setMidnaMotionNum(int motion_num) { + if (m_midnaActor != NULL) { + m_midnaActor->setMotionNum(motion_num); + } } -#pragma pop /* 8015F968-8015F97C 15A2A8 0014+00 0/0 3/3 0/0 .text setMidnaFaceNum__9daPy_py_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::setMidnaFaceNum(int param_0) { - nofralloc -#include "asm/d/a/d_a_player/setMidnaFaceNum__9daPy_py_cFi.s" +void daPy_py_c::setMidnaFaceNum(int face_num) { + if (m_midnaActor != NULL) { + m_midnaActor->setFaceNum(face_num); + } } -#pragma pop /* 8015F97C-8015FA2C 15A2BC 00B0+00 0/0 7/7 2/2 .text daPy_addCalcShort__FPsssss */ +// 1 instruction in wrong place +#ifdef NONMATCHING +int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) { + s16 temp_r0; + s16 temp_r0_2; + s16 temp_r8; + s16 temp_r9; + s32 temp_r10; + s32 temp_r4; + s32 temp_r5; + s32 phi_r4; + + temp_r8 = *param_0; + temp_r9 = (s16)param_1; + temp_r10 = temp_r9 - temp_r8; + + if (temp_r8 != temp_r9) { + temp_r5 = temp_r10 / param_2; + temp_r0 = (s16)param_4; + if (temp_r5 > temp_r0 || temp_r5 < -temp_r0) { + temp_r0_2 = param_3; + temp_r4 = -temp_r0_2; + phi_r4 = temp_r4; + if (temp_r5 < temp_r4) { + phi_r4 = temp_r5; + } else if (temp_r5 > temp_r0_2) { + phi_r4 = temp_r0_2; + } + *param_0 += phi_r4; + } else if (temp_r10 >= 0) { + *param_0 = temp_r8 + param_4; + if (temp_r9 - *param_0 <= 0) { + *param_0 = param_1; + } + } else { + *param_0 = temp_r8 - param_4; + if (temp_r9 - *param_0 >= 0) { + *param_0 = param_1; + } + } + } + return temp_r9 - *param_0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1012,6 +903,7 @@ asm void daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, #include "asm/d/a/d_a_player/daPy_addCalcShort__FPsssss.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803BA14C-803BA160 01726C 0010+04 0/0 4/4 0/0 .data __vt__18daPy_sightPacket_c */ diff --git a/src/d/bg/d_bg_s.cpp b/src/d/bg/d_bg_s.cpp index 6182b7c4169..5516f14d1e6 100644 --- a/src/d/bg/d_bg_s.cpp +++ b/src/d/bg/d_bg_s.cpp @@ -533,7 +533,7 @@ bool dBgS::GetUnderwaterRoofCode(cBgS_PolyInfo const& poly) { } /* 80074E00-80074E50 06F740 0050+00 0/0 13/13 5/5 .text GetWallCode__4dBgSFRC13cBgS_PolyInfo */ -bool dBgS::GetWallCode(cBgS_PolyInfo const& poly) { +s32 dBgS::GetWallCode(cBgS_PolyInfo const& poly) { int bg_index = poly.GetBgIndex(); if (m_chk_element[bg_index].ChkUsed()) { return m_chk_element[bg_index].m_bgw_base_ptr->GetWallCode(poly); diff --git a/src/d/bg/d_bg_w.cpp b/src/d/bg/d_bg_w.cpp index 51cd65b8ba7..ba90aee54ac 100644 --- a/src/d/bg/d_bg_w.cpp +++ b/src/d/bg/d_bg_w.cpp @@ -1157,7 +1157,7 @@ asm void dBgW::GetLinkNo(cBgS_PolyInfo const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool dBgW::GetWallCode(cBgS_PolyInfo const& param_0) { +asm s32 dBgW::GetWallCode(cBgS_PolyInfo const& param_0) { nofralloc #include "asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s" } diff --git a/src/d/bg/d_bg_w_kcol.cpp b/src/d/bg/d_bg_w_kcol.cpp index dbf04a7a1e8..4332c700117 100644 --- a/src/d/bg/d_bg_w_kcol.cpp +++ b/src/d/bg/d_bg_w_kcol.cpp @@ -761,7 +761,7 @@ asm void dBgWKCol::GetLinkNo(cBgS_PolyInfo const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) { +asm s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) { nofralloc #include "asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s" } diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index d5cf7626633..b98fe060740 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -28,10 +28,6 @@ struct dSmplMdl_draw_c { /* 80049058 */ void removeModel(J3DModelData*, int); }; -struct dMapInfo_n { - /* 8003EE5C */ void getMapPlayerPos(); -}; - struct dComIfG_resLoader_c { /* 8002F314 */ dComIfG_resLoader_c(); /* 8002F328 */ ~dComIfG_resLoader_c(); @@ -392,7 +388,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // -inline u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { +inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { return param_0->field_0x09 >> 1 & 0x1f; } diff --git a/src/d/d_resorce.cpp b/src/d/d_resorce.cpp index b03b1e7cca0..1f1222830f6 100644 --- a/src/d/d_resorce.cpp +++ b/src/d/d_resorce.cpp @@ -31,10 +31,6 @@ struct mDoGph_gInf_c { static u8 mZbufferTimg[4]; }; -struct mDoExt_transAnmBas { - /* 8003C784 */ ~mDoExt_transAnmBas(); -}; - struct dBgWKCol { /* 8007E7D0 */ void initKCollision(void*); }; @@ -996,8 +992,8 @@ asm void* dRes_control_c::getRes(char const* param_0, char const* param_1, dRes_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c* param_2, - int param_3) { +asm void* dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c* param_2, + int param_3) { nofralloc #include "asm/d/d_resorce/getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci.s" } @@ -1096,7 +1092,8 @@ s32 J3DAnmTransform::getKind() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm mDoExt_transAnmBas::~mDoExt_transAnmBas() { +// asm mDoExt_transAnmBas::~mDoExt_transAnmBas() { +extern "C" asm void __dt__18mDoExt_transAnmBasFv() { nofralloc #include "asm/d/d_resorce/__dt__18mDoExt_transAnmBasFv.s" } diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index e2bf64d5c69..f4c0f083517 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -20,25 +20,10 @@ struct daSus_c { /* 800315A4 */ void execute(); }; -struct dTres_c { - struct list_class {}; - - /* 8009BCB4 */ void addData(dTres_c::list_class*, s8); -}; - struct dSvBit_HIO_c { /* 8025C1F8 */ void init(); }; -struct dDrawPath_c { - struct room_class {}; -}; - -struct dMpath_c { - /* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*); - /* 8003FA40 */ void setPointer(s8, void*, int); -}; - struct cMl { /* 80263228 */ void memalignB(int, u32); }; @@ -434,8 +419,8 @@ extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; // Declarations: // -inline dStage_stageDt_c& dComIfGp_getStage() { - return g_dComIfG_gameInfo.play.getStage(); +inline dStage_stageDt_c* dComIfGp_getStage() { + return &g_dComIfG_gameInfo.play.getStage(); } void dStage_nextStage_c::set(const char* i_stage, s8 i_roomId, s16 i_point, s8 i_layer, s8 i_wipe, @@ -2893,7 +2878,7 @@ void dStage_infoCreate() { void* stageRsrc = dComIfG_getStageRes("stage.dzs"); dComIfGp_roomControl_init(); - dStage_dt_c_stageInitLoader(stageRsrc, &dComIfGp_getStage()); + dStage_dt_c_stageInitLoader(stageRsrc, dComIfGp_getStage()); } /* ############################################################################################## */ @@ -2904,7 +2889,7 @@ SECTION_DEAD static char const* const stringBase_80378B73 = "vrbox_sora.bmd"; #pragma pop /* 80406194-804061A0 032EB4 000A+02 2/2 14/14 7/7 .bss mDemoArcName__20dStage_roomControl_c */ -u8 dStage_roomControl_c::mDemoArcName[10 + 2 /* padding */]; +char dStage_roomControl_c::mDemoArcName[10]; /* 80026D38-80026DF8 021678 00C0+00 0/0 1/1 0/0 .text dStage_Create__Fv */ #pragma push diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index b70262a10d5..56fc46daa22 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -3177,7 +3177,7 @@ asm void dKy_depth_dist_set(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKy_darkworld_check() { +asm bool dKy_darkworld_check() { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_darkworld_check__Fv.s" } diff --git a/src/d/map/d_map_path.cpp b/src/d/map/d_map_path.cpp index ace4b86da7f..b673a6283f4 100644 --- a/src/d/map/d_map_path.cpp +++ b/src/d/map/d_map_path.cpp @@ -17,47 +17,6 @@ struct dRes_control_c { /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); }; -struct ResTIMG {}; - -struct dRenderingMap_c { - /* 8003CD38 */ void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const; - /* 8003CDAC */ void renderingMap(); -}; - -struct dDrawPath_c { - struct line_class {}; - - struct poly_class {}; - - struct group_class {}; - - struct floor_class {}; - - struct room_class {}; - - /* 8002ABF0 */ bool isDrawType(int); - /* 8002AD3C */ ~dDrawPath_c(); - /* 8002AD84 */ void getLineColor(int, int); - /* 8003CA40 */ void rendering(dDrawPath_c::poly_class const*); - /* 8003CB00 */ void rendering(dDrawPath_c::group_class const*); - /* 8003CC24 */ void rendering(dDrawPath_c::room_class const*); - /* 8003C94C */ void rendering(dDrawPath_c::line_class const*); - /* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*); - /* 8003CCC4 */ void drawPath(); -}; - -struct dRenderingFDAmap_c { - /* 8002ABF8 */ ~dRenderingFDAmap_c(); - /* 8003CE78 */ void setTevSettingNonTextureDirectColor() const; - /* 8003CF40 */ void setTevSettingIntensityTextureToCI() const; - /* 8003D0AC */ void drawBack() const; - /* 8003D188 */ void preRenderingMap(); - /* 8003D320 */ void postRenderingMap(); - /* 8003D3C0 */ void renderingDecoration(dDrawPath_c::line_class const*); - /* 8003D68C */ void getDecoLineColor(int, int); - /* 8003D6B8 */ void getDecorationLineWidth(int); -}; - struct dMpath_n { struct dTexObjAggregate_c { /* 8003C85C */ void create(); @@ -68,14 +27,6 @@ struct dMpath_n { static u8 m_texObjAgg[28]; }; -struct dDlst_base_c { - /* 8002ABEC */ void draw(); -}; - -struct _GXTlutObj {}; - -struct _GXTexObj {}; - // // Forward References: // @@ -118,46 +69,8 @@ extern "C" void getLineColor__11dDrawPath_cFii(); extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); -extern "C" void C_MTXOrtho(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetArray(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXPixModeSync(); -extern "C" void GXBegin(); -extern "C" void GXSetLineWidth(); -extern "C" void GXSetPointSize(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetTexCopySrc(); -extern "C" void GXSetTexCopyDst(); -extern "C" void GXSetCopyFilter(); -extern "C" void GXCopyTex(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXLoadTexObj(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetTevKColorSel(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetFog(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetDither(); -extern "C" void GXSetProjection(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXSetViewport(); -extern "C" void GXSetScissor(); -extern "C" void GXSetClipMode(); extern "C" void __register_global_object(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); diff --git a/src/d/map/d_map_path_dmap.cpp b/src/d/map/d_map_path_dmap.cpp index 3340fecdab1..9ff7bf674f4 100644 --- a/src/d/map/d_map_path_dmap.cpp +++ b/src/d/map/d_map_path_dmap.cpp @@ -11,122 +11,12 @@ // Types: // -struct stage_tgsc_data_class {}; - -struct renderingPlusDoor_c { - /* 8002B0B4 */ ~renderingPlusDoor_c(); - /* 80040518 */ void afterDrawPath(); - /* 80040574 */ void drawDoor1(); - /* 800405B8 */ void drawDoor2(); - /* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool); - /* 80040710 */ void checkDispDoorS(int, int, f32); - /* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool); - /* 8004145C */ void beforeDrawPath(); -}; - -struct dTres_c { - struct data_s {}; - - struct typeGroupData_c {}; - - /* 8009C360 */ void getFirstData(u8); - /* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*); - /* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*); - - static u8 mTypeGroupListAll[204 + 4 /* padding */]; -}; - -struct Vec {}; - -struct renderingPlusDoorAndCursor_c { - /* 8002B008 */ ~renderingPlusDoorAndCursor_c(); - /* 800402FC */ void afterDrawPath(); - /* 80040A94 */ void getFirstData(u8); - /* 80040AB8 */ void getNextData(dTres_c::typeGroupData_c*); - /* 80040ADC */ void getIconPosition(dTres_c::typeGroupData_c*) const; - /* 80040B00 */ void drawTreasure(); - /* 80040E84 */ void drawTreasureAfterPlayer(); - /* 80041208 */ void drawIconSingle(Vec const&, f32, f32); - /* 800412C0 */ void drawCursor(Vec const&, s16, int, f32); -}; - -struct dDrawPath_c { - struct room_class {}; - - struct group_class {}; - - struct line_class {}; - - struct poly_class {}; - - /* 8002ABF0 */ bool isDrawType(int); - /* 8002AD84 */ void getLineColor(int, int); - /* 8003CA40 */ void rendering(dDrawPath_c::poly_class const*); - /* 8003CC24 */ void rendering(dDrawPath_c::room_class const*); - /* 8003C94C */ void rendering(dDrawPath_c::line_class const*); - /* 8003CCC4 */ void drawPath(); -}; - -struct renderingDAmap_c { - /* 8002B150 */ ~renderingDAmap_c(); - /* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const; - /* 8003FCC8 */ void init(u8*, u16, u16, u16, u16); - /* 8003FD08 */ void entry(f32, f32, f32, int, s8); - /* 8003FD9C */ void isSwitch(dDrawPath_c::group_class const*); - /* 8003FE18 */ void draw(); - /* 8003FE4C */ void getBackColor() const; - /* 8003FE54 */ void isRenderingFloor(int); - /* 8003FE6C */ void setSingleRoomSetting(); - /* 8003FE70 */ void isDrawRoom(int, int) const; - /* 8003FF14 */ void preDrawPath(); - /* 8003FFC4 */ void postDrawPath(); - /* 8003FFEC */ void getRoomNoSingle(); - /* 8003FFF4 */ void getFirstDrawRoomNo(); - /* 80040094 */ void getNextDrawRoomNo(int); - /* 80040134 */ void getFirstRoomPointer(); - /* 800401E8 */ void getNextRoomPointer(); - /* 800402C0 */ void isDrawPath(); - /* 800402E0 */ bool getFirstDrawLayerNo(); - /* 800402E8 */ void getNextDrawLayerNo(int); - /* 800409B4 */ void isDrawRoomIcon(int, int) const; - /* 800409E0 */ void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool, - Vec const*) const; - /* 80040AE4 */ void getIconGroupNumber(u8) const; -}; - struct mDoMtx_stack_c { /* 8000CE38 */ void scaleM(f32, f32, f32); static u8 now[48]; }; -struct dSv_memBit_c { - /* 80034934 */ void isDungeonItem(int) const; -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dStage_roomControl_c { - static u8 mStatus[65792]; -}; - -struct dStage_FileList2_dt_c {}; - -struct dRenderingMap_c { - /* 8003CDAC */ void renderingMap(); -}; - -struct dRenderingFDAmap_c { - /* 8003CE78 */ void setTevSettingNonTextureDirectColor() const; - /* 8003CF40 */ void setTevSettingIntensityTextureToCI() const; - /* 8003D188 */ void preRenderingMap(); - /* 8003D320 */ void postRenderingMap(); - /* 8003D68C */ void getDecoLineColor(int, int); - /* 8003D6B8 */ void getDecorationLineWidth(int); -}; - struct dMpath_n { struct dTexObjAggregate_c { /* 8003C85C */ void create(); @@ -136,44 +26,6 @@ struct dMpath_n { static u8 m_texObjAgg[28]; }; -struct dMpath_c { - /* 8003F758 */ u8 isExistMapPathData(); - /* 8003F760 */ void getTopBottomFloorNo(s8*, s8*); - /* 8003F7E8 */ void createWork(); - /* 8003FA40 */ void setPointer(s8, void*, int); - /* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*); - /* 8003FB70 */ void create(); - /* 8003FBD0 */ void reset(); - /* 8003FC70 */ void remove(); - - static u8 mLayerList[4]; - static f32 mMinX; - static f32 mMaxX; - static f32 mMinZ; - static f32 mMaxZ; - static f32 mAllCenterX; - static f32 mAllCenterZ; - static f32 mAllSizeX; - static f32 mAllSizeZ; -}; - -struct dMapInfo_n { - /* 8003ECA0 */ void chkGetCompass(); - /* 8003ECD8 */ void chkGetMap(); - /* 8003ED10 */ void isVisitedRoom(int); - /* 8003ED60 */ void correctionOriginPos(s8, Vec*); - /* 8003EDC0 */ void offsetPlus(dStage_FileList2_dt_c const*, Vec*); - /* 8003EDEC */ void rotAngle(dStage_FileList2_dt_c const*, Vec*); - /* 8003EE5C */ void getMapPlayerPos(); - /* 8003EF20 */ void getMapPlayerAngleY(); - /* 8003EF70 */ void getConstRestartIconPointer(); - /* 8003F02C */ void getMapRestartPos(); - /* 8003F0F8 */ void getMapRestartAngleY(); - /* 8003F19C */ void getRoomCenter(int, f32*, f32*); - /* 8003F1F4 */ void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*); - /* 8003F24C */ void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*); -}; - struct dMapInfo_c { /* 8003F40C */ void calcFloorNo(f32, bool, int); /* 8003F570 */ void calcNowStayFloorNo(f32, bool); @@ -187,12 +39,6 @@ struct dMapInfo_c { static u8 mNowStayRoomNo[4]; }; -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - // // Forward References: // @@ -316,19 +162,9 @@ extern "C" void getFirstData__7dTres_cFUc(); extern "C" void getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c(); extern "C" void getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c(); extern "C" void* __nw__FUl(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSMTXMultVecArray(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetArray(); extern "C" void GXSetMisc(); -extern "C" void GXBegin(); -extern "C" void GXLoadTexObj(); extern "C" void GXInvalidateTexAll(); -extern "C" void GXSetTevColor(); -extern "C" void GXLoadPosMtxImm(); extern "C" void _savegpr_20(); extern "C" void _savegpr_24(); extern "C" void _savegpr_25(); @@ -343,15 +179,12 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void floor(); extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mStatus__20dStage_roomControl_c[65792]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 m_texObjAgg__8dMpath_n[28]; extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */]; extern "C" extern u8 g_fmapHIO[1188]; -extern "C" extern u32 __float_max; -extern "C" extern u8 struct_80450D64[4]; // // Declarations: @@ -432,7 +265,7 @@ SECTION_SDATA2 static u8 lit_3796[4] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMapInfo_n::getMapPlayerPos() { +asm Vec dMapInfo_n::getMapPlayerPos() { nofralloc #include "asm/d/map/d_map_path_dmap/getMapPlayerPos__10dMapInfo_nFv.s" } diff --git a/src/d/menu/d_menu_window.cpp b/src/d/menu/d_menu_window.cpp index 9d509772ea7..0a94f88341c 100644 --- a/src/d/menu/d_menu_window.cpp +++ b/src/d/menu/d_menu_window.cpp @@ -401,7 +401,7 @@ bool dMw_DOWN_TRIGGER() { return mDoCPd_c::getTrigDown(mDoCPd_c::PAD_0); } -bool dMw_LEFT_TRIGGER() { +BOOL dMw_LEFT_TRIGGER() { if (mDoCPd_c::getTrigLeft(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) { return true; } else { @@ -409,7 +409,7 @@ bool dMw_LEFT_TRIGGER() { } } -bool dMw_RIGHT_TRIGGER() { +BOOL dMw_RIGHT_TRIGGER() { if (mDoCPd_c::getTrigRight(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) { return true; } else { diff --git a/src/d/menu/d_menu_window_HIO.cpp b/src/d/menu/d_menu_window_HIO.cpp index 5fb138a27ab..d92ca643fbb 100644 --- a/src/d/menu/d_menu_window_HIO.cpp +++ b/src/d/menu/d_menu_window_HIO.cpp @@ -4,125 +4,160 @@ // #include "d/menu/d_menu_window_HIO.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct dSv_player_get_item_c { - /* 80033EC8 */ void isFirstBit(u8) const; -}; - -struct dMw_HIO_c { - /* 801F9AFC */ dMw_HIO_c(); - /* 801F9B38 */ void init(); - /* 801F9E14 */ bool getBombFlag(); - /* 801F9E1C */ bool getArrowFlag(); - /* 801F9E24 */ bool getPachinkoFlag(); - /* 801F9EE0 */ ~dMw_HIO_c(); -}; - -struct dMw_DHIO_c { - /* 801F9E2C */ dMw_DHIO_c(); - /* 801F9E98 */ ~dMw_DHIO_c(); -}; - -// -// Forward References: -// - -extern "C" void __ct__9dMw_HIO_cFv(); -extern "C" void init__9dMw_HIO_cFv(); -extern "C" bool getBombFlag__9dMw_HIO_cFv(); -extern "C" bool getArrowFlag__9dMw_HIO_cFv(); -extern "C" bool getPachinkoFlag__9dMw_HIO_cFv(); -extern "C" void __ct__10dMw_DHIO_cFv(); -extern "C" void __dt__10dMw_DHIO_cFv(); -extern "C" void __dt__9dMw_HIO_cFv(); -extern "C" void __sinit_d_menu_window_HIO_cpp(); - -// -// External References: -// - -extern "C" void isFirstBit__21dSv_player_get_item_cCFUc(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_26(); -extern "C" void _restgpr_26(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; - // // Declarations: // -/* ############################################################################################## */ -/* 803BE8E0-803BE8EC 01BA00 000C+00 2/2 0/0 0/0 .data __vt__10dMw_DHIO_c */ -SECTION_DATA extern void* __vt__10dMw_DHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dMw_DHIO_cFv, -}; - -/* 803BE8EC-803BE8F8 01BA0C 000C+00 2/2 0/0 0/0 .data __vt__9dMw_HIO_c */ -SECTION_DATA extern void* __vt__9dMw_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__9dMw_HIO_cFv, -}; +inline int dComIfGs_isItemFirstBit(u8 i_no) { + return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no); +} /* 801F9AFC-801F9B38 1F443C 003C+00 1/1 0/0 0/0 .text __ct__9dMw_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMw_HIO_c::dMw_HIO_c() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s" +dMw_HIO_c::dMw_HIO_c() { + init(); } -#pragma pop /* ############################################################################################## */ /* 80450748-8045074C 0001C8 0003+01 1/1 0/0 0/0 .sdata m_cloth_item$3797 */ -SECTION_SDATA static u8 m_cloth_item[3 + 1 /* padding */] = { - 0x2F, - 0x30, - 0x31, - /* padding */ - 0x00, +static u8 m_cloth_item[3] = { + WEAR_KOKIRI, + ARMOR, + WEAR_ZORA, }; /* 8045074C-80450750 0001CC 0004+00 1/1 0/0 0/0 .sdata m_sword_item$3798 */ -SECTION_SDATA static u8 m_sword_item[4] = { - 0x28, - 0x29, - 0x49, - 0x3F, +static u8 m_sword_item[4] = { + SWORD, + MASTER_SWORD, + LIGHT_SWORD, + WOOD_STICK, }; /* 80450750-80450758 0001D0 0003+05 1/1 0/0 0/0 .sdata m_shield_item$3799 */ -SECTION_SDATA static u8 m_shield_item[3 + 5 /* padding */] = { - 0x2B, - 0x2C, - 0x2A, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, +static u8 m_shield_item[3] = { + SHIELD, + HYLIA_SHIELD, + WOOD_SHIELD, }; /* 801F9B38-801F9E14 1F4478 02DC+00 1/1 0/0 0/0 .text init__9dMw_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMw_HIO_c::init() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s" +void dMw_HIO_c::init() { + mArrowFlag = 0; + mBombFlag = 0; + mPachinkoFlag = 0; + + mLifeCopy = 0; + mLife = 0; + mMaxLifeCopy = 0; + mMaxLife = 0; + mMagicCopy = 0; + mMagic = 0; + mMaxMagicCopy = 0; + mMaxMagic = 0; + mOilCopy = 0; + mOil = 0; + mMaxOilCopy = 0; + mMaxOil = 0; + mOxygenCopy = 0; + mOxygen = 0; + mMaxOxygenCopy = 0; + mMaxOxygen = 0; + mEnableMagicCopy = false; + mEnableMagic = false; + mEnableArrowDropsCopy = false; + mEnableArrowDrops = false; + mRupeesCopy = 0; + mRupees = 0; + mWalletSizeCopy = WALLET; + mWalletSize = WALLET; + mKeysCopy = 0; + mKeys = 0; + field_0x47 = 0; + field_0x23 = 0; + mEnableOxygenMeterCopy = false; + mEnableOxygenMeter = false; + mPoesCopy = 0; + mPoes = 0; + mDonationAmountCopy = 0; + mDonationAmount = 0; + + for (int i = 0; i < 24; i++) { + mItemsCopy[i] = NO_ITEM; + mItems[i] = NO_ITEM; + field_0x7a[i] = 0; + } + + for (int i = 0; i < 4; i++) { + mBottleNumCopy[i] = 0; + mBottleNum[i] = 0; + } + + for (int i = 0; i < 3; i++) { + mBombNumCopy[i] = 0; + mBombNum[i] = 0; + } + + mScentCopy = NO_ITEM; + mScent = NO_ITEM; + field_0xa8 = 0; + field_0xf4 = 0; + field_0xea = 0; + + for (int i = 0; i < 4; i++) { + bool swordBit = dComIfGs_isItemFirstBit(m_sword_item[i]); + mSwordsCopy[i] = swordBit; + mSwords[i] = swordBit; + } + + for (int i = 0; i < 3; i++) { + bool shieldBit = dComIfGs_isItemFirstBit(m_shield_item[i]); + mShieldsCopy[i] = shieldBit; + mShields[i] = shieldBit; + + bool clothesBit = dComIfGs_isItemFirstBit(m_cloth_item[i]); + mClothesCopy[i] = clothesBit; + mClothes[i] = clothesBit; + } + + mBombBagLV2Copy = false; + mBombBagLV2 = false; + + for (int i = 0; i < 3; i++) { + mLV2KeyShardsCopy[i] = false; + mLV2KeyShards[i] = false; + } + + for (int i = 0; i < 2; i++) { + mLV5ItemCopy[i] = false; + mLV5Item[i] = false; + } + + for (int i = 0; i < 24; i++) { + mGoldBugCopy[i] = false; + mGoldBug[i] = false; + } + + for (int i = 0; i < 8; i++) { + field_0x101[i] = 0; + field_0xf9[i] = 0; + field_0x111[i] = 0; + field_0x109[i] = 0; + } + + for (int i = 0; i < 4; i++) { + mFusedShadowCopy[i] = false; + mFusedShadow[i] = false; + } + + for (int i = 0; i < 4; i++) { + mMirrorShardCopy[i] = false; + mMirrorShard[i] = false; + } } -#pragma pop /* 801F9E14-801F9E1C 1F4754 0008+00 0/0 1/1 0/0 .text getBombFlag__9dMw_HIO_cFv */ bool dMw_HIO_c::getBombFlag() { @@ -140,64 +175,29 @@ bool dMw_HIO_c::getPachinkoFlag() { } /* 801F9E2C-801F9E98 1F476C 006C+00 1/1 0/0 0/0 .text __ct__10dMw_DHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMw_DHIO_c::dMw_DHIO_c() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s" +dMw_DHIO_c::dMw_DHIO_c() { + for (int i = 0; i < 32; i++) { + mMap[i] = false; + mCompass[i] = false; + mBossKey[i] = false; + mBossClear[i] = false; + mHeartContainer[i] = false; + mBossDemo[i] = false; + mPortal[i] = false; + mMidBossClear[i] = false; + mMapCopy[i] = false; + mCompassCopy[i] = false; + mBossKeyCopy[i] = false; + mBossClearCopy[i] = false; + mHeartContainerCopy[i] = false; + mBossDemoCopy[i] = false; + mPortalCopy[i] = false; + mMidBossClearCopy[i] = false; + } } -#pragma pop - -/* 801F9E98-801F9EE0 1F47D8 0048+00 2/1 0/0 0/0 .text __dt__10dMw_DHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMw_DHIO_c::~dMw_DHIO_c() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s" -} -#pragma pop - -/* 801F9EE0-801F9F28 1F4820 0048+00 2/1 0/0 0/0 .text __dt__9dMw_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMw_HIO_c::~dMw_HIO_c() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 8042E860-8042E86C 05B580 000C+00 1/1 0/0 0/0 .bss @3773 */ -static u8 lit_3773[12]; /* 8042E86C-8042E99C 05B58C 0130+00 0/1 4/4 0/0 .bss g_mwHIO */ -extern u8 g_mwHIO[304]; -u8 g_mwHIO[304]; - -/* 8042E99C-8042E9A8 05B6BC 000C+00 0/1 0/0 0/0 .bss @3774 */ -#pragma push -#pragma force_active on -static u8 lit_3774[12]; -#pragma pop +dMw_HIO_c g_mwHIO; /* 8042E9A8-8042EBB0 05B6C8 0208+00 0/1 1/1 0/0 .bss g_mwDHIO */ -extern u8 g_mwDHIO[520]; -u8 g_mwDHIO[520]; - -/* 801F9F28-801F9F84 1F4868 005C+00 0/0 1/0 0/0 .text __sinit_d_menu_window_HIO_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_menu_window_HIO_cpp() { - nofralloc -#include "asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x801F9F28, __sinit_d_menu_window_HIO_cpp); -#pragma pop +dMw_DHIO_c g_mwDHIO; diff --git a/src/d/meter/d_meter2.cpp b/src/d/meter/d_meter2.cpp index 5af6b8a96ef..24b8d4a645a 100644 --- a/src/d/meter/d_meter2.cpp +++ b/src/d/meter/d_meter2.cpp @@ -290,13 +290,6 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // -/* ############################################################################################## */ -/* 80399338-80399338 025998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399338 = "F_SP00"; -#pragma pop - /* 804549C8-804549CC 002FC8 0004+00 9/9 0/0 0/0 .sdata2 @4662 */ SECTION_SDATA2 static u8 lit_4662[4] = { 0x00, @@ -308,31 +301,332 @@ SECTION_SDATA2 static u8 lit_4662[4] = { /* 804549CC-804549D0 002FCC 0004+00 13/13 0/0 0/0 .sdata2 @4663 */ SECTION_SDATA2 static f32 lit_4663 = 1.0f; -/* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2_c::_create() { - nofralloc -#include "asm/d/meter/d_meter2/_create__9dMeter2_cFv.s" +inline u16 dComIfGs_getLife() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife(); +} + +inline u16 i_dComIfGs_getRupee() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getRupee(); +} + +inline u8 dComIfGp_getRStatus() { + return g_dComIfG_gameInfo.play.getRStatus(); +} + +inline void dComIfGp_setBottleStatus(u8 param_0, u8 param_1) { + g_dComIfG_gameInfo.play.setBottleStatus(param_0, param_1); +} + +inline u8 dComIfGp_getDoStatus() { + return g_dComIfG_gameInfo.play.getDoStatus(); +} + +inline void dMeter2Info_offUseButton(int flag) { + g_meter2_info.offUseButton(flag); +} + +/* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */ +// this can be cleaned up with float literals when everything else is decompiled +int dMeter2_c::_create() { + stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); + if (dStage_stagInfo_GetUpButton(stag_info) == 1) { + mpHeap = fopMsgM_createExpHeap(0x5A400, NULL); + } else { + mpHeap = fopMsgM_createExpHeap(0x60800, NULL); + } + + JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap); + mpHeap->getTotalFreeSize(); + + if (!strcmp(dComIfGp_getStartStageName(), "F_SP00")) { + dMeter2Info_setNowCount(0); + dMeter2Info_setMaxCount(0); + } + + field_0x128 = 0; + field_0x12c = field_0x128; + field_0x124 = 0; + mSubContents = 0; + mSubContentsStringType = 0; + field_0x1e6 = 0; + field_0x1e7 = 0; + + mItemMaxNum[2] = dComIfGs_getArrowMax(); + mArrowNum = dComIfGs_getArrowNum(); + mItemMaxNum[3] = dComIfGs_getPachinkoMax(); + mPachinkoNum = dComIfGs_getPachinkoNum(); + + for (int i = 0; i < 3; i++) { + mBombMax[i] = dComIfGs_getBombMax(dComIfGs_getItem((u8)(i + SLOT_15), 1)); + mBombNum[i] = dComIfGs_getBombNum(i); + } + + for (int i = 0; i < 2; i++) { + mItemMaxNum[i] = dComIfGs_getSelectItemIndex(i); + } + + for (int i = 0; i < 4; i++) { + mBottleNum[i] = dComIfGs_getBottleNum(i); + } + + field_0x1e8 = 0; + field_0x1e9 = 0; + field_0x1ea = 0; + field_0x1eb = 0; + + for (int i = 0; i < 5; i++) { + field_0x1b8[i] = 0; + } + + field_0x1ec = 0; + field_0x1ed = 0; + field_0x1ee = 0; + + mNowLifeGauge = dComIfGs_getLife(); + dComIfGp_setItemNowLife((u8)mNowLifeGauge); + + mMaxLife = dComIfGs_getMaxLife(); + + mNowMagic = dComIfGs_getMagic(); + dComIfGp_setItemNowMagic(mNowMagic); + + mMaxMagic = dComIfGs_getMaxMagic(); + + mNowOil = dComIfGs_getOil(); + dComIfGp_setItemNowOil(mNowOil); + + mMaxOil = dComIfGs_getMaxOil(); + + mNowOxygen = dComIfGp_getOxygen(); + dComIfGp_setNowOxygen(mNowOxygen); + + mMaxOxygen = dComIfGp_getMaxOxygen(); + + field_0x130 = FLOAT_LABEL(lit_4662); + + u8 dark_area = dComIfGp_getStartStageDarkArea(); + mLightDropNum = dComIfGs_getLightDropNum(dark_area); + + mNeedLightDropNum = dComIfGp_getNeedLightDropNum(); + + mRupeeNum = i_dComIfGs_getRupee(); + mKeyNum = dComIfGs_getKeyNum(); + + field_0x1c4 = dComIfGp_getDoStatus(); + field_0x1dc = dComIfGp_isDoSetFlag(2); + + int i = 0; + f32 temp0 = FLOAT_LABEL(lit_4662); + for (; i < 2; i++) { + field_0x134[i] = temp0; + field_0x13c[i] = temp0; + } + field_0x144 = lit_4663; + + field_0x1c5 = dComIfGp_getAStatus(); + field_0x1c6 = 0; + field_0x1dd = dComIfGp_isASetFlag(2); + + i = 0; + f32 temp1 = FLOAT_LABEL(lit_4662); + for (; i < 2; i++) { + field_0x148[i] = temp1; + field_0x150[i] = temp1; + } + field_0x158 = lit_4663; + + field_0x1e4 = 0; + field_0x1e2 = dComIfGs_getSelectEquipSword(); + field_0x1e3 = 0; + + field_0x1fe = 0; + field_0x1fd = 0; + field_0x1ff = 0; + field_0x200 = 0; + field_0x201 = 0; + + field_0x1c7 = dComIfGs_getCollectSmell(); + field_0x1c8 = dComIfGp_getRStatus(); + field_0x1de = dComIfGp_isRSetFlag(2); + field_0x1df = dComIfGp_isXSetFlag(2); + field_0x1e0 = dComIfGp_isYSetFlag(2); + + for (int i = 0; i < 2; i++) { + dComIfGp_setSelectItem(i); + } + + field_0x1d2[0] = dComIfGp_getSelectItem(0); + field_0x1d2[2] = dComIfGp_getSelectItem(1); + field_0x1d2[1] = dComIfGp_getXStatus(); + field_0x1d2[3] = dComIfGp_getYStatus(); + f32 temp2 = FLOAT_LABEL(lit_4662); + field_0x188 = temp2; + field_0x18c = temp2; + + for (int i = 0; i < 2; i++) { + field_0x1d6[i] = dMeter2Info_isDirectUseItem(i); + field_0x1d8[i] = dComIfGp_getSelectItemNum(i); + } + + field_0x1e1 = 0; + field_0x1b4 = 0; + + f32 temp3 = FLOAT_LABEL(lit_4662); + field_0x15c = temp3; + + for (int i = 0; i < 4; i++) { + field_0x160[i] = temp3; + field_0x174[i] = temp3; + } + field_0x190 = 0; + + field_0x1c9 = dComIfGp_getZStatus(); + field_0x1ca = dComIfGp_get3DStatus(); + field_0x1cb = dComIfGp_getCStickStatus(); + field_0x1cc = dComIfGp_getSButtonStatus(); + field_0x1cd = dComIfGp_getNunStatus(); + field_0x1ce = dComIfGp_getRemoConStatus(); + field_0x1cf = dComIfGp_getNunZStatus(); + field_0x1d0 = dComIfGp_getNunCStatus(); + field_0x1d1 = dComIfGp_getBottleStatus(); + + field_0x1ac = dMeter2Info_isUseButton(16); + field_0x19a = 0; + + mpMeterDraw = new dMeter2Draw_c(mpHeap); + + field_0x130 = mpMeterDraw->getNowLightDropRateCalc(); + mpHeap->getTotalFreeSize(); + + for (int i = 0; i < 2; i++) { + if (field_0x128 == 0) { + if (field_0x1d2[i * 2] == BOMB_BAG_LV1 || field_0x1d2[i * 2] == NORMAL_BOMB || + field_0x1d2[i * 2] == WATER_BOMB || field_0x1d2[i * 2] == POKE_BOMB) { + mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), + dComIfGp_getSelectItemMaxNum(i)); + } else if (field_0x1d2[i * 2] == BEE_CHILD) { + mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), + dComIfGp_getSelectItemMaxNum(i)); + } else if (field_0x1d2[i * 2] == BOW || field_0x1d2[i * 2] == LIGHT_ARROW || + field_0x1d2[i * 2] == ARROW_LV1 || field_0x1d2[i * 2] == ARROW_LV2 || + field_0x1d2[i * 2] == ARROW_LV3 || field_0x1d2[i * 2] == HAWK_ARROW) { + mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax()); + } else if (field_0x1d2[i * 2] == PACHINKO) { + mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); + } else if (field_0x1d2[i * 2] == BOMB_ARROW) { + u8 item_num = dComIfGp_getSelectItemNum(i); + u8 item_max = dComIfGp_getSelectItemMaxNum(i); + if (item_num > mArrowNum) { + item_num = mArrowNum; + } + u8 temp = dComIfGs_getArrowMax() & 0xFF; + if (item_max < temp) { + item_max = temp; + } + mpMeterDraw->setItemNum(i, item_num, item_max); + } + } + } + + mpMap = NULL; + if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) { + mpMap = new dMeterMap_c(mpMeterDraw->getMainScreenPtr()); + } else { + if (g_meter2_info.mMapStatus == 2) { + g_meter2_info.mMapStatus = 0; + } + } + dMeter2Info_setMeterMapClass(mpMap); + + mpHeap->getTotalFreeSize(); + mpSubHeap = fopMsgM_createExpHeap(0x5000, mpHeap); + field_0x108 = NULL; + field_0x110 = NULL; + field_0x114 = NULL; + field_0x118 = NULL; + + mpHeap->getTotalFreeSize(); + field_0x11c = NULL; + mDoExt_setCurrentHeap(heap); + return 4; +} + +inline BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id); +} + +inline BOOL dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); } -#pragma pop /* 8021F128-8021F370 219A68 0248+00 1/1 0/0 0/0 .text _execute__9dMeter2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2_c::_execute() { - nofralloc -#include "asm/d/meter/d_meter2/_execute__9dMeter2_cFv.s" +int dMeter2_c::_execute() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap); + + if (!dComIfGs_isCollectMirror(0) && dComIfGs_isEventBit(0x5420)) { + dComIfGs_onCollectMirror(0); + } + + if (!dComIfGs_isCollectCrystal(3) && dComIfGs_isEventBit(0x5410)) { + dComIfGs_onCollectCrystal(3); + } + + checkStatus(); + mpMeterDraw->exec(field_0x124); + + moveLife(); + moveKantera(); + moveOxygen(); + moveLightDrop(); + moveRupee(); + moveKey(); + moveButtonXY(); + moveButtonA(); + moveButtonB(); + moveButtonR(); + moveButtonZ(); + moveButton3D(); + moveButtonC(); + moveButtonS(); + moveButtonCross(); + moveTouchSubMenu(); + moveBombNum(); + moveArrowNum(); + movePachinkoNum(); + moveBottleNum(); + + if (mpMap != NULL) { + mpMap->_move(field_0x124); + } else { + dMeterMap_c::meter_map_move(field_0x124); + } + + moveSubContents(); + move2DContents(); + + if (!dComIfGp_isPauseFlag() && !dComIfGp_event_runCheck()) { + dMeter2Info_decHotSpringTimer(); + } + + dMeter2Info_allUseButton(); + dMeter2Info_offUseButton(0x800); + dMeter2Info_resetGameStatus(); + dComIfGp_setNunStatus(0, 0, 0); + dComIfGp_setRemoConStatus(0, 0, 0); + dComIfGp_setNunZStatus(0, 0); + dComIfGp_setNunCStatus(0, 0); + dComIfGp_setBottleStatus(0, 0); + dComIfGp_setCStickStatus(0, 0, 0); + + mDoExt_setCurrentHeap(heap); + return 1; } -#pragma pop /* 8021F370-8021F49C 219CB0 012C+00 1/1 0/0 0/0 .text _draw__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeter2_c::_draw() { +asm int dMeter2_c::_draw() { nofralloc #include "asm/d/meter/d_meter2/_draw__9dMeter2_cFv.s" } @@ -350,7 +644,7 @@ SECTION_SDATA2 static f32 lit_4837[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeter2_c::_delete() { +asm int dMeter2_c::_delete() { nofralloc #include "asm/d/meter/d_meter2/_delete__9dMeter2_cFv.s" } @@ -367,15 +661,16 @@ asm void dMeter2_c::emphasisButtonDelete() { } #pragma pop -/* 8021F780-8021F7B0 21A0C0 0030+00 0/0 0/0 1/1 .text setLifeZero__9dMeter2_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2_c::setLifeZero() { - nofralloc -#include "asm/d/meter/d_meter2/setLifeZero__9dMeter2_cFv.s" +inline void i_dComIfGp_setItemLifeCount(f32 amount, u8 type) { + g_dComIfG_gameInfo.play.setItemLifeCount(amount, type); +} + +/* 8021F780-8021F7B0 21A0C0 0030+00 0/0 0/0 1/1 .text setLifeZero__9dMeter2_cFv */ +void dMeter2_c::setLifeZero() { + dComIfGs_setLife(1); + setNowLifeGauge(1); + i_dComIfGp_setItemLifeCount(lit_4837[0], 0); } -#pragma pop /* ############################################################################################## */ /* 803BFA28-803BFA54 -00001 002C+00 1/1 0/0 0/0 .data @5038 */ @@ -831,45 +1126,30 @@ asm void dMeter2_c::isPachinkoEquip() { #pragma pop /* 80225AA0-80225AC0 2203E0 0020+00 1/0 0/0 0/0 .text dMeter2_Draw__FP9dMeter2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMeter2_Draw(dMeter2_c* param_0) { - nofralloc -#include "asm/d/meter/d_meter2/dMeter2_Draw__FP9dMeter2_c.s" +static int dMeter2_Draw(dMeter2_c* p_meter) { + return p_meter->_draw(); } -#pragma pop /* 80225AC0-80225AE0 220400 0020+00 1/0 0/0 0/0 .text dMeter2_Execute__FP9dMeter2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMeter2_Execute(dMeter2_c* param_0) { - nofralloc -#include "asm/d/meter/d_meter2/dMeter2_Execute__FP9dMeter2_c.s" +static int dMeter2_Execute(dMeter2_c* p_meter) { + return p_meter->_execute(); } -#pragma pop /* 80225AE0-80225AE8 220420 0008+00 1/0 0/0 0/0 .text dMeter2_IsDelete__FP9dMeter2_c */ -static bool dMeter2_IsDelete(dMeter2_c* param_0) { - return true; +static int dMeter2_IsDelete(dMeter2_c* p_meter) { + return 1; } /* 80225AE8-80225B08 220428 0020+00 1/0 0/0 0/0 .text dMeter2_Delete__FP9dMeter2_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dMeter2_Delete(dMeter2_c* param_0) { - nofralloc -#include "asm/d/meter/d_meter2/dMeter2_Delete__FP9dMeter2_c.s" +static int dMeter2_Delete(dMeter2_c* p_meter) { + return p_meter->_delete(); } -#pragma pop /* 80225B08-80225BB8 220448 00B0+00 1/0 0/0 0/0 .text dMeter2_Create__FP9msg_class */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dMeter2_Create(msg_class* param_0) { +static asm int dMeter2_Create(msg_class* param_0) { nofralloc #include "asm/d/meter/d_meter2/dMeter2_Create__FP9msg_class.s" } @@ -877,10 +1157,8 @@ static asm void dMeter2_Create(msg_class* param_0) { /* ############################################################################################## */ /* 803BFA54-803BFA68 -00001 0014+00 1/0 0/0 0/0 .data l_dMeter2_Method */ -SECTION_DATA static void* l_dMeter2_Method[5] = { - (void*)dMeter2_Create__FP9msg_class, (void*)dMeter2_Delete__FP9dMeter2_c, - (void*)dMeter2_Execute__FP9dMeter2_c, (void*)dMeter2_IsDelete__FP9dMeter2_c, - (void*)dMeter2_Draw__FP9dMeter2_c, +SECTION_DATA static dMeter2_Method l_dMeter2_Method[5] = { + (dMeter2_Method)dMeter2_Create, dMeter2_Delete, dMeter2_Execute, dMeter2_IsDelete, dMeter2_Draw, }; /* 803BFA68-803BFA90 -00001 0028+00 0/0 0/0 1/0 .data g_profile_METER2 */ diff --git a/src/d/meter/d_meter2_draw.cpp b/src/d/meter/d_meter2_draw.cpp index 4c6cfff35b2..85392410c69 100644 --- a/src/d/meter/d_meter2_draw.cpp +++ b/src/d/meter/d_meter2_draw.cpp @@ -4,6 +4,9 @@ // #include "d/meter/d_meter2_draw.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "d/com/d_com_inf_game.h" +#include "d/meter/d_meter_HIO.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,35 +14,6 @@ // Types: // -struct dSv_player_item_c { - /* 80033030 */ void getItem(int, bool) const; -}; - -struct dSv_light_drop_c { - /* 80034340 */ void getLightDropNum(u8) const; - /* 8003439C */ void isLightDropGetFlag(u8) const; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dMsgObject_c { - /* 802370E8 */ void isHowlMessage(); - /* 8023822C */ void getStatus(); -}; - -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*); - /* 8021C370 */ void getStringKana(u32, char*, JMSMesgEntry_c*); - /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); - /* 8021C950 */ void isDirectUseItem(int); - /* 8021CF08 */ void readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, - J2DPicture*, void*, J2DPicture*, int); -}; - struct dKantera_icon_c { /* 801AE938 */ dKantera_icon_c(); /* 801AEB7C */ void setAlphaRate(f32); @@ -48,12 +22,6 @@ struct dKantera_icon_c { /* 801AEC44 */ void setNowGauge(u16, u16); }; -struct dItem_data { - static void* item_resource[1530]; -}; - -struct JAISoundID {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); @@ -63,10 +31,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - // // Forward References: // @@ -258,13 +222,8 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" void* item_resource__10dItem_data[1530]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_drawHIO[3880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" extern u8 g_MsgObject_HIO_c[1040]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -745,6 +704,60 @@ SECTION_DEAD static char const* const stringBase_80398A0A = "zelda_game_image_sa #pragma pop /* 80211E64-80212190 20C7A4 032C+00 1/1 0/0 0/0 .text initMagic__13dMeter2Draw_cFv */ +#ifdef NONMATCHING +void dMeter2Draw_c::initMagic() { + field_0x550 = 0.0f; + field_0x554 = 0.0f; + + mpMagicParent = new CPaneMgr(mpKanteraScreen, 'magic_n', 2, NULL); + mpMagicBase = new CPaneMgr(mpKanteraScreen, 'mm_base', 0, NULL); + mpMagicFrameL = new CPaneMgr(mpKanteraScreen, 'm_w_l_n', 2, NULL); + mpMagicFrameR = new CPaneMgr(mpKanteraScreen, 'm_w_r_n', 2, NULL); + mpMagicMeter = new CPaneMgr(mpKanteraScreen, 'mm_00', 0, NULL); + + void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk", + dComIfGp_getMain2DArchive()); + field_0x53c = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res); + field_0x53c->searchUpdateMaterialID(mpKanteraScreen); + + res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk", + dComIfGp_getMain2DArchive()); + field_0x540 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res); + field_0x540->searchUpdateMaterialID(mpKanteraScreen); + + res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk", + dComIfGp_getMain2DArchive()); + field_0x544 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res); + field_0x544->searchUpdateMaterialID(mpKanteraScreen); + + field_0x558 = 0.0f; + mpMagicParent->setAlphaRate(0.0f); + + f32 offsetX = g_drawHIO.mLifeTopPosX; + f32 offsetY = 0.0f; + + if (dComIfGs_getMaxLife() <= 50) { + offsetY = g_drawHIO.mLifeTopPosY; + } + + for (int i = 0; i < 3; i++) { + field_0x5fc[i] = 0.0f; + field_0x742[i] = 0; + } + + u8 magic = dComIfGs_getMagic(); + u8 max_magic = dComIfGs_getMaxMagic(); + drawMagic(max_magic, magic, g_drawHIO.mMagicMeterPosX + offsetX, + g_drawHIO.mMagicMeterPosY + offsetY); + setAlphaMagicChange(true); + + u16 oil = dComIfGs_getOil(); + u16 max_oil = dComIfGs_getMaxOil(); + drawKantera(max_oil, oil, g_drawHIO.mLanternMeterPosX + offsetX, + g_drawHIO.mLanternMeterPosY + (g_drawHIO.mNoMagicPosY + offsetY)); + setAlphaKanteraChange(true); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -753,6 +766,7 @@ asm void dMeter2Draw_c::initMagic() { #include "asm/d/meter/d_meter2_draw/initMagic__13dMeter2Draw_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80398640-803986C0 024CA0 0080+00 0/1 0/0 0/0 .rodata tuta_0$5094 */ @@ -1072,6 +1086,26 @@ asm void dMeter2Draw_c::drawKanteraScreen(u8 param_0) { SECTION_SDATA2 static f32 lit_6175 = 0.03125f; /* 80215290-80215380 20FBD0 00F0+00 1/1 0/0 0/0 .text drawMagic__13dMeter2Draw_cFssff */ +#ifdef NONMATCHING +void dMeter2Draw_c::drawMagic(s16 max_count, s16 now_count, f32 x_pos, f32 y_pos) { + f32 x_diff = mpMagicFrameR->getInitPosX() - mpMagicFrameL->getInitPosX(); + + field_0x584 = mpMagicMeter->getInitSizeX() * (lit_6175 * now_count); + field_0x590 = mpMagicMeter->getInitSizeY(); + + field_0x59c = mpMagicFrameL->getInitPosX() * x_diff * (max_count * lit_6175); + field_0x5a8 = mpMagicFrameL->getInitPosY(); + + field_0x5b4 = mpMagicBase->getInitSizeX() * (max_count * lit_6175); + field_0x5c0 = mpMagicBase->getInitSizeY(); + + field_0x5cc = g_drawHIO.mMagicMeterScale; + field_0x5d8 = g_drawHIO.mMagicMeterScale; + + field_0x5e4 = x_pos; + field_0x5f0 = y_pos; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1080,6 +1114,7 @@ asm void dMeter2Draw_c::drawMagic(s16 param_0, s16 param_1, f32 param_2, f32 par #include "asm/d/meter/d_meter2_draw/drawMagic__13dMeter2Draw_cFssff.s" } #pragma pop +#endif /* 80215380-802154A8 20FCC0 0128+00 2/2 0/0 0/0 .text setAlphaMagicChange__13dMeter2Draw_cFb */ #pragma push @@ -1207,7 +1242,7 @@ void dMeter2Draw_c::setAlphaLightDropChange(bool param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeter2Draw_c::getNowLightDropRateCalc() { +asm f32 dMeter2Draw_c::getNowLightDropRateCalc() { nofralloc #include "asm/d/meter/d_meter2_draw/getNowLightDropRateCalc__13dMeter2Draw_cFv.s" } diff --git a/src/d/meter/d_meter2_info.cpp b/src/d/meter/d_meter2_info.cpp index 3b89e0070a6..d4b84b17fd3 100644 --- a/src/d/meter/d_meter2_info.cpp +++ b/src/d/meter/d_meter2_info.cpp @@ -5,6 +5,7 @@ #include "d/meter/d_meter2_info.h" #include "d/com/d_com_inf_game.h" +#include "d/msg/d_msg_object.h" #include "d/save/d_save.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/d/meter/d_meter_HIO.cpp b/src/d/meter/d_meter_HIO.cpp index 34e51d8e757..1974afaff46 100644 --- a/src/d/meter/d_meter_HIO.cpp +++ b/src/d/meter/d_meter_HIO.cpp @@ -1685,6 +1685,27 @@ dMeter_fmapHIO_c::dMeter_fmapHIO_c() { } /* 80200BCC-80200CD4 1FB50C 0108+00 2/1 0/0 0/0 .text __dt__16dMeter_fmapHIO_cFv */ +#ifdef NONMATCHING +dMeter_fmapHIO_c::~dMeter_fmapHIO_c() { + if (field_0xc != NULL) { + mDoExt_getGameHeap()->free(field_0xc); + field_0xc = NULL; + } + + if (field_0x10 != NULL) { + mDoExt_getGameHeap()->free(field_0x10); + field_0x10 = NULL; + } + + if (field_0x8 != NULL) { + field_0x8->unmount(); + delete field_0x8; + field_0x8 = NULL; + } + + delete mMapIconHIO; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1694,6 +1715,7 @@ extern "C" asm void __dt__16dMeter_fmapHIO_cFv() { #include "asm/d/meter/d_meter_HIO/__dt__16dMeter_fmapHIO_cFv.s" } #pragma pop +#endif /* 80200CD4-80200D58 1FB614 0084+00 1/1 0/0 0/0 .text __ct__18dMeter_cursorHIO_cFv */ dMeter_cursorHIO_c::dMeter_cursorHIO_c() { @@ -1875,65 +1897,17 @@ extern "C" asm void __dt__16dMeter_drawHIO_cFv() { /* 8020123C-80201284 1FBB7C 0048+00 2/1 0/0 0/0 .text __dt__16dMeter_menuHIO_cFv */ dMeter_menuHIO_c::~dMeter_menuHIO_c() {} -/* ############################################################################################## */ -/* 8042EBB0-8042EBBC 05B8D0 000C+00 1/1 0/0 0/0 .bss @3766 */ -static u8 lit_3766[12]; - -/* 8042EBBC-8042EBC8 05B8DC 000C+00 0/1 0/0 0/0 .bss @3767 */ -#pragma push -#pragma force_active on -static u8 lit_3767[12]; -#pragma pop +/* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */ +dMeter_menuHIO_c g_menuHIO; /* 8042EBC8-8042FAF0 05B8E8 0F28+00 0/1 157/157 0/0 .bss g_drawHIO */ -extern u8 g_drawHIO[3880]; -u8 g_drawHIO[3880]; - -/* 8042FAF0-8042FAFC 05C810 000C+00 0/1 0/0 0/0 .bss @3768 */ -#pragma push -#pragma force_active on -static u8 lit_3768[12]; -#pragma pop +dMeter_drawHIO_c g_drawHIO; /* 8042FAFC-8042FC54 05C81C 0158+00 0/1 19/19 0/0 .bss g_ringHIO */ -extern u8 g_ringHIO[344]; -u8 g_ringHIO[344]; - -/* 8042FC54-8042FC60 05C974 000C+00 0/1 0/0 0/0 .bss @3769 */ -#pragma push -#pragma force_active on -static u8 lit_3769[12]; -#pragma pop +dMeter_ringHIO_c g_ringHIO; /* 8042FC60-80430104 05C980 04A4+00 0/1 54/54 0/0 .bss g_fmapHIO */ -extern u8 g_fmapHIO[1188]; -u8 g_fmapHIO[1188]; - -/* 80430104-80430110 05CE24 000C+00 0/1 0/0 0/0 .bss @3770 */ -#pragma push -#pragma force_active on -static u8 lit_3770[12]; -#pragma pop +dMeter_fmapHIO_c g_fmapHIO; /* 80430110-80430158 05CE30 0044+04 0/1 6/6 1/1 .bss g_cursorHIO */ -extern u8 g_cursorHIO[68 + 4 /* padding */]; -u8 g_cursorHIO[68 + 4 /* padding */]; - -/* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */ -extern u8 g_menuHIO[8]; -u8 g_menuHIO[8]; - -/* 80201284-80201328 1FBBC4 00A4+00 0/0 1/0 0/0 .text __sinit_d_meter_HIO_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_meter_HIO_cpp() { - nofralloc -#include "asm/d/meter/d_meter_HIO/__sinit_d_meter_HIO_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80201284, __sinit_d_meter_HIO_cpp); -#pragma pop +dMeter_cursorHIO_c g_cursorHIO; diff --git a/src/d/meter/d_meter_map.cpp b/src/d/meter/d_meter_map.cpp index f19625aff0c..e333a537ab9 100644 --- a/src/d/meter/d_meter_map.cpp +++ b/src/d/meter/d_meter_map.cpp @@ -4,67 +4,13 @@ // #include "d/meter/d_meter_map.h" +#include "Z2AudioLib/Z2AudioMgr.h" +#include "d/com/d_com_inf_game.h" +#include "d/menu/d_menu_window.h" +#include "d/msg/d_msg_object.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - -struct dSv_memBit_c { - /* 80034934 */ void isDungeonItem(int) const; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 8003498C */ void onEventBit(u16); - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dStage_roomControl_c { - /* 80024384 */ void getStatusRoomDt(int); -}; - -struct dMsgObject_c { - /* 8023822C */ void getStatus(); -}; - -struct dMap_c { - /* 80029874 */ dMap_c(int, int, int, int); - /* 8002A32C */ void _move(f32, f32, int, f32); - /* 8002AB54 */ void _draw(); -}; - -struct dMapInfo_n { - /* 8003EE5C */ void getMapPlayerPos(); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct J2DPicture { - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; +#include "f_op/f_op_overlap_mng.h" // // Forward References: @@ -132,78 +78,156 @@ extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_meter2_info[248]; -extern "C" extern u8 struct_80450D64[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // // Declarations: // -/* 8020D49C-8020D528 207DDC 008C+00 1/1 0/0 0/0 .text isEnableDispMap__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::isEnableDispMap() { - nofralloc -#include "asm/d/meter/d_meter_map/isEnableDispMap__11dMeterMap_cFv.s" +inline BOOL dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); +} + +inline u16 dComIfGp_event_checkHind(u16 flag) { + if (!dComIfGp_event_runCheck()) { + return false; + } + return g_dComIfG_gameInfo.play.getEvent().checkHind(flag); +} + +inline u16 dComIfGp_event_chkEventFlag(u16 flag) { + return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); +} + +inline dStage_stageDt_c* dComIfGp_getStage() { + return &g_dComIfG_gameInfo.play.getStage(); +} + +inline daPy_py_c* daPy_getPlayerActorClass() { + return (daPy_py_c*)dComIfGp_getPlayer(0); +} + +inline BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); +} + +/* 8020D49C-8020D528 207DDC 008C+00 1/1 0/0 0/0 .text isEnableDispMap__11dMeterMap_cFv */ +bool dMeterMap_c::isEnableDispMap() { + bool minimapEnable = false; + stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); + + if (pstag != NULL && getMapDispSizeTypeNo() != 0) { + minimapEnable = dStage_stagInfo_GetMiniMap(pstag) != 0; + } + + bool enableMap = false; + if (minimapEnable && dMpath_c::isExistMapPathData()) { + enableMap = true; + } + return enableMap; } -#pragma pop /* 8020D528-8020D650 207E68 0128+00 3/3 0/0 0/0 .text getMapDispSizeTypeNo__11dMeterMap_cFv */ +// stayNo load block in wrong order +#ifdef NONMATCHING +int dMeterMap_c::getMapDispSizeTypeNo() { + int uvar6 = 7; + int stayNo = dComIfGp_roomControl_getStayNo(); + + dStage_FileList_dt_c* fList = + dComIfGp_roomControl_getStatusRoomDt(stayNo)->mRoomDt.getFileListInfo(); + if (fList != NULL) { + uvar6 = dStage_FileList_dt_getMiniMap(fList); + } + + u32 stageMapSizeTypeNo = dStage_stagInfo_GetMiniMap(dComIfGp_getStage()->getStagInfo()); + s32 mapDispType = dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()); + + if (mapDispType == 1) { + uvar6 = 1; + } else if (uvar6 == 7) { + uvar6 = stageMapSizeTypeNo; + } + + int mapDispSizeType = 0; + switch (uvar6) { + case 0: + break; + case 1: + if (mapDispType == 1) { + mapDispSizeType = 4; + } else { + mapDispSizeType = 1; + } + break; + case 2: + if (mapDispType != 1) { + mapDispSizeType = 2; + } + break; + case 3: + if (mapDispType == 1) { + mapDispSizeType = 5; + } else { + mapDispSizeType = 3; + } + break; + } + + return mapDispSizeType; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::getMapDispSizeTypeNo() { +asm int dMeterMap_c::getMapDispSizeTypeNo() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispSizeTypeNo__11dMeterMap_cFv.s" } #pragma pop +#endif /* 8020D650-8020D690 207F90 0040+00 5/5 3/3 0/0 .text * isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo() { - nofralloc -#include "asm/d/meter/d_meter_map/isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv.s" -} -#pragma pop +bool dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo() { + if (isEnableDispMap() && getMapDispSizeTypeNo()) { + return true; + } -/* ############################################################################################## */ -/* 80454820-80454828 002E20 0004+04 1/1 0/0 0/0 .sdata2 @4076 */ -SECTION_SDATA2 static f32 lit_4076[1 + 1 /* padding */] = { - 421.0f, - /* padding */ - 0.0f, -}; + return false; +} /* 8020D690-8020D698 207FD0 0008+00 2/2 0/0 0/0 .text * getMapDispEdgeBottomY_Layout__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::getMapDispEdgeBottomY_Layout() { - nofralloc -#include "asm/d/meter/d_meter_map/getMapDispEdgeBottomY_Layout__11dMeterMap_cFv.s" +f32 dMeterMap_c::getMapDispEdgeBottomY_Layout() { + return 421.0f; } -#pragma pop /* 8020D698-8020D72C 207FD8 0094+00 2/2 0/0 0/0 .text isEventRunCheck__11dMeterMap_cFv */ +// missing gameinfo load +#ifdef NONMATCHING +bool dMeterMap_c::isEventRunCheck() { + if (dComIfGp_event_runCheck()) { + return true; + } else if (dMsgObject_isTalkNowCheck()) { + return true; + } + + return dComIfGp_event_runCheck() != field_0x30 ? 1 : 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::isEventRunCheck() { +asm bool dMeterMap_c::isEventRunCheck() { nofralloc #include "asm/d/meter/d_meter_map/isEventRunCheck__11dMeterMap_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454828-80454830 002E28 0008+00 3/3 0/0 0/0 .sdata2 @4100 */ @@ -211,14 +235,21 @@ SECTION_SDATA2 static f64 lit_4100 = 4503601774854144.0 /* cast s32 to float */; /* 8020D72C-8020D75C 20806C 0030+00 2/2 0/0 0/0 .text getMapDispEdgeLeftX_Layout__11dMeterMap_cFv */ +#ifdef NONMATCHING +// matches with literal +f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() { + return field_0x28 + 35; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::getMapDispEdgeLeftX_Layout() { +asm f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispEdgeLeftX_Layout__11dMeterMap_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454830-80454834 002E30 0004+00 2/2 0/0 0/0 .sdata2 @4128 */ @@ -237,18 +268,31 @@ SECTION_SDATA2 static f64 lit_4131 = 4503599627370496.0 /* cast u32 to float */; /* 8020D75C-8020D7E4 20809C 0088+00 0/0 1/1 0/0 .text getMapDispEdgeTop__11dMeterMap_cFv */ +// matches with literals +#ifdef NONMATCHING +f32 dMeterMap_c::getMapDispEdgeTop() { + f32 tmp = 0.0f; + if (mMap != NULL) { + tmp = mMap->getTexSizeY() - + mMap->getTexelPerCm() * (mMap->getPackZ() - mMap->getPackPlusZ()) - + mMap->getTopEdgePlus(); + } + return getMapDispEdgeBottomY_Layout() - tmp; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::getMapDispEdgeTop() { +asm f32 dMeterMap_c::getMapDispEdgeTop() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispEdgeTop__11dMeterMap_cFv.s" } #pragma pop +#endif /* 8020D7E4-8020D7EC 208124 0008+00 2/2 0/0 0/0 .text getDispPosInside_OffsetX__11dMeterMap_cFv */ -bool dMeterMap_c::getDispPosInside_OffsetX() { - return false; +s16 dMeterMap_c::getDispPosInside_OffsetX() { + return 0; } /* ############################################################################################## */ @@ -257,51 +301,56 @@ SECTION_SDATA2 static f32 lit_4159 = -36.0f; /* 8020D7EC-8020D874 20812C 0088+00 2/2 0/0 0/0 .text getDispPosOutSide_OffsetX__11dMeterMap_cFv */ +// calculation order is wrong +#ifdef NONMATCHING +s16 dMeterMap_c::getDispPosOutSide_OffsetX() { + f32 dvar3 = -36.0f - mSizeW; + f32 tmp = 0.0f; + if (mMap != NULL) { + tmp = (mMap->getTexelPerCm() * mMap->getPackX()) + + (mMap->getRightEdgePlus() + (mMap->getTexelPerCm() * mMap->getPackPlusZ())); + tmp += dvar3; + } + return tmp - getMapDispEdgeLeftX_Layout(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::getDispPosOutSide_OffsetX() { +asm s16 dMeterMap_c::getDispPosOutSide_OffsetX() { nofralloc #include "asm/d/meter/d_meter_map/getDispPosOutSide_OffsetX__11dMeterMap_cFv.s" } #pragma pop +#endif /* 8020D874-8020D8BC 2081B4 0048+00 2/2 2/2 0/0 .text setDispPosInsideFlg_SE_On__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::setDispPosInsideFlg_SE_On() { - nofralloc -#include "asm/d/meter/d_meter_map/setDispPosInsideFlg_SE_On__11dMeterMap_cFv.s" +void dMeterMap_c::setDispPosInsideFlg_SE_On() { + if (isEnableDispMapAndMapDispSizeTypeNo()) { + dComIfGp_mapShow(); + field_0x2d = 1; + field_0x2e = 7; + } } -#pragma pop /* 8020D8BC-8020D8F8 2081FC 003C+00 1/1 2/2 0/0 .text setDispPosOutsideFlg_SE_On__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::setDispPosOutsideFlg_SE_On() { - nofralloc -#include "asm/d/meter/d_meter_map/setDispPosOutsideFlg_SE_On__11dMeterMap_cFv.s" +void dMeterMap_c::setDispPosOutsideFlg_SE_On() { + dComIfGp_mapHide(); + field_0x2d = 0; + field_0x2e = 7; } -#pragma pop /* 8020D8F8-8020D900 -00001 0008+00 0/0 0/0 0/0 .text setMapAlpha__11dMeterMap_cFUc */ -void dMeterMap_c::setMapAlpha(u8 param_0) { - *(u8*)(((u8*)this) + 44) /* this->field_0x2c */ = (u8)(param_0); +void dMeterMap_c::setMapAlpha(u8 alpha) { + mMapAlpha = alpha; } /* 8020D900-8020D948 208240 0048+00 3/3 1/1 0/0 .text isMapOpenCheck__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dMeterMap_c::isMapOpenCheck() { - nofralloc -#include "asm/d/meter/d_meter_map/isMapOpenCheck__11dMeterMap_cFv.s" +bool dMeterMap_c::isMapOpenCheck() { + return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 7 ? false : true; } -#pragma pop /* ############################################################################################## */ /* 803BF2D8-803BF2F8 -00001 0020+00 1/1 0/0 0/0 .data @4516 */ @@ -316,36 +365,102 @@ SECTION_DATA static void* lit_4516[8] = { (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x190), }; -/* 803BF2F8-803BF308 01C418 0010+00 2/2 0/0 0/0 .data __vt__11dMeterMap_c */ -SECTION_DATA extern void* __vt__11dMeterMap_c[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__11dMeterMap_cFv, - (void*)__dt__11dMeterMap_cFv, -}; - /* 8020D948-8020D990 208288 0048+00 0/0 1/1 0/0 .text __ct__11dMeterMap_cFP9J2DScreen */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMeterMap_c::dMeterMap_c(J2DScreen* param_0) { - nofralloc -#include "asm/d/meter/d_meter_map/__ct__11dMeterMap_cFP9J2DScreen.s" +dMeterMap_c::dMeterMap_c(J2DScreen* p_scrn) { + _create(p_scrn); } -#pragma pop /* 8020D990-8020D9EC 2082D0 005C+00 1/0 0/0 0/0 .text __dt__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMeterMap_c::~dMeterMap_c() { - nofralloc -#include "asm/d/meter/d_meter_map/__dt__11dMeterMap_cFv.s" +dMeterMap_c::~dMeterMap_c() { + _delete(); } -#pragma pop /* 8020D9EC-8020DC50 20832C 0264+00 1/1 0/0 0/0 .text _create__11dMeterMap_cFP9J2DScreen */ +// matches with auto gen literals +#ifdef NONMATCHING +void dMeterMap_c::_create(J2DScreen* param_0) { + s32 sizeX; + s32 sizeY; + s32 dispSizeW; + s32 dispSizeH; + + getMapDispSizeTypeNo(); + switch (getMapDispSizeTypeNo()) { + case 1: + dispSizeW = 216; + dispSizeH = 216; + sizeX = 144; + sizeY = 144; + break; + case 2: + dispSizeW = 216; + dispSizeH = 216; + sizeX = 216; + sizeY = 216; + break; + case 3: + dispSizeW = 216; + dispSizeH = 216; + sizeX = 96; + sizeY = 96; + break; + case 0: + case 4: + dispSizeW = 144; + dispSizeH = 144; + sizeX = 144; + sizeY = 144; + break; + case 5: + dispSizeW = 144; + dispSizeH = 144; + sizeX = 96; + sizeY = 96; + break; + } + + mSizeW = (s16)sizeX; + mSizeH = (s16)sizeY; + + mMap = new dMap_c(sizeX, sizeY, dispSizeW, dispSizeH); + mMapJ2DPicture = new J2DPicture(mMap->getResTIMGPointer()); + + mIsCompass = dComIfGs_isDungeonItemCompass(); + mIsMap = dComIfGs_isDungeonItemMap(); + field_0x14 = 0; + field_0x2a = 0; + + if (dComIfGp_checkMapShow()) { + field_0x2d = 1; + + if (!isEnableDispMapAndMapDispSizeTypeNo()) { + field_0x2d = 0; + } + + if (!isMapOpenCheck()) { + field_0x2d = 0; + } + } else { + field_0x2d = 0; + } + + if (field_0x2d != 0) { + field_0x2d = 1; + field_0x28 = getDispPosInside_OffsetX(); + dMeter2Info_setMapStatus(1); + } else { + field_0x2d = 0; + field_0x28 = getDispPosOutSide_OffsetX(); + dMeter2Info_setMapStatus(0); + } + + field_0x2e = 0; + field_0x28 = 0; + field_0x30 = 0; + field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -354,16 +469,26 @@ asm void dMeterMap_c::_create(J2DScreen* param_0) { #include "asm/d/meter/d_meter_map/_create__11dMeterMap_cFP9J2DScreen.s" } #pragma pop +#endif /* 8020DC50-8020DCE4 208590 0094+00 1/1 0/0 0/0 .text _delete__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::_delete() { - nofralloc -#include "asm/d/meter/d_meter_map/_delete__11dMeterMap_cFv.s" +void dMeterMap_c::_delete() { + if (mMapJ2DPicture != NULL) { + delete mMapJ2DPicture; + } + + if (mMap != NULL) { + delete mMap; + } + + if (isEnableDispMapAndMapDispSizeTypeNo()) { + if (field_0x2d != 0) { + dComIfGp_mapShow(); + } else { + dComIfGp_mapHide(); + } + } } -#pragma pop /* ############################################################################################## */ /* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -373,6 +498,46 @@ SECTION_DEAD static char const* const stringBase_80398208 = "F_SP115"; #pragma pop /* 8020DCE4-8020DF1C 208624 0238+00 0/0 1/1 0/0 .text _move__11dMeterMap_cFUl */ +// just regalloc +#ifdef NONMATCHING +void dMeterMap_c::_move(u32 param_0) { + if (!field_0x2b && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118])) { + if (strcmp(dComIfGp_getStartStageName(), "F_SP115") == 0) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[119]); + } else { + field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]); + dMeter2Info_setPauseStatus(2); + } + } + int stayNo = dComIfGp_roomControl_getStayNo(); + + field_0x14 = param_0; + field_0x2a = checkMoveStatus(); + + if (field_0x2a == 1 || field_0x2a == 2 || field_0x2a == 3 || + dMeter2Info_getPauseStatus() == 7 || dMeter2Info_getPauseStatus() == 2 || + dMeter2Info_getPauseStatus() == 6 || dMeter2Info_getPauseStatus() == 4 || + dMeter2Info_getPauseStatus() == 3 || dMeter2Info_getPauseStatus() == 5) { + ctrlShowMap(); + } + + if (field_0x2d != 0) { + if (field_0x28 != getDispPosInside_OffsetX()) { + cLib_addCalcAngleS(&field_0x28, getDispPosInside_OffsetX(), 2, 60, 10); + } + } else { + cLib_addCalcAngleS(&field_0x28, getDispPosOutSide_OffsetX(), 2, 60, 10); + } + + Vec map_pos = dMapInfo_n::getMapPlayerPos(); + + field_0x18 = field_0x28 + getMapDispEdgeLeftX_Layout(); + field_0x1c = getMapDispEdgeBottomY_Layout() - mSizeH; + + mMap->_move(map_pos.x, map_pos.z, stayNo, map_pos.y); + field_0x30 = dComIfGp_event_runCheck(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -381,32 +546,127 @@ asm void dMeterMap_c::_move(u32 param_0) { #include "asm/d/meter/d_meter_map/_move__11dMeterMap_cFUl.s" } #pragma pop +#endif /* 8020DF1C-8020DF68 20885C 004C+00 0/0 1/1 0/0 .text _draw__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::_draw() { - nofralloc -#include "asm/d/meter/d_meter_map/_draw__11dMeterMap_cFv.s" +void dMeterMap_c::_draw() { + mMap->_draw(); + dComIfGd_set2DOpa(this); } -#pragma pop /* 8020DF68-8020E070 2088A8 0108+00 1/0 0/0 0/0 .text draw__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::draw() { - nofralloc -#include "asm/d/meter/d_meter_map/draw__11dMeterMap_cFv.s" +void dMeterMap_c::draw() { + if (mMap != NULL && mMap->isDraw()) { + dComIfGp_getCurrentGrafPort()->setup2D(); + f32 sizeX = mSizeW; + f32 sizeY = mSizeH; + f32 tmp2 = field_0x18; + f32 tmp3 = field_0x1c; + + mMapJ2DPicture->setAlpha(mMapAlpha); + mMapJ2DPicture->draw(tmp2, tmp3, sizeX, sizeY, false, false, false); + mMapJ2DPicture->calcMtx(); + } } -#pragma pop /* ############################################################################################## */ /* 80454844-80454848 002E44 0004+00 3/3 0/0 0/0 .sdata2 @4515 */ SECTION_SDATA2 static f32 lit_4515 = -1.0f; /* 8020E070-8020E45C 2089B0 03EC+00 2/1 0/0 0/0 .text ctrlShowMap__11dMeterMap_cFv */ +// matches with literals +#ifdef NONMATCHING +void dMeterMap_c::ctrlShowMap() { + if (!dMeter2Info_isGameStatus(1)) { + if (!isMapOpenCheck() && !isEventRunCheck()) { + if (dMw_LEFT_TRIGGER() || dMw_RIGHT_TRIGGER()) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SYS_ERROR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + } + } else { + if (dMeter2Info_getPauseStatus() == 1 || dMeter2Info_getPauseStatus() == 7 || + dMeter2Info_getPauseStatus() == 3 || dMeter2Info_getPauseStatus() == 5 || + dMeter2Info_getPauseStatus() == 2 || dMeter2Info_getPauseStatus() == 6) { + if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) { + setDispPosInsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMeter2Info_setMapStatus(1); + } + + if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0 && isFmapScreen()) { + switch (dMeter2Info_getPauseStatus()) { + case 1: + dMeter2Info_setMapStatus(4); + break; + case 2: + dMeter2Info_setMapStatus(7); + break; + case 3: + dMeter2Info_setMapStatus(8); + break; + case 5: + dMeter2Info_setMapStatus(9); + break; + case 6: + dMeter2Info_setMapStatus(5); + break; + case 7: + dMeter2Info_setMapStatus(3); + break; + } + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } + dMeter2Info_resetPauseStatus(); + } else { + if (dMeter2Info_getPauseStatus() == 4) { + dMeter2Info_resetPauseStatus(); + if (isDmapScreen()) { + if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) { + setDispPosInsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, + 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMeter2Info_setMapStatus(1); + } + + if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0) { + dMeter2Info_setMapStatus(6); + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, + 1.0f, -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } + } + + } else if (!mDoCPd_c::getTrigUp(0) && !mDoCPd_c::getTrigDown(0)) { + keyCheck(); + } + } + + if (mIsCompass != dComIfGs_isDungeonItemCompass()) { + if (!isDispPosInsideFlg()) { + setDispPosInsideFlg_SE_On(); + dMeter2Info_setMapStatus(1); + } + mIsCompass = dComIfGs_isDungeonItemCompass(); + } + + if (mIsMap != dComIfGs_isDungeonItemMap()) { + if (!isDispPosInsideFlg()) { + setDispPosInsideFlg_SE_On(); + dMeter2Info_setMapStatus(1); + } + mIsMap = dComIfGs_isDungeonItemMap(); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -415,48 +675,122 @@ asm void dMeterMap_c::ctrlShowMap() { #include "asm/d/meter/d_meter_map/ctrlShowMap__11dMeterMap_cFv.s" } #pragma pop +#endif /* 8020E45C-8020E4C8 208D9C 006C+00 1/1 0/0 0/0 .text checkMoveStatus__11dMeterMap_cFv */ +// field_0x2d compare is weird +#ifdef NONMATCHING +u8 dMeterMap_c::checkMoveStatus() { + if (isShow(field_0x14)) { + if (isEnableDispMapAndMapDispSizeTypeNo()) { + if (isDispPosInsideFlg()) { + return 1; + } + return 2; + } + return 3; + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::checkMoveStatus() { +asm u8 dMeterMap_c::checkMoveStatus() { nofralloc #include "asm/d/meter/d_meter_map/checkMoveStatus__11dMeterMap_cFv.s" } #pragma pop +#endif /* 8020E4C8-8020E620 208E08 0158+00 2/2 0/0 0/0 .text isShow__11dMeterMap_cFUl */ +// extra gameinfo label load for dComIfGp_event_checkHind +#ifdef NONMATCHING +bool dMeterMap_c::isShow(u32 param_0) { + if ((param_0 & 0x4000) || fopOvlpM_IsDoingReq() || + ((param_0 & 0x40) && dComIfGp_event_checkHind(0x100) && + !dComIfGp_event_chkEventFlag(0x40)) || + daPy_getPlayerActorClass()->i_getSumouMode() || (param_0 & 0x200000) || (param_0 & 0x100) || + (param_0 & 0x80) || (param_0 & 0x40000000) || (param_0 & 0x1000) || (param_0 & 0x100000) || + (param_0 & 0x20000) || (param_0 & 8) || (param_0 & 0x10) || (param_0 & 0x1000000) || + (param_0 & 0x800000) || (param_0 & 0x20) || (param_0 & 0x4000000) || + (param_0 & 0x10000000) || (param_0 & 0x800) || (param_0 & 0x20000000) || + daPy_getPlayerActorClass()->checkEnemyAttentionLock() || dMeter2Info_isGameStatus(2)) { + return false; + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeterMap_c::isShow(u32 param_0) { +asm bool dMeterMap_c::isShow(u32 param_0) { nofralloc #include "asm/d/meter/d_meter_map/isShow__11dMeterMap_cFUl.s" } #pragma pop +#endif /* 8020E620-8020E70C 208F60 00EC+00 3/3 0/0 0/0 .text isFmapScreen__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::isFmapScreen() { - nofralloc -#include "asm/d/meter/d_meter_map/isFmapScreen__11dMeterMap_cFv.s" +bool dMeterMap_c::isFmapScreen() { + if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 || + dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 5 || + dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 3 || + dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 4 || + dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6) { + return true; + } + return false; } -#pragma pop /* 8020E70C-8020E754 20904C 0048+00 3/3 0/0 0/0 .text isDmapScreen__11dMeterMap_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeterMap_c::isDmapScreen() { - nofralloc -#include "asm/d/meter/d_meter_map/isDmapScreen__11dMeterMap_cFv.s" +bool dMeterMap_c::isDmapScreen() { + return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 1 ? 1 : 0; } -#pragma pop /* 8020E754-8020E9CC 209094 0278+00 0/0 1/1 0/0 .text meter_map_move__11dMeterMap_cFUl */ +// matches with literals +#ifdef NONMATCHING +void dMeterMap_c::meter_map_move(u32 param_0) { + if (isShow(param_0) && isMapOpenCheck()) { + if (dMeter2Info_getPauseStatus() == 6) { + if (!dMeter2Info_isSub2DStatus(1) && isFmapScreen()) { + dMeter2Info_setMapStatus(3); + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + } + dMeter2Info_resetPauseStatus(); + } else { + if (dMw_LEFT_TRIGGER() && !dComIfGp_event_runCheck() && !dMsgObject_isTalkNowCheck() && + (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { + if (dMeter2Info_getMapStatus() == 0 && !dMeter2Info_isSub2DStatus(1)) { + if (isFmapScreen() || isDmapScreen()) { + dMeter2Info_setMapStatus(2); + dMeter2Info_setMapKeyDirection(0x200); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } + } + } else if (dMw_RIGHT_TRIGGER() && !dComIfGp_event_runCheck() && + !dMsgObject_isTalkNowCheck() && + (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { + if (!dMeter2Info_isSub2DStatus(1)) { + if (isFmapScreen() || isDmapScreen()) { + dMeter2Info_setMapStatus(2); + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + } + } + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -465,8 +799,71 @@ asm void dMeterMap_c::meter_map_move(u32 param_0) { #include "asm/d/meter/d_meter_map/meter_map_move__11dMeterMap_cFUl.s" } #pragma pop +#endif /* 8020E9CC-8020ED60 20930C 0394+00 1/1 0/0 0/0 .text keyCheck__11dMeterMap_cFv */ +// matches with literals +#ifdef NONMATCHING +void dMeterMap_c::keyCheck() { + if (dMw_LEFT_TRIGGER() && !isEventRunCheck() && + (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { + if (dMeter2Info_getMapStatus() == 1) { + if (isDispPosInsideFlg()) { + setDispPosOutsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_setMapStatus(0); + } + } else if (dMeter2Info_getMapStatus() == 0) { + if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { + dMeter2Info_setMapStatus(2); + dMeter2Info_setMapKeyDirection(0x200); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + } else { + setDispPosInsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + dMeter2Info_setMapStatus(1); + } + } + } else if (dMw_RIGHT_TRIGGER() && !isEventRunCheck() && + (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { + if (dMeter2Info_getMapStatus() == 0) { + if (isEnableDispMapAndMapDispSizeTypeNo()) { + if (!isDispPosInsideFlg()) { + setDispPosInsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + dMeter2Info_set2DVibration(); + dMeter2Info_setMapStatus(1); + } + } else if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { + dMeter2Info_setMapStatus(2); + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + } + } else if (dMeter2Info_getMapStatus() == 1 && isDispPosInsideFlg()) { + if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { + dMeter2Info_setMapStatus(2); + dMeter2Info_setMapKeyDirection(0x400); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + } else { + setDispPosOutsideFlg_SE_On(); + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_setMapStatus(0); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -475,5 +872,6 @@ asm void dMeterMap_c::keyCheck() { #include "asm/d/meter/d_meter_map/keyCheck__11dMeterMap_cFv.s" } #pragma pop +#endif /* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp index b5f7e8dc758..e9603f27269 100644 --- a/src/d/msg/d_msg_object.cpp +++ b/src/d/msg/d_msg_object.cpp @@ -12,32 +12,8 @@ // Types: // -struct msg_class {}; - -struct JKRHeap { - /* 802CE784 */ void getTotalFreeSize(); -}; - -struct JKRArchive { - struct EMountMode {}; -}; - -struct mDoDvdThd_mountXArchive_c { - /* 800161E0 */ void create(char const*, u8, JKRArchive::EMountMode, JKRHeap*); -}; - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - struct jmessage_tControl {}; -struct Vec {}; - -struct cXyz { - /* 8026702C */ bool operator==(Vec const&) const; -}; - struct jmessage_tReference { /* 80228B04 */ jmessage_tReference(); /* 80229034 */ void pageSend(); @@ -58,49 +34,11 @@ struct jmessage_tRenderingProcessor { /* 8022E12C */ void resetRendering(); }; -struct fopAc_ac_c {}; - -struct daPy_py_c { - static u8 m_midnaActor[4]; -}; - -struct dSv_player_item_record_c { - /* 80033F7C */ void getBombNum(u8) const; -}; - -struct dSv_player_item_c { - /* 80033030 */ void getItem(int, bool) const; -}; - -struct dSv_player_get_item_c { - /* 80033E60 */ void onFirstBit(u8); -}; - -struct dSv_event_tmp_flag_c { - static u8 const tempBitLabels[370 + 2 /* padding */]; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 8003498C */ void onEventBit(u16); - /* 800349A4 */ void offEventBit(u16); - /* 800349BC */ void isEventBit(u16) const; - /* 800349E0 */ void setEventReg(u16, u8); - /* 80034A04 */ void getEventReg(u16) const; -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); }; -struct JUTFont {}; - -struct JKRExpHeap {}; - struct dMsgScrnTree_c { /* 80248954 */ dMsgScrnTree_c(JUTFont*, JKRExpHeap*); }; @@ -155,154 +93,10 @@ struct dMsgScrnBase_c { /* 8023C3EC */ void setRubyString(char*); }; -struct J2DTextBox {}; - struct COutFont_c { /* 80225C94 */ COutFont_c(u8); }; -struct dMsgObject_c { - /* 80233284 */ void _create(msg_class*); - /* 80233590 */ void _execute(); - /* 802339BC */ void _draw(); - /* 80233AE8 */ void _delete(); - /* 80233D04 */ void setMessageIndex(u32, u32, bool); - /* 80233E70 */ void setMessageIndexDemo(u32, bool); - /* 80233F84 */ void getMessageIndex(u32); - /* 80233FD8 */ void getRevoMessageIndex(u32); - /* 802340D4 */ void getMessageIndexAlways(u32); - /* 80234128 */ void getMessageIDAlways(u32); - /* 8023413C */ void getMessageGroup(u32); - /* 80234150 */ void waitProc(); - /* 80234318 */ void openProc(); - /* 802349D8 */ void outnowProc(); - /* 80234CCC */ void outwaitProc(); - /* 80234FF0 */ void stopProc(); - /* 80234FF4 */ void continueProc(); - /* 8023531C */ void selectProc(); - /* 8023587C */ void selectEndProc(); - /* 802358D4 */ void inputProc(); - /* 80235AD4 */ void finishProc(); - /* 80235CC0 */ void endProc(); - /* 80235EBC */ void deleteProc(); - /* 8023609C */ void textmodeProc(); - /* 802360A0 */ void talkStartInit(); - /* 8023670C */ void fukiPosCalc(bool); - /* 802368E4 */ void setStatusLocal(u16); - /* 802368F8 */ void getStatusLocal(); - /* 8023690C */ void delete_screen(bool); - /* 802369D8 */ void isSend(); - /* 80236BF8 */ void readMessageGroupLocal(mDoDvdThd_mountXArchive_c**); - /* 80236C90 */ void changeFlowGroupLocal(s32); - /* 80236CD4 */ void demoMessageGroupLocal(); - /* 80236D00 */ void endFlowGroupLocal(); - /* 80236D0C */ void changeGroupLocal(s16); - /* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, - char*, char*, s16*); - /* 802370A8 */ void isGetItemMessage(); - /* 802370BC */ void isKanbanMessage(); - /* 802370E8 */ void isHowlMessage(); - /* 802370FC */ void isMidonaMessage(); - /* 80237138 */ void isMidonaNormalTalkWait(); - /* 802371B0 */ void isMidonaTalkWait(); - /* 802371E4 */ void isPlaceMessage(); - /* 802371F8 */ void isBossMessage(); - /* 8023720C */ bool isBookMessage(); - /* 80237214 */ void isStaffMessage(); - /* 80237228 */ void isSaveMessage(); - /* 8023723C */ void isTalkMessage(); - /* 802372CC */ void getSmellName(); - /* 80237334 */ void getPortalName(); - /* 8023738C */ void getBombName(); - /* 8023741C */ void getInsectName(); - /* 80237478 */ void getLetterName(); - /* 802374D0 */ void getSelectBombNum(); - /* 80237520 */ void onMsgSendControlLocal(); - /* 80237530 */ void offMsgSendControlLocal(); - /* 80237550 */ void isMsgSendControlLocal(); - /* 8023755C */ void onMsgSendLocal(); - /* 8023756C */ void offMsgSendLocal(); - /* 8023757C */ void isMsgSendLocal(); - /* 80237588 */ void isMouthCheckLocal(); - /* 8023759C */ void getBombBuyPriceLocal(u8); - /* 802375E4 */ void addSelectBomBag(u8); - /* 80237610 */ void resetSelectBomBag(); - /* 8023763C */ void getSelectBombBagIDLocal(); - /* 8023768C */ void getSelectBombPriceLocal(); - /* 8023773C */ void setEquipBombInfoLocal(); - /* 80237748 */ void updateEquipBombInfoLocal(); - /* 802378B8 */ void setShopWaitTimer(u8); - /* 802378CC */ void setSelectWordFlagLocal(u8); - /* 802378D4 */ void isHowlHearingModeLocal(); - /* 80237934 */ void isCameraCancelFlag(); - /* 80237950 */ void onCameraCancelFlag(); - /* 80237968 */ void offCameraCancelFlag(); - /* 80237980 */ void isKillMessageFlag(); - /* 80237994 */ void onKillMessageFlag(); - /* 802379AC */ void setKillMessageFlag(); - /* 802379D8 */ void setKillMessageFlagLocal(); - /* 80237A74 */ void setTalkPartner(fopAc_ac_c*); - /* 80237A88 */ void setNowTalkFlowNo(s16); - /* 80237A9C */ void getNowTalkFlowNo(); - /* 80237AB0 */ void setDemoMessage(u32); - /* 80237AE0 */ void setTalkHeap(void*); - /* 80237B10 */ void setTalkHeapLocal(void*); - /* 80237B54 */ void getTalkHeap(); - /* 80237B68 */ void isDraw(); - /* 80237BFC */ void setButtonStatusLocal(); - /* 80237D88 */ void setDemoMessageLocal(u32); - /* 80237DD8 */ void getSmellTypeMessageIDLocal(); - /* 80237E04 */ void setSmellTypeLocal(u8); - /* 80237E58 */ void getSelectCursorPosLocal(); - /* 80237E68 */ void setSelectCursorPosLocal(u8); - /* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*); - /* 8023800C */ void readMessageGroup(mDoDvdThd_mountXArchive_c**); - /* 8023803C */ void changeFlowGroup(s32); - /* 8023806C */ void demoMessageGroup(); - /* 80238098 */ void endFlowGroup(); - /* 802380C4 */ void changeGroup(s16); - /* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, - char*, char*, s16*); - /* 80238174 */ void getMsgDtPtr(); - /* 80238188 */ void setProcessID(unsigned int); - /* 8023819C */ void getActor(); - /* 802381C0 */ void getpTalkActor(); - /* 802381D4 */ void getIdx(); - /* 802381E8 */ void getNodeIdx(); - /* 802381FC */ void setStatus(u16); - /* 8023822C */ void getStatus(); - /* 80238258 */ void getScrnDrawPtr(); - /* 8023826C */ void setTalkActor(fopAc_ac_c*); - /* 8023829C */ void onMsgSendControl(); - /* 802382C8 */ void offMsgSendControl(); - /* 802382F4 */ void isMsgSendControl(); - /* 80238320 */ void onMsgSend(); - /* 8023834C */ void offMsgSend(); - /* 80238378 */ void isMsgSend(); - /* 802383A4 */ void isMouthCheck(); - /* 802383D0 */ void getMessageID(); - /* 802383E4 */ void getSmellTypeMessageID(); - /* 80238410 */ void setSmellType(u8); - /* 80238440 */ void getSelectCursorPos(); - /* 8023846C */ void setSelectCursorPos(u8); - /* 8023849C */ void setPortalMessageID(u16); - /* 802384B0 */ void setInsectItemNo(u8); - /* 802384C4 */ void setLetterNameID(u16); - /* 802384D8 */ void setArrowNum(u8); - /* 802384EC */ void setMsgOutputType(u8); - /* 80238500 */ void getMsgOutputType(); - /* 80238514 */ void getWord(); - /* 80238528 */ void getSelectWord(int); - /* 80238544 */ void setSelectWordFlag(u8); - /* 80238574 */ void getSelectWordFlag(); - /* 80238588 */ void isHowlHearingMode(); - /* 802385B4 */ void getSelectBombBagID(); - /* 802385E0 */ void getSelectBombPrice(); - /* 8023860C */ void setEquipBombInfo(); - /* 80238638 */ void getItemEquipButton(); - /* 8023864C */ void setSelectCancelPos(u8); -}; - struct dMsgObject_HowlHIO_c { /* 80232AEC */ dMsgObject_HowlHIO_c(); /* 80238B94 */ ~dMsgObject_HowlHIO_c(); @@ -313,26 +107,6 @@ struct dMsgObject_HIO_c { /* 80238BDC */ ~dMsgObject_HIO_c(); }; -struct dMeter2_c { - /* 8021F6EC */ void emphasisButtonDelete(); -}; - -struct dMeter2Info_c { - /* 8021C1DC */ void isFloatingMessageVisible(); - /* 8021C218 */ void resetFloatingMessage(); - /* 8021C238 */ void decMsgKeyWaitTimer(); -}; - -struct dEvt_control_c { - /* 8004368C */ void setPtT(void*); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - struct dDemo_c { static u8 m_control[4]; static u8 m_mesgControl[4]; @@ -351,8 +125,6 @@ struct Z2SeqMgr { /* 802AFF8C */ void changeBgmStatus(s32); }; -struct JAISoundID {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -361,12 +133,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - struct JMessage { struct TControl { /* 802A75D4 */ void reset(); @@ -661,15 +427,11 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void sprintf(); -extern "C" void strcpy(); extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */]; extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_meter2_info[248]; extern "C" extern u8 data_80450B70[4]; extern "C" u8 m_control__7dDemo_c[4]; extern "C" u8 m_mesgControl__7dDemo_c[4]; @@ -2090,7 +1852,7 @@ asm void dMsgObject_c::setStatus(u16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getStatus() { +asm u16 dMsgObject_c::getStatus() { nofralloc #include "asm/d/msg/d_msg_object/getStatus__12dMsgObject_cFv.s" } diff --git a/src/d/save/d_save.cpp b/src/d/save/d_save.cpp index 43a7a57c257..8d93c8b4cd0 100644 --- a/src/d/save/d_save.cpp +++ b/src/d/save/d_save.cpp @@ -1970,20 +1970,22 @@ SECTION_DEAD static char const* const pad_80379296 = "\0"; /* 80035BD0-80035C88 030510 00B8+00 0/0 3/3 0/0 .text initdata_to_card__10dSv_info_cFPci */ #ifdef NONMATCHING -void dSv_info_c::initdata_to_card(char* param_0, int fileNo) { +int dSv_info_c::initdata_to_card(char* param_0, int fileNo) { + char* ptr = param_0 + (fileNo * 0xa94); dSv_save_c tmp; tmp.init(); tmp.getPlayer().getPlayerInfo().setPlayerName(""); tmp.getPlayer().getPlayerInfo().setHorseName(""); - memcpy(¶m_0 + fileNo * 0xa94, &tmp, 0x958); + memcpy(&ptr, &tmp, 0x958); printf("INIT size:%d\n", 0x958); + return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dSv_info_c::initdata_to_card(char* param_0, int param_1) { +asm int dSv_info_c::initdata_to_card(char* param_0, int param_1) { nofralloc #include "asm/d/save/d_save/initdata_to_card__10dSv_info_cFPci.s" } diff --git a/src/m_Do/m_Do_mtx.cpp b/src/m_Do/m_Do_mtx.cpp index 1dca9d11b9e..8f9b9f025ca 100644 --- a/src/m_Do/m_Do_mtx.cpp +++ b/src/m_Do/m_Do_mtx.cpp @@ -287,7 +287,7 @@ asm void mDoMtx_QuatConcat(Quaternion const* param_0, Quaternion const* param_1, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoMtx_MtxToRot(f32 const (*param_0)[4], csXyz* param_1) { +asm void mDoMtx_MtxToRot(MtxP param_0, csXyz* param_1) { nofralloc #include "asm/m_Do/m_Do_mtx/mDoMtx_MtxToRot__FPA4_CfP5csXyz.s" }