mirror of https://github.com/zeldaret/tp
dSv_player_config_c::init ok
This commit is contained in:
parent
2fceccbd08
commit
363fd35933
192
asm/d/d_save.s
192
asm/d/d_save.s
|
|
@ -2,190 +2,6 @@
|
|||
|
||||
.section .text, "ax" # 80032918
|
||||
|
||||
.global dSv_letter_info_c_NS_init
|
||||
dSv_letter_info_c_NS_init:
|
||||
/* 800343DC 0003131C 38 80 00 00 */ li r4, 0
|
||||
/* 800343E0 00031320 7C 86 23 78 */ mr r6, r4
|
||||
/* 800343E4 00031324 7C 85 23 78 */ mr r5, r4
|
||||
/* 800343E8 00031328 38 00 00 02 */ li r0, 2
|
||||
/* 800343EC 0003132C 7C 09 03 A6 */ mtctr r0
|
||||
lbl_800343F0:
|
||||
/* 800343F0 00031330 7C E3 22 14 */ add r7, r3, r4
|
||||
/* 800343F4 00031334 90 C7 00 00 */ stw r6, 0(r7)
|
||||
/* 800343F8 00031338 90 A7 00 08 */ stw r5, 8(r7)
|
||||
/* 800343FC 0003133C 38 84 00 04 */ addi r4, r4, 4
|
||||
/* 80034400 00031340 42 00 FF F0 */ bdnz lbl_800343F0
|
||||
/* 80034404 00031344 38 A0 00 00 */ li r5, 0
|
||||
/* 80034408 00031348 38 80 00 00 */ li r4, 0
|
||||
/* 8003440C 0003134C 38 00 00 40 */ li r0, 0x40
|
||||
/* 80034410 00031350 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80034414:
|
||||
/* 80034414 00031354 38 05 00 10 */ addi r0, r5, 0x10
|
||||
/* 80034418 00031358 7C 83 01 AE */ stbx r4, r3, r0
|
||||
/* 8003441C 0003135C 38 A5 00 01 */ addi r5, r5, 1
|
||||
/* 80034420 00031360 42 00 FF F4 */ bdnz lbl_80034414
|
||||
/* 80034424 00031364 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_letter_info_c_NS_onLetterGetFlag
|
||||
dSv_letter_info_c_NS_onLetterGetFlag:
|
||||
/* 80034428 00031368 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 8003442C 0003136C 54 07 10 3A */ slwi r7, r0, 2
|
||||
/* 80034430 00031370 7C C3 38 2E */ lwzx r6, r3, r7
|
||||
/* 80034434 00031374 38 A0 00 01 */ li r5, 1
|
||||
/* 80034438 00031378 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 8003443C 0003137C 7C A0 00 30 */ slw r0, r5, r0
|
||||
/* 80034440 00031380 7C C0 03 78 */ or r0, r6, r0
|
||||
/* 80034444 00031384 7C 03 39 2E */ stwx r0, r3, r7
|
||||
/* 80034448 00031388 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_letter_info_c_NS_isLetterGetFlag
|
||||
dSv_letter_info_c_NS_isLetterGetFlag:
|
||||
/* 8003444C 0003138C 38 A0 00 01 */ li r5, 1
|
||||
/* 80034450 00031390 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 80034454 00031394 7C A5 00 30 */ slw r5, r5, r0
|
||||
/* 80034458 00031398 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 8003445C 0003139C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80034460 000313A0 7C 03 00 2E */ lwzx r0, r3, r0
|
||||
/* 80034464 000313A4 7C A3 00 38 */ and r3, r5, r0
|
||||
/* 80034468 000313A8 30 03 FF FF */ addic r0, r3, -1
|
||||
/* 8003446C 000313AC 7C 60 19 10 */ subfe r3, r0, r3
|
||||
/* 80034470 000313B0 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_letter_info_c_NS_onLetterReadFlag
|
||||
dSv_letter_info_c_NS_onLetterReadFlag:
|
||||
/* 80034474 000313B4 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 80034478 000313B8 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8003447C 000313BC 7C C3 02 14 */ add r6, r3, r0
|
||||
/* 80034480 000313C0 80 A6 00 08 */ lwz r5, 8(r6)
|
||||
/* 80034484 000313C4 38 60 00 01 */ li r3, 1
|
||||
/* 80034488 000313C8 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 8003448C 000313CC 7C 60 00 30 */ slw r0, r3, r0
|
||||
/* 80034490 000313D0 7C A0 03 78 */ or r0, r5, r0
|
||||
/* 80034494 000313D4 90 06 00 08 */ stw r0, 8(r6)
|
||||
/* 80034498 000313D8 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_letter_info_c_NS_isLetterReadFlag
|
||||
dSv_letter_info_c_NS_isLetterReadFlag:
|
||||
/* 8003449C 000313DC 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 800344A0 000313E0 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 800344A4 000313E4 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 800344A8 000313E8 80 A3 00 08 */ lwz r5, 8(r3)
|
||||
/* 800344AC 000313EC 38 60 00 01 */ li r3, 1
|
||||
/* 800344B0 000313F0 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 800344B4 000313F4 7C 60 00 30 */ slw r0, r3, r0
|
||||
/* 800344B8 000313F8 7C A3 00 38 */ and r3, r5, r0
|
||||
/* 800344BC 000313FC 30 03 FF FF */ addic r0, r3, -1
|
||||
/* 800344C0 00031400 7C 60 19 10 */ subfe r3, r0, r3
|
||||
/* 800344C4 00031404 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_fishing_info_c_NS_init
|
||||
dSv_fishing_info_c_NS_init:
|
||||
/* 800344C8 00031408 38 E0 00 00 */ li r7, 0
|
||||
/* 800344CC 0003140C 38 80 00 00 */ li r4, 0
|
||||
/* 800344D0 00031410 7C 86 23 78 */ mr r6, r4
|
||||
/* 800344D4 00031414 7C 85 23 78 */ mr r5, r4
|
||||
/* 800344D8 00031418 38 00 00 10 */ li r0, 0x10
|
||||
/* 800344DC 0003141C 7C 09 03 A6 */ mtctr r0
|
||||
lbl_800344E0:
|
||||
/* 800344E0 00031420 7C C3 23 2E */ sthx r6, r3, r4
|
||||
/* 800344E4 00031424 38 07 00 20 */ addi r0, r7, 0x20
|
||||
/* 800344E8 00031428 7C A3 01 AE */ stbx r5, r3, r0
|
||||
/* 800344EC 0003142C 38 E7 00 01 */ addi r7, r7, 1
|
||||
/* 800344F0 00031430 38 84 00 02 */ addi r4, r4, 2
|
||||
/* 800344F4 00031434 42 00 FF EC */ bdnz lbl_800344E0
|
||||
/* 800344F8 00031438 4E 80 00 20 */ blr
|
||||
/* 800344FC 0003143C 54 85 0D FC */ rlwinm r5, r4, 1, 0x17, 0x1e
|
||||
/* 80034500 00031440 7C 83 2A 2E */ lhzx r4, r3, r5
|
||||
/* 80034504 00031444 28 04 03 E7 */ cmplwi r4, 0x3e7
|
||||
/* 80034508 00031448 4C 80 00 20 */ bgelr
|
||||
/* 8003450C 0003144C 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 80034510 00031450 7C 03 2B 2E */ sthx r0, r3, r5
|
||||
/* 80034514 00031454 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_player_info_c_NS_init
|
||||
dSv_player_info_c_NS_init:
|
||||
/* 80034518 00031458 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8003451C 0003145C 7C 08 02 A6 */ mflr r0
|
||||
/* 80034520 00031460 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80034524 00031464 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80034528 00031468 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8003452C 0003146C 3C 60 80 43 */ lis r3, lbl_80430188@ha
|
||||
/* 80034530 00031470 38 63 01 88 */ addi r3, r3, lbl_80430188@l
|
||||
/* 80034534 00031474 38 80 03 82 */ li r4, 0x382
|
||||
/* 80034538 00031478 38 BF 00 14 */ addi r5, r31, 0x14
|
||||
/* 8003453C 0003147C 38 C0 00 00 */ li r6, 0
|
||||
/* 80034540 00031480 48 1E 7D 11 */ bl dMeter2Info_c_NS_getString
|
||||
/* 80034544 00031484 3C 60 80 43 */ lis r3, lbl_80430188@ha
|
||||
/* 80034548 00031488 38 63 01 88 */ addi r3, r3, lbl_80430188@l
|
||||
/* 8003454C 0003148C 38 80 03 83 */ li r4, 0x383
|
||||
/* 80034550 00031490 38 BF 00 25 */ addi r5, r31, 0x25
|
||||
/* 80034554 00031494 38 C0 00 00 */ li r6, 0
|
||||
/* 80034558 00031498 48 1E 7C F9 */ bl dMeter2Info_c_NS_getString
|
||||
/* 8003455C 0003149C 38 60 00 00 */ li r3, 0
|
||||
/* 80034560 000314A0 90 7F 00 04 */ stw r3, 4(r31)
|
||||
/* 80034564 000314A4 90 7F 00 00 */ stw r3, 0(r31)
|
||||
/* 80034568 000314A8 90 7F 00 0C */ stw r3, 0xc(r31)
|
||||
/* 8003456C 000314AC 90 7F 00 08 */ stw r3, 8(r31)
|
||||
/* 80034570 000314B0 B0 7F 00 10 */ sth r3, 0x10(r31)
|
||||
/* 80034574 000314B4 B0 7F 00 12 */ sth r3, 0x12(r31)
|
||||
/* 80034578 000314B8 98 7F 00 36 */ stb r3, 0x36(r31)
|
||||
/* 8003457C 000314BC 38 80 00 00 */ li r4, 0
|
||||
/* 80034580 000314C0 38 00 00 05 */ li r0, 5
|
||||
/* 80034584 000314C4 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80034588:
|
||||
/* 80034588 000314C8 38 04 00 37 */ addi r0, r4, 0x37
|
||||
/* 8003458C 000314CC 7C 7F 01 AE */ stbx r3, r31, r0
|
||||
/* 80034590 000314D0 38 84 00 01 */ addi r4, r4, 1
|
||||
/* 80034594 000314D4 42 00 FF F4 */ bdnz lbl_80034588
|
||||
/* 80034598 000314D8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8003459C 000314DC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 800345A0 000314E0 7C 08 03 A6 */ mtlr r0
|
||||
/* 800345A4 000314E4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 800345A8 000314E8 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_player_config_c_NS_init
|
||||
dSv_player_config_c_NS_init:
|
||||
/* 800345AC 000314EC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 800345B0 000314F0 7C 08 02 A6 */ mflr r0
|
||||
/* 800345B4 000314F4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 800345B8 000314F8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 800345BC 000314FC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 800345C0 00031500 38 00 00 01 */ li r0, 1
|
||||
/* 800345C4 00031504 98 03 00 00 */ stb r0, 0(r3)
|
||||
/* 800345C8 00031508 48 30 BF C9 */ bl OSGetSoundMode
|
||||
/* 800345CC 0003150C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 800345D0 00031510 40 82 00 1C */ bne lbl_800345EC
|
||||
/* 800345D4 00031514 38 00 00 00 */ li r0, 0
|
||||
/* 800345D8 00031518 98 1F 00 01 */ stb r0, 1(r31)
|
||||
/* 800345DC 0003151C 80 6D 8D E8 */ lwz r3, lbl_80451368-_SDA_BASE_(r13)
|
||||
/* 800345E0 00031520 38 80 00 00 */ li r4, 0
|
||||
/* 800345E4 00031524 48 29 92 A5 */ bl Z2AudioMgr_NS_setOutputMode
|
||||
/* 800345E8 00031528 48 00 00 18 */ b lbl_80034600
|
||||
lbl_800345EC:
|
||||
/* 800345EC 0003152C 38 00 00 01 */ li r0, 1
|
||||
/* 800345F0 00031530 98 1F 00 01 */ stb r0, 1(r31)
|
||||
/* 800345F4 00031534 80 6D 8D E8 */ lwz r3, lbl_80451368-_SDA_BASE_(r13)
|
||||
/* 800345F8 00031538 38 80 00 01 */ li r4, 1
|
||||
/* 800345FC 0003153C 48 29 92 8D */ bl Z2AudioMgr_NS_setOutputMode
|
||||
lbl_80034600:
|
||||
/* 80034600 00031540 38 80 00 00 */ li r4, 0
|
||||
/* 80034604 00031544 98 9F 00 02 */ stb r4, 2(r31)
|
||||
/* 80034608 00031548 38 60 00 01 */ li r3, 1
|
||||
/* 8003460C 0003154C 98 7F 00 03 */ stb r3, 3(r31)
|
||||
/* 80034610 00031550 98 9F 00 04 */ stb r4, 4(r31)
|
||||
/* 80034614 00031554 98 9F 00 05 */ stb r4, 5(r31)
|
||||
/* 80034618 00031558 98 9F 00 09 */ stb r4, 9(r31)
|
||||
/* 8003461C 0003155C 38 00 01 5E */ li r0, 0x15e
|
||||
/* 80034620 00031560 B0 1F 00 06 */ sth r0, 6(r31)
|
||||
/* 80034624 00031564 98 9F 00 08 */ stb r4, 8(r31)
|
||||
/* 80034628 00031568 98 9F 00 0A */ stb r4, 0xa(r31)
|
||||
/* 8003462C 0003156C 98 7F 00 0B */ stb r3, 0xb(r31)
|
||||
/* 80034630 00031570 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80034634 00031574 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80034638 00031578 7C 08 03 A6 */ mtlr r0
|
||||
/* 8003463C 0003157C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80034640 00031580 4E 80 00 20 */ blr
|
||||
|
||||
.global dSv_player_config_c_NS_checkVibration
|
||||
dSv_player_config_c_NS_checkVibration:
|
||||
/* 80034644 00031584 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
|
|
@ -260,13 +76,13 @@ dSv_player_c_NS_init:
|
|||
/* 80034714 00031654 38 7F 01 14 */ addi r3, r31, 0x114
|
||||
/* 80034718 00031658 4B FF FB C5 */ bl init__16dSv_light_drop_cFv
|
||||
/* 8003471C 0003165C 38 7F 01 1C */ addi r3, r31, 0x11c
|
||||
/* 80034720 00031660 4B FF FC BD */ bl dSv_letter_info_c_NS_init
|
||||
/* 80034720 00031660 4B FF FC BD */ bl init__17dSv_letter_info_cFv
|
||||
/* 80034724 00031664 38 7F 01 6C */ addi r3, r31, 0x16c
|
||||
/* 80034728 00031668 4B FF FD A1 */ bl dSv_fishing_info_c_NS_init
|
||||
/* 80034728 00031668 4B FF FD A1 */ bl init__18dSv_fishing_info_cFv
|
||||
/* 8003472C 0003166C 38 7F 01 A0 */ addi r3, r31, 0x1a0
|
||||
/* 80034730 00031670 4B FF FD E9 */ bl dSv_player_info_c_NS_init
|
||||
/* 80034730 00031670 4B FF FD E9 */ bl init__17dSv_player_info_cFv
|
||||
/* 80034734 00031674 38 7F 01 E0 */ addi r3, r31, 0x1e0
|
||||
/* 80034738 00031678 4B FF FE 75 */ bl dSv_player_config_c_NS_init
|
||||
/* 80034738 00031678 4B FF FE 75 */ bl init__19dSv_player_config_cFv
|
||||
/* 8003473C 0003167C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80034740 00031680 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80034744 00031684 7C 08 03 A6 */ mtlr r0
|
||||
|
|
|
|||
|
|
@ -1599,12 +1599,12 @@ lbl_801DE4D0:
|
|||
/* 801DE4D8 001DB418 3B 43 01 1C */ addi r26, r3, 0x11c
|
||||
/* 801DE4DC 001DB41C 7F 43 D3 78 */ mr r3, r26
|
||||
/* 801DE4E0 001DB420 7F C4 F3 78 */ mr r4, r30
|
||||
/* 801DE4E4 001DB424 4B E5 5F B9 */ bl dSv_letter_info_c_NS_isLetterReadFlag
|
||||
/* 801DE4E4 001DB424 4B E5 5F B9 */ bl isLetterReadFlag__17dSv_letter_info_cCFi
|
||||
/* 801DE4E8 001DB428 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 801DE4EC 001DB42C 40 82 00 28 */ bne lbl_801DE514
|
||||
/* 801DE4F0 001DB430 7F 43 D3 78 */ mr r3, r26
|
||||
/* 801DE4F4 001DB434 7F C4 F3 78 */ mr r4, r30
|
||||
/* 801DE4F8 001DB438 4B E5 5F 7D */ bl dSv_letter_info_c_NS_onLetterReadFlag
|
||||
/* 801DE4F8 001DB438 4B E5 5F 7D */ bl onLetterReadFlag__17dSv_letter_info_cFi
|
||||
/* 801DE4FC 001DB43C 38 80 00 00 */ li r4, 0
|
||||
/* 801DE500 001DB440 88 1C 03 6E */ lbz r0, 0x36e(r28)
|
||||
/* 801DE504 001DB444 1C 00 00 14 */ mulli r0, r0, 0x14
|
||||
|
|
@ -4464,7 +4464,7 @@ lbl_801E0FAC:
|
|||
/* 801E0FC0 001DDF00 7C 9E 00 AE */ lbzx r4, r30, r0
|
||||
/* 801E0FC4 001DDF04 38 04 FF FF */ addi r0, r4, -1
|
||||
/* 801E0FC8 001DDF08 54 04 06 3E */ clrlwi r4, r0, 0x18
|
||||
/* 801E0FCC 001DDF0C 4B E5 34 D1 */ bl dSv_letter_info_c_NS_isLetterReadFlag
|
||||
/* 801E0FCC 001DDF0C 4B E5 34 D1 */ bl isLetterReadFlag__17dSv_letter_info_cCFi
|
||||
/* 801E0FD0 001DDF10 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 801E0FD4 001DDF14 40 82 00 18 */ bne lbl_801E0FEC
|
||||
/* 801E0FD8 001DDF18 38 80 00 01 */ li r4, 1
|
||||
|
|
@ -4582,7 +4582,7 @@ lbl_801E1160:
|
|||
/* 801E1174 001DE0B4 7C 9E 00 AE */ lbzx r4, r30, r0
|
||||
/* 801E1178 001DE0B8 38 04 FF FF */ addi r0, r4, -1
|
||||
/* 801E117C 001DE0BC 54 04 06 3E */ clrlwi r4, r0, 0x18
|
||||
/* 801E1180 001DE0C0 4B E5 33 1D */ bl dSv_letter_info_c_NS_isLetterReadFlag
|
||||
/* 801E1180 001DE0C0 4B E5 33 1D */ bl isLetterReadFlag__17dSv_letter_info_cCFi
|
||||
/* 801E1184 001DE0C4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 801E1188 001DE0C8 40 82 00 18 */ bne lbl_801E11A0
|
||||
/* 801E118C 001DE0CC 38 80 00 01 */ li r4, 1
|
||||
|
|
@ -4966,7 +4966,7 @@ lbl_801E16C4:
|
|||
lbl_801E16EC:
|
||||
/* 801E16EC 001DE62C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 801E16F0 001DE630 7F 44 D3 78 */ mr r4, r26
|
||||
/* 801E16F4 001DE634 4B E5 2D 35 */ bl dSv_letter_info_c_NS_onLetterGetFlag
|
||||
/* 801E16F4 001DE634 4B E5 2D 35 */ bl onLetterGetFlag__17dSv_letter_info_cFi
|
||||
/* 801E16F8 001DE638 38 9A 00 01 */ addi r4, r26, 1
|
||||
/* 801E16FC 001DE63C 57 63 06 3E */ clrlwi r3, r27, 0x18
|
||||
/* 801E1700 001DE640 38 03 00 10 */ addi r0, r3, 0x10
|
||||
|
|
|
|||
|
|
@ -2957,7 +2957,7 @@ dMeter2Info_getRecieveLetterNum:
|
|||
lbl_8021E70C:
|
||||
/* 8021E70C 0021B64C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8021E710 0021B650 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8021E714 0021B654 4B E1 5D 39 */ bl dSv_letter_info_c_NS_isLetterGetFlag
|
||||
/* 8021E714 0021B654 4B E1 5D 39 */ bl isLetterGetFlag__17dSv_letter_info_cCFi
|
||||
/* 8021E718 0021B658 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8021E71C 0021B65C 41 82 00 10 */ beq lbl_8021E72C
|
||||
/* 8021E720 0021B660 57 C3 06 3E */ clrlwi r3, r30, 0x18
|
||||
|
|
@ -2992,7 +2992,7 @@ dMeter2Info_getNewLetterNum:
|
|||
lbl_8021E784:
|
||||
/* 8021E784 0021B6C4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8021E788 0021B6C8 7F 64 DB 78 */ mr r4, r27
|
||||
/* 8021E78C 0021B6CC 4B E1 5C C1 */ bl dSv_letter_info_c_NS_isLetterGetFlag
|
||||
/* 8021E78C 0021B6CC 4B E1 5C C1 */ bl isLetterGetFlag__17dSv_letter_info_cCFi
|
||||
/* 8021E790 0021B6D0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8021E794 0021B6D4 40 82 00 44 */ bne lbl_8021E7D8
|
||||
/* 8021E798 0021B6D8 3C 60 80 3C */ lis r3, lbl_803BF81C@ha
|
||||
|
|
@ -3041,7 +3041,7 @@ dMeter2Info_setNewLetterSender:
|
|||
lbl_8021E834:
|
||||
/* 8021E834 0021B774 7F 83 E3 78 */ mr r3, r28
|
||||
/* 8021E838 0021B778 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8021E83C 0021B77C 4B E1 5C 11 */ bl dSv_letter_info_c_NS_isLetterGetFlag
|
||||
/* 8021E83C 0021B77C 4B E1 5C 11 */ bl isLetterGetFlag__17dSv_letter_info_cCFi
|
||||
/* 8021E840 0021B780 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8021E844 0021B784 40 82 00 6C */ bne lbl_8021E8B0
|
||||
/* 8021E848 0021B788 3C 60 80 3C */ lis r3, lbl_803BF81C@ha
|
||||
|
|
@ -3105,7 +3105,7 @@ dMeter2Info_recieveLetter:
|
|||
lbl_8021E914:
|
||||
/* 8021E914 0021B854 7F 83 E3 78 */ mr r3, r28
|
||||
/* 8021E918 0021B858 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8021E91C 0021B85C 4B E1 5B 31 */ bl dSv_letter_info_c_NS_isLetterGetFlag
|
||||
/* 8021E91C 0021B85C 4B E1 5B 31 */ bl isLetterGetFlag__17dSv_letter_info_cCFi
|
||||
/* 8021E920 0021B860 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8021E924 0021B864 40 82 00 80 */ bne lbl_8021E9A4
|
||||
/* 8021E928 0021B868 3C 60 80 3C */ lis r3, lbl_803BF81C@ha
|
||||
|
|
@ -3125,7 +3125,7 @@ lbl_8021E914:
|
|||
/* 8021E960 0021B8A0 41 82 00 44 */ beq lbl_8021E9A4
|
||||
/* 8021E964 0021B8A4 7F 83 E3 78 */ mr r3, r28
|
||||
/* 8021E968 0021B8A8 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8021E96C 0021B8AC 4B E1 5A BD */ bl dSv_letter_info_c_NS_onLetterGetFlag
|
||||
/* 8021E96C 0021B8AC 4B E1 5A BD */ bl onLetterGetFlag__17dSv_letter_info_cFi
|
||||
/* 8021E970 0021B8B0 57 E3 06 3E */ clrlwi r3, r31, 0x18
|
||||
/* 8021E974 0021B8B4 38 63 00 10 */ addi r3, r3, 0x10
|
||||
/* 8021E978 0021B8B8 7C 1C 18 AE */ lbzx r0, r28, r3
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ class dSv_letter_info_c {
|
|||
bool isLetterReadFlag(int) const;
|
||||
|
||||
private:
|
||||
u8 letter_read_flags[16];
|
||||
u32 letter_read_flags[4];
|
||||
u8 unk16[64];
|
||||
};
|
||||
|
||||
|
|
@ -349,7 +349,7 @@ class dSv_fishing_info_c {
|
|||
void addFishCount(u8); // merged with init in the assembly
|
||||
|
||||
private:
|
||||
u8 unk0[32];
|
||||
u16 fish_count[16];
|
||||
u8 unk32[16];
|
||||
u8 padding[4];
|
||||
};
|
||||
|
|
@ -359,12 +359,12 @@ class dSv_player_info_c {
|
|||
void init(void);
|
||||
|
||||
private:
|
||||
u8 unk0[4];
|
||||
u8 unk4[4];
|
||||
u8 unk8[4];
|
||||
u8 unk12[4];
|
||||
u8 unk16[2];
|
||||
u8 unk18[2];
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u32 unk12;
|
||||
u16 unk16;
|
||||
u16 unk18;
|
||||
u8 link_name[16];
|
||||
u8 unk36;
|
||||
u8 epona_name[16];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
/* 80034428 00031368 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 8003442C 0003136C 54 07 10 3A */ slwi r7, r0, 2
|
||||
/* 80034430 00031370 7C C3 38 2E */ lwzx r6, r3, r7
|
||||
/* 80034434 00031374 38 A0 00 01 */ li r5, 1
|
||||
/* 80034438 00031378 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 8003443C 0003137C 7C A0 00 30 */ slw r0, r5, r0
|
||||
/* 80034440 00031380 7C C0 03 78 */ or r0, r6, r0
|
||||
/* 80034444 00031384 7C 03 39 2E */ stwx r0, r3, r7
|
||||
/* 80034448 00031388 4E 80 00 20 */ blr
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
/* 8003444C 0003138C 38 A0 00 01 */ li r5, 1
|
||||
/* 80034450 00031390 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 80034454 00031394 7C A5 00 30 */ slw r5, r5, r0
|
||||
/* 80034458 00031398 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 8003445C 0003139C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80034460 000313A0 7C 03 00 2E */ lwzx r0, r3, r0
|
||||
/* 80034464 000313A4 7C A3 00 38 */ and r3, r5, r0
|
||||
/* 80034468 000313A8 30 03 FF FF */ addic r0, r3, -1
|
||||
/* 8003446C 000313AC 7C 60 19 10 */ subfe r3, r0, r3
|
||||
/* 80034470 000313B0 4E 80 00 20 */ blr
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
/* 80034474 000313B4 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 80034478 000313B8 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8003447C 000313BC 7C C3 02 14 */ add r6, r3, r0
|
||||
/* 80034480 000313C0 80 A6 00 08 */ lwz r5, 8(r6)
|
||||
/* 80034484 000313C4 38 60 00 01 */ li r3, 1
|
||||
/* 80034488 000313C8 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 8003448C 000313CC 7C 60 00 30 */ slw r0, r3, r0
|
||||
/* 80034490 000313D0 7C A0 03 78 */ or r0, r5, r0
|
||||
/* 80034494 000313D4 90 06 00 08 */ stw r0, 8(r6)
|
||||
/* 80034498 000313D8 4E 80 00 20 */ blr
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
/* 8003449C 000313DC 7C 80 2E 70 */ srawi r0, r4, 5
|
||||
/* 800344A0 000313E0 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 800344A4 000313E4 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 800344A8 000313E8 80 A3 00 08 */ lwz r5, 8(r3)
|
||||
/* 800344AC 000313EC 38 60 00 01 */ li r3, 1
|
||||
/* 800344B0 000313F0 54 80 06 FE */ clrlwi r0, r4, 0x1b
|
||||
/* 800344B4 000313F4 7C 60 00 30 */ slw r0, r3, r0
|
||||
/* 800344B8 000313F8 7C A3 00 38 */ and r3, r5, r0
|
||||
/* 800344BC 000313FC 30 03 FF FF */ addic r0, r3, -1
|
||||
/* 800344C0 00031400 7C 60 19 10 */ subfe r3, r0, r3
|
||||
/* 800344C4 00031404 4E 80 00 20 */ blr
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
/* 800344FC 0003143C 54 85 0D FC */ rlwinm r5, r4, 1, 0x17, 0x1e
|
||||
/* 80034500 00031440 7C 83 2A 2E */ lhzx r4, r3, r5
|
||||
/* 80034504 00031444 28 04 03 E7 */ cmplwi r4, 0x3e7
|
||||
/* 80034508 00031448 4C 80 00 20 */ bgelr
|
||||
/* 8003450C 0003144C 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 80034510 00031450 7C 03 2B 2E */ sthx r0, r3, r5
|
||||
/* 80034514 00031454 4E 80 00 20 */ blr
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/* 80034518 00031458 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8003451C 0003145C 7C 08 02 A6 */ mflr r0
|
||||
/* 80034520 00031460 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80034524 00031464 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80034528 00031468 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8003452C 0003146C 3C 60 80 43 */ lis r3, lbl_80430188@ha
|
||||
/* 80034530 00031470 38 63 01 88 */ addi r3, r3, lbl_80430188@l
|
||||
/* 80034534 00031474 38 80 03 82 */ li r4, 0x382
|
||||
/* 80034538 00031478 38 BF 00 14 */ addi r5, r31, 0x14
|
||||
/* 8003453C 0003147C 38 C0 00 00 */ li r6, 0
|
||||
/* 80034540 00031480 48 1E 7D 11 */ bl dMeter2Info_c_NS_getString
|
||||
/* 80034544 00031484 3C 60 80 43 */ lis r3, lbl_80430188@ha
|
||||
/* 80034548 00031488 38 63 01 88 */ addi r3, r3, lbl_80430188@l
|
||||
/* 8003454C 0003148C 38 80 03 83 */ li r4, 0x383
|
||||
/* 80034550 00031490 38 BF 00 25 */ addi r5, r31, 0x25
|
||||
/* 80034554 00031494 38 C0 00 00 */ li r6, 0
|
||||
/* 80034558 00031498 48 1E 7C F9 */ bl dMeter2Info_c_NS_getString
|
||||
/* 8003455C 0003149C 38 60 00 00 */ li r3, 0
|
||||
/* 80034560 000314A0 90 7F 00 04 */ stw r3, 4(r31)
|
||||
/* 80034564 000314A4 90 7F 00 00 */ stw r3, 0(r31)
|
||||
/* 80034568 000314A8 90 7F 00 0C */ stw r3, 0xc(r31)
|
||||
/* 8003456C 000314AC 90 7F 00 08 */ stw r3, 8(r31)
|
||||
/* 80034570 000314B0 B0 7F 00 10 */ sth r3, 0x10(r31)
|
||||
/* 80034574 000314B4 B0 7F 00 12 */ sth r3, 0x12(r31)
|
||||
/* 80034578 000314B8 98 7F 00 36 */ stb r3, 0x36(r31)
|
||||
/* 8003457C 000314BC 38 80 00 00 */ li r4, 0
|
||||
/* 80034580 000314C0 38 00 00 05 */ li r0, 5
|
||||
/* 80034584 000314C4 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80034588:
|
||||
/* 80034588 000314C8 38 04 00 37 */ addi r0, r4, 0x37
|
||||
/* 8003458C 000314CC 7C 7F 01 AE */ stbx r3, r31, r0
|
||||
/* 80034590 000314D0 38 84 00 01 */ addi r4, r4, 1
|
||||
/* 80034594 000314D4 42 00 FF F4 */ bdnz lbl_80034588
|
||||
/* 80034598 000314D8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8003459C 000314DC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 800345A0 000314E0 7C 08 03 A6 */ mtlr r0
|
||||
/* 800345A4 000314E4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 800345A8 000314E8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,3 +1,7 @@
|
|||
class JMSMesgEntry_c {
|
||||
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
void init__20dSv_player_collect_cFv(void);
|
||||
void dComIfGp_setSelectItem(int);
|
||||
|
|
@ -31,4 +35,7 @@ extern "C" {
|
|||
void setBombNum__24dSv_player_item_record_cFUcUc(void);
|
||||
void getBombNum__21dSv_player_item_max_cCFUc(void);
|
||||
void setItem__17dSv_player_item_cFiUc(void);
|
||||
void dMeter2Info_c_NS_getString(void);
|
||||
u32 OSGetSoundMode(void);
|
||||
void Z2AudioMgr_NS_setOutputMode(u32,unsigned long);
|
||||
}
|
||||
|
|
@ -5,4 +5,5 @@ extern float lbl_80451D58;
|
|||
extern u8 lbl_803A7270[24];
|
||||
extern u8 lbl_80430188[16];
|
||||
extern u8 lbl_803A7288;
|
||||
extern u32 lbl_80451368;
|
||||
#define _SDA2_BASE_(dummy) 0
|
||||
|
|
@ -28,6 +28,7 @@ SECTIONS {
|
|||
FORCEACTIVE {
|
||||
set__17dSv_horse_place_cFPCcRC4cXyzsSc
|
||||
setLightDropNum__16dSv_light_drop_cFUcUc
|
||||
addFishCount__18dSv_fishing_info_cFUc
|
||||
}
|
||||
/*
|
||||
.init 80003100 - 80005600
|
||||
|
|
|
|||
|
|
@ -105,7 +105,6 @@ void dSv_player_status_b_c::init() {
|
|||
}
|
||||
|
||||
void dSv_player_status_b_c::onDarkClearLV(int flagOnOff) {
|
||||
|
||||
dark_clear_level_flag = dark_clear_level_flag | (u8)(1 << flagOnOff);
|
||||
}
|
||||
|
||||
|
|
@ -193,16 +192,18 @@ void dSv_player_field_last_stay_info_c::onRegionBit(int i_region_bit) {
|
|||
}
|
||||
|
||||
// this is close
|
||||
// bool dSv_player_field_last_stay_info_c::isRegionBit(int param_1) const {
|
||||
// if ((param_1 >= 0) && (param_1 < 8)) {
|
||||
// return (last_region & (1 << (u8)param_1)) ? 1 : 0;
|
||||
// }
|
||||
// }
|
||||
|
||||
asm bool dSv_player_field_last_stay_info_c::isRegionBit(int unk) const {
|
||||
#ifdef NONMATCHING
|
||||
bool dSv_player_field_last_stay_info_c::isRegionBit(int param_1) const {
|
||||
if ((param_1 >= 0) && (param_1 < 8)) {
|
||||
return (last_region & (1 << (u8)param_1)) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm bool dSv_player_field_last_stay_info_c::isRegionBit(int param_1) const {
|
||||
nofralloc
|
||||
#include "func_80032E78.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
void dSv_player_last_mark_info_c::init(void) {
|
||||
float position;
|
||||
|
|
@ -243,97 +244,101 @@ asm void dSv_player_item_c::setItem(int current_items_index, u8 new_items_index)
|
|||
#include "func_80032FB8.s"
|
||||
}
|
||||
|
||||
// u8 dSv_player_item_c::getItem(int param_1, bool param_2) const {
|
||||
// int IVar1;
|
||||
// int IVar2;
|
||||
// u8 current_select_item_index;
|
||||
#ifdef NONMATCHING
|
||||
u8 dSv_player_item_c::getItem(int param_1, bool param_2) const {
|
||||
int IVar1;
|
||||
int IVar2;
|
||||
u8 current_select_item_index;
|
||||
|
||||
// if (param_1 < 0x18) {
|
||||
// if (param_2 != false) {
|
||||
// for (int select_item_index = 0; select_item_index < 2; select_item_index++) {
|
||||
// current_select_item_index = getSelectItemIndex(select_item_index);
|
||||
// if (((param_1 == (current_select_item_index)) ||
|
||||
// (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), param_1 == (current_select_item_index))) &&
|
||||
// (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), (current_select_item_index) != NO_ITEM)) {
|
||||
// current_select_item_index = getSelectItemIndex(select_item_index);
|
||||
// IVar1 = items[current_select_item_index];
|
||||
// current_select_item_index = dComIfGs_getMixItemIndex(select_item_index);
|
||||
// IVar2 = items[current_select_item_index];
|
||||
// if (((IVar1 == HEROS_BOW) && (IVar2 == REGULAR_BOMBS)) ||
|
||||
// ((IVar2 == HEROS_BOW && (IVar1 == REGULAR_BOMBS)))) {
|
||||
// return 0x59;
|
||||
// }
|
||||
// if (((IVar1 == HEROS_BOW) && (IVar2 == WATER_BOMBS)) ||
|
||||
// ((IVar2 == HEROS_BOW && (IVar1 == WATER_BOMBS)))) {
|
||||
// return 0x59;
|
||||
// }
|
||||
// if (((IVar1 == HEROS_BOW) && (IVar2 == BOMBLINGS)) ||
|
||||
// ((IVar2 == HEROS_BOW && (IVar1 == BOMBLINGS)))) {
|
||||
// return 0x59;
|
||||
// }
|
||||
// if (((IVar1 == HEROS_BOW) && (IVar2 == HAWKEYE)) ||
|
||||
// ((IVar2 == HEROS_BOW && (IVar1 == HAWKEYE)))) {
|
||||
// return 0x5a;
|
||||
// }
|
||||
// if (((IVar1 == FISHING_ROD) && (IVar2 == BEE_LARVA)) ||
|
||||
// ((IVar2 == FISHING_ROD && (IVar1 == BEE_LARVA)))) {
|
||||
// return 0x5b;
|
||||
// }
|
||||
// if (((IVar1 == FISHING_ROD) && (IVar2 == ZORAS_JEWEL)) ||
|
||||
// ((IVar2 == FISHING_ROD && (IVar1 == ZORAS_JEWEL)))) {
|
||||
// return 0x5c;
|
||||
// }
|
||||
// if (((IVar1 == FISHING_ROD) && (IVar2 == WORM)) ||
|
||||
// ((IVar2 == FISHING_ROD && (IVar1 == WORM)))) {
|
||||
// return 0x5d;
|
||||
// }
|
||||
// if (((select_item_index == 0x3) &&
|
||||
// (current_select_item_index = getSelectItemIndex(0x3),
|
||||
// (current_select_item_index & 0xff) == 0x0)) &&
|
||||
// (current_select_item_index = dComIfGs_getMixItemIndex(0x3), (current_select_item_index & 0xff) == 0x0)) {
|
||||
// dComIfGs_setSelectItemIndex(0x3, -0x1);
|
||||
// dComIfGs_setMixItemIndex(0x3, -0x1);
|
||||
// return 0xff;
|
||||
// }
|
||||
// OSReport_Error(lbl_8037923d, (unsigned int)IVar1, (unsigned int)IVar2);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// current_select_item_index = (unsigned int)items[param_1];
|
||||
// } else {
|
||||
// current_select_item_index = NO_ITEM;
|
||||
// }
|
||||
// return current_select_item_index;
|
||||
// }
|
||||
|
||||
asm u8 dSv_player_item_c::getItem(int, bool) const {
|
||||
if (param_1 < 0x18) {
|
||||
if (param_2 != false) {
|
||||
for (int select_item_index = 0; select_item_index < 2; select_item_index++) {
|
||||
current_select_item_index = getSelectItemIndex(select_item_index);
|
||||
if (((param_1 == (current_select_item_index)) ||
|
||||
(current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), param_1 == (current_select_item_index))) &&
|
||||
(current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), (current_select_item_index) != NO_ITEM)) {
|
||||
current_select_item_index = getSelectItemIndex(select_item_index);
|
||||
IVar1 = items[current_select_item_index];
|
||||
current_select_item_index = dComIfGs_getMixItemIndex(select_item_index);
|
||||
IVar2 = items[current_select_item_index];
|
||||
if (((IVar1 == HEROS_BOW) && (IVar2 == REGULAR_BOMBS)) ||
|
||||
((IVar2 == HEROS_BOW && (IVar1 == REGULAR_BOMBS)))) {
|
||||
return 0x59;
|
||||
}
|
||||
if (((IVar1 == HEROS_BOW) && (IVar2 == WATER_BOMBS)) ||
|
||||
((IVar2 == HEROS_BOW && (IVar1 == WATER_BOMBS)))) {
|
||||
return 0x59;
|
||||
}
|
||||
if (((IVar1 == HEROS_BOW) && (IVar2 == BOMBLINGS)) ||
|
||||
((IVar2 == HEROS_BOW && (IVar1 == BOMBLINGS)))) {
|
||||
return 0x59;
|
||||
}
|
||||
if (((IVar1 == HEROS_BOW) && (IVar2 == HAWKEYE)) ||
|
||||
((IVar2 == HEROS_BOW && (IVar1 == HAWKEYE)))) {
|
||||
return 0x5a;
|
||||
}
|
||||
if (((IVar1 == FISHING_ROD) && (IVar2 == BEE_LARVA)) ||
|
||||
((IVar2 == FISHING_ROD && (IVar1 == BEE_LARVA)))) {
|
||||
return 0x5b;
|
||||
}
|
||||
if (((IVar1 == FISHING_ROD) && (IVar2 == ZORAS_JEWEL)) ||
|
||||
((IVar2 == FISHING_ROD && (IVar1 == ZORAS_JEWEL)))) {
|
||||
return 0x5c;
|
||||
}
|
||||
if (((IVar1 == FISHING_ROD) && (IVar2 == WORM)) ||
|
||||
((IVar2 == FISHING_ROD && (IVar1 == WORM)))) {
|
||||
return 0x5d;
|
||||
}
|
||||
if (((select_item_index == 0x3) &&
|
||||
(current_select_item_index = getSelectItemIndex(0x3),
|
||||
(current_select_item_index & 0xff) == 0x0)) &&
|
||||
(current_select_item_index = dComIfGs_getMixItemIndex(0x3), (current_select_item_index & 0xff) == 0x0)) {
|
||||
dComIfGs_setSelectItemIndex(0x3, -0x1);
|
||||
dComIfGs_setMixItemIndex(0x3, -0x1);
|
||||
return 0xff;
|
||||
}
|
||||
OSReport_Error(lbl_8037923d, (unsigned int)IVar1, (unsigned int)IVar2);
|
||||
}
|
||||
}
|
||||
}
|
||||
current_select_item_index = (unsigned int)items[param_1];
|
||||
} else {
|
||||
current_select_item_index = NO_ITEM;
|
||||
}
|
||||
return current_select_item_index;
|
||||
}
|
||||
#else
|
||||
asm u8 dSv_player_item_c::getItem(int param_1, bool param_2) const {
|
||||
nofralloc
|
||||
#include "func_80033030.s"
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
// this is close
|
||||
// void dSv_player_item_c::setLineUpItem(void) {
|
||||
// u8* i_item_lst;
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_item_c::setLineUpItem(void) {
|
||||
u8* i_item_lst;
|
||||
|
||||
// for (int i = 0; i < 24; i++) {
|
||||
// item_slots[i] = 0xFF;
|
||||
// }
|
||||
for (int i = 0; i < 24; i++) {
|
||||
item_slots[i] = 0xFF;
|
||||
}
|
||||
|
||||
// i_item_lst = lbl_803A7270;
|
||||
|
||||
// for (int i = 0; i < 23; i++) {
|
||||
// if (items[*i_item_lst] != 0xFF) {
|
||||
// item_slots[i] = *i_item_lst;
|
||||
// }
|
||||
// i_item_lst++;
|
||||
// }
|
||||
// }
|
||||
i_item_lst = lbl_803A7270;
|
||||
|
||||
for (int i = 0; i < 23; i++) {
|
||||
if (items[*i_item_lst] != 0xFF) {
|
||||
item_slots[i] = *i_item_lst;
|
||||
}
|
||||
i_item_lst++;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_item_c::setLineUpItem(void) {
|
||||
nofralloc
|
||||
#include "func_800332F8.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
u8 dSv_player_item_c::getLineUpItem(int slot_number) const {
|
||||
if (slot_number < MAX_ITEM_SLOTS) {
|
||||
|
|
@ -342,46 +347,50 @@ u8 dSv_player_item_c::getLineUpItem(int slot_number) const {
|
|||
return NO_ITEM;
|
||||
}
|
||||
|
||||
// void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){
|
||||
// u8 current_item_index;
|
||||
// u8 new_item_index;
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){
|
||||
u8 current_item_index;
|
||||
u8 new_item_index;
|
||||
|
||||
// current_item_index = dSv_item_rename(i_item_id_1);
|
||||
// new_item_index = dSv_item_rename(i_item_id_2);
|
||||
current_item_index = dSv_item_rename(i_item_id_1);
|
||||
new_item_index = dSv_item_rename(i_item_id_2);
|
||||
|
||||
// for (int i = 0; i < 4; i++) {
|
||||
// // sanitize input to make sure it's only a bottle
|
||||
// if (current_item_index == items[i+11]) {
|
||||
// setItem(i+11,new_item_index);
|
||||
// // if hotsprings water, turn on the timer
|
||||
// if (new_item_index == 107) {
|
||||
// setHotSpringTimer(i+11);
|
||||
// }
|
||||
// for (int j = 0; j < 4; j++) {
|
||||
// j = getSelectItemIndex(i);
|
||||
// if (i+11 == j) {
|
||||
// dComIfGp_setSelectItem(j);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
asm void dSv_player_item_c::setBottleItemIn(u8, u8){
|
||||
for (int i = 0; i < 4; i++) {
|
||||
// sanitize input to make sure it's only a bottle
|
||||
if (current_item_index == items[i+11]) {
|
||||
setItem(i+11,new_item_index);
|
||||
// if hotsprings water, turn on the timer
|
||||
if (new_item_index == 107) {
|
||||
setHotSpringTimer(i+11);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
j = getSelectItemIndex(i);
|
||||
if (i+11 == j) {
|
||||
dComIfGp_setSelectItem(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_item_c::setBottleItemIn(u8 i_item_id_1, u8 i_item_id_2){
|
||||
nofralloc
|
||||
#include "func_80033370.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
// this is 1 instruction off
|
||||
// void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id){
|
||||
// u8 item_id = (dSv_item_rename(i_item_id));
|
||||
// setBottleItemIn(96,item_id);
|
||||
// }
|
||||
|
||||
asm void dSv_player_item_c::setEmptyBottleItemIn(u8){
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id){
|
||||
u8 item_id = (dSv_item_rename(i_item_id));
|
||||
setBottleItemIn(96,item_id);
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_item_c::setEmptyBottleItemIn(u8 i_item_id){
|
||||
nofralloc
|
||||
#include "func_80033450.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm void dSv_player_item_c::setEmptyBottle(void) {
|
||||
nofralloc
|
||||
|
|
@ -450,26 +459,28 @@ void dSv_player_item_c::setEmptyBombBagItemIn(u8 param_1,u8 param_2, bool param_
|
|||
}
|
||||
|
||||
// this is a few instructions off
|
||||
// void dSv_player_item_c::setEmptyBombBag(void) {
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_item_c::setEmptyBombBag(void) {
|
||||
|
||||
// int current_item_index;
|
||||
// u8 uVar1;
|
||||
int current_item_index;
|
||||
u8 uVar1;
|
||||
|
||||
// for (int i = 0; i < 3; i++) {
|
||||
// current_item_index = (u8)(i + 15);
|
||||
// uVar1 = getItem(current_item_index,true);
|
||||
|
||||
// if (uVar1 == 0xff) {
|
||||
// setItem(current_item_index,80);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
for (int i = 0; i < 3; i++) {
|
||||
current_item_index = (u8)(i + 15);
|
||||
uVar1 = getItem(current_item_index,true);
|
||||
|
||||
if (uVar1 == 0xff) {
|
||||
setItem(current_item_index,80);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_item_c::setEmptyBombBag(void) {
|
||||
nofralloc
|
||||
#include "func_80033A88.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm void dSv_player_item_c::setEmptyBombBag(u8, u8) {
|
||||
nofralloc
|
||||
|
|
@ -477,21 +488,23 @@ asm void dSv_player_item_c::setEmptyBombBag(u8, u8) {
|
|||
}
|
||||
|
||||
// this is a few instructions off
|
||||
// u8 dSv_player_item_c::checkBombBag(u8 param_1) {
|
||||
// u8 ok = 0;
|
||||
|
||||
// for (int i = 0; i < 3; i++) {
|
||||
// if (param_1 == this->items[i + 15]) {
|
||||
// ok = ok + 0x1;
|
||||
// }
|
||||
// }
|
||||
// return ok;
|
||||
// }
|
||||
#ifdef NONMATCHING
|
||||
u8 dSv_player_item_c::checkBombBag(u8 param_1) {
|
||||
u8 ok = 0;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (param_1 == this->items[i + 15]) {
|
||||
ok = ok + 0x1;
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
#else
|
||||
asm u8 dSv_player_item_c::checkBombBag(u8 param_1) {
|
||||
nofralloc
|
||||
#include "func_80033BEC.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm void dSv_player_item_c::setWarashibeItem(u8) {
|
||||
nofralloc
|
||||
|
|
@ -522,31 +535,33 @@ void dSv_player_item_c::setRodTypeLevelUp(void) {
|
|||
}
|
||||
|
||||
// this is a few instructions off
|
||||
// void dSv_player_item_c::setBaitItem(u8 param_1) {
|
||||
// switch (param_1) {
|
||||
// case BEE_LARVA: {
|
||||
// isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING_BEE_LARVA : this->items[0x14] = ROD_BEE_LARVA;
|
||||
// break;
|
||||
// }
|
||||
// case WORM: {
|
||||
// isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING_WORM : this->items[0x14] = ROD_WORM;
|
||||
// break;
|
||||
// }
|
||||
// case NO_ITEM: {
|
||||
// isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING : this->items[0x14] = FISHING_ROD;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// for (int i = 0; i < 4; i++) {
|
||||
// dComIfGp_setSelectItem(i);
|
||||
// }
|
||||
// }
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_item_c::setBaitItem(u8 param_1) {
|
||||
switch (param_1) {
|
||||
case BEE_LARVA: {
|
||||
isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING_BEE_LARVA : this->items[0x14] = ROD_BEE_LARVA;
|
||||
break;
|
||||
}
|
||||
case WORM: {
|
||||
isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING_WORM : this->items[0x14] = ROD_WORM;
|
||||
break;
|
||||
}
|
||||
case NO_ITEM: {
|
||||
isFirstBit(61) ? this->items[0x14] = ROD_CORAL_EARRING : this->items[0x14] = FISHING_ROD;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
dComIfGp_setSelectItem(i);
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_item_c::setBaitItem(u8 param_1) {
|
||||
nofralloc
|
||||
#include "func_80033D40.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
void dSv_player_get_item_c::init(void) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
|
|
@ -628,26 +643,28 @@ void dSv_player_item_max_c::setBombNum(u8 bomb_id,u8 bomb_max) {
|
|||
}
|
||||
|
||||
// this is close, the isFirstBit keeps screwing everything up :(
|
||||
// u8 dSv_player_item_max_c::getBombNum(u8 param_1) const {
|
||||
// u8 iVar3;
|
||||
#ifdef NONMATCHING
|
||||
u8 dSv_player_item_max_c::getBombNum(u8 param_1) const {
|
||||
u8 iVar3;
|
||||
|
||||
// iVar3 = 0x1;
|
||||
// if (isFirstBit(79)) {
|
||||
// iVar3 = 0x2;
|
||||
// }
|
||||
|
||||
// switch (param_1) {
|
||||
// case WATER_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3);
|
||||
// case REGULAR_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3);
|
||||
// case BOMBLINGS: return (u8)(this->unk_ammo_max[0x2] * iVar3);
|
||||
// default: return 0;
|
||||
// }
|
||||
// }
|
||||
iVar3 = 0x1;
|
||||
if (isFirstBit(79)) {
|
||||
iVar3 = 0x2;
|
||||
}
|
||||
|
||||
switch (param_1) {
|
||||
case WATER_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3);
|
||||
case REGULAR_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3);
|
||||
case BOMBLINGS: return (u8)(this->unk_ammo_max[0x2] * iVar3);
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm u8 dSv_player_item_max_c::getBombNum(u8 param_1) const {
|
||||
nofralloc
|
||||
#include "func_800340F8.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
void dSv_player_collect_c::init(void) {
|
||||
|
||||
|
|
@ -663,14 +680,16 @@ void dSv_player_collect_c::init(void) {
|
|||
}
|
||||
|
||||
// very close
|
||||
// void dSv_player_collect_c::setCollect(int param_1, u8 param_2) {
|
||||
// this->unk0[param_1] = this->unk0[param_1] | (u8)(1 << param_2);
|
||||
// }
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void dSv_player_collect_c::setCollect(int param_1, u8 param_2) {
|
||||
this->unk0[param_1] = this->unk0[param_1] | (u8)(1 << param_2);
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_collect_c::setCollect(int param_1, u8 param_2) {
|
||||
nofralloc
|
||||
#include "func_800341E8.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
bool dSv_player_collect_c::isCollect(int param_1, u8 param_2) const {
|
||||
return this->unk0[param_1] & (u8)(1 << param_2) ? true : false;
|
||||
|
|
@ -738,4 +757,145 @@ bool dSv_light_drop_c::isLightDropGetFlag(u8 param_1) const {
|
|||
return 0;
|
||||
}
|
||||
return this->light_drop_get_flag & (u8)(1 << param_1) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
void dSv_letter_info_c::init(void) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
this->letter_read_flags[i] = 0;
|
||||
this->letter_read_flags[i + 2] = 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 64; i++) {
|
||||
this->unk16[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// close
|
||||
#ifdef NONMATCHING
|
||||
void dSv_letter_info_c::onLetterGetFlag(int param_1) {
|
||||
this->letter_read_flags[param_1 >> 0x5] = this->letter_read_flags[param_1 >> 0x5] | 0x1 << (param_1 & 0x1fU);
|
||||
}
|
||||
#else
|
||||
asm void dSv_letter_info_c::onLetterGetFlag(int param_1) {
|
||||
nofralloc
|
||||
#include "func_80034428.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
bool dSv_letter_info_c::isLetterGetFlag(int param_1) const {
|
||||
return this->letter_read_flags[param_1 >> 0x5] & (u8)(1 << param_1) ? true : false;
|
||||
}
|
||||
#else
|
||||
asm bool dSv_letter_info_c::isLetterGetFlag(int param_1) const {
|
||||
nofralloc
|
||||
#include "func_8003444C.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void dSv_letter_info_c::onLetterReadFlag(int param_1) {
|
||||
(this->letter_read_flags + (param_1 >> 0x5))[0x2] = (this->letter_read_flags + (param_1 >> 0x5))[0x2] | 0x1 << (u8)(param_1);
|
||||
}
|
||||
#else
|
||||
asm void dSv_letter_info_c::onLetterReadFlag(int param_1) {
|
||||
nofralloc
|
||||
#include "func_80034474.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
asm bool isLetterReadFlag(int) const {
|
||||
|
||||
}
|
||||
#else
|
||||
asm bool dSv_letter_info_c::isLetterReadFlag(int) const {
|
||||
nofralloc
|
||||
#include "func_8003449C.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
void dSv_fishing_info_c::init(void) {
|
||||
for (int i = 0; i < 16; i++) {
|
||||
this->fish_count[i] = 0;
|
||||
this->unk32[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// instructions are right but registers are wrong
|
||||
#ifdef NONMATCHING
|
||||
void dSv_fishing_info_c::addFishCount(u8 fish_index) {
|
||||
if (this->fish_count[fish_index] < 999) {
|
||||
this->fish_count[fish_index] = this->fish_count[fish_index] + 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_fishing_info_c::addFishCount(u8 fish_index) {
|
||||
nofralloc
|
||||
#include "func_800344FC.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
// a few instructions off
|
||||
#ifdef NONMATCHING
|
||||
namespace d_meter2_info {
|
||||
class dMeter2Info_c {
|
||||
public:
|
||||
void getString(unsigned long, char*, JMSMesgEntry_c *);
|
||||
};
|
||||
}
|
||||
|
||||
void dSv_player_info_c::init(void) {
|
||||
unsigned long a = 0x382;
|
||||
unsigned long b = 0x383;
|
||||
|
||||
JMSMesgEntry_c* c = 0;
|
||||
JMSMesgEntry_c* d = 0;
|
||||
|
||||
d_meter2_info::dMeter2Info_c ok;
|
||||
|
||||
ok.getString(a,(char*)this->link_name,c);
|
||||
ok.getString(b,(char*)this->epona_name,d);
|
||||
|
||||
this->unk4 = 0;
|
||||
this->unk0 = 0;
|
||||
this->unk12 = 0;
|
||||
this->unk8 = 0;
|
||||
this->unk16 = 0;
|
||||
this->unk18 = 0;
|
||||
this->unk54 = 0;
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
this->unk55[i] = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void dSv_player_info_c::init(void) {
|
||||
nofralloc
|
||||
#include "func_80034518.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
void dSv_player_config_c::init(void) {
|
||||
u32 os_sound_mode;
|
||||
|
||||
this->unk0 = 1;
|
||||
os_sound_mode = OSGetSoundMode();
|
||||
if (os_sound_mode == 0) {
|
||||
this->sound_mode = 0;
|
||||
Z2AudioMgr_NS_setOutputMode(lbl_80451368,0);
|
||||
} else {
|
||||
this->sound_mode = 1;
|
||||
Z2AudioMgr_NS_setOutputMode(lbl_80451368,1);
|
||||
}
|
||||
|
||||
this->unk2 = 0;
|
||||
this->vibration_status = 1;
|
||||
this->unk4 = 0;
|
||||
this->unk5 = 0;
|
||||
this->unk9 = 0;
|
||||
this->unk6 = 0x15e;
|
||||
this->unk8 = 0;
|
||||
this->unk10 = 0;
|
||||
this->unk11 = 1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue