From f9c661c5906ef01730c7d66d04bbe067375b1384 Mon Sep 17 00:00:00 2001 From: MegaMech <7255464+MegaMech@users.noreply.github.com> Date: Tue, 31 Dec 2024 18:04:45 -0700 Subject: [PATCH] continued --- asm/non_matchings/menu_items/add_ui_item.s | 4 +- asm/non_matchings/menu_items/func_800A1FB0.s | 76 +- asm/non_matchings/menu_items/func_800AB314.s | 20 +- asm/non_matchings/menu_items/render_menus.s | 20 +- src/menu_items.c | 1362 +++++++++--------- src/menu_items.h | 18 +- src/menus.c | 188 +-- src/menus.h | 6 +- src/render_objects.c | 2 +- src/render_objects.h | 2 +- 10 files changed, 845 insertions(+), 853 deletions(-) diff --git a/asm/non_matchings/menu_items/add_ui_item.s b/asm/non_matchings/menu_items/add_ui_item.s index 07d9d1de3..fa0b5ae62 100644 --- a/asm/non_matchings/menu_items/add_ui_item.s +++ b/asm/non_matchings/menu_items/add_ui_item.s @@ -524,8 +524,8 @@ glabel L8009ECAC glabel L8009ECD4 /* 09F8D4 8009ECD4 0C01BB91 */ jal load_mario_kart_64_logo /* 09F8D8 8009ECD8 00000000 */ nop -/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(gMenuTextureBufferIndex) # $v0, 0x8019 -/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(gMenuTextureBufferIndex) # addiu $v0, $v0, -0x1ef0 +/* 09F8DC 8009ECDC 3C028019 */ lui $v0, %hi(sMenuTextureBufferIndex) # $v0, 0x8019 +/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(sMenuTextureBufferIndex) # addiu $v0, $v0, -0x1ef0 /* 09F8E4 8009ECE4 8C590000 */ lw $t9, ($v0) /* 09F8E8 8009ECE8 3C010001 */ lui $at, 1 /* 09F8EC 8009ECEC 3C040200 */ lui $a0, %hi(seg2_copyright_1996_texture) # $a0, 0x200 diff --git a/asm/non_matchings/menu_items/func_800A1FB0.s b/asm/non_matchings/menu_items/func_800A1FB0.s index 1b70fdf84..d4f1fa44d 100644 --- a/asm/non_matchings/menu_items/func_800A1FB0.s +++ b/asm/non_matchings/menu_items/func_800A1FB0.s @@ -79,8 +79,8 @@ glabel func_800A1FB0 /* 0A2C1C 800A201C 0C02637E */ jal draw_box /* 0A2C20 800A2020 24070140 */ li $a3, 320 /* 0A2C24 800A2024 AE020000 */ sw $v0, ($s0) -/* 0A2C28 800A2028 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 -/* 0A2C2C 800A202C 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2C28 800A2028 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 +/* 0A2C2C 800A202C 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) /* 0A2C30 800A2030 2478FFEB */ addiu $t8, $v1, -0x15 /* 0A2C34 800A2034 2F010033 */ sltiu $at, $t8, 0x33 /* 0A2C38 800A2038 10200310 */ beqz $at, .L800A2C7C @@ -112,8 +112,8 @@ glabel L800A2054 /* 0A2C98 800A2098 E7B40010 */ swc1 $f20, 0x10($sp) /* 0A2C9C 800A209C 0C024CC9 */ jal print_text_mode_1 /* 0A2CA0 800A20A0 E7B60014 */ swc1 $f22, 0x14($sp) -/* 0A2CA4 800A20A4 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019 -/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0) +/* 0A2CA4 800A20A4 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019 +/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0) /* 0A2CAC 800A20AC 26310004 */ addiu $s1, $s1, 4 /* 0A2CB0 800A20B0 24190032 */ li $t9, 50 /* 0A2CB4 800A20B4 2484FFEB */ addiu $a0, $a0, -0x15 @@ -139,9 +139,9 @@ glabel L800A2054 /* 0A2D00 800A2100 E7B60010 */ swc1 $f22, 0x10($sp) /* 0A2D04 800A2104 0C024DBB */ jal print_text1_center_mode_1 /* 0A2D08 800A2108 E7B60014 */ swc1 $f22, 0x14($sp) -/* 0A2D0C 800A210C 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2D0C 800A210C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2D10 800A2110 100002DA */ b .L800A2C7C -/* 0A2D14 800A2114 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2D14 800A2114 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A2118 /* 0A2D18 800A2118 0C024C36 */ jal set_text_color /* 0A2D1C 800A211C 24040003 */ li $a0, 3 @@ -164,8 +164,8 @@ glabel L800A2118 /* 0A2D5C 800A215C 0232082B */ sltu $at, $s1, $s2 /* 0A2D60 800A2160 1420FFF6 */ bnez $at, .L800A213C /* 0A2D64 800A2164 26100014 */ addiu $s0, $s0, 0x14 -/* 0A2D68 800A2168 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019 -/* 0A2D6C 800A216C 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0) +/* 0A2D68 800A2168 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019 +/* 0A2D6C 800A216C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0) /* 0A2D70 800A2170 3C11800E */ lui $s1, %hi(D_800E7840) # $s1, 0x800e /* 0A2D74 800A2174 26317840 */ addiu $s1, %lo(D_800E7840) # addiu $s1, $s1, 0x7840 /* 0A2D78 800A2178 00009025 */ move $s2, $zero @@ -182,8 +182,8 @@ glabel L800A2118 /* 0A2DA0 800A21A0 E7B60010 */ swc1 $f22, 0x10($sp) /* 0A2DA4 800A21A4 0C024CC9 */ jal print_text_mode_1 /* 0A2DA8 800A21A8 E7B60014 */ swc1 $f22, 0x14($sp) -/* 0A2DAC 800A21AC 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 -/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2DAC 800A21AC 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 +/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) /* 0A2DB4 800A21B4 26310004 */ addiu $s1, $s1, 4 /* 0A2DB8 800A21B8 24010002 */ li $at, 2 /* 0A2DBC 800A21BC 2464FFE2 */ addiu $a0, $v1, -0x1e @@ -218,14 +218,14 @@ glabel L800A21E4 /* 0A2E24 800A2224 26310004 */ addiu $s1, $s1, 4 /* 0A2E28 800A2228 1632FFF7 */ bne $s1, $s2, .L800A2208 /* 0A2E2C 800A222C 26100014 */ addiu $s0, $s0, 0x14 -/* 0A2E30 800A2230 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2E30 800A2230 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2E34 800A2234 10000291 */ b .L800A2C7C -/* 0A2E38 800A2238 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2E38 800A2238 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A223C /* 0A2E3C 800A223C 0C024C36 */ jal set_text_color /* 0A2E40 800A2240 24040002 */ li $a0, 2 -/* 0A2E44 800A2244 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019 -/* 0A2E48 800A2248 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0) +/* 0A2E44 800A2244 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019 +/* 0A2E48 800A2248 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0) /* 0A2E4C 800A224C 3C0D800E */ lui $t5, %hi(D_800E78D0) # $t5, 0x800e /* 0A2E50 800A2250 25AD78D0 */ addiu $t5, %lo(D_800E78D0) # addiu $t5, $t5, 0x78d0 /* 0A2E54 800A2254 2442FFD6 */ addiu $v0, $v0, -0x2a @@ -248,14 +248,14 @@ glabel L800A223C /* 0A2E94 800A2294 26100014 */ addiu $s0, $s0, 0x14 /* 0A2E98 800A2298 1612FFF7 */ bne $s0, $s2, .L800A2278 /* 0A2E9C 800A229C 26310004 */ addiu $s1, $s1, 4 -/* 0A2EA0 800A22A0 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2EA0 800A22A0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2EA4 800A22A4 10000275 */ b .L800A2C7C -/* 0A2EA8 800A22A8 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2EA8 800A22A8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A22AC /* 0A2EAC 800A22AC 0C024C36 */ jal set_text_color /* 0A2EB0 800A22B0 24040002 */ li $a0, 2 -/* 0A2EB4 800A22B4 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019 -/* 0A2EB8 800A22B8 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0) +/* 0A2EB4 800A22B4 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019 +/* 0A2EB8 800A22B8 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0) /* 0A2EBC 800A22BC 3C18800E */ lui $t8, %hi(D_800E7890) # $t8, 0x800e /* 0A2EC0 800A22C0 27187890 */ addiu $t8, %lo(D_800E7890) # addiu $t8, $t8, 0x7890 /* 0A2EC4 800A22C4 244EFFCC */ addiu $t6, $v0, -0x34 @@ -276,14 +276,14 @@ glabel L800A22AC /* 0A2EFC 800A22FC 26100014 */ addiu $s0, $s0, 0x14 /* 0A2F00 800A2300 1612FFF7 */ bne $s0, $s2, .L800A22E0 /* 0A2F04 800A2304 26310004 */ addiu $s1, $s1, 4 -/* 0A2F08 800A2308 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2F08 800A2308 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2F0C 800A230C 1000025B */ b .L800A2C7C -/* 0A2F10 800A2310 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2F10 800A2310 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A2314 /* 0A2F14 800A2314 0C024C36 */ jal set_text_color /* 0A2F18 800A2318 24040002 */ li $a0, 2 -/* 0A2F1C 800A231C 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019 -/* 0A2F20 800A2320 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0) +/* 0A2F1C 800A231C 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019 +/* 0A2F20 800A2320 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0) /* 0A2F24 800A2324 3C09800E */ lui $t1, %hi(D_800E7900) # $t1, 0x800e /* 0A2F28 800A2328 25297900 */ addiu $t1, %lo(D_800E7900) # addiu $t1, $t1, 0x7900 /* 0A2F2C 800A232C 2442FFBF */ addiu $v0, $v0, -0x41 @@ -306,9 +306,9 @@ glabel L800A2314 /* 0A2F6C 800A236C 26100014 */ addiu $s0, $s0, 0x14 /* 0A2F70 800A2370 1612FFF7 */ bne $s0, $s2, .L800A2350 /* 0A2F74 800A2374 26310004 */ addiu $s1, $s1, 4 -/* 0A2F78 800A2378 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2F78 800A2378 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2F7C 800A237C 1000023F */ b .L800A2C7C -/* 0A2F80 800A2380 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2F80 800A2380 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A2384 /* 0A2F84 800A2384 0C024C36 */ jal set_text_color /* 0A2F88 800A2388 24040003 */ li $a0, 3 @@ -330,9 +330,9 @@ glabel L800A2384 /* 0A2FC4 800A23C4 26310004 */ addiu $s1, $s1, 4 /* 0A2FC8 800A23C8 1632FFF7 */ bne $s1, $s2, .L800A23A8 /* 0A2FCC 800A23CC 26100014 */ addiu $s0, $s0, 0x14 -/* 0A2FD0 800A23D0 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A2FD0 800A23D0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A2FD4 800A23D4 10000229 */ b .L800A2C7C -/* 0A2FD8 800A23D8 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A2FD8 800A23D8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A23DC /* 0A2FDC 800A23DC 24010028 */ li $at, 40 /* 0A2FE0 800A23E0 1061000B */ beq $v1, $at, .L800A2410 @@ -404,14 +404,14 @@ glabel L800A23DC /* 0A30D4 800A24D4 8FB80078 */ lw $t8, 0x78($sp) /* 0A30D8 800A24D8 1278000F */ beq $s3, $t8, .L800A2518 /* 0A30DC 800A24DC 00000000 */ nop -/* 0A30E0 800A24E0 3C198019 */ lui $t9, %hi(D_8018EDEC) # $t9, 0x8019 -/* 0A30E4 800A24E4 8339EDEC */ lb $t9, %lo(D_8018EDEC)($t9) +/* 0A30E0 800A24E0 3C198019 */ lui $t9, %hi(gSubMenuSelection) # $t9, 0x8019 +/* 0A30E4 800A24E4 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9) /* 0A30E8 800A24E8 02002825 */ move $a1, $s0 /* 0A30EC 800A24EC 24060001 */ li $a2, 1 /* 0A30F0 800A24F0 0C024870 */ jal text_rainbow_effect /* 0A30F4 800A24F4 03352023 */ subu $a0, $t9, $s5 -/* 0A30F8 800A24F8 3C088019 */ lui $t0, %hi(D_8018EDEC) # $t0, 0x8019 -/* 0A30FC 800A24FC 8108EDEC */ lb $t0, %lo(D_8018EDEC)($t0) +/* 0A30F8 800A24F8 3C088019 */ lui $t0, %hi(gSubMenuSelection) # $t0, 0x8019 +/* 0A30FC 800A24FC 8108EDEC */ lb $t0, %lo(gSubMenuSelection)($t0) /* 0A3100 800A2500 01154823 */ subu $t1, $t0, $s5 /* 0A3104 800A2504 5609001C */ bnel $s0, $t1, .L800A2578 /* 0A3108 800A2508 26110001 */ addiu $s1, $s0, 1 @@ -527,9 +527,9 @@ glabel L800A23DC /* 0A3290 800A2690 AFB80088 */ sw $t8, 0x88($sp) /* 0A3294 800A2694 1661FF83 */ bne $s3, $at, .L800A24A4 /* 0A3298 800A2698 26D60089 */ addiu $s6, $s6, 0x89 -/* 0A329C 800A269C 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A329C 800A269C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A32A0 800A26A0 10000176 */ b .L800A2C7C -/* 0A32A4 800A26A4 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A32A4 800A26A4 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A26A8 /* 0A32A8 800A26A8 0C024C36 */ jal set_text_color /* 0A32AC 800A26AC 24040002 */ li $a0, 2 @@ -725,8 +725,8 @@ glabel L800A26A8 /* 0A3560 800A2960 00009025 */ move $s2, $zero /* 0A3564 800A2964 2411006E */ li $s1, 110 .L800A2968: -/* 0A3568 800A2968 3C048019 */ lui $a0, %hi(D_8018EDEC) # $a0, 0x8019 -/* 0A356C 800A296C 8084EDEC */ lb $a0, %lo(D_8018EDEC)($a0) +/* 0A3568 800A2968 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019 +/* 0A356C 800A296C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0) /* 0A3570 800A2970 240F00D2 */ li $t7, 210 /* 0A3574 800A2974 02002825 */ move $a1, $s0 /* 0A3578 800A2978 2484FFC8 */ addiu $a0, $a0, -0x38 @@ -749,9 +749,9 @@ glabel L800A26A8 /* 0A35B8 800A29B8 26310032 */ addiu $s1, $s1, 0x32 /* 0A35BC 800A29BC 1641FFEA */ bne $s2, $at, .L800A2968 /* 0A35C0 800A29C0 26730004 */ addiu $s3, $s3, 4 -/* 0A35C4 800A29C4 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 +/* 0A35C4 800A29C4 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 /* 0A35C8 800A29C8 100000AC */ b .L800A2C7C -/* 0A35CC 800A29CC 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A35CC 800A29CC 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) glabel L800A29D0 /* 0A35D0 800A29D0 2475FFC6 */ addiu $s5, $v1, -0x3a /* 0A35D4 800A29D4 06A10003 */ bgez $s5, .L800A29E4 @@ -938,8 +938,8 @@ glabel L800A29D0 /* 0A3868 800A2C68 AFA90088 */ sw $t1, 0x88($sp) /* 0A386C 800A2C6C 1661FF81 */ bne $s3, $at, .L800A2A74 /* 0A3870 800A2C70 26D60089 */ addiu $s6, $s6, 0x89 -/* 0A3874 800A2C74 3C038019 */ lui $v1, %hi(D_8018EDEC) # $v1, 0x8019 -/* 0A3878 800A2C78 8063EDEC */ lb $v1, %lo(D_8018EDEC)($v1) +/* 0A3874 800A2C74 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019 +/* 0A3878 800A2C78 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1) .L800A2C7C: glabel L800A2C7C /* 0A387C 800A2C7C 246FFFD8 */ addiu $t7, $v1, -0x28 diff --git a/asm/non_matchings/menu_items/func_800AB314.s b/asm/non_matchings/menu_items/func_800AB314.s index c7d06b29d..e2cd168de 100644 --- a/asm/non_matchings/menu_items/func_800AB314.s +++ b/asm/non_matchings/menu_items/func_800AB314.s @@ -20,10 +20,10 @@ glabel func_800AB314 /* 0ABF58 800AB358 AC62FFFC */ sw $v0, -4($v1) /* 0ABF5C 800AB35C 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e /* 0ABF60 800AB360 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6) -/* 0ABF64 800AB364 3C0F8019 */ lui $t7, %hi(D_8018EDEC) # $t7, 0x8019 +/* 0ABF64 800AB364 3C0F8019 */ lui $t7, %hi(gSubMenuSelection) # $t7, 0x8019 /* 0ABF68 800AB368 51C00053 */ beql $t6, $zero, .L800AB4B8 /* 0ABF6C 800AB36C 8CC20004 */ lw $v0, 4($a2) -/* 0ABF70 800AB370 81EFEDEC */ lb $t7, %lo(D_8018EDEC)($t7) +/* 0ABF70 800AB370 81EFEDEC */ lb $t7, %lo(gSubMenuSelection)($t7) /* 0ABF74 800AB374 24040001 */ li $a0, 1 /* 0ABF78 800AB378 24030003 */ li $v1, 3 /* 0ABF7C 800AB37C 108F003A */ beq $a0, $t7, .L800AB468 @@ -124,10 +124,10 @@ glabel func_800AB314 /* 0AC0CC 800AB4CC 3C038019 */ lui $v1, %hi(gCupSelection) # $v1, 0x8019 /* 0AC0D0 800AB4D0 24010002 */ li $at, 2 /* 0AC0D4 800AB4D4 1041005C */ beq $v0, $at, .L800AB648 -/* 0AC0D8 800AB4D8 3C0D8019 */ lui $t5, %hi(D_8018EDEC) # 0x8019 +/* 0AC0D8 800AB4D8 3C0D8019 */ lui $t5, %hi(gSubMenuSelection) # 0x8019 /* 0AC0DC 800AB4DC 24030003 */ li $v1, 3 /* 0AC0E0 800AB4E0 1043006A */ beq $v0, $v1, .L800AB68C -/* 0AC0E4 800AB4E4 3C198019 */ lui $t9, %hi(D_8018EDEC) # 0x8019 +/* 0AC0E4 800AB4E4 3C198019 */ lui $t9, %hi(gSubMenuSelection) # 0x8019 /* 0AC0E8 800AB4E8 1000006F */ b .L800AB6A8 /* 0AC0EC 800AB4EC 00000000 */ nop /* 0AC0F0 800AB4F0 8CD9001C */ lw $t9, 0x1c($a2) @@ -163,8 +163,8 @@ glabel func_800AB314 /* 0AC158 800AB558 000A5880 */ sll $t3, $t2, 2 /* 0AC15C 800AB55C ACCB001C */ sw $t3, 0x1c($a2) .L800AB560: -/* 0AC160 800AB560 3C0C8019 */ lui $t4, %hi(D_8018EDEC) # $t4, 0x8019 -/* 0AC164 800AB564 818CEDEC */ lb $t4, %lo(D_8018EDEC)($t4) +/* 0AC160 800AB560 3C0C8019 */ lui $t4, %hi(gSubMenuSelection) # $t4, 0x8019 +/* 0AC164 800AB564 818CEDEC */ lb $t4, %lo(gSubMenuSelection)($t4) /* 0AC168 800AB568 24030003 */ li $v1, 3 /* 0AC16C 800AB56C 240D0002 */ li $t5, 2 /* 0AC170 800AB570 146C0003 */ bne $v1, $t4, .L800AB580 @@ -219,8 +219,8 @@ glabel func_800AB314 /* 0AC21C 800AB61C 10000022 */ b .L800AB6A8 /* 0AC220 800AB620 ACCA001C */ sw $t2, 0x1c($a2) .L800AB624: -/* 0AC224 800AB624 3C0B8019 */ lui $t3, %hi(D_8018EDEC) # $t3, 0x8019 -/* 0AC228 800AB628 816BEDEC */ lb $t3, %lo(D_8018EDEC)($t3) +/* 0AC224 800AB624 3C0B8019 */ lui $t3, %hi(gSubMenuSelection) # $t3, 0x8019 +/* 0AC228 800AB628 816BEDEC */ lb $t3, %lo(gSubMenuSelection)($t3) /* 0AC22C 800AB62C 24030003 */ li $v1, 3 /* 0AC230 800AB630 146B0003 */ bne $v1, $t3, .L800AB640 /* 0AC234 800AB634 240C0002 */ li $t4, 2 @@ -239,7 +239,7 @@ glabel func_800AB314 /* 0AC260 800AB660 ACC30004 */ sw $v1, 4($a2) /* 0AC264 800AB664 ACC00020 */ sw $zero, 0x20($a2) .L800AB668: -/* 0AC268 800AB668 81ADEDEC */ lb $t5, %lo(D_8018EDEC)($t5) # -0x1214($t5) +/* 0AC268 800AB668 81ADEDEC */ lb $t5, %lo(gSubMenuSelection)($t5) # -0x1214($t5) /* 0AC26C 800AB66C 24030003 */ li $v1, 3 /* 0AC270 800AB670 106D0004 */ beq $v1, $t5, .L800AB684 /* 0AC274 800AB674 00000000 */ nop @@ -250,7 +250,7 @@ glabel func_800AB314 /* 0AC284 800AB684 10000008 */ b .L800AB6A8 /* 0AC288 800AB688 8CC20004 */ lw $v0, 4($a2) .L800AB68C: -/* 0AC28C 800AB68C 8339EDEC */ lb $t9, %lo(D_8018EDEC)($t9) # -0x1214($t9) +/* 0AC28C 800AB68C 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9) # -0x1214($t9) /* 0AC290 800AB690 10790005 */ beq $v1, $t9, .L800AB6A8 /* 0AC294 800AB694 00000000 */ nop /* 0AC298 800AB698 ACC00004 */ sw $zero, 4($a2) diff --git a/asm/non_matchings/menu_items/render_menus.s b/asm/non_matchings/menu_items/render_menus.s index 9cbe69998..06433bcd2 100644 --- a/asm/non_matchings/menu_items/render_menus.s +++ b/asm/non_matchings/menu_items/render_menus.s @@ -309,7 +309,7 @@ glabel L8009F874 /* 0A0484 8009F884 00057400 */ sll $t6, $a1, 0x10 /* 0A0488 8009F888 00046400 */ sll $t4, $a0, 0x10 /* 0A048C 8009F88C 000C2403 */ sra $a0, $t4, 0x10 -/* 0A0490 8009F890 0C013235 */ jal func_8004C8D4 +/* 0A0490 8009F890 0C013235 */ jal render_game_logo /* 0A0494 8009F894 000E2C03 */ sra $a1, $t6, 0x10 /* 0A0498 8009F898 3C050200 */ lui $a1, %hi(seg2_copyright_1996_texture) # $a1, 0x200 /* 0A049C 8009F89C 24A545E8 */ addiu $a1, %lo(seg2_copyright_1996_texture) # addiu $a1, $a1, 0x45e8 @@ -920,7 +920,7 @@ glabel L800A00FC .L800A0170: /* 0A0D70 800A0170 24C600BF */ addiu $a2, $a2, 0xbf .L800A0174: -/* 0A0D74 800A0174 0C028474 */ jal func_800A11D0 +/* 0A0D74 800A0174 0C028474 */ jal render_cursor_player /* 0A0D78 800A0178 02202025 */ move $a0, $s1 /* 0A0D7C 800A017C 100001D2 */ b .L800A08C8 /* 0A0D80 800A0180 8FBF0034 */ lw $ra, 0x34($sp) @@ -1054,7 +1054,7 @@ glabel L800A02DC /* 0A0F54 800A0354 1000015C */ b .L800A08C8 /* 0A0F58 800A0358 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A035C -/* 0A0F5C 800A035C 0C02A385 */ jal func_800A8E14 +/* 0A0F5C 800A035C 0C02A385 */ jal render_battle_introduction /* 0A0F60 800A0360 02202025 */ move $a0, $s1 /* 0A0F64 800A0364 10000158 */ b .L800A08C8 /* 0A0F68 800A0368 8FBF0034 */ lw $ra, 0x34($sp) @@ -1311,7 +1311,7 @@ glabel L800A0694 /* 0A1300 800A0700 AFAE0010 */ sw $t6, 0x10($sp) /* 0A1304 800A0704 02202025 */ move $a0, $s1 /* 0A1308 800A0708 8FA500A8 */ lw $a1, 0xa8($sp) -/* 0A130C 800A070C 0C028474 */ jal func_800A11D0 +/* 0A130C 800A070C 0C028474 */ jal render_cursor_player /* 0A1310 800A0710 240600FF */ li $a2, 255 /* 0A1314 800A0714 1000006C */ b .L800A08C8 /* 0A1318 800A0718 8FBF0034 */ lw $ra, 0x34($sp) @@ -1326,7 +1326,7 @@ glabel L800A072C /* 0A1334 800A0734 10000064 */ b .L800A08C8 /* 0A1338 800A0738 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A073C -/* 0A133C 800A073C 0C029289 */ jal func_800A4A24 +/* 0A133C 800A073C 0C029289 */ jal render_menu_item_announce_ghost /* 0A1340 800A0740 02202025 */ move $a0, $s1 /* 0A1344 800A0744 10000060 */ b .L800A08C8 /* 0A1348 800A0748 8FBF0034 */ lw $ra, 0x34($sp) @@ -1336,22 +1336,22 @@ glabel L800A074C /* 0A1354 800A0754 1000005C */ b .L800A08C8 /* 0A1358 800A0758 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A075C -/* 0A135C 800A075C 0C0295CE */ jal func_800A5738 +/* 0A135C 800A075C 0C0295CE */ jal render_menu_item_end_course_option /* 0A1360 800A0760 02202025 */ move $a0, $s1 /* 0A1364 800A0764 10000058 */ b .L800A08C8 /* 0A1368 800A0768 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A076C -/* 0A136C 800A076C 0C028649 */ jal func_800A1924 +/* 0A136C 800A076C 0C028649 */ jal render_menu_item_data_course_image /* 0A1370 800A0770 02202025 */ move $a0, $s1 /* 0A1374 800A0774 10000054 */ b .L800A08C8 /* 0A1378 800A0778 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A077C -/* 0A137C 800A077C 0C028688 */ jal func_800A1A20 +/* 0A137C 800A077C 0C028688 */ jal render_menu_item_data_course_info /* 0A1380 800A0780 02202025 */ move $a0, $s1 /* 0A1384 800A0784 10000050 */ b .L800A08C8 /* 0A1388 800A0788 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A078C -/* 0A138C 800A078C 0C0286F8 */ jal func_800A1BE0 +/* 0A138C 800A078C 0C0286F8 */ jal menu_item_data_course_selectable /* 0A1390 800A0790 02202025 */ move $a0, $s1 /* 0A1394 800A0794 1000004C */ b .L800A08C8 /* 0A1398 800A0798 8FBF0034 */ lw $ra, 0x34($sp) @@ -1439,7 +1439,7 @@ glabel L800A084C /* 0A14B4 800A08B4 10000004 */ b .L800A08C8 /* 0A14B8 800A08B8 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A08BC -/* 0A14BC 800A08BC 0C029DE4 */ jal func_800A7790 +/* 0A14BC 800A08BC 0C029DE4 */ jal menu_item_credits_render /* 0A14C0 800A08C0 02202025 */ move $a0, $s1 .L800A08C4: glabel L800A08C4 diff --git a/src/menu_items.c b/src/menu_items.c index 98583b68d..f595c8ad5 100644 --- a/src/menu_items.c +++ b/src/menu_items.c @@ -70,7 +70,7 @@ MenuItem gMenuItems[MENU_ITEMS_MAX]; struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE]; struct_8018E060_entry D_8018E060[D_8018E060_SIZE + 1]; struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE]; -s32 gMenuTextureBufferIndex; +s32 sMenuTextureBufferIndex; struct_8018E118_entry sMenuTextureMap[TEXTURE_MAP_MAX]; s32 sMenuTextureEntries; Gfx* sGfxPtr; @@ -3388,7 +3388,7 @@ void dma_tkmk00_textures(u64* data, size_t nbytes, void* vaddr) { } void func_80099110(void) { - gMenuTextureBufferIndex = 0; + sMenuTextureBufferIndex = 0; sMenuTextureEntries = 0; } @@ -3451,27 +3451,27 @@ void load_menu_img(MenuTexture* arg0) { if (var_a1_2 % 8) { var_a1_2 = ((var_a1_2 / 8) * 8) + 8; } -// mio0decode(gMenuCompressedBuffer, &gMenuTextureBuffer[gMenuTextureBufferIndex]); +// mio0decode(gMenuCompressedBuffer, &gMenuTextureBuffer[sMenuTextureBufferIndex]); // size_t texSize = ResourceGetTexSizeByName(var_s1->textureData); -// memcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], var_s1->textureData, texSize); +// memcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], var_s1->textureData, texSize); #ifdef TARGET_N64 dma_compressed_mio0_texture_segA(var_s1->textureData, var_a1_2, gMenuCompressedBuffer); - mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex]); + mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[sMenuTextureBufferIndex]); #else - strcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], var_s1->textureData); + strcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], var_s1->textureData); #endif } else { #ifdef TARGET_N64 dma_compressed_mio0_texture_segA(var_s1->textureData, var_s1->height * var_s1->width * 2, - &gMenuTextureBuffer[gMenuTextureBufferIndex]); + &gMenuTextureBuffer[sMenuTextureBufferIndex]); #else - strcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], var_s1->textureData); + strcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], var_s1->textureData); #endif } thing[sMenuTextureEntries].textureData = var_s1->textureData; - thing[sMenuTextureEntries].offset = gMenuTextureBufferIndex; - gMenuTextureBufferIndex += var_s1->height * var_s1->width; - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; + thing[sMenuTextureEntries].offset = sMenuTextureBufferIndex; + sMenuTextureBufferIndex += var_s1->height * var_s1->width; + sMenuTextureBufferIndex = ((sMenuTextureBufferIndex / 8) * 8) + 8; sMenuTextureEntries += 1; } var_s1++; @@ -3506,21 +3506,21 @@ void func_80099394(MenuTexture* arg0) { if (var_s1->type == 5) { #ifdef TARGET_N64 dma_compressed_mio0_texture_segA(var_s1->textureData, (u32) ((s32) (var_s1->height * var_s1->width) / 2), - &gMenuTextureBuffer[gMenuTextureBufferIndex]); + &gMenuTextureBuffer[sMenuTextureBufferIndex]); #else u8* tex = LOAD_ASSET(var_s1->textureData); size_t texSize = ResourceGetTexSizeByName(var_s1->textureData); - memcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], tex, texSize); + memcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], tex, texSize); #endif } thing = &sMenuTextureMap[sMenuTextureEntries]; thing->textureData = var_s1->textureData; thing = &sMenuTextureMap[sMenuTextureEntries]; - thing->offset = gMenuTextureBufferIndex; + thing->offset = sMenuTextureBufferIndex; - gMenuTextureBufferIndex += (var_s1->height * var_s1->width); - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; + sMenuTextureBufferIndex += (var_s1->height * var_s1->width); + sMenuTextureBufferIndex = ((sMenuTextureBufferIndex / 8) * 8) + 8; sMenuTextureEntries += 1; } var_s1++; @@ -3554,18 +3554,18 @@ void func_8009952C(MenuTexture* arg0) { if (var_a1 == 0) { #ifdef TARGET_N64 dma_compressed_mio0_texture_segA(var_s1->textureData, 0x00008000U, gMenuCompressedBuffer); - mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[gMenuTextureBufferIndex]); + mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[sMenuTextureBufferIndex]); #else - memcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], var_s1->textureData, var_s1->width * var_s1->height * 2); + memcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], var_s1->textureData, var_s1->width * var_s1->height * 2); #endif thing = &sMenuTextureMap[sMenuTextureEntries]; thing->textureData = var_s1->textureData; thing = &sMenuTextureMap[sMenuTextureEntries]; - thing->offset = gMenuTextureBufferIndex; + thing->offset = sMenuTextureBufferIndex; - gMenuTextureBufferIndex += (var_s1->height * var_s1->width); - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; + sMenuTextureBufferIndex += (var_s1->height * var_s1->width); + sMenuTextureBufferIndex = ((sMenuTextureBufferIndex / 8) * 8) + 8; sMenuTextureEntries += 1; } var_s1++; @@ -3629,10 +3629,10 @@ void load_menu_img_comp_type(MenuTexture* arg0, s32 arg1) { switch (arg1) { /* switch 1; irregular */ case -1: /* switch 1 */ case 1: { - // mio0decode(gMenuCompressedBuffer, (u8*)&gMenuTextureBuffer[gMenuTextureBufferIndex]); + // mio0decode(gMenuCompressedBuffer, (u8*)&gMenuTextureBuffer[sMenuTextureBufferIndex]); // printf("w: %d, h: %d", texture->width, texture->height); u8* tex = (u8*) LOAD_ASSET(texture->textureData); - memcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], tex, texture->width * texture->height * 2); + memcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], tex, texture->width * texture->height * 2); break; } case 0: /* switch 1 */ @@ -3643,18 +3643,18 @@ void load_menu_img_comp_type(MenuTexture* arg0, s32 arg1) { var_v0_2 = 1; } if (1) {} - // gMenuTextureBuffer[gMenuTextureBufferIndex] = &gTextureBackgroundBlueSky; - // tkmk00decode(gMenuCompressedBuffer, texture->textureData, (u8*)&gMenuTextureBuffer[gMenuTextureBufferIndex], + // gMenuTextureBuffer[sMenuTextureBufferIndex] = &gTextureBackgroundBlueSky; + // tkmk00decode(gMenuCompressedBuffer, texture->textureData, (u8*)&gMenuTextureBuffer[sMenuTextureBufferIndex], // var_v0_2); u8* tex2 = (u8*) LOAD_ASSET(texture->textureData); - memcpy(&gMenuTextureBuffer[gMenuTextureBufferIndex], tex2, texture->width * texture->height * 2); + memcpy(&gMenuTextureBuffer[sMenuTextureBufferIndex], tex2, texture->width * texture->height * 2); break; } thing[sMenuTextureEntries].textureData = texture->textureData; - thing[sMenuTextureEntries].offset = gMenuTextureBufferIndex; - gMenuTextureBufferIndex += texture->height * texture->width; - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; + thing[sMenuTextureEntries].offset = sMenuTextureBufferIndex; + sMenuTextureBufferIndex += texture->height * texture->width; + sMenuTextureBufferIndex = ((sMenuTextureBufferIndex / 8) * 8) + 8; sMenuTextureEntries += 1; } texture++; @@ -5552,7 +5552,7 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { sIntroLogoTimer = 0; sIntroModelMotionSpeed = 0.0f; sIntroModelSpeed = 3.0f; - gIntroModelZEye = 0x000009C4; + gIntroModelZEye = 2500; gIntroModelRotX = 0; gIntroModelRotY = -270.0f; gIntroModelRotZ = 0; @@ -5564,7 +5564,7 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { var_ra->param2 = one; break; case START_MENU_FLAG: - gIntroModelZEye = 0x00000708; + gIntroModelZEye = 1800; gIntroModelRotX = -51.0f; gIntroModelRotY = -12.0f; gIntroModelRotZ = -18.0f; @@ -5617,136 +5617,136 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { sGfxPtr = render_menu_textures(sGfxPtr, D_02001658, var_ra->column, var_ra->row); func_8009B998(); break; - case 0xD6: + case MENU_ITEM_TYPE_0D6: var_ra->D_8018DEE0_index = animate_character_select_menu(segmented_to_virtual_dupe_2(D_800E7D34[0])); break; - case 0xD7: + case MENU_ITEM_TYPE_0D7: for (var_v0 = 0; var_v0 < 10; var_v0++) { load_menu_img(segmented_to_virtual_dupe(D_800E7D0C[var_v0])); } break; - case 0xD8: - case 0xD9: + case MENU_ITEM_TYPE_0D8: + case MENU_ITEM_TYPE_0D9: load_menu_img(D_0200184C); break; - case 0x1: - load_menu_img_comp_type(gMenuTexturesBackground[has_unlocked_extra_mode()], 0); + case MENU_ITEM_UI_START_BACKGROUND: + load_menu_img_comp_type(gMenuTexturesBackground[has_unlocked_extra_mode()], LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0x2: + case MENU_ITEM_UI_LOGO_AND_COPYRIGHT: load_mario_kart_64_logo(); - gMenuTextureBufferIndex += 0x10000; + sMenuTextureBufferIndex += 0x10000; load_menu_img(seg2_copyright_1996_texture); break; - case 0x3: + case MENU_ITEM_UI_PUSH_START_BUTTON: load_menu_img(seg2_push_start_button_texture); break; - case 0x23: - case 0x24: - case 0x25: - load_menu_img_comp_type(gMenuTexturesBackground[has_unlocked_extra_mode()], 0); - load_menu_img_comp_type(D_02004B74, 0); + case MAIN_MENU_BACKGROUND: + case CHARACTER_SELECT_BACKGROUND: + case COURSE_SELECT_BACKGROUND: + load_menu_img_comp_type(gMenuTexturesBackground[has_unlocked_extra_mode()], LOAD_MENU_IMG_TKMK00_ONCE); + load_menu_img_comp_type(D_02004B74, LOAD_MENU_IMG_TKMK00_ONCE); convert_img_to_greyscale(0, 0x00000019); adjust_img_colour(0, SCREEN_WIDTH * SCREEN_HEIGHT, D_800E74E8[type - 0x23].red, D_800E74E8[type - 0x23].green, D_800E74E8[type - 0x23].blue); break; - case 0xF: - var_ra->unk1C = 0x00000020; + case MENU_ITEM_UI_OK: + var_ra->param1 = 0x00000020; /* fallthrough */ - case 0x0A: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: + case MENU_ITEM_UI_GAME_SELECT: + case MAIN_MENU_DATA_GFX: + case MAIN_MENU_OPTION_GFX: + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: case 0x15: case 0x16: case 0x17: - case 0x18: - case 0x19: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8274[type - 0x12]), 0); + case MAIN_MENU_TIME_TRIALS_BEGIN: + case MAIN_MENU_TIME_TRIALS_DATA: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8274[type - 0x12]), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0xB: - case 0xC: - case 0xD: - case 0xE: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8234[((type - 0xB) * 2) + 0]), 0); + case MENU_ITEM_UI_1P_GAME: + case MENU_ITEM_UI_2P_GAME: + case MENU_ITEM_UI_3P_GAME: + case MENU_ITEM_UI_4P_GAME: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8234[((type - 0xB) * 2) + 0]), LOAD_MENU_IMG_TKMK00_ONCE); load_menu_img(segmented_to_virtual_dupe(D_800E8234[((type - 0xB) * 2) + 1])); break; - case 0x2A: - load_menu_img_comp_type(D_02004B4C, 0); + case CHARACTER_SELECT_MENU_PLAYER_SELECT_BANNER: + load_menu_img_comp_type(D_02004B4C, LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0x33: - load_menu_img_comp_type(D_02004B74, 0); - var_ra->unk1C = 0x00000020; + case CHARACTER_SELECT_MENU_OK: + load_menu_img_comp_type(D_02004B74, LOAD_MENU_IMG_TKMK00_ONCE); + var_ra->param1 = 0x00000020; break; - case 0x34: - case 0x35: - case 0x36: - case 0x37: - load_menu_img(segmented_to_virtual_dupe(gMenuTexturesBorderPlayer[type - 0x34])); + case CHARACTER_SELECT_MENU_1P_CURSOR: + case CHARACTER_SELECT_MENU_2P_CURSOR: + case CHARACTER_SELECT_MENU_3P_CURSOR: + case CHARACTER_SELECT_MENU_4P_CURSOR: + load_menu_img(segmented_to_virtual_dupe(gMenuTexturesBorderPlayer[type - CHARACTER_SELECT_MENU_1P_CURSOR])); break; - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2E: - case 0x2F: - case 0x30: - case 0x31: - case 0x32: + case CHARACTER_SELECT_MENU_MARIO: + case CHARACTER_SELECT_MENU_LUIGI: + case CHARACTER_SELECT_MENU_TOAD: + case CHARACTER_SELECT_MENU_PEACH: + case CHARACTER_SELECT_MENU_YOSHI: + case CHARACTER_SELECT_MENU_DK: + case CHARACTER_SELECT_MENU_WARIO: + case CHARACTER_SELECT_MENU_BOWSER: var_ra->D_8018DEE0_index = animate_character_select_menu(segmented_to_virtual_dupe_2(D_800E8320[type - 0x2B])); - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[type - 0x2B]), 0); + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[type - 0x2B]), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0xA0: - case 0xA1: + case MENU_ITEM_TYPE_0A0: + case MENU_ITEM_TYPE_0A1: var_ra->D_8018DEE0_index = animate_character_select_menu(segmented_to_virtual_dupe_2(D_800E8320[type - 0xA0])); break; - case 0x5D: - var_ra->unk1C = 0x00000020; + case COURSE_SELECT_OK: + var_ra->param1 = 0x00000020; /* fallthrough */ - case 0x52: - case 0x53: - case 0x54: - case 0x55: - case 0x56: - case 0x58: - case 0x59: - case 0x5A: - case 0x5B: - case 0x5C: - load_menu_img_comp_type(segmented_to_virtual_dupe(gMenuTexturesTrackSelection[type - 0x52]), 0); + case COURSE_SELECT_MAP_SELECT: + case COURSE_SELECT_MUSHROOM_CUP: + case COURSE_SELECT_FLOWER_CUP: + case COURSE_SELECT_STAR_CUP: + case COURSE_SELECT_SPECIAL_CUP: + case MENU_ITEM_TYPE_058: + case COURSE_SELECT_COURSE_NAMES: + case MENU_ITEM_TYPE_05A: + case MENU_ITEM_TYPE_05B: + case COURSE_SELECT_BATTLE_NAMES: + load_menu_img_comp_type(segmented_to_virtual_dupe(gMenuTexturesTrackSelection[type - 0x52]), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0x5F: - case 0x60: - case 0x61: - case 0x62: + case MENU_ITEM_TYPE_05F: + case MENU_ITEM_TYPE_060: + case MENU_ITEM_TYPE_061: + case MENU_ITEM_TYPE_062: var_ra->D_8018DEE0_index = animate_character_select_menu( segmented_to_virtual_dupe_2(D_800E7E34[gCupCourseOrder[0][var_ra->type - 0x5F]])); break; - case 0x5E: - var_ra->unk20 = random_int(4U) + 2; + case MENU_ITEM_TYPE_05E: + var_ra->param2 = random_int(4U) + 2; break; - case 0x65: - case 0x66: + case MENU_ITEM_TYPE_065: + case MENU_ITEM_TYPE_066: var_ra->column = D_800E7248[type - 0x65].column; var_ra->row = D_800E7248[type - 0x65].row; break; - case 0x67: - var_ra->unk1C = (s32) GetCupIndex(); - var_ra->unk20 = func_800B54C0(GetCupIndex(), gCCSelection); + case MENU_ITEM_TYPE_067: + var_ra->param1 = (s32) GetCupIndex(); + var_ra->param2 = func_800B54C0(GetCupIndex(), gCCSelection); var_ra->D_8018DEE0_index = animate_character_select_menu( - segmented_to_virtual_dupe_2(D_800E7E20[((gCCSelection / 2) * 4) - var_ra->unk20])); + segmented_to_virtual_dupe_2(D_800E7E20[((gCCSelection / 2) * 4) - var_ra->param2])); var_ra->column = D_800E7268[0].column; var_ra->row = D_800E7268[0].row; break; - case 0x68: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8294[gCCSelection]), 0); + case MENU_ITEM_TYPE_068: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E8294[gCCSelection]), LOAD_MENU_IMG_TKMK00_ONCE); var_ra->column = 0x00000037; var_ra->row = 0x000000C3; break; - case 0x69: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), 0); + case MENU_ITEM_TYPE_069: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), LOAD_MENU_IMG_TKMK00_ONCE); if (controller_pak_1_status() == 0) { func_800B6708(); } else { @@ -5754,14 +5754,14 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { D_8018EE10[1].ghostDataSaved = 0; } break; - case 0x78: - case 0x79: - case 0x7A: - case 0x7B: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E82F4[type - 0x78]), 0); + case MENU_ITEM_TYPE_078: + case MENU_ITEM_TYPE_079: + case MENU_ITEM_TYPE_07A: + case MENU_ITEM_TYPE_07B: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E82F4[type - 0x78]), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0x8C: - load_menu_img_comp_type(segmented_to_virtual_dupe(seg2_data_texture), 0); + case MENU_ITEM_TYPE_08C: + load_menu_img_comp_type(segmented_to_virtual_dupe(seg2_data_texture), LOAD_MENU_IMG_TKMK00_ONCE); if (controller_pak_1_status() == 0) { func_800B6708(); } else { @@ -5769,46 +5769,46 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { D_8018EE10[1].ghostDataSaved = 0; } break; - case 0x8D: + case MENU_ITEM_TYPE_08D: load_menu_img(segmented_to_virtual_dupe(D_02001FA4)); break; - case 0x7C: - case 0x7D: - case 0x7E: - case 0x7F: - case 0x80: - case 0x81: - case 0x82: - case 0x83: - case 0x84: - case 0x85: - case 0x86: - case 0x87: - case 0x88: - case 0x89: - case 0x8A: - case 0x8B: - temp_v0_6 = var_ra->type - 0x7C; - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D74[gCupCourseOrder[temp_v0_6 / 4][temp_v0_6 % 4]]), -1); - temp_v0_6 = var_ra->type - 0x7C; - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7DC4[gCupCourseOrder[temp_v0_6 / 4][temp_v0_6 % 4]]), 0); - load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), 0); + case MENU_ITEM_TYPE_07C: + case MENU_ITEM_TYPE_07D: + case MENU_ITEM_TYPE_07E: + case MENU_ITEM_TYPE_07F: + case MENU_ITEM_TYPE_080: + case MENU_ITEM_TYPE_081: + case MENU_ITEM_TYPE_082: + case MENU_ITEM_TYPE_083: + case MENU_ITEM_TYPE_084: + case MENU_ITEM_TYPE_085: + case MENU_ITEM_TYPE_086: + case MENU_ITEM_TYPE_087: + case MENU_ITEM_TYPE_088: + case MENU_ITEM_TYPE_089: + case MENU_ITEM_TYPE_08A: + case MENU_ITEM_TYPE_08B: + temp_v0_6 = var_ra->type - MENU_ITEM_TYPE_07C; + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D74[gCupCourseOrder[temp_v0_6 / 4][temp_v0_6 % 4]]), LOAD_MENU_IMG_MIO0_ONCE); + temp_v0_6 = var_ra->type - MENU_ITEM_TYPE_07C; + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7DC4[gCupCourseOrder[temp_v0_6 / 4][temp_v0_6 % 4]]), LOAD_MENU_IMG_TKMK00_ONCE); + load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0xB1: - case 0xB2: - case 0xB3: - case 0xB4: - temp_a1 = D_800EFD64[gCharacterSelections[type - 0xB1]]; + case MENU_ITEM_TYPE_0B1: + case MENU_ITEM_TYPE_0B2: + case MENU_ITEM_TYPE_0B3: + case MENU_ITEM_TYPE_0B4: + temp_a1 = D_800EFD64[gCharacterSelections[type - MENU_ITEM_TYPE_0B1]]; var_v1_3 = 0; - stackPadding0 = type - 0xB1; + stackPadding0 = type - MENU_ITEM_TYPE_0B1; switch (gModeSelection) { - case 2: - if (gGPCurrentRaceRankByPlayerId[type - 0xB1] != 0) { + case VERSUS: + if (gGPCurrentRaceRankByPlayerId[type - MENU_ITEM_TYPE_0B1] != 0) { var_v1_3 = 1; } break; - case 3: - if ((type - 0xB1) != gPlayerWinningIndex) { + case BATTLE: + if ((type - MENU_ITEM_TYPE_0B1) != gPlayerWinningIndex) { var_v1_3 = 1; } break; @@ -5821,26 +5821,26 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { var_a0 = D_800E8320[temp_a1]; } var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe_2(var_a0), stackPadding0); - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[temp_a1]), 0); - load_menu_img(segmented_to_virtual_dupe(gMenuTexturesBorderPlayer[type - 0xB1])); + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[temp_a1]), LOAD_MENU_IMG_TKMK00_ONCE); + load_menu_img(segmented_to_virtual_dupe(gMenuTexturesBorderPlayer[type - MENU_ITEM_TYPE_0B1])); break; - case 0xBB: - var_ra->unk1C = func_800B5020(playerHUD[0].someTimer, gCharacterSelections[0]); - var_ra->unk20 = func_800B5218(); + case MENU_ITEM_TYPE_0BB: + var_ra->param1 = func_800B5020(playerHUD[0].someTimer, gCharacterSelections[0]); + var_ra->param2 = func_800B5218(); if (D_80162DD4 != 1) { if (func_800051C4() >= 0x3C01) { D_80162DD4 = 1; } } - if ((var_ra->unk1C == 0) || (var_ra->unk20 != 0)) { + if ((var_ra->param1 == 0) || (var_ra->param2 != 0)) { func_800B559C((GetCupIndex() * 4) + GetCupCursorPosition()); } break; - case 0xE6: + case MENU_ITEM_DATA_COURSE_IMAGE: var_ra->D_8018DEE0_index = animate_character_select_menu(segmented_to_virtual_dupe_2( D_800E7E34[gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]])); - var_ra->unk1C = gTimeTrialDataCourseIndex; - load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), 0); + var_ra->param1 = gTimeTrialDataCourseIndex; + load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004A0C), LOAD_MENU_IMG_TKMK00_ONCE); func_8006EF60(); if (controller_pak_1_status() == 0) { func_800B6708(); @@ -5849,16 +5849,16 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { D_8018EE10[1].ghostDataSaved = 0; } break; - case 0xF0: - var_ra->cursor = (s32) gSoundMode; + case MENU_ITEM_TYPE_0F0: + var_ra->state = (s32) gSoundMode; break; - case 0xF1: - load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004638), 0); + case MENU_ITEM_TYPE_0F1: + load_menu_img_comp_type(segmented_to_virtual_dupe(D_02004638), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0xBE: + case MENU_ITEM_TYPE_0BE: D_8018ED90 = 0; break; - case 0x130: + case MENU_ITEM_TYPE_130: temp_a1 = D_800EFD64[D_802874D8.unk1E]; if (D_802874D8.unk1D >= 3) { var_v0 = 1; @@ -5871,71 +5871,71 @@ void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { var_a0 = D_800E8320[temp_a1]; } var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe_2(var_a0), 0); - load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[temp_a1]), 0); + load_menu_img_comp_type(segmented_to_virtual_dupe(D_800E7D54[temp_a1]), LOAD_MENU_IMG_TKMK00_ONCE); break; - case 0x190: - case 0x191: - case 0x192: - case 0x193: - case 0x194: - case 0x195: - case 0x196: - case 0x197: - case 0x198: - case 0x199: - case 0x19A: - case 0x19B: - case 0x19C: - case 0x19D: - case 0x19E: - case 0x19F: - case 0x1A0: - case 0x1A1: - case 0x1A2: - case 0x1A3: - case 0x1A4: - case 0x1A5: - case 0x1A6: - case 0x1A7: - case 0x1A8: - case 0x1A9: - case 0x1AA: - case 0x1AB: - case 0x1AC: - case 0x1AD: - case 0x1AE: - case 0x1AF: - case 0x1B0: - case 0x1B1: - case 0x1B2: - case 0x1B3: - case 0x1B4: - case 0x1B5: - case 0x1B6: - case 0x1B7: - case 0x1B8: - case 0x1B9: - case 0x1BA: - case 0x1BB: - case 0x1BC: - case 0x1BD: - case 0x1BE: - case 0x1BF: - case 0x1C0: - case 0x1C1: - case 0x1C2: - case 0x1C3: - case 0x1C4: - case 0x1C5: - case 0x1C6: - case 0x1C7: - case 0x1C8: - case 0x1C9: - case 0x1CA: - case 0x1CB: - case 0x1CC: - case 0x1CD: - case 0x1CE: + case MENU_ITEM_TYPE_190: + case MENU_ITEM_TYPE_191: + case MENU_ITEM_TYPE_192: + case MENU_ITEM_TYPE_193: + case MENU_ITEM_TYPE_194: + case MENU_ITEM_TYPE_195: + case MENU_ITEM_TYPE_196: + case MENU_ITEM_TYPE_197: + case MENU_ITEM_TYPE_198: + case MENU_ITEM_TYPE_199: + case MENU_ITEM_TYPE_19A: + case MENU_ITEM_TYPE_19B: + case MENU_ITEM_TYPE_19C: + case MENU_ITEM_TYPE_19D: + case MENU_ITEM_TYPE_19E: + case MENU_ITEM_TYPE_19F: + case MENU_ITEM_TYPE_1A0: + case MENU_ITEM_TYPE_1A1: + case MENU_ITEM_TYPE_1A2: + case MENU_ITEM_TYPE_1A3: + case MENU_ITEM_TYPE_1A4: + case MENU_ITEM_TYPE_1A5: + case MENU_ITEM_TYPE_1A6: + case MENU_ITEM_TYPE_1A7: + case MENU_ITEM_TYPE_1A8: + case MENU_ITEM_TYPE_1A9: + case MENU_ITEM_TYPE_1AA: + case MENU_ITEM_TYPE_1AB: + case MENU_ITEM_TYPE_1AC: + case MENU_ITEM_TYPE_1AD: + case MENU_ITEM_TYPE_1AE: + case MENU_ITEM_TYPE_1AF: + case MENU_ITEM_TYPE_1B0: + case MENU_ITEM_TYPE_1B1: + case MENU_ITEM_TYPE_1B2: + case MENU_ITEM_TYPE_1B3: + case MENU_ITEM_TYPE_1B4: + case MENU_ITEM_TYPE_1B5: + case MENU_ITEM_TYPE_1B6: + case MENU_ITEM_TYPE_1B7: + case MENU_ITEM_TYPE_1B8: + case MENU_ITEM_TYPE_1B9: + case MENU_ITEM_TYPE_1BA: + case MENU_ITEM_TYPE_1BB: + case MENU_ITEM_TYPE_1BC: + case MENU_ITEM_TYPE_1BD: + case MENU_ITEM_TYPE_1BE: + case MENU_ITEM_TYPE_1BF: + case MENU_ITEM_TYPE_1C0: + case MENU_ITEM_TYPE_1C1: + case MENU_ITEM_TYPE_1C2: + case MENU_ITEM_TYPE_1C3: + case MENU_ITEM_TYPE_1C4: + case MENU_ITEM_TYPE_1C5: + case MENU_ITEM_TYPE_1C6: + case MENU_ITEM_TYPE_1C7: + case MENU_ITEM_TYPE_1C8: + case MENU_ITEM_TYPE_1C9: + case MENU_ITEM_TYPE_1CA: + case MENU_ITEM_TYPE_1CB: + case MENU_ITEM_TYPE_1CC: + case MENU_ITEM_TYPE_1CD: + case MENU_ITEM_TYPE_1CE: default: break; } @@ -5968,32 +5968,32 @@ void render_menus(MenuItem* arg0) { f32 floatone = 1; UNUSED s32 stackPadding3; UNUSED s32 stackPadding4; - f32 var_f0; + f32 scaleX; - if ((s8) arg0->visible != 0) { + if ((s8) arg0->visible) { gDPPipeSync(gDisplayListHead++); - switch (arg0->type) { /* switch 6; irregular */ - case 0xFA: /* switch 6 */ - func_80094660(gGfxPool, arg0->unk1C); + switch (arg0->type) { + case MENU_ITEM_UI_LOGO_INTRO: + func_80094660(gGfxPool, arg0->param1); break; - case 0xFB: /* switch 6 */ - render_checkered_flag(gGfxPool, arg0->unk1C); + case START_MENU_FLAG: + render_checkered_flag(gGfxPool, arg0->param1); break; - case 0xD2: /* switch 6 */ + case MENU_ITEM_TYPE_0D2: gDisplayListHead = func_8009B9D0(gDisplayListHead, D_020014C8); break; - case 0xD3: /* switch 6 */ + case MENU_ITEM_TYPE_0D3: gDisplayListHead = func_8009B9D0(gDisplayListHead, D_02001540); break; - case 0xD4: /* switch 6 */ + case MENU_ITEM_TYPE_0D4: func_800A09E0(arg0); func_800A0AD0(arg0); func_800A0B80(arg0); break; - case 0xD5: /* switch 6 */ - // Sets the text color of the text on the Controller Pak menu - // Also sets the color of the shading at the top and bottom of the menu - // Does not set color of the text in the table itself + case MENU_ITEM_TYPE_0D5: + // Sets the text color of the text on the Controller Pak menu + // Also sets the color of the shading at the top and bottom of the menu + // Does not set color of the text in the table itself gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0xFF); gDisplayListHead = func_8009B9D0(gDisplayListHead, D_020015A4); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x32, 0x00, 0x00, 0xFF); @@ -6003,34 +6003,34 @@ void render_menus(MenuItem* arg0) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x32, 0x32, 0x00, 0xFF); gDisplayListHead = func_8009B9D0(gDisplayListHead, D_02001658); break; - case 0xD6: /* switch 6 */ + case MENU_ITEM_TYPE_0D6: func_8009A76C(arg0->D_8018DEE0_index, arg0->column, arg0->row, -1); break; - case 0xD7: /* switch 6 */ + case MENU_ITEM_TYPE_0D7: func_800A0DFC(); break; - case 0xD8: /* switch 6 */ - case 0xD9: /* switch 6 */ + case MENU_ITEM_TYPE_0D8: + case MENU_ITEM_TYPE_0D9: func_800A0EB8(arg0, arg0->type - 0xD8); break; - case 0x1: /* switch 6 */ + case MENU_ITEM_UI_START_BACKGROUND: gDisplayListHead = render_menu_textures(gDisplayListHead, gMenuTexturesBackground[has_unlocked_extra_mode()], arg0->column, arg0->row); break; - case 0x2: /* switch 6 */ - func_8004C8D4((arg0->column + 0xA0), (arg0->row + 0x47)); + case MENU_ITEM_UI_LOGO_AND_COPYRIGHT: + render_game_logo((arg0->column + 0xA0), (arg0->row + 0x47)); gDisplayListHead = render_menu_textures(gDisplayListHead, seg2_copyright_1996_texture, arg0->column, arg0->row); break; - case 0x3: /* switch 6 */ + case MENU_ITEM_UI_PUSH_START_BUTTON: if (((gGlobalTimer / 8) % 3) != 0) { gDisplayListHead = render_menu_textures(gDisplayListHead, seg2_push_start_button_texture, arg0->column, arg0->row); } break; - case 0x5: /* switch 6 */ + case MENU_ITEM_UI_START_RECORD_TIME: var_t0 = (s32) ((f32) (get_string_width(CourseManager_GetProps()->Name) + 5) * 0.9f) / 2; gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - var_t0, 0x0000007B, var_t0 + 0xA0, 0x000000A4, 0, 0, 0, 0x00000096); - set_text_color(1); + set_text_color(TEXT_GREEN); print_text1_center_mode_1(0x0000009B, 0x0000008C, CourseManager_GetProps()->Name, 0, 0.9f, 0.9f); temp_v1 = func_800B4EB4(0, 7) & 0xFFFFF; if (temp_v1 < 0x1EAA) { @@ -6038,7 +6038,7 @@ void render_menus(MenuItem* arg0) { } else if (temp_v1 < 0x2329) { set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(3); + set_text_color(TEXT_YELLOW); } get_time_record_minutes(temp_v1, sp80); func_800939C8(0x00000077, 0x000000A0, sp80, 0, 1.0f, 1.0f); @@ -6049,7 +6049,7 @@ void render_menus(MenuItem* arg0) { get_time_record_centiseconds(temp_v1, sp80); func_800939C8(0x000000B4, 0x000000A0, sp80, 0, 1.0f, 1.0f); break; - case 0x4: /* switch 6 */ + case MENU_ITEM_UI_NO_CONTROLLER: var_t0 = get_string_width(gTextNoController[0]); temp_v1 = get_string_width(gTextNoController[1]); if (var_t0 < temp_v1) { @@ -6059,38 +6059,38 @@ void render_menus(MenuItem* arg0) { temp_t5 = (s32) (((why * 2) + 0.5) * 16.0) / 2; gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - temp_t2, 0xB6 - temp_t5, temp_t2 + 0xA0, temp_t5 + 0xB6, 0, 0, 0, 0x00000096); - set_text_color(4); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); for (temp_t9 = 0; temp_t9 < 2; temp_t9++) { print_text1_center_mode_1(0xA0 * one - floatone * why, (s32) (0xB4 * one + ((f32) (temp_t9 * 0x12) * why)), gTextNoController[temp_t9], 0, why, why); } break; - case 0x23: /* switch 6 */ - case 0x24: /* switch 6 */ - case 0x25: /* switch 6 */ + case MAIN_MENU_BACKGROUND: + case CHARACTER_SELECT_BACKGROUND: + case COURSE_SELECT_BACKGROUND: gDisplayListHead = func_8009BC9C(gDisplayListHead, gMenuTexturesBackground[has_unlocked_extra_mode()], arg0->column, arg0->row, 3, 0); break; - case 0xA: /* switch 6 */ + case MENU_ITEM_UI_GAME_SELECT: gDisplayListHead = render_menu_textures(gDisplayListHead, seg2_game_select_texture, arg0->column, arg0->row); break; - case 0xB: /* switch 6 */ - case 0xC: /* switch 6 */ - case 0xD: /* switch 6 */ - case 0xE: /* switch 6 */ + case MENU_ITEM_UI_1P_GAME: + case MENU_ITEM_UI_2P_GAME: + case MENU_ITEM_UI_3P_GAME: + case MENU_ITEM_UI_4P_GAME: var_a1 = arg0->type - 0xB; func_800A8270(var_a1, arg0); func_800A0FA4(arg0, var_a1); break; - case 0xF: /* switch 6 */ + case MENU_ITEM_UI_OK: func_800A8564(arg0); gDisplayListHead = func_8009BC9C(gDisplayListHead, D_0200487C, arg0->column, arg0->row, 2, arg0->unk1C); break; - case 0x10: /* switch 6 */ - case 0x11: /* switch 6 */ + case MAIN_MENU_OPTION_GFX: + case MAIN_MENU_DATA_GFX: var_a1 = arg0->type - 0xF; - if (arg0->unk1C < 0x20) { - temp_t9 = (arg0->unk1C * 0x3A) / 64; + if (arg0->param1 < 0x20) { + temp_t9 = (arg0->param1 * 0x3A) / 64; if (var_a1 == gMainMenuSelectionDepth) { gDisplayListHead = draw_flash_select_case_fast(gDisplayListHead, arg0->column + temp_t9, arg0->row, @@ -6105,43 +6105,43 @@ void render_menus(MenuItem* arg0) { gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E8254[var_v1], arg0->column, arg0->row, 2, arg0->unk1C); break; - case 0x12: /* switch 6 */ - case 0x13: /* switch 6 */ - case 0x14: /* switch 6 */ - case 0x15: /* switch 6 */ - case 0x16: /* switch 6 */ - case 0x17: /* switch 6 */ - case 0x18: /* switch 6 */ - case 0x19: /* switch 6 */ + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: + case MENU_ITEM_TYPE_015: + case MENU_ITEM_TYPE_016: + case MENU_ITEM_TYPE_017: + case MAIN_MENU_TIME_TRIALS_BEGIN: + case MAIN_MENU_TIME_TRIALS_DATA: var_v1 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; var_a1 = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; - switch (arg0->type) { /* switch 5 */ - case 0x12: /* switch 5 */ - case 0x13: /* switch 5 */ - case 0x14: /* switch 5 */ - case 0x15: /* switch 5 */ + switch (arg0->type) { + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: + case MENU_ITEM_TYPE_015: if ((var_a1 != 0) && (var_a1 != 2)) { var_v1 = -1; } var_a1 = 18; - sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type]); + sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type - MAIN_MENU_50CC]); break; - case 0x16: /* switch 5 */ - case 0x17: /* switch 5 */ + case MENU_ITEM_TYPE_016: + case MENU_ITEM_TYPE_017: if (var_a1 != 2) { var_v1 = -1; } else { var_a1 = 22; - sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type]); + sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type - MAIN_MENU_50CC]); } break; - case 0x18: /* switch 5 */ - case 0x19: /* switch 5 */ + case MAIN_MENU_TIME_TRIALS_BEGIN: + case MAIN_MENU_TIME_TRIALS_DATA: if (var_a1 != 1) { var_v1 = -1; } else { var_a1 = 24; - sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type]); + sp9C = segmented_to_virtual_dupe(D_800E8234[arg0->type - MAIN_MENU_50CC]); } break; } @@ -6163,17 +6163,17 @@ void render_menus(MenuItem* arg0) { gDisplayListHead = render_menu_textures(gDisplayListHead, sp9C, arg0->column, arg0->row); } break; - case 0x1B: /* switch 6 */ + case MENU_ITEM_TYPE_01B: func_800A10CC(arg0); break; - case 0x2A: /* switch 6 */ + case CHARACTER_SELECT_MENU_PLAYER_SELECT_BANNER: gDisplayListHead = render_menu_textures(gDisplayListHead, D_02004B4C, arg0->column, arg0->row); break; - case 0x34: /* switch 6 */ - case 0x35: /* switch 6 */ - case 0x36: /* switch 6 */ - case 0x37: /* switch 6 */ - temp_a0 = arg0->type - 0x34; + case CHARACTER_SELECT_MENU_1P_CURSOR: + case CHARACTER_SELECT_MENU_2P_CURSOR: + case CHARACTER_SELECT_MENU_3P_CURSOR: + case CHARACTER_SELECT_MENU_4P_CURSOR: + temp_a0 = arg0->type - CHARACTER_SELECT_MENU_1P_CURSOR; if (gCharacterGridSelections[temp_a0]) { if (D_8018EDE8[temp_a0] == 0) { temp_t2 = 0x000000FF; @@ -6186,99 +6186,99 @@ void render_menus(MenuItem* arg0) { } temp_t2 += 0xBF; } - func_800A11D0(arg0, temp_a0, temp_t2); + render_cursor_player(arg0, temp_a0, temp_t2); } break; - case 0x33: /* switch 6 */ + case CHARACTER_SELECT_MENU_OK: func_800A8564(arg0); gDisplayListHead = func_8009BC9C(gDisplayListHead, D_02004B74, arg0->column, arg0->row, 2, arg0->unk1C); break; - case 0x2B: /* switch 6 */ - case 0x2C: /* switch 6 */ - case 0x2D: /* switch 6 */ - case 0x2E: /* switch 6 */ - case 0x2F: /* switch 6 */ - case 0x30: /* switch 6 */ - case 0x31: /* switch 6 */ - case 0x32: /* switch 6 */ + case CHARACTER_SELECT_MENU_MARIO: + case CHARACTER_SELECT_MENU_LUIGI: + case CHARACTER_SELECT_MENU_TOAD: + case CHARACTER_SELECT_MENU_PEACH: + case CHARACTER_SELECT_MENU_YOSHI: + case CHARACTER_SELECT_MENU_DK: + case CHARACTER_SELECT_MENU_WARIO: + case CHARACTER_SELECT_MENU_BOWSER: func_800A12BC(arg0, segmented_to_virtual_dupe(D_800E7D54[arg0->type - 0x2B])); /* fallthrough */ - case 0xA0: /* switch 6 */ - case 0xA1: /* switch 6 */ + case MENU_ITEM_TYPE_0A0: + case MENU_ITEM_TYPE_0A1: func_8009A76C(arg0->D_8018DEE0_index, arg0->column, arg0->row, arg0->unk1C); break; - case 0x58: /* switch 6 */ - case 0x59: /* switch 6 */ - case 0x5A: /* switch 6 */ - case 0x5B: /* switch 6 */ - case 0x5C: /* switch 6 */ + case MENU_ITEM_TYPE_058: + case COURSE_SELECT_COURSE_NAMES: + case MENU_ITEM_TYPE_05A: + case MENU_ITEM_TYPE_05B: + case COURSE_SELECT_BATTLE_NAMES: func_800A8A98(arg0); gDisplayListHead = - render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg0->type - 0x52]), + render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg0->type - COURSE_SELECT_MAP_SELECT]), arg0->column, arg0->row); func_800A8CA4(arg0); break; - case 0x52: /* switch 6 */ + case COURSE_SELECT_MAP_SELECT: gDisplayListHead = - render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg0->type - 0x52]), + render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg0->type - COURSE_SELECT_MAP_SELECT]), arg0->column, arg0->row); break; - case 0x5F: /* switch 6 */ - case 0x60: /* switch 6 */ - case 0x61: /* switch 6 */ - case 0x62: /* switch 6 */ + case MENU_ITEM_TYPE_05F: + case MENU_ITEM_TYPE_060: + case MENU_ITEM_TYPE_061: + case MENU_ITEM_TYPE_062: func_800A1500(arg0); break; - case 0x53: /* switch 6 */ - case 0x54: /* switch 6 */ - case 0x55: /* switch 6 */ - case 0x56: /* switch 6 */ + case COURSE_SELECT_MUSHROOM_CUP: + case COURSE_SELECT_FLOWER_CUP: + case COURSE_SELECT_STAR_CUP: + case COURSE_SELECT_SPECIAL_CUP: var_a1 = arg0->type - 0x53; func_800A890C(var_a1, arg0); func_800A143C(arg0, var_a1); break; - case 0x5D: /* switch 6 */ + case COURSE_SELECT_OK: func_800A8564(arg0); - gDisplayListHead = func_8009BC9C(gDisplayListHead, D_02004E80, arg0->column, arg0->row, 2, arg0->unk1C); + gDisplayListHead = func_8009BC9C(gDisplayListHead, D_02004E80, arg0->column, arg0->row, 2, arg0->param1); break; - case 0x65: /* switch 6 */ - case 0x66: /* switch 6 */ - if (arg0->type == 0x00000065) { - var_f0 = 0.6f; + case MENU_ITEM_TYPE_065: + case MENU_ITEM_TYPE_066: + if (arg0->type == MENU_ITEM_TYPE_065) { + scaleX = 0.6f; } else { - var_f0 = 0.8f; + scaleX = 0.8f; } func_800A86E8(arg0); set_text_color(3); - print_text_mode_1(arg0->column + 8, arg0->row + 0x10, gBestTimeText[arg0->type - 0x65], 0, var_f0, 0.8f); + print_text_mode_1(arg0->column + 8, arg0->row + 0x10, gBestTimeText[arg0->type - MENU_ITEM_TYPE_065], 0, scaleX, 0.8f); func_800A874C(arg0); break; - case 0x6E: /* switch 6 */ - func_800A8E14(arg0); + case MENU_ITEM_TYPE_06E: + render_battle_introduction(arg0); break; - case 0x67: /* switch 6 */ + case MENU_ITEM_TYPE_067: func_800A8EC0(arg0); break; - case 0x68: /* switch 6 */ + case MENU_ITEM_TYPE_068: gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, arg0->row + 0x11, 1, 1, 1, 0x000000FF); gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E8294[gCCSelection]), arg0->column, arg0->row); break; - case 0x69: /* switch 6 */ + case MENU_ITEM_TYPE_069: func_800A8F48(arg0); break; - case 0x78: /* switch 6 */ - case 0x79: /* switch 6 */ - case 0x7A: /* switch 6 */ - case 0x7B: /* switch 6 */ - var_a1 = arg0->type - 0x78; + case MENU_ITEM_TYPE_078: + case MENU_ITEM_TYPE_079: + case MENU_ITEM_TYPE_07A: + case MENU_ITEM_TYPE_07B: + var_a1 = arg0->type - MENU_ITEM_TYPE_078; func_800A90D4(var_a1, arg0); func_800A143C(arg0, var_a1); break; - case 0x8C: /* switch 6 */ - if ((gMainMenuSelectionDepth >= 5) && (var_a1 == (arg0->type - var_v1))) { - if (gMainMenuSelectionDepth >= 6) { + case MENU_ITEM_TYPE_08C: + if ((gMainMenuSelectionDepth >= MAIN_MENU_MODE_SUB_SELECT) && (var_a1 == (arg0->type - var_v1))) { + if (gMainMenuSelectionDepth >= MAIN_MENU_MODE_SUB_SELECT) { gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, arg0->row + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); @@ -6291,199 +6291,199 @@ void render_menus(MenuItem* arg0) { arg0->row + 0x11, 1, 1, 1, 0x000000FF); } gDisplayListHead = render_menu_textures(gDisplayListHead, seg2_data_texture, arg0->column, arg0->row); - set_text_color(3); + set_text_color(TEXT_YELLOW); print_text1_left(0x00000125, 0x0000001C, gTextMenuData, 0, 0.55f, 0.55f); break; - case 0x8D: /* switch 6 */ + case MENU_ITEM_TYPE_08D: func_800A1780(arg0); break; - case 0x7C: /* switch 6 */ - case 0x7D: /* switch 6 */ - case 0x7E: /* switch 6 */ - case 0x7F: /* switch 6 */ - case 0x80: /* switch 6 */ - case 0x81: /* switch 6 */ - case 0x82: /* switch 6 */ - case 0x83: /* switch 6 */ - case 0x84: /* switch 6 */ - case 0x85: /* switch 6 */ - case 0x86: /* switch 6 */ - case 0x87: /* switch 6 */ - case 0x88: /* switch 6 */ - case 0x89: /* switch 6 */ - case 0x8A: /* switch 6 */ - case 0x8B: /* switch 6 */ + case MENU_ITEM_TYPE_07C: + case MENU_ITEM_TYPE_07D: + case MENU_ITEM_TYPE_07E: + case MENU_ITEM_TYPE_07F: + case MENU_ITEM_TYPE_080: + case MENU_ITEM_TYPE_081: + case MENU_ITEM_TYPE_082: + case MENU_ITEM_TYPE_083: + case MENU_ITEM_TYPE_084: + case MENU_ITEM_TYPE_085: + case MENU_ITEM_TYPE_086: + case MENU_ITEM_TYPE_087: + case MENU_ITEM_TYPE_088: + case MENU_ITEM_TYPE_089: + case MENU_ITEM_TYPE_08A: + case MENU_ITEM_TYPE_08B: func_800A15EC(arg0); break; - case 0x96: /* switch 6 */ - set_text_color(4); - print_text1_left(arg0->column, arg0->row, gCupNames[D_800DC540], arg0->unk1C, arg0->unk24, 1.0f); + case MENU_ITEM_TYPE_096: + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); + print_text1_left(arg0->column, arg0->row, gCupNames[D_800DC540], arg0->param1, arg0->paramf, 1.0f); break; - case 0x97: /* switch 6 */ - set_text_color(5); - print_text_mode_1(arg0->column, arg0->row, CourseManager_GetProps()->Name, arg0->unk1C, arg0->unk24, 1.0f); + case MENU_ITEM_TYPE_097: + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + print_text_mode_1(arg0->column, arg0->row, CourseManager_GetProps()->Name, arg0->param1, arg0->paramf, 1.0f); break; - case 0x98: /* switch 6 */ + case MENU_ITEM_TYPE_098: func_800A2D1C(arg0); break; - case 0x5E: /* switch 6 */ + case MENU_ITEM_TYPE_05E: gDisplayListHead = func_80096CD8(gDisplayListHead, 0x00000019, 0x00000072, 0x0000007CU, 0x0000004AU); break; - case 0xAA: /* switch 6 */ + case MENU_ITEM_TYPE_0AA: func_800A2EB8(arg0); break; - case 0xAB: /* switch 6 */ + case MENU_ITEM_TYPE_0AB: func_800A34A8(arg0); break; - case 0xAC: /* switch 6 */ + case MENU_ITEM_TYPE_0AC: func_800A6154(arg0); break; - case 0xAF: /* switch 6 */ + case MENU_ITEM_TYPE_0AF: func_800A6034(arg0); break; - case 0xB0: /* switch 6 */ + case MENU_ITEM_TYPE_0B0: func_800A638C(arg0); break; - case 0xB1: /* switch 6 */ - case 0xB2: /* switch 6 */ - case 0xB3: /* switch 6 */ - case 0xB4: /* switch 6 */ - if (arg0->cursor != 0) { - var_v1 = arg0->type - 0xB1; + case MENU_ITEM_TYPE_0B1: + case MENU_ITEM_TYPE_0B2: + case MENU_ITEM_TYPE_0B3: + case MENU_ITEM_TYPE_0B4: + if (arg0->state != 0) { + var_v1 = arg0->type - MENU_ITEM_TYPE_0B1; gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D54[D_800EFD64[gCharacterSelections[var_v1]]]), arg0->column, arg0->row); - func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, var_v1, arg0->unk1C); - func_800A11D0(arg0, var_v1, 0x000000FF); + func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, var_v1, arg0->param1); + render_cursor_player(arg0, var_v1, 0x000000FF); } break; - case 0xB9: /* switch 6 */ + case MENU_ITEM_TYPE_0B9: func_800A3C84(arg0); break; - case 0xBA: /* switch 6 */ + case MENU_ITEM_TYPE_0BA: func_800A3E60(arg0); break; - case 0xBC: /* switch 6 */ - func_800A4A24(arg0); + case MENU_ITEM_ANNOUNCE_GHOST: + render_menu_item_announce_ghost(arg0); break; - case 0xC7: /* switch 6 */ + case MENU_ITEM_PAUSE: render_pause_menu(arg0); break; - case 0xBD: /* switch 6 */ - func_800A5738(arg0); + case MENU_ITEM_END_COURSE_OPTION: + render_menu_item_end_course_option(arg0); break; - case 0xE6: /* switch 6 */ - func_800A1924(arg0); + case MENU_ITEM_DATA_COURSE_IMAGE: + render_menu_item_data_course_image(arg0); break; - case 0xE7: /* switch 6 */ - func_800A1A20(arg0); + case MENU_ITEM_DATA_COURSE_INFO: + render_menu_item_data_course_info(arg0); break; - case 0xE8: /* switch 6 */ - func_800A1BE0(arg0); + case MENU_ITEM_DATA_COURSE_SELECTABLE: + menu_item_data_course_selectable(arg0); break; - case 0xE9: /* switch 6 */ + case MENU_ITEM_TYPE_0E9: func_800A1DE0(arg0); break; - case 0xEA: /* switch 6 */ + case MENU_ITEM_TYPE_0EA: func_800A1F30(arg0); break; - case 0xF0: /* switch 6 */ + case MENU_ITEM_TYPE_0F0: func_800A1FB0(arg0); break; - case 0xF1: /* switch 6 */ + case MENU_ITEM_TYPE_0F1: gDisplayListHead = render_menu_textures(gDisplayListHead, D_02004638, arg0->column, arg0->row); break; - case 0x10E: /* switch 6 */ + case MENU_ITEM_TYPE_10E: func_800A70E8(arg0); break; - case 0x12B: /* switch 6 */ + case MENU_ITEM_TYPE_12B: func_800A7258(arg0); break; - case 0x12C: /* switch 6 */ + case MENU_ITEM_TYPE_12C: func_800A72FC(arg0); break; - case 0x12D: /* switch 6 */ + case MENU_ITEM_TYPE_12D: func_800A7448(arg0); break; - case 0x12E: /* switch 6 */ + case MENU_ITEM_TYPE_12E: func_800A75A0(arg0); break; - case 0x12F: /* switch 6 */ + case MENU_ITEM_TYPE_12F: func_800A761C(arg0); break; - case 0x130: /* switch 6 */ - if (arg0->cursor != 0) { + case MENU_ITEM_TYPE_130: + if (arg0->state != 0) { gDisplayListHead = render_menu_textures( gDisplayListHead, segmented_to_virtual_dupe(D_800E7D54[D_800EFD64[D_802874D8.unk1E]]), arg0->column, arg0->row); - func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, 0, arg0->unk1C); + func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, 0, arg0->param1); } break; - case 0x190: /* switch 6 */ - case 0x191: /* switch 6 */ - case 0x192: /* switch 6 */ - case 0x193: /* switch 6 */ - case 0x194: /* switch 6 */ - case 0x195: /* switch 6 */ - case 0x196: /* switch 6 */ - case 0x197: /* switch 6 */ - case 0x198: /* switch 6 */ - case 0x199: /* switch 6 */ - case 0x19A: /* switch 6 */ - case 0x19B: /* switch 6 */ - case 0x19C: /* switch 6 */ - case 0x19D: /* switch 6 */ - case 0x19E: /* switch 6 */ - case 0x19F: /* switch 6 */ - case 0x1A0: /* switch 6 */ - case 0x1A1: /* switch 6 */ - case 0x1A2: /* switch 6 */ - case 0x1A3: /* switch 6 */ - case 0x1A4: /* switch 6 */ - case 0x1A5: /* switch 6 */ - case 0x1A6: /* switch 6 */ - case 0x1A7: /* switch 6 */ - case 0x1A8: /* switch 6 */ - case 0x1A9: /* switch 6 */ - case 0x1AA: /* switch 6 */ - case 0x1AB: /* switch 6 */ - case 0x1AC: /* switch 6 */ - case 0x1AD: /* switch 6 */ - case 0x1AE: /* switch 6 */ - case 0x1AF: /* switch 6 */ - case 0x1B0: /* switch 6 */ - case 0x1B1: /* switch 6 */ - case 0x1B2: /* switch 6 */ - case 0x1B3: /* switch 6 */ - case 0x1B4: /* switch 6 */ - case 0x1B5: /* switch 6 */ - case 0x1B6: /* switch 6 */ - case 0x1B7: /* switch 6 */ - case 0x1B8: /* switch 6 */ - case 0x1B9: /* switch 6 */ - case 0x1BA: /* switch 6 */ - case 0x1BB: /* switch 6 */ - case 0x1BC: /* switch 6 */ - case 0x1BD: /* switch 6 */ - case 0x1BE: /* switch 6 */ - case 0x1BF: /* switch 6 */ - case 0x1C0: /* switch 6 */ - case 0x1C1: /* switch 6 */ - case 0x1C2: /* switch 6 */ - case 0x1C3: /* switch 6 */ - case 0x1C4: /* switch 6 */ - case 0x1C5: /* switch 6 */ - case 0x1C6: /* switch 6 */ - case 0x1C7: /* switch 6 */ - case 0x1C8: /* switch 6 */ - case 0x1C9: /* switch 6 */ - case 0x1CA: /* switch 6 */ - case 0x1CB: /* switch 6 */ - case 0x1CC: /* switch 6 */ - case 0x1CD: /* switch 6 */ - case 0x1CE: /* switch 6 */ - func_800A7790(arg0); + case MENU_ITEM_TYPE_190: + case MENU_ITEM_TYPE_191: + case MENU_ITEM_TYPE_192: + case MENU_ITEM_TYPE_193: + case MENU_ITEM_TYPE_194: + case MENU_ITEM_TYPE_195: + case MENU_ITEM_TYPE_196: + case MENU_ITEM_TYPE_197: + case MENU_ITEM_TYPE_198: + case MENU_ITEM_TYPE_199: + case MENU_ITEM_TYPE_19A: + case MENU_ITEM_TYPE_19B: + case MENU_ITEM_TYPE_19C: + case MENU_ITEM_TYPE_19D: + case MENU_ITEM_TYPE_19E: + case MENU_ITEM_TYPE_19F: + case MENU_ITEM_TYPE_1A0: + case MENU_ITEM_TYPE_1A1: + case MENU_ITEM_TYPE_1A2: + case MENU_ITEM_TYPE_1A3: + case MENU_ITEM_TYPE_1A4: + case MENU_ITEM_TYPE_1A5: + case MENU_ITEM_TYPE_1A6: + case MENU_ITEM_TYPE_1A7: + case MENU_ITEM_TYPE_1A8: + case MENU_ITEM_TYPE_1A9: + case MENU_ITEM_TYPE_1AA: + case MENU_ITEM_TYPE_1AB: + case MENU_ITEM_TYPE_1AC: + case MENU_ITEM_TYPE_1AD: + case MENU_ITEM_TYPE_1AE: + case MENU_ITEM_TYPE_1AF: + case MENU_ITEM_TYPE_1B0: + case MENU_ITEM_TYPE_1B1: + case MENU_ITEM_TYPE_1B2: + case MENU_ITEM_TYPE_1B3: + case MENU_ITEM_TYPE_1B4: + case MENU_ITEM_TYPE_1B5: + case MENU_ITEM_TYPE_1B6: + case MENU_ITEM_TYPE_1B7: + case MENU_ITEM_TYPE_1B8: + case MENU_ITEM_TYPE_1B9: + case MENU_ITEM_TYPE_1BA: + case MENU_ITEM_TYPE_1BB: + case MENU_ITEM_TYPE_1BC: + case MENU_ITEM_TYPE_1BD: + case MENU_ITEM_TYPE_1BE: + case MENU_ITEM_TYPE_1BF: + case MENU_ITEM_TYPE_1C0: + case MENU_ITEM_TYPE_1C1: + case MENU_ITEM_TYPE_1C2: + case MENU_ITEM_TYPE_1C3: + case MENU_ITEM_TYPE_1C4: + case MENU_ITEM_TYPE_1C5: + case MENU_ITEM_TYPE_1C6: + case MENU_ITEM_TYPE_1C7: + case MENU_ITEM_TYPE_1C8: + case MENU_ITEM_TYPE_1C9: + case MENU_ITEM_TYPE_1CA: + case MENU_ITEM_TYPE_1CB: + case MENU_ITEM_TYPE_1CC: + case MENU_ITEM_TYPE_1CD: + case MENU_ITEM_TYPE_1CE: + menu_item_credits_render(arg0); break; } } @@ -6522,30 +6522,25 @@ s32 func_800A095C(char* someString, s32 len, s32 column, s32 row) { return nonTerminatorCount; } -#ifdef NON_MATCHING -// Non-matching due to the constants 9 and 0xA being saved to the wrong registers -// Same functionality, but doesn't match byte for byte :/ -void func_800A09E0(MenuItem* arg0) { - s32 table_row, x = 0x20, y; - gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH - 1, 194); - for (table_row = 0; table_row < 9; table_row++) { - if ((D_800E86D0[0] != 0) || ((table_row != 0) && (table_row != 8))) { - y = (table_row * 0xA) + arg0->row; - gDisplayListHead = render_menu_textures(gDisplayListHead, D_0200157C, x, y); +void func_800A09E0(MenuItem *item) { + s32 table_row; + + gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 319, 194); + for (table_row = 0; table_row < 9; table_row++) { + if (gControllerPakScrollDirection[0] == CONTROLLER_PAK_SCROLL_DIR_NONE && (table_row == 0 || table_row == 8)) { + continue; } - } + gDisplayListHead = render_menu_textures(gDisplayListHead, D_0200157C, 0x20, (table_row * 0xA) + item->row); + } } -#else -GLOBAL_ASM("asm/non_matchings/menu_items/func_800A09E0.s") -#endif void func_800A0AD0(UNUSED MenuItem* arg0) { MenuItem* temp_t1; - // Find MenuItem with a type/id of 0xDA - temp_t1 = find_menu_items_dupe(0xDA); + // Find MenuItem with a type/id of MENU_ITEM_TYPE_0DA + temp_t1 = find_menu_items_dupe(MENU_ITEM_TYPE_0DA); if ((gControllerPakMenuSelection != CONTROLLER_PAK_MENU_SELECT_RECORD) && (gControllerPakMenuSelection != CONTROLLER_PAK_MENU_END)) { - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t1->unk20, 0x00, 0xFF); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t1->param2, 0x00, 0xFF); gDisplayListHead = render_menu_textures(gDisplayListHead, D_02001874, 0x24, (gControllerPakSelectedTableRow * 0xA) + 0x7C); } @@ -6618,7 +6613,7 @@ void func_800A0EB8(UNUSED MenuItem* arg0, s32 arg1) { Unk_D_800E70A0* temp_v0; MenuItem* temp_t3; - temp_t3 = find_menu_items_dupe(0x000000DA); + temp_t3 = find_menu_items_dupe(MENU_ITEM_TYPE_0DA); if (arg1 == 0) { if (gControllerPakMenuSelection == CONTROLLER_PAK_MENU_END) { var_t1 = 1; @@ -6634,12 +6629,12 @@ void func_800A0EB8(UNUSED MenuItem* arg0, s32 arg1) { } } temp_v0 = &D_800E7278[var_t1]; - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t3->unk20, 0x00, 0xFF); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t3->param2, 0x00, 0xFF); gDisplayListHead = render_menu_textures(gDisplayListHead, D_0200184C, (s32) temp_v0->column, (s32) temp_v0->row); } void func_800A0FA4(MenuItem* arg0, s32 arg1) { - switch (arg0->cursor) { + switch (arg0->state) { case 0: case 2: case 3: @@ -6651,9 +6646,9 @@ void func_800A0FA4(MenuItem* arg0, s32 arg1) { case 1: case 4: gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 0]), - arg0->column, arg0->row, 2, arg0->unk1C); + arg0->column, arg0->row, 2, arg0->param1); gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 1]), - arg0->column, arg0->row, 2, arg0->unk1C); + arg0->column, arg0->row, 2, arg0->param1); break; } } @@ -6662,15 +6657,15 @@ void func_800A10CC(MenuItem* arg0) { s32 var_s1; s32 index; - switch (arg0->cursor) { + switch (arg0->state) { case 2: case 3: case 4: case 5: gDisplayListHead = draw_box_fill(gDisplayListHead, 0x0000001E, 0x00000032, 0x00000122, 0x0000006E, 0, 0, 0, 0x000000FF); - index = arg0->cursor - 2; - set_text_color(3); + index = arg0->state - 2; + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 4; var_s1++) { // In a perfect world this would be `D_800E7940[index][var_s1]` print_text_mode_1(0x00000023, 0x41 + (0xD * var_s1), D_800E7940[(index * 4) + var_s1], 0, 0.65f, 0.65f); @@ -6681,7 +6676,7 @@ void func_800A10CC(MenuItem* arg0) { } } -void func_800A11D0(MenuItem* arg0, s32 arg1, s32 arg2) { +void render_cursor_player(MenuItem* arg0, s32 arg1, s32 arg2) { RGBA16* temp_v1; temp_v1 = &D_800E74A8[arg1]; @@ -6700,7 +6695,7 @@ void func_800A12BC(MenuItem* arg0, MenuTexture* arg1) { break; case 1: case 3: - gDisplayListHead = func_8009BC9C(gDisplayListHead, arg1, arg0->column, arg0->row, 2, arg0->unk1C); + gDisplayListHead = func_8009BC9C(gDisplayListHead, arg1, arg0->column, arg0->row, 2, arg0->param1); break; } } @@ -6708,7 +6703,7 @@ void func_800A12BC(MenuItem* arg0, MenuTexture* arg1) { void func_800A1350(MenuItem* arg0) { s32 thing; if (func_800AAFCC(arg0->type - 0x2B) < 0) { - switch (arg0->cursor) { + switch (arg0->state) { case 0: case 2: case 4: @@ -6717,7 +6712,7 @@ void func_800A1350(MenuItem* arg0) { break; case 1: case 3: - thing = arg0->unk1C; + thing = arg0->param1; gDisplayListHead = draw_box_wide(gDisplayListHead, arg0->column + thing, arg0->row, (arg0->column - thing) + 0x40, arg0->row + 0x4C, 0, 0, 0, 0x00000064); break; @@ -6726,7 +6721,7 @@ void func_800A1350(MenuItem* arg0) { } void func_800A143C(MenuItem* arg0, s32 arg1) { - switch (arg0->cursor) { + switch (arg0->state) { case 0: case 2: case 3: @@ -6747,13 +6742,13 @@ void func_800A1500(MenuItem* arg0) { s32 var_a1; var_a1 = 0; - temp_v0 = find_menu_items_dupe(0x00000064); - switch (temp_v0->cursor) { /* irregular */ + temp_v0 = find_menu_items_dupe(MENU_ITEM_TYPE_064); + switch (temp_v0->state) { /* irregular */ case 0: case 1: break; case 2: - if (((temp_v0->unk1C % 4) + 0x5F) != arg0->type) { + if (((temp_v0->param1 % 4) + 0x5F) != arg0->type) { var_a1 = 1; } break; @@ -6798,23 +6793,25 @@ void func_800A1780(MenuItem* arg0) { u32 blue; u32 alpha; - temp_v1 = &D_800E74D0[arg0->unk20]; - temp_a1 = &D_800E74D0[(arg0->unk20 + 1) % 3]; - temp_a2 = 256 - arg0->unk1C; - red = ((temp_v1->red * temp_a2) + (temp_a1->red * arg0->unk1C)) / 256; - green = ((temp_v1->green * temp_a2) + (temp_a1->green * arg0->unk1C)) / 256; - blue = ((temp_v1->blue * temp_a2) + (temp_a1->blue * arg0->unk1C)) / 256; - alpha = ((temp_v1->alpha * temp_a2) + (temp_a1->alpha * arg0->unk1C)) / 256; + temp_v1 = &D_800E74D0[arg0->param2]; + temp_a1 = &D_800E74D0[(arg0->param2 + 1) % 3]; + temp_a2 = 256 - arg0->param1; + red = ((temp_v1->red * temp_a2) + (temp_a1->red * arg0->param1)) / 256; + green = ((temp_v1->green * temp_a2) + (temp_a1->green * arg0->param1)) / 256; + blue = ((temp_v1->blue * temp_a2) + (temp_a1->blue * arg0->param1)) / 256; + alpha = ((temp_v1->alpha * temp_a2) + (temp_a1->alpha * arg0->param1)) / 256; gDPSetPrimColor(gDisplayListHead++, 0, 0, red, green, blue, alpha); gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_02001FA4), arg0->column, arg0->row); } -void func_800A1924(MenuItem* arg0) { +// render course preview +void render_menu_item_data_course_image(MenuItem* arg0) { func_8009A76C(arg0->D_8018DEE0_index, 0x17, 0x84, -1); if (func_800B639C(gTimeTrialDataCourseIndex) >= TIME_TRIAL_DATA_LUIGI_RACEWAY) { gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, 0x57, 0x84, 0x96, 0x95); gDisplayListHead = render_menu_textures(gDisplayListHead, D_02004A0C, 0x57, 0x84); } + // course minimap //! @bug todo: This function will not work in custom courses. func_8004EF9C(gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]); do { @@ -6822,18 +6819,23 @@ void func_800A1924(MenuItem* arg0) { } while (0); } -void func_800A1A20(MenuItem* arg0) { +void render_menu_item_data_course_info(MenuItem* arg0) { s16 courseId; s32 recordType; s32 rowOffset; courseId = gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]; arg0->column = 0x14; + // name of the course set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); print_text1_center_mode_1(0x69, arg0->row + 0x19, CourseManager_GetProps()->Name, 0, 0.75f, 0.75f); + + // distance set_text_color(TEXT_RED); print_text_mode_1(0x2D, arg0->row + 0x28, (char*) &gTextDistance, 0, 0.75f, 0.75f); print_text1_left(0xA5, arg0->row + 0x28, CourseManager_GetProps()->CourseLength, 1, 0.75f, 0.75f); + + // Best lap record set_text_color(TEXT_YELLOW); print_text_mode_1(0xA0, arg0->row + 0x86, gBestTimeText[0], 0, 0.75f, 0.75f); // Print the 3 Lap Time Trial records @@ -6847,13 +6849,13 @@ void func_800A1A20(MenuItem* arg0) { render_lap_times(TIME_TRIAL_1LAP_RECORD, 0x96, arg0->row + 0xE1); } -void func_800A1BE0(MenuItem* arg0) { +void menu_item_data_course_selectable(MenuItem* arg0) { UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; UNUSED s32 stackPadding2; UNUSED char* wut; Unk_D_800E70A0 sp78; - s32 var_s0; + s32 i; s32 var_s1; s32 var_s2; UNUSED s32 thing; @@ -6861,20 +6863,20 @@ void func_800A1BE0(MenuItem* arg0) { temp_s6 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4] .courseRecords[gTimeTrialDataCourseIndex % 4]; - for (var_s0 = 0; var_s0 < 3; var_s0++) { - wut = gTextMenuOption[var_s0]; + for (i = 0; i < ARRAY_COUNT(gTextMenuOption); i++) { + wut = gTextMenuOption[i]; var_s1 = 0; - if (var_s0 == gCourseRecordsMenuSelection) { - var_s2 = 5; + if (i == gCourseRecordsMenuSelection) { + var_s2 = TEXT_BLUE_GREEN_RED_CYCLE_2; } else { - var_s2 = 1; - switch (var_s0) { /* irregular */ - case 1: + var_s2 = TEXT_GREEN; + switch (i) { /* irregular */ + case COURSE_RECORDS_MENU_ERASE_RECORDS: if (temp_s6->unknownBytes[0] == 0) { var_s1 = 1; } break; - case 2: + case COURSE_RECORDS_MENU_ERASE_GHOST: if (func_800B639C((s32) gTimeTrialDataCourseIndex) < 0) { var_s1 = 1; } @@ -6882,12 +6884,12 @@ void func_800A1BE0(MenuItem* arg0) { } } if (var_s1 != 0) { - set_text_color(0); + set_text_color(TEXT_BLUE); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0x96); - print_text_mode_2(0x00000025, 0x3F + (0xD * var_s0), gTextMenuOption[var_s0], 0, 0.6f, 0.6f); + print_text_mode_2(0x00000025, 0x3F + (0xD * i), gTextMenuOption[i], 0, 0.6f, 0.6f); } else { set_text_color(var_s2); - print_text_mode_1(0x00000025, 0x3F + (0xD * var_s0), gTextMenuOption[var_s0], 0, 0.6f, 0.6f); + print_text_mode_1(0x00000025, 0x3F + (0xD * i), gTextMenuOption[i], 0, 0.6f, 0.6f); } } sp78.column = 0x001F; @@ -6906,7 +6908,7 @@ void func_800A1DE0(MenuItem* arg0) { s32 var_s1; UNUSED char* wut; - set_text_color(1); + set_text_color(TEXT_GREEN); for (var_s1 = 0; var_s1 < 3; var_s1++) { // Removing `wut` introduces counter intuitive changes to how this loop is handled // Also, in a perfect world this would be `gEraseBestGhostText[gCourseRecordsMenuSelection - 1][var_s1]` @@ -6941,111 +6943,101 @@ void func_800A1F30(UNUSED MenuItem* unused) { } } -#ifdef NON_MATCHING +//#ifdef NON_MATCHING // Register allocation stuff, minor stack diffs void func_800A1FB0(MenuItem* arg0) { Unk_D_800E70A0 spE0; - UNUSED s32 stackPadding0; - UNUSED s32 stackPadding1; - UNUSED s32 stackPadding2; - UNUSED s32 stackPadding3; - UNUSED s32 stackPadding4; - UNUSED s32 stackPadding5; + s32 i; s32 var_s5; s32 var_s4; - UNUSED s32 stackPadding6; char spB8[3]; - UNUSED s32 stackPadding7; - UNUSED s32 stackPadding8; s32 var_s1; char spA8[3]; s32 var_s2; - UNUSED s32 temp_v0; - UNUSED s32 stackPadding9; char sp98[3]; struct_8018EE10_entry* var_v1; gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x00000140, 0x000000F0, 0, 0, 0, 0x00000064); - switch (D_8018EDEC) { /* switch 1 */ - case 0x15: /* switch 1 */ - case 0x16: /* switch 1 */ - case 0x17: /* switch 1 */ - case 0x18: /* switch 1 */ - for (stackPadding0 = 0; stackPadding0 < 4; stackPadding0++) { - set_text_color_rainbow_if_selected(D_8018EDEC - 0x15, stackPadding0, 3); - print_text_mode_1(0x00000032, 0x55 + (0x23 * stackPadding0), gTextOptionMenu[stackPadding0], 0, 0.9f, 1.0f); - if (stackPadding0 == (D_8018EDEC - 0x15)) { + switch (gSubMenuSelection) { + case SUB_MENU_OPTION_RETURN_GAME_SELECT: + case SUB_MENU_OPTION_SOUND_MODE: + case SUB_MENU_OPTION_COPY_CONTROLLER_PAK: + case SUB_MENU_OPTION_ERASE_ALL_DATA: + for (i = 0; i < ARRAY_COUNT(gTextOptionMenu); i++) { + set_text_color_rainbow_if_selected(gSubMenuSelection - SUB_MENU_OPTION_MIN, i, 3); + print_text_mode_1(0x00000032, 0x55 + (0x23 * i), gTextOptionMenu[i], 0, 0.9f, 1.0f); + if (i == (gSubMenuSelection - SUB_MENU_OPTION_MIN)) { spE0.column = 0x0032; - spE0.row = 0x55 + (0x23 * stackPadding0); + spE0.row = 0x55 + (0x23 * i); } } - set_text_color(1); + set_text_color(TEXT_GREEN); print_text1_center_mode_1(0x000000E6, 0x00000078, gSoundModeNames[gSoundMode], 0, 1.0f, 1.0f); break; - case 0x1E: /* switch 1 */ - case 0x1F: /* switch 1 */ - set_text_color(3); - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - print_text_mode_1(0x00000028, 0x55 + (0x14 * stackPadding0), D_800E7878[stackPadding0], 0, 1.0f, 1.0f); + case SUB_MENU_ERASE_QUIT: + case SUB_MENU_ERASE_ERASE: + set_text_color(TEXT_YELLOW); + for (i = 0; i < 3; i++) { + print_text_mode_1(0x00000028, 0x55 + (0x14 * i), D_800E7878[i], 0, 1.0f, 1.0f); } - for (stackPadding0 = 0; stackPadding0 < 2; stackPadding0++) { - set_text_color_rainbow_if_selected(D_8018EDEC - 0x1E, stackPadding0, 1); - print_text_mode_1(0x00000084, 0x96 + (0x19 * stackPadding0), D_800E7840[stackPadding0], 0, 1.0f, 1.0f); - if (stackPadding0 == (D_8018EDEC - 0x1E)) { + for (i = 0; i < 2; i++) { + set_text_color_rainbow_if_selected(gSubMenuSelection - SUB_MENU_ERASE_MIN, i, 1); + print_text_mode_1(0x00000084, 0x96 + (0x19 * i), D_800E7840[i], 0, 1.0f, 1.0f); + if (i == (gSubMenuSelection - SUB_MENU_ERASE_MIN)) { spE0.column = 0x0084; - spE0.row = 0x96 + (0x19 * stackPadding0); + spE0.row = 0x96 + (0x19 * i); } } break; - case 0x20: /* switch 1 */ - set_text_color(3); - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - print_text_mode_1(0x00000032, 0x55 + (0x14 * stackPadding0), D_800E7884[stackPadding0], 0, 1.0f, 1.0f); + case SUB_MENU_SAVE_DATA_ERASED: + set_text_color(TEXT_YELLOW); + for (i = 0; i < 3; i++) { + print_text_mode_1(0x00000032, 0x55 + (0x14 * i), D_800E7884[i], 0, 1.0f, 1.0f); } break; - case 0x2A: /* switch 1 */ - case 0x2B: /* switch 1 */ - case 0x2C: /* switch 1 */ - case 0x2D: /* switch 1 */ - set_text_color(2); - var_s1 = D_8018EDEC - 0x2A; - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - print_text_mode_1(0x00000032, 0x55 + (0x14 * stackPadding0), D_800E78D0[(var_s1 * 3) + stackPadding0], 0, + case SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA: + case SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA: + case SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P: + case SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P: + set_text_color(TEXT_RED); + var_s1 = gSubMenuSelection - SUB_MENU_COPY_PAK_ERROR_2P_MIN; + for (i = 0; i < 3; i++) { + print_text_mode_1(0x00000032, 0x55 + (0x14 * i), D_800E78D0[(var_s1 * 3) + i], 0, 0.9f, 0.9f); } break; - case 0x34: /* switch 1 */ - case 0x35: /* switch 1 */ - case 0x36: /* switch 1 */ - case 0x37: /* switch 1 */ - set_text_color(2); - var_s1 = D_8018EDEC - 0x34; - for (stackPadding0 = 0; stackPadding0 < 4; stackPadding0++) { - print_text_mode_1(0x00000023, 0x55 + (0x14 * stackPadding0), D_800E7890[(var_s1 * 4) + stackPadding0], 0, + case 0x34: + case 0x35: + case 0x36: + case 0x37: + set_text_color(TEXT_RED); + var_s1 = gSubMenuSelection - 0x34; + for (i = 0; i < 4; i++) { + print_text_mode_1(0x00000023, 0x55 + (0x14 * i), D_800E7890[(var_s1 * 4) + i], 0, 0.8f, 0.8f); } break; - case 0x41: /* switch 1 */ - case 0x42: /* switch 1 */ + case 0x41: + case 0x42: set_text_color(2); - var_s1 = D_8018EDEC - 0x41; - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - print_text_mode_1(0x00000041, 0x55 + (0x14 * stackPadding0), D_800E7900[(var_s1 * 3) + stackPadding0], 0, + var_s1 = gSubMenuSelection - 0x41; + for (i = 0; i < 3; i++) { + print_text_mode_1(0x00000041, 0x55 + (0x14 * i), D_800E7900[(var_s1 * 3) + i], 0, 0.9f, 0.9f); } break; - case 0x46: /* switch 1 */ - case 0x47: /* switch 1 */ + case 0x46: + case 0x47: set_text_color(3); - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - print_text_mode_1(0x00000050, 0x55 + (0x14 * stackPadding0), D_800E7A48[stackPadding0], 0, 1.0f, 1.0f); + for (i = 0; i < 3; i++) { + print_text_mode_1(0x00000050, 0x55 + (0x14 * i), D_800E7A48[i], 0, 1.0f, 1.0f); } break; - case 0x28: /* switch 1 */ - case 0x29: /* switch 1 */ - case 0x32: /* switch 1 */ - case 0x33: /* switch 1 */ - switch (D_8018EDEC) { + case 0x28: + case 0x29: + case 0x32: + case 0x33: + switch (gSubMenuSelection) { case 0x28: case 0x29: var_s5 = 0x28; @@ -7067,8 +7059,8 @@ void func_800A1FB0(MenuItem* arg0) { print_text1_center_mode_1(0x5C + (0x82 * var_s1), 0x0000007D, D_800E7918[var_s1], 0, 0.75f, 0.75f); for (var_s2 = 0; var_s2 < 2; var_s2++) { if (var_s1 != var_s4) { - text_rainbow_effect(D_8018EDEC - var_s5, var_s2, TEXT_GREEN); - if (var_s2 == (D_8018EDEC - var_s5)) { + text_rainbow_effect(gSubMenuSelection - var_s5, var_s2, TEXT_GREEN); + if (var_s2 == (gSubMenuSelection - var_s5)) { spE0.column = 0x20 + (0x89 * var_s1); spE0.row = 0x96 + (0x1E * var_s2); } @@ -7095,8 +7087,8 @@ void func_800A1FB0(MenuItem* arg0) { } } break; - case 0x38: /* switch 1 */ - case 0x39: /* switch 1 */ + case 0x38: + case 0x39: set_text_color(2); for (var_s1 = 0; var_s1 < 2; var_s1++) { print_text1_center_mode_1(0x000000A0, 0x4D + (0x14 * var_s1), D_800E7928[var_s1], 0, 0.8f, 0.8f); @@ -7135,18 +7127,18 @@ void func_800A1FB0(MenuItem* arg0) { } // Register allocation diffs here for (var_s2 = 0; var_s2 < 2; var_s2++) { - if (var_s2 == (D_8018EDEC - 0x38)) { + if (var_s2 == (gSubMenuSelection - 0x38)) { spE0.column = 0x6E + (0x32 * var_s2); spE0.row = 0x00D2; } - text_rainbow_effect((D_8018EDEC - 0x38), var_s2, TEXT_YELLOW); + text_rainbow_effect((gSubMenuSelection - 0x38), var_s2, TEXT_YELLOW); print_text_mode_1(0x6E + (0x32 * var_s2), 0x000000D2, D_800E7930[var_s2], 0, 0.75f, 0.75f); } break; - case 0x3A: /* switch 1 */ - case 0x3B: /* switch 1 */ - case 0x3C: /* switch 1 */ - var_s5 = (D_8018EDEC - 0x3A) / 2; + case 0x3A: + case 0x3B: + case 0x3C: + var_s5 = (gSubMenuSelection - 0x3A) / 2; set_text_color(2); print_text1_center_mode_1(0x000000A0, 0x00000055, D_800E7938[var_s5], 0, 1.0f, 1.0f); for (var_s1 = 0; var_s1 < 2; var_s1++) { @@ -7187,7 +7179,7 @@ void func_800A1FB0(MenuItem* arg0) { } break; } - switch (D_8018EDEC) { /* switch 2 */ + switch (gSubMenuSelection) { /* switch 2 */ case 0x28: /* switch 2 */ case 0x29: /* switch 2 */ case 0x32: /* switch 2 */ @@ -7204,9 +7196,9 @@ void func_800A1FB0(MenuItem* arg0) { } func_800A66A8(arg0, (Unk_D_800E70A0*) &spE0); } -#else -GLOBAL_ASM("asm/non_matchings/menu_items/func_800A1FB0.s") -#endif +//#else +//GLOBAL_ASM("asm/non_matchings/menu_items/func_800A1FB0.s") +//#endif void func_800A2D1C(MenuItem* arg0) { switch (D_80164A28) { @@ -7514,15 +7506,15 @@ void func_800A3E60(MenuItem* arg0) { for (var_s1 = 0; var_s1 < 4; var_s1++) { func_800A4550(var_s1, arg0->column + 0x26, ((0xF * var_s1) - arg0->row) + 0x37); } - switch (arg0->cursor) { /* switch 1 */ - case 1: /* switch 1 */ - case 5: /* switch 1 */ - case 6: /* switch 1 */ - case 7: /* switch 1 */ - case 8: /* switch 1 */ - case 9: /* switch 1 */ - case 10: /* switch 1 */ - case 30: /* switch 1 */ + switch (arg0->cursor) { + case 1: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 30: for (var_s1 = 0; var_s1 < 6; var_s1++) { var_v1 = 0; text_rainbow_effect(arg0->cursor - 5, var_s1, 1); @@ -7756,7 +7748,7 @@ void render_lap_times(s32 recordType, s32 column, s32 row) { GLOBAL_ASM("asm/non_matchings/menu_items/render_lap_times.s") #endif -void func_800A4A24(MenuItem* arg0) { +void render_menu_item_announce_ghost(MenuItem* arg0) { UNUSED s32 stackPadding0; s32 temp_t0; s32 temp_t1; @@ -7970,7 +7962,7 @@ void func_800A54EC(void) { func_800A66A8(sp48, &sp50); } -void func_800A5738(MenuItem* arg0) { +void render_menu_item_end_course_option(MenuItem* arg0) { Unk_D_800E70A0 sp98; UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; @@ -8010,13 +8002,13 @@ void func_800A5738(MenuItem* arg0) { print_text1_center_mode_2(0x000000A0, 0x00000050, CourseManager_GetProps()->Name, 0, 1.0f, 1.0f); switch (arg0->cursor) { /* switch 1 */ - case 1: /* switch 1 */ - case 11: /* switch 1 */ - case 12: /* switch 1 */ - case 13: /* switch 1 */ - case 14: /* switch 1 */ - case 15: /* switch 1 */ - case 16: /* switch 1 */ + case 1: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: set_text_color(2); print_text1_center_mode_2(0x0000009D, 0x00000060, gBestTimeText[0], 0, 0.8f, 0.8f); temp_a0 = func_800B4E24(0); @@ -8517,7 +8509,7 @@ void func_800A761C(MenuItem* arg0) { func_800939C8((arg0->column + sp48) - 0x18, arg0->row, &sp3C[1], 0, 2.0f, 2.0f); } -void func_800A7790(MenuItem* arg0) { +void menu_item_credits_render(MenuItem* arg0) { f32 someScaling; s32 creditIndex; s8 slideDirection; @@ -8783,7 +8775,7 @@ void func_800A7A4C(s32 arg0) { case 0x55: /* switch 8 */ case 0x56: /* switch 8 */ func_800AB164(var_s1); - switch (D_8018EDEC) { /* switch 11; irregular */ + switch (gSubMenuSelection) { /* switch 11; irregular */ case 1: /* switch 11 */ func_800AB020(var_s1); break; @@ -9089,7 +9081,7 @@ void func_800A8564(MenuItem* arg0) { break; case 0x5D: var_a0 = D_02004E80; - if (D_8018EDEC == 3) { + if (gSubMenuSelection == 3) { var_a1 = 1; } break; @@ -9154,7 +9146,7 @@ void func_800A890C(s32 arg0, MenuItem* arg1) { gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); if (arg0 == GetCupIndex()) { - if (D_8018EDEC == 1) { + if (gSubMenuSelection == 1) { gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39); } else { @@ -9179,8 +9171,8 @@ void func_800A8A98(MenuItem* arg0) { gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); for (someIndex = 0; someIndex < GetCupSize(); someIndex++) { - if ((someIndex == GetCupCursorPosition()) && (D_8018EDEC >= 2) && (gModeSelection != GRAND_PRIX)) { - if ((D_8018EDEC == 2) || (D_8018EDEC == 4)) { + if ((someIndex == GetCupCursorPosition()) && (gSubMenuSelection >= 2) && (gModeSelection != GRAND_PRIX)) { + if ((gSubMenuSelection == 2) || (gSubMenuSelection == 4)) { gDisplayListHead = draw_flash_select_case_slow( gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3); @@ -9211,7 +9203,7 @@ void func_800A8CA4(MenuItem* arg0) { gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); if (gModeSelection == GRAND_PRIX) { - if (D_8018EDEC != 3) { + if (gSubMenuSelection != 3) { for (var_s0 = 0; var_s0 < 4; var_s0++) { // Wut? if ((var_s0 != (temp_v0->unk1C % 4)) != 0) { @@ -9225,7 +9217,7 @@ void func_800A8CA4(MenuItem* arg0) { } } -void func_800A8E14(UNUSED MenuItem* arg0) { +void render_battle_introduction(UNUSED MenuItem* arg0) { set_text_color(TEXT_YELLOW); print_text1_center_mode_1(0x98, 0x44, gTextBattleIntroduction[0], 0, 1.0f, 1.0f); print_text_mode_1(0x17, 0x58, gTextBattleIntroduction[1], 0, 0.7f, 0.8f); @@ -9248,7 +9240,7 @@ void func_800A8F48(UNUSED MenuItem* arg0) { s32 temp_s2; s32 var_s1; - switch (D_8018EDEC) { /* irregular */ + switch (gSubMenuSelection) { /* irregular */ case 1: for (var_s1 = 0; var_s1 < 4; var_s1++) { if (func_800B639C((GetCupIndex() * 4) + var_s1) >= 0) { @@ -9492,12 +9484,12 @@ void func_800A9710(MenuItem* arg0) { void func_800A97BC(MenuItem* arg0) { s32 i; - switch (*D_800E86D0) { + switch (*gControllerPakScrollDirection) { case 1: arg0->row -= 2; if (arg0->row < 0x60) { arg0->row = 0x69; - *D_800E86D0 = 0; + *gControllerPakScrollDirection = 0; for (i = 0; i < 8; i++) { if (i < 7) { D_800E86C4[i] = D_800E86C4[i + 1]; @@ -9517,7 +9509,7 @@ void func_800A97BC(MenuItem* arg0) { arg0->row += 2; if (arg0->row >= 0x73) { arg0->row = 0x69; - *D_800E86D0 = 0; + *gControllerPakScrollDirection = 0; for (i = 8; i > 0; i--) { if (i > 1) { D_800E86C4[i] = D_800E86C4[i - 1]; @@ -9532,7 +9524,7 @@ void func_800A97BC(MenuItem* arg0) { D_800E86C4[0] = D_800E86C4[8] = 0; break; default: - *D_800E86D0 = 0; + *gControllerPakScrollDirection = 0; break; } } @@ -9557,7 +9549,7 @@ void func_800A9A98(MenuItem* arg0) { var_v0 = D_800F0CA0[gMainMenuSelectionDepth - 1]; break; case 0x5D: - var_v0 = D_800F0CA0[D_8018EDEC + 11]; + var_v0 = D_800F0CA0[gSubMenuSelection + 11]; break; case 0x33: var_v0 = D_800F0CA0[D_8018EDEE + 7]; @@ -9864,17 +9856,17 @@ void func_800AA2EC(MenuItem* arg0) { if (gControllerPak1State != 0) { var_t1 = 0; switch (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, - (u8*) gExtCode, &gControllerPak1FileNote)) { /* switch 1; irregular */ - case 5: /* switch 1 */ + (u8*) gExtCode, &gControllerPak1FileNote)) { + case 5: break; - case 0: /* switch 1 */ + case 0: arg0->cursor = 1; var_t1 = 1; break; - case 2: /* switch 1 */ + case 2: gControllerPak1State = 0; break; - default: /* switch 1 */ + default: gControllerPak1State = 0; break; } @@ -10451,7 +10443,7 @@ void func_800AB314(MenuItem* arg0) { } switch (gModeSelection) { default: - if (D_8018EDEC != one) { + if (gSubMenuSelection != one) { arg0->cursor = 0; arg0->unk20 = 0; for (var_a1 = 0; var_a1 < GetCupSize(); var_a1++) { @@ -10487,7 +10479,7 @@ void func_800AB314(MenuItem* arg0) { arg0->unk20 = 0; arg0->unk1C = GetCupIndex() * 4; } - if (D_8018EDEC == 3) { + if (gSubMenuSelection == 3) { arg0->cursor = 2; arg0->unk20 = 0; } @@ -10503,7 +10495,7 @@ void func_800AB314(MenuItem* arg0) { arg0->unk20 = 0; arg0->unk1C = (GetCupIndex() * 4) + (((arg0->unk1C % 4) + one) % 4); } else { - if (D_8018EDEC == 3) { + if (gSubMenuSelection == 3) { arg0->cursor = 2; arg0->unk20 = 0; } @@ -10516,14 +10508,14 @@ void func_800AB314(MenuItem* arg0) { arg0->cursor = 3; arg0->unk20 = 0; } - if (D_8018EDEC != 3) { + if (gSubMenuSelection != 3) { arg0->cursor = 0; arg0->unk20 = 0; arg0->unk1C = 0; } break; case 3: - if (D_8018EDEC != 3) { + if (gSubMenuSelection != 3) { arg0->cursor = 0; arg0->unk20 = 0; arg0->unk1C = 0; @@ -10573,7 +10565,7 @@ GLOBAL_ASM("asm/non_matchings/menu_items/func_800AB314.s") void func_800AB904(MenuItem* arg0) { Unk_D_800E70A0* temp_a1; - switch (D_8018EDEC) { /* irregular */ + switch (gSubMenuSelection) { /* irregular */ case 1: temp_a1 = &D_800E7248[arg0->type - 0x65]; if (arg0->column != temp_a1->column) { @@ -10605,13 +10597,13 @@ void func_800AB9B0(MenuItem* arg0) { switch (arg0->cursor) { /* irregular */ case 0: func_800A91D8(arg0, (s32) temp_v1->column, (s32) temp_v1->row); - if (D_8018EDEC == 3) { + if (gSubMenuSelection == 3) { arg0->cursor = 1; } break; case 1: func_800A91D8(arg0, (s32) temp_v1->column, (s32) temp_v1->row); - if (D_8018EDEC == 1) { + if (gSubMenuSelection == 1) { arg0->cursor = 0; } break; @@ -11185,13 +11177,13 @@ void func_800ACF40(MenuItem* arg0) { break; case 2: var_v1 = 0; - switch (gModeSelection) { /* switch 1; irregular */ - case 2: /* switch 1 */ + switch (gModeSelection) { + case 2: if (gGPCurrentRaceRankByPlayerId[temp_a2] != 0) { var_v1 = 1; } break; - case 3: /* switch 1 */ + case 3: if (temp_a2 != gPlayerWinningIndex) { var_v1 = 1; } @@ -11699,8 +11691,8 @@ void func_800AE218(MenuItem* arg0) { if (arg0->cursor != 0) { D_800DC5B8 = 0; } - switch (arg0->cursor) { /* switch 1 */ - case 0: /* switch 1 */ + switch (arg0->cursor) { + case 0: if (arg0->unk1C < 0x1E) { arg0->unk1C++; } @@ -11712,20 +11704,20 @@ void func_800AE218(MenuItem* arg0) { arg0->unk1C = 0; } break; - default: /* switch 1 */ + default: break; - case 1: /* switch 1 */ + case 1: arg0->unk1C += 3; if (arg0->unk1C >= 0x8D) { arg0->cursor = 0x0000000F; } break; - case 11: /* switch 1 */ - case 12: /* switch 1 */ - case 13: /* switch 1 */ - case 14: /* switch 1 */ - case 15: /* switch 1 */ - case 16: /* switch 1 */ + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: if (func_800B4520() == 0) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { if (arg0->cursor >= 0xC) { @@ -11838,13 +11830,13 @@ void func_800AE218(MenuItem* arg0) { } } break; - case 21: /* switch 1 */ - case 22: /* switch 1 */ - case 23: /* switch 1 */ - case 24: /* switch 1 */ - case 25: /* switch 1 */ - case 26: /* switch 1 */ - case 41: /* switch 1 */ + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 41: if (gControllerOne->buttonPressed & 0xD000) { arg0->cursor = 0x00000010; play_sound2(SOUND_MENU_GO_BACK); @@ -11853,8 +11845,8 @@ void func_800AE218(MenuItem* arg0) { } } break; - case 30: /* switch 1 */ - case 31: /* switch 1 */ + case 30: + case 31: arg0->unk20 = (u32) arg0->cursor - 0x1E; if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) != arg0->unk20) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { @@ -11897,7 +11889,7 @@ void func_800AE218(MenuItem* arg0) { } } break; - case 32: /* switch 1 */ + case 32: if ((arg0->unk1C == 1) && (func_800B6A68() != 0)) { arg0->cursor = 0x00000019; } else { @@ -11907,8 +11899,8 @@ void func_800AE218(MenuItem* arg0) { } } break; - case 35: /* switch 1 */ - case 36: /* switch 1 */ + case 35: + case 36: if (((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) && ((s32) (u32) arg0->cursor >= 0x24)) { arg0->cursor--; @@ -11945,7 +11937,7 @@ void func_800AE218(MenuItem* arg0) { } } break; - case 40: /* switch 1 */ + case 40: if (arg0->unk1C == 1) { if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) != 0) { @@ -12023,7 +12015,7 @@ void func_800AEDBC(MenuItem* arg0) { } void func_800AEE90(MenuItem* arg0) { - if (D_8018EDEC != 0xB) { + if (gSubMenuSelection != 0xB) { arg0->visible = 0; } else { arg0->visible = 1; @@ -12031,7 +12023,7 @@ void func_800AEE90(MenuItem* arg0) { } void func_800AEEBC(MenuItem* arg0) { - if (D_8018EDEC != 0xC) { + if (gSubMenuSelection != 0xC) { arg0->visible = 0; } else { arg0->visible = 1; @@ -12039,7 +12031,7 @@ void func_800AEEBC(MenuItem* arg0) { } void func_800AEEE8(MenuItem* arg0) { - if (D_8018EDEC != 0xD) { + if (gSubMenuSelection != 0xD) { arg0->visible = 0; } else { arg0->visible = 1; diff --git a/src/menu_items.h b/src/menu_items.h index 22779209c..03316b1a4 100644 --- a/src/menu_items.h +++ b/src/menu_items.h @@ -264,16 +264,16 @@ void func_800A0DFC(void); void func_800A0EB8(MenuItem*, s32); void func_800A0FA4(MenuItem*, s32); void func_800A10CC(MenuItem*); -void func_800A11D0(MenuItem*, s32, s32); +void render_cursor_player(MenuItem*, s32, s32); void func_800A12BC(MenuItem*, MenuTexture*); void func_800A1350(MenuItem*); void func_800A143C(MenuItem*, s32); void func_800A1500(MenuItem*); void func_800A15EC(MenuItem*); void func_800A1780(MenuItem*); -void func_800A1924(MenuItem*); -void func_800A1A20(MenuItem*); -void func_800A1BE0(MenuItem*); +void render_menu_item_data_course_image(MenuItem*); +void render_menu_item_data_course_info(MenuItem*); +void menu_item_data_course_selectable(MenuItem*); void func_800A1DE0(MenuItem*); void func_800A1F30(MenuItem*); void func_800A1FB0(MenuItem*); @@ -287,14 +287,14 @@ void func_800A3C84(MenuItem*); void func_800A3E60(MenuItem*); void func_800A4550(s32, s32, s32); void render_lap_times(s32, s32, s32); -void func_800A4A24(MenuItem*); +void render_menu_item_announce_ghost(MenuItem*); void render_pause_menu(MenuItem*); void render_pause_menu_time_trials(MenuItem*); void render_pause_menu_versus(MenuItem*); void render_pause_grand_prix(MenuItem*); void render_pause_battle(MenuItem*); void func_800A54EC(void); -void func_800A5738(MenuItem*); +void render_menu_item_end_course_option(MenuItem*); void func_800A6034(MenuItem*); void func_800A6154(MenuItem*); void func_800A638C(MenuItem*); @@ -310,7 +310,7 @@ void func_800A72FC(MenuItem*); void func_800A7448(MenuItem*); void func_800A75A0(MenuItem*); void func_800A761C(MenuItem*); -void func_800A7790(MenuItem*); +void menu_item_credits_render(MenuItem*); void convert_number_to_ascii(s32, char*); void write_dashes(char*); void get_time_record_minutes(s32, char*); @@ -327,7 +327,7 @@ void func_800A874C(MenuItem*); void func_800A890C(s32, MenuItem*); void func_800A8A98(MenuItem*); void func_800A8CA4(MenuItem*); -void func_800A8E14(MenuItem*); +void render_battle_introduction(MenuItem*); void func_800A8EC0(MenuItem*); void func_800A8F48(MenuItem*); void func_800A90D4(s32, MenuItem*); @@ -436,7 +436,7 @@ extern MenuItem gMenuItems[MENU_ITEMS_MAX]; extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE]; extern struct_8018E060_entry D_8018E060[]; extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE]; -extern s32 gMenuTextureBufferIndex; +extern s32 sMenuTextureBufferIndex; extern struct_8018E118_entry sMenuTextureMap[TEXTURE_MAP_MAX]; extern s32 sMenuTextureEntries; extern Gfx* sGfxPtr; diff --git a/src/menus.c b/src/menus.c index 425fe4807..0be469ef5 100644 --- a/src/menus.c +++ b/src/menus.c @@ -33,7 +33,7 @@ f32 gIntroModelPosZ; s32 D_8018EDE0; s8 gCharacterGridSelections[4]; // map from player id to current grid position s8 D_8018EDE8[4]; // map player id to isCharSelected on CSS -s8 D_8018EDEC; +s8 gSubMenuSelection; s8 gMainMenuSelectionDepth; s8 D_8018EDEE; // grid screen state? s8 gDebugMenuSelection; @@ -77,7 +77,7 @@ s8 D_800E86B0[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; s8 gNextDemoId = 0; s8 gControllerPakSelectedTableRow = 0; s8 D_800E86C4[12] = { 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0 }; -s8 D_800E86D0[16] = { 0 }; // this doesn't make a lot of sense... +s8 gControllerPakScrollDirection[16] = { 0 }; // this doesn't make a lot of sense... s8 unref_800E86E0[4] = { 0, 0, 0, 1 }; u32 sVIGammaOffDitherOn = OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON; @@ -230,14 +230,14 @@ void options_menu_act(struct Controller* controller, u16 arg1) { if (!func_800B4520()) { sp38 = find_menu_items_dupe(0xF0); sp30 = (struct_8018EE10_entry*) gSomeDLBuffer; - switch (D_8018EDEC) { + switch (gSubMenuSelection) { case 0x15: case 0x16: case 0x17: case 0x18: { sp2C = false; - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x18)) { - D_8018EDEC += 1; + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < 0x18)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -245,8 +245,8 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->subState = 1; sp2C = true; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x16)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection >= 0x16)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -272,7 +272,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { return; } if (btnAndStick & A_BUTTON) { - switch (D_8018EDEC) { + switch (gSubMenuSelection) { case 0x16: if (gSoundMode < 3) { gSoundMode += 1; @@ -298,7 +298,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { case 0x17: switch (controller_pak_2_status()) { case PFS_INVALID_DATA: - D_8018EDEC = 0x2B; + gSubMenuSelection = 0x2B; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; case PFS_NO_ERROR: @@ -306,7 +306,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp2C = controller_pak_1_status(); switch (sp2C) { case PFS_INVALID_DATA: - D_8018EDEC = 0x46; + gSubMenuSelection = 0x46; sp38->state = 0; play_sound2(SOUND_MENU_SELECT); break; @@ -314,52 +314,52 @@ void options_menu_act(struct Controller* controller, u16 arg1) { func_800B6708(); break; case PFS_NO_PAK_INSERTED: - D_8018EDEC = 0x34; + gSubMenuSelection = 0x34; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; case PFS_FILE_OVERFLOW: - D_8018EDEC = 0x37; + gSubMenuSelection = 0x37; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; case PFS_PAK_BAD_READ: case 3: default: - D_8018EDEC = 0x35; + gSubMenuSelection = 0x35; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; } if (sp2C == PFS_INVALID_DATA && !sp30[0].ghostDataSaved && !sp30[1].ghostDataSaved) { - D_8018EDEC = 0x2A; + gSubMenuSelection = 0x2A; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } if (sp2C == PFS_NO_ERROR) { if (sp30[0].ghostDataSaved) { - D_8018EDEC = 0x28; + gSubMenuSelection = 0x28; play_sound2(SOUND_MENU_SELECT); } else if (sp30[1].ghostDataSaved) { - D_8018EDEC = 0x29; + gSubMenuSelection = 0x29; play_sound2(SOUND_MENU_SELECT); } else { - D_8018EDEC = 0x2A; + gSubMenuSelection = 0x2A; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } } // else return? return; case PFS_NO_PAK_INSERTED: - D_8018EDEC = 0x2C; + gSubMenuSelection = 0x2C; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; case PFS_PAK_BAD_READ: default: - D_8018EDEC = 0x2D; + gSubMenuSelection = 0x2D; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } case 0x18: { - D_8018EDEC = 0x1E; + gSubMenuSelection = 0x1E; play_sound2(SOUND_MENU_SELECT); return; } @@ -375,16 +375,16 @@ void options_menu_act(struct Controller* controller, u16 arg1) { } case 0x1E: case 0x1F: { - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x1F)) { - D_8018EDEC += 1; + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < 0x1F)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; } sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x1F)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection >= 0x1F)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -392,18 +392,18 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0x18; + gSubMenuSelection = 0x18; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - switch (D_8018EDEC) { + switch (gSubMenuSelection) { case 0x1E: - D_8018EDEC = 0x18; + gSubMenuSelection = 0x18; play_sound2(SOUND_MENU_GO_BACK); break; case 0x1F: - D_8018EDEC = 0x20; + gSubMenuSelection = 0x20; func_800B46D0(); D_800DC5AC = 0; play_sound2(SOUND_MENU_EXPLOSION); @@ -414,23 +414,23 @@ void options_menu_act(struct Controller* controller, u16 arg1) { } case 0x20: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0x18; + gSubMenuSelection = 0x18; play_sound2(SOUND_MENU_GO_BACK); } break; } case 0x28: case 0x29: { - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x29) && (sp30[1].ghostDataSaved)) { - D_8018EDEC += 1; + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < 0x29) && (sp30[1].ghostDataSaved)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; } sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x29) && sp30[0].ghostDataSaved) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection >= 0x29) && sp30[0].ghostDataSaved) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -438,16 +438,16 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0x17; + gSubMenuSelection = 0x17; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - sp38->param2 = D_8018EDEC - 0x28; + sp38->param2 = gSubMenuSelection - 0x28; if (sp30[sp38->param2].courseIndex == D_8018EE10[1].courseIndex && D_8018EE10[1].ghostDataSaved) { - D_8018EDEC = 0x33; + gSubMenuSelection = 0x33; } else { - D_8018EDEC = 0x32; + gSubMenuSelection = 0x32; } play_sound2(SOUND_MENU_SELECT); } @@ -456,18 +456,18 @@ void options_menu_act(struct Controller* controller, u16 arg1) { case 0x32: case 0x33: { // bit of a fake match, but if it works it works? - if ((sp30[sp38->param2].courseIndex != ((0, (D_8018EE10 + (D_8018EDEC - 0x32))->courseIndex))) || - ((D_8018EE10 + (D_8018EDEC - 0x32))->ghostDataSaved == 0)) { - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x33)) { - D_8018EDEC += 1; + if ((sp30[sp38->param2].courseIndex != ((0, (D_8018EE10 + (gSubMenuSelection - 0x32))->courseIndex))) || + ((D_8018EE10 + (gSubMenuSelection - 0x32))->ghostDataSaved == 0)) { + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < 0x33)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; } sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x33)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection >= 0x33)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -476,14 +476,14 @@ void options_menu_act(struct Controller* controller, u16 arg1) { } } if (btnAndStick & B_BUTTON) { - D_8018EDEC = sp38->param2 + 0x28; + gSubMenuSelection = sp38->param2 + 0x28; play_sound2(SOUND_MENU_GO_BACK); } else if (btnAndStick & A_BUTTON) { - sp38->param1 = D_8018EDEC - 0x32; + sp38->param1 = gSubMenuSelection - 0x32; if (D_8018EE10[(sp38->param1)].ghostDataSaved) { - D_8018EDEC = 0x38; + gSubMenuSelection = 0x38; } else { - D_8018EDEC = 0x3A; + gSubMenuSelection = 0x3A; sp38->state = 0; } play_sound2(SOUND_MENU_SELECT); @@ -501,23 +501,23 @@ void options_menu_act(struct Controller* controller, u16 arg1) { case 0x41: case 0x42: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0x17; + gSubMenuSelection = 0x17; play_sound2(SOUND_MENU_GO_BACK); } break; } case 0x38: case 0x39: { - if ((btnAndStick & R_JPAD) && D_8018EDEC < 0x39) { - D_8018EDEC += 1; + if ((btnAndStick & R_JPAD) && gSubMenuSelection < 0x39) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; } sp38->subState = 1; } - if ((btnAndStick & L_JPAD) && D_8018EDEC >= 0x39) { - D_8018EDEC -= 1; + if ((btnAndStick & L_JPAD) && gSubMenuSelection >= 0x39) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); if (sp38->paramf < 4.2) { sp38->paramf += 4.0; @@ -525,16 +525,16 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = sp38->param1 + 0x32; + gSubMenuSelection = sp38->param1 + 0x32; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - if (D_8018EDEC == 0x38) { - D_8018EDEC = 0x17; + if (gSubMenuSelection == 0x38) { + gSubMenuSelection = 0x17; play_sound2(SOUND_MENU_GO_BACK); } else { - D_8018EDEC = 0x3A; + gSubMenuSelection = 0x3A; play_sound2(SOUND_MENU_SELECT); sp38->state = 0; } @@ -547,7 +547,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->state += 1; } if (sp38->state >= 3) { - D_8018EDEC = 0x3B; + gSubMenuSelection = 0x3B; } break; } @@ -557,7 +557,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { res = func_800B65F4(sp38->param2, sp38->param1); } if (res != 0) { - D_8018EDEC = 0x42; + gSubMenuSelection = 0x42; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } @@ -567,11 +567,11 @@ void options_menu_act(struct Controller* controller, u16 arg1) { res = func_800B6178(sp38->param1); } if (res != 0) { - D_8018EDEC = 0x41; + gSubMenuSelection = 0x41; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - D_8018EDEC = 0x3C; + gSubMenuSelection = 0x3C; D_8018EE10[sp38->param1].courseIndex = (sp30 + sp38->param2)->courseIndex; func_800B6088(sp38->param1); break; @@ -581,18 +581,18 @@ void options_menu_act(struct Controller* controller, u16 arg1) { sp38->state += 1; } if (sp38->state >= 3) { - D_8018EDEC = 0x47; + gSubMenuSelection = 0x47; } break; } case 0x47: { if (func_800B6A68()) { - D_8018EDEC = 0x36; + gSubMenuSelection = 0x36; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } else if (sp30[0].ghostDataSaved) { - D_8018EDEC = 0x28; + gSubMenuSelection = 0x28; } else { - D_8018EDEC = 0x29; + gSubMenuSelection = 0x29; } break; } @@ -612,7 +612,7 @@ void data_menu_act(struct Controller* controller, UNUSED u16 arg1) { } if (func_800B4520() == 0) { - if (D_8018EDEC == 1) { + if (gSubMenuSelection == 1) { // If DPad/Stick down pressed, move selection down if not already in bottom row if ((buttonAndStickPress & 0x400) != 0) { if ((gTimeTrialDataCourseIndex % 4) != 3) { @@ -654,8 +654,8 @@ void data_menu_act(struct Controller* controller, UNUSED u16 arg1) { play_sound2(SOUND_MENU_OK_CLICKED); } } - // If D_8018EDEC != 1 and A pressed, go to main menu - // (Will D_8018EDEC ever not equal 1 when entering the data menu?) + // If gSubMenuSelection != 1 and A pressed, go to main menu + // (Will gSubMenuSelection ever not equal 1 when entering the data menu?) else if ((buttonAndStickPress & 0x8000) != 0) { func_8009E258(); play_sound2(SOUND_MENU_OK_CLICKED); @@ -676,7 +676,7 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { } if (!func_800B4520()) { - switch (D_8018EDEC) { + switch (gSubMenuSelection) { case 0x0B: { if ((btnAndStick & L_JPAD) && (gTimeTrialDataCourseIndex > 0)) { gTimeTrialDataCourseIndex -= 1; @@ -743,7 +743,7 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { func_8009E208(); play_sound2(SOUND_MENU_GO_BACK); } else { - D_8018EDEC = 0x0C; + gSubMenuSelection = 0x0C; D_8018EDF9 = 0; play_sound2(SOUND_MENU_SELECT); } @@ -771,7 +771,7 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0xB; + gSubMenuSelection = 0xB; play_sound2(SOUND_MENU_GO_BACK); } else if (btnAndStick & A_BUTTON) { if (D_8018EDF9 != 0) { @@ -788,11 +788,11 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { res = func_800B639C(gTimeTrialDataCourseIndex); if (res >= 0) { if (func_800B69BC(res) != 0) { - D_8018EDEC = 0x0D; + gSubMenuSelection = 0x0D; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } else { play_sound2(SOUND_MENU_EXPLOSION); - D_8018EDEC = 0x0B; + gSubMenuSelection = 0x0B; } } break; @@ -800,18 +800,18 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { } if (!(res + 1)) { - D_8018EDEC = 0xB; + gSubMenuSelection = 0xB; } } else { play_sound2(SOUND_MENU_GO_BACK); - D_8018EDEC = 0xB; + gSubMenuSelection = 0xB; } } break; } case 0x0D: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0xB; + gSubMenuSelection = 0xB; } break; } @@ -891,18 +891,18 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { return; } } else if ((buttonAndStickPress & 0x4000) != 0) { - if (D_800E86D0[0] == 0) { + if (gControllerPakScrollDirection[0] == 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; play_sound2(SOUND_MENU_GO_BACK); return; } } else if ((buttonAndStickPress & 0x800) != 0) { - if (D_800E86D0[0] == 0) { + if (gControllerPakScrollDirection[0] == 0) { --gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow < 0) { gControllerPakSelectedTableRow = 0; if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 1) { - D_800E86D0[0] = 2; + gControllerPakScrollDirection[0] = 2; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } @@ -911,12 +911,12 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { return; } } - } else if (((buttonAndStickPress & 0x400) != 0) && (D_800E86D0[0] == 0)) { + } else if (((buttonAndStickPress & 0x400) != 0) && (gControllerPakScrollDirection[0] == 0)) { ++gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow >= CONTROLLER_PAK_MENU_TABLE_GAME_DATA) { gControllerPakSelectedTableRow = CONTROLLER_PAK_MENU_QUIT; if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 0x10) { - D_800E86D0[0] = 1; + gControllerPakScrollDirection[0] = 1; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } @@ -1694,7 +1694,7 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { } if (func_800B4520() == 0) { - switch (D_8018EDEC) { + switch (gSubMenuSelection) { case 1: if ((buttonAndStickPress & R_JPAD) != 0) { // if (GetCupIndex() < SPECIAL_CUP) { @@ -1719,10 +1719,10 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { play_sound2(SOUND_MENU_GO_BACK); } else if ((buttonAndStickPress & A_BUTTON) != 0) { if (gModeSelection != GRAND_PRIX) { - D_8018EDEC = 2; + gSubMenuSelection = 2; play_sound2(SOUND_MENU_SELECT); } else { - D_8018EDEC = 3; + gSubMenuSelection = 3; play_sound2(SOUND_MENU_SELECT); //! @todo SetCourse() to course one; SetCupCursorPosition(COURSE_ONE); @@ -1751,8 +1751,8 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup]; SetCourseFromCup(); if ((buttonAndStickPress & B_BUTTON) != 0) { - if (D_8018EDEC == 2) { - D_8018EDEC = 1; + if (gSubMenuSelection == 2) { + gSubMenuSelection = 1; } else { func_8009E208(); } @@ -1761,7 +1761,7 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { return; } if ((buttonAndStickPress & A_BUTTON) != 0) { - D_8018EDEC = 3; + gSubMenuSelection = 3; play_sound2(SOUND_MENU_SELECT); func_800B44AC(); gMenuTimingCounter = 0; @@ -1775,13 +1775,13 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { if ((buttonAndStickPress & B_BUTTON) != 0) { switch (gModeSelection) { case GRAND_PRIX: - D_8018EDEC = 1; + gSubMenuSelection = 1; break; case BATTLE: - D_8018EDEC = 4; + gSubMenuSelection = 4; break; default: - D_8018EDEC = 2; + gSubMenuSelection = 2; break; } @@ -1819,13 +1819,13 @@ void load_menu_states(s32 menuSelection) { switch (menuSelection) { case 5: - D_8018EDEC = 21; + gSubMenuSelection = 21; break; case 6: - D_8018EDEC = 1; + gSubMenuSelection = 1; break; case 7: - D_8018EDEC = 11; + gSubMenuSelection = 11; break; case 8: func_800CA008(0, 0); @@ -1953,13 +1953,13 @@ void load_menu_states(s32 menuSelection) { CourseManager_SetCup(GetBattleCup()); // gCupSelection = BATTLE_CUP; D_800DC540 = 4; - D_8018EDEC = 4; + gSubMenuSelection = 4; } else { if (GetCup() == GetBattleCup()) { CourseManager_SetCup(GetMushroomCup()); // gCupSelection = MUSHROOM_CUP; } - D_8018EDEC = 1; + gSubMenuSelection = 1; } if (gGamestate != 0) { func_800CA008(0, 0); diff --git a/src/menus.h b/src/menus.h index f9b00d567..a900f3058 100644 --- a/src/menus.h +++ b/src/menus.h @@ -4,7 +4,7 @@ #include #include -// D_8018EDEC is position on options screen? +// gSubMenuSelection is position on options screen? enum MenuOptionsCursorPositions { MENU_OPTIONS_CSRPOS_SOUNDMODE = 0x16 }; // needs to be a union (or array...?) to go into rodata as a const @@ -48,7 +48,7 @@ extern s32 D_8018EDE0; extern s8 gCharacterGridSelections[]; extern s8 D_8018EDE8[]; -extern s8 D_8018EDEC; +extern s8 gSubMenuSelection; extern s8 gMainMenuSelectionDepth; extern s8 D_8018EDEE; extern s8 gDebugMenuSelection; @@ -83,7 +83,7 @@ extern s8 D_800E86B0[4][3]; extern s8 gNextDemoId; extern s8 gControllerPakSelectedTableRow; extern s8 D_800E86C4[]; -extern s8 D_800E86D0[]; +extern s8 gControllerPakScrollDirection[]; extern s8 unref_800E86E0[]; extern u32 sVIGammaOffDitherOn; diff --git a/src/render_objects.c b/src/render_objects.c index 1b4ab8ead..ea3c96060 100644 --- a/src/render_objects.c +++ b/src/render_objects.c @@ -1930,7 +1930,7 @@ void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32 GLOBAL_ASM("asm/non_matchings/render_objects/render_texture_tile_rgba32_block.s") #endif -void func_8004C8D4(s16 arg0, s16 arg1) { +void render_game_logo(s16 arg0, s16 arg1) { render_texture_tile_rgba32_block(arg0, arg1, gTextureLogoMarioKart64, 0x100, 0x80); } diff --git a/src/render_objects.h b/src/render_objects.h index 52c2eeb25..61ec7d80b 100644 --- a/src/render_objects.h +++ b/src/render_objects.h @@ -221,7 +221,7 @@ void draw_hud_2d_texture(s32, s32, u32, u32, u8*); void func_8004C450(s32, s32, u32, u32, u8*); void func_8004C53C(s32, s32, u32, u32, u8*); void func_8004C628(s32, s32, u32, u32, u8*); -void func_8004C8D4(s16, s16); +void render_game_logo(s16, s16); void func_8004C91C(s32, s32, u8*, s32, s32, s32); void func_8004C9D8(s32, s32, s32, u8*, s32, s32, s32, s32); void func_8004CA58(s32, s32, f32, u8*, s32, s32);