From 67fbcac9ecf3768ceeac68aa37602fb27693553e Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Tue, 5 Sep 2023 16:38:40 -0400 Subject: [PATCH] Match func_8006B7E4, func_8006EEE8, func_80071A20 (#395) * Match func_8006B7E4, func_8006EEE8, func_80071A20 * Fix missing extern void call --- .../code_80057C60/func_8006B7E4.s | 39 ----- .../code_8006E9C0/func_8006EEE8.s | 31 ---- .../code_8006E9C0/func_80071A20.s | 137 ------------------ include/functions.h | 2 +- src/code_80057C60.c | 18 +-- src/code_8006E9C0.c | 124 +++++++--------- src/code_8006E9C0.h | 10 ++ 7 files changed, 68 insertions(+), 293 deletions(-) delete mode 100644 asm/non_matchings/code_80057C60/func_8006B7E4.s delete mode 100644 asm/non_matchings/code_8006E9C0/func_8006EEE8.s delete mode 100644 asm/non_matchings/code_8006E9C0/func_80071A20.s diff --git a/asm/non_matchings/code_80057C60/func_8006B7E4.s b/asm/non_matchings/code_80057C60/func_8006B7E4.s deleted file mode 100644 index 2d84c1f2e..000000000 --- a/asm/non_matchings/code_80057C60/func_8006B7E4.s +++ /dev/null @@ -1,39 +0,0 @@ -glabel func_8006B7E4 -/* 06C3E4 8006B7E4 44800000 */ mtc1 $zero, $f0 -/* 06C3E8 8006B7E8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06C3EC 8006B7EC AFA50024 */ sw $a1, 0x24($sp) -/* 06C3F0 8006B7F0 AFBF001C */ sw $ra, 0x1c($sp) -/* 06C3F4 8006B7F4 44050000 */ mfc1 $a1, $f0 -/* 06C3F8 8006B7F8 44060000 */ mfc1 $a2, $f0 -/* 06C3FC 8006B7FC AFA40020 */ sw $a0, 0x20($sp) -/* 06C400 8006B800 83A70027 */ lb $a3, 0x27($sp) -/* 06C404 8006B804 AFA00010 */ sw $zero, 0x10($sp) -/* 06C408 8006B808 0C01A943 */ jal func_8006A50C -/* 06C40C 8006B80C AFA00014 */ sw $zero, 0x14($sp) -/* 06C410 8006B810 240E0001 */ li $t6, 1 -/* 06C414 8006B814 240F1C70 */ li $t7, 7280 -/* 06C418 8006B818 AFAF0014 */ sw $t7, 0x14($sp) -/* 06C41C 8006B81C AFAE0010 */ sw $t6, 0x10($sp) -/* 06C420 8006B820 8FA40020 */ lw $a0, 0x20($sp) -/* 06C424 8006B824 3C053FC0 */ lui $a1, 0x3fc0 -/* 06C428 8006B828 3C064000 */ lui $a2, 0x4000 -/* 06C42C 8006B82C 0C01A943 */ jal func_8006A50C -/* 06C430 8006B830 83A70027 */ lb $a3, 0x27($sp) -/* 06C434 8006B834 24180002 */ li $t8, 2 -/* 06C438 8006B838 2419E390 */ li $t9, -7280 -/* 06C43C 8006B83C AFB90014 */ sw $t9, 0x14($sp) -/* 06C440 8006B840 AFB80010 */ sw $t8, 0x10($sp) -/* 06C444 8006B844 8FA40020 */ lw $a0, 0x20($sp) -/* 06C448 8006B848 3C05BFC0 */ lui $a1, 0xbfc0 -/* 06C44C 8006B84C 3C064000 */ lui $a2, 0x4000 -/* 06C450 8006B850 0C01A943 */ jal func_8006A50C -/* 06C454 8006B854 83A70027 */ lb $a3, 0x27($sp) -/* 06C458 8006B858 83A90027 */ lb $t1, 0x27($sp) -/* 06C45C 8006B85C 8FBF001C */ lw $ra, 0x1c($sp) -/* 06C460 8006B860 3C018019 */ lui $at, %hi(gPlayerBalloonCount) -/* 06C464 8006B864 00095040 */ sll $t2, $t1, 1 -/* 06C468 8006B868 002A0821 */ addu $at, $at, $t2 -/* 06C46C 8006B86C 24080002 */ li $t0, 2 -/* 06C470 8006B870 A428D8C0 */ sh $t0, %lo(gPlayerBalloonCount)($at) -/* 06C474 8006B874 03E00008 */ jr $ra -/* 06C478 8006B878 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code_8006E9C0/func_8006EEE8.s b/asm/non_matchings/code_8006E9C0/func_8006EEE8.s deleted file mode 100644 index 18d8fa125..000000000 --- a/asm/non_matchings/code_8006E9C0/func_8006EEE8.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_8006EEE8 -/* 06FAE8 8006EEE8 00803825 */ move $a3, $a0 -/* 06FAEC 8006EEEC 00074040 */ sll $t0, $a3, 1 -/* 06FAF0 8006EEF0 3C05800E */ lui $a1, %hi(D_800E5520) # 0x800e -/* 06FAF4 8006EEF4 00A82821 */ addu $a1, $a1, $t0 -/* 06FAF8 8006EEF8 00047080 */ sll $t6, $a0, 2 -/* 06FAFC 8006EEFC 84A55520 */ lh $a1, %lo(D_800E5520)($a1) # 0x5520 -/* 06FB00 8006EF00 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06FB04 8006EF04 3C04800E */ lui $a0, %hi(gCourseOutlineTextures) # 0x800e -/* 06FB08 8006EF08 AFBF0014 */ sw $ra, 0x14($sp) -/* 06FB0C 8006EF0C 008E2021 */ addu $a0, $a0, $t6 -/* 06FB10 8006EF10 8C8454D0 */ lw $a0, %lo(gCourseOutlineTextures)($a0) # 0x54d0 -/* 06FB14 8006EF14 AFA8001C */ sw $t0, 0x1c($sp) -/* 06FB18 8006EF18 0C0AA13D */ jal dma_textures -/* 06FB1C 8006EF1C 00A03025 */ move $a2, $a1 -/* 06FB20 8006EF20 8FA8001C */ lw $t0, 0x1c($sp) -/* 06FB24 8006EF24 3C18800E */ lui $t8, %hi(D_800E5548) # $t8, 0x800e -/* 06FB28 8006EF28 3C018019 */ lui $at, %hi(D_8018D240) # $at, 0x8019 -/* 06FB2C 8006EF2C 27185548 */ addiu $t8, %lo(D_800E5548) # addiu $t8, $t8, 0x5548 -/* 06FB30 8006EF30 00087840 */ sll $t7, $t0, 1 -/* 06FB34 8006EF34 AC22D240 */ sw $v0, %lo(D_8018D240)($at) -/* 06FB38 8006EF38 01F81821 */ addu $v1, $t7, $t8 -/* 06FB3C 8006EF3C 84790000 */ lh $t9, ($v1) -/* 06FB40 8006EF40 3C018019 */ lui $at, %hi(D_8018D2B0) # $at, 0x8019 -/* 06FB44 8006EF44 8FBF0014 */ lw $ra, 0x14($sp) -/* 06FB48 8006EF48 A439D2B0 */ sh $t9, %lo(D_8018D2B0)($at) -/* 06FB4C 8006EF4C 84690002 */ lh $t1, 2($v1) -/* 06FB50 8006EF50 3C018019 */ lui $at, %hi(D_8018D2B8) # 0x8019 -/* 06FB54 8006EF54 27BD0020 */ addiu $sp, $sp, 0x20 -/* 06FB58 8006EF58 03E00008 */ jr $ra -/* 06FB5C 8006EF5C A429D2B8 */ sh $t1, %lo(D_8018D2B8)($at) # -0x2d48 diff --git a/asm/non_matchings/code_8006E9C0/func_80071A20.s b/asm/non_matchings/code_8006E9C0/func_80071A20.s deleted file mode 100644 index 22c73a7bc..000000000 --- a/asm/non_matchings/code_8006E9C0/func_80071A20.s +++ /dev/null @@ -1,137 +0,0 @@ -glabel func_80071A20 -/* 072620 80071A20 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 072624 80071A24 AFBF0014 */ sw $ra, 0x14($sp) -/* 072628 80071A28 3C048018 */ lui $a0, %hi(D_80183DA0) # $a0, 0x8018 -/* 07262C 80071A2C 0C01C7C0 */ jal find_unused_obj_index -/* 072630 80071A30 24843DA0 */ addiu $a0, %lo(D_80183DA0) # addiu $a0, $a0, 0x3da0 -/* 072634 80071A34 3C048018 */ lui $a0, %hi(D_80183DB8) # $a0, 0x8018 -/* 072638 80071A38 0C01C7C0 */ jal find_unused_obj_index -/* 07263C 80071A3C 24843DB8 */ addiu $a0, %lo(D_80183DB8) # addiu $a0, $a0, 0x3db8 -/* 072640 80071A40 3C048018 */ lui $a0, %hi(D_80183DBC) # $a0, 0x8018 -/* 072644 80071A44 0C01C7C0 */ jal find_unused_obj_index -/* 072648 80071A48 24843DBC */ addiu $a0, %lo(D_80183DBC) # addiu $a0, $a0, 0x3dbc -/* 07264C 80071A4C 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId) # $a0, 0x8018 -/* 072650 80071A50 0C01C7C0 */ jal find_unused_obj_index -/* 072654 80071A54 24843E88 */ addiu $a0, %lo(gItemWindowObjectByPlayerId) # addiu $a0, $a0, 0x3e88 -/* 072658 80071A58 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId + 4) # $a0, 0x8018 -/* 07265C 80071A5C 0C01C7C0 */ jal find_unused_obj_index -/* 072660 80071A60 24843E8C */ addiu $a0, %lo(gItemWindowObjectByPlayerId + 4) # addiu $a0, $a0, 0x3e8c -/* 072664 80071A64 0C01C064 */ jal func_80070190 -/* 072668 80071A68 00000000 */ nop -/* 07266C 80071A6C 0C01C157 */ jal func_8007055C -/* 072670 80071A70 00000000 */ nop -/* 072674 80071A74 0C01C157 */ jal func_8007055C -/* 072678 80071A78 00000000 */ nop -/* 07267C 80071A7C 0C01C1E0 */ jal func_80070780 -/* 072680 80071A80 00000000 */ nop -/* 072684 80071A84 3C028019 */ lui $v0, %hi(D_8018CA70) # $v0, 0x8019 -/* 072688 80071A88 2442CA70 */ addiu $v0, %lo(D_8018CA70) # addiu $v0, $v0, -0x3590 -/* 07268C 80071A8C 2403FFAD */ li $v1, -83 -/* 072690 80071A90 240400A0 */ li $a0, 160 -/* 072694 80071A94 24050034 */ li $a1, 52 -/* 072698 80071A98 240600EA */ li $a2, 234 -/* 07269C 80071A9C 24070101 */ li $a3, 257 -/* 0726A0 80071AA0 240E0022 */ li $t6, 34 -/* 0726A4 80071AA4 A44E0044 */ sh $t6, 0x44($v0) -/* 0726A8 80071AA8 240F003C */ li $t7, 60 -/* 0726AC 80071AAC 24180062 */ li $t8, 98 -/* 0726B0 80071AB0 24190010 */ li $t9, 16 -/* 0726B4 80071AB4 2408006A */ li $t0, 106 -/* 0726B8 80071AB8 2409008F */ li $t1, 143 -/* 0726BC 80071ABC 240A00B4 */ li $t2, 180 -/* 0726C0 80071AC0 240B00D2 */ li $t3, 210 -/* 0726C4 80071AC4 240C007F */ li $t4, 127 -/* 0726C8 80071AC8 240D00DA */ li $t5, 218 -/* 0726CC 80071ACC A4430042 */ sh $v1, 0x42($v0) -/* 0726D0 80071AD0 A4400046 */ sh $zero, 0x46($v0) -/* 0726D4 80071AD4 A4400048 */ sh $zero, 0x48($v0) -/* 0726D8 80071AD8 A444004A */ sh $a0, 0x4a($v0) -/* 0726DC 80071ADC A44F004C */ sh $t7, 0x4c($v0) -/* 0726E0 80071AE0 A4450062 */ sh $a1, 0x62($v0) -/* 0726E4 80071AE4 A4580064 */ sh $t8, 0x64($v0) -/* 0726E8 80071AE8 A4400066 */ sh $zero, 0x66($v0) -/* 0726EC 80071AEC A4400068 */ sh $zero, 0x68($v0) -/* 0726F0 80071AF0 A446004E */ sh $a2, 0x4e($v0) -/* 0726F4 80071AF4 A4590058 */ sh $t9, 0x58($v0) -/* 0726F8 80071AF8 A447005A */ sh $a3, 0x5a($v0) -/* 0726FC 80071AFC A4480060 */ sh $t0, 0x60($v0) -/* 072700 80071B00 A44300C6 */ sh $v1, 0xc6($v0) -/* 072704 80071B04 A44900C8 */ sh $t1, 0xc8($v0) -/* 072708 80071B08 A44000CA */ sh $zero, 0xca($v0) -/* 07270C 80071B0C A44000CC */ sh $zero, 0xcc($v0) -/* 072710 80071B10 A44400CE */ sh $a0, 0xce($v0) -/* 072714 80071B14 A44A00D0 */ sh $t2, 0xd0($v0) -/* 072718 80071B18 A44500E6 */ sh $a1, 0xe6($v0) -/* 07271C 80071B1C A44B00E8 */ sh $t3, 0xe8($v0) -/* 072720 80071B20 A44000EA */ sh $zero, 0xea($v0) -/* 072724 80071B24 A44000EC */ sh $zero, 0xec($v0) -/* 072728 80071B28 A44600D2 */ sh $a2, 0xd2($v0) -/* 07272C 80071B2C A44C00DC */ sh $t4, 0xdc($v0) -/* 072730 80071B30 A44700DE */ sh $a3, 0xde($v0) -/* 072734 80071B34 A44D00E4 */ sh $t5, 0xe4($v0) -/* 072738 80071B38 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e -/* 07273C 80071B3C 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6) -/* 072740 80071B40 24010003 */ li $at, 3 -/* 072744 80071B44 3C038016 */ lui $v1, %hi(gGPCurrentRaceRankByPlayerId) # $v1, 0x8016 -/* 072748 80071B48 15C10005 */ bne $t6, $at, .L80071B60 -/* 07274C 80071B4C 246343B8 */ addiu $v1, %lo(gGPCurrentRaceRankByPlayerId) # addiu $v1, $v1, 0x43b8 -/* 072750 80071B50 240F005E */ li $t7, 94 -/* 072754 80071B54 241800D0 */ li $t8, 208 -/* 072758 80071B58 A44F0044 */ sh $t7, 0x44($v0) -/* 07275C 80071B5C A45800C8 */ sh $t8, 0xc8($v0) -.L80071B60: -/* 072760 80071B60 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 072764 80071B64 44812000 */ mtc1 $at, $f4 -/* 072768 80071B68 8C790000 */ lw $t9, ($v1) -/* 07276C 80071B6C 8C680004 */ lw $t0, 4($v1) -/* 072770 80071B70 E4440088 */ swc1 $f4, 0x88($v0) -/* 072774 80071B74 C4460088 */ lwc1 $f6, 0x88($v0) -/* 072778 80071B78 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId) # $a0, 0x8018 -/* 07277C 80071B7C A459006A */ sh $t9, 0x6a($v0) -/* 072780 80071B80 A44800EE */ sh $t0, 0xee($v0) -/* 072784 80071B84 E4460004 */ swc1 $f6, 4($v0) -/* 072788 80071B88 0C01BB9F */ jal func_8006EE7C -/* 07278C 80071B8C 8C843E88 */ lw $a0, %lo(gItemWindowObjectByPlayerId)($a0) -/* 072790 80071B90 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId + 4) # $a0, 0x8018 -/* 072794 80071B94 0C01BB9F */ jal func_8006EE7C -/* 072798 80071B98 8C843E8C */ lw $a0, %lo(gItemWindowObjectByPlayerId + 4)($a0) -/* 07279C 80071B9C 2409001E */ li $t1, 30 -/* 0727A0 80071BA0 3C018019 */ lui $at, %hi(D_8018D3C4) # $at, 0x8019 -/* 0727A4 80071BA4 AC29D3C4 */ sw $t1, %lo(D_8018D3C4)($at) -/* 0727A8 80071BA8 3C018019 */ lui $at, %hi(D_8018D3BC) # $at, 0x8019 -/* 0727AC 80071BAC 240A0018 */ li $t2, 24 -/* 0727B0 80071BB0 AC2AD3BC */ sw $t2, %lo(D_8018D3BC)($at) -/* 0727B4 80071BB4 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e -/* 0727B8 80071BB8 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) -/* 0727BC 80071BBC 3C018019 */ lui $at, %hi(D_8018D3C0) # $at, 0x8019 -/* 0727C0 80071BC0 240B0028 */ li $t3, 40 -/* 0727C4 80071BC4 AC2BD3C0 */ sw $t3, %lo(D_8018D3C0)($at) -/* 0727C8 80071BC8 3C018016 */ lui $at, %hi(D_801657A2) # $at, 0x8016 -/* 0727CC 80071BCC 240C0666 */ li $t4, 1638 -/* 0727D0 80071BD0 10400009 */ beqz $v0, .L80071BF8 -/* 0727D4 80071BD4 A42C57A2 */ sh $t4, %lo(D_801657A2)($at) -/* 0727D8 80071BD8 24030002 */ li $v1, 2 -/* 0727DC 80071BDC 1043000A */ beq $v0, $v1, .L80071C08 -/* 0727E0 80071BE0 3C018019 */ lui $at, %hi(D_8018D158) # 0x8019 -/* 0727E4 80071BE4 24010003 */ li $at, 3 -/* 0727E8 80071BE8 10410009 */ beq $v0, $at, .L80071C10 -/* 0727EC 80071BEC 00000000 */ nop -/* 0727F0 80071BF0 1000000A */ b .L80071C1C -/* 0727F4 80071BF4 8FBF0014 */ lw $ra, 0x14($sp) -.L80071BF8: -/* 0727F8 80071BF8 240D0008 */ li $t5, 8 -/* 0727FC 80071BFC 3C018019 */ lui $at, %hi(D_8018D158) # $at, 0x8019 -/* 072800 80071C00 10000005 */ b .L80071C18 -/* 072804 80071C04 AC2DD158 */ sw $t5, %lo(D_8018D158)($at) -.L80071C08: -/* 072808 80071C08 10000003 */ b .L80071C18 -/* 07280C 80071C0C AC23D158 */ sw $v1, %lo(D_8018D158)($at) -.L80071C10: -/* 072810 80071C10 3C018019 */ lui $at, %hi(D_8018D158) # $at, 0x8019 -/* 072814 80071C14 AC23D158 */ sw $v1, %lo(D_8018D158)($at) -.L80071C18: -/* 072818 80071C18 8FBF0014 */ lw $ra, 0x14($sp) -.L80071C1C: -/* 07281C 80071C1C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 072820 80071C20 03E00008 */ jr $ra -/* 072824 80071C24 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 64f49b0fd..3d6820f7c 100644 --- a/include/functions.h +++ b/include/functions.h @@ -10,7 +10,7 @@ void func_80040030(u8* arg0, u8* arg1); void func_8000F2DC(void); void func_8000F628(void); -void func_8006B7E4(Player* player, s32 arg1); +void func_8006B7E4(Player* player, s8 arg1); void func_800267AC(Player* player, s8 arg1, s8 arg2); void func_8005D290(void); diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 43411cd9d..d7595ec3d 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -6190,20 +6190,14 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006AFD0.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8006A50C(Player *, Player *, s8, s32, s32, s32); // extern -extern s16 gPlayerBalloonCount; +extern void func_8006A50C(Player*, f32, f32, s8, s8, s16); -void func_8006B7E4(Player *player, s32 arg1) { - func_8006A50C(NULL, NULL, arg1, 0, 0); - func_8006A50C(player, 0x3FC00000, 0x40000000, arg1, 1, 0x1C70); - func_8006A50C(player, 0xBFC00000, 0x40000000, arg1, 2, -0x1C70); - *(&gPlayerBalloonCount + (arg1 * 2)) = 2; +void func_8006B7E4(Player* player, s8 arg1) { + func_8006A50C(player, 0.0f, 0.0f, arg1, (s8) 0, (s16) 0); + func_8006A50C(player, 1.5f, 2.0f, arg1, (s8) 1, (s16) 0x1C70); + func_8006A50C(player, -1.5f, 2.0f, arg1, (s8) 2, (s16) -0x1C70); + gPlayerBalloonCount[arg1] = 2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006B7E4.s") -#endif void func_8006B87C(UNUSED Player *player, s8 playerIndex) { gPlayerBalloonStatus[playerIndex][0] = BALLOON_STATUS_GONE; diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index c6e282f56..b1ecbf306 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -278,24 +278,13 @@ static s32 gTextureCourseOutlineSkyscraper; /* unable to generate init static s32 gTextureCourseOutlineToadsTurnpike; /* unable to generate initializer */ static s32 gTextureCourseOutlineWarioStadium; /* unable to generate initializer */ static s32 gTextureCourseOutlineYoshiValley; /* unable to generate initializer */ +#endif void func_8006EEE8(s32 courseId) { - s32 sp1C; - s16 *temp_v1; - s16 temp_a1; - s32 temp_t0; - - temp_t0 = courseId * 2; - temp_a1 = D_800E5520[courseId]; - sp1C = temp_t0; - D_8018D240 = dma_textures(gCourseOutlineTextures[courseId], (u32) temp_a1, (u32) temp_a1); - temp_v1 = &D_800E5548[temp_t0]; - D_8018D2B0 = temp_v1->unk0; - D_8018D2B8 = temp_v1->unk2; + D_8018D240 = dma_textures(gCourseOutlineTextures[courseId], D_800E5520[courseId], D_800E5520[courseId]); + D_8018D2B0 = D_800E5548[courseId * 2]; + D_8018D2B8 = D_800E5548[courseId * 2 + 1]; } -#else -GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EEE8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -1938,85 +1927,74 @@ block_7: GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071818.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 -? func_8007055C(); /* extern */ -? func_80070780(); /* extern */ -extern s16 D_801657A2; -extern s32 D_80183DA0; -extern s32 D_80183DBC; -extern s32 D_8018D158; -extern s32 D_8018D3BC; -extern s32 D_8018D3C0; -extern s32 D_8018D3C4; -void func_80071A20(void) { +void func_80071A20() { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); find_unused_obj_index(gItemWindowObjectByPlayerId); - find_unused_obj_index(gItemWindowObjectByPlayerId + 4); + find_unused_obj_index(&gItemWindowObjectByPlayerId[1]); func_80070190(); func_8007055C(); func_8007055C(); func_80070780(); - D_8018CA70->itemBoxY = 0x0022; - D_8018CA70->itemBoxX = -0x0053; - D_8018CA70->slideItemBoxX = 0; - D_8018CA70->slideItemBoxY = 0; - D_8018CA70->unk_4A = 0x00A0; - D_8018CA70->unk_4C = 0x003C; - D_8018CA70->rankX = 0x0034; - D_8018CA70->rankY = 0x0062; - D_8018CA70->slideRankX = 0; - D_8018CA70->slideRankY = 0; - D_8018CA70->timerX = 0x00EA; - D_8018CA70->timerY = 0x0010; - D_8018CA70->lapX = 0x0101; - D_8018CA70->lapY = 0x006A; - D_8018CA70->unkC6 = -0x0053; - D_8018CA70->unkC8 = 0x008F; - D_8018CA70->unkCA = 0; - D_8018CA70->unkCC = 0; - D_8018CA70->unkCE = 0x00A0; - D_8018CA70->unkD0 = 0x00B4; - D_8018CA70->unkE6 = 0x0034; - D_8018CA70->unkE8 = 0x00D2; - D_8018CA70->unkEA = 0; - D_8018CA70->unkEC = 0; - D_8018CA70->unkD2 = 0x00EA; - D_8018CA70->unkDC = 0x007F; - D_8018CA70->unkDE = 0x0101; - D_8018CA70->unkE4 = 0x00DA; + + + D_8018CA70[0].itemBoxY = 0x22; + D_8018CA70[0].itemBoxX = -0x53; + D_8018CA70[0].slideItemBoxX = 0; + D_8018CA70[0].slideItemBoxY = 0; + D_8018CA70[0].unk_4A = 0xA0; + D_8018CA70[0].unk_4C = 0x3C; + D_8018CA70[0].rankX = 0x34; + D_8018CA70[0].rankY = 0x62; + D_8018CA70[0].slideRankX = 0; + D_8018CA70[0].slideRankY = 0; + D_8018CA70[0].timerX = 0xEA; + D_8018CA70[0].timerY = 0x10; + D_8018CA70[0].lapX = 0x101; + D_8018CA70[0].lapY = 0x6A; + D_8018CA70[1].itemBoxX = -0x53; + D_8018CA70[1].itemBoxY = 0x8F; + D_8018CA70[1].slideItemBoxX = 0; + D_8018CA70[1].slideItemBoxY = 0; + D_8018CA70[1].unk_4A = 0xA0; + D_8018CA70[1].unk_4C = 0xB4; + D_8018CA70[1].rankX = 0x34; + D_8018CA70[1].rankY = 0xD2; + D_8018CA70[1].slideRankX = 0; + D_8018CA70[1].slideRankY = 0; + D_8018CA70[1].timerX = 0xEA; + D_8018CA70[1].timerY = 0x7F; + D_8018CA70[1].lapX = 0x101; + D_8018CA70[1].lapY = 0xDA; if (gModeSelection == 3) { - D_8018CA70->itemBoxY = 0x005E; - D_8018CA70->unkC8 = 0x00D0; + D_8018CA70[0].itemBoxY = 0x5E; + D_8018CA70[1].itemBoxY = 0xD0; } - D_8018CA70->unk88 = 0.5f; - D_8018CA70->stagingPosition = (s16) gGPCurrentRaceRankByPlayerId->unk0; - D_8018CA70->unkEE = (s16) gGPCurrentRaceRankByPlayerId->unk4; - D_8018CA70->rankScaling = D_8018CA70->unk88; - func_8006EE7C(*gItemWindowObjectByPlayerId); - func_8006EE7C(*(gItemWindowObjectByPlayerId + 4)); - D_8018D3C4 = 0x0000001E; - D_8018D3BC = 0x00000018; - D_8018D3C0 = 0x00000028; - D_801657A2 = 0x0666; + D_8018CA70[1].rankScaling = 0.5f; + D_8018CA70[0].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[0]; + D_8018CA70[1].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[1]; + D_8018CA70[0].rankScaling = D_8018CA70[1].rankScaling; + func_8006EE7C(gItemWindowObjectByPlayerId[0]); + func_8006EE7C((gItemWindowObjectByPlayerId[1])); + D_8018D3C4 = 0x1E; + D_8018D3BC = 0x18; + D_8018D3C0 = 0x28; + D_801657A2 = 0x666; switch (gModeSelection) { /* irregular */ case 0: D_8018D158 = 8; return; case 2: -block_9: D_8018D158 = 2; return; case 3: - goto block_9; + D_8018D158 = 2; + return; } } -#else -GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071A20.s") -#endif + #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h index 7cd0f957e..cbd3e8313 100644 --- a/src/code_8006E9C0.h +++ b/src/code_8006E9C0.h @@ -25,6 +25,10 @@ void func_80071818(void); void func_80071C28(void); void func_80071A20(void); +extern s16 D_800E5520[]; +extern s16 D_800E5548[]; +extern s32 gCourseOutlineTextures[0x14]; + extern s32 gScreenModeSelection; extern s8 *gTextureLogoMarioKart64; extern s16 D_80165730; @@ -39,6 +43,12 @@ extern intptr_t D_8018D9B0; // I'm not how much I like this "pointer to an array" setup, but if it matches it matches extern u8 (*D_8018D220)[1024]; +extern s32 D_8018D240; +extern s16 D_8018D2B0; +extern s16 D_8018D2B8; +extern s32 D_80183DA0; +extern s32 D_80183DBC; + extern struct_8018CA70_entry D_8018CA70[]; // These are all *technically* hardcoded references to spots in D_8018CA70, but there's something weird // going on match wise in func_8006EA5C that means we have to (for now) leave them as separate variables