dSv_player_config_c::init ok

This commit is contained in:
unknown 2020-11-26 20:14:44 -05:00
parent 2fceccbd08
commit 363fd35933
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
14 changed files with 453 additions and 383 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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];

9
include/func_80034428.s Normal file
View File

@ -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

10
include/func_8003444C.s Normal file
View File

@ -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

10
include/func_80034474.s Normal file
View File

@ -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

11
include/func_8003449C.s Normal file
View File

@ -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

7
include/func_800344FC.s Normal file
View File

@ -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

38
include/func_80034518.s Normal file
View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -28,6 +28,7 @@ SECTIONS {
FORCEACTIVE {
set__17dSv_horse_place_cFPCcRC4cXyzsSc
setLightDropNum__16dSv_light_drop_cFUcUc
addFishCount__18dSv_fishing_info_cFUc
}
/*
.init 80003100 - 80005600

View File

@ -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;
}