Merge pull request #262 from TakaRikka/dmap1

most of d_map_path_dmap decompiled
This commit is contained in:
hatal175
2023-02-01 16:14:19 +02:00
committed by GitHub
75 changed files with 1473 additions and 2800 deletions
+7 -7
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 23.661493% | 850996 | 3596544
.text | 23.857459% | 858044 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 31.709426% | 1274932 | 4020672
Total | 31.884720% | 1281980 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 31.709426% | 1274932 | 4020672
RELs | 33.043626% | 3800124 | 11500324
Total | 32.698005% | 5075056 | 15520996
main.dol | 31.884720% | 1281980 | 4020672
RELs | 33.048286% | 3800660 | 11500324
Total | 32.746868% | 5082640 | 15520996
## RELs
@@ -727,7 +727,7 @@ d_a_tag_evtmsg | 39.491150% | 1428 | 3616
d_a_tag_firewall | 35.325132% | 1608 | 4552
d_a_tag_gra | 76.000000% | 608 | 800
d_a_tag_gstart | 100.000000% | 1208 | 1208
d_a_tag_guard | 54.421769% | 640 | 1176
d_a_tag_guard | 100.000000% | 1176 | 1176
d_a_tag_hinit | 100.000000% | 1440 | 1440
d_a_tag_hjump | 40.841584% | 1320 | 3232
d_a_tag_howl | 46.934461% | 888 | 1892
@@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244
d_a_warp_bug | 54.940711% | 1112 | 2024
d_a_ykgr | 44.400631% | 2252 | 5072
f_pc_profile_lst | 100.000000% | 28156 | 28156
Total | 33.043626% | 3800124 | 11500324
Total | 33.048286% | 3800660 | 11500324
+2 -2
View File
@@ -9,10 +9,10 @@ lbl_8002AB54:
/* 8002AB70 28 00 00 00 */ cmplwi r0, 0
/* 8002AB74 41 82 00 28 */ beq lbl_8002AB9C
/* 8002AB78 38 A0 00 00 */ li r5, 0
/* 8002AB7C 88 0D 88 E0 */ lbz r0, data_80450E60(r13)
/* 8002AB7C 88 0D 88 E0 */ lbz r0, mNowStayFloorNoDecisionFlg__10dMapInfo_c(r13)
/* 8002AB80 28 00 00 00 */ cmplwi r0, 0
/* 8002AB84 41 82 00 08 */ beq lbl_8002AB8C
/* 8002AB88 88 AD 88 D8 */ lbz r5, data_80450E58(r13)
/* 8002AB88 88 AD 88 D8 */ lbz r5, mNowStayFloorNo__10dMapInfo_c(r13)
lbl_8002AB8C:
/* 8002AB8C C0 23 00 50 */ lfs f1, 0x50(r3)
/* 8002AB90 C0 43 00 54 */ lfs f2, 0x54(r3)
@@ -1,25 +0,0 @@
lbl_80040518:
/* 80040518 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004051C 7C 08 02 A6 */ mflr r0
/* 80040520 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040524 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80040528 7C 7F 1B 78 */ mr r31, r3
/* 8004052C 80 03 00 2C */ lwz r0, 0x2c(r3)
/* 80040530 2C 00 00 00 */ cmpwi r0, 0
/* 80040534 41 80 00 2C */ blt lbl_80040560
/* 80040538 81 83 00 00 */ lwz r12, 0(r3)
/* 8004053C 81 8C 00 80 */ lwz r12, 0x80(r12)
/* 80040540 7D 89 03 A6 */ mtctr r12
/* 80040544 4E 80 04 21 */ bctrl
/* 80040548 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004054C 41 82 00 14 */ beq lbl_80040560
/* 80040550 7F E3 FB 78 */ mr r3, r31
/* 80040554 48 00 00 21 */ bl drawDoor1__19renderingPlusDoor_cFv
/* 80040558 7F E3 FB 78 */ mr r3, r31
/* 8004055C 48 00 00 5D */ bl drawDoor2__19renderingPlusDoor_cFv
lbl_80040560:
/* 80040560 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80040564 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040568 7C 08 03 A6 */ mtlr r0
/* 8004056C 38 21 00 10 */ addi r1, r1, 0x10
/* 80040570 4E 80 00 20 */ blr
@@ -1,142 +0,0 @@
lbl_800402FC:
/* 800402FC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80040300 7C 08 02 A6 */ mflr r0
/* 80040304 90 01 00 54 */ stw r0, 0x54(r1)
/* 80040308 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8004030C F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 80040310 39 61 00 40 */ addi r11, r1, 0x40
/* 80040314 48 32 1E C9 */ bl _savegpr_29
/* 80040318 7C 7F 1B 78 */ mr r31, r3
/* 8004031C 48 00 01 FD */ bl afterDrawPath__19renderingPlusDoor_cFv
/* 80040320 7F E3 FB 78 */ mr r3, r31
/* 80040324 81 9F 00 00 */ lwz r12, 0(r31)
/* 80040328 81 8C 00 84 */ lwz r12, 0x84(r12)
/* 8004032C 7D 89 03 A6 */ mtctr r12
/* 80040330 4E 80 04 21 */ bctrl
/* 80040334 7C 7E 1B 78 */ mr r30, r3
/* 80040338 7F E3 FB 78 */ mr r3, r31
/* 8004033C 81 9F 00 00 */ lwz r12, 0(r31)
/* 80040340 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80040344 7D 89 03 A6 */ mtctr r12
/* 80040348 4E 80 04 21 */ bctrl
/* 8004034C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040350 41 82 00 D8 */ beq lbl_80040428
/* 80040354 7F E3 FB 78 */ mr r3, r31
/* 80040358 81 9F 00 00 */ lwz r12, 0(r31)
/* 8004035C 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80040360 7D 89 03 A6 */ mtctr r12
/* 80040364 4E 80 04 21 */ bctrl
/* 80040368 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004036C 41 82 00 BC */ beq lbl_80040428
/* 80040370 3B A0 00 01 */ li r29, 1
/* 80040374 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 80040378 41 82 00 44 */ beq lbl_800403BC
/* 8004037C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80040380 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80040384 88 03 0D B4 */ lbz r0, 0xdb4(r3)
/* 80040388 7C 1E 07 74 */ extsb r30, r0
/* 8004038C 38 61 00 20 */ addi r3, r1, 0x20
/* 80040390 4B FF EC 9D */ bl getMapRestartPos__10dMapInfo_nFv
/* 80040394 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 80040398 38 60 00 01 */ li r3, 1
/* 8004039C 7F C4 F3 78 */ mr r4, r30
/* 800403A0 4B FF F0 6D */ bl calcFloorNo__10dMapInfo_cFfbi
/* 800403A4 7C 63 07 74 */ extsb r3, r3
/* 800403A8 88 1F 00 30 */ lbz r0, 0x30(r31)
/* 800403AC 7C 00 07 74 */ extsb r0, r0
/* 800403B0 7C 03 00 00 */ cmpw r3, r0
/* 800403B4 41 82 00 08 */ beq lbl_800403BC
/* 800403B8 3B A0 00 00 */ li r29, 0
lbl_800403BC:
/* 800403BC 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 800403C0 41 82 00 68 */ beq lbl_80040428
/* 800403C4 3B A0 00 1F */ li r29, 0x1f
/* 800403C8 80 9F 00 2C */ lwz r4, 0x2c(r31)
/* 800403CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 800403D0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 800403D4 88 03 0D B4 */ lbz r0, 0xdb4(r3)
/* 800403D8 7C 00 07 74 */ extsb r0, r0
/* 800403DC 7C 04 00 00 */ cmpw r4, r0
/* 800403E0 41 82 00 08 */ beq lbl_800403E8
/* 800403E4 3B A0 00 20 */ li r29, 0x20
lbl_800403E8:
/* 800403E8 7F E3 FB 78 */ mr r3, r31
/* 800403EC 81 9F 00 00 */ lwz r12, 0(r31)
/* 800403F0 81 8C 00 B8 */ lwz r12, 0xb8(r12)
/* 800403F4 7D 89 03 A6 */ mtctr r12
/* 800403F8 4E 80 04 21 */ bctrl
/* 800403FC FF E0 08 90 */ fmr f31, f1
/* 80040400 4B FF EC F9 */ bl getMapRestartAngleY__10dMapInfo_nFv
/* 80040404 7C 7E 1B 78 */ mr r30, r3
/* 80040408 38 61 00 14 */ addi r3, r1, 0x14
/* 8004040C 4B FF EC 21 */ bl getMapRestartPos__10dMapInfo_nFv
/* 80040410 7F E3 FB 78 */ mr r3, r31
/* 80040414 38 81 00 14 */ addi r4, r1, 0x14
/* 80040418 7F C5 F3 78 */ mr r5, r30
/* 8004041C 7F A6 EB 78 */ mr r6, r29
/* 80040420 FC 20 F8 90 */ fmr f1, f31
/* 80040424 48 00 0E 9D */ bl drawCursor__28renderingPlusDoorAndCursor_cFRC3Vecsif
lbl_80040428:
/* 80040428 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8004042C 2C 00 00 00 */ cmpwi r0, 0
/* 80040430 41 80 00 28 */ blt lbl_80040458
/* 80040434 7F E3 FB 78 */ mr r3, r31
/* 80040438 81 9F 00 00 */ lwz r12, 0(r31)
/* 8004043C 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 80040440 7D 89 03 A6 */ mtctr r12
/* 80040444 4E 80 04 21 */ bctrl
/* 80040448 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004044C 41 82 00 0C */ beq lbl_80040458
/* 80040450 7F E3 FB 78 */ mr r3, r31
/* 80040454 48 00 06 AD */ bl drawTreasure__28renderingPlusDoorAndCursor_cFv
lbl_80040458:
/* 80040458 7F E3 FB 78 */ mr r3, r31
/* 8004045C 81 9F 00 00 */ lwz r12, 0(r31)
/* 80040460 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80040464 7D 89 03 A6 */ mtctr r12
/* 80040468 4E 80 04 21 */ bctrl
/* 8004046C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040470 41 82 00 58 */ beq lbl_800404C8
/* 80040474 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80040478 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8004047C 80 03 5D AC */ lwz r0, 0x5dac(r3)
/* 80040480 28 00 00 00 */ cmplwi r0, 0
/* 80040484 41 82 00 44 */ beq lbl_800404C8
/* 80040488 7F E3 FB 78 */ mr r3, r31
/* 8004048C 81 9F 00 00 */ lwz r12, 0(r31)
/* 80040490 81 8C 00 B4 */ lwz r12, 0xb4(r12)
/* 80040494 7D 89 03 A6 */ mtctr r12
/* 80040498 4E 80 04 21 */ bctrl
/* 8004049C FF E0 08 90 */ fmr f31, f1
/* 800404A0 4B FF EA 81 */ bl getMapPlayerAngleY__10dMapInfo_nFv
/* 800404A4 7C 7E 1B 78 */ mr r30, r3
/* 800404A8 38 61 00 08 */ addi r3, r1, 8
/* 800404AC 4B FF E9 B1 */ bl getMapPlayerPos__10dMapInfo_nFv
/* 800404B0 7F E3 FB 78 */ mr r3, r31
/* 800404B4 38 81 00 08 */ addi r4, r1, 8
/* 800404B8 7F C5 F3 78 */ mr r5, r30
/* 800404BC 38 C0 00 1E */ li r6, 0x1e
/* 800404C0 FC 20 F8 90 */ fmr f1, f31
/* 800404C4 48 00 0D FD */ bl drawCursor__28renderingPlusDoorAndCursor_cFRC3Vecsif
lbl_800404C8:
/* 800404C8 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 800404CC 2C 00 00 00 */ cmpwi r0, 0
/* 800404D0 41 80 00 28 */ blt lbl_800404F8
/* 800404D4 7F E3 FB 78 */ mr r3, r31
/* 800404D8 81 9F 00 00 */ lwz r12, 0(r31)
/* 800404DC 81 8C 00 A0 */ lwz r12, 0xa0(r12)
/* 800404E0 7D 89 03 A6 */ mtctr r12
/* 800404E4 4E 80 04 21 */ bctrl
/* 800404E8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800404EC 41 82 00 0C */ beq lbl_800404F8
/* 800404F0 7F E3 FB 78 */ mr r3, r31
/* 800404F4 48 00 09 91 */ bl drawTreasureAfterPlayer__28renderingPlusDoorAndCursor_cFv
lbl_800404F8:
/* 800404F8 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 800404FC CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80040500 39 61 00 40 */ addi r11, r1, 0x40
/* 80040504 48 32 1D 25 */ bl _restgpr_29
/* 80040508 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8004050C 7C 08 03 A6 */ mtlr r0
/* 80040510 38 21 00 50 */ addi r1, r1, 0x50
/* 80040514 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_8003FCA4:
/* 8003FCA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FCA8 7C 08 02 A6 */ mflr r0
/* 8003FCAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FCB0 38 60 00 01 */ li r3, 1
/* 8003FCB4 4B FF F7 59 */ bl calcFloorNo__10dMapInfo_cFfbi
/* 8003FCB8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FCBC 7C 08 03 A6 */ mtlr r0
/* 8003FCC0 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FCC4 4E 80 00 20 */ blr
@@ -1,96 +0,0 @@
lbl_8003F40C:
/* 8003F40C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003F410 7C 08 02 A6 */ mflr r0
/* 8003F414 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003F418 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8003F41C F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 8003F420 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F424 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003F428 FF E0 08 90 */ fmr f31, f1
/* 8003F42C 7C 7E 1B 78 */ mr r30, r3
/* 8003F430 7C 9F 23 78 */ mr r31, r4
/* 8003F434 38 61 00 08 */ addi r3, r1, 8
/* 8003F438 38 80 00 00 */ li r4, 0
/* 8003F43C 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003F440 38 C1 00 0C */ addi r6, r1, 0xc
/* 8003F444 38 E0 00 00 */ li r7, 0
/* 8003F448 4B FF FE 05 */ bl getFloorParameter__10dMapInfo_nFfPScPfPfPfPf
/* 8003F44C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8003F450 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8003F454 40 80 00 80 */ bge lbl_8003F4D4
/* 8003F458 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 8003F45C FC 1F 10 40 */ fcmpo cr0, f31, f2
/* 8003F460 4C 41 13 82 */ cror 2, 1, 2
/* 8003F464 40 82 00 7C */ bne lbl_8003F4E0
/* 8003F468 80 0D 88 DC */ lwz r0, mNowStayRoomNo__10dMapInfo_c(r13)
/* 8003F46C 7C 1F 00 00 */ cmpw r31, r0
/* 8003F470 40 82 00 3C */ bne lbl_8003F4AC
/* 8003F474 88 0D 88 E0 */ lbz r0, data_80450E60(r13)
/* 8003F478 28 00 00 00 */ cmplwi r0, 0
/* 8003F47C 41 82 00 30 */ beq lbl_8003F4AC
/* 8003F480 88 AD 88 D8 */ lbz r5, data_80450E58(r13)
/* 8003F484 7C A4 07 74 */ extsb r4, r5
/* 8003F488 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F48C 7C 03 07 74 */ extsb r3, r0
/* 8003F490 7C 04 18 00 */ cmpw r4, r3
/* 8003F494 41 82 00 10 */ beq lbl_8003F4A4
/* 8003F498 38 03 00 01 */ addi r0, r3, 1
/* 8003F49C 7C 04 00 00 */ cmpw r4, r0
/* 8003F4A0 40 82 00 0C */ bne lbl_8003F4AC
lbl_8003F4A4:
/* 8003F4A4 98 A1 00 08 */ stb r5, 8(r1)
/* 8003F4A8 48 00 00 38 */ b lbl_8003F4E0
lbl_8003F4AC:
/* 8003F4AC C0 22 84 2C */ lfs f1, lit_3887(r2)
/* 8003F4B0 EC 02 00 2A */ fadds f0, f2, f0
/* 8003F4B4 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003F4B8 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8003F4BC 4C 41 13 82 */ cror 2, 1, 2
/* 8003F4C0 40 82 00 20 */ bne lbl_8003F4E0
/* 8003F4C4 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F4C8 38 03 00 01 */ addi r0, r3, 1
/* 8003F4CC 98 01 00 08 */ stb r0, 8(r1)
/* 8003F4D0 48 00 00 10 */ b lbl_8003F4E0
lbl_8003F4D4:
/* 8003F4D4 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F4D8 38 03 00 01 */ addi r0, r3, 1
/* 8003F4DC 98 01 00 08 */ stb r0, 8(r1)
lbl_8003F4E0:
/* 8003F4E0 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8003F4E4 41 82 00 68 */ beq lbl_8003F54C
/* 8003F4E8 2C 1F 00 00 */ cmpwi r31, 0
/* 8003F4EC 41 80 00 60 */ blt lbl_8003F54C
/* 8003F4F0 2C 1F 00 40 */ cmpwi r31, 0x40
/* 8003F4F4 40 80 00 58 */ bge lbl_8003F54C
/* 8003F4F8 3C 60 80 3F */ lis r3, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003F4FC 38 63 60 94 */ addi r3, r3, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003F500 1C 1F 04 04 */ mulli r0, r31, 0x404
/* 8003F504 7C 63 02 14 */ add r3, r3, r0
/* 8003F508 80 63 00 20 */ lwz r3, 0x20(r3)
/* 8003F50C 28 03 00 00 */ cmplwi r3, 0
/* 8003F510 41 82 00 3C */ beq lbl_8003F54C
/* 8003F514 88 03 00 10 */ lbz r0, 0x10(r3)
/* 8003F518 7C 04 07 74 */ extsb r4, r0
/* 8003F51C 88 03 00 11 */ lbz r0, 0x11(r3)
/* 8003F520 7C 03 07 74 */ extsb r3, r0
/* 8003F524 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F528 7C 00 07 74 */ extsb r0, r0
/* 8003F52C 7C 00 20 00 */ cmpw r0, r4
/* 8003F530 40 80 00 08 */ bge lbl_8003F538
/* 8003F534 98 81 00 08 */ stb r4, 8(r1)
lbl_8003F538:
/* 8003F538 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F53C 7C 00 07 74 */ extsb r0, r0
/* 8003F540 7C 00 18 00 */ cmpw r0, r3
/* 8003F544 40 81 00 08 */ ble lbl_8003F54C
/* 8003F548 98 61 00 08 */ stb r3, 8(r1)
lbl_8003F54C:
/* 8003F54C 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F550 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 8003F554 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8003F558 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F55C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F560 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003F564 7C 08 03 A6 */ mtlr r0
/* 8003F568 38 21 00 30 */ addi r1, r1, 0x30
/* 8003F56C 4E 80 00 20 */ blr
@@ -1,93 +0,0 @@
lbl_8003F570:
/* 8003F570 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003F574 7C 08 02 A6 */ mflr r0
/* 8003F578 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003F57C DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8003F580 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 8003F584 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F588 FF E0 08 90 */ fmr f31, f1
/* 8003F58C 7C 7F 1B 78 */ mr r31, r3
/* 8003F590 38 61 00 08 */ addi r3, r1, 8
/* 8003F594 38 80 00 00 */ li r4, 0
/* 8003F598 38 A1 00 10 */ addi r5, r1, 0x10
/* 8003F59C 38 C1 00 0C */ addi r6, r1, 0xc
/* 8003F5A0 38 E0 00 00 */ li r7, 0
/* 8003F5A4 4B FF FC A9 */ bl getFloorParameter__10dMapInfo_nFfPScPfPfPfPf
/* 8003F5A8 88 0D 88 E0 */ lbz r0, data_80450E60(r13)
/* 8003F5AC 28 00 00 00 */ cmplwi r0, 0
/* 8003F5B0 41 82 00 5C */ beq lbl_8003F60C
/* 8003F5B4 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8003F5B8 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8003F5BC 40 80 00 40 */ bge lbl_8003F5FC
/* 8003F5C0 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 8003F5C4 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8003F5C8 4C 41 13 82 */ cror 2, 1, 2
/* 8003F5CC 40 82 00 6C */ bne lbl_8003F638
/* 8003F5D0 88 AD 88 D8 */ lbz r5, data_80450E58(r13)
/* 8003F5D4 7C A4 07 74 */ extsb r4, r5
/* 8003F5D8 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F5DC 7C 03 07 74 */ extsb r3, r0
/* 8003F5E0 7C 04 18 00 */ cmpw r4, r3
/* 8003F5E4 41 82 00 10 */ beq lbl_8003F5F4
/* 8003F5E8 38 03 00 01 */ addi r0, r3, 1
/* 8003F5EC 7C 04 00 00 */ cmpw r4, r0
/* 8003F5F0 40 82 00 48 */ bne lbl_8003F638
lbl_8003F5F4:
/* 8003F5F4 98 A1 00 08 */ stb r5, 8(r1)
/* 8003F5F8 48 00 00 40 */ b lbl_8003F638
lbl_8003F5FC:
/* 8003F5FC 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F600 38 03 00 01 */ addi r0, r3, 1
/* 8003F604 98 01 00 08 */ stb r0, 8(r1)
/* 8003F608 48 00 00 30 */ b lbl_8003F638
lbl_8003F60C:
/* 8003F60C C0 42 84 2C */ lfs f2, lit_3887(r2)
/* 8003F610 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 8003F614 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8003F618 EC 01 00 2A */ fadds f0, f1, f0
/* 8003F61C EC 02 00 32 */ fmuls f0, f2, f0
/* 8003F620 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8003F624 4C 41 13 82 */ cror 2, 1, 2
/* 8003F628 40 82 00 10 */ bne lbl_8003F638
/* 8003F62C 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F630 38 03 00 01 */ addi r0, r3, 1
/* 8003F634 98 01 00 08 */ stb r0, 8(r1)
lbl_8003F638:
/* 8003F638 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8003F63C 41 82 00 6C */ beq lbl_8003F6A8
/* 8003F640 80 0D 88 DC */ lwz r0, mNowStayRoomNo__10dMapInfo_c(r13)
/* 8003F644 2C 00 00 00 */ cmpwi r0, 0
/* 8003F648 41 80 00 60 */ blt lbl_8003F6A8
/* 8003F64C 2C 00 00 40 */ cmpwi r0, 0x40
/* 8003F650 40 80 00 58 */ bge lbl_8003F6A8
/* 8003F654 3C 60 80 3F */ lis r3, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003F658 38 63 60 94 */ addi r3, r3, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003F65C 1C 00 04 04 */ mulli r0, r0, 0x404
/* 8003F660 7C 63 02 14 */ add r3, r3, r0
/* 8003F664 80 63 00 20 */ lwz r3, 0x20(r3)
/* 8003F668 28 03 00 00 */ cmplwi r3, 0
/* 8003F66C 41 82 00 3C */ beq lbl_8003F6A8
/* 8003F670 88 03 00 10 */ lbz r0, 0x10(r3)
/* 8003F674 7C 04 07 74 */ extsb r4, r0
/* 8003F678 88 03 00 11 */ lbz r0, 0x11(r3)
/* 8003F67C 7C 03 07 74 */ extsb r3, r0
/* 8003F680 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F684 7C 00 07 74 */ extsb r0, r0
/* 8003F688 7C 00 20 00 */ cmpw r0, r4
/* 8003F68C 40 80 00 08 */ bge lbl_8003F694
/* 8003F690 98 81 00 08 */ stb r4, 8(r1)
lbl_8003F694:
/* 8003F694 88 01 00 08 */ lbz r0, 8(r1)
/* 8003F698 7C 00 07 74 */ extsb r0, r0
/* 8003F69C 7C 00 18 00 */ cmpw r0, r3
/* 8003F6A0 40 81 00 08 */ ble lbl_8003F6A8
/* 8003F6A4 98 61 00 08 */ stb r3, 8(r1)
lbl_8003F6A8:
/* 8003F6A8 88 61 00 08 */ lbz r3, 8(r1)
/* 8003F6AC E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 8003F6B0 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8003F6B4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F6B8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003F6BC 7C 08 03 A6 */ mtlr r0
/* 8003F6C0 38 21 00 30 */ addi r1, r1, 0x30
/* 8003F6C4 4E 80 00 20 */ blr
@@ -1,80 +0,0 @@
lbl_80040710:
/* 80040710 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80040714 7C 08 02 A6 */ mflr r0
/* 80040718 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004071C DB E1 00 18 */ stfd f31, 0x18(r1)
/* 80040720 39 61 00 18 */ addi r11, r1, 0x18
/* 80040724 48 32 1A B9 */ bl _savegpr_29
/* 80040728 7C 7D 1B 78 */ mr r29, r3
/* 8004072C 7C 9E 23 78 */ mr r30, r4
/* 80040730 7C BF 2B 78 */ mr r31, r5
/* 80040734 FF E0 08 90 */ fmr f31, f1
/* 80040738 81 83 00 00 */ lwz r12, 0(r3)
/* 8004073C 81 8C 00 7C */ lwz r12, 0x7c(r12)
/* 80040740 7D 89 03 A6 */ mtctr r12
/* 80040744 4E 80 04 21 */ bctrl
/* 80040748 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8004074C 41 82 00 60 */ beq lbl_800407AC
/* 80040750 7F A3 EB 78 */ mr r3, r29
/* 80040754 81 9D 00 00 */ lwz r12, 0(r29)
/* 80040758 81 8C 00 78 */ lwz r12, 0x78(r12)
/* 8004075C 7D 89 03 A6 */ mtctr r12
/* 80040760 4E 80 04 21 */ bctrl
/* 80040764 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040768 40 82 00 60 */ bne lbl_800407C8
/* 8004076C 7F C3 F3 78 */ mr r3, r30
/* 80040770 4B FF E5 A1 */ bl isVisitedRoom__10dMapInfo_nFi
/* 80040774 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040778 40 82 00 50 */ bne lbl_800407C8
/* 8004077C 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 80040780 7C 1E 00 00 */ cmpw r30, r0
/* 80040784 41 82 00 44 */ beq lbl_800407C8
/* 80040788 7F E3 FB 78 */ mr r3, r31
/* 8004078C 4B FF E5 85 */ bl isVisitedRoom__10dMapInfo_nFi
/* 80040790 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040794 40 82 00 34 */ bne lbl_800407C8
/* 80040798 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 8004079C 7C 1F 00 00 */ cmpw r31, r0
/* 800407A0 41 82 00 28 */ beq lbl_800407C8
/* 800407A4 38 60 00 00 */ li r3, 0
/* 800407A8 48 00 00 74 */ b lbl_8004081C
lbl_800407AC:
/* 800407AC 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 800407B0 7C 1E 00 00 */ cmpw r30, r0
/* 800407B4 41 82 00 14 */ beq lbl_800407C8
/* 800407B8 7C 1F 00 00 */ cmpw r31, r0
/* 800407BC 41 82 00 0C */ beq lbl_800407C8
/* 800407C0 38 60 00 00 */ li r3, 0
/* 800407C4 48 00 00 58 */ b lbl_8004081C
lbl_800407C8:
/* 800407C8 7F A3 EB 78 */ mr r3, r29
/* 800407CC FC 20 F8 90 */ fmr f1, f31
/* 800407D0 7F C4 F3 78 */ mr r4, r30
/* 800407D4 4B FF F4 D1 */ bl calcFloorNoForObjectByMapPathRend__16renderingDAmap_cCFfi
/* 800407D8 7C 63 07 74 */ extsb r3, r3
/* 800407DC 88 1D 00 30 */ lbz r0, 0x30(r29)
/* 800407E0 7C 00 07 74 */ extsb r0, r0
/* 800407E4 7C 00 18 00 */ cmpw r0, r3
/* 800407E8 41 82 00 28 */ beq lbl_80040810
/* 800407EC 7F A3 EB 78 */ mr r3, r29
/* 800407F0 FC 20 F8 90 */ fmr f1, f31
/* 800407F4 7F E4 FB 78 */ mr r4, r31
/* 800407F8 4B FF F4 AD */ bl calcFloorNoForObjectByMapPathRend__16renderingDAmap_cCFfi
/* 800407FC 7C 63 07 74 */ extsb r3, r3
/* 80040800 88 1D 00 30 */ lbz r0, 0x30(r29)
/* 80040804 7C 00 07 74 */ extsb r0, r0
/* 80040808 7C 00 18 00 */ cmpw r0, r3
/* 8004080C 40 82 00 0C */ bne lbl_80040818
lbl_80040810:
/* 80040810 38 60 00 01 */ li r3, 1
/* 80040814 48 00 00 08 */ b lbl_8004081C
lbl_80040818:
/* 80040818 38 60 00 00 */ li r3, 0
lbl_8004081C:
/* 8004081C CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80040820 39 61 00 18 */ addi r11, r1, 0x18
/* 80040824 48 32 1A 05 */ bl _restgpr_29
/* 80040828 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004082C 7C 08 03 A6 */ mtlr r0
/* 80040830 38 21 00 20 */ addi r1, r1, 0x20
/* 80040834 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_8003F734:
/* 8003F734 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003F738 7C 08 02 A6 */ mflr r0
/* 8003F73C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003F740 4B FF FF BD */ bl init__10dMapInfo_cFv
/* 8003F744 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003F748 7C 08 03 A6 */ mtlr r0
/* 8003F74C 38 21 00 10 */ addi r1, r1, 0x10
/* 8003F750 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_8003FB70:
/* 8003FB70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FB74 7C 08 02 A6 */ mflr r0
/* 8003FB78 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FB7C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003FB80 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003FB84 85 83 4E 20 */ lwzu r12, 0x4e20(r3)
/* 8003FB88 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 8003FB8C 7D 89 03 A6 */ mtctr r12
/* 8003FB90 4E 80 04 21 */ bctrl
/* 8003FB94 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8003FB98 54 00 87 7E */ rlwinm r0, r0, 0x10, 0x1d, 0x1f
/* 8003FB9C 28 00 00 03 */ cmplwi r0, 3
/* 8003FBA0 41 82 00 10 */ beq lbl_8003FBB0
/* 8003FBA4 48 00 00 2D */ bl reset__8dMpath_cFv
/* 8003FBA8 38 00 00 00 */ li r0, 0
/* 8003FBAC 98 0D 89 08 */ stb r0, data_80450E88(r13)
lbl_8003FBB0:
/* 8003FBB0 3C 60 80 42 */ lis r3, m_texObjAgg__8dMpath_n@ha /* 0x80424684@ha */
/* 8003FBB4 38 63 46 84 */ addi r3, r3, m_texObjAgg__8dMpath_n@l /* 0x80424684@l */
/* 8003FBB8 4B FF CC A5 */ bl create__Q28dMpath_n18dTexObjAggregate_cFv
/* 8003FBBC 4B FF FB 79 */ bl create__10dMapInfo_cFv
/* 8003FBC0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FBC4 7C 08 03 A6 */ mtlr r0
/* 8003FBC8 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FBCC 4E 80 00 20 */ blr
@@ -1,106 +0,0 @@
lbl_800412C0:
/* 800412C0 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 800412C4 7C 08 02 A6 */ mflr r0
/* 800412C8 90 01 00 84 */ stw r0, 0x84(r1)
/* 800412CC DB E1 00 70 */ stfd f31, 0x70(r1)
/* 800412D0 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */
/* 800412D4 DB C1 00 60 */ stfd f30, 0x60(r1)
/* 800412D8 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */
/* 800412DC 39 61 00 60 */ addi r11, r1, 0x60
/* 800412E0 48 32 0E F5 */ bl _savegpr_27
/* 800412E4 7C BC 2B 78 */ mr r28, r5
/* 800412E8 7C DB 33 78 */ mr r27, r6
/* 800412EC C0 02 84 B8 */ lfs f0, lit_4731(r2)
/* 800412F0 EC 61 00 24 */ fdivs f3, f1, f0
/* 800412F4 C0 23 00 08 */ lfs f1, 8(r3)
/* 800412F8 A0 03 00 20 */ lhz r0, 0x20(r3)
/* 800412FC C8 42 84 40 */ lfd f2, lit_4211(r2)
/* 80041300 90 01 00 34 */ stw r0, 0x34(r1)
/* 80041304 3C A0 43 30 */ lis r5, 0x4330
/* 80041308 90 A1 00 30 */ stw r5, 0x30(r1)
/* 8004130C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 80041310 EC 00 10 28 */ fsubs f0, f0, f2
/* 80041314 EC 01 00 24 */ fdivs f0, f1, f0
/* 80041318 EF E3 00 32 */ fmuls f31, f3, f0
/* 8004131C C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80041320 A0 03 00 22 */ lhz r0, 0x22(r3)
/* 80041324 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80041328 90 A1 00 38 */ stw r5, 0x38(r1)
/* 8004132C C8 01 00 38 */ lfd f0, 0x38(r1)
/* 80041330 EC 00 10 28 */ fsubs f0, f0, f2
/* 80041334 EC 01 00 24 */ fdivs f0, f1, f0
/* 80041338 EF C3 00 32 */ fmuls f30, f3, f0
/* 8004133C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80041340 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80041344 C0 24 00 00 */ lfs f1, 0(r4)
/* 80041348 C0 42 84 28 */ lfs f2, lit_3796(r2)
/* 8004134C C0 64 00 08 */ lfs f3, 8(r4)
/* 80041350 48 30 55 99 */ bl PSMTXTrans
/* 80041354 FC 20 F8 90 */ fmr f1, f31
/* 80041358 C0 42 84 38 */ lfs f2, lit_4202(r2)
/* 8004135C FC 60 F0 90 */ fmr f3, f30
/* 80041360 4B FC BA D9 */ bl scaleM__14mDoMtx_stack_cFfff
/* 80041364 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80041368 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 8004136C 7F 84 E3 78 */ mr r4, r28
/* 80041370 4B FC B0 C5 */ bl mDoMtx_YrotM__FPA4_fs
/* 80041374 3B 80 00 00 */ li r28, 0
/* 80041378 3B E0 00 00 */ li r31, 0
/* 8004137C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 80041380 3B A3 D4 70 */ addi r29, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80041384 3C 60 80 38 */ lis r3, l_offset@ha /* 0x80379D5C@ha */
/* 80041388 3B C3 9D 5C */ addi r30, r3, l_offset@l /* 0x80379D5C@l */
lbl_8004138C:
/* 8004138C 7F A3 EB 78 */ mr r3, r29
/* 80041390 7C 9E FA 14 */ add r4, r30, r31
/* 80041394 38 A1 00 0C */ addi r5, r1, 0xc
/* 80041398 7C A5 FA 14 */ add r5, r5, r31
/* 8004139C 48 30 59 D1 */ bl PSMTXMultVec
/* 800413A0 3B 9C 00 01 */ addi r28, r28, 1
/* 800413A4 2C 1C 00 03 */ cmpwi r28, 3
/* 800413A8 3B FF 00 0C */ addi r31, r31, 0xc
/* 800413AC 41 80 FF E0 */ blt lbl_8004138C
/* 800413B0 48 31 A1 DD */ bl GXClearVtxDesc
/* 800413B4 38 60 00 09 */ li r3, 9
/* 800413B8 38 80 00 01 */ li r4, 1
/* 800413BC 48 31 9A FD */ bl GXSetVtxDesc
/* 800413C0 38 60 00 00 */ li r3, 0
/* 800413C4 38 80 00 09 */ li r4, 9
/* 800413C8 38 A0 00 00 */ li r5, 0
/* 800413CC 38 C0 00 04 */ li r6, 4
/* 800413D0 38 E0 00 00 */ li r7, 0
/* 800413D4 48 31 A1 F1 */ bl GXSetVtxAttrFmt
/* 800413D8 57 60 16 3A */ rlwinm r0, r27, 2, 0x18, 0x1d
/* 800413DC 98 0D 80 B8 */ stb r0, l_cursorColor(r13)
/* 800413E0 80 0D 80 B8 */ lwz r0, l_cursorColor(r13)
/* 800413E4 90 01 00 08 */ stw r0, 8(r1)
/* 800413E8 38 60 00 01 */ li r3, 1
/* 800413EC 38 81 00 08 */ addi r4, r1, 8
/* 800413F0 48 31 DF 8D */ bl GXSetTevColor
/* 800413F4 38 60 00 90 */ li r3, 0x90
/* 800413F8 38 80 00 00 */ li r4, 0
/* 800413FC 38 A0 00 03 */ li r5, 3
/* 80041400 48 31 B3 65 */ bl GXBegin
/* 80041404 38 60 00 00 */ li r3, 0
/* 80041408 3C 80 CC 01 */ lis r4, 0xCC01 /* 0xCC008000@ha */
/* 8004140C 38 00 00 03 */ li r0, 3
/* 80041410 7C 09 03 A6 */ mtctr r0
lbl_80041414:
/* 80041414 38 A1 00 0C */ addi r5, r1, 0xc
/* 80041418 7C A5 1A 14 */ add r5, r5, r3
/* 8004141C C0 05 00 00 */ lfs f0, 0(r5)
/* 80041420 D0 04 80 00 */ stfs f0, 0x8000(r4) /* 0xCC008000@l */
/* 80041424 C0 05 00 08 */ lfs f0, 8(r5)
/* 80041428 D0 04 80 00 */ stfs f0, -0x8000(r4)
/* 8004142C 38 63 00 0C */ addi r3, r3, 0xc
/* 80041430 42 00 FF E4 */ bdnz lbl_80041414
/* 80041434 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */
/* 80041438 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8004143C E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */
/* 80041440 CB C1 00 60 */ lfd f30, 0x60(r1)
/* 80041444 39 61 00 60 */ addi r11, r1, 0x60
/* 80041448 48 32 0D D9 */ bl _restgpr_27
/* 8004144C 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80041450 7C 08 03 A6 */ mtlr r0
/* 80041454 38 21 00 80 */ addi r1, r1, 0x80
/* 80041458 4E 80 00 20 */ blr
@@ -1,18 +0,0 @@
lbl_80040574:
/* 80040574 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040578 7C 08 02 A6 */ mflr r0
/* 8004057C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040580 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80040584 7C 7F 1B 78 */ mr r31, r3
/* 80040588 4B FE 39 6D */ bl dStage_GetKeepDoorInfo__Fv
/* 8004058C 7C 65 1B 78 */ mr r5, r3
/* 80040590 7F E3 FB 78 */ mr r3, r31
/* 80040594 38 85 00 04 */ addi r4, r5, 4
/* 80040598 80 A5 00 00 */ lwz r5, 0(r5)
/* 8004059C 38 C0 00 01 */ li r6, 1
/* 800405A0 48 00 00 5D */ bl drawDoorCommon__19renderingPlusDoor_cFPC21stage_tgsc_data_classib
/* 800405A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800405A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800405AC 7C 08 03 A6 */ mtlr r0
/* 800405B0 38 21 00 10 */ addi r1, r1, 0x10
/* 800405B4 4E 80 00 20 */ blr
@@ -1,18 +0,0 @@
lbl_800405B8:
/* 800405B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800405BC 7C 08 02 A6 */ mflr r0
/* 800405C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 800405C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800405C8 7C 7F 1B 78 */ mr r31, r3
/* 800405CC 4B FE 3A 91 */ bl dStage_GetRoomKeepDoorInfo__Fv
/* 800405D0 7C 65 1B 78 */ mr r5, r3
/* 800405D4 7F E3 FB 78 */ mr r3, r31
/* 800405D8 38 85 00 04 */ addi r4, r5, 4
/* 800405DC 80 A5 00 00 */ lwz r5, 0(r5)
/* 800405E0 38 C0 00 00 */ li r6, 0
/* 800405E4 48 00 00 19 */ bl drawDoorCommon__19renderingPlusDoor_cFPC21stage_tgsc_data_classib
/* 800405E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800405EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800405F0 7C 08 03 A6 */ mtlr r0
/* 800405F4 38 21 00 10 */ addi r1, r1, 0x10
/* 800405F8 4E 80 00 20 */ blr
@@ -1,73 +0,0 @@
lbl_800405FC:
/* 800405FC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80040600 7C 08 02 A6 */ mflr r0
/* 80040604 90 01 00 34 */ stw r0, 0x34(r1)
/* 80040608 39 61 00 30 */ addi r11, r1, 0x30
/* 8004060C 48 32 1B C1 */ bl _savegpr_25
/* 80040610 7C 79 1B 78 */ mr r25, r3
/* 80040614 7C 9A 23 78 */ mr r26, r4
/* 80040618 7C BB 2B 78 */ mr r27, r5
/* 8004061C 7C DC 33 78 */ mr r28, r6
/* 80040620 48 31 AF 6D */ bl GXClearVtxDesc
/* 80040624 38 60 00 09 */ li r3, 9
/* 80040628 38 80 00 01 */ li r4, 1
/* 8004062C 48 31 A8 8D */ bl GXSetVtxDesc
/* 80040630 38 60 00 0D */ li r3, 0xd
/* 80040634 38 80 00 02 */ li r4, 2
/* 80040638 48 31 A8 81 */ bl GXSetVtxDesc
/* 8004063C 38 60 00 00 */ li r3, 0
/* 80040640 38 80 00 09 */ li r4, 9
/* 80040644 38 A0 00 01 */ li r5, 1
/* 80040648 38 C0 00 04 */ li r6, 4
/* 8004064C 38 E0 00 00 */ li r7, 0
/* 80040650 48 31 AF 75 */ bl GXSetVtxAttrFmt
/* 80040654 38 60 00 00 */ li r3, 0
/* 80040658 38 80 00 0D */ li r4, 0xd
/* 8004065C 38 A0 00 01 */ li r5, 1
/* 80040660 38 C0 00 00 */ li r6, 0
/* 80040664 38 E0 00 00 */ li r7, 0
/* 80040668 48 31 AF 5D */ bl GXSetVtxAttrFmt
/* 8004066C 38 60 00 0D */ li r3, 0xd
/* 80040670 38 82 84 68 */ la r4, l_tex0(r2) /* 80451E68-_SDA2_BASE_ */
/* 80040674 38 A0 00 02 */ li r5, 2
/* 80040678 48 31 B4 B1 */ bl GXSetArray
/* 8004067C 7F 23 CB 78 */ mr r3, r25
/* 80040680 4B FF C8 C1 */ bl setTevSettingIntensityTextureToCI__18dRenderingFDAmap_cCFv
/* 80040684 3B A0 00 00 */ li r29, 0
/* 80040688 48 00 00 60 */ b lbl_800406E8
lbl_8004068C:
/* 8004068C 80 1A 00 08 */ lwz r0, 8(r26)
/* 80040690 54 1F 9E BE */ rlwinm r31, r0, 0x13, 0x1a, 0x1f
/* 80040694 54 1E 6E BE */ rlwinm r30, r0, 0xd, 0x1a, 0x1f
/* 80040698 7F 23 CB 78 */ mr r3, r25
/* 8004069C 7F E4 FB 78 */ mr r4, r31
/* 800406A0 7F C5 F3 78 */ mr r5, r30
/* 800406A4 C0 3A 00 10 */ lfs f1, 0x10(r26)
/* 800406A8 48 00 00 69 */ bl checkDispDoorS__19renderingPlusDoor_cFiif
/* 800406AC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800406B0 41 82 00 30 */ beq lbl_800406E0
/* 800406B4 3C 60 80 42 */ lis r3, m_texObjAgg__8dMpath_n@ha /* 0x80424684@ha */
/* 800406B8 38 63 46 84 */ addi r3, r3, m_texObjAgg__8dMpath_n@l /* 0x80424684@l */
/* 800406BC 80 63 00 00 */ lwz r3, 0(r3)
/* 800406C0 38 80 00 00 */ li r4, 0
/* 800406C4 48 31 DD 51 */ bl GXLoadTexObj
/* 800406C8 7F 23 CB 78 */ mr r3, r25
/* 800406CC 7F 44 D3 78 */ mr r4, r26
/* 800406D0 7F E5 FB 78 */ mr r5, r31
/* 800406D4 7F C6 F3 78 */ mr r6, r30
/* 800406D8 7F 87 E3 78 */ mr r7, r28
/* 800406DC 48 00 01 5D */ bl drawNormalDoorS__19renderingPlusDoor_cFPC21stage_tgsc_data_classiib
lbl_800406E0:
/* 800406E0 3B BD 00 01 */ addi r29, r29, 1
/* 800406E4 3B 5A 00 24 */ addi r26, r26, 0x24
lbl_800406E8:
/* 800406E8 7C 1D D8 00 */ cmpw r29, r27
/* 800406EC 41 80 FF A0 */ blt lbl_8004068C
/* 800406F0 7F 23 CB 78 */ mr r3, r25
/* 800406F4 4B FF C7 85 */ bl setTevSettingNonTextureDirectColor__18dRenderingFDAmap_cCFv
/* 800406F8 39 61 00 30 */ addi r11, r1, 0x30
/* 800406FC 48 32 1B 1D */ bl _restgpr_25
/* 80040700 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80040704 7C 08 03 A6 */ mtlr r0
/* 80040708 38 21 00 30 */ addi r1, r1, 0x30
/* 8004070C 4E 80 00 20 */ blr
@@ -1,49 +0,0 @@
lbl_80041208:
/* 80041208 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004120C 7C 08 02 A6 */ mflr r0
/* 80041210 90 01 00 34 */ stw r0, 0x34(r1)
/* 80041214 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80041218 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 8004121C DB C1 00 10 */ stfd f30, 0x10(r1)
/* 80041220 F3 C1 00 18 */ psq_st f30, 24(r1), 0, 0 /* qr0 */
/* 80041224 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80041228 7C 9F 23 78 */ mr r31, r4
/* 8004122C FF C0 08 90 */ fmr f30, f1
/* 80041230 FF E0 10 90 */ fmr f31, f2
/* 80041234 38 60 00 80 */ li r3, 0x80
/* 80041238 38 80 00 00 */ li r4, 0
/* 8004123C 38 A0 00 04 */ li r5, 4
/* 80041240 48 31 B5 25 */ bl GXBegin
/* 80041244 38 C0 00 00 */ li r6, 0
/* 80041248 C0 5F 00 08 */ lfs f2, 8(r31)
/* 8004124C 3C 60 80 38 */ lis r3, l_iconPosData@ha /* 0x80379D3C@ha */
/* 80041250 38 83 9D 3C */ addi r4, r3, l_iconPosData@l /* 0x80379D3C@l */
/* 80041254 C0 3F 00 00 */ lfs f1, 0(r31)
/* 80041258 3C 60 CC 01 */ lis r3, 0xcc01
/* 8004125C 48 00 00 34 */ b lbl_80041290
lbl_80041260:
/* 80041260 54 C0 1D 78 */ rlwinm r0, r6, 3, 0x15, 0x1c
/* 80041264 7C A4 02 14 */ add r5, r4, r0
/* 80041268 C0 05 00 04 */ lfs f0, 4(r5)
/* 8004126C EC 1F 00 32 */ fmuls f0, f31, f0
/* 80041270 EC 62 00 2A */ fadds f3, f2, f0
/* 80041274 C0 05 00 00 */ lfs f0, 0(r5)
/* 80041278 EC 1E 00 32 */ fmuls f0, f30, f0
/* 8004127C EC 01 00 2A */ fadds f0, f1, f0
/* 80041280 D0 03 80 00 */ stfs f0, -0x8000(r3)
/* 80041284 D0 63 80 00 */ stfs f3, -0x8000(r3)
/* 80041288 98 C3 80 00 */ stb r6, -0x8000(r3)
/* 8004128C 38 C6 00 01 */ addi r6, r6, 1
lbl_80041290:
/* 80041290 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 80041294 28 00 00 04 */ cmplwi r0, 4
/* 80041298 41 80 FF C8 */ blt lbl_80041260
/* 8004129C E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 800412A0 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 800412A4 E3 C1 00 18 */ psq_l f30, 24(r1), 0, 0 /* qr0 */
/* 800412A8 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 800412AC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800412B0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800412B4 7C 08 03 A6 */ mtlr r0
/* 800412B8 38 21 00 30 */ addi r1, r1, 0x30
/* 800412BC 4E 80 00 20 */ blr
@@ -1,102 +0,0 @@
lbl_80040838:
/* 80040838 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8004083C 7C 08 02 A6 */ mflr r0
/* 80040840 90 01 00 74 */ stw r0, 0x74(r1)
/* 80040844 39 61 00 70 */ addi r11, r1, 0x70
/* 80040848 48 32 19 95 */ bl _savegpr_29
/* 8004084C 7C 9D 23 78 */ mr r29, r4
/* 80040850 7C BE 2B 78 */ mr r30, r5
/* 80040854 7C FF 3B 78 */ mr r31, r7
/* 80040858 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13)
/* 8004085C 7C 00 07 74 */ extsb r0, r0
/* 80040860 7C 1E 00 00 */ cmpw r30, r0
/* 80040864 41 82 00 0C */ beq lbl_80040870
/* 80040868 7C 06 00 00 */ cmpw r6, r0
/* 8004086C 40 82 00 30 */ bne lbl_8004089C
lbl_80040870:
/* 80040870 80 02 84 58 */ lwz r0, l_doorWhite(r2)
/* 80040874 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040878 38 60 00 02 */ li r3, 2
/* 8004087C 38 81 00 14 */ addi r4, r1, 0x14
/* 80040880 48 31 EA FD */ bl GXSetTevColor
/* 80040884 80 02 84 60 */ lwz r0, l_doorWhite2(r2)
/* 80040888 90 01 00 10 */ stw r0, 0x10(r1)
/* 8004088C 38 60 00 03 */ li r3, 3
/* 80040890 38 81 00 10 */ addi r4, r1, 0x10
/* 80040894 48 31 EA E9 */ bl GXSetTevColor
/* 80040898 48 00 00 2C */ b lbl_800408C4
lbl_8004089C:
/* 8004089C 80 02 84 5C */ lwz r0, l_doorWhiteNoStay(r2)
/* 800408A0 90 01 00 0C */ stw r0, 0xc(r1)
/* 800408A4 38 60 00 02 */ li r3, 2
/* 800408A8 38 81 00 0C */ addi r4, r1, 0xc
/* 800408AC 48 31 EA D1 */ bl GXSetTevColor
/* 800408B0 80 02 84 64 */ lwz r0, l_doorWhiteNoStay2(r2)
/* 800408B4 90 01 00 08 */ stw r0, 8(r1)
/* 800408B8 38 60 00 03 */ li r3, 3
/* 800408BC 38 81 00 08 */ addi r4, r1, 8
/* 800408C0 48 31 EA BD */ bl GXSetTevColor
lbl_800408C4:
/* 800408C4 C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 800408C8 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 800408CC C0 1D 00 10 */ lfs f0, 0x10(r29)
/* 800408D0 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 800408D4 C0 1D 00 14 */ lfs f0, 0x14(r29)
/* 800408D8 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 800408DC 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 800408E0 41 82 00 10 */ beq lbl_800408F0
/* 800408E4 7F C3 07 74 */ extsb r3, r30
/* 800408E8 38 81 00 18 */ addi r4, r1, 0x18
/* 800408EC 4B FF E4 75 */ bl correctionOriginPos__10dMapInfo_nFScP3Vec
lbl_800408F0:
/* 800408F0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 800408F4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 800408F8 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 800408FC C0 41 00 20 */ lfs f2, 0x20(r1)
/* 80040900 C0 62 84 28 */ lfs f3, lit_3796(r2)
/* 80040904 48 30 5F E5 */ bl PSMTXTrans
/* 80040908 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8004090C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80040910 A8 9D 00 1A */ lha r4, 0x1a(r29)
/* 80040914 4B FC BB B9 */ bl mDoMtx_ZrotM__FPA4_fs
/* 80040918 C0 22 84 70 */ lfs f1, lit_4484(r2)
/* 8004091C FC 40 08 90 */ fmr f2, f1
/* 80040920 C0 62 84 38 */ lfs f3, lit_4202(r2)
/* 80040924 4B FC C5 15 */ bl scaleM__14mDoMtx_stack_cFfff
/* 80040928 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8004092C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 80040930 3C 80 80 38 */ lis r4, l_100x100BoxVertexList@ha /* 0x80379C58@ha */
/* 80040934 38 84 9C 58 */ addi r4, r4, l_100x100BoxVertexList@l /* 0x80379C58@l */
/* 80040938 38 A1 00 24 */ addi r5, r1, 0x24
/* 8004093C 38 C0 00 04 */ li r6, 4
/* 80040940 48 30 64 81 */ bl PSMTXMultVecArray
/* 80040944 38 60 00 80 */ li r3, 0x80
/* 80040948 38 80 00 00 */ li r4, 0
/* 8004094C 38 A0 00 04 */ li r5, 4
/* 80040950 48 31 BE 15 */ bl GXBegin
/* 80040954 38 A0 00 00 */ li r5, 0
/* 80040958 3C 60 CC 01 */ lis r3, 0xcc01
/* 8004095C 48 00 00 34 */ b lbl_80040990
lbl_80040960:
/* 80040960 54 A0 06 3E */ clrlwi r0, r5, 0x18
/* 80040964 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80040968 38 81 00 24 */ addi r4, r1, 0x24
/* 8004096C 7C 84 02 14 */ add r4, r4, r0
/* 80040970 C0 04 00 00 */ lfs f0, 0(r4)
/* 80040974 D0 03 80 00 */ stfs f0, -0x8000(r3)
/* 80040978 C0 04 00 04 */ lfs f0, 4(r4)
/* 8004097C D0 03 80 00 */ stfs f0, -0x8000(r3)
/* 80040980 C0 04 00 08 */ lfs f0, 8(r4)
/* 80040984 D0 03 80 00 */ stfs f0, -0x8000(r3)
/* 80040988 98 A3 80 00 */ stb r5, -0x8000(r3)
/* 8004098C 38 A5 00 01 */ addi r5, r5, 1
lbl_80040990:
/* 80040990 54 A0 06 3E */ clrlwi r0, r5, 0x18
/* 80040994 28 00 00 04 */ cmplwi r0, 4
/* 80040998 41 80 FF C8 */ blt lbl_80040960
/* 8004099C 39 61 00 70 */ addi r11, r1, 0x70
/* 800409A0 48 32 18 89 */ bl _restgpr_29
/* 800409A4 80 01 00 74 */ lwz r0, 0x74(r1)
/* 800409A8 7C 08 03 A6 */ mtlr r0
/* 800409AC 38 21 00 70 */ addi r1, r1, 0x70
/* 800409B0 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8003FE18:
/* 8003FE18 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FE1C 7C 08 02 A6 */ mflr r0
/* 8003FE20 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FE24 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003FE28 7C 7F 1B 78 */ mr r31, r3
/* 8003FE2C 4B FF CF 81 */ bl renderingMap__15dRenderingMap_cFv
/* 8003FE30 38 00 00 01 */ li r0, 1
/* 8003FE34 98 1F 00 31 */ stb r0, 0x31(r31)
/* 8003FE38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003FE3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FE40 7C 08 03 A6 */ mtlr r0
/* 8003FE44 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FE48 4E 80 00 20 */ blr
@@ -1,38 +0,0 @@
lbl_8003FD08:
/* 8003FD08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003FD0C 7C 08 02 A6 */ mflr r0
/* 8003FD10 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003FD14 7C 66 1B 78 */ mr r6, r3
/* 8003FD18 D0 23 00 10 */ stfs f1, 0x10(r3)
/* 8003FD1C D0 43 00 14 */ stfs f2, 0x14(r3)
/* 8003FD20 D0 63 00 18 */ stfs f3, 0x18(r3)
/* 8003FD24 C0 23 00 18 */ lfs f1, 0x18(r3)
/* 8003FD28 A0 03 00 20 */ lhz r0, 0x20(r3)
/* 8003FD2C C8 42 84 40 */ lfd f2, lit_4211(r2)
/* 8003FD30 90 01 00 0C */ stw r0, 0xc(r1)
/* 8003FD34 3C 60 43 30 */ lis r3, 0x4330
/* 8003FD38 90 61 00 08 */ stw r3, 8(r1)
/* 8003FD3C C8 01 00 08 */ lfd f0, 8(r1)
/* 8003FD40 EC 00 10 28 */ fsubs f0, f0, f2
/* 8003FD44 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003FD48 D0 06 00 08 */ stfs f0, 8(r6)
/* 8003FD4C C0 26 00 18 */ lfs f1, 0x18(r6)
/* 8003FD50 A0 06 00 22 */ lhz r0, 0x22(r6)
/* 8003FD54 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FD58 90 61 00 10 */ stw r3, 0x10(r1)
/* 8003FD5C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 8003FD60 EC 00 10 28 */ fsubs f0, f0, f2
/* 8003FD64 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003FD68 D0 06 00 0C */ stfs f0, 0xc(r6)
/* 8003FD6C 90 86 00 2C */ stw r4, 0x2c(r6)
/* 8003FD70 98 A6 00 30 */ stb r5, 0x30(r6)
/* 8003FD74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003FD78 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003FD7C 38 63 5F 64 */ addi r3, r3, 0x5f64
/* 8003FD80 38 83 00 64 */ addi r4, r3, 0x64
/* 8003FD84 38 A3 00 68 */ addi r5, r3, 0x68
/* 8003FD88 48 01 6A 0D */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c
/* 8003FD8C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003FD90 7C 08 03 A6 */ mtlr r0
/* 8003FD94 38 21 00 20 */ addi r1, r1, 0x20
/* 8003FD98 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_8003FE4C:
/* 8003FE4C 38 62 84 48 */ la r3, l_mapBaseColor(r2) /* 80451E48-_SDA2_BASE_ */
/* 8003FE50 4E 80 00 20 */ blr
@@ -1,52 +0,0 @@
lbl_8003EF70:
/* 8003EF70 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003EF74 7C 08 02 A6 */ mflr r0
/* 8003EF78 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003EF7C 39 61 00 20 */ addi r11, r1, 0x20
/* 8003EF80 48 32 32 59 */ bl _savegpr_28
/* 8003EF84 3C 60 80 42 */ lis r3, mTypeGroupListAll__7dTres_c@ha /* 0x80425438@ha */
/* 8003EF88 38 63 54 38 */ addi r3, r3, mTypeGroupListAll__7dTres_c@l /* 0x80425438@l */
/* 8003EF8C 8B C3 00 5C */ lbz r30, 0x5c(r3)
/* 8003EF90 38 60 00 07 */ li r3, 7
/* 8003EF94 48 05 D3 CD */ bl getFirstData__7dTres_cFUc
/* 8003EF98 7C 7D 1B 78 */ mr r29, r3
/* 8003EF9C 3B 80 00 00 */ li r28, 0
/* 8003EFA0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003EFA4 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003EFA8 48 00 00 58 */ b lbl_8003F000
lbl_8003EFAC:
/* 8003EFAC 88 1D 00 01 */ lbz r0, 1(r29)
/* 8003EFB0 7C 05 07 74 */ extsb r5, r0
/* 8003EFB4 88 1F 0D B4 */ lbz r0, 0xdb4(r31)
/* 8003EFB8 7C 00 07 74 */ extsb r0, r0
/* 8003EFBC 7C 05 00 00 */ cmpw r5, r0
/* 8003EFC0 40 82 00 30 */ bne lbl_8003EFF0
/* 8003EFC4 88 1D 00 10 */ lbz r0, 0x10(r29)
/* 8003EFC8 28 00 00 FF */ cmplwi r0, 0xff
/* 8003EFCC 41 82 00 44 */ beq lbl_8003F010
/* 8003EFD0 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 8003EFD4 28 04 00 FF */ cmplwi r4, 0xff
/* 8003EFD8 41 82 00 18 */ beq lbl_8003EFF0
/* 8003EFDC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003EFE0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003EFE4 4B FF 63 7D */ bl isSwitch__10dSv_info_cCFii
/* 8003EFE8 2C 03 00 00 */ cmpwi r3, 0
/* 8003EFEC 40 82 00 24 */ bne lbl_8003F010
lbl_8003EFF0:
/* 8003EFF0 7F A3 EB 78 */ mr r3, r29
/* 8003EFF4 48 05 D3 C1 */ bl getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c
/* 8003EFF8 7C 7D 1B 78 */ mr r29, r3
/* 8003EFFC 3B 9C 00 01 */ addi r28, r28, 1
lbl_8003F000:
/* 8003F000 7C 1C F0 00 */ cmpw r28, r30
/* 8003F004 40 80 00 0C */ bge lbl_8003F010
/* 8003F008 28 1D 00 00 */ cmplwi r29, 0
/* 8003F00C 40 82 FF A0 */ bne lbl_8003EFAC
lbl_8003F010:
/* 8003F010 7F A3 EB 78 */ mr r3, r29
/* 8003F014 39 61 00 20 */ addi r11, r1, 0x20
/* 8003F018 48 32 32 0D */ bl _restgpr_28
/* 8003F01C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F020 7C 08 03 A6 */ mtlr r0
/* 8003F024 38 21 00 20 */ addi r1, r1, 0x20
/* 8003F028 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_80040A94:
/* 80040A94 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040A98 7C 08 02 A6 */ mflr r0
/* 80040A9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040AA0 54 83 06 3E */ clrlwi r3, r4, 0x18
/* 80040AA4 48 05 B8 BD */ bl getFirstData__7dTres_cFUc
/* 80040AA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040AAC 7C 08 03 A6 */ mtlr r0
/* 80040AB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80040AB4 4E 80 00 20 */ blr
@@ -1,43 +0,0 @@
lbl_8003FFF4:
/* 8003FFF4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FFF8 7C 08 02 A6 */ mflr r0
/* 8003FFFC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040000 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80040004 93 C1 00 08 */ stw r30, 8(r1)
/* 80040008 7C 7E 1B 78 */ mr r30, r3
/* 8004000C 3B E0 00 00 */ li r31, 0
/* 80040010 81 83 00 00 */ lwz r12, 0(r3)
/* 80040014 81 8C 00 7C */ lwz r12, 0x7c(r12)
/* 80040018 7D 89 03 A6 */ mtctr r12
/* 8004001C 4E 80 04 21 */ bctrl
/* 80040020 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040024 41 82 00 3C */ beq lbl_80040060
/* 80040028 7F C3 F3 78 */ mr r3, r30
/* 8004002C 38 80 00 00 */ li r4, 0
/* 80040030 80 BE 00 2C */ lwz r5, 0x2c(r30)
/* 80040034 81 9E 00 00 */ lwz r12, 0(r30)
/* 80040038 81 8C 00 90 */ lwz r12, 0x90(r12)
/* 8004003C 7D 89 03 A6 */ mtctr r12
/* 80040040 4E 80 04 21 */ bctrl
/* 80040044 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80040048 40 82 00 30 */ bne lbl_80040078
/* 8004004C 7F C3 F3 78 */ mr r3, r30
/* 80040050 38 80 00 00 */ li r4, 0
/* 80040054 48 00 00 41 */ bl getNextDrawRoomNo__16renderingDAmap_cFi
/* 80040058 7C 7F 1B 78 */ mr r31, r3
/* 8004005C 48 00 00 1C */ b lbl_80040078
lbl_80040060:
/* 80040060 7F C3 F3 78 */ mr r3, r30
/* 80040064 81 9E 00 00 */ lwz r12, 0(r30)
/* 80040068 81 8C 00 8C */ lwz r12, 0x8c(r12)
/* 8004006C 7D 89 03 A6 */ mtctr r12
/* 80040070 4E 80 04 21 */ bctrl
/* 80040074 7C 7F 1B 78 */ mr r31, r3
lbl_80040078:
/* 80040078 7F E3 FB 78 */ mr r3, r31
/* 8004007C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80040080 83 C1 00 08 */ lwz r30, 8(r1)
/* 80040084 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040088 7C 08 03 A6 */ mtlr r0
/* 8004008C 38 21 00 10 */ addi r1, r1, 0x10
/* 80040090 4E 80 00 20 */ blr
@@ -1,118 +0,0 @@
lbl_8003F24C:
/* 8003F24C 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8003F250 7C 08 02 A6 */ mflr r0
/* 8003F254 90 01 00 84 */ stw r0, 0x84(r1)
/* 8003F258 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8003F25C F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */
/* 8003F260 DB C1 00 60 */ stfd f30, 0x60(r1)
/* 8003F264 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */
/* 8003F268 DB A1 00 50 */ stfd f29, 0x50(r1)
/* 8003F26C F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0 /* qr0 */
/* 8003F270 DB 81 00 40 */ stfd f28, 0x40(r1)
/* 8003F274 F3 81 00 48 */ psq_st f28, 72(r1), 0, 0 /* qr0 */
/* 8003F278 39 61 00 40 */ addi r11, r1, 0x40
/* 8003F27C 48 32 2F 55 */ bl _savegpr_26
/* 8003F280 FF 80 08 90 */ fmr f28, f1
/* 8003F284 7C 7B 1B 78 */ mr r27, r3
/* 8003F288 7C 9C 23 78 */ mr r28, r4
/* 8003F28C 7C BD 2B 78 */ mr r29, r5
/* 8003F290 7C DE 33 78 */ mr r30, r6
/* 8003F294 7C FF 3B 78 */ mr r31, r7
/* 8003F298 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003F29C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003F2A0 3B 43 4E 20 */ addi r26, r3, 0x4e20
/* 8003F2A4 7F 43 D3 78 */ mr r3, r26
/* 8003F2A8 81 9A 00 00 */ lwz r12, 0(r26)
/* 8003F2AC 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 8003F2B0 7D 89 03 A6 */ mtctr r12
/* 8003F2B4 4E 80 04 21 */ bctrl
/* 8003F2B8 A8 03 00 1A */ lha r0, 0x1a(r3)
/* 8003F2BC C8 22 84 30 */ lfd f1, lit_3957(r2)
/* 8003F2C0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8003F2C4 90 01 00 0C */ stw r0, 0xc(r1)
/* 8003F2C8 3C 00 43 30 */ lis r0, 0x4330
/* 8003F2CC 90 01 00 08 */ stw r0, 8(r1)
/* 8003F2D0 C8 01 00 08 */ lfd f0, 8(r1)
/* 8003F2D4 EF E0 08 28 */ fsubs f31, f0, f1
/* 8003F2D8 7F 43 D3 78 */ mr r3, r26
/* 8003F2DC 81 9A 00 00 */ lwz r12, 0(r26)
/* 8003F2E0 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 8003F2E4 7D 89 03 A6 */ mtctr r12
/* 8003F2E8 4E 80 04 21 */ bctrl
/* 8003F2EC A8 03 00 1C */ lha r0, 0x1c(r3)
/* 8003F2F0 C8 22 84 30 */ lfd f1, lit_3957(r2)
/* 8003F2F4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8003F2F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003F2FC 3C 00 43 30 */ lis r0, 0x4330
/* 8003F300 90 01 00 10 */ stw r0, 0x10(r1)
/* 8003F304 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 8003F308 EC 00 08 28 */ fsubs f0, f0, f1
/* 8003F30C FC 00 02 10 */ fabs f0, f0
/* 8003F310 FF C0 00 18 */ frsp f30, f0
/* 8003F314 7F 43 D3 78 */ mr r3, r26
/* 8003F318 81 9A 00 00 */ lwz r12, 0(r26)
/* 8003F31C 81 8C 00 BC */ lwz r12, 0xbc(r12)
/* 8003F320 7D 89 03 A6 */ mtctr r12
/* 8003F324 4E 80 04 21 */ bctrl
/* 8003F328 A8 03 00 1E */ lha r0, 0x1e(r3)
/* 8003F32C C8 22 84 30 */ lfd f1, lit_3957(r2)
/* 8003F330 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8003F334 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8003F338 3C 00 43 30 */ lis r0, 0x4330
/* 8003F33C 90 01 00 18 */ stw r0, 0x18(r1)
/* 8003F340 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 8003F344 EC 00 08 28 */ fsubs f0, f0, f1
/* 8003F348 FC 00 02 10 */ fabs f0, f0
/* 8003F34C FF A0 00 18 */ frsp f29, f0
/* 8003F350 EC 3C F8 24 */ fdivs f1, f28, f31
/* 8003F354 48 32 CD A9 */ bl floor
/* 8003F358 FC 00 08 18 */ frsp f0, f1
/* 8003F35C FC 00 00 1E */ fctiwz f0, f0
/* 8003F360 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 8003F364 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F368 28 1B 00 00 */ cmplwi r27, 0
/* 8003F36C 41 82 00 08 */ beq lbl_8003F374
/* 8003F370 98 1B 00 00 */ stb r0, 0(r27)
lbl_8003F374:
/* 8003F374 7C 00 07 74 */ extsb r0, r0
/* 8003F378 C8 22 84 30 */ lfd f1, lit_3957(r2)
/* 8003F37C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8003F380 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003F384 3C 00 43 30 */ lis r0, 0x4330
/* 8003F388 90 01 00 20 */ stw r0, 0x20(r1)
/* 8003F38C C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8003F390 EC 00 08 28 */ fsubs f0, f0, f1
/* 8003F394 EC 20 07 F2 */ fmuls f1, f0, f31
/* 8003F398 28 1C 00 00 */ cmplwi r28, 0
/* 8003F39C 41 82 00 08 */ beq lbl_8003F3A4
/* 8003F3A0 D0 3C 00 00 */ stfs f1, 0(r28)
lbl_8003F3A4:
/* 8003F3A4 28 1D 00 00 */ cmplwi r29, 0
/* 8003F3A8 41 82 00 0C */ beq lbl_8003F3B4
/* 8003F3AC EC 01 F0 2A */ fadds f0, f1, f30
/* 8003F3B0 D0 1D 00 00 */ stfs f0, 0(r29)
lbl_8003F3B4:
/* 8003F3B4 28 1E 00 00 */ cmplwi r30, 0
/* 8003F3B8 41 82 00 10 */ beq lbl_8003F3C8
/* 8003F3BC EC 01 F8 2A */ fadds f0, f1, f31
/* 8003F3C0 EC 00 E8 28 */ fsubs f0, f0, f29
/* 8003F3C4 D0 1E 00 00 */ stfs f0, 0(r30)
lbl_8003F3C8:
/* 8003F3C8 28 1F 00 00 */ cmplwi r31, 0
/* 8003F3CC 41 82 00 08 */ beq lbl_8003F3D4
/* 8003F3D0 D3 FF 00 00 */ stfs f31, 0(r31)
lbl_8003F3D4:
/* 8003F3D4 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */
/* 8003F3D8 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8003F3DC E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */
/* 8003F3E0 CB C1 00 60 */ lfd f30, 0x60(r1)
/* 8003F3E4 E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0 /* qr0 */
/* 8003F3E8 CB A1 00 50 */ lfd f29, 0x50(r1)
/* 8003F3EC E3 81 00 48 */ psq_l f28, 72(r1), 0, 0 /* qr0 */
/* 8003F3F0 CB 81 00 40 */ lfd f28, 0x40(r1)
/* 8003F3F4 39 61 00 40 */ addi r11, r1, 0x40
/* 8003F3F8 48 32 2E 25 */ bl _restgpr_26
/* 8003F3FC 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8003F400 7C 08 03 A6 */ mtlr r0
/* 8003F404 38 21 00 80 */ addi r1, r1, 0x80
/* 8003F408 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_80040AE4:
/* 80040AE4 3C 60 80 42 */ lis r3, mTypeGroupListAll__7dTres_c@ha /* 0x80425438@ha */
/* 80040AE8 38 63 54 38 */ addi r3, r3, mTypeGroupListAll__7dTres_c@l /* 0x80425438@l */
/* 80040AEC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80040AF0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80040AF4 7C 63 02 14 */ add r3, r3, r0
/* 80040AF8 88 63 00 08 */ lbz r3, 8(r3)
/* 80040AFC 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_80040ADC:
/* 80040ADC 38 64 00 04 */ addi r3, r4, 4
/* 80040AE0 4E 80 00 20 */ blr
@@ -1,22 +0,0 @@
lbl_8003EF20:
/* 8003EF20 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13)
/* 8003EF24 7C 00 07 74 */ extsb r0, r0
/* 8003EF28 38 60 00 00 */ li r3, 0
/* 8003EF2C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003EF30 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003EF34 80 84 5D AC */ lwz r4, 0x5dac(r4)
/* 8003EF38 28 04 00 00 */ cmplwi r4, 0
/* 8003EF3C 41 82 00 08 */ beq lbl_8003EF44
/* 8003EF40 A8 64 04 E6 */ lha r3, 0x4e6(r4)
lbl_8003EF44:
/* 8003EF44 3C 80 80 3F */ lis r4, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003EF48 38 84 60 94 */ addi r4, r4, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003EF4C 1C 00 04 04 */ mulli r0, r0, 0x404
/* 8003EF50 7C 84 02 14 */ add r4, r4, r0
/* 8003EF54 80 84 00 20 */ lwz r4, 0x20(r4)
/* 8003EF58 28 04 00 00 */ cmplwi r4, 0
/* 8003EF5C 4D 82 00 20 */ beqlr
/* 8003EF60 A8 04 00 1C */ lha r0, 0x1c(r4)
/* 8003EF64 7C 03 02 14 */ add r0, r3, r0
/* 8003EF68 7C 03 07 34 */ extsh r3, r0
/* 8003EF6C 4E 80 00 20 */ blr
@@ -1,53 +0,0 @@
lbl_8003EE5C:
/* 8003EE5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003EE60 7C 08 02 A6 */ mflr r0
/* 8003EE64 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003EE68 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003EE6C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003EE70 7C 7E 1B 78 */ mr r30, r3
/* 8003EE74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003EE78 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003EE7C 80 63 5D AC */ lwz r3, 0x5dac(r3)
/* 8003EE80 28 03 00 00 */ cmplwi r3, 0
/* 8003EE84 41 82 00 20 */ beq lbl_8003EEA4
/* 8003EE88 C0 03 04 D0 */ lfs f0, 0x4d0(r3)
/* 8003EE8C D0 01 00 08 */ stfs f0, 8(r1)
/* 8003EE90 C0 03 04 D4 */ lfs f0, 0x4d4(r3)
/* 8003EE94 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003EE98 C0 03 04 D8 */ lfs f0, 0x4d8(r3)
/* 8003EE9C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8003EEA0 48 00 00 14 */ b lbl_8003EEB4
lbl_8003EEA4:
/* 8003EEA4 C0 02 84 28 */ lfs f0, lit_3796(r2)
/* 8003EEA8 D0 01 00 08 */ stfs f0, 8(r1)
/* 8003EEAC D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003EEB0 D0 01 00 10 */ stfs f0, 0x10(r1)
lbl_8003EEB4:
/* 8003EEB4 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13)
/* 8003EEB8 7C 00 07 74 */ extsb r0, r0
/* 8003EEBC 3C 60 80 3F */ lis r3, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003EEC0 38 63 60 94 */ addi r3, r3, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003EEC4 1C 00 04 04 */ mulli r0, r0, 0x404
/* 8003EEC8 7C 63 02 14 */ add r3, r3, r0
/* 8003EECC 83 E3 00 20 */ lwz r31, 0x20(r3)
/* 8003EED0 28 1F 00 00 */ cmplwi r31, 0
/* 8003EED4 41 82 00 1C */ beq lbl_8003EEF0
/* 8003EED8 7F E3 FB 78 */ mr r3, r31
/* 8003EEDC 38 81 00 08 */ addi r4, r1, 8
/* 8003EEE0 4B FF FF 0D */ bl rotAngle__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec
/* 8003EEE4 7F E3 FB 78 */ mr r3, r31
/* 8003EEE8 38 81 00 08 */ addi r4, r1, 8
/* 8003EEEC 4B FF FE D5 */ bl offsetPlus__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec
lbl_8003EEF0:
/* 8003EEF0 80 61 00 08 */ lwz r3, 8(r1)
/* 8003EEF4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8003EEF8 90 7E 00 00 */ stw r3, 0(r30)
/* 8003EEFC 90 1E 00 04 */ stw r0, 4(r30)
/* 8003EF00 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8003EF04 90 1E 00 08 */ stw r0, 8(r30)
/* 8003EF08 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003EF0C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003EF10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003EF14 7C 08 03 A6 */ mtlr r0
/* 8003EF18 38 21 00 20 */ addi r1, r1, 0x20
/* 8003EF1C 4E 80 00 20 */ blr
@@ -1,54 +0,0 @@
lbl_8003F02C:
/* 8003F02C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003F030 7C 08 02 A6 */ mflr r0
/* 8003F034 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003F038 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8003F03C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8003F040 7C 7E 1B 78 */ mr r30, r3
/* 8003F044 4B FF FF 2D */ bl getConstRestartIconPointer__10dMapInfo_nFv
/* 8003F048 28 03 00 00 */ cmplwi r3, 0
/* 8003F04C 41 82 00 20 */ beq lbl_8003F06C
/* 8003F050 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003F054 D0 01 00 08 */ stfs f0, 8(r1)
/* 8003F058 C0 03 00 08 */ lfs f0, 8(r3)
/* 8003F05C D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003F060 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8003F064 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8003F068 48 00 00 24 */ b lbl_8003F08C
lbl_8003F06C:
/* 8003F06C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003F070 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003F074 C0 03 0D BC */ lfs f0, 0xdbc(r3)
/* 8003F078 D0 01 00 08 */ stfs f0, 8(r1)
/* 8003F07C C0 03 0D C0 */ lfs f0, 0xdc0(r3)
/* 8003F080 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003F084 C0 03 0D C4 */ lfs f0, 0xdc4(r3)
/* 8003F088 D0 01 00 10 */ stfs f0, 0x10(r1)
lbl_8003F08C:
/* 8003F08C 3C 60 80 3F */ lis r3, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003F090 38 83 60 94 */ addi r4, r3, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003F094 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003F098 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003F09C 88 03 0D B4 */ lbz r0, 0xdb4(r3)
/* 8003F0A0 7C 00 07 74 */ extsb r0, r0
/* 8003F0A4 1C 00 04 04 */ mulli r0, r0, 0x404
/* 8003F0A8 7C 64 02 14 */ add r3, r4, r0
/* 8003F0AC 83 E3 00 20 */ lwz r31, 0x20(r3)
/* 8003F0B0 7F E3 FB 78 */ mr r3, r31
/* 8003F0B4 38 81 00 08 */ addi r4, r1, 8
/* 8003F0B8 4B FF FD 35 */ bl rotAngle__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec
/* 8003F0BC 7F E3 FB 78 */ mr r3, r31
/* 8003F0C0 38 81 00 08 */ addi r4, r1, 8
/* 8003F0C4 4B FF FC FD */ bl offsetPlus__10dMapInfo_nFPC21dStage_FileList2_dt_cP3Vec
/* 8003F0C8 80 61 00 08 */ lwz r3, 8(r1)
/* 8003F0CC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8003F0D0 90 7E 00 00 */ stw r3, 0(r30)
/* 8003F0D4 90 1E 00 04 */ stw r0, 4(r30)
/* 8003F0D8 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8003F0DC 90 1E 00 08 */ stw r0, 8(r30)
/* 8003F0E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8003F0E4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8003F0E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003F0EC 7C 08 03 A6 */ mtlr r0
/* 8003F0F0 38 21 00 20 */ addi r1, r1, 0x20
/* 8003F0F4 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_80040AB8:
/* 80040AB8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80040ABC 7C 08 02 A6 */ mflr r0
/* 80040AC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80040AC4 7C 83 23 78 */ mr r3, r4
/* 80040AC8 48 05 B8 D5 */ bl getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c
/* 80040ACC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80040AD0 7C 08 03 A6 */ mtlr r0
/* 80040AD4 38 21 00 10 */ addi r1, r1, 0x10
/* 80040AD8 4E 80 00 20 */ blr
@@ -1,6 +0,0 @@
lbl_800402E8:
/* 800402E8 38 64 00 01 */ addi r3, r4, 1
/* 800402EC 2C 03 00 02 */ cmpwi r3, 2
/* 800402F0 4D 80 00 20 */ bltlr
/* 800402F4 38 60 FF FF */ li r3, -1
/* 800402F8 4E 80 00 20 */ blr
@@ -1,24 +0,0 @@
lbl_8003F19C:
/* 8003F19C 3C C0 80 3F */ lis r6, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003F1A0 38 C6 60 94 */ addi r6, r6, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003F1A4 1C 03 04 04 */ mulli r0, r3, 0x404
/* 8003F1A8 7C 66 02 14 */ add r3, r6, r0
/* 8003F1AC 80 63 00 20 */ lwz r3, 0x20(r3)
/* 8003F1B0 28 04 00 00 */ cmplwi r4, 0
/* 8003F1B4 41 82 00 1C */ beq lbl_8003F1D0
/* 8003F1B8 C0 42 84 2C */ lfs f2, lit_3887(r2)
/* 8003F1BC C0 23 00 08 */ lfs f1, 8(r3)
/* 8003F1C0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8003F1C4 EC 01 00 2A */ fadds f0, f1, f0
/* 8003F1C8 EC 02 00 32 */ fmuls f0, f2, f0
/* 8003F1CC D0 04 00 00 */ stfs f0, 0(r4)
lbl_8003F1D0:
/* 8003F1D0 28 05 00 00 */ cmplwi r5, 0
/* 8003F1D4 4D 82 00 20 */ beqlr
/* 8003F1D8 C0 42 84 2C */ lfs f2, lit_3887(r2)
/* 8003F1DC C0 23 00 0C */ lfs f1, 0xc(r3)
/* 8003F1E0 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003F1E4 EC 01 00 2A */ fadds f0, f1, f0
/* 8003F1E8 EC 02 00 32 */ fmuls f0, f2, f0
/* 8003F1EC D0 05 00 00 */ stfs f0, 0(r5)
/* 8003F1F0 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_8003F1F4:
/* 8003F1F4 3D 00 80 3F */ lis r8, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8003F1F8 39 08 60 94 */ addi r8, r8, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8003F1FC 1C 03 04 04 */ mulli r0, r3, 0x404
/* 8003F200 7C 68 02 14 */ add r3, r8, r0
/* 8003F204 80 63 00 20 */ lwz r3, 0x20(r3)
/* 8003F208 28 04 00 00 */ cmplwi r4, 0
/* 8003F20C 41 82 00 0C */ beq lbl_8003F218
/* 8003F210 C0 03 00 00 */ lfs f0, 0(r3)
/* 8003F214 D0 04 00 00 */ stfs f0, 0(r4)
lbl_8003F218:
/* 8003F218 28 06 00 00 */ cmplwi r6, 0
/* 8003F21C 41 82 00 0C */ beq lbl_8003F228
/* 8003F220 C0 03 00 08 */ lfs f0, 8(r3)
/* 8003F224 D0 06 00 00 */ stfs f0, 0(r6)
lbl_8003F228:
/* 8003F228 28 05 00 00 */ cmplwi r5, 0
/* 8003F22C 41 82 00 0C */ beq lbl_8003F238
/* 8003F230 C0 03 00 04 */ lfs f0, 4(r3)
/* 8003F234 D0 05 00 00 */ stfs f0, 0(r5)
lbl_8003F238:
/* 8003F238 28 07 00 00 */ cmplwi r7, 0
/* 8003F23C 4D 82 00 20 */ beqlr
/* 8003F240 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8003F244 D0 07 00 00 */ stfs f0, 0(r7)
/* 8003F248 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_8003FFEC:
/* 8003FFEC 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8003FFF0 4E 80 00 20 */ blr
@@ -1,39 +0,0 @@
lbl_8003F760:
/* 8003F760 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003F764 7C 08 02 A6 */ mflr r0
/* 8003F768 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003F76C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8003F770 93 C1 00 08 */ stw r30, 8(r1)
/* 8003F774 7C 7E 1B 78 */ mr r30, r3
/* 8003F778 7C 9F 23 78 */ mr r31, r4
/* 8003F77C 4B FF FF DD */ bl isExistMapPathData__8dMpath_cFv
/* 8003F780 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8003F784 41 82 00 28 */ beq lbl_8003F7AC
/* 8003F788 28 1E 00 00 */ cmplwi r30, 0
/* 8003F78C 41 82 00 0C */ beq lbl_8003F798
/* 8003F790 88 0D 80 B5 */ lbz r0, struct_80450634+0x1(r13)
/* 8003F794 98 1E 00 00 */ stb r0, 0(r30)
lbl_8003F798:
/* 8003F798 28 1F 00 00 */ cmplwi r31, 0
/* 8003F79C 41 82 00 30 */ beq lbl_8003F7CC
/* 8003F7A0 88 0D 80 B4 */ lbz r0, struct_80450634+0x0(r13)
/* 8003F7A4 98 1F 00 00 */ stb r0, 0(r31)
/* 8003F7A8 48 00 00 24 */ b lbl_8003F7CC
lbl_8003F7AC:
/* 8003F7AC 28 1E 00 00 */ cmplwi r30, 0
/* 8003F7B0 41 82 00 0C */ beq lbl_8003F7BC
/* 8003F7B4 38 00 00 00 */ li r0, 0
/* 8003F7B8 98 1E 00 00 */ stb r0, 0(r30)
lbl_8003F7BC:
/* 8003F7BC 28 1F 00 00 */ cmplwi r31, 0
/* 8003F7C0 41 82 00 0C */ beq lbl_8003F7CC
/* 8003F7C4 38 00 00 00 */ li r0, 0
/* 8003F7C8 98 1F 00 00 */ stb r0, 0(r31)
lbl_8003F7CC:
/* 8003F7CC 38 60 00 01 */ li r3, 1
/* 8003F7D0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8003F7D4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8003F7D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003F7DC 7C 08 03 A6 */ mtlr r0
/* 8003F7E0 38 21 00 10 */ addi r1, r1, 0x10
/* 8003F7E4 4E 80 00 20 */ blr
@@ -1,7 +0,0 @@
lbl_8003F6FC:
/* 8003F6FC 38 00 00 00 */ li r0, 0
/* 8003F700 98 0D 88 D8 */ stb r0, data_80450E58(r13)
/* 8003F704 98 0D 88 E0 */ stb r0, data_80450E60(r13)
/* 8003F708 38 00 FF FF */ li r0, -1
/* 8003F70C 90 0D 88 DC */ stw r0, mNowStayRoomNo__10dMapInfo_c(r13)
/* 8003F710 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_8003FCC8:
/* 8003FCC8 38 00 00 00 */ li r0, 0
/* 8003FCCC 98 03 00 31 */ stb r0, 0x31(r3)
/* 8003FCD0 90 83 00 04 */ stw r4, 4(r3)
/* 8003FCD4 B0 A3 00 1C */ sth r5, 0x1c(r3)
/* 8003FCD8 B0 C3 00 1E */ sth r6, 0x1e(r3)
/* 8003FCDC B0 E3 00 20 */ sth r7, 0x20(r3)
/* 8003FCE0 B1 03 00 22 */ sth r8, 0x22(r3)
/* 8003FCE4 C0 02 84 28 */ lfs f0, lit_3796(r2)
/* 8003FCE8 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8003FCEC D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8003FCF0 C0 02 84 38 */ lfs f0, lit_4202(r2)
/* 8003FCF4 D0 03 00 08 */ stfs f0, 8(r3)
/* 8003FCF8 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8003FCFC 90 03 00 2C */ stw r0, 0x2c(r3)
/* 8003FD00 98 03 00 30 */ stb r0, 0x30(r3)
/* 8003FD04 4E 80 00 20 */ blr
@@ -1,47 +0,0 @@
lbl_800409E0:
/* 800409E0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800409E4 7C 08 02 A6 */ mflr r0
/* 800409E8 90 01 00 34 */ stw r0, 0x34(r1)
/* 800409EC 39 61 00 30 */ addi r11, r1, 0x30
/* 800409F0 48 32 17 D9 */ bl _savegpr_24
/* 800409F4 7C 78 1B 78 */ mr r24, r3
/* 800409F8 7C 99 23 78 */ mr r25, r4
/* 800409FC 7C BA 2B 78 */ mr r26, r5
/* 80040A00 7C DB 33 78 */ mr r27, r6
/* 80040A04 7D 1C 43 78 */ mr r28, r8
/* 80040A08 7D 3D 4B 78 */ mr r29, r9
/* 80040A0C 88 84 00 01 */ lbz r4, 1(r4)
/* 80040A10 7C 84 07 74 */ extsb r4, r4
/* 80040A14 81 83 00 00 */ lwz r12, 0(r3)
/* 80040A18 81 8C 00 94 */ lwz r12, 0x94(r12)
/* 80040A1C 7D 89 03 A6 */ mtctr r12
/* 80040A20 4E 80 04 21 */ bctrl
/* 80040A24 7C 7F 1B 78 */ mr r31, r3
/* 80040A28 3B C0 00 00 */ li r30, 0
/* 80040A2C 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 80040A30 41 82 00 28 */ beq lbl_80040A58
/* 80040A34 7F 03 C3 78 */ mr r3, r24
/* 80040A38 C0 3D 00 04 */ lfs f1, 4(r29)
/* 80040A3C 88 99 00 01 */ lbz r4, 1(r25)
/* 80040A40 7C 84 07 74 */ extsb r4, r4
/* 80040A44 4B FF F2 61 */ bl calcFloorNoForObjectByMapPathRend__16renderingDAmap_cCFfi
/* 80040A48 7C 60 07 74 */ extsb r0, r3
/* 80040A4C 7C 00 D8 00 */ cmpw r0, r27
/* 80040A50 40 82 00 08 */ bne lbl_80040A58
/* 80040A54 3B C0 00 01 */ li r30, 1
lbl_80040A58:
/* 80040A58 7F 03 C3 78 */ mr r3, r24
/* 80040A5C 7F 24 CB 78 */ mr r4, r25
/* 80040A60 7F C5 F3 78 */ mr r5, r30
/* 80040A64 7F E6 FB 78 */ mr r6, r31
/* 80040A68 7F 47 D3 78 */ mr r7, r26
/* 80040A6C 81 98 00 00 */ lwz r12, 0(r24)
/* 80040A70 81 8C 00 88 */ lwz r12, 0x88(r12)
/* 80040A74 7D 89 03 A6 */ mtctr r12
/* 80040A78 4E 80 04 21 */ bctrl
/* 80040A7C 39 61 00 30 */ addi r11, r1, 0x30
/* 80040A80 48 32 17 95 */ bl _restgpr_24
/* 80040A84 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80040A88 7C 08 03 A6 */ mtlr r0
/* 80040A8C 38 21 00 30 */ addi r1, r1, 0x30
/* 80040A90 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_800402C0:
/* 800402C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800402C4 7C 08 02 A6 */ mflr r0
/* 800402C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800402CC 4B FF F4 8D */ bl isExistMapPathData__8dMpath_cFv
/* 800402D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800402D4 7C 08 03 A6 */ mtlr r0
/* 800402D8 38 21 00 10 */ addi r1, r1, 0x10
/* 800402DC 4E 80 00 20 */ blr
@@ -1,12 +0,0 @@
lbl_800409B4:
/* 800409B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800409B8 7C 08 02 A6 */ mflr r0
/* 800409BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800409C0 81 83 00 00 */ lwz r12, 0(r3)
/* 800409C4 81 8C 00 90 */ lwz r12, 0x90(r12)
/* 800409C8 7D 89 03 A6 */ mtctr r12
/* 800409CC 4E 80 04 21 */ bctrl
/* 800409D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800409D4 7C 08 03 A6 */ mtlr r0
/* 800409D8 38 21 00 10 */ addi r1, r1, 0x10
/* 800409DC 4E 80 00 20 */ blr
@@ -1,7 +0,0 @@
lbl_8003FE54:
/* 8003FE54 88 03 00 30 */ lbz r0, 0x30(r3)
/* 8003FE58 7C 00 07 74 */ extsb r0, r0
/* 8003FE5C 7C 04 00 50 */ subf r0, r4, r0
/* 8003FE60 7C 00 00 34 */ cntlzw r0, r0
/* 8003FE64 54 03 D9 7E */ srwi r3, r0, 5
/* 8003FE68 4E 80 00 20 */ blr
@@ -1,35 +0,0 @@
lbl_8003FD9C:
/* 8003FD9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FDA0 7C 08 02 A6 */ mflr r0
/* 8003FDA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FDA8 7C 66 1B 78 */ mr r6, r3
/* 8003FDAC 88 A4 00 00 */ lbz r5, 0(r4)
/* 8003FDB0 28 05 00 FF */ cmplwi r5, 0xff
/* 8003FDB4 40 82 00 0C */ bne lbl_8003FDC0
/* 8003FDB8 38 60 00 01 */ li r3, 1
/* 8003FDBC 48 00 00 4C */ b lbl_8003FE08
lbl_8003FDC0:
/* 8003FDC0 88 04 00 01 */ lbz r0, 1(r4)
/* 8003FDC4 28 00 00 00 */ cmplwi r0, 0
/* 8003FDC8 40 82 00 24 */ bne lbl_8003FDEC
/* 8003FDCC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003FDD0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003FDD4 7C A4 2B 78 */ mr r4, r5
/* 8003FDD8 80 A6 00 24 */ lwz r5, 0x24(r6)
/* 8003FDDC 4B FF 55 85 */ bl isSwitch__10dSv_info_cCFii
/* 8003FDE0 7C 60 00 34 */ cntlzw r0, r3
/* 8003FDE4 54 03 D9 7E */ srwi r3, r0, 5
/* 8003FDE8 48 00 00 20 */ b lbl_8003FE08
lbl_8003FDEC:
/* 8003FDEC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8003FDF0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8003FDF4 7C A4 2B 78 */ mr r4, r5
/* 8003FDF8 80 A6 00 24 */ lwz r5, 0x24(r6)
/* 8003FDFC 4B FF 55 65 */ bl isSwitch__10dSv_info_cCFii
/* 8003FE00 30 03 FF FF */ addic r0, r3, -1
/* 8003FE04 7C 60 19 10 */ subfe r3, r0, r3
lbl_8003FE08:
/* 8003FE08 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FE0C 7C 08 03 A6 */ mtlr r0
/* 8003FE10 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FE14 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8003F6C8:
/* 8003F6C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003F6CC 7C 08 02 A6 */ mflr r0
/* 8003F6D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003F6D4 90 6D 88 DC */ stw r3, mNowStayRoomNo__10dMapInfo_c(r13)
/* 8003F6D8 38 60 00 01 */ li r3, 1
/* 8003F6DC 4B FF FE 95 */ bl calcNowStayFloorNo__10dMapInfo_cFfb
/* 8003F6E0 98 6D 88 D8 */ stb r3, data_80450E58(r13)
/* 8003F6E4 38 00 00 01 */ li r0, 1
/* 8003F6E8 98 0D 88 E0 */ stb r0, data_80450E60(r13)
/* 8003F6EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003F6F0 7C 08 03 A6 */ mtlr r0
/* 8003F6F4 38 21 00 10 */ addi r1, r1, 0x10
/* 8003F6F8 4E 80 00 20 */ blr
@@ -1,11 +0,0 @@
lbl_8003FFC4:
/* 8003FFC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FFC8 7C 08 02 A6 */ mflr r0
/* 8003FFCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FFD0 38 60 00 01 */ li r3, 1
/* 8003FFD4 38 80 00 00 */ li r4, 0
/* 8003FFD8 48 31 BE 61 */ bl GXSetMisc
/* 8003FFDC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FFE0 7C 08 03 A6 */ mtlr r0
/* 8003FFE4 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FFE8 4E 80 00 20 */ blr
@@ -1,45 +0,0 @@
lbl_8003FF14:
/* 8003FF14 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8003FF18 7C 08 02 A6 */ mflr r0
/* 8003FF1C 90 01 00 64 */ stw r0, 0x64(r1)
/* 8003FF20 C0 43 00 10 */ lfs f2, 0x10(r3)
/* 8003FF24 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 8003FF28 C0 23 00 14 */ lfs f1, 0x14(r3)
/* 8003FF2C D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8003FF30 C0 02 84 4C */ lfs f0, lit_4264(r2)
/* 8003FF34 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8003FF38 D0 41 00 14 */ stfs f2, 0x14(r1)
/* 8003FF3C D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8003FF40 C0 02 84 50 */ lfs f0, lit_4265(r2)
/* 8003FF44 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8003FF48 C0 22 84 28 */ lfs f1, lit_3796(r2)
/* 8003FF4C D0 21 00 08 */ stfs f1, 8(r1)
/* 8003FF50 C0 02 84 54 */ lfs f0, lit_4266(r2)
/* 8003FF54 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003FF58 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8003FF5C 38 61 00 2C */ addi r3, r1, 0x2c
/* 8003FF60 38 81 00 20 */ addi r4, r1, 0x20
/* 8003FF64 38 A1 00 14 */ addi r5, r1, 0x14
/* 8003FF68 38 C1 00 08 */ addi r6, r1, 8
/* 8003FF6C 38 E0 00 00 */ li r7, 0
/* 8003FF70 4B FC C7 A1 */ bl mDoMtx_lookAt__FPA4_fPC3VecPC3VecPC3Vecs
/* 8003FF74 38 61 00 2C */ addi r3, r1, 0x2c
/* 8003FF78 38 80 00 00 */ li r4, 0
/* 8003FF7C 48 32 02 D1 */ bl GXLoadPosMtxImm
/* 8003FF80 48 31 B6 0D */ bl GXClearVtxDesc
/* 8003FF84 38 60 00 09 */ li r3, 9
/* 8003FF88 38 80 00 03 */ li r4, 3
/* 8003FF8C 48 31 AF 2D */ bl GXSetVtxDesc
/* 8003FF90 38 60 00 00 */ li r3, 0
/* 8003FF94 38 80 00 09 */ li r4, 9
/* 8003FF98 38 A0 00 00 */ li r5, 0
/* 8003FF9C 38 C0 00 04 */ li r6, 4
/* 8003FFA0 38 E0 00 00 */ li r7, 0
/* 8003FFA4 48 31 B6 21 */ bl GXSetVtxAttrFmt
/* 8003FFA8 38 60 00 01 */ li r3, 1
/* 8003FFAC 38 80 00 08 */ li r4, 8
/* 8003FFB0 48 31 BE 89 */ bl GXSetMisc
/* 8003FFB4 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8003FFB8 7C 08 03 A6 */ mtlr r0
/* 8003FFBC 38 21 00 60 */ addi r1, r1, 0x60
/* 8003FFC0 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8003FC70:
/* 8003FC70 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003FC74 7C 08 02 A6 */ mflr r0
/* 8003FC78 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003FC7C 38 00 00 01 */ li r0, 1
/* 8003FC80 98 0D 80 B6 */ stb r0, data_80450636(r13)
/* 8003FC84 3C 60 80 42 */ lis r3, m_texObjAgg__8dMpath_n@ha /* 0x80424684@ha */
/* 8003FC88 38 63 46 84 */ addi r3, r3, m_texObjAgg__8dMpath_n@l /* 0x80424684@l */
/* 8003FC8C 4B FF CC 69 */ bl remove__Q28dMpath_n18dTexObjAggregate_cFv
/* 8003FC90 4B FF FA C5 */ bl remove__10dMapInfo_cFv
/* 8003FC94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003FC98 7C 08 03 A6 */ mtlr r0
/* 8003FC9C 38 21 00 10 */ addi r1, r1, 0x10
/* 8003FCA0 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_8003F714:
/* 8003F714 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003F718 7C 08 02 A6 */ mflr r0
/* 8003F71C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003F720 4B FF FF DD */ bl init__10dMapInfo_cFv
/* 8003F724 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003F728 7C 08 03 A6 */ mtlr r0
/* 8003F72C 38 21 00 10 */ addi r1, r1, 0x10
/* 8003F730 4E 80 00 20 */ blr
@@ -30,9 +30,9 @@ lbl_8003FC00:
/* 8003FC38 D0 2D 88 F0 */ stfs f1, mMinZ__8dMpath_c(r13)
/* 8003FC3C D0 0D 88 F4 */ stfs f0, mMaxZ__8dMpath_c(r13)
/* 8003FC40 38 00 00 7F */ li r0, 0x7f
/* 8003FC44 98 0D 80 B4 */ stb r0, struct_80450634+0x0(r13)
/* 8003FC44 98 0D 80 B4 */ stb r0, mBottomFloorNo__8dMpath_c+0x0(r13)
/* 8003FC48 38 00 FF 80 */ li r0, -128
/* 8003FC4C 98 0D 80 B5 */ stb r0, struct_80450634+0x1(r13)
/* 8003FC4C 98 0D 80 B5 */ stb r0, mBottomFloorNo__8dMpath_c+0x1(r13)
/* 8003FC50 38 00 00 00 */ li r0, 0
/* 8003FC54 98 0D 80 B6 */ stb r0, data_80450636(r13)
/* 8003FC58 98 0D 89 08 */ stb r0, data_80450E88(r13)
@@ -1,82 +0,0 @@
lbl_8003FA40:
/* 8003FA40 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8003FA44 7C 08 02 A6 */ mflr r0
/* 8003FA48 90 01 00 34 */ stw r0, 0x34(r1)
/* 8003FA4C 39 61 00 30 */ addi r11, r1, 0x30
/* 8003FA50 48 32 27 89 */ bl _savegpr_28
/* 8003FA54 7C 7C 1B 78 */ mr r28, r3
/* 8003FA58 7C BD 2B 78 */ mr r29, r5
/* 8003FA5C 83 C4 00 04 */ lwz r30, 4(r4)
/* 8003FA60 28 1E 00 00 */ cmplwi r30, 0
/* 8003FA64 41 82 00 F4 */ beq lbl_8003FB58
/* 8003FA68 7F 9F 07 74 */ extsb r31, r28
/* 8003FA6C 48 00 01 65 */ bl reset__8dMpath_cFv
/* 8003FA70 38 00 00 01 */ li r0, 1
/* 8003FA74 98 0D 89 08 */ stb r0, data_80450E88(r13)
/* 8003FA78 7F C3 F3 78 */ mr r3, r30
/* 8003FA7C 38 8D 80 B4 */ la r4, struct_80450634+0x0(r13) /* 80450634-_SDA_BASE_ */
/* 8003FA80 38 AD 80 B5 */ la r5, struct_80450634+0x1(r13) /* 80450635-_SDA_BASE_ */
/* 8003FA84 4B FF FD 8D */ bl setPointer__8dMpath_cFPQ211dDrawPath_c10room_classPScPSc
/* 8003FA88 C0 02 84 28 */ lfs f0, lit_3796(r2)
/* 8003FA8C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8003FA90 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8003FA94 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8003FA98 D0 01 00 08 */ stfs f0, 8(r1)
/* 8003FA9C 7F E3 FB 78 */ mr r3, r31
/* 8003FAA0 38 81 00 14 */ addi r4, r1, 0x14
/* 8003FAA4 38 A1 00 0C */ addi r5, r1, 0xc
/* 8003FAA8 38 C1 00 10 */ addi r6, r1, 0x10
/* 8003FAAC 38 E1 00 08 */ addi r7, r1, 8
/* 8003FAB0 4B FF F7 45 */ bl getRoomMinMaxXZ__10dMapInfo_nFiPfPfPfPf
/* 8003FAB4 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8003FAB8 C0 0D 88 E8 */ lfs f0, mMinX__8dMpath_c(r13)
/* 8003FABC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003FAC0 40 80 00 08 */ bge lbl_8003FAC8
/* 8003FAC4 D0 2D 88 E8 */ stfs f1, mMinX__8dMpath_c(r13)
lbl_8003FAC8:
/* 8003FAC8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8003FACC C0 0D 88 EC */ lfs f0, mMaxX__8dMpath_c(r13)
/* 8003FAD0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003FAD4 40 81 00 08 */ ble lbl_8003FADC
/* 8003FAD8 D0 2D 88 EC */ stfs f1, mMaxX__8dMpath_c(r13)
lbl_8003FADC:
/* 8003FADC C0 21 00 0C */ lfs f1, 0xc(r1)
/* 8003FAE0 C0 0D 88 F0 */ lfs f0, mMinZ__8dMpath_c(r13)
/* 8003FAE4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003FAE8 40 80 00 08 */ bge lbl_8003FAF0
/* 8003FAEC D0 2D 88 F0 */ stfs f1, mMinZ__8dMpath_c(r13)
lbl_8003FAF0:
/* 8003FAF0 C0 21 00 08 */ lfs f1, 8(r1)
/* 8003FAF4 C0 0D 88 F4 */ lfs f0, mMaxZ__8dMpath_c(r13)
/* 8003FAF8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8003FAFC 40 81 00 08 */ ble lbl_8003FB04
/* 8003FB00 D0 2D 88 F4 */ stfs f1, mMaxZ__8dMpath_c(r13)
lbl_8003FB04:
/* 8003FB04 C0 22 84 2C */ lfs f1, lit_3887(r2)
/* 8003FB08 C0 6D 88 EC */ lfs f3, mMaxX__8dMpath_c(r13)
/* 8003FB0C C0 4D 88 E8 */ lfs f2, mMinX__8dMpath_c(r13)
/* 8003FB10 EC 03 10 2A */ fadds f0, f3, f2
/* 8003FB14 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003FB18 D0 0D 88 F8 */ stfs f0, mAllCenterX__8dMpath_c(r13)
/* 8003FB1C C0 AD 88 F4 */ lfs f5, mMaxZ__8dMpath_c(r13)
/* 8003FB20 C0 8D 88 F0 */ lfs f4, mMinZ__8dMpath_c(r13)
/* 8003FB24 EC 05 20 2A */ fadds f0, f5, f4
/* 8003FB28 EC 01 00 32 */ fmuls f0, f1, f0
/* 8003FB2C D0 0D 88 FC */ stfs f0, mAllCenterZ__8dMpath_c(r13)
/* 8003FB30 EC 03 10 28 */ fsubs f0, f3, f2
/* 8003FB34 D0 0D 89 00 */ stfs f0, mAllSizeX__8dMpath_c(r13)
/* 8003FB38 EC 05 20 28 */ fsubs f0, f5, f4
/* 8003FB3C D0 0D 89 04 */ stfs f0, mAllSizeZ__8dMpath_c(r13)
/* 8003FB40 80 8D 88 E4 */ lwz r4, mLayerList__8dMpath_c(r13)
/* 8003FB44 57 A3 40 2E */ slwi r3, r29, 8
/* 8003FB48 7F 80 07 74 */ extsb r0, r28
/* 8003FB4C 54 00 10 3A */ slwi r0, r0, 2
/* 8003FB50 7C 03 02 14 */ add r0, r3, r0
/* 8003FB54 7F C4 01 2E */ stwx r30, r4, r0
lbl_8003FB58:
/* 8003FB58 39 61 00 30 */ addi r11, r1, 0x30
/* 8003FB5C 48 32 26 C9 */ bl _restgpr_28
/* 8003FB60 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8003FB64 7C 08 03 A6 */ mtlr r0
/* 8003FB68 38 21 00 30 */ addi r1, r1, 0x30
/* 8003FB6C 4E 80 00 20 */ blr
@@ -1,38 +0,0 @@
lbl_8003D790:
/* 8003D790 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003D794 7C 08 02 A6 */ mflr r0
/* 8003D798 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003D79C 39 61 00 20 */ addi r11, r1, 0x20
/* 8003D7A0 48 32 4A 39 */ bl _savegpr_28
/* 8003D7A4 7C 7C 1B 78 */ mr r28, r3
/* 8003D7A8 7C 9D 23 78 */ mr r29, r4
/* 8003D7AC 7C BE 2B 78 */ mr r30, r5
/* 8003D7B0 83 E3 00 04 */ lwz r31, 4(r3)
/* 8003D7B4 38 60 00 0C */ li r3, 0xc
/* 8003D7B8 48 29 14 95 */ bl __nw__FUl
/* 8003D7BC 28 03 00 00 */ cmplwi r3, 0
/* 8003D7C0 41 82 00 10 */ beq lbl_8003D7D0
/* 8003D7C4 38 00 00 00 */ li r0, 0
/* 8003D7C8 90 03 00 00 */ stw r0, 0(r3)
/* 8003D7CC 90 03 00 04 */ stw r0, 4(r3)
lbl_8003D7D0:
/* 8003D7D0 80 1C 00 00 */ lwz r0, 0(r28)
/* 8003D7D4 28 00 00 00 */ cmplwi r0, 0
/* 8003D7D8 40 82 00 08 */ bne lbl_8003D7E0
/* 8003D7DC 90 7C 00 00 */ stw r3, 0(r28)
lbl_8003D7E0:
/* 8003D7E0 93 C3 00 00 */ stw r30, 0(r3)
/* 8003D7E4 38 00 00 00 */ li r0, 0
/* 8003D7E8 90 03 00 04 */ stw r0, 4(r3)
/* 8003D7EC 9B A3 00 08 */ stb r29, 8(r3)
/* 8003D7F0 28 1F 00 00 */ cmplwi r31, 0
/* 8003D7F4 41 82 00 08 */ beq lbl_8003D7FC
/* 8003D7F8 90 7F 00 04 */ stw r3, 4(r31)
lbl_8003D7FC:
/* 8003D7FC 90 7C 00 04 */ stw r3, 4(r28)
/* 8003D800 39 61 00 20 */ addi r11, r1, 0x20
/* 8003D804 48 32 4A 21 */ bl _restgpr_28
/* 8003D808 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003D80C 7C 08 03 A6 */ mtlr r0
/* 8003D810 38 21 00 20 */ addi r1, r1, 0x20
/* 8003D814 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_8003D92C:
/* 8003D92C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8003D930 7C 08 02 A6 */ mflr r0
/* 8003D934 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003D938 88 C3 00 10 */ lbz r6, 0x10(r3)
/* 8003D93C 80 03 00 00 */ lwz r0, 0(r3)
/* 8003D940 28 00 00 00 */ cmplwi r0, 0
/* 8003D944 41 82 00 08 */ beq lbl_8003D94C
/* 8003D948 4B FF FF 21 */ bl buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii
lbl_8003D94C:
/* 8003D94C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8003D950 7C 08 03 A6 */ mtlr r0
/* 8003D954 38 21 00 10 */ addi r1, r1, 0x10
/* 8003D958 4E 80 00 20 */ blr
@@ -1,101 +0,0 @@
lbl_8003D9D8:
/* 8003D9D8 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8003D9DC 7C 08 02 A6 */ mflr r0
/* 8003D9E0 90 01 00 84 */ stw r0, 0x84(r1)
/* 8003D9E4 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8003D9E8 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */
/* 8003D9EC DB C1 00 60 */ stfd f30, 0x60(r1)
/* 8003D9F0 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */
/* 8003D9F4 DB A1 00 50 */ stfd f29, 0x50(r1)
/* 8003D9F8 F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0 /* qr0 */
/* 8003D9FC DB 81 00 40 */ stfd f28, 0x40(r1)
/* 8003DA00 F3 81 00 48 */ psq_st f28, 72(r1), 0, 0 /* qr0 */
/* 8003DA04 DB 61 00 30 */ stfd f27, 0x30(r1)
/* 8003DA08 F3 61 00 38 */ psq_st f27, 56(r1), 0, 0 /* qr0 */
/* 8003DA0C DB 41 00 20 */ stfd f26, 0x20(r1)
/* 8003DA10 F3 41 00 28 */ psq_st f26, 40(r1), 0, 0 /* qr0 */
/* 8003DA14 39 61 00 20 */ addi r11, r1, 0x20
/* 8003DA18 48 32 47 C1 */ bl _savegpr_28
/* 8003DA1C 7C 7C 1B 78 */ mr r28, r3
/* 8003DA20 7C 9D 23 78 */ mr r29, r4
/* 8003DA24 FF 40 08 90 */ fmr f26, f1
/* 8003DA28 FF 60 10 90 */ fmr f27, f2
/* 8003DA2C 83 E3 00 0C */ lwz r31, 0xc(r3)
/* 8003DA30 3C 60 80 45 */ lis r3, __float_max@ha /* 0x80450AE8@ha */
/* 8003DA34 C0 03 0A E8 */ lfs f0, __float_max@l(r3) /* 0x80450AE8@l */
/* 8003DA38 FF E0 00 90 */ fmr f31, f0
/* 8003DA3C FF C0 00 90 */ fmr f30, f0
/* 8003DA40 FC 00 00 50 */ fneg f0, f0
/* 8003DA44 FF A0 00 90 */ fmr f29, f0
/* 8003DA48 FF 80 00 90 */ fmr f28, f0
/* 8003DA4C 3B C0 00 00 */ li r30, 0
/* 8003DA50 48 00 00 74 */ b lbl_8003DAC4
lbl_8003DA54:
/* 8003DA54 7F E3 FB 78 */ mr r3, r31
/* 8003DA58 7F A4 EB 78 */ mr r4, r29
/* 8003DA5C 7F C5 F3 78 */ mr r5, r30
/* 8003DA60 FC 20 D0 90 */ fmr f1, f26
/* 8003DA64 FC 40 D8 90 */ fmr f2, f27
/* 8003DA68 C0 7C 00 14 */ lfs f3, 0x14(r28)
/* 8003DA6C C0 9C 00 18 */ lfs f4, 0x18(r28)
/* 8003DA70 4B FF FE BD */ bl buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff
/* 8003DA74 80 7F 00 00 */ lwz r3, 0(r31)
/* 8003DA78 80 63 00 04 */ lwz r3, 4(r3)
/* 8003DA7C C0 03 00 00 */ lfs f0, 0(r3)
/* 8003DA80 C0 23 00 04 */ lfs f1, 4(r3)
/* 8003DA84 C0 43 00 08 */ lfs f2, 8(r3)
/* 8003DA88 C0 63 00 0C */ lfs f3, 0xc(r3)
/* 8003DA8C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 8003DA90 40 80 00 08 */ bge lbl_8003DA98
/* 8003DA94 FF E0 00 90 */ fmr f31, f0
lbl_8003DA98:
/* 8003DA98 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 8003DA9C 40 80 00 08 */ bge lbl_8003DAA4
/* 8003DAA0 FF C0 08 90 */ fmr f30, f1
lbl_8003DAA4:
/* 8003DAA4 FC 02 E8 40 */ fcmpo cr0, f2, f29
/* 8003DAA8 40 81 00 08 */ ble lbl_8003DAB0
/* 8003DAAC FF A0 10 90 */ fmr f29, f2
lbl_8003DAB0:
/* 8003DAB0 FC 03 E0 40 */ fcmpo cr0, f3, f28
/* 8003DAB4 40 81 00 08 */ ble lbl_8003DABC
/* 8003DAB8 FF 80 18 90 */ fmr f28, f3
lbl_8003DABC:
/* 8003DABC 83 FF 00 08 */ lwz r31, 8(r31)
/* 8003DAC0 3B DE 00 01 */ addi r30, r30, 1
lbl_8003DAC4:
/* 8003DAC4 28 1F 00 00 */ cmplwi r31, 0
/* 8003DAC8 40 82 FF 8C */ bne lbl_8003DA54
/* 8003DACC 2C 1E 00 00 */ cmpwi r30, 0
/* 8003DAD0 40 81 00 18 */ ble lbl_8003DAE8
/* 8003DAD4 D3 FC 00 1C */ stfs f31, 0x1c(r28)
/* 8003DAD8 D3 DC 00 20 */ stfs f30, 0x20(r28)
/* 8003DADC D3 BC 00 24 */ stfs f29, 0x24(r28)
/* 8003DAE0 D3 9C 00 28 */ stfs f28, 0x28(r28)
/* 8003DAE4 48 00 00 18 */ b lbl_8003DAFC
lbl_8003DAE8:
/* 8003DAE8 C0 02 84 20 */ lfs f0, lit_3894(r2)
/* 8003DAEC D0 1C 00 1C */ stfs f0, 0x1c(r28)
/* 8003DAF0 D0 1C 00 20 */ stfs f0, 0x20(r28)
/* 8003DAF4 D0 1C 00 24 */ stfs f0, 0x24(r28)
/* 8003DAF8 D0 1C 00 28 */ stfs f0, 0x28(r28)
lbl_8003DAFC:
/* 8003DAFC 7F C3 F3 78 */ mr r3, r30
/* 8003DB00 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */
/* 8003DB04 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8003DB08 E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */
/* 8003DB0C CB C1 00 60 */ lfd f30, 0x60(r1)
/* 8003DB10 E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0 /* qr0 */
/* 8003DB14 CB A1 00 50 */ lfd f29, 0x50(r1)
/* 8003DB18 E3 81 00 48 */ psq_l f28, 72(r1), 0, 0 /* qr0 */
/* 8003DB1C CB 81 00 40 */ lfd f28, 0x40(r1)
/* 8003DB20 E3 61 00 38 */ psq_l f27, 56(r1), 0, 0 /* qr0 */
/* 8003DB24 CB 61 00 30 */ lfd f27, 0x30(r1)
/* 8003DB28 E3 41 00 28 */ psq_l f26, 40(r1), 0, 0 /* qr0 */
/* 8003DB2C CB 41 00 20 */ lfd f26, 0x20(r1)
/* 8003DB30 39 61 00 20 */ addi r11, r1, 0x20
/* 8003DB34 48 32 46 F1 */ bl _restgpr_28
/* 8003DB38 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8003DB3C 7C 08 03 A6 */ mtlr r0
/* 8003DB40 38 21 00 80 */ addi r1, r1, 0x80
/* 8003DB44 4E 80 00 20 */ blr
@@ -1,55 +0,0 @@
lbl_8003D868:
/* 8003D868 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003D86C 7C 08 02 A6 */ mflr r0
/* 8003D870 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003D874 39 61 00 20 */ addi r11, r1, 0x20
/* 8003D878 48 32 49 5D */ bl _savegpr_27
/* 8003D87C 7C 7B 1B 78 */ mr r27, r3
/* 8003D880 7C DC 33 78 */ mr r28, r6
/* 8003D884 80 63 00 00 */ lwz r3, 0(r3)
/* 8003D888 80 63 00 00 */ lwz r3, 0(r3)
/* 8003D88C 28 03 00 00 */ cmplwi r3, 0
/* 8003D890 41 82 00 84 */ beq lbl_8003D914
/* 8003D894 83 C3 00 00 */ lwz r30, 0(r3)
/* 8003D898 83 A3 00 04 */ lwz r29, 4(r3)
/* 8003D89C 80 1B 00 04 */ lwz r0, 4(r27)
/* 8003D8A0 28 00 00 00 */ cmplwi r0, 0
/* 8003D8A4 40 82 00 34 */ bne lbl_8003D8D8
/* 8003D8A8 38 60 00 88 */ li r3, 0x88
/* 8003D8AC 48 29 13 A1 */ bl __nw__FUl
/* 8003D8B0 7C 7F 1B 79 */ or. r31, r3, r3
/* 8003D8B4 41 82 00 20 */ beq lbl_8003D8D4
/* 8003D8B8 3C 80 80 04 */ lis r4, __ct__26fmpTresTypeGroupDataList_cFv@ha /* 0x8003EC90@ha */
/* 8003D8BC 38 84 EC 90 */ addi r4, r4, __ct__26fmpTresTypeGroupDataList_cFv@l /* 0x8003EC90@l */
/* 8003D8C0 3C A0 80 04 */ lis r5, __dt__26fmpTresTypeGroupDataList_cFv@ha /* 0x8003EB10@ha */
/* 8003D8C4 38 A5 EB 10 */ addi r5, r5, __dt__26fmpTresTypeGroupDataList_cFv@l /* 0x8003EB10@l */
/* 8003D8C8 38 C0 00 08 */ li r6, 8
/* 8003D8CC 38 E0 00 11 */ li r7, 0x11
/* 8003D8D0 48 32 44 91 */ bl __construct_array
lbl_8003D8D4:
/* 8003D8D4 93 FB 00 04 */ stw r31, 4(r27)
lbl_8003D8D8:
/* 8003D8D8 3B E0 00 00 */ li r31, 0
/* 8003D8DC 48 00 00 30 */ b lbl_8003D90C
lbl_8003D8E0:
/* 8003D8E0 9B 9D 00 01 */ stb r28, 1(r29)
/* 8003D8E4 88 7D 00 11 */ lbz r3, 0x11(r29)
/* 8003D8E8 48 05 EB C9 */ bl getTypeToTypeGroupNo__7dTres_cFUc
/* 8003D8EC 7C 64 1B 78 */ mr r4, r3
/* 8003D8F0 80 7B 00 04 */ lwz r3, 4(r27)
/* 8003D8F4 54 80 1D 78 */ rlwinm r0, r4, 3, 0x15, 0x1c
/* 8003D8F8 7C 63 02 14 */ add r3, r3, r0
/* 8003D8FC 7F A5 EB 78 */ mr r5, r29
/* 8003D900 4B FF FE 91 */ bl addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s
/* 8003D904 3B BD 00 14 */ addi r29, r29, 0x14
/* 8003D908 3B FF 00 01 */ addi r31, r31, 1
lbl_8003D90C:
/* 8003D90C 7C 1F F0 00 */ cmpw r31, r30
/* 8003D910 41 80 FF D0 */ blt lbl_8003D8E0
lbl_8003D914:
/* 8003D914 39 61 00 20 */ addi r11, r1, 0x20
/* 8003D918 48 32 49 09 */ bl _restgpr_27
/* 8003D91C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8003D920 7C 08 03 A6 */ mtlr r0
/* 8003D924 38 21 00 20 */ addi r1, r1, 0x20
/* 8003D928 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_8003DB48:
/* 8003DB48 80 63 00 00 */ lwz r3, 0(r3)
/* 8003DB4C 38 A0 00 00 */ li r5, 0
/* 8003DB50 48 00 00 0C */ b lbl_8003DB5C
lbl_8003DB54:
/* 8003DB54 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8003DB58 38 A5 00 01 */ addi r5, r5, 1
lbl_8003DB5C:
/* 8003DB5C 28 03 00 00 */ cmplwi r3, 0
/* 8003DB60 4D 82 00 20 */ beqlr
/* 8003DB64 7C 05 20 00 */ cmpw r5, r4
/* 8003DB68 41 80 FF EC */ blt lbl_8003DB54
/* 8003DB6C 4E 80 00 20 */ blr
@@ -3,12 +3,12 @@ lbl_801C231C:
/* 801C2320 7C 08 02 A6 */ mflr r0
/* 801C2324 90 01 00 14 */ stw r0, 0x14(r1)
/* 801C2328 7D 09 43 78 */ mr r9, r8
/* 801C232C 88 0D 88 E0 */ lbz r0, data_80450E60(r13)
/* 801C232C 88 0D 88 E0 */ lbz r0, mNowStayFloorNoDecisionFlg__10dMapInfo_c(r13)
/* 801C2330 28 00 00 00 */ cmplwi r0, 0
/* 801C2334 41 82 00 14 */ beq lbl_801C2348
/* 801C2338 38 00 00 00 */ li r0, 0
/* 801C233C 41 82 00 08 */ beq lbl_801C2344
/* 801C2340 88 0D 88 D8 */ lbz r0, data_80450E58(r13)
/* 801C2340 88 0D 88 D8 */ lbz r0, mNowStayFloorNo__10dMapInfo_c(r13)
lbl_801C2344:
/* 801C2344 7C 08 03 78 */ mr r8, r0
lbl_801C2348:
@@ -1,11 +1,11 @@
lbl_801C22F8:
/* 801C22F8 38 60 00 00 */ li r3, 0
/* 801C22FC 88 0D 88 E0 */ lbz r0, data_80450E60(r13)
/* 801C22FC 88 0D 88 E0 */ lbz r0, mNowStayFloorNoDecisionFlg__10dMapInfo_c(r13)
/* 801C2300 28 00 00 00 */ cmplwi r0, 0
/* 801C2304 4D 82 00 20 */ beqlr
/* 801C2308 38 00 00 00 */ li r0, 0
/* 801C230C 41 82 00 08 */ beq lbl_801C2314
/* 801C2310 88 0D 88 D8 */ lbz r0, data_80450E58(r13)
/* 801C2310 88 0D 88 D8 */ lbz r0, mNowStayFloorNo__10dMapInfo_c(r13)
lbl_801C2314:
/* 801C2314 7C 03 03 78 */ mr r3, r0
/* 801C2318 4E 80 00 20 */ blr
+4
View File
@@ -2788,6 +2788,10 @@ inline void dComIfGd_set2DOpaTop(dDlst_base_c* dlst) {
g_dComIfG_gameInfo.drawlist.set2DOpaTop(dlst);
}
inline void dComIfGd_setCopy2D(dDlst_base_c* dlst) {
g_dComIfG_gameInfo.drawlist.setCopy2D(dlst);
}
inline view_class* dComIfGd_getView() {
return g_dComIfG_gameInfo.drawlist.getView();
}
+1
View File
@@ -286,6 +286,7 @@ public:
void set2DOpa(dDlst_base_c* dlst) { set(mp2DOpaSet[0], mp2DOpaSet[1], dlst); }
void set2DOpaTop(dDlst_base_c* dlst) { set(mp2DOpaTopSet[0], mp2DOpaTopSet[1], dlst); }
void set2DXlu(dDlst_base_c* dlst) { set(mp2DXluSet[0], mp2DXluSet[1], dlst); }
void setCopy2D(dDlst_base_c* dlst) { set(mpCopy2DSet[0], mpCopy2DSet[1], dlst); }
view_class* getView() { return mView; }
void setView(view_class* view) { mView = view; }
void setWindow(dDlst_window_c* window) { mWindow = window; }
+1
View File
@@ -18,5 +18,6 @@ struct dPath {
inline int dPath_ChkClose(dPath* i_path) { return (i_path->m_closed & 1); }
dPath* dPath_GetRoomPath(int path_index, int room_no);
dStage_dPnt_c* dPath_GetPnt(dPath const* path, int pnt_index);
#endif /* D_D_PATH_H */
+39 -1
View File
@@ -868,7 +868,7 @@ struct dStage_objectNameInf {
class dStage_KeepDoorInfo {
public:
/* 80028418 */ ~dStage_KeepDoorInfo() {}
/* 0x000 */ stage_tgsc_class* unk_0x0;
/* 0x000 */ int unk_0x0;
/* 0x004 */ stage_tgsc_data_class unk_0x4[0x40];
}; // Size = 0x904
@@ -953,6 +953,8 @@ struct cBgS_GndChk;
int dStage_RoomCheck(cBgS_GndChk* gndChk);
void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2);
void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2);
dStage_KeepDoorInfo* dStage_GetKeepDoorInfo();
dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo();
inline bool dStage_roomRead_dt_c_ChkBg(u8 param_0) {
return param_0 & 0x80;
@@ -1014,6 +1016,18 @@ inline BOOL dStage_staginfo_GetArchiveHeap(stage_stag_info_class* p_info) {
return p_info->field_0x0a & 0x1000;
}
inline int dStage_stagInfo_GetGapLevel(stage_stag_info_class* pstag) {
return pstag->mGapLevel;
}
inline int dStage_stagInfo_GetRangeUp(stage_stag_info_class* pstag) {
return pstag->mRangeUp;
}
inline int dStage_stagInfo_GetRangeDown(stage_stag_info_class* pstag) {
return pstag->mRangeDown;
}
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
@@ -1042,6 +1056,30 @@ inline int dStage_FileList_dt_GetBitSw(dStage_FileList_dt_c* p_fList) {
return p_fList->mBitSw;
}
inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mLeftRmX;
}
inline f32 dStage_FileList2_dt_GetRightRmX(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mRightRmX;
}
inline f32 dStage_FileList2_dt_GetInnerRmZ(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mInnerRmZ;
}
inline f32 dStage_FileList2_dt_GetFrontRmZ(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mFrontRmZ;
}
inline s8 dStage_FileList2_dt_GetMinFloorNo(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mMinFloorNo;
}
inline s8 dStage_FileList2_dt_GetMaxFloorNo(dStage_FileList2_dt_c* p_fList2) {
return p_fList2->mMaxFloorNo;
}
inline int dStage_MapEvent_dt_c_getEventSCutSW(dStage_MapEvent_dt_c* event) {
return event->field_0x8 & 1;
}
+6 -4
View File
@@ -15,12 +15,13 @@ public:
/* 0x10 */ u8 mSwBit;
/* 0x11 */ u8 mType;
/* 0x12 */ u8 mArg2;
/* 0x13 */ u8 mAngleY;
/* 0x13 */ s8 mAngleY;
};
class typeGroupData_c {
public:
data_s* getDataPointer() { return &mData; }
const data_s* getConstDataPointer() const { return &mData; }
typeGroupData_c* getNextDataPointer() const { return mNextData; }
void setNextDataPointer(typeGroupData_c* data) { mNextData = data; }
void setTypeGroupNo(u8 no) { mTypeGroupNo = no; }
@@ -32,6 +33,7 @@ public:
void setPos(const Vec& pos) { mData.mPos = pos; }
u8 getSwBit() const { return mData.mSwBit; }
const Vec* getPos() const { return &mData.mPos; }
int getAngleY() const { return mData.mAngleY; }
/* 0x00 */ data_s mData;
/* 0x14 */ typeGroupData_c* mNextData;
@@ -39,8 +41,8 @@ public:
}; // Size: 0x1C
struct list_class {
/* 0x0 */ typeGroupData_c* field_0x0;
/* 0x4 */ typeGroupData_c* field_0x4;
/* 0x0 */ int field_0x0;
/* 0x4 */ data_s* field_0x4;
/* 0x8 */ u8 mNumber;
};
@@ -58,7 +60,7 @@ public:
/* 8009C3B4 */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c const*);
/* 8009C3CC */ static void setPosition(int, u8, Vec const*, int);
/* 8009C49C */ static int getTypeGroupNoToType(u8);
/* 8009C4B0 */ static int getTypeToTypeGroupNo(u8);
/* 8009C4B0 */ static u8 getTypeToTypeGroupNo(u8);
static int getTypeGroupNumber(int index) {
return mTypeGroupListAll[index].mNumber;
+23 -2
View File
@@ -84,6 +84,19 @@ public:
class dRenderingFDAmap_c : public dRenderingMap_c {
public:
dRenderingFDAmap_c() {
field_0x4 = NULL;
field_0x8 = 0.0f;
field_0xc = 0.0f;
field_0x10 = 0.0f;
field_0x14 = 0.0f;
mCmPerTexel = 0.0f;
field_0x1c = 0;
field_0x1e = 0;
field_0x20 = 0;
field_0x22 = 0;
}
/* 8003CE78 */ void setTevSettingNonTextureDirectColor() const;
/* 8003CF40 */ void setTevSettingIntensityTextureToCI() const;
/* 8003D0AC */ void drawBack() const;
@@ -95,8 +108,14 @@ public:
/* 8003D68C */ virtual GXColor* getDecoLineColor(int, int);
/* 8003D6B8 */ virtual s32 getDecorationLineWidth(int);
private:
/* 0x04 */ void* field_0x4;
bool isDrawAreaCheck(const Vec& param_0) {
return (param_0.x >= field_0x10 - field_0x8 * 2.0f &&
param_0.x <= field_0x10 + field_0x8 * 2.0f) &&
(param_0.z >= field_0x14 - field_0xc * 2.0f &&
param_0.z <= field_0x14 + field_0xc * 2.0f);
}
/* 0x04 */ u8* field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
@@ -115,6 +134,8 @@ struct dMpath_n {
/* 8003C8F4 */ void remove();
/* 8003D740 */ ~dTexObjAggregate_c() { remove(); };
GXTexObj* getTexObjPointer(int i_no) { return mp_texObj[i_no]; }
dTexObjAggregate_c() {
for (int i = 0; i < 7; i++) {
mp_texObj[i] = NULL;
+66 -40
View File
@@ -8,16 +8,16 @@
class dMpath_c {
public:
/* 8003F758 */ static u8 isExistMapPathData();
/* 8003F760 */ void getTopBottomFloorNo(s8*, s8*);
/* 8003F758 */ static bool isExistMapPathData();
/* 8003F760 */ static int getTopBottomFloorNo(s8*, s8*);
/* 8003F7E8 */ static void createWork();
/* 8003FA40 */ void setPointer(s8, void*, int);
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FA40 */ static void setPointer(s8, void*, int);
/* 8003F810 */ static void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FB70 */ static void create();
/* 8003FBD0 */ void reset();
/* 8003FC70 */ void remove();
/* 8003FBD0 */ static void reset();
/* 8003FC70 */ static void remove();
static u8 mLayerList[4];
static dDrawPath_c::room_class** mLayerList; // this doesn't seem right, but can't figure it out atm
static f32 mMinX;
static f32 mMaxX;
static f32 mMinZ;
@@ -26,33 +26,59 @@ public:
static f32 mAllCenterZ;
static f32 mAllSizeX;
static f32 mAllSizeZ;
static s8 mBottomFloorNo;
static s8 mTopFloorNo;
};
struct dMapInfo_n {
/* 8003ECA0 */ bool chkGetCompass();
/* 8003ECD8 */ bool chkGetMap();
/* 8003ECA0 */ static bool chkGetCompass();
/* 8003ECD8 */ static bool chkGetMap();
/* 8003ED10 */ static bool isVisitedRoom(int);
/* 8003ED60 */ static void correctionOriginPos(s8, Vec*);
/* 8003EDC0 */ static void offsetPlus(dStage_FileList2_dt_c const*, Vec*);
/* 8003EDEC */ static 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*);
/* 8003EF20 */ static s16 getMapPlayerAngleY();
/* 8003EF70 */ static const dTres_c::typeGroupData_c* getConstRestartIconPointer();
/* 8003F02C */ static Vec getMapRestartPos();
/* 8003F0F8 */ static s16 getMapRestartAngleY();
/* 8003F19C */ static void getRoomCenter(int, f32*, f32*);
/* 8003F1F4 */ static void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*);
/* 8003F24C */ static void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*);
};
class dMapInfo_c {
public:
/* 8003F40C */ static s8 calcFloorNo(f32, bool, int);
/* 8003F570 */ static s8 calcNowStayFloorNo(f32, bool);
/* 8003F6C8 */ static void move(int, f32);
/* 8003F6FC */ static void init();
/* 8003F714 */ static void reset();
/* 8003F734 */ static void create();
/* 8003F754 */ static void remove();
static int mNextRoomNo;
static int mNowStayRoomNo;
static s8 mNowStayFloorNo;
static u8 mNowStayFloorNoDecisionFlg;
};
class renderingDAmap_c : public dRenderingFDAmap_c {
public:
/* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const;
renderingDAmap_c() {
mRoomNo = 0;
field_0x28 = 0;
mRoomNoSingle = 0;
mRenderedFloor = 0;
mIsDraw = false;
}
/* 8003FCA4 */ s8 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);
/* 8003FFF4 */ int getFirstDrawRoomNo();
/* 80040094 */ int getNextDrawRoomNo(int);
/* 8003FE18 */ virtual void draw();
/* 8002B150 */ virtual ~renderingDAmap_c();
@@ -65,27 +91,26 @@ public:
/* 800402C0 */ virtual bool isDrawPath();
/* 8003FE4C */ virtual GXColor* getBackColor() const;
/* 800402E0 */ virtual bool getFirstDrawLayerNo();
/* 800402E8 */ virtual void getNextDrawLayerNo(int);
/* 800409E0 */ virtual void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool,
/* 800402E8 */ virtual int getNextDrawLayerNo(int);
/* 800409E0 */ virtual bool 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;
/* 80040AE4 */ virtual int getIconGroupNumber(u8) const;
virtual bool hasMap() const = 0;
virtual bool isRendAllRoom() const = 0;
virtual bool 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;
virtual bool isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const = 0;
/* 8003FFEC */ virtual int getRoomNoSingle();
/* 8003FE70 */ virtual bool isDrawRoom(int, int) const;
/* 800409B4 */ virtual bool isDrawRoomIcon(int, int) const;
bool isDraw() const { return mDraw; }
bool isDraw() const { return mIsDraw; }
private:
/* 0x24 */ int field_0x24;
/* 0x24 */ int mRoomNo;
/* 0x28 */ int field_0x28;
/* 0x2C */ int mRoomNoSingle;
/* 0x30 */ u8 field_0x30;
/* 0x31 */ bool mDraw;
/* 0x30 */ s8 mRenderedFloor;
/* 0x31 */ bool mIsDraw;
}; // Size: 0x34
class stage_tgsc_data_class;
@@ -95,7 +120,7 @@ public:
/* 80040574 */ void drawDoor1();
/* 800405B8 */ void drawDoor2();
/* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool);
/* 80040710 */ void checkDispDoorS(int, int, f32);
/* 80040710 */ bool checkDispDoorS(int, int, f32);
/* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool);
/* 8002B0B4 */ virtual ~renderingPlusDoor_c();
@@ -115,11 +140,12 @@ public:
/* 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;
virtual f32 getIconSize(u8) const = 0;
/* 80040ADC */ virtual const Vec* getIconPosition(dTres_c::typeGroupData_c*) const;
/* 80040A94 */ virtual dTres_c::typeGroupData_c* getFirstData(u8);
/* 80040AB8 */ virtual dTres_c::typeGroupData_c* getNextData(dTres_c::typeGroupData_c*);
virtual f32 getPlayerCursorSize() = 0;
virtual f32 getRestartCursorSize() = 0;
};
#endif /* D_MAP_D_MAP_PATH_DMAP_H */
+17 -17
View File
@@ -27,20 +27,20 @@ public:
/* 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;
/* 80028FB4 */ virtual GXColor* getDecoLineColor(int, int);
/* 80028CF4 */ virtual s32 getDecorationLineWidth(int);
/* 80029058 */ virtual int getIconGroupNumber(u8) const;
/* 80029078 */ virtual bool hasMap() const;
/* 8002911C */ virtual bool isRendAllRoom() const;
/* 800290C0 */ virtual bool isRendDoor() const;
/* 80029104 */ virtual bool isCheckFloor() const;
/* 80029190 */ virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const;
/* 80029190 */ virtual bool 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();
/* 800284BC */ virtual f32 getIconSize(u8) const;
/* 80028B04 */ virtual f32 getPlayerCursorSize();
/* 80028B10 */ virtual f32 getRestartCursorSize();
virtual void setAmapPaletteColor(int, u8, u8, u8, u8) = 0;
virtual bool isSpecialOutline() = 0;
@@ -70,13 +70,13 @@ public:
/* 8002AF20 */ virtual ~dMap_c();
/* 800296EC */ virtual bool isDrawType(int);
/* 80028DF4 */ virtual GXColor* 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*);
/* 800296F8 */ virtual bool isRendAllRoom() const;
/* 8002A254 */ virtual int getRoomNoSingle();
/* 8002A1DC */ virtual bool isDrawRoom(int, int) const;
/* 8002A294 */ virtual bool isDrawRoomIcon(int, int) const;
/* 80029038 */ virtual const Vec* getIconPosition(dTres_c::typeGroupData_c*) const;
/* 8002ABAC */ virtual dTres_c::typeGroupData_c* getFirstData(u8);
/* 8002ABCC */ virtual dTres_c::typeGroupData_c* getNextData(dTres_c::typeGroupData_c*);
/* 8002A148 */ virtual void setAmapPaletteColor(int, u8, u8, u8, u8);
/* 80029744 */ virtual bool isSpecialOutline();
+12 -3
View File
@@ -45,9 +45,14 @@ volatile PPCWGPipe GXFIFO : 0xCC008000;
#define GFX_FIFO(T) (*(volatile T*)0xCC008000)
inline void GXPosition3f32(f32 x, f32 y, f32 z) {
GFX_FIFO(f32) = x;
GFX_FIFO(f32) = y;
GFX_FIFO(f32) = z;
GXFIFO.f32 = x;
GXFIFO.f32 = y;
GXFIFO.f32 = z;
}
inline void GXPosition2f32(f32 x, f32 z) {
GXFIFO.f32 = x;
GXFIFO.f32 = z;
}
inline void GXColor1u32(u32 c) {
@@ -64,6 +69,10 @@ inline void GXTexCoord2u8(u8 s, u8 t) {
GFX_FIFO(u8) = t;
}
inline void GXTexCoord1x8(u8 s) {
GFX_FIFO(u8) = s;
}
inline void GXPosition2u16(u16 x, u16 y) {
GFX_FIFO(u16) = x;
GFX_FIFO(u16) = y;
+5 -2
View File
@@ -19,6 +19,8 @@ void mDoMtx_XrotM(Mtx mtx, s16 x);
void mDoMtx_YrotM(Mtx, s16);
void mDoMtx_MtxToRot(CMtxP, csXyz*);
void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3);
void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, Vec const* param_3,
s16 param_4);
void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]);
void mDoMtx_ZrotM(Mtx mtx, s16 z);
@@ -35,7 +37,7 @@ inline void mDoMtx_copy(const Mtx src, Mtx dst) {
}
inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) {
PSMTXTrans(m,x,y,z);
PSMTXTrans(m, x, y, z);
}
inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) {
@@ -66,7 +68,8 @@ public:
static void scaleS(f32 x, f32 y, f32 z) { PSMTXScale(now, x, y, z); }
static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); }
static void multVecSR(const Vec* a, Vec* b) { PSMTXMultVecSR(now, a, b); }
static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); }
static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); }
static void multVecArray(const Vec* src, Vec* dst, u32 count) { PSMTXMultVecArray(now, src, dst, count); }
static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); }
static void XYZrotM(s16 x, s16 y, s16 z) { mDoMtx_XYZrotM(now, x, y, z); }
static void ZXYrotS(s16 x, s16 y, s16 z) { mDoMtx_ZXYrotS(now, x, y, z); }
@@ -1,6 +1,19 @@
#ifndef D_A_TAG_GUARD_H
#define D_A_TAG_GUARD_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_path.h"
class daTagGuard_c : public fopAc_ac_c {
public:
/* 80D597F8 */ int getAppearPoint(Vec*);
/* 80D5985C */ void createGuard(u32);
u8 getPathID() { return fopAcM_GetParam(this) >> 8; }
inline int create();
inline void create_init();
/* 0x568 */ dPath* mPath;
}; // Size: 0x56C
#endif /* D_A_TAG_GUARD_H */
+73 -98
View File
@@ -1,122 +1,97 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_guard
//
/**
* d_a_tag_guard.cpp
*
*/
#include "rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/d_procname.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct Vec {};
struct daTagGuard_c {
/* 80D597F8 */ void getAppearPoint(Vec*);
/* 80D5985C */ void createGuard(u32);
};
struct dPath {};
struct csXyz {};
struct cXyz {};
//
// Forward References:
//
extern "C" void getAppearPoint__12daTagGuard_cFP3Vec();
extern "C" void createGuard__12daTagGuard_cFUl();
extern "C" static void daTagGuard_Create__FP10fopAc_ac_c();
extern "C" static void daTagGuard_Delete__FP12daTagGuard_c();
extern "C" extern void* g_profile_TAG_GUARD[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i();
extern "C" void dPath_GetPnt__FPC5dPathi();
extern "C" void dPath_GetRoomPath__Fii();
extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
//
// Declarations:
//
extern "C" extern leafdraw_method_class g_fopAc_Method;
/* 80D597F8-80D5985C 000078 0064+00 0/0 0/0 1/1 .text getAppearPoint__12daTagGuard_cFP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagGuard_c::getAppearPoint(Vec* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard/getAppearPoint__12daTagGuard_cFP3Vec.s"
int daTagGuard_c::getAppearPoint(Vec* i_appearPnt) {
if (mPath == NULL) {
return 0;
}
*i_appearPnt = dPath_GetPnt(mPath, mPath->m_num - 1)->m_position;
return 1;
}
#pragma pop
/* 80D5985C-80D59928 0000DC 00CC+00 0/0 0/0 1/1 .text createGuard__12daTagGuard_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagGuard_c::createGuard(u32 param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard/createGuard__12daTagGuard_cFUl.s"
void daTagGuard_c::createGuard(u32 i_parameters) {
cXyz pos = current.pos;
if (getPathID() != 0xFF) {
pos = dPath_GetPnt(mPath, 0)->m_position;
i_parameters |= (getPathID() << 0x10);
}
fopAcM_createChild(PROC_NPC_GUARD, fopAcM_GetID(this), i_parameters, &pos,
fopAcM_GetRoomNo(this), &current.angle, NULL, -1, NULL);
}
int daTagGuard_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagGuard_c();
fopAcM_OnCondition(this, 8);
}
create_init();
return cPhs_COMPLEATE_e;
}
void daTagGuard_c::create_init() {
mPath = dPath_GetRoomPath(getPathID(), fopAcM_GetHomeRoomNo(this));
dStage_dPnt_c* pnt1 = dPath_GetPnt(mPath, 0);
dStage_dPnt_c* pnt2 = dPath_GetPnt(mPath, 1);
current.pos.x = pnt1->m_position.x;
current.pos.y = pnt1->m_position.y;
current.pos.z = pnt1->m_position.z;
current.angle.y = cLib_targetAngleY(&pnt1->m_position, &pnt2->m_position);
}
#pragma pop
/* 80D59928-80D599E0 0001A8 00B8+00 1/0 0/0 0/0 .text daTagGuard_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagGuard_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard/daTagGuard_Create__FP10fopAc_ac_c.s"
static int daTagGuard_Create(fopAc_ac_c* i_this) {
return static_cast<daTagGuard_c*>(i_this)->create();
}
#pragma pop
/* 80D599E0-80D59A10 000260 0030+00 1/0 0/0 0/0 .text daTagGuard_Delete__FP12daTagGuard_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagGuard_Delete(daTagGuard_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_guard/d_a_tag_guard/daTagGuard_Delete__FP12daTagGuard_c.s"
static int daTagGuard_Delete(daTagGuard_c* i_this) {
i_this->~daTagGuard_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80D59A18-80D59A38 -00001 0020+00 1/0 0/0 0/0 .data l_daTagGuard_Method */
SECTION_DATA static void* l_daTagGuard_Method[8] = {
(void*)daTagGuard_Create__FP10fopAc_ac_c,
(void*)daTagGuard_Delete__FP12daTagGuard_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagGuard_Method = {
(process_method_func)daTagGuard_Create,
(process_method_func)daTagGuard_Delete,
};
/* 80D59A38-80D59A68 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_GUARD */
SECTION_DATA extern void* g_profile_TAG_GUARD[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02960000, (void*)&g_fpcLf_Method,
(void*)0x0000056C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01980000, (void*)&l_daTagGuard_Method,
(void*)0x00040000, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_TAG_GUARD = {
-3,
7,
-3,
PROC_TAG_GUARD,
0,
&g_fpcLf_Method.mBase,
sizeof(daTagGuard_c),
0,
0,
&g_fopAc_Method,
0x0198,
0,
0,
&l_daTagGuard_Method,
0x00040000,
0x00,
0x0E,
0,
0,
};
+2 -2
View File
@@ -448,7 +448,7 @@ static u8 dStage_isBossStage(dStage_dt_c* stageDt) {
/* 80023F50-80023F84 01E890 0034+00 1/1 0/0 0/1 .text dStage_KeepDoorInfoInit__FP11dStage_dt_c */
static void dStage_KeepDoorInfoInit(dStage_dt_c* param_0) {
if (dStage_isBossStage(param_0) == 0) {
DoorInfo.unk_0x0 = NULL;
DoorInfo.unk_0x0 = 0;
}
}
@@ -471,7 +471,7 @@ dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo() {
}
static void dStage_initRoomKeepDoorInfo() {
l_RoomKeepDoorInfo.unk_0x0 = NULL;
l_RoomKeepDoorInfo.unk_0x0 = 0;
}
/* 80024078-80024174 01E9B8 00FC+00 1/1 0/0 0/0 .text
+4 -11
View File
@@ -8,14 +8,6 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct dMapInfo_c {
/* 8003F40C */ static s8 calcFloorNo(f32, bool, int);
};
//
// Forward References:
//
@@ -272,7 +264,8 @@ dTres_c::typeGroupData_c* dTres_c::getFirstData(u8 listIdx) {
return NULL;
}
return mTypeGroupListAll[listIdx].field_0x0;
// this is wrong, fix later
return (dTres_c::typeGroupData_c*)mTypeGroupListAll[listIdx].field_0x0;
}
/* 8009C39C-8009C3B4 096CDC 0018+00 2/2 3/3 0/0 .text
@@ -335,8 +328,8 @@ int dTres_c::getTypeGroupNoToType(u8 i_typeGroupNo) {
/* 8009C4B0-8009C4FC 096DF0 004C+00 1/1 3/3 0/0 .text getTypeToTypeGroupNo__7dTres_cFUc
*/
int dTres_c::getTypeToTypeGroupNo(u8 i_type) {
u8 groupNo = 17;
u8 dTres_c::getTypeToTypeGroupNo(u8 i_type) {
int groupNo = 17;
for (int i = 0; i < 17; i++) {
if (i_type == typeToTypeGroup[i][0]) {
groupNo = typeToTypeGroup[i][1];
+2 -2
View File
@@ -366,8 +366,8 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u32 mNextRoomNo__10dMapInfo_c;
extern "C" extern u8 data_80450E58[4];
extern "C" extern u8 data_80450E60[4];
extern "C" extern u8 mNowStayFloorNo__10dMapInfo_c[4];
extern "C" extern u8 mNowStayFloorNoDecisionFlg__10dMapInfo_c[4];
extern "C" f32 mMinX__8dMpath_c;
extern "C" f32 mMaxX__8dMpath_c;
extern "C" f32 mMinZ__8dMpath_c;
+13 -23
View File
@@ -4,8 +4,6 @@
//
#include "d/map/d_map_path.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
#include "m_Do/m_Do_lib.h"
@@ -42,25 +40,12 @@ extern "C" u8 m_texObjAgg__8dMpath_n[28];
// External References:
//
extern "C" void mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj();
extern "C" void draw__12dDlst_base_cFv();
extern "C" bool isDrawType__11dDrawPath_cFi();
extern "C" void __dt__18dRenderingFDAmap_cFv();
extern "C" void __dt__11dDrawPath_cFv();
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 GXClearVtxDesc();
extern "C" void GXPixModeSync();
extern "C" void __register_global_object();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" extern Mtx g_mDoMtx_identity;
//
// Declarations:
@@ -93,7 +78,7 @@ void dMpath_n::dTexObjAggregate_c::remove() {
void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
if (isDrawType(p_line->unk0)) {
int width = getLineWidth(p_line->unk1);
if (width > 0 && p_line->unk2 >= 2) {
GXSetLineWidth(width, GX_TO_ZERO);
GXSetTevColor(GX_TEVREG0, *getLineColor(p_line->unk0 & 0x3F, p_line->unk1));
@@ -114,7 +99,7 @@ void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
void dDrawPath_c::rendering(dDrawPath_c::poly_class const* p_poly) {
if (isDrawType(p_poly->field_0x0)) {
GXSetTevColor(GX_TEVREG0, *getColor(p_poly->field_0x0 & 0x3F));
if (p_poly->field_0x1 >= 3) {
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, p_poly->field_0x1);
@@ -169,7 +154,7 @@ void dDrawPath_c::rendering(dDrawPath_c::room_class const* p_room) {
if (floor != NULL) {
for (int i = 0; i < p_room->field_0x0; i++) {
if (isRenderingFloor(floor->field_0x0)) {
rendering(floor);
rendering(floor);
}
floor++;
}
@@ -189,7 +174,7 @@ void dDrawPath_c::drawPath() {
/* 8003CD38-8003CDAC 037678 0074+00 0/0 3/3 0/0 .text
* makeResTIMG__15dRenderingMap_cCFP7ResTIMGUsUsPUcPUcUs */
void dRenderingMap_c::makeResTIMG(ResTIMG* p_image, u16 width, u16 height, u8* p_data,
u8* p_palette, u16 param_5) const {
u8* p_palette, u16 param_5) const {
p_image->format = GX_TF_CI14;
p_image->alphaEnabled = 2;
p_image->width = width;
@@ -253,7 +238,8 @@ void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_CPREV, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
@@ -324,7 +310,7 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
* make the map look worse for extra speed in the emulator, especially in large
* areas such as hyrule field.
*/
//#define HYRULE_FIELD_SPEEDHACK
// #define HYRULE_FIELD_SPEEDHACK
/* 8003D3C0-8003D68C 037D00 02CC+00 0/0 2/2 0/0 .text
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
@@ -333,6 +319,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
if (width <= 0) {
return;
}
setTevSettingIntensityTextureToCI();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
@@ -341,6 +328,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
GXSetNumTevStages(1);
GXLoadTexObj(dMpath_n::m_texObjAgg.mp_texObj[6], GX_TEXMAP0);
u16* unk = p_line->unk4;
s32 unk2 = p_line->unk2;
GXSetLineWidth(width, GX_TO_ONE);
@@ -349,6 +337,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
GXSetTevColor(GX_TEVREG0, lineColor);
lineColor.r = lineColor.r - 4;
GXSetTevColor(GX_TEVREG1, lineColor);
for (int i = 0; i < unk2; unk++, i++) {
#ifndef HYRULE_FIELD_SPEEDHACK
if (i < unk2 - 1) {
@@ -374,6 +363,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
GXTexCoord2f32(0, 0);
i_GXEnd();
}
setTevSettingNonTextureDirectColor();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
@@ -393,7 +383,7 @@ s32 dRenderingFDAmap_c::getDecorationLineWidth(int param_0) {
/* ############################################################################################## */
/* 803A7C90-803A7CF8 004DB0 0068+00 0/0 12/12 0/0 .data __vt__18dRenderingFDAmap_c */
SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
extern void* __vt__18dRenderingFDAmap_c[26] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__12dDlst_base_cFv,
@@ -423,7 +413,7 @@ SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
};
/* 803A7CF8-803A7D38 004E18 0040+00 0/0 15/15 0/0 .data __vt__11dDrawPath_c */
SECTION_DATA extern void* __vt__11dDrawPath_c[16] = {
extern void* __vt__11dDrawPath_c[16] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__12dDlst_base_cFv,
File diff suppressed because it is too large Load Diff
+224 -81
View File
@@ -4,78 +4,143 @@
//
#include "d/map/d_map_path_fmap.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fmpTresTypeGroupData_c {
class fmpTresTypeGroupData_c {
public:
fmpTresTypeGroupData_c() {
mpTresData = NULL;
mpNext = NULL;
}
/* 8003EB70 */ ~fmpTresTypeGroupData_c();
};
struct dTres_c {
struct data_s {};
void setTypeGroupNo(u8 i_no) { mTypeGroupNo = i_no; }
void setNextData(fmpTresTypeGroupData_c* i_next) { mpNext = i_next; }
void setTresData(const dTres_c::data_s* i_data) { mpTresData = i_data; }
const dTres_c::data_s* getTresData() { return mpTresData; }
fmpTresTypeGroupData_c* getNextData() { return mpNext; }
struct typeGroupData_c {};
/* 0x0 */ const dTres_c::data_s* mpTresData;
/* 0x0 */ fmpTresTypeGroupData_c* mpNext;
/* 0x8 */ u8 mTypeGroupNo;
}; // Size: 0xC
/* 8009C360 */ void getFirstData(u8);
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
/* 8009C49C */ void getTypeGroupNoToType(u8);
/* 8009C4B0 */ void getTypeToTypeGroupNo(u8);
};
struct fmpTresTypeGroupDataList_c {
class fmpTresTypeGroupDataList_c {
public:
/* 8003D790 */ void addTypeGroupData(u8, dTres_c::data_s const*);
/* 8003EB10 */ ~fmpTresTypeGroupDataList_c();
/* 8003EC90 */ fmpTresTypeGroupDataList_c();
/* 0x0 */ fmpTresTypeGroupData_c* mpTypeGroupDataHead;
/* 0x4 */ fmpTresTypeGroupData_c* mpNextData;
};
struct dSv_save_c {
/* 800350A8 */ void getSave2(int);
class fmpTresTypeGroupDataListAll_c {
public:
void addTypeGroupData(u8 i_typeGroupNo, const dTres_c::data_s* i_data) {
mpTypeGroupData[i_typeGroupNo].addTypeGroupData(i_typeGroupNo, i_data);
}
/* 0x0 */ fmpTresTypeGroupDataList_c mpTypeGroupData[17];
};
struct dSv_memory2_c {
/* 80034AEC */ void isVisitedRoom(int);
class dMenu_Fmap_data_c {
public:
dTres_c::list_class* getTresure() { return mp_tresure; }
f32 getFilelist2MinX() { return m_fileList2->mLeftRmX; }
f32 getFilelist2MinZ() { return m_fileList2->mInnerRmZ; }
f32 getFilelist2MaxX() { return m_fileList2->mRightRmX; }
f32 getFilelist2MaxZ() { return m_fileList2->mFrontRmZ; }
/* 0x0 */ dTres_c::list_class* mp_tresure;
/* 0x4 */ dStage_FileList2_dt_c* m_fileList2;
/* 0x8 */ dDrawPath_c::room_class* mp_mapPath;
/* 0xC */ void* mp_dzsData;
};
struct dSv_memBit_c {
/* 800347E8 */ void isTbox(int) const;
class dMenu_Fmap_stage_data_c;
class dMenu_Fmap_room_data_c {
public:
/* 8003D818 */ bool isArrival();
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
f32 getFileList2MinX() { return mp_fmapData->getFilelist2MinX(); }
f32 getFileList2MinZ() { return mp_fmapData->getFilelist2MinZ(); }
f32 getFileList2MaxX() { return mp_fmapData->getFilelist2MaxX(); }
f32 getFileList2MaxZ() { return mp_fmapData->getFilelist2MaxZ(); }
dMenu_Fmap_room_data_c* getNextData() { return mp_nextData; }
int getRoomNo() { return m_roomNo; }
/* 0x00 */ dMenu_Fmap_data_c* mp_fmapData;
/* 0x04 */ fmpTresTypeGroupDataListAll_c* mp_fmpTresTypeGroupDataListAll;
/* 0x08 */ dMenu_Fmap_room_data_c* mp_nextData;
/* 0x0C */ dMenu_Fmap_stage_data_c* mp_parentStage;
/* 0x10 */ u8 m_roomNo;
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
class dMenu_Fmap_stage_arc_data_c {
public:
u8 getVisitedRoomSaveTableNo() { return mVisitedRoomSaveTableNo; }
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 mSaveTableNo;
/* 0x2 */ u8 mVisitedRoomSaveTableNo;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
class dMenu_Fmap_stage_data_c {
public:
/* 8003D95C */ bool isArrival();
/* 8003D9D8 */ int buildFmapStageData(int, f32, f32);
dMenu_Fmap_stage_arc_data_c* getStageArc() { return mpStageArc; }
dMenu_Fmap_stage_data_c* getNextData() { return mpNextData; }
/* 0x00 */ char name[8];
/* 0x08 */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
/* 0x0C */ dMenu_Fmap_room_data_c* mp_roomTop;
/* 0x10 */ dMenu_Fmap_stage_data_c* mpNextData;
/* 0x14 */ f32 m_offsetX;
/* 0x18 */ f32 m_offsetZ;
/* 0x1C */ f32 m_stageMinX;
/* 0x20 */ f32 m_stageMinZ;
/* 0x24 */ f32 m_stageMaxX;
/* 0x28 */ f32 m_stageMaxZ;
/* 0x2C */ int m_stageCntNo;
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dMenu_Fmap_region_data_c {
/* 8003DB48 */ void getMenuFmapStageData(int);
class dMenu_Fmap_region_data_c {
public:
/* 8003DB48 */ dMenu_Fmap_stage_data_c* getMenuFmapStageData(int);
/* 8003DB70 */ void getPointStagePathInnerNo(f32, f32, int, int*, int*);
/* 8003DEE0 */ void buildFmapRegionData(int);
/* 0x00 */ dMenu_Fmap_stage_data_c* mpMenuFmapStageDataTop;
/* 0x04 */ dMenu_Fmap_region_data_c* mpNextData;
/* 0x08 */ f32 mRegionOffsetX;
/* 0x0C */ f32 mRegionOffsetZ;
/* 0x10 */ f32 mRegionMinX;
/* 0x14 */ f32 mRegionMaxX;
/* 0x18 */ f32 mRegionMinZ;
/* 0x1C */ f32 mRegionMaxZ;
/* 0x20 */ int mRegionNo;
};
struct dMenu_Fmap_world_data_c {
/* 8003E028 */ void create(dMenu_Fmap_region_data_c*);
/* 8003E04C */ void buildFmapWorldData();
};
struct dMenu_Fmap_stage_data_c {
/* 8003D95C */ void isArrival();
/* 8003D9D8 */ void buildFmapStageData(int, f32, f32);
};
struct dMenu_Fmap_room_data_c {
/* 8003D818 */ void isArrival();
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
/* 0x00 */ dMenu_Fmap_region_data_c* mp_fmapRegionData;
/* 0x04 */ f32 m_worldMinX;
/* 0x08 */ f32 m_worldMinZ;
/* 0x0C */ f32 m_worldMaxX;
/* 0x10 */ f32 m_worldMaxZ;
};
struct dMenuFmapIconPointer_c {
@@ -145,7 +210,6 @@ extern "C" void getTypeGroupNoToType__7dTres_cFUc();
extern "C" void getTypeToTypeGroupNo__7dTres_cFUc();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void PSVECCrossProduct();
extern "C" void __construct_array();
extern "C" void __save_gpr();
extern "C" void _savegpr_22();
@@ -159,10 +223,7 @@ 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" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u32 __float_max;
//
// Declarations:
@@ -170,57 +231,98 @@ extern "C" extern u32 __float_max;
/* 8003D790-8003D818 0380D0 0088+00 1/1 0/0 0/0 .text
* addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 param_0, dTres_c::data_s const* param_1) {
nofralloc
#include "asm/d/map/d_map_path_fmap/addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s.s"
void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 i_typeGroupNo,
dTres_c::data_s const* i_tresData) {
fmpTresTypeGroupData_c* next = mpNextData;
fmpTresTypeGroupData_c* fmpTresTypeGroupData_p = new fmpTresTypeGroupData_c();
if (mpTypeGroupDataHead == NULL) {
mpTypeGroupDataHead = fmpTresTypeGroupData_p;
}
fmpTresTypeGroupData_p->setTresData(i_tresData);
fmpTresTypeGroupData_p->setNextData(NULL);
fmpTresTypeGroupData_p->setTypeGroupNo(i_typeGroupNo);
if (next != NULL) {
next->setNextData(fmpTresTypeGroupData_p);
}
mpNextData = fmpTresTypeGroupData_p;
}
#pragma pop
/* 8003D818-8003D868 038158 0050+00 1/1 1/1 0/0 .text isArrival__22dMenu_Fmap_room_data_cFv */
#ifdef NONMATCHING
bool dMenu_Fmap_room_data_c::isArrival() {
u8 table_no = mp_parentStage->getStageArc()->getVisitedRoomSaveTableNo();
return dComIfGs_isSaveVisitedRoom(table_no, m_roomNo) != false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_room_data_c::isArrival() {
asm bool dMenu_Fmap_room_data_c::isArrival() {
nofralloc
#include "asm/d/map/d_map_path_fmap/isArrival__22dMenu_Fmap_room_data_cFv.s"
}
#pragma pop
#endif
/* 8003D868-8003D92C 0381A8 00C4+00 1/1 0/0 0/0 .text
* buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
nofralloc
#include "asm/d/map/d_map_path_fmap/buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii.s"
void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
dTres_c::list_class* tresure_p = mp_fmapData->getTresure();
if (tresure_p != NULL) {
int num = tresure_p->field_0x0;
dTres_c::data_s* data_p = tresure_p->field_0x4;
if (mp_fmpTresTypeGroupDataListAll == NULL) {
mp_fmpTresTypeGroupDataListAll = new fmpTresTypeGroupDataListAll_c();
}
for (int i = 0; i < num; i++) {
data_p->mRoomNo = param_2;
u8 typeGroupNo = dTres_c::getTypeToTypeGroupNo(data_p->mType);
mp_fmpTresTypeGroupDataListAll->addTypeGroupData(typeGroupNo, data_p);
data_p++;
}
}
}
#pragma pop
/* 8003D92C-8003D95C 03826C 0030+00 1/1 0/0 0/0 .text
* buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2,
f32 param_3, f32 param_4, f32 param_5) {
nofralloc
#include "asm/d/map/d_map_path_fmap/buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff.s"
void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5) {
int roomNo = m_roomNo;
if (mp_fmapData != NULL) {
buildTresTypeGroup(param_0, param_1, roomNo);
}
}
#pragma pop
/* 8003D95C-8003D9D8 03829C 007C+00 1/1 0/0 0/0 .text isArrival__23dMenu_Fmap_stage_data_cFv */
#ifdef NONMATCHING
bool dMenu_Fmap_stage_data_c::isArrival() {
bool is_arrival = false;
dMenu_Fmap_room_data_c* room = mp_roomTop;
u8 table_no = mpStageArc->getVisitedRoomSaveTableNo();
for (; !is_arrival && room != NULL; room = room->getNextData()) {
is_arrival = dComIfGs_isSaveVisitedRoom(table_no, room->getRoomNo()) != false;
}
return is_arrival;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_stage_data_c::isArrival() {
asm bool dMenu_Fmap_stage_data_c::isArrival() {
nofralloc
#include "asm/d/map/d_map_path_fmap/isArrival__23dMenu_Fmap_stage_data_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80451E20-80451E28 000420 0004+04 5/5 0/0 0/0 .sdata2 @3894 */
@@ -232,25 +334,66 @@ SECTION_SDATA2 static f32 lit_3894[1 + 1 /* padding */] = {
/* 8003D9D8-8003DB48 038318 0170+00 1/1 0/0 0/0 .text
* buildFmapStageData__23dMenu_Fmap_stage_data_cFiff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
nofralloc
#include "asm/d/map/d_map_path_fmap/buildFmapStageData__23dMenu_Fmap_stage_data_cFiff.s"
int dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
dMenu_Fmap_room_data_c* room = mp_roomTop;
f32 fvar3 = __float_max[0];
f32 fvar4 = __float_max[0];
f32 fvar5 = -__float_max[0];
f32 fvar6 = -__float_max[0];
int ivar = 0;
for (; room != NULL; room = room->getNextData()) {
room->buildFmapRoomData(param_0, ivar, param_1, param_2, m_offsetX, m_offsetZ);
f32 min_x = room->getFileList2MinX();
f32 min_z = room->getFileList2MinZ();
f32 max_x = room->getFileList2MaxX();
f32 max_z = room->getFileList2MaxZ();
if (min_x < fvar3) {
fvar3 = min_x;
}
if (min_z < fvar4) {
fvar4 = min_z;
}
if (max_x > fvar5) {
fvar5 = max_x;
}
if (max_z > fvar6) {
fvar6 = max_z;
}
ivar++;
}
if (ivar > 0) {
m_stageMinX = fvar3;
m_stageMinZ = fvar4;
m_stageMaxX = fvar5;
m_stageMaxZ = fvar6;
} else {
f32 tmp_0 = lit_3894[0];
m_stageMinX = tmp_0;
m_stageMinZ = tmp_0;
m_stageMaxX = tmp_0;
m_stageMaxZ = tmp_0;
}
return ivar;
}
#pragma pop
/* 8003DB48-8003DB70 038488 0028+00 0/0 1/1 0/0 .text
* getMenuFmapStageData__24dMenu_Fmap_region_data_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
nofralloc
#include "asm/d/map/d_map_path_fmap/getMenuFmapStageData__24dMenu_Fmap_region_data_cFi.s"
dMenu_Fmap_stage_data_c* dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
dMenu_Fmap_stage_data_c* stage = mpMenuFmapStageDataTop;
for (int i = 0; stage != NULL && i < param_0; i++) {
stage = stage->getNextData();
}
return stage;
}
#pragma pop
/* 8003DB70-8003DEE0 0384B0 0370+00 0/0 1/1 0/0 .text
* getPointStagePathInnerNo__24dMenu_Fmap_region_data_cFffiPiPi */
+2 -2
View File
@@ -366,8 +366,8 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */];
extern "C" extern u32 __float_max;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 data_80450E58[4];
extern "C" extern u8 data_80450E60[4];
extern "C" extern u8 mNowStayFloorNo__10dMapInfo_c[4];
extern "C" extern u8 mNowStayFloorNoDecisionFlg__10dMapInfo_c[4];
extern "C" u8 mLayerList__8dMpath_c[4];
extern "C" f32 mAllCenterX__8dMpath_c;
extern "C" f32 mAllCenterZ__8dMpath_c;
+134 -11
View File
@@ -343,7 +343,7 @@ void dMw_offMenuRing() {
}
}
static bool dMw_isMenuRing() {
static BOOL dMw_isMenuRing() {
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
if (menu_window) {
@@ -739,6 +739,45 @@ SECTION_DATA static u8 init_proc[420] = {
0x00, 0x00, 0x00, 0x00,
};
/* typedef void (dMw_c::*initFunc)(u8);
SECTION_DATA initFunc init_proc[] = {
&dMw_c::key_wait_init,
&dMw_c::ring_open_init,
&dMw_c::ring_move_init,
&dMw_c::ring_close_init,
&dMw_c::collect_open_init,
&dMw_c::collect_move_init,
&dMw_c::collect_close_init,
&dMw_c::fmap_open_init,
&dMw_c::fmap_move_init,
&dMw_c::fmap_close_init,
&dMw_c::dmap_open_init,
&dMw_c::dmap_move_init,
&dMw_c::dmap_close_init,
&dMw_c::collect_save_open_init,
&dMw_c::collect_save_move_init,
&dMw_c::collect_save_close_init,
&dMw_c::collect_option_open_init,
&dMw_c::collect_option_move_init,
&dMw_c::collect_option_close_init,
&dMw_c::collect_letter_open_init,
&dMw_c::collect_letter_move_init,
&dMw_c::collect_letter_close_init,
&dMw_c::collect_fishing_open_init,
&dMw_c::collect_fishing_move_init,
&dMw_c::collect_fishing_close_init,
&dMw_c::collect_skill_open_init,
&dMw_c::collect_skill_move_init,
&dMw_c::collect_skill_close_init,
&dMw_c::collect_insect_open_init,
&dMw_c::collect_insect_move_init,
&dMw_c::collect_insect_close_init,
&dMw_c::insect_open_init,
&dMw_c::insect_open2_init,
&dMw_c::insect_move_init,
&dMw_c::insect_close_init,
}; */
/* 803BEC4C-803BEC58 -00001 000C+00 0/1 0/0 0/0 .data @4311 */
#pragma push
#pragma force_active on
@@ -1120,6 +1159,45 @@ SECTION_DATA static u8 move_proc[420] = {
0x00, 0x00, 0x00, 0x00,
};
/* typedef void (dMw_c::*procFunc)();
SECTION_DATA procFunc move_proc[] = {
&dMw_c::key_wait_proc,
&dMw_c::ring_open_proc,
&dMw_c::ring_move_proc,
&dMw_c::ring_close_proc,
&dMw_c::collect_open_proc,
&dMw_c::collect_move_proc,
&dMw_c::collect_close_proc,
&dMw_c::fmap_open_proc,
&dMw_c::fmap_move_proc,
&dMw_c::fmap_close_proc,
&dMw_c::dmap_open_proc,
&dMw_c::dmap_move_proc,
&dMw_c::dmap_close_proc,
&dMw_c::collect_save_open_proc,
&dMw_c::collect_save_move_proc,
&dMw_c::collect_save_close_proc,
&dMw_c::collect_option_open_proc,
&dMw_c::collect_option_move_proc,
&dMw_c::collect_option_close_proc,
&dMw_c::collect_letter_open_proc,
&dMw_c::collect_letter_move_proc,
&dMw_c::collect_letter_close_proc,
&dMw_c::collect_fishing_open_proc,
&dMw_c::collect_fishing_move_proc,
&dMw_c::collect_fishing_close_proc,
&dMw_c::collect_skill_open_proc,
&dMw_c::collect_skill_move_proc,
&dMw_c::collect_skill_close_proc,
&dMw_c::collect_insect_open_proc,
&dMw_c::collect_insect_move_proc,
&dMw_c::collect_insect_close_proc,
&dMw_c::insect_open_proc,
&dMw_c::insect_open2_proc,
&dMw_c::insect_move_proc,
&dMw_c::insect_close_proc,
}; */
/* 801FA13C-801FA220 1F4A7C 00E4+00 2/0 0/0 0/0 .text key_wait_init__5dMw_cFUc */
void dMw_c::key_wait_init(u8 menu_status) {
dMeter2Info_setWindowStatus(0);
@@ -1238,12 +1316,13 @@ void dMw_c::collect_move_init(u8 menu_status) {
/* 801FA46C-801FA538 1F4DAC 00CC+00 1/0 0/0 0/0 .text collect_close_init__5dMw_cFUc */
void dMw_c::collect_close_init(u8 param_0) {
if (mpMenuCollect->getSubWindowOpenCheck() != 1 &&
mpMenuCollect->getSubWindowOpenCheck() != 2) {
if (mpMenuCollect->getSubWindowOpenCheck() != 1 && mpMenuCollect->getSubWindowOpenCheck() != 2)
{
if (mpMenuCollect->getSubWindowOpenCheck() == 3 ||
mpMenuCollect->getSubWindowOpenCheck() == 4 ||
mpMenuCollect->getSubWindowOpenCheck() == 5 ||
mpMenuCollect->getSubWindowOpenCheck() == 6) {
mpMenuCollect->getSubWindowOpenCheck() == 6)
{
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
-1.0f, 0);
} else {
@@ -1495,8 +1574,8 @@ void dMw_c::collect_move_proc() {
if (mpMenuCollect->getSubWindowOpenCheck()) {
mMenuStatus = COLLECT_CLOSE;
} else {
if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) ||
mpMenuCollect->isOutCheck()) {
if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) || mpMenuCollect->isOutCheck())
{
mMenuStatus = COLLECT_CLOSE;
} else {
mpMenuCollect->_move();
@@ -2033,7 +2112,8 @@ void dMw_c::dMw_fmap_create() {
if (dMeter2Info_getMapKeyDirection() == 0x400 || dMeter2Info_getMapStatus() == 3 ||
dMeter2Info_getMapStatus() == 4 || dMeter2Info_getMapStatus() == 5 ||
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6) {
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6)
{
tmp = 1;
} else if (dMeter2Info_getMapKeyDirection() == 0x200) {
tmp = 3;
@@ -2330,7 +2410,8 @@ BOOL dMw_c::dMw_isPush_S_Button() {
if (isFadeNowCheck()) {
if (daPy_getLinkPlayerActorClass()->getClothesChangeWaitTimer() == 0 &&
daPy_getLinkPlayerActorClass()->getShieldChangeWaitTimer() == 0 &&
daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0) {
daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0)
{
if (dMw_START_TRIGGER() || dMw_B_TRIGGER()) {
return true;
}
@@ -2414,7 +2495,8 @@ bool dMw_c::isEventCheck() {
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6 ||
dMeter2Info_getMapStatus() == 3 || dMeter2Info_isMenuInForce(2) ||
dMeter2Info_getPauseStatus() == 8)) {
dMeter2Info_getPauseStatus() == 8))
{
return false;
}
return true;
@@ -2493,6 +2575,47 @@ int dMw_c::_create() {
}
/* 801FD2D8-801FD450 1F7C18 0178+00 1/1 0/0 0/0 .text _execute__5dMw_cFv */
// matches with sinit
#ifdef NONMATCHING
int dMw_c::_execute() {
if (field_0x151 != 0) {
field_0x151--;
}
JKRHeap* old_heap = mDoExt_setCurrentHeap(mpHeap);
u8 old_proc = mMenuStatus;
mpStick->checkTrigger();
if (dMw_isMenuRing()) {
mpCStick->checkTrigger();
checkCStickTrigger();
}
if (i_dComIfGp_event_runCheck()) {
field_0x148 = 5;
} else if (field_0x148 > 0) {
field_0x148--;
} else {
field_0x148 = 0;
}
(this->*move_proc[mMenuStatus])();
if (mMenuStatus != old_proc) {
(this->*init_proc[mMenuStatus])(old_proc);
}
if (!mDoCPd_c::getHoldLockL(PAD_1) && dMw_isButtonBit(1)) {
dMw_offButtonBit(1);
}
if (!mDoCPd_c::getHoldLockR(PAD_1) && dMw_isButtonBit(2)) {
dMw_offButtonBit(2);
}
mDoExt_setCurrentHeap(old_heap);
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2501,6 +2624,7 @@ asm int dMw_c::_execute() {
#include "asm/d/menu/d_menu_window/_execute__5dMw_cFv.s"
}
#pragma pop
#endif
/* 801FD450-801FD67C 1F7D90 022C+00 1/1 0/0 0/0 .text _draw__5dMw_cFv */
int dMw_c::_draw() {
@@ -2646,8 +2770,7 @@ static int dMw_Create(msg_class* p_menu) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_menu_window_cpp() {
nofralloc
asm void __sinit_d_menu_window_cpp(){nofralloc
#include "asm/d/menu/d_menu_window/__sinit_d_menu_window_cpp.s"
}
#pragma pop