From d1ebe06b294363316150b899ce102d3b99d0fdf5 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Wed, 25 Jan 2023 09:50:32 -0500 Subject: [PATCH] Assorted matches (#288) * Matches in code_80071F00 Signed-off-by: Taggerung --- .../code_80027D00/func_8002A79C.s | 71 ----- .../code_80071F00/func_80078F64.s | 66 ---- .../code_80071F00/func_800797AC.s | 49 --- .../code_80071F00/func_80079860.s | 60 ---- .../code_80071F00/func_8007ABFC.s | 44 --- .../code_80071F00/func_8007AC9C.s | 71 ----- .../code_80071F00/func_8007F75C.s | 104 ------- .../code_80071F00/func_8007F8D8.s | 85 ----- include/common_structs.h | 3 +- include/objects.h | 8 +- src/code_80004740.c | 6 - src/code_80004740.h | 7 + src/code_80027D00.c | 26 +- src/code_80027D00.h | 1 + src/code_80071F00.c | 290 ++++++------------ src/code_80071F00.h | 6 +- 16 files changed, 125 insertions(+), 772 deletions(-) delete mode 100644 asm/non_matchings/code_80027D00/func_8002A79C.s delete mode 100644 asm/non_matchings/code_80071F00/func_80078F64.s delete mode 100644 asm/non_matchings/code_80071F00/func_800797AC.s delete mode 100644 asm/non_matchings/code_80071F00/func_80079860.s delete mode 100644 asm/non_matchings/code_80071F00/func_8007ABFC.s delete mode 100644 asm/non_matchings/code_80071F00/func_8007AC9C.s delete mode 100644 asm/non_matchings/code_80071F00/func_8007F75C.s delete mode 100644 asm/non_matchings/code_80071F00/func_8007F8D8.s diff --git a/asm/non_matchings/code_80027D00/func_8002A79C.s b/asm/non_matchings/code_80027D00/func_8002A79C.s deleted file mode 100644 index 259e60924..000000000 --- a/asm/non_matchings/code_80027D00/func_8002A79C.s +++ /dev/null @@ -1,71 +0,0 @@ -glabel func_8002A79C -/* 02B39C 8002A79C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 02B3A0 8002A7A0 AFBF0014 */ sw $ra, 0x14($sp) -/* 02B3A4 8002A7A4 AFA5001C */ sw $a1, 0x1c($sp) -/* 02B3A8 8002A7A8 8C8200BC */ lw $v0, 0xbc($a0) -/* 02B3AC 8002A7AC 00057600 */ sll $t6, $a1, 0x18 -/* 02B3B0 8002A7B0 000E7E03 */ sra $t7, $t6, 0x18 -/* 02B3B4 8002A7B4 24060100 */ li $a2, 256 -/* 02B3B8 8002A7B8 30430100 */ andi $v1, $v0, 0x100 -/* 02B3BC 8002A7BC 10C30025 */ beq $a2, $v1, .L8002A854 -/* 02B3C0 8002A7C0 01E02825 */ move $a1, $t7 -/* 02B3C4 8002A7C4 30580010 */ andi $t8, $v0, 0x10 -/* 02B3C8 8002A7C8 24010010 */ li $at, 16 -/* 02B3CC 8002A7CC 13010021 */ beq $t8, $at, .L8002A854 -/* 02B3D0 8002A7D0 00000000 */ nop -/* 02B3D4 8002A7D4 8499022A */ lh $t9, 0x22a($a0) -/* 02B3D8 8002A7D8 34480100 */ ori $t0, $v0, 0x100 -/* 02B3DC 8002A7DC 3C098016 */ lui $t1, %hi(D_8015F890) # $t1, 0x8016 -/* 02B3E0 8002A7E0 2B210002 */ slti $at, $t9, 2 -/* 02B3E4 8002A7E4 1420001B */ bnez $at, .L8002A854 -/* 02B3E8 8002A7E8 00000000 */ nop -/* 02B3EC 8002A7EC AC8800BC */ sw $t0, 0xbc($a0) -/* 02B3F0 8002A7F0 A480023A */ sh $zero, 0x23a($a0) -/* 02B3F4 8002A7F4 A480022A */ sh $zero, 0x22a($a0) -/* 02B3F8 8002A7F8 A4800228 */ sh $zero, 0x228($a0) -/* 02B3FC 8002A7FC 9529F890 */ lhu $t1, %lo(D_8015F890)($t1) -/* 02B400 8002A800 24010001 */ li $at, 1 -/* 02B404 8002A804 3C0C800E */ lui $t4, %hi(gPlayerOne) # $t4, 0x800e -/* 02B408 8002A808 1121000B */ beq $t1, $at, .L8002A838 -/* 02B40C 8002A80C 00000000 */ nop -/* 02B410 8002A810 94820000 */ lhu $v0, ($a0) -/* 02B414 8002A814 304A4000 */ andi $t2, $v0, 0x4000 -/* 02B418 8002A818 1140001E */ beqz $t2, .L8002A894 -/* 02B41C 8002A81C 304B0100 */ andi $t3, $v0, 0x100 -/* 02B420 8002A820 5560001D */ bnel $t3, $zero, .L8002A898 -/* 02B424 8002A824 8FBF0014 */ lw $ra, 0x14($sp) -/* 02B428 8002A828 0C032494 */ jal func_800C9250 -/* 02B42C 8002A82C 31E400FF */ andi $a0, $t7, 0xff -/* 02B430 8002A830 10000019 */ b .L8002A898 -/* 02B434 8002A834 8FBF0014 */ lw $ra, 0x14($sp) -.L8002A838: -/* 02B438 8002A838 8D8CC4DC */ lw $t4, %lo(gPlayerOne)($t4) -/* 02B43C 8002A83C 548C0016 */ bnel $a0, $t4, .L8002A898 -/* 02B440 8002A840 8FBF0014 */ lw $ra, 0x14($sp) -/* 02B444 8002A844 0C032494 */ jal func_800C9250 -/* 02B448 8002A848 30A400FF */ andi $a0, $a1, 0xff -/* 02B44C 8002A84C 10000012 */ b .L8002A898 -/* 02B450 8002A850 8FBF0014 */ lw $ra, 0x14($sp) -.L8002A854: -/* 02B454 8002A854 54C30010 */ bnel $a2, $v1, .L8002A898 -/* 02B458 8002A858 8FBF0014 */ lw $ra, 0x14($sp) -/* 02B45C 8002A85C 848D023A */ lh $t5, 0x23a($a0) -/* 02B460 8002A860 25AE0001 */ addiu $t6, $t5, 1 -/* 02B464 8002A864 A48E023A */ sh $t6, 0x23a($a0) -/* 02B468 8002A868 848F023A */ lh $t7, 0x23a($a0) -/* 02B46C 8002A86C 29E1001F */ slti $at, $t7, 0x1f -/* 02B470 8002A870 54200009 */ bnel $at, $zero, .L8002A898 -/* 02B474 8002A874 8FBF0014 */ lw $ra, 0x14($sp) -/* 02B478 8002A878 8C9800BC */ lw $t8, 0xbc($a0) -/* 02B47C 8002A87C 2401FEFF */ li $at, -257 -/* 02B480 8002A880 A480023A */ sh $zero, 0x23a($a0) -/* 02B484 8002A884 0301C824 */ and $t9, $t8, $at -/* 02B488 8002A888 AC9900BC */ sw $t9, 0xbc($a0) -/* 02B48C 8002A88C A480022A */ sh $zero, 0x22a($a0) -/* 02B490 8002A890 A4800228 */ sh $zero, 0x228($a0) -.L8002A894: -/* 02B494 8002A894 8FBF0014 */ lw $ra, 0x14($sp) -.L8002A898: -/* 02B498 8002A898 27BD0018 */ addiu $sp, $sp, 0x18 -/* 02B49C 8002A89C 03E00008 */ jr $ra -/* 02B4A0 8002A8A0 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80078F64.s b/asm/non_matchings/code_80071F00/func_80078F64.s deleted file mode 100644 index d97e5bc31..000000000 --- a/asm/non_matchings/code_80071F00/func_80078F64.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel func_80078F64 -/* 079B64 80078F64 3C02800E */ lui $v0, %hi(gScreenModeSelection) # $v0, 0x800e -/* 079B68 80078F68 8C42C530 */ lw $v0, %lo(gScreenModeSelection)($v0) -/* 079B6C 80078F6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 079B70 80078F70 AFBF001C */ sw $ra, 0x1c($sp) -/* 079B74 80078F74 1040000C */ beqz $v0, .L80078FA8 -/* 079B78 80078F78 AFB00018 */ sw $s0, 0x18($sp) -/* 079B7C 80078F7C 24010001 */ li $at, 1 -/* 079B80 80078F80 10410019 */ beq $v0, $at, .L80078FE8 -/* 079B84 80078F84 3C108018 */ lui $s0, %hi(D_80183DB8) # 0x8018 -/* 079B88 80078F88 24010002 */ li $at, 2 -/* 079B8C 80078F8C 1041000D */ beq $v0, $at, .L80078FC4 -/* 079B90 80078F90 3C108018 */ lui $s0, %hi(D_80183DB8) # 0x8018 -/* 079B94 80078F94 24010003 */ li $at, 3 -/* 079B98 80078F98 1041001C */ beq $v0, $at, .L8007900C -/* 079B9C 80078F9C 3C108018 */ lui $s0, %hi(D_80183DB8) # 0x8018 -/* 079BA0 80078FA0 10000028 */ b .L80079044 -/* 079BA4 80078FA4 8FBF001C */ lw $ra, 0x1c($sp) -.L80078FA8: -/* 079BA8 80078FA8 3C108018 */ lui $s0, %hi(D_80183DB8) # $s0, 0x8018 -/* 079BAC 80078FAC 26103DB8 */ addiu $s0, %lo(D_80183DB8) # addiu $s0, $s0, 0x3db8 -/* 079BB0 80078FB0 8E040000 */ lw $a0, ($s0) -/* 079BB4 80078FB4 0C01C8E9 */ jal func_800723A4 -/* 079BB8 80078FB8 24050001 */ li $a1, 1 -/* 079BBC 80078FBC 10000021 */ b .L80079044 -/* 079BC0 80078FC0 8FBF001C */ lw $ra, 0x1c($sp) -.L80078FC4: -/* 079BC4 80078FC4 26103DB8 */ addiu $s0, $s0, %lo(D_80183DB8) # 0x3db8 -/* 079BC8 80078FC8 8E040000 */ lw $a0, ($s0) -/* 079BCC 80078FCC 0C01C8E9 */ jal func_800723A4 -/* 079BD0 80078FD0 24050001 */ li $a1, 1 -/* 079BD4 80078FD4 8E040004 */ lw $a0, 4($s0) -/* 079BD8 80078FD8 0C01C8E9 */ jal func_800723A4 -/* 079BDC 80078FDC 24050001 */ li $a1, 1 -/* 079BE0 80078FE0 10000018 */ b .L80079044 -/* 079BE4 80078FE4 8FBF001C */ lw $ra, 0x1c($sp) -.L80078FE8: -/* 079BE8 80078FE8 26103DB8 */ addiu $s0, $s0, %lo(D_80183DB8) # 0x3db8 -/* 079BEC 80078FEC 8E040000 */ lw $a0, ($s0) -/* 079BF0 80078FF0 0C01C8E9 */ jal func_800723A4 -/* 079BF4 80078FF4 24050001 */ li $a1, 1 -/* 079BF8 80078FF8 8E040004 */ lw $a0, 4($s0) -/* 079BFC 80078FFC 0C01C8E9 */ jal func_800723A4 -/* 079C00 80079000 24050001 */ li $a1, 1 -/* 079C04 80079004 1000000F */ b .L80079044 -/* 079C08 80079008 8FBF001C */ lw $ra, 0x1c($sp) -.L8007900C: -/* 079C0C 8007900C 26103DB8 */ addiu $s0, $s0, %lo(D_80183DB8) # 0x3db8 -/* 079C10 80079010 8E040000 */ lw $a0, ($s0) -/* 079C14 80079014 0C01C8E9 */ jal func_800723A4 -/* 079C18 80079018 24050001 */ li $a1, 1 -/* 079C1C 8007901C 8E040004 */ lw $a0, 4($s0) -/* 079C20 80079020 0C01C8E9 */ jal func_800723A4 -/* 079C24 80079024 24050001 */ li $a1, 1 -/* 079C28 80079028 8E040008 */ lw $a0, 8($s0) -/* 079C2C 8007902C 0C01C8E9 */ jal func_800723A4 -/* 079C30 80079030 24050001 */ li $a1, 1 -/* 079C34 80079034 8E04000C */ lw $a0, 0xc($s0) -/* 079C38 80079038 0C01C8E9 */ jal func_800723A4 -/* 079C3C 8007903C 24050001 */ li $a1, 1 -/* 079C40 80079040 8FBF001C */ lw $ra, 0x1c($sp) -.L80079044: -/* 079C44 80079044 8FB00018 */ lw $s0, 0x18($sp) -/* 079C48 80079048 27BD0020 */ addiu $sp, $sp, 0x20 -/* 079C4C 8007904C 03E00008 */ jr $ra -/* 079C50 80079050 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_800797AC.s b/asm/non_matchings/code_80071F00/func_800797AC.s deleted file mode 100644 index d414283f3..000000000 --- a/asm/non_matchings/code_80071F00/func_800797AC.s +++ /dev/null @@ -1,49 +0,0 @@ -glabel func_800797AC -/* 07A3AC 800797AC 000478C0 */ sll $t7, $a0, 3 -/* 07A3B0 800797B0 01E47823 */ subu $t7, $t7, $a0 -/* 07A3B4 800797B4 000F7900 */ sll $t7, $t7, 4 -/* 07A3B8 800797B8 01E47823 */ subu $t7, $t7, $a0 -/* 07A3BC 800797BC 3C19800E */ lui $t9, %hi(gCurrentCourseId) # $t9, 0x800e -/* 07A3C0 800797C0 8739C5A0 */ lh $t9, %lo(gCurrentCourseId)($t9) -/* 07A3C4 800797C4 000F7880 */ sll $t7, $t7, 2 -/* 07A3C8 800797C8 3C18800E */ lui $t8, %hi(gPlayerOne) # $t8, 0x800e -/* 07A3CC 800797CC 8F18C4DC */ lw $t8, %lo(gPlayerOne)($t8) -/* 07A3D0 800797D0 00047080 */ sll $t6, $a0, 2 -/* 07A3D4 800797D4 3C068018 */ lui $a2, %hi(D_80183DB8) # 0x8018 -/* 07A3D8 800797D8 01E47823 */ subu $t7, $t7, $a0 -/* 07A3DC 800797DC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 07A3E0 800797E0 00CE3021 */ addu $a2, $a2, $t6 -/* 07A3E4 800797E4 000F78C0 */ sll $t7, $t7, 3 -/* 07A3E8 800797E8 2401000C */ li $at, 12 -/* 07A3EC 800797EC AFBF0014 */ sw $ra, 0x14($sp) -/* 07A3F0 800797F0 8CC63DB8 */ lw $a2, %lo(D_80183DB8)($a2) # 0x3db8($a2) -/* 07A3F4 800797F4 1721000F */ bne $t9, $at, .L80079834 -/* 07A3F8 800797F8 01F81021 */ addu $v0, $t7, $t8 -/* 07A3FC 800797FC 844800CA */ lh $t0, 0xca($v0) -/* 07A400 80079800 00C02025 */ move $a0, $a2 -/* 07A404 80079804 24050007 */ li $a1, 7 -/* 07A408 80079808 31090001 */ andi $t1, $t0, 1 -/* 07A40C 8007980C 5120000A */ beql $t1, $zero, .L80079838 -/* 07A410 80079810 00C02025 */ move $a0, $a2 -/* 07A414 80079814 AFA20018 */ sw $v0, 0x18($sp) -/* 07A418 80079818 0C01C8E9 */ jal func_800723A4 -/* 07A41C 8007981C AFA6001C */ sw $a2, 0x1c($sp) -/* 07A420 80079820 8FA20018 */ lw $v0, 0x18($sp) -/* 07A424 80079824 844A00CA */ lh $t2, 0xca($v0) -/* 07A428 80079828 354B0010 */ ori $t3, $t2, 0x10 -/* 07A42C 8007982C 10000005 */ b .L80079844 -/* 07A430 80079830 A44B00CA */ sh $t3, 0xca($v0) -.L80079834: -/* 07A434 80079834 00C02025 */ move $a0, $a2 -.L80079838: -/* 07A438 80079838 24050003 */ li $a1, 3 -/* 07A43C 8007983C 0C01C8E9 */ jal func_800723A4 -/* 07A440 80079840 AFA6001C */ sw $a2, 0x1c($sp) -.L80079844: -/* 07A444 80079844 8FA4001C */ lw $a0, 0x1c($sp) -/* 07A448 80079848 0C01C8A9 */ jal func_800722A4 -/* 07A44C 8007984C 24050001 */ li $a1, 1 -/* 07A450 80079850 8FBF0014 */ lw $ra, 0x14($sp) -/* 07A454 80079854 27BD0020 */ addiu $sp, $sp, 0x20 -/* 07A458 80079858 03E00008 */ jr $ra -/* 07A45C 8007985C 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80079860.s b/asm/non_matchings/code_80071F00/func_80079860.s deleted file mode 100644 index 297dd4873..000000000 --- a/asm/non_matchings/code_80071F00/func_80079860.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_80079860 -/* 07A460 80079860 00803825 */ move $a3, $a0 -/* 07A464 80079864 000778C0 */ sll $t7, $a3, 3 -/* 07A468 80079868 01E77823 */ subu $t7, $t7, $a3 -/* 07A46C 8007986C 000F7900 */ sll $t7, $t7, 4 -/* 07A470 80079870 01E77823 */ subu $t7, $t7, $a3 -/* 07A474 80079874 3C18800E */ lui $t8, %hi(gPlayerOne) # $t8, 0x800e -/* 07A478 80079878 8F18C4DC */ lw $t8, %lo(gPlayerOne)($t8) -/* 07A47C 8007987C 000F7880 */ sll $t7, $t7, 2 -/* 07A480 80079880 00047080 */ sll $t6, $a0, 2 -/* 07A484 80079884 01E77823 */ subu $t7, $t7, $a3 -/* 07A488 80079888 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 07A48C 8007988C 3C048018 */ lui $a0, %hi(D_80183DB8) # 0x8018 -/* 07A490 80079890 000F78C0 */ sll $t7, $t7, 3 -/* 07A494 80079894 AFBF0014 */ sw $ra, 0x14($sp) -/* 07A498 80079898 008E2021 */ addu $a0, $a0, $t6 -/* 07A49C 8007989C 01F83021 */ addu $a2, $t7, $t8 -/* 07A4A0 800798A0 8C843DB8 */ lw $a0, %lo(D_80183DB8)($a0) # 0x3db8($a0) -/* 07A4A4 800798A4 AFA60018 */ sw $a2, 0x18($sp) -/* 07A4A8 800798A8 AFA70020 */ sw $a3, 0x20($sp) -/* 07A4AC 800798AC 0C01C8D5 */ jal func_80072354 -/* 07A4B0 800798B0 24050001 */ li $a1, 1 -/* 07A4B4 800798B4 1040001D */ beqz $v0, .L8007992C -/* 07A4B8 800798B8 8FA60018 */ lw $a2, 0x18($sp) -/* 07A4BC 800798BC 94C4011A */ lhu $a0, 0x11a($a2) -/* 07A4C0 800798C0 0C0AAF7D */ jal func_802ABDF4 -/* 07A4C4 800798C4 AFA60018 */ sw $a2, 0x18($sp) -/* 07A4C8 800798C8 10400008 */ beqz $v0, .L800798EC -/* 07A4CC 800798CC 8FA60018 */ lw $a2, 0x18($sp) -/* 07A4D0 800798D0 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 07A4D4 800798D4 44812000 */ mtc1 $at, $f4 -/* 07A4D8 800798D8 C4C60124 */ lwc1 $f6, 0x124($a2) -/* 07A4DC 800798DC 4604303E */ c.le.s $f6, $f4 -/* 07A4E0 800798E0 00000000 */ nop -/* 07A4E4 800798E4 4501000D */ bc1t .L8007991C -/* 07A4E8 800798E8 00000000 */ nop -.L800798EC: -/* 07A4EC 800798EC 84D900CA */ lh $t9, 0xca($a2) -/* 07A4F0 800798F0 33280001 */ andi $t0, $t9, 1 -/* 07A4F4 800798F4 15000009 */ bnez $t0, .L8007991C -/* 07A4F8 800798F8 00000000 */ nop -/* 07A4FC 800798FC 94C900F8 */ lhu $t1, 0xf8($a2) -/* 07A500 80079900 240100FD */ li $at, 253 -/* 07A504 80079904 5521000A */ bnel $t1, $at, .L80079930 -/* 07A508 80079908 8FBF0014 */ lw $ra, 0x14($sp) -/* 07A50C 8007990C 8CCA00BC */ lw $t2, 0xbc($a2) -/* 07A510 80079910 314B0008 */ andi $t3, $t2, 8 -/* 07A514 80079914 55600006 */ bnel $t3, $zero, .L80079930 -/* 07A518 80079918 8FBF0014 */ lw $ra, 0x14($sp) -.L8007991C: -/* 07A51C 8007991C 0C0241DE */ jal func_80090778 -/* 07A520 80079920 00C02025 */ move $a0, $a2 -/* 07A524 80079924 0C01E5EB */ jal func_800797AC -/* 07A528 80079928 8FA40020 */ lw $a0, 0x20($sp) -.L8007992C: -/* 07A52C 8007992C 8FBF0014 */ lw $ra, 0x14($sp) -.L80079930: -/* 07A530 80079930 27BD0020 */ addiu $sp, $sp, 0x20 -/* 07A534 80079934 03E00008 */ jr $ra -/* 07A538 80079938 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007ABFC.s b/asm/non_matchings/code_80071F00/func_8007ABFC.s deleted file mode 100644 index f55e72000..000000000 --- a/asm/non_matchings/code_80071F00/func_8007ABFC.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_8007ABFC -/* 07B7FC 8007ABFC 00047140 */ sll $t6, $a0, 5 -/* 07B800 8007AC00 01C47021 */ addu $t6, $t6, $a0 -/* 07B804 8007AC04 3C0F8019 */ lui $t7, %hi(D_8018CA70) # $t7, 0x8019 -/* 07B808 8007AC08 25EFCA70 */ addiu $t7, %lo(D_8018CA70) # addiu $t7, $t7, -0x3590 -/* 07B80C 8007AC0C 000E7080 */ sll $t6, $t6, 2 -/* 07B810 8007AC10 01CF1821 */ addu $v1, $t6, $t7 -/* 07B814 8007AC14 80780070 */ lb $t8, 0x70($v1) -/* 07B818 8007AC18 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 07B81C 8007AC1C AFBF0014 */ sw $ra, 0x14($sp) -/* 07B820 8007AC20 AFA50024 */ sw $a1, 0x24($sp) -/* 07B824 8007AC24 17000019 */ bnez $t8, .L8007AC8C -/* 07B828 8007AC28 00803025 */ move $a2, $a0 -/* 07B82C 8007AC2C 0004C880 */ sll $t9, $a0, 2 -/* 07B830 8007AC30 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId) # 0x8018 -/* 07B834 8007AC34 00992021 */ addu $a0, $a0, $t9 -/* 07B838 8007AC38 8C843E88 */ lw $a0, %lo(gItemWindowObjectByPlayerId)($a0) # 0x3e88($a0) -/* 07B83C 8007AC3C 24050004 */ li $a1, 4 -/* 07B840 8007AC40 AFA30018 */ sw $v1, 0x18($sp) -/* 07B844 8007AC44 AFA60020 */ sw $a2, 0x20($sp) -/* 07B848 8007AC48 0C01C8D5 */ jal func_80072354 -/* 07B84C 8007AC4C AFA4001C */ sw $a0, 0x1c($sp) -/* 07B850 8007AC50 8FA30018 */ lw $v1, 0x18($sp) -/* 07B854 8007AC54 10400009 */ beqz $v0, .L8007AC7C -/* 07B858 8007AC58 8FA4001C */ lw $a0, 0x1c($sp) -/* 07B85C 8007AC5C 00002825 */ move $a1, $zero -/* 07B860 8007AC60 0C01C8E9 */ jal func_800723A4 -/* 07B864 8007AC64 AFA30018 */ sw $v1, 0x18($sp) -/* 07B868 8007AC68 8FA20024 */ lw $v0, 0x24($sp) -/* 07B86C 8007AC6C 8FA30018 */ lw $v1, 0x18($sp) -/* 07B870 8007AC70 50400003 */ beql $v0, $zero, .L8007AC80 -/* 07B874 8007AC74 3C051900 */ lui $a1, 0x1900 -/* 07B878 8007AC78 A0620076 */ sb $v0, 0x76($v1) -.L8007AC7C: -/* 07B87C 8007AC7C 3C051900 */ lui $a1, (0x19008406 >> 16) # lui $a1, 0x1900 -.L8007AC80: -/* 07B880 8007AC80 34A58406 */ ori $a1, (0x19008406 & 0xFFFF) # ori $a1, $a1, 0x8406 -/* 07B884 8007AC84 0C032418 */ jal func_800C9060 -/* 07B888 8007AC88 93A40023 */ lbu $a0, 0x23($sp) -.L8007AC8C: -/* 07B88C 8007AC8C 8FBF0014 */ lw $ra, 0x14($sp) -/* 07B890 8007AC90 27BD0020 */ addiu $sp, $sp, 0x20 -/* 07B894 8007AC94 03E00008 */ jr $ra -/* 07B898 8007AC98 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007AC9C.s b/asm/non_matchings/code_80071F00/func_8007AC9C.s deleted file mode 100644 index 3cbdbbea2..000000000 --- a/asm/non_matchings/code_80071F00/func_8007AC9C.s +++ /dev/null @@ -1,71 +0,0 @@ -glabel func_8007AC9C -/* 07B89C 8007AC9C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 07B8A0 8007ACA0 AFB00014 */ sw $s0, 0x14($sp) -/* 07B8A4 8007ACA4 3C108018 */ lui $s0, %hi(gItemWindowObjectByPlayerId) # 0x8018 -/* 07B8A8 8007ACA8 0004C080 */ sll $t8, $a0, 2 -/* 07B8AC 8007ACAC 02188021 */ addu $s0, $s0, $t8 -/* 07B8B0 8007ACB0 8E103E88 */ lw $s0, %lo(gItemWindowObjectByPlayerId)($s0) # 0x3e88($s0) -/* 07B8B4 8007ACB4 000470C0 */ sll $t6, $a0, 3 -/* 07B8B8 8007ACB8 01C47023 */ subu $t6, $t6, $a0 -/* 07B8BC 8007ACBC 0010C8C0 */ sll $t9, $s0, 3 -/* 07B8C0 8007ACC0 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 -/* 07B8C4 8007ACC4 0330C823 */ subu $t9, $t9, $s0 -/* 07B8C8 8007ACC8 AFB10018 */ sw $s1, 0x18($sp) -/* 07B8CC 8007ACCC 000E7100 */ sll $t6, $t6, 4 -/* 07B8D0 8007ACD0 0019C940 */ sll $t9, $t9, 5 -/* 07B8D4 8007ACD4 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 -/* 07B8D8 8007ACD8 01C47023 */ subu $t6, $t6, $a0 -/* 07B8DC 8007ACDC 03288821 */ addu $s1, $t9, $t0 -/* 07B8E0 8007ACE0 862900A4 */ lh $t1, 0xa4($s1) -/* 07B8E4 8007ACE4 000E7080 */ sll $t6, $t6, 2 -/* 07B8E8 8007ACE8 3C0F800E */ lui $t7, %hi(gPlayerOne) # $t7, 0x800e -/* 07B8EC 8007ACEC 8DEFC4DC */ lw $t7, %lo(gPlayerOne)($t7) -/* 07B8F0 8007ACF0 01C47023 */ subu $t6, $t6, $a0 -/* 07B8F4 8007ACF4 000E70C0 */ sll $t6, $t6, 3 -/* 07B8F8 8007ACF8 2401000F */ li $at, 15 -/* 07B8FC 8007ACFC AFBF001C */ sw $ra, 0x1c($sp) -/* 07B900 8007AD00 1521001F */ bne $t1, $at, .L8007AD80 -/* 07B904 8007AD04 01CF1021 */ addu $v0, $t6, $t7 -/* 07B908 8007AD08 02002025 */ move $a0, $s0 -/* 07B90C 8007AD0C 24050002 */ li $a1, 2 -/* 07B910 8007AD10 0C01C8D5 */ jal func_80072354 -/* 07B914 8007AD14 AFA20020 */ sw $v0, 0x20($sp) -/* 07B918 8007AD18 10400008 */ beqz $v0, .L8007AD3C -/* 07B91C 8007AD1C 02002025 */ move $a0, $s0 -/* 07B920 8007AD20 0C01C8A9 */ jal func_800722A4 -/* 07B924 8007AD24 24050002 */ li $a1, 2 -/* 07B928 8007AD28 240A0258 */ li $t2, 600 -/* 07B92C 8007AD2C A62A0098 */ sh $t2, 0x98($s1) -/* 07B930 8007AD30 02002025 */ move $a0, $s0 -/* 07B934 8007AD34 0C01C9B3 */ jal func_800726CC -/* 07B938 8007AD38 24050032 */ li $a1, 50 -.L8007AD3C: -/* 07B93C 8007AD3C 962B0098 */ lhu $t3, 0x98($s1) -/* 07B940 8007AD40 02002025 */ move $a0, $s0 -/* 07B944 8007AD44 55600014 */ bnel $t3, $zero, .L8007AD98 -/* 07B948 8007AD48 8FBF001C */ lw $ra, 0x1c($sp) -/* 07B94C 8007AD4C 0C01C8B3 */ jal func_800722CC -/* 07B950 8007AD50 24050002 */ li $a1, 2 -/* 07B954 8007AD54 8FAC0020 */ lw $t4, 0x20($sp) -/* 07B958 8007AD58 02002025 */ move $a0, $s0 -/* 07B95C 8007AD5C 00002825 */ move $a1, $zero -/* 07B960 8007AD60 A5800010 */ sh $zero, 0x10($t4) -/* 07B964 8007AD64 0C01C8E2 */ jal func_80072388 -/* 07B968 8007AD68 A62000A4 */ sh $zero, 0xa4($s1) -/* 07B96C 8007AD6C 02002025 */ move $a0, $s0 -/* 07B970 8007AD70 0C01C9B3 */ jal func_800726CC -/* 07B974 8007AD74 24050009 */ li $a1, 9 -/* 07B978 8007AD78 10000007 */ b .L8007AD98 -/* 07B97C 8007AD7C 8FBF001C */ lw $ra, 0x1c($sp) -.L8007AD80: -/* 07B980 8007AD80 A4400010 */ sh $zero, 0x10($v0) -/* 07B984 8007AD84 A62000A4 */ sh $zero, 0xa4($s1) -/* 07B988 8007AD88 02002025 */ move $a0, $s0 -/* 07B98C 8007AD8C 0C01C8E2 */ jal func_80072388 -/* 07B990 8007AD90 00002825 */ move $a1, $zero -/* 07B994 8007AD94 8FBF001C */ lw $ra, 0x1c($sp) -.L8007AD98: -/* 07B998 8007AD98 8FB00014 */ lw $s0, 0x14($sp) -/* 07B99C 8007AD9C 8FB10018 */ lw $s1, 0x18($sp) -/* 07B9A0 8007ADA0 03E00008 */ jr $ra -/* 07B9A4 8007ADA4 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80071F00/func_8007F75C.s b/asm/non_matchings/code_80071F00/func_8007F75C.s deleted file mode 100644 index f13edcc56..000000000 --- a/asm/non_matchings/code_80071F00/func_8007F75C.s +++ /dev/null @@ -1,104 +0,0 @@ -glabel func_8007F75C -/* 08035C 8007F75C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 080360 8007F760 00047040 */ sll $t6, $a0, 1 -/* 080364 8007F764 3C028016 */ lui $v0, %hi(gNearestWaypointByPlayerId) # 0x8016 -/* 080368 8007F768 004E1021 */ addu $v0, $v0, $t6 -/* 08036C 8007F76C 94424438 */ lhu $v0, %lo(gNearestWaypointByPlayerId)($v0) # 0x4438($v0) -/* 080370 8007F770 AFB6002C */ sw $s6, 0x2c($sp) -/* 080374 8007F774 AFB50028 */ sw $s5, 0x28($sp) -/* 080378 8007F778 284100AA */ slti $at, $v0, 0xaa -/* 08037C 8007F77C 0080A825 */ move $s5, $a0 -/* 080380 8007F780 AFBF0034 */ sw $ra, 0x34($sp) -/* 080384 8007F784 AFB70030 */ sw $s7, 0x30($sp) -/* 080388 8007F788 AFB40024 */ sw $s4, 0x24($sp) -/* 08038C 8007F78C AFB30020 */ sw $s3, 0x20($sp) -/* 080390 8007F790 AFB2001C */ sw $s2, 0x1c($sp) -/* 080394 8007F794 AFB10018 */ sw $s1, 0x18($sp) -/* 080398 8007F798 AFB00014 */ sw $s0, 0x14($sp) -/* 08039C 8007F79C 14200024 */ bnez $at, .L8007F830 -/* 0803A0 8007F7A0 0000B025 */ move $s6, $zero -/* 0803A4 8007F7A4 284100B5 */ slti $at, $v0, 0xb5 -/* 0803A8 8007F7A8 50200022 */ beql $at, $zero, .L8007F834 -/* 0803AC 8007F7AC 284100D7 */ slti $at, $v0, 0xd7 -/* 0803B0 8007F7B0 0C0ADF8D */ jal random_int -/* 0803B4 8007F7B4 24040032 */ li $a0, 50 -/* 0803B8 8007F7B8 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 0803BC 8007F7BC 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 0803C0 8007F7C0 24570032 */ addiu $s7, $v0, 0x32 -/* 0803C4 8007F7C4 00008025 */ move $s0, $zero -/* 0803C8 8007F7C8 18600037 */ blez $v1, .L8007F8A8 -/* 0803CC 8007F7CC 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018 -/* 0803D0 8007F7D0 3C138016 */ lui $s3, %hi(D_80165C18) # $s3, 0x8016 -/* 0803D4 8007F7D4 26735C18 */ addiu $s3, %lo(D_80165C18) # addiu $s3, $s3, 0x5c18 -/* 0803D8 8007F7D8 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 -/* 0803DC 8007F7DC 241400E0 */ li $s4, 224 -/* 0803E0 8007F7E0 24120003 */ li $s2, 3 -.L8007F7E4: -/* 0803E4 8007F7E4 8E240000 */ lw $a0, ($s1) -/* 0803E8 8007F7E8 02A02825 */ move $a1, $s5 -/* 0803EC 8007F7EC 02E03025 */ move $a2, $s7 -/* 0803F0 8007F7F0 00940019 */ multu $a0, $s4 -/* 0803F4 8007F7F4 00007812 */ mflo $t7 -/* 0803F8 8007F7F8 026FC021 */ addu $t8, $s3, $t7 -/* 0803FC 8007F7FC 931900D5 */ lbu $t9, 0xd5($t8) -/* 080400 8007F800 56590006 */ bnel $s2, $t9, .L8007F81C -/* 080404 8007F804 26100001 */ addiu $s0, $s0, 1 -/* 080408 8007F808 0C01FD98 */ jal func_8007F660 -/* 08040C 8007F80C 24160001 */ li $s6, 1 -/* 080410 8007F810 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 080414 8007F814 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 080418 8007F818 26100001 */ addiu $s0, $s0, 1 -.L8007F81C: -/* 08041C 8007F81C 0203082A */ slt $at, $s0, $v1 -/* 080420 8007F820 1420FFF0 */ bnez $at, .L8007F7E4 -/* 080424 8007F824 26310004 */ addiu $s1, $s1, 4 -/* 080428 8007F828 10000020 */ b .L8007F8AC -/* 08042C 8007F82C 8FBF0034 */ lw $ra, 0x34($sp) -.L8007F830: -/* 080430 8007F830 284100D7 */ slti $at, $v0, 0xd7 -.L8007F834: -/* 080434 8007F834 1420001C */ bnez $at, .L8007F8A8 -/* 080438 8007F838 284100E2 */ slti $at, $v0, 0xe2 -/* 08043C 8007F83C 1020001A */ beqz $at, .L8007F8A8 -/* 080440 8007F840 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 080444 8007F844 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 080448 8007F848 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018 -/* 08044C 8007F84C 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 -/* 080450 8007F850 18600015 */ blez $v1, .L8007F8A8 -/* 080454 8007F854 00008025 */ move $s0, $zero -/* 080458 8007F858 3C138016 */ lui $s3, %hi(D_80165C18) # $s3, 0x8016 -/* 08045C 8007F85C 26735C18 */ addiu $s3, %lo(D_80165C18) # addiu $s3, $s3, 0x5c18 -/* 080460 8007F860 241400E0 */ li $s4, 224 -/* 080464 8007F864 24120003 */ li $s2, 3 -.L8007F868: -/* 080468 8007F868 8E240000 */ lw $a0, ($s1) -/* 08046C 8007F86C 02A02825 */ move $a1, $s5 -/* 080470 8007F870 00940019 */ multu $a0, $s4 -/* 080474 8007F874 00004012 */ mflo $t0 -/* 080478 8007F878 02684821 */ addu $t1, $s3, $t0 -/* 08047C 8007F87C 912A00D5 */ lbu $t2, 0xd5($t1) -/* 080480 8007F880 564A0006 */ bnel $s2, $t2, .L8007F89C -/* 080484 8007F884 26100001 */ addiu $s0, $s0, 1 -/* 080488 8007F888 0C01FDB1 */ jal func_8007F6C4 -/* 08048C 8007F88C 24160001 */ li $s6, 1 -/* 080490 8007F890 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 080494 8007F894 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 080498 8007F898 26100001 */ addiu $s0, $s0, 1 -.L8007F89C: -/* 08049C 8007F89C 0203082A */ slt $at, $s0, $v1 -/* 0804A0 8007F8A0 1420FFF1 */ bnez $at, .L8007F868 -/* 0804A4 8007F8A4 26310004 */ addiu $s1, $s1, 4 -.L8007F8A8: -/* 0804A8 8007F8A8 8FBF0034 */ lw $ra, 0x34($sp) -.L8007F8AC: -/* 0804AC 8007F8AC 02C01025 */ move $v0, $s6 -/* 0804B0 8007F8B0 8FB6002C */ lw $s6, 0x2c($sp) -/* 0804B4 8007F8B4 8FB00014 */ lw $s0, 0x14($sp) -/* 0804B8 8007F8B8 8FB10018 */ lw $s1, 0x18($sp) -/* 0804BC 8007F8BC 8FB2001C */ lw $s2, 0x1c($sp) -/* 0804C0 8007F8C0 8FB30020 */ lw $s3, 0x20($sp) -/* 0804C4 8007F8C4 8FB40024 */ lw $s4, 0x24($sp) -/* 0804C8 8007F8C8 8FB50028 */ lw $s5, 0x28($sp) -/* 0804CC 8007F8CC 8FB70030 */ lw $s7, 0x30($sp) -/* 0804D0 8007F8D0 03E00008 */ jr $ra -/* 0804D4 8007F8D4 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80071F00/func_8007F8D8.s b/asm/non_matchings/code_80071F00/func_8007F8D8.s deleted file mode 100644 index 71163c1a7..000000000 --- a/asm/non_matchings/code_80071F00/func_8007F8D8.s +++ /dev/null @@ -1,85 +0,0 @@ -glabel func_8007F8D8 -/* 0804D8 8007F8D8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0804DC 8007F8DC 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 0804E0 8007F8E0 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 0804E4 8007F8E4 AFB30020 */ sw $s3, 0x20($sp) -/* 0804E8 8007F8E8 AFB40024 */ sw $s4, 0x24($sp) -/* 0804EC 8007F8EC AFB10018 */ sw $s1, 0x18($sp) -/* 0804F0 8007F8F0 3C13800E */ lui $s3, %hi(gPlayerOne) # $s3, 0x800e -/* 0804F4 8007F8F4 AFBF0034 */ sw $ra, 0x34($sp) -/* 0804F8 8007F8F8 AFB70030 */ sw $s7, 0x30($sp) -/* 0804FC 8007F8FC AFB6002C */ sw $s6, 0x2c($sp) -/* 080500 8007F900 AFB50028 */ sw $s5, 0x28($sp) -/* 080504 8007F904 AFB2001C */ sw $s2, 0x1c($sp) -/* 080508 8007F908 AFB00014 */ sw $s0, 0x14($sp) -/* 08050C 8007F90C 8E73C4DC */ lw $s3, %lo(gPlayerOne)($s3) -/* 080510 8007F910 24140001 */ li $s4, 1 -/* 080514 8007F914 18600022 */ blez $v1, .L8007F9A0 -/* 080518 8007F918 00008825 */ move $s1, $zero -/* 08051C 8007F91C 3C128018 */ lui $s2, %hi(D_80183EA0) # $s2, 0x8018 -/* 080520 8007F920 3C168016 */ lui $s6, %hi(D_80165C18) # $s6, 0x8016 -/* 080524 8007F924 26D65C18 */ addiu $s6, %lo(D_80165C18) # addiu $s6, $s6, 0x5c18 -/* 080528 8007F928 26523EA0 */ addiu $s2, %lo(D_80183EA0) # addiu $s2, $s2, 0x3ea0 -/* 08052C 8007F92C 241700E0 */ li $s7, 224 -/* 080530 8007F930 24150003 */ li $s5, 3 -.L8007F934: -/* 080534 8007F934 8E440000 */ lw $a0, ($s2) -/* 080538 8007F938 00970019 */ multu $a0, $s7 -/* 08053C 8007F93C 00007012 */ mflo $t6 -/* 080540 8007F940 02CE1021 */ addu $v0, $s6, $t6 -/* 080544 8007F944 904F00D5 */ lbu $t7, 0xd5($v0) -/* 080548 8007F948 56AF0012 */ bnel $s5, $t7, .L8007F994 -/* 08054C 8007F94C 26310001 */ addiu $s1, $s1, 1 -/* 080550 8007F950 845800A6 */ lh $t8, 0xa6($v0) -/* 080554 8007F954 00008025 */ move $s0, $zero -/* 080558 8007F958 2B010002 */ slti $at, $t8, 2 -/* 08055C 8007F95C 14200006 */ bnez $at, .L8007F978 -/* 080560 8007F960 00000000 */ nop -/* 080564 8007F964 0C01C8D5 */ jal func_80072354 -/* 080568 8007F968 24050008 */ li $a1, 8 -/* 08056C 8007F96C 10400002 */ beqz $v0, .L8007F978 -/* 080570 8007F970 00000000 */ nop -/* 080574 8007F974 24100001 */ li $s0, 1 -.L8007F978: -/* 080578 8007F978 02900019 */ multu $s4, $s0 -/* 08057C 8007F97C 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016 -/* 080580 8007F980 84635750 */ lh $v1, %lo(D_80165750)($v1) -/* 080584 8007F984 0000A012 */ mflo $s4 -/* 080588 8007F988 00000000 */ nop -/* 08058C 8007F98C 00000000 */ nop -/* 080590 8007F990 26310001 */ addiu $s1, $s1, 1 -.L8007F994: -/* 080594 8007F994 0223082A */ slt $at, $s1, $v1 -/* 080598 8007F998 1420FFE6 */ bnez $at, .L8007F934 -/* 08059C 8007F99C 26520004 */ addiu $s2, $s2, 4 -.L8007F9A0: -/* 0805A0 8007F9A0 1280000E */ beqz $s4, .L8007F9DC -/* 0805A4 8007F9A4 00008025 */ move $s0, $zero -/* 0805A8 8007F9A8 24110004 */ li $s1, 4 -.L8007F9AC: -/* 0805AC 8007F9AC 96620000 */ lhu $v0, ($s3) -/* 0805B0 8007F9B0 30598000 */ andi $t9, $v0, 0x8000 -/* 0805B4 8007F9B4 13200006 */ beqz $t9, .L8007F9D0 -/* 0805B8 8007F9B8 30481000 */ andi $t0, $v0, 0x1000 -/* 0805BC 8007F9BC 55000005 */ bnel $t0, $zero, .L8007F9D4 -/* 0805C0 8007F9C0 26100001 */ addiu $s0, $s0, 1 -/* 0805C4 8007F9C4 0C01FDD7 */ jal func_8007F75C -/* 0805C8 8007F9C8 02002025 */ move $a0, $s0 -/* 0805CC 8007F9CC 14400003 */ bnez $v0, .L8007F9DC -.L8007F9D0: -/* 0805D0 8007F9D0 26100001 */ addiu $s0, $s0, 1 -.L8007F9D4: -/* 0805D4 8007F9D4 1611FFF5 */ bne $s0, $s1, .L8007F9AC -/* 0805D8 8007F9D8 26730DD8 */ addiu $s3, $s3, 0xdd8 -.L8007F9DC: -/* 0805DC 8007F9DC 8FBF0034 */ lw $ra, 0x34($sp) -/* 0805E0 8007F9E0 8FB00014 */ lw $s0, 0x14($sp) -/* 0805E4 8007F9E4 8FB10018 */ lw $s1, 0x18($sp) -/* 0805E8 8007F9E8 8FB2001C */ lw $s2, 0x1c($sp) -/* 0805EC 8007F9EC 8FB30020 */ lw $s3, 0x20($sp) -/* 0805F0 8007F9F0 8FB40024 */ lw $s4, 0x24($sp) -/* 0805F4 8007F9F4 8FB50028 */ lw $s5, 0x28($sp) -/* 0805F8 8007F9F8 8FB6002C */ lw $s6, 0x2c($sp) -/* 0805FC 8007F9FC 8FB70030 */ lw $s7, 0x30($sp) -/* 080600 8007FA00 03E00008 */ jr $ra -/* 080604 8007FA04 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/include/common_structs.h b/include/common_structs.h index 8637e23e4..25fc7e2a2 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -510,7 +510,8 @@ typedef struct { /* 0x73 */ s8 blinkState; /* 0x74 */ s8 unk_74; /* 0x75 */ s8 unk_75; - /* 0x76 */ s16 itemOverride; // Something related to item generation. If non-zero, it determines the item you get + /* 0x76 */ s8 itemOverride; // Something related to item generation. If non-zero, it determines the item you get + /* 0x77 */ s8 unk_77; // 0x78 to 0x7F appear to be some type of "state" trackers for the lap and timer text during a race start // When a race starts those texts (and their afterimages) slide in and "bounce" a bit. These states control the bouncing (somehow) /* 0x78 */ s8 unk_78; diff --git a/include/objects.h b/include/objects.h index b34189f06..67239d4f9 100644 --- a/include/objects.h +++ b/include/objects.h @@ -34,7 +34,7 @@ typedef struct /* 0x7C */ s32 unk_07C; /* 0x80 */ s32 unk_080; /* 0x84 */ s16 unk_084[0xA]; - /* 0x98 */ s16 unk_098; + /* 0x98 */ u16 unk_098; /* 0x9A */ s16 unk_09A; /* 0x9C */ s16 unk_09C; /* 0x9E */ s16 unk_09E; @@ -80,12 +80,16 @@ typedef struct // This is the object list extern struct_80165C18_entry D_80165C18[]; -// This is another list of indices in D_80165C18. +// This are other lists of indices in D_80165C18. +extern s32 D_80183DB8[]; extern s32 D_80183DD8[]; // Appears to be a list of object list indices for the Item Window part of the HUD extern s32 gItemWindowObjectByPlayerId[]; +// Used for loop bounds when accessing D_80183EA0 +extern s16 D_80165750; + /** * D_80183EA0, D_80183F28, D_8018BFA8, and D_8018C030 are all lists of indices in D_80165C18. * func_80070190 initializes them in such a way that the indicies in each list are not adjacent. diff --git a/src/code_80004740.c b/src/code_80004740.c index 1af9f3f5a..e1253219d 100644 --- a/src/code_80004740.c +++ b/src/code_80004740.c @@ -267,12 +267,6 @@ s16 func_80004DFC(u32 arg0, u32 arg1, s16 arg2, s16 arg3) { GLOBAL_ASM("asm/non_matchings/code_80004740/func_80004DFC.s") #endif -struct stru_80004EAC { - s32 unk0; - s32 unk4; - s16 unk8; -}; - s16 func_80004EAC(void *addr, s16 offset) { uintptr_t *item = segmented_to_virtual(addr); struct stru_80004EAC *temp = segmented_to_virtual(item[offset]); diff --git a/src/code_80004740.h b/src/code_80004740.h index b83804f29..1f5e2290f 100644 --- a/src/code_80004740.h +++ b/src/code_80004740.h @@ -3,9 +3,16 @@ #include "common_structs.h" +struct stru_80004EAC { + s32 unk0; + s32 unk4; + s16 unk8; +}; + /* Function Prototypes */ void func_80004740(Mtx *dest, Mat4 src); void func_800048D8(Mat4 dest, Vec3f b, Vec3s c); +s16 func_80004EAC(void*, s16); #endif \ No newline at end of file diff --git a/src/code_80027D00.c b/src/code_80027D00.c index 5037fbce3..c6285bde0 100644 --- a/src/code_80027D00.c +++ b/src/code_80027D00.c @@ -1218,31 +1218,20 @@ void func_8002A704(Player *player, s8 arg1) { player->boostTimer = 0x0050; } -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -? func_800C9250(s32, s8, s32); /* extern */ - void func_8002A79C(Player *player, s8 arg1) { - s32 temp_v0; - s32 temp_v1; - u16 temp_v0_2; - - temp_v0 = player->unk_0BC; - temp_v1 = temp_v0 & 0x100; - if ((temp_v1 != 0x100) && ((temp_v0 & 0x10) != 0x10) && (player->unk_22A >= 2)) { - player->unk_0BC = temp_v0 | 0x100; + if (((player->unk_0BC & 0x100) != 0x100) && ((player->unk_0BC & 0x10) != 0x10) && (player->unk_22A >= 2)) { + player->unk_0BC |= 0x100; player->unk_23A = 0; player->unk_22A = 0; player->unk_228 = 0; if (D_8015F890 != 1) { - temp_v0_2 = player->unk_000; - if ((temp_v0_2 & 0x4000) && !(temp_v0_2 & 0x100)) { - func_800C9250(arg1 & 0xFF, arg1, 0x100); + if ((player->unk_000 & 0x4000) && !(player->unk_000 & 0x100)) { + func_800C9250(arg1); } } else if (player == gPlayerOne) { - func_800C9250(arg1 & 0xFF, arg1, 0x100); + func_800C9250(arg1); } - } else if (temp_v1 == 0x100) { + } else if ((player->unk_0BC & 0x100) == 0x100) { player->unk_23A += 1; if (player->unk_23A >= 0x1F) { player->unk_23A = 0; @@ -1252,9 +1241,6 @@ void func_8002A79C(Player *player, s8 arg1) { } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002A79C.s") -#endif void func_8002A8A4(Player *player, s8 arg1) { if (((s16) player->unk_0C0 / 182) > 0) { diff --git a/src/code_80027D00.h b/src/code_80027D00.h index b4504d9dd..d34b56f2c 100644 --- a/src/code_80027D00.h +++ b/src/code_80027D00.h @@ -19,6 +19,7 @@ void func_8002934C(Player*, Camera*, s8, s8); void func_8002A194(Player*, f32, f32, f32); void func_8002A5F4(Vec3f, f32, Vec3f, f32, f32); void func_8002A704(Player*, s8); +void func_8002A79C(Player*, s8); void func_8002A8A4(Player*, s8); void func_8002AA50(Player*); void func_8002AAC0(Player*); diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 660d024bd..432d93be4 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -3184,36 +3184,27 @@ void func_80078C70(u32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078C70.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s32 D_80183DB8; - void func_80078F64(void) { - s32 temp_v0; - switch (gScreenModeSelection) { /* irregular */ case SCREEN_MODE_1P: - func_800723A4(D_80183DB8.unk0, 1); - return; + func_800723A4(D_80183DB8[0], 1); + break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - func_800723A4(D_80183DB8.unk0, 1); - func_800723A4(D_80183DB8.unk4, 1); - return; + func_800723A4(D_80183DB8[0], 1); + func_800723A4(D_80183DB8[1], 1); + break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - func_800723A4(D_80183DB8.unk0, 1); - func_800723A4(D_80183DB8.unk4, 1); - return; + func_800723A4(D_80183DB8[0], 1); + func_800723A4(D_80183DB8[1], 1); + break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - func_800723A4(D_80183DB8.unk0, 1); - func_800723A4(D_80183DB8.unk4, 1); - func_800723A4(D_80183DB8.unk8, 1); - func_800723A4(D_80183DB8.unkC, 1); - return; + func_800723A4(D_80183DB8[0], 1); + func_800723A4(D_80183DB8[1], 1); + func_800723A4(D_80183DB8[2], 1); + func_800723A4(D_80183DB8[3], 1); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078F64.s") -#endif void func_80079054(s32 arg0) { func_800723A4(D_80183DB8[arg0], 2); @@ -3502,53 +3493,38 @@ void func_80079700(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079700.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s32 D_80183DB8; -s16 gCurrentCourseId; /* unable to generate initializer */ - void func_800797AC(s32 playerId) { - s32 sp1C; - Player *sp18; - Player *temp_v0; - s32 temp_a2; + s32 objectIndex; + Player *player; - temp_a2 = *(&D_80183DB8 + (playerId * 4)); - temp_v0 = &gPlayerOne[playerId]; - if ((gCurrentCourseId == 0x000C) && (temp_v0->unk_0CA & 1)) { - sp18 = temp_v0; - sp1C = temp_a2; - func_800723A4(temp_a2, 7); - temp_v0->unk_0CA |= 0x10; + objectIndex = D_80183DB8[playerId]; + player = &gPlayerOne[playerId]; + if ((gCurrentCourseId == COURSE_SHERBET_LAND) && (player->unk_0CA & 1)) { + func_800723A4(objectIndex, 7); + player->unk_0CA |= 0x10; } else { - sp1C = temp_a2; - func_800723A4(temp_a2, 3); + func_800723A4(objectIndex, 3); } - func_800722A4(sp1C, 1); + func_800722A4(objectIndex, 1); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800797AC.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_800797AC(s32); /* extern */ -extern s32 D_80183DB8; void func_80079860(s32 playerId) { - Player *sp18; - Player *temp_a2; + s32 objectIndex; + Player *player; - temp_a2 = &gPlayerOne[playerId]; - sp18 = temp_a2; - if ((func_80072354(*(&D_80183DB8 + (playerId * 4)), 1) != 0) && (((sp18 = temp_a2, (func_802ABDF4(temp_a2->unk_110.unk3A) != 0)) && (temp_a2->unk_110.unk44 <= 3.0f)) || (temp_a2->unk_0CA & 1) || ((temp_a2->unk_0F8 == 0x00FD) && !(temp_a2->unk_0BC & 8)))) { - func_80090778(temp_a2); + objectIndex = D_80183DB8[playerId]; + player = &gPlayerOne[playerId]; + if ((func_80072354(objectIndex, 1) != 0) && + ( + ((func_802ABDF4(player->unk_110.unk3A) != 0) && (player->unk_110.unk3C[2] <= 3.0f)) || + (player->unk_0CA & 1) || + ((player->unk_0F8 == 0x00FD) && !(player->unk_0BC & 8)) + ) + ) { + func_80090778(player); func_800797AC(playerId); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079860.s") -#endif void func_8007993C(s32 objectIndex, Player *player) { if (player->unk_0CA & 4) { @@ -4164,74 +4140,49 @@ void func_8007AA44(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AA44.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s32 gItemWindowObjectByPlayerId; +void func_8007ABFC(s32 playerId, s32 arg1) { + s32 itemWindow; -/** - * Give item - */ -void func_8007ABFC(u8 arg0, s32 arg1) { - s32 sp1C; - struct_8018CA70_entry *sp18; - s32 temp_a0; - struct_8018CA70_entry *temp_v1; - - temp_v1 = &D_8018CA70[arg0]; - if (temp_v1->raceCompleteBool == 0) { - temp_a0 = *(&gItemWindowObjectByPlayerId + (arg0 * 4)); - sp18 = temp_v1; - sp1C = temp_a0; - if (func_80072354(temp_a0, 4) != 0) { - sp18 = temp_v1; - func_800723A4(temp_a0, 0); + if (D_8018CA70[playerId].raceCompleteBool == 0) { + itemWindow = gItemWindowObjectByPlayerId[playerId]; + if (func_80072354(itemWindow, 4) != 0) { + func_800723A4(itemWindow, 0); if (arg1 != 0) { - temp_v1->unk76 = (s8) arg1; + D_8018CA70[playerId].itemOverride = arg1; } } - func_800C9060(arg0, 0x19008406U); + func_800C9060(playerId, 0x19008406U); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007ABFC.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s32 gItemWindowObjectByPlayerId; void func_8007AC9C(s32 playerId) { - Player *sp20; - Player *temp_v0; - s32 temp_s0; - struct_80165C18_entry *temp_s1; + s32 stackPadding; + Player *player; + s32 objectIndex; + struct_80165C18_entry *itemWindow; - temp_s0 = *(&gItemWindowObjectByPlayerId + (playerId * 4)); - temp_s1 = &D_80165C18[temp_s0]; - temp_v0 = &gPlayerOne[playerId]; - if (temp_s1->unk_0A4 == 0x000F) { - sp20 = temp_v0; - if (func_80072354(temp_s0, 2) != 0) { - func_800722A4(temp_s0, 2); - temp_s1->unk_098 = 0x0258; - func_800726CC(temp_s0, 0x00000032); + player = &gPlayerOne[playerId]; + objectIndex = gItemWindowObjectByPlayerId[playerId]; + itemWindow = &D_80165C18[objectIndex]; + if (itemWindow->unk_0A4 == 0x000F) { + if (func_80072354(objectIndex, 2) != 0) { + func_800722A4(objectIndex, 2); + itemWindow->unk_098 = 0x0258; + func_800726CC(objectIndex, 0x00000032); } - if ((u16) temp_s1->unk_098 == 0) { - func_800722CC(temp_s0, 2); - sp20->unk_010 = 0; - temp_s1->unk_0A4 = 0; - func_80072388(temp_s0, 0); - func_800726CC(temp_s0, 9); + if (itemWindow->unk_098 == 0) { + func_800722CC(objectIndex, 2); + player->unk_010 = 0; + itemWindow->unk_0A4 = 0; + func_80072388(objectIndex, 0); + func_800726CC(objectIndex, 9); } } else { - temp_v0->unk_010 = 0; - temp_s1->unk_0A4 = 0; - func_80072388(temp_s0, 0); + player->unk_010 = 0; + itemWindow->unk_0A4 = 0; + func_80072388(objectIndex, 0); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AC9C.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -6674,110 +6625,65 @@ void func_8007F6C4(s32 objectIndex, s32 playerId) { D_80165C18[objectIndex].unk_0D1 = playerId; } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s16 D_80165750; - s32 func_8007F75C(s32 playerId) { - s32 *var_s1; - s32 *var_s1_2; - s32 temp_a0; - s32 temp_a0_2; + s32 someIndex; + s32 objectIndex; s32 temp_s7; - s32 var_s0; - s32 var_s0_2; s32 var_s6; - u16 temp_v0; + s32 waypoint; - temp_v0 = gNearestWaypointByPlayerId[playerId]; + waypoint = gNearestWaypointByPlayerId[playerId]; var_s6 = 0; - if (((s32) temp_v0 >= 0xAA) && ((s32) temp_v0 < 0xB5)) { + if ((waypoint >= 0xAA) && (waypoint < 0xB5)) { temp_s7 = random_int(0x0032U) + 0x32; - var_s0 = 0; - if (D_80165750 > 0) { - var_s1 = D_80183EA0; - do { - temp_a0 = *var_s1; - if (D_80165C18[temp_a0].unk_0D5 == 3) { - var_s6 = 1; - func_8007F660(temp_a0, playerId, temp_s7); - } - var_s0 += 1; - var_s1 += 4; - } while (var_s0 < D_80165750); + for (someIndex = 0; someIndex < D_80165750; someIndex++) { + objectIndex = D_80183EA0[someIndex]; + if (D_80165C18[objectIndex].unk_0D5 == 3) { + var_s6 = 1; + func_8007F660(objectIndex, playerId, temp_s7); + } } - } else if (((s32) temp_v0 >= 0xD7) && ((s32) temp_v0 < 0xE2)) { - var_s1_2 = D_80183EA0; - var_s0_2 = 0; - if (D_80165750 > 0) { - do { - temp_a0_2 = *var_s1_2; - if (D_80165C18[temp_a0_2].unk_0D5 == 3) { - var_s6 = 1; - func_8007F6C4(temp_a0_2, playerId); - } - var_s0_2 += 1; - var_s1_2 += 4; - } while (var_s0_2 < D_80165750); + } else if ((waypoint >= 0xD7) && (waypoint < 0xE2)) { + for (someIndex = 0; someIndex < D_80165750; someIndex++) { + objectIndex = D_80183EA0[someIndex]; + if (D_80165C18[objectIndex].unk_0D5 == 3) { + var_s6 = 1; + func_8007F6C4(objectIndex, playerId); + } } } return var_s6; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F75C.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s32 func_8007F75C(s32); /* extern */ -extern s16 D_80165750; void func_8007F8D8(void) { - Player *var_s3; - s32 *var_s2; - s32 temp_a0; + Player *player; + s32 objectIndex; s32 var_s0; - s32 var_s0_2; - s32 var_s1; + s32 someIndex; s32 var_s4; - struct_80165C18_entry *temp_v0; - u16 temp_v0_2; + struct_80165C18_entry *object; - var_s3 = gPlayerOne; + player = gPlayerOne; var_s4 = 1; - var_s1 = 0; - if (D_80165750 > 0) { - var_s2 = D_80183EA0; - do { - temp_a0 = *var_s2; - temp_v0 = &D_80165C18[temp_a0]; - if ((u8) temp_v0->unk_0D5 == 3) { - var_s0 = 0; - if ((temp_v0->unk_0A6 >= 2) && (func_80072354(temp_a0, 8) != 0)) { - var_s0 = 1; - } - var_s4 *= var_s0; + for (someIndex = 0; someIndex < D_80165750; someIndex++){ + objectIndex = D_80183EA0[someIndex]; + object = &D_80165C18[objectIndex]; + if (object->unk_0D5 == 3) { + var_s0 = 0; + if ((object->unk_0A6 >= 2) && (func_80072354(objectIndex, 8) != 0)) { + var_s0 = 1; } - var_s1 += 1; - var_s2 += 4; - } while (var_s1 < D_80165750); + var_s4 *= var_s0; + } } - var_s0_2 = 0; if (var_s4 != 0) { -loop_10: - temp_v0_2 = var_s3->unk_000; - if (!(temp_v0_2 & 0x8000) || (temp_v0_2 & 0x1000) || (func_8007F75C(var_s0_2) == 0)) { - var_s0_2 += 1; - var_s3 += 0xDD8; - if (var_s0_2 != 4) { - goto loop_10; + for (var_s0 = 0; var_s0 < 4; var_s0++, player++){ + if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x1000)) { + if (func_8007F75C(var_s0) != 0) break; } } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F8D8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc diff --git a/src/code_80071F00.h b/src/code_80071F00.h index cf7109f84..a27a9bbce 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -174,6 +174,8 @@ void func_80079054(s32); void func_80079084(s32); void func_800790B4(s32); void func_800790E4(s32); +void func_800797AC(s32); +void func_80079860(s32); void func_8007993C(s32, Player*); void func_80079A5C(s32, Player*); void func_8007A66C(s32, Player*, Camera*); @@ -184,6 +186,7 @@ void func_8007A910(s32); void func_8007A948(s32); void func_8007AA44(s32); void func_8007ABFC(s32, s32); +void func_8007AC9C(s32); u8 gen_random_item(s16, s16); u8 func_8007AF40(s32, s16); u8 func_8007AF78(s32, s16); @@ -218,6 +221,8 @@ void func_8007F280(s32); void func_8007F544(s32); void func_8007F660(s32, s32, s32); void func_8007F6C4(s32, s32); +s32 func_8007F75C(s32); +void func_8007F8D8(); void func_8007FEA4(s32); void func_800806BC(s32); void func_8008078C(s32); @@ -263,7 +268,6 @@ extern s16 D_80165740; extern s8 D_801657B4; extern Vec3su D_8016582C; extern s32 D_80183D5C; -extern s32 D_80183DB8[]; extern s32 D_80183EA8; extern s16 D_8018CFE8; extern f32 D_8018D01C;