diff --git a/Makefile b/Makefile index a48b06716..64890a96a 100644 --- a/Makefile +++ b/Makefile @@ -244,7 +244,7 @@ include $(MAKEFILE_SPLIT) # These are files that need to be encoded into EUC-JP in order for the ROM to match # We filter them out from the regular C_FILES since we don't need nor want the # UTF-8 versions getting compiled -EUC_JP_FILES := src/ending/credits.c src/code_80005FD0.c src/code_80091750.c +EUC_JP_FILES := src/ending/credits.c src/code_80005FD0.c src/menu_items.c C_FILES := $(filter-out %.inc.c,$(filter-out $(EUC_JP_FILES),$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)))) S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) # Include source files in courses/course_name/files.c but exclude .inc.c files. diff --git a/asm/non_matchings/code_80091750/func_80099184.s b/asm/non_matchings/code_80091750/func_80099184.s deleted file mode 100644 index 2c09fe763..000000000 --- a/asm/non_matchings/code_80091750/func_80099184.s +++ /dev/null @@ -1,146 +0,0 @@ -glabel load_menu_img -/* 099D84 80099184 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 099D88 80099188 AFBF0034 */ sw $ra, 0x34($sp) -/* 099D8C 8009918C AFB60030 */ sw $s6, 0x30($sp) -/* 099D90 80099190 AFB5002C */ sw $s5, 0x2c($sp) -/* 099D94 80099194 AFB40028 */ sw $s4, 0x28($sp) -/* 099D98 80099198 AFB30024 */ sw $s3, 0x24($sp) -/* 099D9C 8009919C AFB20020 */ sw $s2, 0x20($sp) -/* 099DA0 800991A0 AFB1001C */ sw $s1, 0x1c($sp) -/* 099DA4 800991A4 0C026449 */ jal segmented_to_virtual_dupe -/* 099DA8 800991A8 AFB00018 */ sw $s0, 0x18($sp) -/* 099DAC 800991AC 8C4E0004 */ lw $t6, 4($v0) -/* 099DB0 800991B0 00408825 */ move $s1, $v0 -/* 099DB4 800991B4 24160003 */ li $s6, 3 -/* 099DB8 800991B8 11C0006C */ beqz $t6, .L8009936C -/* 099DBC 800991BC 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019 -/* 099DC0 800991C0 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019 -/* 099DC4 800991C4 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019 -/* 099DC8 800991C8 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019 -/* 099DCC 800991CC 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019 -/* 099DD0 800991D0 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8 -/* 099DD4 800991D4 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0 -/* 099DD8 800991D8 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8 -/* 099DDC 800991DC 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c -/* 099DE0 800991E0 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650 -/* 099DE4 800991E4 8E630000 */ lw $v1, ($s3) -.L800991E8: -/* 099DE8 800991E8 00002825 */ move $a1, $zero -/* 099DEC 800991EC 00001025 */ move $v0, $zero -/* 099DF0 800991F0 1860000D */ blez $v1, .L80099228 -/* 099DF4 800991F4 00000000 */ nop -/* 099DF8 800991F8 8E240004 */ lw $a0, 4($s1) -/* 099DFC 800991FC 000278C0 */ sll $t7, $v0, 3 -.L80099200: -/* 099E00 80099200 020FC021 */ addu $t8, $s0, $t7 -/* 099E04 80099204 8F190000 */ lw $t9, ($t8) -/* 099E08 80099208 24420001 */ addiu $v0, $v0, 1 -/* 099E0C 8009920C 0043082A */ slt $at, $v0, $v1 -/* 099E10 80099210 17240003 */ bne $t9, $a0, .L80099220 -/* 099E14 80099214 00000000 */ nop -/* 099E18 80099218 10000003 */ b .L80099228 -/* 099E1C 8009921C 24050001 */ li $a1, 1 -.L80099220: -/* 099E20 80099220 5420FFF7 */ bnel $at, $zero, .L80099200 -/* 099E24 80099224 000278C0 */ sll $t7, $v0, 3 -.L80099228: -/* 099E28 80099228 54A0004D */ bnel $a1, $zero, .L80099360 -/* 099E2C 8009922C 8E2A0018 */ lw $t2, 0x18($s1) -/* 099E30 80099230 86280000 */ lh $t0, ($s1) -/* 099E34 80099234 8E240004 */ lw $a0, 4($s1) -/* 099E38 80099238 56C80022 */ bnel $s6, $t0, .L800992C4 -/* 099E3C 8009923C 962F000A */ lhu $t7, 0xa($s1) -/* 099E40 80099240 96220010 */ lhu $v0, 0x10($s1) -/* 099E44 80099244 24051000 */ li $a1, 4096 -/* 099E48 80099248 10400003 */ beqz $v0, .L80099258 -/* 099E4C 8009924C 00000000 */ nop -/* 099E50 80099250 10000001 */ b .L80099258 -/* 099E54 80099254 3045FFFF */ andi $a1, $v0, 0xffff -.L80099258: -/* 099E58 80099258 00A01025 */ move $v0, $a1 -/* 099E5C 8009925C 04410004 */ bgez $v0, .L80099270 -/* 099E60 80099260 30490007 */ andi $t1, $v0, 7 -/* 099E64 80099264 11200002 */ beqz $t1, .L80099270 -/* 099E68 80099268 00000000 */ nop -/* 099E6C 8009926C 2529FFF8 */ addiu $t1, $t1, -8 -.L80099270: -/* 099E70 80099270 11200009 */ beqz $t1, .L80099298 -/* 099E74 80099274 00000000 */ nop -/* 099E78 80099278 04410003 */ bgez $v0, .L80099288 -/* 099E7C 8009927C 000228C3 */ sra $a1, $v0, 3 -/* 099E80 80099280 24410007 */ addiu $at, $v0, 7 -/* 099E84 80099284 000128C3 */ sra $a1, $at, 3 -.L80099288: -/* 099E88 80099288 000550C0 */ sll $t2, $a1, 3 -/* 099E8C 8009928C 25450008 */ addiu $a1, $t2, 8 -/* 099E90 80099290 30ABFFFF */ andi $t3, $a1, 0xffff -/* 099E94 80099294 01602825 */ move $a1, $t3 -.L80099298: -/* 099E98 80099298 0C026400 */ jal dma_copy_base_729a30 -/* 099E9C 8009929C 8E860000 */ lw $a2, ($s4) -/* 099EA0 800992A0 8E4C0000 */ lw $t4, ($s2) -/* 099EA4 800992A4 8EAE0000 */ lw $t6, ($s5) -/* 099EA8 800992A8 8E840000 */ lw $a0, ($s4) -/* 099EAC 800992AC 000C6840 */ sll $t5, $t4, 1 -/* 099EB0 800992B0 0C010034 */ jal mio0decode -/* 099EB4 800992B4 01AE2821 */ addu $a1, $t5, $t6 -/* 099EB8 800992B8 1000000D */ b .L800992F0 -/* 099EBC 800992BC 8E6C0000 */ lw $t4, ($s3) -/* 099EC0 800992C0 962F000A */ lhu $t7, 0xa($s1) -.L800992C4: -/* 099EC4 800992C4 96380008 */ lhu $t8, 8($s1) -/* 099EC8 800992C8 8E480000 */ lw $t0, ($s2) -/* 099ECC 800992CC 8EAA0000 */ lw $t2, ($s5) -/* 099ED0 800992D0 01F80019 */ multu $t7, $t8 -/* 099ED4 800992D4 00084840 */ sll $t1, $t0, 1 -/* 099ED8 800992D8 012A3021 */ addu $a2, $t1, $t2 -/* 099EDC 800992DC 00002812 */ mflo $a1 -/* 099EE0 800992E0 0005C840 */ sll $t9, $a1, 1 -/* 099EE4 800992E4 0C026400 */ jal dma_copy_base_729a30 -/* 099EE8 800992E8 03202825 */ move $a1, $t9 -/* 099EEC 800992EC 8E6C0000 */ lw $t4, ($s3) -.L800992F0: -/* 099EF0 800992F0 8E2B0004 */ lw $t3, 4($s1) -/* 099EF4 800992F4 000C68C0 */ sll $t5, $t4, 3 -/* 099EF8 800992F8 020D7021 */ addu $t6, $s0, $t5 -/* 099EFC 800992FC ADCB0000 */ sw $t3, ($t6) -/* 099F00 80099300 8E780000 */ lw $t8, ($s3) -/* 099F04 80099304 8E4F0000 */ lw $t7, ($s2) -/* 099F08 80099308 0018C8C0 */ sll $t9, $t8, 3 -/* 099F0C 8009930C 02194021 */ addu $t0, $s0, $t9 -/* 099F10 80099310 AD0F0004 */ sw $t7, 4($t0) -/* 099F14 80099314 962A0008 */ lhu $t2, 8($s1) -/* 099F18 80099318 9629000A */ lhu $t1, 0xa($s1) -/* 099F1C 8009931C 8E4D0000 */ lw $t5, ($s2) -/* 099F20 80099320 8E680000 */ lw $t0, ($s3) -/* 099F24 80099324 012A0019 */ multu $t1, $t2 -/* 099F28 80099328 25090001 */ addiu $t1, $t0, 1 -/* 099F2C 8009932C AE690000 */ sw $t1, ($s3) -/* 099F30 80099330 00006012 */ mflo $t4 -/* 099F34 80099334 01AC5821 */ addu $t3, $t5, $t4 -/* 099F38 80099338 01607025 */ move $t6, $t3 -/* 099F3C 8009933C AE4B0000 */ sw $t3, ($s2) -/* 099F40 80099340 05C10003 */ bgez $t6, .L80099350 -/* 099F44 80099344 000EC0C3 */ sra $t8, $t6, 3 -/* 099F48 80099348 25C10007 */ addiu $at, $t6, 7 -/* 099F4C 8009934C 0001C0C3 */ sra $t8, $at, 3 -.L80099350: -/* 099F50 80099350 0018C8C0 */ sll $t9, $t8, 3 -/* 099F54 80099354 272F0008 */ addiu $t7, $t9, 8 -/* 099F58 80099358 AE4F0000 */ sw $t7, ($s2) -/* 099F5C 8009935C 8E2A0018 */ lw $t2, 0x18($s1) -.L80099360: -/* 099F60 80099360 26310014 */ addiu $s1, $s1, 0x14 -/* 099F64 80099364 5540FFA0 */ bnel $t2, $zero, .L800991E8 -/* 099F68 80099368 8E630000 */ lw $v1, ($s3) -.L8009936C: -/* 099F6C 8009936C 8FBF0034 */ lw $ra, 0x34($sp) -/* 099F70 80099370 8FB00018 */ lw $s0, 0x18($sp) -/* 099F74 80099374 8FB1001C */ lw $s1, 0x1c($sp) -/* 099F78 80099378 8FB20020 */ lw $s2, 0x20($sp) -/* 099F7C 8009937C 8FB30024 */ lw $s3, 0x24($sp) -/* 099F80 80099380 8FB40028 */ lw $s4, 0x28($sp) -/* 099F84 80099384 8FB5002C */ lw $s5, 0x2c($sp) -/* 099F88 80099388 8FB60030 */ lw $s6, 0x30($sp) -/* 099F8C 8009938C 03E00008 */ jr $ra -/* 099F90 80099390 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80091750/func_80099394.s b/asm/non_matchings/code_80091750/func_80099394.s deleted file mode 100644 index 85febe6cc..000000000 --- a/asm/non_matchings/code_80091750/func_80099394.s +++ /dev/null @@ -1,112 +0,0 @@ -glabel func_80099394 -/* 099F94 80099394 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 099F98 80099398 AFBF0034 */ sw $ra, 0x34($sp) -/* 099F9C 8009939C AFB60030 */ sw $s6, 0x30($sp) -/* 099FA0 800993A0 AFB5002C */ sw $s5, 0x2c($sp) -/* 099FA4 800993A4 AFB40028 */ sw $s4, 0x28($sp) -/* 099FA8 800993A8 AFB30024 */ sw $s3, 0x24($sp) -/* 099FAC 800993AC AFB20020 */ sw $s2, 0x20($sp) -/* 099FB0 800993B0 AFB1001C */ sw $s1, 0x1c($sp) -/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe -/* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp) -/* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0) -/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019 -/* 099FC4 800993C4 00409025 */ move $s2, $v0 -/* 099FC8 800993C8 11C0004E */ beqz $t6, .L80099504 -/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(D_8018D9B0) # addiu $s6, $s6, -0x2650 -/* 099FD0 800993D0 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019 -/* 099FD4 800993D4 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019 -/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019 -/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8 -/* 099FE0 800993E0 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0 -/* 099FE4 800993E4 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8 -/* 099FE8 800993E8 24150005 */ li $s5, 5 -/* 099FEC 800993EC 8E830000 */ lw $v1, ($s4) -.L800993F0: -/* 099FF0 800993F0 00002025 */ move $a0, $zero -/* 099FF4 800993F4 00001025 */ move $v0, $zero -/* 099FF8 800993F8 1860000D */ blez $v1, .L80099430 -/* 099FFC 800993FC 00000000 */ nop -/* 09A000 80099400 8E500004 */ lw $s0, 4($s2) -/* 09A004 80099404 000278C0 */ sll $t7, $v0, 3 -.L80099408: -/* 09A008 80099408 022FC021 */ addu $t8, $s1, $t7 -/* 09A00C 8009940C 8F190000 */ lw $t9, ($t8) -/* 09A010 80099410 24420001 */ addiu $v0, $v0, 1 -/* 09A014 80099414 0043082A */ slt $at, $v0, $v1 -/* 09A018 80099418 17300003 */ bne $t9, $s0, .L80099428 -/* 09A01C 8009941C 00000000 */ nop -/* 09A020 80099420 10000003 */ b .L80099430 -/* 09A024 80099424 24040001 */ li $a0, 1 -.L80099428: -/* 09A028 80099428 5420FFF7 */ bnel $at, $zero, .L80099408 -/* 09A02C 8009942C 000278C0 */ sll $t7, $v0, 3 -.L80099430: -/* 09A030 80099430 54800031 */ bnel $a0, $zero, .L800994F8 -/* 09A034 80099434 8E4C0018 */ lw $t4, 0x18($s2) -/* 09A038 80099438 86480000 */ lh $t0, ($s2) -/* 09A03C 8009943C 8E500004 */ lw $s0, 4($s2) -/* 09A040 80099440 56A80013 */ bnel $s5, $t0, .L80099490 -/* 09A044 80099444 000378C0 */ sll $t7, $v1, 3 -/* 09A048 80099448 9649000A */ lhu $t1, 0xa($s2) -/* 09A04C 8009944C 964A0008 */ lhu $t2, 8($s2) -/* 09A050 80099450 8E6C0000 */ lw $t4, ($s3) -/* 09A054 80099454 8ECE0000 */ lw $t6, ($s6) -/* 09A058 80099458 012A0019 */ multu $t1, $t2 -/* 09A05C 8009945C 000C6840 */ sll $t5, $t4, 1 -/* 09A060 80099460 02002025 */ move $a0, $s0 -/* 09A064 80099464 01AE3021 */ addu $a2, $t5, $t6 -/* 09A068 80099468 00002812 */ mflo $a1 -/* 09A06C 8009946C 04A10003 */ bgez $a1, .L8009947C -/* 09A070 80099470 00055843 */ sra $t3, $a1, 1 -/* 09A074 80099474 24A10001 */ addiu $at, $a1, 1 -/* 09A078 80099478 00015843 */ sra $t3, $at, 1 -.L8009947C: -/* 09A07C 8009947C 0C026400 */ jal dma_copy_base_729a30 -/* 09A080 80099480 01602825 */ move $a1, $t3 -/* 09A084 80099484 8E830000 */ lw $v1, ($s4) -/* 09A088 80099488 8E500004 */ lw $s0, 4($s2) -/* 09A08C 8009948C 000378C0 */ sll $t7, $v1, 3 -.L80099490: -/* 09A090 80099490 022FC021 */ addu $t8, $s1, $t7 -/* 09A094 80099494 AF100000 */ sw $s0, ($t8) -/* 09A098 80099498 8E880000 */ lw $t0, ($s4) -/* 09A09C 8009949C 8E790000 */ lw $t9, ($s3) -/* 09A0A0 800994A0 000848C0 */ sll $t1, $t0, 3 -/* 09A0A4 800994A4 02295021 */ addu $t2, $s1, $t1 -/* 09A0A8 800994A8 AD590004 */ sw $t9, 4($t2) -/* 09A0AC 800994AC 964C0008 */ lhu $t4, 8($s2) -/* 09A0B0 800994B0 964B000A */ lhu $t3, 0xa($s2) -/* 09A0B4 800994B4 8E6E0000 */ lw $t6, ($s3) -/* 09A0B8 800994B8 8E8A0000 */ lw $t2, ($s4) -/* 09A0BC 800994BC 016C0019 */ multu $t3, $t4 -/* 09A0C0 800994C0 254B0001 */ addiu $t3, $t2, 1 -/* 09A0C4 800994C4 AE8B0000 */ sw $t3, ($s4) -/* 09A0C8 800994C8 00006812 */ mflo $t5 -/* 09A0CC 800994CC 01CD7821 */ addu $t7, $t6, $t5 -/* 09A0D0 800994D0 01E0C025 */ move $t8, $t7 -/* 09A0D4 800994D4 AE6F0000 */ sw $t7, ($s3) -/* 09A0D8 800994D8 07010003 */ bgez $t8, .L800994E8 -/* 09A0DC 800994DC 001840C3 */ sra $t0, $t8, 3 -/* 09A0E0 800994E0 27010007 */ addiu $at, $t8, 7 -/* 09A0E4 800994E4 000140C3 */ sra $t0, $at, 3 -.L800994E8: -/* 09A0E8 800994E8 000848C0 */ sll $t1, $t0, 3 -/* 09A0EC 800994EC 25390008 */ addiu $t9, $t1, 8 -/* 09A0F0 800994F0 AE790000 */ sw $t9, ($s3) -/* 09A0F4 800994F4 8E4C0018 */ lw $t4, 0x18($s2) -.L800994F8: -/* 09A0F8 800994F8 26520014 */ addiu $s2, $s2, 0x14 -/* 09A0FC 800994FC 5580FFBC */ bnel $t4, $zero, .L800993F0 -/* 09A100 80099500 8E830000 */ lw $v1, ($s4) -.L80099504: -/* 09A104 80099504 8FBF0034 */ lw $ra, 0x34($sp) -/* 09A108 80099508 8FB00018 */ lw $s0, 0x18($sp) -/* 09A10C 8009950C 8FB1001C */ lw $s1, 0x1c($sp) -/* 09A110 80099510 8FB20020 */ lw $s2, 0x20($sp) -/* 09A114 80099514 8FB30024 */ lw $s3, 0x24($sp) -/* 09A118 80099518 8FB40028 */ lw $s4, 0x28($sp) -/* 09A11C 8009951C 8FB5002C */ lw $s5, 0x2c($sp) -/* 09A120 80099520 8FB60030 */ lw $s6, 0x30($sp) -/* 09A124 80099524 03E00008 */ jr $ra -/* 09A128 80099528 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80091750/func_8009952C.s b/asm/non_matchings/code_80091750/func_8009952C.s deleted file mode 100644 index 57815908c..000000000 --- a/asm/non_matchings/code_80091750/func_8009952C.s +++ /dev/null @@ -1,100 +0,0 @@ -glabel func_8009952C -/* 09A12C 8009952C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09A130 80099530 AFBF002C */ sw $ra, 0x2c($sp) -/* 09A134 80099534 AFB50028 */ sw $s5, 0x28($sp) -/* 09A138 80099538 AFB40024 */ sw $s4, 0x24($sp) -/* 09A13C 8009953C AFB30020 */ sw $s3, 0x20($sp) -/* 09A140 80099540 AFB2001C */ sw $s2, 0x1c($sp) -/* 09A144 80099544 AFB10018 */ sw $s1, 0x18($sp) -/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe -/* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp) -/* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0) -/* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019 -/* 09A158 80099558 00408825 */ move $s1, $v0 -/* 09A15C 8009955C 11C00046 */ beqz $t6, .L80099678 -/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650 -/* 09A164 80099564 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019 -/* 09A168 80099568 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019 -/* 09A16C 8009956C 3C128019 */ lui $s2, %hi(gMenuTextureBufferIndex) # $s2, 0x8019 -/* 09A170 80099570 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019 -/* 09A174 80099574 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8 -/* 09A178 80099578 2652E110 */ addiu $s2, %lo(gMenuTextureBufferIndex) # addiu $s2, $s2, -0x1ef0 -/* 09A17C 8009957C 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8 -/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c -/* 09A184 80099584 8E630000 */ lw $v1, ($s3) -.L80099588: -/* 09A188 80099588 00002825 */ move $a1, $zero -/* 09A18C 8009958C 00001025 */ move $v0, $zero -/* 09A190 80099590 1860000D */ blez $v1, .L800995C8 -/* 09A194 80099594 00000000 */ nop -/* 09A198 80099598 8E240004 */ lw $a0, 4($s1) -/* 09A19C 8009959C 000278C0 */ sll $t7, $v0, 3 -.L800995A0: -/* 09A1A0 800995A0 020FC021 */ addu $t8, $s0, $t7 -/* 09A1A4 800995A4 8F190000 */ lw $t9, ($t8) -/* 09A1A8 800995A8 24420001 */ addiu $v0, $v0, 1 -/* 09A1AC 800995AC 0043082A */ slt $at, $v0, $v1 -/* 09A1B0 800995B0 17240003 */ bne $t9, $a0, .L800995C0 -/* 09A1B4 800995B4 00000000 */ nop -/* 09A1B8 800995B8 10000003 */ b .L800995C8 -/* 09A1BC 800995BC 24050001 */ li $a1, 1 -.L800995C0: -/* 09A1C0 800995C0 5420FFF7 */ bnel $at, $zero, .L800995A0 -/* 09A1C4 800995C4 000278C0 */ sll $t7, $v0, 3 -.L800995C8: -/* 09A1C8 800995C8 54A00028 */ bnel $a1, $zero, .L8009966C -/* 09A1CC 800995CC 8E2A0018 */ lw $t2, 0x18($s1) -/* 09A1D0 800995D0 8E240004 */ lw $a0, 4($s1) -/* 09A1D4 800995D4 34058000 */ li $a1, 32768 -/* 09A1D8 800995D8 0C026400 */ jal dma_copy_base_729a30 -/* 09A1DC 800995DC 8E860000 */ lw $a2, ($s4) -/* 09A1E0 800995E0 8E480000 */ lw $t0, ($s2) -/* 09A1E4 800995E4 8EAA0000 */ lw $t2, ($s5) -/* 09A1E8 800995E8 8E840000 */ lw $a0, ($s4) -/* 09A1EC 800995EC 00084840 */ sll $t1, $t0, 1 -/* 09A1F0 800995F0 0C010034 */ jal mio0decode -/* 09A1F4 800995F4 012A2821 */ addu $a1, $t1, $t2 -/* 09A1F8 800995F8 8E6C0000 */ lw $t4, ($s3) -/* 09A1FC 800995FC 8E2B0004 */ lw $t3, 4($s1) -/* 09A200 80099600 000C68C0 */ sll $t5, $t4, 3 -/* 09A204 80099604 020D7021 */ addu $t6, $s0, $t5 -/* 09A208 80099608 ADCB0000 */ sw $t3, ($t6) -/* 09A20C 8009960C 8E780000 */ lw $t8, ($s3) -/* 09A210 80099610 8E4F0000 */ lw $t7, ($s2) -/* 09A214 80099614 0018C8C0 */ sll $t9, $t8, 3 -/* 09A218 80099618 02194021 */ addu $t0, $s0, $t9 -/* 09A21C 8009961C AD0F0004 */ sw $t7, 4($t0) -/* 09A220 80099620 962A0008 */ lhu $t2, 8($s1) -/* 09A224 80099624 9629000A */ lhu $t1, 0xa($s1) -/* 09A228 80099628 8E4D0000 */ lw $t5, ($s2) -/* 09A22C 8009962C 8E680000 */ lw $t0, ($s3) -/* 09A230 80099630 012A0019 */ multu $t1, $t2 -/* 09A234 80099634 25090001 */ addiu $t1, $t0, 1 -/* 09A238 80099638 AE690000 */ sw $t1, ($s3) -/* 09A23C 8009963C 00006012 */ mflo $t4 -/* 09A240 80099640 01AC5821 */ addu $t3, $t5, $t4 -/* 09A244 80099644 01607025 */ move $t6, $t3 -/* 09A248 80099648 AE4B0000 */ sw $t3, ($s2) -/* 09A24C 8009964C 05C10003 */ bgez $t6, .L8009965C -/* 09A250 80099650 000EC0C3 */ sra $t8, $t6, 3 -/* 09A254 80099654 25C10007 */ addiu $at, $t6, 7 -/* 09A258 80099658 0001C0C3 */ sra $t8, $at, 3 -.L8009965C: -/* 09A25C 8009965C 0018C8C0 */ sll $t9, $t8, 3 -/* 09A260 80099660 272F0008 */ addiu $t7, $t9, 8 -/* 09A264 80099664 AE4F0000 */ sw $t7, ($s2) -/* 09A268 80099668 8E2A0018 */ lw $t2, 0x18($s1) -.L8009966C: -/* 09A26C 8009966C 26310014 */ addiu $s1, $s1, 0x14 -/* 09A270 80099670 5540FFC5 */ bnel $t2, $zero, .L80099588 -/* 09A274 80099674 8E630000 */ lw $v1, ($s3) -.L80099678: -/* 09A278 80099678 8FBF002C */ lw $ra, 0x2c($sp) -/* 09A27C 8009967C 8FB00014 */ lw $s0, 0x14($sp) -/* 09A280 80099680 8FB10018 */ lw $s1, 0x18($sp) -/* 09A284 80099684 8FB2001C */ lw $s2, 0x1c($sp) -/* 09A288 80099688 8FB30020 */ lw $s3, 0x20($sp) -/* 09A28C 8009968C 8FB40024 */ lw $s4, 0x24($sp) -/* 09A290 80099690 8FB50028 */ lw $s5, 0x28($sp) -/* 09A294 80099694 03E00008 */ jr $ra -/* 09A298 80099698 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_800996BC.s b/asm/non_matchings/code_80091750/func_800996BC.s deleted file mode 100644 index a35f144e1..000000000 --- a/asm/non_matchings/code_80091750/func_800996BC.s +++ /dev/null @@ -1,189 +0,0 @@ -glabel load_menu_img2 -/* 09A2BC 800996BC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 09A2C0 800996C0 AFBF003C */ sw $ra, 0x3c($sp) -/* 09A2C4 800996C4 AFB20020 */ sw $s2, 0x20($sp) -/* 09A2C8 800996C8 00A09025 */ move $s2, $a1 -/* 09A2CC 800996CC AFBE0038 */ sw $fp, 0x38($sp) -/* 09A2D0 800996D0 AFB70034 */ sw $s7, 0x34($sp) -/* 09A2D4 800996D4 AFB60030 */ sw $s6, 0x30($sp) -/* 09A2D8 800996D8 AFB5002C */ sw $s5, 0x2c($sp) -/* 09A2DC 800996DC AFB40028 */ sw $s4, 0x28($sp) -/* 09A2E0 800996E0 AFB30024 */ sw $s3, 0x24($sp) -/* 09A2E4 800996E4 AFB1001C */ sw $s1, 0x1c($sp) -/* 09A2E8 800996E8 0C026449 */ jal segmented_to_virtual_dupe -/* 09A2EC 800996EC AFB00018 */ sw $s0, 0x18($sp) -/* 09A2F0 800996F0 8C4E0004 */ lw $t6, 4($v0) -/* 09A2F4 800996F4 00408025 */ move $s0, $v0 -/* 09A2F8 800996F8 241E0002 */ li $fp, 2 -/* 09A2FC 800996FC 11C0008A */ beqz $t6, .L80099928 -/* 09A300 80099700 2417FFFF */ li $s7, -1 -/* 09A304 80099704 3C158019 */ lui $s5, %hi(D_8018D9B4) # $s5, 0x8019 -/* 09A308 80099708 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019 -/* 09A30C 8009970C 3C138019 */ lui $s3, %hi(gMenuTextureBufferIndex) # $s3, 0x8019 -/* 09A310 80099710 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019 -/* 09A314 80099714 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8 -/* 09A318 80099718 2673E110 */ addiu $s3, %lo(gMenuTextureBufferIndex) # addiu $s3, $s3, -0x1ef0 -/* 09A31C 8009971C 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8 -/* 09A320 80099720 26B5D9B4 */ addiu $s5, %lo(D_8018D9B4) # addiu $s5, $s5, -0x264c -/* 09A324 80099724 24160001 */ li $s6, 1 -/* 09A328 80099728 8E830000 */ lw $v1, ($s4) -.L8009972C: -/* 09A32C 8009972C 00002825 */ move $a1, $zero -/* 09A330 80099730 00001025 */ move $v0, $zero -/* 09A334 80099734 1860000D */ blez $v1, .L8009976C -/* 09A338 80099738 00000000 */ nop -/* 09A33C 8009973C 8E040004 */ lw $a0, 4($s0) -/* 09A340 80099740 000278C0 */ sll $t7, $v0, 3 -.L80099744: -/* 09A344 80099744 022FC021 */ addu $t8, $s1, $t7 -/* 09A348 80099748 8F190000 */ lw $t9, ($t8) -/* 09A34C 8009974C 24420001 */ addiu $v0, $v0, 1 -/* 09A350 80099750 0043082A */ slt $at, $v0, $v1 -/* 09A354 80099754 17240003 */ bne $t9, $a0, .L80099764 -/* 09A358 80099758 00000000 */ nop -/* 09A35C 8009975C 10000003 */ b .L8009976C -/* 09A360 80099760 02C02825 */ move $a1, $s6 -.L80099764: -/* 09A364 80099764 5420FFF7 */ bnel $at, $zero, .L80099744 -/* 09A368 80099768 000278C0 */ sll $t7, $v0, 3 -.L8009976C: -/* 09A36C 8009976C 50A00004 */ beql $a1, $zero, .L80099780 -/* 09A370 80099770 96020010 */ lhu $v0, 0x10($s0) -/* 09A374 80099774 5A400069 */ blezl $s2, .L8009991C -/* 09A378 80099778 8E0F0018 */ lw $t7, 0x18($s0) -/* 09A37C 8009977C 96020010 */ lhu $v0, 0x10($s0) -.L80099780: -/* 09A380 80099780 24051000 */ li $a1, 4096 -/* 09A384 80099784 10400003 */ beqz $v0, .L80099794 -/* 09A388 80099788 00000000 */ nop -/* 09A38C 8009978C 10000001 */ b .L80099794 -/* 09A390 80099790 3045FFFF */ andi $a1, $v0, 0xffff -.L80099794: -/* 09A394 80099794 00A01025 */ move $v0, $a1 -/* 09A398 80099798 04410004 */ bgez $v0, .L800997AC -/* 09A39C 8009979C 30480007 */ andi $t0, $v0, 7 -/* 09A3A0 800997A0 11000002 */ beqz $t0, .L800997AC -/* 09A3A4 800997A4 00000000 */ nop -/* 09A3A8 800997A8 2508FFF8 */ addiu $t0, $t0, -8 -.L800997AC: -/* 09A3AC 800997AC 11000009 */ beqz $t0, .L800997D4 -/* 09A3B0 800997B0 00000000 */ nop -/* 09A3B4 800997B4 04410003 */ bgez $v0, .L800997C4 -/* 09A3B8 800997B8 000228C3 */ sra $a1, $v0, 3 -/* 09A3BC 800997BC 24410007 */ addiu $at, $v0, 7 -/* 09A3C0 800997C0 000128C3 */ sra $a1, $at, 3 -.L800997C4: -/* 09A3C4 800997C4 000548C0 */ sll $t1, $a1, 3 -/* 09A3C8 800997C8 25250008 */ addiu $a1, $t1, 8 -/* 09A3CC 800997CC 30AAFFFF */ andi $t2, $a1, 0xffff -/* 09A3D0 800997D0 01402825 */ move $a1, $t2 -.L800997D4: -/* 09A3D4 800997D4 5257000A */ beql $s2, $s7, .L80099800 -/* 09A3D8 800997D8 8E040004 */ lw $a0, 4($s0) -/* 09A3DC 800997DC 5240000D */ beql $s2, $zero, .L80099814 -/* 09A3E0 800997E0 8E040004 */ lw $a0, 4($s0) -/* 09A3E4 800997E4 52560006 */ beql $s2, $s6, .L80099800 -/* 09A3E8 800997E8 8E040004 */ lw $a0, 4($s0) -/* 09A3EC 800997EC 525E0009 */ beql $s2, $fp, .L80099814 -/* 09A3F0 800997F0 8E040004 */ lw $a0, 4($s0) -/* 09A3F4 800997F4 10000009 */ b .L8009981C -/* 09A3F8 800997F8 00000000 */ nop -/* 09A3FC 800997FC 8E040004 */ lw $a0, 4($s0) -.L80099800: -/* 09A400 80099800 0C026400 */ jal dma_copy_base_729a30 -/* 09A404 80099804 8EA60000 */ lw $a2, ($s5) -/* 09A408 80099808 10000004 */ b .L8009981C -/* 09A40C 8009980C 00000000 */ nop -/* 09A410 80099810 8E040004 */ lw $a0, 4($s0) -.L80099814: -/* 09A414 80099814 0C026422 */ jal dma_copy_base_7fa3c0 -/* 09A418 80099818 8EA60000 */ lw $a2, ($s5) -.L8009981C: -/* 09A41C 8009981C 1257000A */ beq $s2, $s7, .L80099848 -/* 09A420 80099820 3C0D8019 */ lui $t5, %hi(D_8018D9B0) # $t5, 0x8019 -/* 09A424 80099824 12400011 */ beqz $s2, .L8009986C -/* 09A428 80099828 3C058019 */ lui $a1, %hi(D_8018D9B8) # 0x8019 -/* 09A42C 8009982C 52560007 */ beql $s2, $s6, .L8009984C -/* 09A430 80099830 8E6B0000 */ lw $t3, ($s3) -/* 09A434 80099834 525E000E */ beql $s2, $fp, .L80099870 -/* 09A438 80099838 860E0000 */ lh $t6, ($s0) -/* 09A43C 8009983C 8E830000 */ lw $v1, ($s4) -/* 09A440 80099840 1000001B */ b .L800998B0 -/* 09A444 80099844 8E040004 */ lw $a0, 4($s0) -.L80099848: -/* 09A448 80099848 8E6B0000 */ lw $t3, ($s3) -.L8009984C: -/* 09A44C 8009984C 8DADD9B0 */ lw $t5, %lo(D_8018D9B0)($t5) -/* 09A450 80099850 8EA40000 */ lw $a0, ($s5) -/* 09A454 80099854 000B6040 */ sll $t4, $t3, 1 -/* 09A458 80099858 0C010034 */ jal mio0decode -/* 09A45C 8009985C 018D2821 */ addu $a1, $t4, $t5 -/* 09A460 80099860 8E830000 */ lw $v1, ($s4) -/* 09A464 80099864 10000012 */ b .L800998B0 -/* 09A468 80099868 8E040004 */ lw $a0, 4($s0) -.L8009986C: -/* 09A46C 8009986C 860E0000 */ lh $t6, ($s0) -.L80099870: -/* 09A470 80099870 24020001 */ li $v0, 1 -/* 09A474 80099874 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 -/* 09A478 80099878 16CE0003 */ bne $s6, $t6, .L80099888 -/* 09A47C 8009987C 00000000 */ nop -/* 09A480 80099880 10000001 */ b .L80099888 -/* 09A484 80099884 240200BE */ li $v0, 190 -.L80099888: -/* 09A488 80099888 8E6F0000 */ lw $t7, ($s3) -/* 09A48C 8009988C 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) -/* 09A490 80099890 8EA40000 */ lw $a0, ($s5) -/* 09A494 80099894 000FC040 */ sll $t8, $t7, 1 -/* 09A498 80099898 8CA5D9B8 */ lw $a1, %lo(D_8018D9B8)($a1) # -0x2648($a1) -/* 09A49C 8009989C 00403825 */ move $a3, $v0 -/* 09A4A0 800998A0 0C010174 */ jal tkmk00decode -/* 09A4A4 800998A4 03193021 */ addu $a2, $t8, $t9 -/* 09A4A8 800998A8 8E830000 */ lw $v1, ($s4) -/* 09A4AC 800998AC 8E040004 */ lw $a0, 4($s0) -.L800998B0: -/* 09A4B0 800998B0 000340C0 */ sll $t0, $v1, 3 -/* 09A4B4 800998B4 02284821 */ addu $t1, $s1, $t0 -/* 09A4B8 800998B8 AD240000 */ sw $a0, ($t1) -/* 09A4BC 800998BC 8E8B0000 */ lw $t3, ($s4) -/* 09A4C0 800998C0 8E6A0000 */ lw $t2, ($s3) -/* 09A4C4 800998C4 000B60C0 */ sll $t4, $t3, 3 -/* 09A4C8 800998C8 022C6821 */ addu $t5, $s1, $t4 -/* 09A4CC 800998CC ADAA0004 */ sw $t2, 4($t5) -/* 09A4D0 800998D0 960F0008 */ lhu $t7, 8($s0) -/* 09A4D4 800998D4 960E000A */ lhu $t6, 0xa($s0) -/* 09A4D8 800998D8 8E790000 */ lw $t9, ($s3) -/* 09A4DC 800998DC 8E8D0000 */ lw $t5, ($s4) -/* 09A4E0 800998E0 01CF0019 */ multu $t6, $t7 -/* 09A4E4 800998E4 25AE0001 */ addiu $t6, $t5, 1 -/* 09A4E8 800998E8 AE8E0000 */ sw $t6, ($s4) -/* 09A4EC 800998EC 0000C012 */ mflo $t8 -/* 09A4F0 800998F0 03384021 */ addu $t0, $t9, $t8 -/* 09A4F4 800998F4 01004825 */ move $t1, $t0 -/* 09A4F8 800998F8 AE680000 */ sw $t0, ($s3) -/* 09A4FC 800998FC 05210003 */ bgez $t1, .L8009990C -/* 09A500 80099900 000958C3 */ sra $t3, $t1, 3 -/* 09A504 80099904 25210007 */ addiu $at, $t1, 7 -/* 09A508 80099908 000158C3 */ sra $t3, $at, 3 -.L8009990C: -/* 09A50C 8009990C 000B60C0 */ sll $t4, $t3, 3 -/* 09A510 80099910 258A0008 */ addiu $t2, $t4, 8 -/* 09A514 80099914 AE6A0000 */ sw $t2, ($s3) -/* 09A518 80099918 8E0F0018 */ lw $t7, 0x18($s0) -.L8009991C: -/* 09A51C 8009991C 26100014 */ addiu $s0, $s0, 0x14 -/* 09A520 80099920 55E0FF82 */ bnel $t7, $zero, .L8009972C -/* 09A524 80099924 8E830000 */ lw $v1, ($s4) -.L80099928: -/* 09A528 80099928 8FBF003C */ lw $ra, 0x3c($sp) -/* 09A52C 8009992C 8FB00018 */ lw $s0, 0x18($sp) -/* 09A530 80099930 8FB1001C */ lw $s1, 0x1c($sp) -/* 09A534 80099934 8FB20020 */ lw $s2, 0x20($sp) -/* 09A538 80099938 8FB30024 */ lw $s3, 0x24($sp) -/* 09A53C 8009993C 8FB40028 */ lw $s4, 0x28($sp) -/* 09A540 80099940 8FB5002C */ lw $s5, 0x2c($sp) -/* 09A544 80099944 8FB60030 */ lw $s6, 0x30($sp) -/* 09A548 80099948 8FB70034 */ lw $s7, 0x34($sp) -/* 09A54C 8009994C 8FBE0038 */ lw $fp, 0x38($sp) -/* 09A550 80099950 03E00008 */ jr $ra -/* 09A554 80099954 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/non_matchings/code_80091750/func_800A09E0.s b/asm/non_matchings/code_80091750/func_800A09E0.s deleted file mode 100644 index 96a405148..000000000 --- a/asm/non_matchings/code_80091750/func_800A09E0.s +++ /dev/null @@ -1,64 +0,0 @@ -glabel func_800A09E0 -/* 0A15E0 800A09E0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0A15E4 800A09E4 AFB10018 */ sw $s1, 0x18($sp) -/* 0A15E8 800A09E8 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015 -/* 0A15EC 800A09EC 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298 -/* 0A15F0 800A09F0 8E230000 */ lw $v1, ($s1) -/* 0A15F4 800A09F4 AFB70030 */ sw $s7, 0x30($sp) -/* 0A15F8 800A09F8 AFB6002C */ sw $s6, 0x2c($sp) -/* 0A15FC 800A09FC AFB50028 */ sw $s5, 0x28($sp) -/* 0A1600 800A0A00 AFB40024 */ sw $s4, 0x24($sp) -/* 0A1604 800A0A04 AFB30020 */ sw $s3, 0x20($sp) -/* 0A1608 800A0A08 AFB2001C */ sw $s2, 0x1c($sp) -/* 0A160C 800A0A0C AFB00014 */ sw $s0, 0x14($sp) -/* 0A1610 800A0A10 246E0008 */ addiu $t6, $v1, 8 -/* 0A1614 800A0A14 AFBF0034 */ sw $ra, 0x34($sp) -/* 0A1618 800A0A18 AE2E0000 */ sw $t6, ($s1) -/* 0A161C 800A0A1C 3C18004F */ lui $t8, (0x004FC308 >> 16) # lui $t8, 0x4f -/* 0A1620 800A0A20 3718C308 */ ori $t8, (0x004FC308 & 0xFFFF) # ori $t8, $t8, 0xc308 -/* 0A1624 800A0A24 3C0FED00 */ lui $t7, 0xed00 -/* 0A1628 800A0A28 3C13800F */ lui $s3, %hi(D_800E86D0) # $s3, 0x800f -/* 0A162C 800A0A2C 3C160200 */ lui $s6, %hi(D_0200157C) # $s6, 0x200 -/* 0A1630 800A0A30 00809025 */ move $s2, $a0 -/* 0A1634 800A0A34 26D6157C */ addiu $s6, %lo(D_0200157C) # addiu $s6, $s6, 0x157c -/* 0A1638 800A0A38 267386D0 */ addiu $s3, %lo(D_800E86D0) # addiu $s3, $s3, -0x7930 -/* 0A163C 800A0A3C 00008025 */ move $s0, $zero -/* 0A1640 800A0A40 24140008 */ li $s4, 8 -/* 0A1644 800A0A44 24150009 */ li $s5, 9 -/* 0A1648 800A0A48 2417000A */ li $s7, 10 -/* 0A164C 800A0A4C AC6F0000 */ sw $t7, ($v1) -/* 0A1650 800A0A50 AC780004 */ sw $t8, 4($v1) -/* 0A1654 800A0A54 82790000 */ lb $t9, ($s3) -.L800A0A58: -/* 0A1658 800A0A58 17200005 */ bnez $t9, .L800A0A70 -/* 0A165C 800A0A5C 00000000 */ nop -/* 0A1660 800A0A60 5200000E */ beql $s0, $zero, .L800A0A9C -/* 0A1664 800A0A64 26100001 */ addiu $s0, $s0, 1 -/* 0A1668 800A0A68 5214000C */ beql $s0, $s4, .L800A0A9C -/* 0A166C 800A0A6C 26100001 */ addiu $s0, $s0, 1 -.L800A0A70: -/* 0A1670 800A0A70 02170019 */ multu $s0, $s7 -/* 0A1674 800A0A74 8E490010 */ lw $t1, 0x10($s2) -/* 0A1678 800A0A78 8E240000 */ lw $a0, ($s1) -/* 0A167C 800A0A7C 02C02825 */ move $a1, $s6 -/* 0A1680 800A0A80 24060020 */ li $a2, 32 -/* 0A1684 800A0A84 00004012 */ mflo $t0 -/* 0A1688 800A0A88 01093821 */ addu $a3, $t0, $t1 -/* 0A168C 800A0A8C 0C026E9D */ jal func_8009BA74 -/* 0A1690 800A0A90 00000000 */ nop -/* 0A1694 800A0A94 AE220000 */ sw $v0, ($s1) -/* 0A1698 800A0A98 26100001 */ addiu $s0, $s0, 1 -.L800A0A9C: -/* 0A169C 800A0A9C 5615FFEE */ bnel $s0, $s5, .L800A0A58 -/* 0A16A0 800A0AA0 82790000 */ lb $t9, ($s3) -/* 0A16A4 800A0AA4 8FBF0034 */ lw $ra, 0x34($sp) -/* 0A16A8 800A0AA8 8FB00014 */ lw $s0, 0x14($sp) -/* 0A16AC 800A0AAC 8FB10018 */ lw $s1, 0x18($sp) -/* 0A16B0 800A0AB0 8FB2001C */ lw $s2, 0x1c($sp) -/* 0A16B4 800A0AB4 8FB30020 */ lw $s3, 0x20($sp) -/* 0A16B8 800A0AB8 8FB40024 */ lw $s4, 0x24($sp) -/* 0A16BC 800A0ABC 8FB50028 */ lw $s5, 0x28($sp) -/* 0A16C0 800A0AC0 8FB6002C */ lw $s6, 0x2c($sp) -/* 0A16C4 800A0AC4 8FB70030 */ lw $s7, 0x30($sp) -/* 0A16C8 800A0AC8 03E00008 */ jr $ra -/* 0A16CC 800A0ACC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80091750/func_800AC458.s b/asm/non_matchings/code_80091750/func_800AC458.s deleted file mode 100644 index 9b3a8d883..000000000 --- a/asm/non_matchings/code_80091750/func_800AC458.s +++ /dev/null @@ -1,367 +0,0 @@ -.section .late_rodata - -glabel jpt_800F2688 -.word L800AC488, L800AC4EC, L800AC580, L800AC5D0 -.word L800AC5D0, L800AC5D0, L800AC5D0, L800AC738 -.word L800AC78C, L800AC7CC, L800AC878, L800AC8A0 -.word L800AC8E0, L800AC968 - -.section .text - -glabel func_800AC458 -/* 0AD058 800AC458 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0AD05C 800AC45C AFBF0014 */ sw $ra, 0x14($sp) -/* 0AD060 800AC460 8C820004 */ lw $v0, 4($a0) -/* 0AD064 800AC464 00803825 */ move $a3, $a0 -/* 0AD068 800AC468 2C41000E */ sltiu $at, $v0, 0xe -/* 0AD06C 800AC46C 1020013E */ beqz $at, .L800AC968 -/* 0AD070 800AC470 00027080 */ sll $t6, $v0, 2 -/* 0AD074 800AC474 3C01800F */ lui $at, %hi(jpt_800F2688) -/* 0AD078 800AC478 002E0821 */ addu $at, $at, $t6 -/* 0AD07C 800AC47C 8C2E2688 */ lw $t6, %lo(jpt_800F2688)($at) -/* 0AD080 800AC480 01C00008 */ jr $t6 -/* 0AD084 800AC484 00000000 */ nop -glabel L800AC488 -/* 0AD088 800AC488 240FFF60 */ li $t7, -160 -/* 0AD08C 800AC48C 24180001 */ li $t8, 1 -/* 0AD090 800AC490 ACEF000C */ sw $t7, 0xc($a3) -/* 0AD094 800AC494 ACF80004 */ sw $t8, 4($a3) -/* 0AD098 800AC498 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019 -/* 0AD09C 800AC49C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644 -/* 0AD0A0 800AC4A0 3C19800F */ lui $t9, %hi(gGPPointRewards) # $t9, 0x800f -/* 0AD0A4 800AC4A4 83390B18 */ lb $t9, %lo(gGPPointRewards)($t9) -/* 0AD0A8 800AC4A8 8C4A0000 */ lw $t2, ($v0) -/* 0AD0AC 800AC4AC 3C0B800F */ lui $t3, %hi(gGPPointRewards + 1) # $t3, 0x800f -/* 0AD0B0 800AC4B0 3C0D800F */ lui $t5, %hi(gGPPointRewards + 2) # $t5, 0x800f -/* 0AD0B4 800AC4B4 A1590000 */ sb $t9, ($t2) -/* 0AD0B8 800AC4B8 8C4C0000 */ lw $t4, ($v0) -/* 0AD0BC 800AC4BC 816B0B19 */ lb $t3, %lo(gGPPointRewards + 1)($t3) -/* 0AD0C0 800AC4C0 3C0F800F */ lui $t7, %hi(gGPPointRewards + 3) # $t7, 0x800f -/* 0AD0C4 800AC4C4 A18B0001 */ sb $t3, 1($t4) -/* 0AD0C8 800AC4C8 8C4E0000 */ lw $t6, ($v0) -/* 0AD0CC 800AC4CC 81AD0B1A */ lb $t5, %lo(gGPPointRewards + 2)($t5) -/* 0AD0D0 800AC4D0 A1CD0002 */ sb $t5, 2($t6) -/* 0AD0D4 800AC4D4 8C580000 */ lw $t8, ($v0) -/* 0AD0D8 800AC4D8 81EF0B1B */ lb $t7, %lo(gGPPointRewards + 3)($t7) -/* 0AD0DC 800AC4DC A30F0003 */ sb $t7, 3($t8) -/* 0AD0E0 800AC4E0 8CF9000C */ lw $t9, 0xc($a3) -/* 0AD0E4 800AC4E4 10000120 */ b .L800AC968 -/* 0AD0E8 800AC4E8 ACF90020 */ sw $t9, 0x20($a3) -glabel L800AC4EC -/* 0AD0EC 800AC4EC 8CE50020 */ lw $a1, 0x20($a3) -/* 0AD0F0 800AC4F0 3C0A8019 */ lui $t2, %hi(D_8018D9D8) # $t2, 0x8019 -/* 0AD0F4 800AC4F4 24040010 */ li $a0, 16 -/* 0AD0F8 800AC4F8 ACE5000C */ sw $a1, 0xc($a3) -/* 0AD0FC 800AC4FC 814AD9D8 */ lb $t2, %lo(D_8018D9D8)($t2) -/* 0AD100 800AC500 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e -/* 0AD104 800AC504 240F0002 */ li $t7, 2 -/* 0AD108 800AC508 11400003 */ beqz $t2, .L800AC518 -/* 0AD10C 800AC50C 3C19800E */ lui $t9, %hi(D_800DC5EC) # $t9, 0x800e -/* 0AD110 800AC510 10000001 */ b .L800AC518 -/* 0AD114 800AC514 24040020 */ li $a0, 32 -.L800AC518: -/* 0AD118 800AC518 00A43021 */ addu $a2, $a1, $a0 -/* 0AD11C 800AC51C 04C3000D */ bgezl $a2, .L800AC554 -/* 0AD120 800AC520 ACE00020 */ sw $zero, 0x20($a3) -/* 0AD124 800AC524 ACE60020 */ sw $a2, 0x20($a3) -/* 0AD128 800AC528 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0) -/* 0AD12C 800AC52C 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e -/* 0AD130 800AC530 844B0030 */ lh $t3, 0x30($v0) -/* 0AD134 800AC534 01646021 */ addu $t4, $t3, $a0 -/* 0AD138 800AC538 A44C0030 */ sh $t4, 0x30($v0) -/* 0AD13C 800AC53C 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1) -/* 0AD140 800AC540 846D0030 */ lh $t5, 0x30($v1) -/* 0AD144 800AC544 01A47023 */ subu $t6, $t5, $a0 -/* 0AD148 800AC548 10000107 */ b .L800AC968 -/* 0AD14C 800AC54C A46E0030 */ sh $t6, 0x30($v1) -/* 0AD150 800AC550 ACE00020 */ sw $zero, 0x20($a3) -.L800AC554: -/* 0AD154 800AC554 ACE0000C */ sw $zero, 0xc($a3) -/* 0AD158 800AC558 ACEF0004 */ sw $t7, 4($a3) -/* 0AD15C 800AC55C ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD160 800AC560 8F39C5EC */ lw $t9, %lo(D_800DC5EC)($t9) -/* 0AD164 800AC564 241800F0 */ li $t8, 240 -/* 0AD168 800AC568 3C0B800E */ lui $t3, %hi(D_800DC5F0) # $t3, 0x800e -/* 0AD16C 800AC56C A7380030 */ sh $t8, 0x30($t9) -/* 0AD170 800AC570 8D6BC5F0 */ lw $t3, %lo(D_800DC5F0)($t3) -/* 0AD174 800AC574 240A0050 */ li $t2, 80 -/* 0AD178 800AC578 100000FB */ b .L800AC968 -/* 0AD17C 800AC57C A56A0030 */ sh $t2, 0x30($t3) -glabel L800AC580 -/* 0AD180 800AC580 8CEC001C */ lw $t4, 0x1c($a3) -/* 0AD184 800AC584 ACE0000C */ sw $zero, 0xc($a3) -/* 0AD188 800AC588 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019 -/* 0AD18C 800AC58C 258D0001 */ addiu $t5, $t4, 1 -/* 0AD190 800AC590 ACED001C */ sw $t5, 0x1c($a3) -/* 0AD194 800AC594 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6) -/* 0AD198 800AC598 29A1001F */ slti $at, $t5, 0x1f -/* 0AD19C 800AC59C 3C18800E */ lui $t8, %hi(D_800DDB24) # $t8, 0x800e -/* 0AD1A0 800AC5A0 15C00003 */ bnez $t6, .L800AC5B0 -/* 0AD1A4 800AC5A4 00000000 */ nop -/* 0AD1A8 800AC5A8 542000F0 */ bnel $at, $zero, .L800AC96C -/* 0AD1AC 800AC5AC 8FBF0014 */ lw $ra, 0x14($sp) -.L800AC5B0: -/* 0AD1B0 800AC5B0 8F18DB24 */ lw $t8, %lo(D_800DDB24)($t8) -/* 0AD1B4 800AC5B4 24190003 */ li $t9, 3 -/* 0AD1B8 800AC5B8 530000EC */ beql $t8, $zero, .L800AC96C -/* 0AD1BC 800AC5BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD1C0 800AC5C0 ACF90004 */ sw $t9, 4($a3) -/* 0AD1C4 800AC5C4 ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD1C8 800AC5C8 100000E7 */ b .L800AC968 -/* 0AD1CC 800AC5CC ACE00020 */ sw $zero, 0x20($a3) -glabel L800AC5D0 -/* 0AD1D0 800AC5D0 8CEA001C */ lw $t2, 0x1c($a3) -/* 0AD1D4 800AC5D4 24010003 */ li $at, 3 -/* 0AD1D8 800AC5D8 00004825 */ move $t1, $zero -/* 0AD1DC 800AC5DC 254B0001 */ addiu $t3, $t2, 1 -/* 0AD1E0 800AC5E0 0161001A */ div $zero, $t3, $at -/* 0AD1E4 800AC5E4 00006810 */ mfhi $t5 -/* 0AD1E8 800AC5E8 2445FFFD */ addiu $a1, $v0, -3 -/* 0AD1EC 800AC5EC 11A00004 */ beqz $t5, .L800AC600 -/* 0AD1F0 800AC5F0 ACEB001C */ sw $t3, 0x1c($a3) -/* 0AD1F4 800AC5F4 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019 -/* 0AD1F8 800AC5F8 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6) -/* 0AD1FC 800AC5FC 11C00032 */ beqz $t6, .L800AC6C8 -.L800AC600: -/* 0AD200 800AC600 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019 -/* 0AD204 800AC604 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644 -/* 0AD208 800AC608 8C4F0000 */ lw $t7, ($v0) -/* 0AD20C 800AC60C 0005C840 */ sll $t9, $a1, 1 -/* 0AD210 800AC610 3C0A8016 */ lui $t2, %hi(gGPCurrentRacePlayerIdByRank) # 0x8016 -/* 0AD214 800AC614 01E53021 */ addu $a2, $t7, $a1 -/* 0AD218 800AC618 90C80000 */ lbu $t0, ($a2) -/* 0AD21C 800AC61C 01595021 */ addu $t2, $t2, $t9 -/* 0AD220 800AC620 3C0C800F */ lui $t4, %hi(gPlayers+0x254) # 0x800f -/* 0AD224 800AC624 19000028 */ blez $t0, .L800AC6C8 -/* 0AD228 800AC628 2518FFFF */ addiu $t8, $t0, -1 -/* 0AD22C 800AC62C A0D80000 */ sb $t8, ($a2) -/* 0AD230 800AC630 854A4360 */ lh $t2, %lo(gGPCurrentRacePlayerIdByRank)($t2) # 0x4360($t2) -/* 0AD234 800AC634 3C0D8019 */ lui $t5, %hi(gGPPointsByCharacterId) # $t5, 0x8019 -/* 0AD238 800AC638 25ADD9C8 */ addiu $t5, %lo(gGPPointsByCharacterId) # addiu $t5, $t5, -0x2638 -/* 0AD23C 800AC63C 000A58C0 */ sll $t3, $t2, 3 -/* 0AD240 800AC640 016A5823 */ subu $t3, $t3, $t2 -/* 0AD244 800AC644 000B5900 */ sll $t3, $t3, 4 -/* 0AD248 800AC648 016A5823 */ subu $t3, $t3, $t2 -/* 0AD24C 800AC64C 000B5880 */ sll $t3, $t3, 2 -/* 0AD250 800AC650 016A5823 */ subu $t3, $t3, $t2 -/* 0AD254 800AC654 000B58C0 */ sll $t3, $t3, 3 -/* 0AD258 800AC658 018B6021 */ addu $t4, $t4, $t3 -/* 0AD25C 800AC65C 958C6BE4 */ lhu $t4, %lo(gPlayers+0x254)($t4) # 0x6be4($t4) -/* 0AD260 800AC660 3C044900 */ lui $a0, (0x49008017 >> 16) # lui $a0, 0x4900 -/* 0AD264 800AC664 34848017 */ ori $a0, (0x49008017 & 0xFFFF) # ori $a0, $a0, 0x8017 -/* 0AD268 800AC668 018D1821 */ addu $v1, $t4, $t5 -/* 0AD26C 800AC66C 806E0000 */ lb $t6, ($v1) -/* 0AD270 800AC670 AFA90018 */ sw $t1, 0x18($sp) -/* 0AD274 800AC674 AFA70020 */ sw $a3, 0x20($sp) -/* 0AD278 800AC678 25CF0001 */ addiu $t7, $t6, 1 -/* 0AD27C 800AC67C A06F0000 */ sb $t7, ($v1) -/* 0AD280 800AC680 0C032384 */ jal play_sound2 -/* 0AD284 800AC684 AFA5001C */ sw $a1, 0x1c($sp) -/* 0AD288 800AC688 3C028019 */ lui $v0, %hi(D_8018D9BC) # $v0, 0x8019 -/* 0AD28C 800AC68C 2442D9BC */ addiu $v0, %lo(D_8018D9BC) # addiu $v0, $v0, -0x2644 -/* 0AD290 800AC690 8FA5001C */ lw $a1, 0x1c($sp) -/* 0AD294 800AC694 8C580000 */ lw $t8, ($v0) -/* 0AD298 800AC698 8FA70020 */ lw $a3, 0x20($sp) -/* 0AD29C 800AC69C 8FA90018 */ lw $t1, 0x18($sp) -/* 0AD2A0 800AC6A0 0305C821 */ addu $t9, $t8, $a1 -/* 0AD2A4 800AC6A4 932A0000 */ lbu $t2, ($t9) -/* 0AD2A8 800AC6A8 55400008 */ bnel $t2, $zero, .L800AC6CC -/* 0AD2AC 800AC6AC 8CED0020 */ lw $t5, 0x20($a3) -/* 0AD2B0 800AC6B0 8CEB0020 */ lw $t3, 0x20($a3) -/* 0AD2B4 800AC6B4 240C0001 */ li $t4, 1 -/* 0AD2B8 800AC6B8 55600004 */ bnel $t3, $zero, .L800AC6CC -/* 0AD2BC 800AC6BC 8CED0020 */ lw $t5, 0x20($a3) -/* 0AD2C0 800AC6C0 ACEC0020 */ sw $t4, 0x20($a3) -/* 0AD2C4 800AC6C4 ACE0001C */ sw $zero, 0x1c($a3) -.L800AC6C8: -/* 0AD2C8 800AC6C8 8CED0020 */ lw $t5, 0x20($a3) -.L800AC6CC: -/* 0AD2CC 800AC6CC 11A0000D */ beqz $t5, .L800AC704 -/* 0AD2D0 800AC6D0 00000000 */ nop -/* 0AD2D4 800AC6D4 8CE2001C */ lw $v0, 0x1c($a3) -/* 0AD2D8 800AC6D8 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019 -/* 0AD2DC 800AC6DC 2841000B */ slti $at, $v0, 0xb -/* 0AD2E0 800AC6E0 50200008 */ beql $at, $zero, .L800AC704 -/* 0AD2E4 800AC6E4 24090001 */ li $t1, 1 -/* 0AD2E8 800AC6E8 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6) -/* 0AD2EC 800AC6EC 28410004 */ slti $at, $v0, 4 -/* 0AD2F0 800AC6F0 11C00004 */ beqz $t6, .L800AC704 -/* 0AD2F4 800AC6F4 00000000 */ nop -/* 0AD2F8 800AC6F8 14200002 */ bnez $at, .L800AC704 -/* 0AD2FC 800AC6FC 00000000 */ nop -/* 0AD300 800AC700 24090001 */ li $t1, 1 -.L800AC704: -/* 0AD304 800AC704 51200099 */ beql $t1, $zero, .L800AC96C -/* 0AD308 800AC708 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD30C 800AC70C 8CE20004 */ lw $v0, 4($a3) -/* 0AD310 800AC710 ACE00020 */ sw $zero, 0x20($a3) -/* 0AD314 800AC714 ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD318 800AC718 28410006 */ slti $at, $v0, 6 -/* 0AD31C 800AC71C 10200004 */ beqz $at, .L800AC730 -/* 0AD320 800AC720 24180007 */ li $t8, 7 -/* 0AD324 800AC724 244F0001 */ addiu $t7, $v0, 1 -/* 0AD328 800AC728 1000008F */ b .L800AC968 -/* 0AD32C 800AC72C ACEF0004 */ sw $t7, 4($a3) -.L800AC730: -/* 0AD330 800AC730 1000008D */ b .L800AC968 -/* 0AD334 800AC734 ACF80004 */ sw $t8, 4($a3) -glabel L800AC738 -/* 0AD338 800AC738 8CF9001C */ lw $t9, 0x1c($a3) -/* 0AD33C 800AC73C 3C0B8019 */ lui $t3, %hi(D_8018D9D8) # $t3, 0x8019 -/* 0AD340 800AC740 272A0001 */ addiu $t2, $t9, 1 -/* 0AD344 800AC744 ACEA001C */ sw $t2, 0x1c($a3) -/* 0AD348 800AC748 816BD9D8 */ lb $t3, %lo(D_8018D9D8)($t3) -/* 0AD34C 800AC74C 2941000B */ slti $at, $t2, 0xb -/* 0AD350 800AC750 51600004 */ beql $t3, $zero, .L800AC764 -/* 0AD354 800AC754 8CED001C */ lw $t5, 0x1c($a3) -/* 0AD358 800AC758 10200004 */ beqz $at, .L800AC76C -/* 0AD35C 800AC75C 00000000 */ nop -/* 0AD360 800AC760 8CED001C */ lw $t5, 0x1c($a3) -.L800AC764: -/* 0AD364 800AC764 29A1003D */ slti $at, $t5, 0x3d -/* 0AD368 800AC768 1420007F */ bnez $at, .L800AC968 -.L800AC76C: -/* 0AD36C 800AC76C 3C0E800E */ lui $t6, %hi(D_800DDB24) # $t6, 0x800e -/* 0AD370 800AC770 8DCEDB24 */ lw $t6, %lo(D_800DDB24)($t6) -/* 0AD374 800AC774 24060008 */ li $a2, 8 -/* 0AD378 800AC778 51C0007C */ beql $t6, $zero, .L800AC96C -/* 0AD37C 800AC77C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD380 800AC780 ACE60004 */ sw $a2, 4($a3) -/* 0AD384 800AC784 10000078 */ b .L800AC968 -/* 0AD388 800AC788 ACE0001C */ sw $zero, 0x1c($a3) -glabel L800AC78C -/* 0AD38C 800AC78C 8CEF001C */ lw $t7, 0x1c($a3) -/* 0AD390 800AC790 3C198019 */ lui $t9, %hi(D_8018D9D8) # $t9, 0x8019 -/* 0AD394 800AC794 240D0009 */ li $t5, 9 -/* 0AD398 800AC798 25F80001 */ addiu $t8, $t7, 1 -/* 0AD39C 800AC79C ACF8001C */ sw $t8, 0x1c($a3) -/* 0AD3A0 800AC7A0 8339D9D8 */ lb $t9, %lo(D_8018D9D8)($t9) -/* 0AD3A4 800AC7A4 270B0005 */ addiu $t3, $t8, 5 -/* 0AD3A8 800AC7A8 53200003 */ beql $t9, $zero, .L800AC7B8 -/* 0AD3AC 800AC7AC 8CEC001C */ lw $t4, 0x1c($a3) -/* 0AD3B0 800AC7B0 ACEB001C */ sw $t3, 0x1c($a3) -/* 0AD3B4 800AC7B4 8CEC001C */ lw $t4, 0x1c($a3) -.L800AC7B8: -/* 0AD3B8 800AC7B8 29810029 */ slti $at, $t4, 0x29 -/* 0AD3BC 800AC7BC 5420006B */ bnel $at, $zero, .L800AC96C -/* 0AD3C0 800AC7C0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD3C4 800AC7C4 10000068 */ b .L800AC968 -/* 0AD3C8 800AC7C8 ACED0004 */ sw $t5, 4($a3) -glabel L800AC7CC -/* 0AD3CC 800AC7CC 8CEE001C */ lw $t6, 0x1c($a3) -/* 0AD3D0 800AC7D0 3C188019 */ lui $t8, %hi(D_8018D9D8) # $t8, 0x8019 -/* 0AD3D4 800AC7D4 240C000A */ li $t4, 10 -/* 0AD3D8 800AC7D8 25CFFFFF */ addiu $t7, $t6, -1 -/* 0AD3DC 800AC7DC ACEF001C */ sw $t7, 0x1c($a3) -/* 0AD3E0 800AC7E0 8318D9D8 */ lb $t8, %lo(D_8018D9D8)($t8) -/* 0AD3E4 800AC7E4 25EAFFFB */ addiu $t2, $t7, -5 -/* 0AD3E8 800AC7E8 3C0D8019 */ lui $t5, %hi(gCourseIndexInCup) # $t5, 0x8019 -/* 0AD3EC 800AC7EC 53000003 */ beql $t8, $zero, .L800AC7FC -/* 0AD3F0 800AC7F0 8CEB001C */ lw $t3, 0x1c($a3) -/* 0AD3F4 800AC7F4 ACEA001C */ sw $t2, 0x1c($a3) -/* 0AD3F8 800AC7F8 8CEB001C */ lw $t3, 0x1c($a3) -.L800AC7FC: -/* 0AD3FC 800AC7FC 5D60005B */ bgtzl $t3, .L800AC96C -/* 0AD400 800AC800 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD404 800AC804 ACEC0004 */ sw $t4, 4($a3) -/* 0AD408 800AC808 ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD40C 800AC80C 81ADEE0B */ lb $t5, %lo(gCourseIndexInCup)($t5) -/* 0AD410 800AC810 24010003 */ li $at, 3 -/* 0AD414 800AC814 00002825 */ move $a1, $zero -/* 0AD418 800AC818 15A10053 */ bne $t5, $at, .L800AC968 -/* 0AD41C 800AC81C 3C028019 */ lui $v0, %hi(gCharacterIdByGPOverallRank) # $v0, 0x8019 -/* 0AD420 800AC820 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019 -/* 0AD424 800AC824 3C048016 */ lui $a0, %hi(D_80164478) # $a0, 0x8016 -/* 0AD428 800AC828 24844478 */ addiu $a0, %lo(D_80164478) # addiu $a0, $a0, 0x4478 -/* 0AD42C 800AC82C 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1) -/* 0AD430 800AC830 2442D9D0 */ addiu $v0, %lo(gCharacterIdByGPOverallRank) # addiu $v0, $v0, -0x2630 -/* 0AD434 800AC834 24060008 */ li $a2, 8 -.L800AC838: -/* 0AD438 800AC838 804E0000 */ lb $t6, ($v0) -/* 0AD43C 800AC83C 000E7840 */ sll $t7, $t6, 1 -/* 0AD440 800AC840 008FC021 */ addu $t8, $a0, $t7 -/* 0AD444 800AC844 87190000 */ lh $t9, ($t8) -/* 0AD448 800AC848 0323082A */ slt $at, $t9, $v1 -/* 0AD44C 800AC84C 50200006 */ beql $at, $zero, .L800AC868 -/* 0AD450 800AC850 24A50001 */ addiu $a1, $a1, 1 -/* 0AD454 800AC854 0C02D4DB */ jal func_800B536C -/* 0AD458 800AC858 00A02025 */ move $a0, $a1 -/* 0AD45C 800AC85C 10000043 */ b .L800AC96C -/* 0AD460 800AC860 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD464 800AC864 24A50001 */ addiu $a1, $a1, 1 -.L800AC868: -/* 0AD468 800AC868 14A6FFF3 */ bne $a1, $a2, .L800AC838 -/* 0AD46C 800AC86C 24420001 */ addiu $v0, $v0, 1 -/* 0AD470 800AC870 1000003E */ b .L800AC96C -/* 0AD474 800AC874 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800AC878 -/* 0AD478 800AC878 8CEA001C */ lw $t2, 0x1c($a3) -/* 0AD47C 800AC87C 240D000B */ li $t5, 11 -/* 0AD480 800AC880 254B0001 */ addiu $t3, $t2, 1 -/* 0AD484 800AC884 19600038 */ blez $t3, .L800AC968 -/* 0AD488 800AC888 ACEB001C */ sw $t3, 0x1c($a3) -/* 0AD48C 800AC88C ACED0004 */ sw $t5, 4($a3) -/* 0AD490 800AC890 0C02486D */ jal func_800921B4 -/* 0AD494 800AC894 ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD498 800AC898 10000034 */ b .L800AC96C -/* 0AD49C 800AC89C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800AC8A0 -/* 0AD4A0 800AC8A0 3C0E8019 */ lui $t6, %hi(D_8018D9D8) # $t6, 0x8019 -/* 0AD4A4 800AC8A4 81CED9D8 */ lb $t6, %lo(D_8018D9D8)($t6) -/* 0AD4A8 800AC8A8 3C0F800E */ lui $t7, %hi(D_800DDB24) # $t7, 0x800e -/* 0AD4AC 800AC8AC 51C0002F */ beql $t6, $zero, .L800AC96C -/* 0AD4B0 800AC8B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AD4B4 800AC8B4 8DEFDB24 */ lw $t7, %lo(D_800DDB24)($t7) -/* 0AD4B8 800AC8B8 3C044900 */ lui $a0, (0x49008015 >> 16) # lui $a0, 0x4900 -/* 0AD4BC 800AC8BC 2418000C */ li $t8, 12 -/* 0AD4C0 800AC8C0 11E00029 */ beqz $t7, .L800AC968 -/* 0AD4C4 800AC8C4 34848015 */ ori $a0, (0x49008015 & 0xFFFF) # ori $a0, $a0, 0x8015 -/* 0AD4C8 800AC8C8 8CF90010 */ lw $t9, 0x10($a3) -/* 0AD4CC 800AC8CC ACF80004 */ sw $t8, 4($a3) -/* 0AD4D0 800AC8D0 0C032384 */ jal play_sound2 -/* 0AD4D4 800AC8D4 ACF90020 */ sw $t9, 0x20($a3) -/* 0AD4D8 800AC8D8 10000024 */ b .L800AC96C -/* 0AD4DC 800AC8DC 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800AC8E0 -/* 0AD4E0 800AC8E0 8CE50020 */ lw $a1, 0x20($a3) -/* 0AD4E4 800AC8E4 240F000D */ li $t7, 13 -/* 0AD4E8 800AC8E8 2418012C */ li $t8, 300 -/* 0AD4EC 800AC8EC 28A100F0 */ slti $at, $a1, 0xf0 -/* 0AD4F0 800AC8F0 1020000E */ beqz $at, .L800AC92C -/* 0AD4F4 800AC8F4 ACE50010 */ sw $a1, 0x10($a3) -/* 0AD4F8 800AC8F8 24AA0010 */ addiu $t2, $a1, 0x10 -/* 0AD4FC 800AC8FC ACEA0020 */ sw $t2, 0x20($a3) -/* 0AD500 800AC900 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e -/* 0AD504 800AC904 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0) -/* 0AD508 800AC908 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e -/* 0AD50C 800AC90C 844B0032 */ lh $t3, 0x32($v0) -/* 0AD510 800AC910 256C0010 */ addiu $t4, $t3, 0x10 -/* 0AD514 800AC914 A44C0032 */ sh $t4, 0x32($v0) -/* 0AD518 800AC918 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1) -/* 0AD51C 800AC91C 846D0032 */ lh $t5, 0x32($v1) -/* 0AD520 800AC920 25AEFFF0 */ addiu $t6, $t5, -0x10 -/* 0AD524 800AC924 10000010 */ b .L800AC968 -/* 0AD528 800AC928 A46E0032 */ sh $t6, 0x32($v1) -.L800AC92C: -/* 0AD52C 800AC92C ACE00020 */ sw $zero, 0x20($a3) -/* 0AD530 800AC930 ACEF0004 */ sw $t7, 4($a3) -/* 0AD534 800AC934 ACE0001C */ sw $zero, 0x1c($a3) -/* 0AD538 800AC938 3C19800E */ lui $t9, %hi(D_800DC5EC) # $t9, 0x800e -/* 0AD53C 800AC93C 8F39C5EC */ lw $t9, %lo(D_800DC5EC)($t9) -/* 0AD540 800AC940 3C0B800E */ lui $t3, %hi(D_800DC5F0) # $t3, 0x800e -/* 0AD544 800AC944 240AFFC4 */ li $t2, -60 -/* 0AD548 800AC948 A7380032 */ sh $t8, 0x32($t9) -/* 0AD54C 800AC94C 8D6BC5F0 */ lw $t3, %lo(D_800DC5F0)($t3) -/* 0AD550 800AC950 240C0004 */ li $t4, 4 -/* 0AD554 800AC954 3C018016 */ lui $at, %hi(D_8015F894) # $at, 0x8016 -/* 0AD558 800AC958 A56A0032 */ sh $t2, 0x32($t3) -/* 0AD55C 800AC95C A42CF894 */ sh $t4, %lo(D_8015F894)($at) -/* 0AD560 800AC960 0C0328CC */ jal func_800CA330 -/* 0AD564 800AC964 24040019 */ li $a0, 25 -.L800AC968: -glabel L800AC968 -/* 0AD568 800AC968 8FBF0014 */ lw $ra, 0x14($sp) -.L800AC96C: -/* 0AD56C 800AC96C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0AD570 800AC970 03E00008 */ jr $ra -/* 0AD574 800AC974 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s b/asm/non_matchings/menu_items/add_ui_item.s similarity index 87% rename from asm/non_matchings/code_80091750/add_8018D9E0_entry.s rename to asm/non_matchings/menu_items/add_ui_item.s index 49c372865..255a52c61 100644 --- a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s +++ b/asm/non_matchings/menu_items/add_ui_item.s @@ -84,16 +84,16 @@ glabel D_800F15E0 .section .text -glabel add_ui_element +glabel add_menu_item /* 09F250 8009E650 27BDFF80 */ addiu $sp, $sp, -0x80 /* 09F254 8009E654 AFBF001C */ sw $ra, 0x1c($sp) /* 09F258 8009E658 AFA7008C */ sw $a3, 0x8c($sp) /* 09F25C 8009E65C 00077600 */ sll $t6, $a3, 0x18 -/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(D_8018D9E0) # $ra, 0x8019 +/* 09F260 8009E660 3C1F8019 */ lui $ra, %hi(gMenuItems) # $ra, 0x8019 /* 09F264 8009E664 000E3E03 */ sra $a3, $t6, 0x18 /* 09F268 8009E668 AFA40080 */ sw $a0, 0x80($sp) /* 09F26C 8009E66C 00001025 */ move $v0, $zero -/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(D_8018D9E0) # addiu $ra, $ra, -0x2620 +/* 09F270 8009E670 27FFD9E0 */ addiu $ra, %lo(gMenuItems) # addiu $ra, $ra, -0x2620 .L8009E674: /* 09F274 8009E674 8FF80000 */ lw $t8, ($ra) /* 09F278 8009E678 24420001 */ addiu $v0, $v0, 1 @@ -167,72 +167,72 @@ glabel add_ui_element /* 09F370 8009E770 00000000 */ nop glabel L8009E774 /* 09F374 8009E774 44802000 */ mtc1 $zero, $f4 -/* 09F378 8009E778 3C018019 */ lui $at, %hi(s8018ED94) # $at, 0x8019 -/* 09F37C 8009E77C AC20ED94 */ sw $zero, %lo(s8018ED94)($at) -/* 09F380 8009E780 3C01800F */ lui $at, %hi(D_800E8530) # $at, 0x800f -/* 09F384 8009E784 E4248530 */ swc1 $f4, %lo(D_800E8530)($at) +/* 09F378 8009E778 3C018019 */ lui $at, %hi(sIntroLogoTimer) # $at, 0x8019 +/* 09F37C 8009E77C AC20ED94 */ sw $zero, %lo(sIntroLogoTimer)($at) +/* 09F380 8009E780 3C01800F */ lui $at, %hi(sIntroModelMotionSpeed) # $at, 0x800f +/* 09F384 8009E784 E4248530 */ swc1 $f4, %lo(sIntroModelMotionSpeed)($at) /* 09F388 8009E788 3C014040 */ li $at, 0x40400000 # 3.000000 /* 09F38C 8009E78C 44813000 */ mtc1 $at, $f6 -/* 09F390 8009E790 3C01800F */ lui $at, %hi(D_800E8534) # $at, 0x800f +/* 09F390 8009E790 3C01800F */ lui $at, %hi(sIntroModelSpeed) # $at, 0x800f /* 09F394 8009E794 44800000 */ mtc1 $zero, $f0 -/* 09F398 8009E798 E4268534 */ swc1 $f6, %lo(D_800E8534)($at) -/* 09F39C 8009E79C 3C018019 */ lui $at, %hi(D_8018EDC0) # $at, 0x8019 +/* 09F398 8009E798 E4268534 */ swc1 $f6, %lo(sIntroModelSpeed)($at) +/* 09F39C 8009E79C 3C018019 */ lui $at, %hi(gIntroModelZEye) # $at, 0x8019 /* 09F3A0 8009E7A0 241909C4 */ li $t9, 2500 -/* 09F3A4 8009E7A4 AC39EDC0 */ sw $t9, %lo(D_8018EDC0)($at) -/* 09F3A8 8009E7A8 3C018019 */ lui $at, %hi(D_8018EDC8) # $at, 0x8019 -/* 09F3AC 8009E7AC E420EDC8 */ swc1 $f0, %lo(D_8018EDC8)($at) +/* 09F3A4 8009E7A4 AC39EDC0 */ sw $t9, %lo(gIntroModelZEye)($at) +/* 09F3A8 8009E7A8 3C018019 */ lui $at, %hi(gIntroModelRotX) # $at, 0x8019 +/* 09F3AC 8009E7AC E420EDC8 */ swc1 $f0, %lo(gIntroModelRotX)($at) /* 09F3B0 8009E7B0 3C01C387 */ li $at, 0xC3870000 # -270.000000 /* 09F3B4 8009E7B4 44814000 */ mtc1 $at, $f8 -/* 09F3B8 8009E7B8 3C018019 */ lui $at, %hi(D_8018EDCC) # $at, 0x8019 +/* 09F3B8 8009E7B8 3C018019 */ lui $at, %hi(gIntroModelRotY) # $at, 0x8019 /* 09F3BC 8009E7BC 240EFFFF */ li $t6, -1 -/* 09F3C0 8009E7C0 E428EDCC */ swc1 $f8, %lo(D_8018EDCC)($at) -/* 09F3C4 8009E7C4 3C018019 */ lui $at, %hi(D_8018EDD0) # $at, 0x8019 -/* 09F3C8 8009E7C8 E420EDD0 */ swc1 $f0, %lo(D_8018EDD0)($at) -/* 09F3CC 8009E7CC 3C018019 */ lui $at, %hi(D_8018EDD4) # $at, 0x8019 -/* 09F3D0 8009E7D0 E420EDD4 */ swc1 $f0, %lo(D_8018EDD4)($at) -/* 09F3D4 8009E7D4 3C018019 */ lui $at, %hi(D_8018EDD8) # $at, 0x8019 -/* 09F3D8 8009E7D8 E420EDD8 */ swc1 $f0, %lo(D_8018EDD8)($at) -/* 09F3DC 8009E7DC 3C018019 */ lui $at, %hi(D_8018EDDC) # $at, 0x8019 -/* 09F3E0 8009E7E0 E420EDDC */ swc1 $f0, %lo(D_8018EDDC)($at) +/* 09F3C0 8009E7C0 E428EDCC */ swc1 $f8, %lo(gIntroModelRotY)($at) +/* 09F3C4 8009E7C4 3C018019 */ lui $at, %hi(gIntroModelRotZ) # $at, 0x8019 +/* 09F3C8 8009E7C8 E420EDD0 */ swc1 $f0, %lo(gIntroModelRotZ)($at) +/* 09F3CC 8009E7CC 3C018019 */ lui $at, %hi(gIntroModelPosX) # $at, 0x8019 +/* 09F3D0 8009E7D0 E420EDD4 */ swc1 $f0, %lo(gIntroModelPosX)($at) +/* 09F3D4 8009E7D4 3C018019 */ lui $at, %hi(gIntroModelPosY) # $at, 0x8019 +/* 09F3D8 8009E7D8 E420EDD8 */ swc1 $f0, %lo(gIntroModelPosY)($at) +/* 09F3DC 8009E7DC 3C018019 */ lui $at, %hi(gIntroModelPosZ) # $at, 0x8019 +/* 09F3E0 8009E7E0 E420EDDC */ swc1 $f0, %lo(gIntroModelPosZ)($at) /* 09F3E4 8009E7E4 3C014040 */ li $at, 0x40400000 # 3.000000 /* 09F3E8 8009E7E8 44815000 */ mtc1 $at, $f10 -/* 09F3EC 8009E7EC 3C018019 */ lui $at, %hi(D_8018EDC4) # $at, 0x8019 -/* 09F3F0 8009E7F0 E42AEDC4 */ swc1 $f10, %lo(D_8018EDC4)($at) +/* 09F3EC 8009E7EC 3C018019 */ lui $at, %hi(gIntroModelScale) # $at, 0x8019 +/* 09F3F0 8009E7F0 E42AEDC4 */ swc1 $f10, %lo(gIntroModelScale)($at) /* 09F3F4 8009E7F4 AFEE001C */ sw $t6, 0x1c($ra) /* 09F3F8 8009E7F8 10000375 */ b .L8009F5D0 /* 09F3FC 8009E7FC AFE30020 */ sw $v1, 0x20($ra) glabel L8009E800 /* 09F400 8009E800 240F0708 */ li $t7, 1800 -/* 09F404 8009E804 3C018019 */ lui $at, %hi(D_8018EDC0) # $at, 0x8019 -/* 09F408 8009E808 AC2FEDC0 */ sw $t7, %lo(D_8018EDC0)($at) +/* 09F404 8009E804 3C018019 */ lui $at, %hi(gIntroModelZEye) # $at, 0x8019 +/* 09F408 8009E808 AC2FEDC0 */ sw $t7, %lo(gIntroModelZEye)($at) /* 09F40C 8009E80C 3C01C24C */ li $at, 0xC24C0000 # -51.000000 /* 09F410 8009E810 44818000 */ mtc1 $at, $f16 -/* 09F414 8009E814 3C018019 */ lui $at, %hi(D_8018EDC8) # $at, 0x8019 +/* 09F414 8009E814 3C018019 */ lui $at, %hi(gIntroModelRotX) # $at, 0x8019 /* 09F418 8009E818 44800000 */ mtc1 $zero, $f0 -/* 09F41C 8009E81C E430EDC8 */ swc1 $f16, %lo(D_8018EDC8)($at) +/* 09F41C 8009E81C E430EDC8 */ swc1 $f16, %lo(gIntroModelRotX)($at) /* 09F420 8009E820 3C01C140 */ li $at, 0xC1400000 # -12.000000 /* 09F424 8009E824 44819000 */ mtc1 $at, $f18 -/* 09F428 8009E828 3C018019 */ lui $at, %hi(D_8018EDCC) # $at, 0x8019 +/* 09F428 8009E828 3C018019 */ lui $at, %hi(gIntroModelRotY) # $at, 0x8019 /* 09F42C 8009E82C 2418FFFF */ li $t8, -1 -/* 09F430 8009E830 E432EDCC */ swc1 $f18, %lo(D_8018EDCC)($at) +/* 09F430 8009E830 E432EDCC */ swc1 $f18, %lo(gIntroModelRotY)($at) /* 09F434 8009E834 3C01C190 */ li $at, 0xC1900000 # -18.000000 /* 09F438 8009E838 44812000 */ mtc1 $at, $f4 -/* 09F43C 8009E83C 3C018019 */ lui $at, %hi(D_8018EDD0) # $at, 0x8019 -/* 09F440 8009E840 E424EDD0 */ swc1 $f4, %lo(D_8018EDD0)($at) +/* 09F43C 8009E83C 3C018019 */ lui $at, %hi(gIntroModelRotZ) # $at, 0x8019 +/* 09F440 8009E840 E424EDD0 */ swc1 $f4, %lo(gIntroModelRotZ)($at) /* 09F444 8009E844 3C01C387 */ li $at, 0xC3870000 # -270.000000 /* 09F448 8009E848 44813000 */ mtc1 $at, $f6 -/* 09F44C 8009E84C 3C018019 */ lui $at, %hi(D_8018EDD4) # $at, 0x8019 -/* 09F450 8009E850 E426EDD4 */ swc1 $f6, %lo(D_8018EDD4)($at) +/* 09F44C 8009E84C 3C018019 */ lui $at, %hi(gIntroModelPosX) # $at, 0x8019 +/* 09F450 8009E850 E426EDD4 */ swc1 $f6, %lo(gIntroModelPosX)($at) /* 09F454 8009E854 3C01800F */ lui $at, %hi(D_800F15E0) # $at, 0x800f /* 09F458 8009E858 C42815E0 */ lwc1 $f8, %lo(D_800F15E0)($at) -/* 09F45C 8009E85C 3C018019 */ lui $at, %hi(D_8018EDD8) # $at, 0x8019 -/* 09F460 8009E860 E428EDD8 */ swc1 $f8, %lo(D_8018EDD8)($at) -/* 09F464 8009E864 3C018019 */ lui $at, %hi(D_8018EDDC) # $at, 0x8019 -/* 09F468 8009E868 E420EDDC */ swc1 $f0, %lo(D_8018EDDC)($at) +/* 09F45C 8009E85C 3C018019 */ lui $at, %hi(gIntroModelPosY) # $at, 0x8019 +/* 09F460 8009E860 E428EDD8 */ swc1 $f8, %lo(gIntroModelPosY)($at) +/* 09F464 8009E864 3C018019 */ lui $at, %hi(gIntroModelPosZ) # $at, 0x8019 +/* 09F468 8009E868 E420EDDC */ swc1 $f0, %lo(gIntroModelPosZ)($at) /* 09F46C 8009E86C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 09F470 8009E870 44815000 */ mtc1 $at, $f10 -/* 09F474 8009E874 3C018019 */ lui $at, %hi(D_8018EDC4) # $at, 0x8019 -/* 09F478 8009E878 E42AEDC4 */ swc1 $f10, %lo(D_8018EDC4)($at) +/* 09F474 8009E874 3C018019 */ lui $at, %hi(gIntroModelScale) # $at, 0x8019 +/* 09F478 8009E878 E42AEDC4 */ swc1 $f10, %lo(gIntroModelScale)($at) /* 09F47C 8009E87C AFF8001C */ sw $t8, 0x1c($ra) /* 09F480 8009E880 10000353 */ b .L8009F5D0 /* 09F484 8009E884 AFE30020 */ sw $v1, 0x20($ra) @@ -240,22 +240,22 @@ glabel L8009E888 /* 09F488 8009E888 3C040200 */ lui $a0, %hi(D_020014C8) # $a0, 0x200 /* 09F48C 8009E88C AFBF007C */ sw $ra, 0x7c($sp) /* 09F490 8009E890 248414C8 */ addiu $a0, %lo(D_020014C8) # addiu $a0, $a0, 0x14c8 -/* 09F494 8009E894 0C0265AF */ jal load_menu_img2 +/* 09F494 8009E894 0C0265AF */ jal load_menu_img_comp_type /* 09F498 8009E898 00002825 */ move $a1, $zero /* 09F49C 8009E89C 3C040200 */ lui $a0, %hi(D_020014C8) # $a0, 0x200 /* 09F4A0 8009E8A0 0C026E55 */ jal func_8009B954 /* 09F4A4 8009E8A4 248414C8 */ addiu $a0, %lo(D_020014C8) # addiu $a0, $a0, 0x14c8 /* 09F4A8 8009E8A8 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F4AC 8009E8AC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F4B0 8009E8B0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F4B4 8009E8B4 3C050200 */ lui $a1, %hi(D_020014C8) # $a1, 0x200 /* 09F4B8 8009E8B8 8FE6000C */ lw $a2, 0xc($ra) /* 09F4BC 8009E8BC 8FE70010 */ lw $a3, 0x10($ra) /* 09F4C0 8009E8C0 24A514C8 */ addiu $a1, %lo(D_020014C8) # addiu $a1, $a1, 0x14c8 -/* 09F4C4 8009E8C4 0C026E9D */ jal func_8009BA74 +/* 09F4C4 8009E8C4 0C026E9D */ jal render_menu_textures /* 09F4C8 8009E8C8 8D040000 */ lw $a0, ($t0) -/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F4CC 8009E8CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F4D0 8009E8D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F4D4 8009E8D4 0C026E66 */ jal func_8009B998 /* 09F4D8 8009E8D8 AD020000 */ sw $v0, ($t0) /* 09F4DC 8009E8DC 1000033D */ b .L8009F5D4 @@ -264,22 +264,22 @@ glabel L8009E8E4 /* 09F4E4 8009E8E4 3C040200 */ lui $a0, %hi(D_02001540) # $a0, 0x200 /* 09F4E8 8009E8E8 AFBF007C */ sw $ra, 0x7c($sp) /* 09F4EC 8009E8EC 24841540 */ addiu $a0, %lo(D_02001540) # addiu $a0, $a0, 0x1540 -/* 09F4F0 8009E8F0 0C0265AF */ jal load_menu_img2 +/* 09F4F0 8009E8F0 0C0265AF */ jal load_menu_img_comp_type /* 09F4F4 8009E8F4 00002825 */ move $a1, $zero /* 09F4F8 8009E8F8 3C040200 */ lui $a0, %hi(D_02001540) # $a0, 0x200 /* 09F4FC 8009E8FC 0C026E55 */ jal func_8009B954 /* 09F500 8009E900 24841540 */ addiu $a0, %lo(D_02001540) # addiu $a0, $a0, 0x1540 /* 09F504 8009E904 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F508 8009E908 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F508 8009E908 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F50C 8009E90C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F510 8009E910 3C050200 */ lui $a1, %hi(D_02001540) # $a1, 0x200 /* 09F514 8009E914 8FE6000C */ lw $a2, 0xc($ra) /* 09F518 8009E918 8FE70010 */ lw $a3, 0x10($ra) /* 09F51C 8009E91C 24A51540 */ addiu $a1, %lo(D_02001540) # addiu $a1, $a1, 0x1540 -/* 09F520 8009E920 0C026E9D */ jal func_8009BA74 +/* 09F520 8009E920 0C026E9D */ jal render_menu_textures /* 09F524 8009E924 8D040000 */ lw $a0, ($t0) -/* 09F528 8009E928 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F528 8009E928 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F52C 8009E92C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F530 8009E930 0C026E66 */ jal func_8009B998 /* 09F534 8009E934 AD020000 */ sw $v0, ($t0) /* 09F538 8009E938 10000326 */ b .L8009F5D4 @@ -289,7 +289,7 @@ glabel L8009E940 /* 09F544 8009E944 AFBF007C */ sw $ra, 0x7c($sp) /* 09F548 8009E948 2484157C */ addiu $a0, %lo(D_0200157C) # addiu $a0, $a0, 0x157c /* 09F54C 8009E94C 00002825 */ move $a1, $zero -/* 09F550 8009E950 0C0265AF */ jal load_menu_img2 +/* 09F550 8009E950 0C0265AF */ jal load_menu_img_comp_type /* 09F554 8009E954 00001025 */ move $v0, $zero /* 09F558 8009E958 3C040200 */ lui $a0, %hi(D_02001874) # $a0, 0x200 /* 09F55C 8009E95C 0C026461 */ jal load_menu_img @@ -322,16 +322,16 @@ glabel L8009E9AC /* 09F5C0 8009E9C0 0C026E55 */ jal func_8009B954 /* 09F5C4 8009E9C4 248415A4 */ addiu $a0, %lo(D_020015A4) # addiu $a0, $a0, 0x15a4 /* 09F5C8 8009E9C8 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F5CC 8009E9CC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F5D0 8009E9D0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F5D4 8009E9D4 3C050200 */ lui $a1, %hi(D_020015A4) # $a1, 0x200 /* 09F5D8 8009E9D8 8FE6000C */ lw $a2, 0xc($ra) /* 09F5DC 8009E9DC 8FE70010 */ lw $a3, 0x10($ra) /* 09F5E0 8009E9E0 24A515A4 */ addiu $a1, %lo(D_020015A4) # addiu $a1, $a1, 0x15a4 -/* 09F5E4 8009E9E4 0C026E9D */ jal func_8009BA74 +/* 09F5E4 8009E9E4 0C026E9D */ jal render_menu_textures /* 09F5E8 8009E9E8 8D040000 */ lw $a0, ($t0) -/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F5EC 8009E9EC 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F5F0 8009E9F0 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F5F4 8009E9F4 AD020000 */ sw $v0, ($t0) /* 09F5F8 8009E9F8 244F0008 */ addiu $t7, $v0, 8 /* 09F5FC 8009E9FC AD0F0000 */ sw $t7, ($t0) @@ -343,8 +343,8 @@ glabel L8009E9AC /* 09F614 8009EA14 AFA2006C */ sw $v0, 0x6c($sp) /* 09F618 8009EA18 8FB9006C */ lw $t9, 0x6c($sp) /* 09F61C 8009EA1C 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F620 8009EA20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F624 8009EA24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F628 8009EA28 AF220004 */ sw $v0, 4($t9) /* 09F62C 8009EA2C 8D030000 */ lw $v1, ($t0) /* 09F630 8009EA30 3C180708 */ lui $t8, (0x07080200 >> 16) # lui $t8, 0x708 @@ -425,16 +425,16 @@ glabel L8009E9AC /* 09F75C 8009EB5C 0C026E55 */ jal func_8009B954 /* 09F760 8009EB60 248415CC */ addiu $a0, %lo(D_020015CC) # addiu $a0, $a0, 0x15cc /* 09F764 8009EB64 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F768 8009EB68 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F76C 8009EB6C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F770 8009EB70 3C050200 */ lui $a1, %hi(D_020015CC) # $a1, 0x200 /* 09F774 8009EB74 8FE6000C */ lw $a2, 0xc($ra) /* 09F778 8009EB78 8FE70010 */ lw $a3, 0x10($ra) /* 09F77C 8009EB7C 24A515CC */ addiu $a1, %lo(D_020015CC) # addiu $a1, $a1, 0x15cc -/* 09F780 8009EB80 0C026E9D */ jal func_8009BA74 +/* 09F780 8009EB80 0C026E9D */ jal render_menu_textures /* 09F784 8009EB84 8D040000 */ lw $a0, ($t0) -/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F788 8009EB88 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F78C 8009EB8C 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F790 8009EB90 0C026E66 */ jal func_8009B998 /* 09F794 8009EB94 AD020000 */ sw $v0, ($t0) /* 09F798 8009EB98 3C040200 */ lui $a0, %hi(D_02001630) # $a0, 0x200 @@ -444,16 +444,16 @@ glabel L8009E9AC /* 09F7A8 8009EBA8 0C026E55 */ jal func_8009B954 /* 09F7AC 8009EBAC 24841630 */ addiu $a0, %lo(D_02001630) # addiu $a0, $a0, 0x1630 /* 09F7B0 8009EBB0 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F7B4 8009EBB4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F7B8 8009EBB8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F7BC 8009EBBC 3C050200 */ lui $a1, %hi(D_02001630) # $a1, 0x200 /* 09F7C0 8009EBC0 8FE6000C */ lw $a2, 0xc($ra) /* 09F7C4 8009EBC4 8FE70010 */ lw $a3, 0x10($ra) /* 09F7C8 8009EBC8 24A51630 */ addiu $a1, %lo(D_02001630) # addiu $a1, $a1, 0x1630 -/* 09F7CC 8009EBCC 0C026E9D */ jal func_8009BA74 +/* 09F7CC 8009EBCC 0C026E9D */ jal render_menu_textures /* 09F7D0 8009EBD0 8D040000 */ lw $a0, ($t0) -/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F7D4 8009EBD4 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F7D8 8009EBD8 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F7DC 8009EBDC 0C026E66 */ jal func_8009B998 /* 09F7E0 8009EBE0 AD020000 */ sw $v0, ($t0) /* 09F7E4 8009EBE4 3C040200 */ lui $a0, %hi(D_02001658) # $a0, 0x200 @@ -463,16 +463,16 @@ glabel L8009E9AC /* 09F7F4 8009EBF4 0C026E55 */ jal func_8009B954 /* 09F7F8 8009EBF8 24841658 */ addiu $a0, %lo(D_02001658) # addiu $a0, $a0, 0x1658 /* 09F7FC 8009EBFC 8FBF007C */ lw $ra, 0x7c($sp) -/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F800 8009EC00 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F804 8009EC04 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F808 8009EC08 3C050200 */ lui $a1, %hi(D_02001658) # $a1, 0x200 /* 09F80C 8009EC0C 8FE6000C */ lw $a2, 0xc($ra) /* 09F810 8009EC10 8FE70010 */ lw $a3, 0x10($ra) /* 09F814 8009EC14 24A51658 */ addiu $a1, %lo(D_02001658) # addiu $a1, $a1, 0x1658 -/* 09F818 8009EC18 0C026E9D */ jal func_8009BA74 +/* 09F818 8009EC18 0C026E9D */ jal render_menu_textures /* 09F81C 8009EC1C 8D040000 */ lw $a0, ($t0) -/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(D_8018E75C) # $t0, 0x8019 -/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(D_8018E75C) # addiu $t0, $t0, -0x18a4 +/* 09F820 8009EC20 3C088019 */ lui $t0, %hi(sGfxPtr) # $t0, 0x8019 +/* 09F824 8009EC24 2508E75C */ addiu $t0, %lo(sGfxPtr) # addiu $t0, $t0, -0x18a4 /* 09F828 8009EC28 0C026E66 */ jal func_8009B998 /* 09F82C 8009EC2C AD020000 */ sw $v0, ($t0) /* 09F830 8009EC30 10000268 */ b .L8009F5D4 @@ -514,45 +514,45 @@ glabel L8009ECAC /* 09F8AC 8009ECAC 0C02D557 */ jal has_unlocked_extra_mode /* 09F8B0 8009ECB0 00000000 */ nop /* 09F8B4 8009ECB4 0002C080 */ sll $t8, $v0, 2 -/* 09F8B8 8009ECB8 3C04800E */ lui $a0, %hi(D_800E7D4C) +/* 09F8B8 8009ECB8 3C04800E */ lui $a0, %hi(gMenuTexturesBackground) /* 09F8BC 8009ECBC 00982021 */ addu $a0, $a0, $t8 -/* 09F8C0 8009ECC0 8C847D4C */ lw $a0, %lo(D_800E7D4C)($a0) -/* 09F8C4 8009ECC4 0C0265AF */ jal load_menu_img2 +/* 09F8C0 8009ECC0 8C847D4C */ lw $a0, %lo(gMenuTexturesBackground)($a0) +/* 09F8C4 8009ECC4 0C0265AF */ jal load_menu_img_comp_type /* 09F8C8 8009ECC8 00002825 */ move $a1, $zero /* 09F8CC 8009ECCC 10000241 */ b .L8009F5D4 /* 09F8D0 8009ECD0 8FBF001C */ lw $ra, 0x1c($sp) 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(sMenuTextureListIndex) # $v0, 0x8019 +/* 09F8E0 8009ECE0 2442E110 */ addiu $v0, %lo(sMenuTextureListIndex) # addiu $v0, $v0, -0x1ef0 /* 09F8E4 8009ECE4 8C590000 */ lw $t9, ($v0) /* 09F8E8 8009ECE8 3C010001 */ lui $at, 1 -/* 09F8EC 8009ECEC 3C040200 */ lui $a0, %hi(D_020045E8) # $a0, 0x200 +/* 09F8EC 8009ECEC 3C040200 */ lui $a0, %hi(seg2_copyright_1996_texture) # $a0, 0x200 /* 09F8F0 8009ECF0 03217021 */ addu $t6, $t9, $at /* 09F8F4 8009ECF4 AC4E0000 */ sw $t6, ($v0) /* 09F8F8 8009ECF8 0C026461 */ jal load_menu_img -/* 09F8FC 8009ECFC 248445E8 */ addiu $a0, %lo(D_020045E8) # addiu $a0, $a0, 0x45e8 +/* 09F8FC 8009ECFC 248445E8 */ addiu $a0, %lo(seg2_copyright_1996_texture) # addiu $a0, $a0, 0x45e8 /* 09F900 8009ED00 10000234 */ b .L8009F5D4 /* 09F904 8009ED04 8FBF001C */ lw $ra, 0x1c($sp) glabel L8009ED08 -/* 09F908 8009ED08 3C040200 */ lui $a0, %hi(D_02004610) # $a0, 0x200 +/* 09F908 8009ED08 3C040200 */ lui $a0, %hi(seg2_push_start_button_texture) # $a0, 0x200 /* 09F90C 8009ED0C 0C026461 */ jal load_menu_img -/* 09F910 8009ED10 24844610 */ addiu $a0, %lo(D_02004610) # addiu $a0, $a0, 0x4610 +/* 09F910 8009ED10 24844610 */ addiu $a0, %lo(seg2_push_start_button_texture) # addiu $a0, $a0, 0x4610 /* 09F914 8009ED14 1000022F */ b .L8009F5D4 /* 09F918 8009ED18 8FBF001C */ lw $ra, 0x1c($sp) glabel L8009ED1C /* 09F91C 8009ED1C 0C02D557 */ jal has_unlocked_extra_mode /* 09F920 8009ED20 00000000 */ nop /* 09F924 8009ED24 00027880 */ sll $t7, $v0, 2 -/* 09F928 8009ED28 3C04800E */ lui $a0, %hi(D_800E7D4C) +/* 09F928 8009ED28 3C04800E */ lui $a0, %hi(gMenuTexturesBackground) /* 09F92C 8009ED2C 008F2021 */ addu $a0, $a0, $t7 -/* 09F930 8009ED30 8C847D4C */ lw $a0, %lo(D_800E7D4C)($a0) -/* 09F934 8009ED34 0C0265AF */ jal load_menu_img2 +/* 09F930 8009ED30 8C847D4C */ lw $a0, %lo(gMenuTexturesBackground)($a0) +/* 09F934 8009ED34 0C0265AF */ jal load_menu_img_comp_type /* 09F938 8009ED38 00002825 */ move $a1, $zero /* 09F93C 8009ED3C 3C040200 */ lui $a0, %hi(D_02004B74) # $a0, 0x200 /* 09F940 8009ED40 24844B74 */ addiu $a0, %lo(D_02004B74) # addiu $a0, $a0, 0x4b74 -/* 09F944 8009ED44 0C0265AF */ jal load_menu_img2 +/* 09F944 8009ED44 0C0265AF */ jal load_menu_img_comp_type /* 09F948 8009ED48 00002825 */ move $a1, $zero /* 09F94C 8009ED4C 00002025 */ move $a0, $zero /* 09F950 8009ED50 0C026C29 */ jal convert_img_to_greyscale @@ -583,7 +583,7 @@ glabel L8009ED9C /* 09F9AC 8009EDAC 0C026449 */ jal segmented_to_virtual_dupe /* 09F9B0 8009EDB0 8C84822C */ lw $a0, %lo(D_800E822C)($a0) # -0x7dd4($a0) /* 09F9B4 8009EDB4 00402025 */ move $a0, $v0 -/* 09F9B8 8009EDB8 0C0265AF */ jal load_menu_img2 +/* 09F9B8 8009EDB8 0C0265AF */ jal load_menu_img_comp_type /* 09F9BC 8009EDBC 00002825 */ move $a1, $zero /* 09F9C0 8009EDC0 10000204 */ b .L8009F5D4 /* 09F9C4 8009EDC4 8FBF001C */ lw $ra, 0x1c($sp) @@ -597,7 +597,7 @@ glabel L8009EDC8 /* 09F9E0 8009EDE0 0C026449 */ jal segmented_to_virtual_dupe /* 09F9E4 8009EDE4 AFA20024 */ sw $v0, 0x24($sp) /* 09F9E8 8009EDE8 00402025 */ move $a0, $v0 -/* 09F9EC 8009EDEC 0C0265AF */ jal load_menu_img2 +/* 09F9EC 8009EDEC 0C0265AF */ jal load_menu_img_comp_type /* 09F9F0 8009EDF0 00002825 */ move $a1, $zero /* 09F9F4 8009EDF4 8FAF0024 */ lw $t7, 0x24($sp) /* 09F9F8 8009EDF8 0C026449 */ jal segmented_to_virtual_dupe @@ -609,7 +609,7 @@ glabel L8009EDC8 glabel L8009EE10 /* 09FA10 8009EE10 3C040200 */ lui $a0, %hi(D_02004B4C) # $a0, 0x200 /* 09FA14 8009EE14 24844B4C */ addiu $a0, %lo(D_02004B4C) # addiu $a0, $a0, 0x4b4c -/* 09FA18 8009EE18 0C0265AF */ jal load_menu_img2 +/* 09FA18 8009EE18 0C0265AF */ jal load_menu_img_comp_type /* 09FA1C 8009EE1C 00002825 */ move $a1, $zero /* 09FA20 8009EE20 100001EC */ b .L8009F5D4 /* 09FA24 8009EE24 8FBF001C */ lw $ra, 0x1c($sp) @@ -617,7 +617,7 @@ glabel L8009EE28 /* 09FA28 8009EE28 3C040200 */ lui $a0, %hi(D_02004B74) # $a0, 0x200 /* 09FA2C 8009EE2C AFBF007C */ sw $ra, 0x7c($sp) /* 09FA30 8009EE30 24844B74 */ addiu $a0, %lo(D_02004B74) # addiu $a0, $a0, 0x4b74 -/* 09FA34 8009EE34 0C0265AF */ jal load_menu_img2 +/* 09FA34 8009EE34 0C0265AF */ jal load_menu_img_comp_type /* 09FA38 8009EE38 00002825 */ move $a1, $zero /* 09FA3C 8009EE3C 8FBF007C */ lw $ra, 0x7c($sp) /* 09FA40 8009EE40 24180020 */ li $t8, 32 @@ -654,7 +654,7 @@ glabel L8009EE74 /* 09FAB4 8009EEB4 0C026449 */ jal segmented_to_virtual_dupe /* 09FAB8 8009EEB8 8C847CA8 */ lw $a0, %lo(D_800E7D54 - 0xAC)($a0) /* 09FABC 8009EEBC 00402025 */ move $a0, $v0 -/* 09FAC0 8009EEC0 0C0265AF */ jal load_menu_img2 +/* 09FAC0 8009EEC0 0C0265AF */ jal load_menu_img_comp_type /* 09FAC4 8009EEC4 00002825 */ move $a1, $zero /* 09FAC8 8009EEC8 100001C2 */ b .L8009F5D4 /* 09FACC 8009EECC 8FBF001C */ lw $ra, 0x1c($sp) @@ -682,7 +682,7 @@ glabel L8009EF08 /* 09FB18 8009EF18 0C026449 */ jal segmented_to_virtual_dupe /* 09FB1C 8009EF1C 8C84817C */ lw $a0, %lo(D_800E817C)($a0) # -0x7e84($a0) /* 09FB20 8009EF20 00402025 */ move $a0, $v0 -/* 09FB24 8009EF24 0C0265AF */ jal load_menu_img2 +/* 09FB24 8009EF24 0C0265AF */ jal load_menu_img_comp_type /* 09FB28 8009EF28 00002825 */ move $a1, $zero /* 09FB2C 8009EF2C 100001A9 */ b .L8009F5D4 /* 09FB30 8009EF30 8FBF001C */ lw $ra, 0x1c($sp) @@ -772,7 +772,7 @@ glabel L8009F050 /* 09FC68 8009F068 0C026449 */ jal segmented_to_virtual_dupe /* 09FC6C 8009F06C 8C848294 */ lw $a0, %lo(D_800E8294)($a0) # -0x7d6c($a0) /* 09FC70 8009F070 00402025 */ move $a0, $v0 -/* 09FC74 8009F074 0C0265AF */ jal load_menu_img2 +/* 09FC74 8009F074 0C0265AF */ jal load_menu_img_comp_type /* 09FC78 8009F078 00002825 */ move $a1, $zero /* 09FC7C 8009F07C 8FBF007C */ lw $ra, 0x7c($sp) /* 09FC80 8009F080 24180037 */ li $t8, 55 @@ -785,7 +785,7 @@ glabel L8009F094 /* 09FC98 8009F098 0C026449 */ jal segmented_to_virtual_dupe /* 09FC9C 8009F09C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c /* 09FCA0 8009F0A0 00402025 */ move $a0, $v0 -/* 09FCA4 8009F0A4 0C0265AF */ jal load_menu_img2 +/* 09FCA4 8009F0A4 0C0265AF */ jal load_menu_img_comp_type /* 09FCA8 8009F0A8 00002825 */ move $a1, $zero /* 09FCAC 8009F0AC 0C02D6E5 */ jal controller_pak_1_status /* 09FCB0 8009F0B0 00000000 */ nop @@ -809,16 +809,16 @@ glabel L8009F0E0 /* 09FCF0 8009F0F0 0C026449 */ jal segmented_to_virtual_dupe /* 09FCF4 8009F0F4 8C848114 */ lw $a0, %lo(D_800E8114)($a0) # -0x7eec($a0) /* 09FCF8 8009F0F8 00402025 */ move $a0, $v0 -/* 09FCFC 8009F0FC 0C0265AF */ jal load_menu_img2 +/* 09FCFC 8009F0FC 0C0265AF */ jal load_menu_img_comp_type /* 09FD00 8009F100 00002825 */ move $a1, $zero /* 09FD04 8009F104 10000133 */ b .L8009F5D4 /* 09FD08 8009F108 8FBF001C */ lw $ra, 0x1c($sp) glabel L8009F10C -/* 09FD0C 8009F10C 3C040200 */ lui $a0, %hi(D_02004A34) # $a0, 0x200 +/* 09FD0C 8009F10C 3C040200 */ lui $a0, %hi(seg2_data_texture) # $a0, 0x200 /* 09FD10 8009F110 0C026449 */ jal segmented_to_virtual_dupe -/* 09FD14 8009F114 24844A34 */ addiu $a0, %lo(D_02004A34) # addiu $a0, $a0, 0x4a34 +/* 09FD14 8009F114 24844A34 */ addiu $a0, %lo(seg2_data_texture) # addiu $a0, $a0, 0x4a34 /* 09FD18 8009F118 00402025 */ move $a0, $v0 -/* 09FD1C 8009F11C 0C0265AF */ jal load_menu_img2 +/* 09FD1C 8009F11C 0C0265AF */ jal load_menu_img_comp_type /* 09FD20 8009F120 00002825 */ move $a1, $zero /* 09FD24 8009F124 0C02D6E5 */ jal controller_pak_1_status /* 09FD28 8009F128 00000000 */ nop @@ -869,7 +869,7 @@ glabel L8009F174 /* 09FDC8 8009F1C8 0C026449 */ jal segmented_to_virtual_dupe /* 09FDCC 8009F1CC 8C847D74 */ lw $a0, %lo(D_800E7D74)($a0) /* 09FDD0 8009F1D0 00402025 */ move $a0, $v0 -/* 09FDD4 8009F1D4 0C0265AF */ jal load_menu_img2 +/* 09FDD4 8009F1D4 0C0265AF */ jal load_menu_img_comp_type /* 09FDD8 8009F1D8 2405FFFF */ li $a1, -1 /* 09FDDC 8009F1DC 8FBF007C */ lw $ra, 0x7c($sp) /* 09FDE0 8009F1E0 3C04800E */ lui $a0, %hi(D_800E7DC4) @@ -897,13 +897,13 @@ glabel L8009F174 /* 09FE30 8009F230 0C026449 */ jal segmented_to_virtual_dupe /* 09FE34 8009F234 8C847DC4 */ lw $a0, %lo(D_800E7DC4)($a0) /* 09FE38 8009F238 00402025 */ move $a0, $v0 -/* 09FE3C 8009F23C 0C0265AF */ jal load_menu_img2 +/* 09FE3C 8009F23C 0C0265AF */ jal load_menu_img_comp_type /* 09FE40 8009F240 00002825 */ move $a1, $zero /* 09FE44 8009F244 3C040200 */ lui $a0, %hi(D_02004A0C) # $a0, 0x200 /* 09FE48 8009F248 0C026449 */ jal segmented_to_virtual_dupe /* 09FE4C 8009F24C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c /* 09FE50 8009F250 00402025 */ move $a0, $v0 -/* 09FE54 8009F254 0C0265AF */ jal load_menu_img2 +/* 09FE54 8009F254 0C0265AF */ jal load_menu_img_comp_type /* 09FE58 8009F258 00002825 */ move $a1, $zero /* 09FE5C 8009F25C 100000DD */ b .L8009F5D4 /* 09FE60 8009F260 8FBF001C */ lw $ra, 0x1c($sp) @@ -975,7 +975,7 @@ glabel L8009F264 /* 09FF50 8009F350 0C026449 */ jal segmented_to_virtual_dupe /* 09FF54 8009F354 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 09FF58 8009F358 00402025 */ move $a0, $v0 -/* 09FF5C 8009F35C 0C0265AF */ jal load_menu_img2 +/* 09FF5C 8009F35C 0C0265AF */ jal load_menu_img_comp_type /* 09FF60 8009F360 00002825 */ move $a1, $zero /* 09FF64 8009F364 8FA60024 */ lw $a2, 0x24($sp) /* 09FF68 8009F368 3C04800E */ lui $a0, %hi(D_800E7FF0) @@ -1070,7 +1070,7 @@ glabel L8009F430 /* 0A00B0 8009F4B0 0C026449 */ jal segmented_to_virtual_dupe /* 0A00B4 8009F4B4 00000000 */ nop /* 0A00B8 8009F4B8 00402025 */ move $a0, $v0 -/* 0A00BC 8009F4BC 0C0265AF */ jal load_menu_img2 +/* 0A00BC 8009F4BC 0C0265AF */ jal load_menu_img_comp_type /* 0A00C0 8009F4C0 00002825 */ move $a1, $zero /* 0A00C4 8009F4C4 0C01BBD8 */ jal func_8006EF60 /* 0A00C8 8009F4C8 00000000 */ nop @@ -1098,7 +1098,7 @@ glabel L8009F510 /* 0A0114 8009F514 0C026449 */ jal segmented_to_virtual_dupe /* 0A0118 8009F518 24844638 */ addiu $a0, %lo(D_02004638) # addiu $a0, $a0, 0x4638 /* 0A011C 8009F51C 00402025 */ move $a0, $v0 -/* 0A0120 8009F520 0C0265AF */ jal load_menu_img2 +/* 0A0120 8009F520 0C0265AF */ jal load_menu_img_comp_type /* 0A0124 8009F524 00002825 */ move $a1, $zero /* 0A0128 8009F528 1000002A */ b .L8009F5D4 /* 0A012C 8009F52C 8FBF001C */ lw $ra, 0x1c($sp) @@ -1146,7 +1146,7 @@ glabel L8009F530 /* 0A01BC 8009F5BC 0C026449 */ jal segmented_to_virtual_dupe /* 0A01C0 8009F5C0 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 0A01C4 8009F5C4 00402025 */ move $a0, $v0 -/* 0A01C8 8009F5C8 0C0265AF */ jal load_menu_img2 +/* 0A01C8 8009F5C8 0C0265AF */ jal load_menu_img_comp_type /* 0A01CC 8009F5CC 00002825 */ move $a1, $zero .L8009F5D0: glabel L8009F5D0 diff --git a/asm/non_matchings/code_80091750/func_8009195C.s b/asm/non_matchings/menu_items/func_8009195C.s similarity index 100% rename from asm/non_matchings/code_80091750/func_8009195C.s rename to asm/non_matchings/menu_items/func_8009195C.s diff --git a/asm/non_matchings/code_80091750/func_80096CD8.s b/asm/non_matchings/menu_items/func_80096CD8.s similarity index 100% rename from asm/non_matchings/code_80091750/func_80096CD8.s rename to asm/non_matchings/menu_items/func_80096CD8.s diff --git a/asm/non_matchings/code_80091750/func_80097274.s b/asm/non_matchings/menu_items/func_80097274.s similarity index 100% rename from asm/non_matchings/code_80091750/func_80097274.s rename to asm/non_matchings/menu_items/func_80097274.s diff --git a/asm/non_matchings/code_80091750/func_80099AEC.s b/asm/non_matchings/menu_items/func_80099AEC.s similarity index 94% rename from asm/non_matchings/code_80091750/func_80099AEC.s rename to asm/non_matchings/menu_items/func_80099AEC.s index 6ed12c8e4..cc90a7863 100644 --- a/asm/non_matchings/code_80091750/func_80099AEC.s +++ b/asm/non_matchings/menu_items/func_80099AEC.s @@ -24,10 +24,10 @@ glabel func_80099AEC /* 09A73C 80099B3C 3C028019 */ lui $v0, %hi(D_8018E060) # 0x8019 /* 09A740 80099B40 2451E060 */ addiu $s1, $v0, %lo(D_8018E060) # -0x1fa0 /* 09A744 80099B44 8E320000 */ lw $s2, ($s1) -/* 09A748 80099B48 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019 +/* 09A748 80099B48 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019 /* 09A74C 80099B4C 0000A825 */ move $s5, $zero /* 09A750 80099B50 124000B4 */ beqz $s2, .L80099E24 -/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c +/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c /* 09A758 80099B58 96430010 */ lhu $v1, 0x10($s2) /* 09A75C 80099B5C 24101400 */ li $s0, 5120 /* 09A760 80099B60 10600003 */ beqz $v1, .L80099B70 @@ -77,8 +77,8 @@ glabel func_80099AEC /* 09A800 80099C00 02C02025 */ move $a0, $s6 /* 09A804 80099C04 0C0335D4 */ jal osRecvMesg /* 09A808 80099C08 24060001 */ li $a2, 1 -/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(D_8018E118) # $fp, 0x8019 -/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(D_8018E118) # addiu $fp, $fp, -0x1ee8 +/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(sMenuTextureMap) # $fp, 0x8019 +/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(sMenuTextureMap) # addiu $fp, $fp, -0x1ee8 /* 09A814 80099C14 8E220008 */ lw $v0, 8($s1) .L80099C18: /* 09A818 80099C18 8FB30060 */ lw $s3, 0x60($sp) @@ -136,8 +136,8 @@ glabel func_80099AEC /* 09A8D0 80099CD0 014C3821 */ addu $a3, $t2, $t4 .L80099CD4: /* 09A8D4 80099CD4 8E2F0004 */ lw $t7, 4($s1) -/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(D_8018D9B0) # $t1, 0x8019 -/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(D_8018D9B0)($t1) +/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(sMenuTextureList) # $t1, 0x8019 +/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(sMenuTextureList)($t1) /* 09A8E0 80099CE0 000FC0C0 */ sll $t8, $t7, 3 /* 09A8E4 80099CE4 031EC821 */ addu $t9, $t8, $fp /* 09A8E8 80099CE8 8F220004 */ lw $v0, 4($t9) @@ -206,8 +206,8 @@ glabel func_80099AEC /* 09A9D0 80099DD0 AFA90010 */ sw $t1, 0x10($sp) .L80099DD4: /* 09A9D4 80099DD4 8E2B0004 */ lw $t3, 4($s1) -/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(D_8018D9B0) # $t7, 0x8019 -/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(D_8018D9B0)($t7) +/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(sMenuTextureList) # $t7, 0x8019 +/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(sMenuTextureList)($t7) /* 09A9E0 80099DE0 000B50C0 */ sll $t2, $t3, 3 /* 09A9E4 80099DE4 015E6021 */ addu $t4, $t2, $fp /* 09A9E8 80099DE8 8D820004 */ lw $v0, 4($t4) diff --git a/asm/non_matchings/code_80091750/func_80099EC4.s b/asm/non_matchings/menu_items/func_80099EC4.s similarity index 98% rename from asm/non_matchings/code_80091750/func_80099EC4.s rename to asm/non_matchings/menu_items/func_80099EC4.s index df6081783..c2233a0ca 100644 --- a/asm/non_matchings/code_80091750/func_80099EC4.s +++ b/asm/non_matchings/menu_items/func_80099EC4.s @@ -13,10 +13,10 @@ glabel func_80099EC4 /* 09AAF0 80099EF0 AFB20030 */ sw $s2, 0x30($sp) /* 09AAF4 80099EF4 AFB00028 */ sw $s0, 0x28($sp) /* 09AAF8 80099EF8 8E320000 */ lw $s2, ($s1) -/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(D_8018D9B4) # $s3, 0x8019 +/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(gMenuCompressedBuffer) # $s3, 0x8019 /* 09AB00 80099F00 0000A025 */ move $s4, $zero /* 09AB04 80099F04 124000C0 */ beqz $s2, .L8009A208 -/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(D_8018D9B4) # addiu $s3, $s3, -0x264c +/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(gMenuCompressedBuffer) # addiu $s3, $s3, -0x264c /* 09AB0C 80099F0C 96430010 */ lhu $v1, 0x10($s2) /* 09AB10 80099F10 24101400 */ li $s0, 5120 /* 09AB14 80099F14 10600003 */ beqz $v1, .L80099F24 diff --git a/asm/non_matchings/code_80091750/func_800A1FB0.s b/asm/non_matchings/menu_items/func_800A1FB0.s similarity index 90% rename from asm/non_matchings/code_80091750/func_800A1FB0.s rename to asm/non_matchings/menu_items/func_800A1FB0.s index 270a7a766..d4f1fa44d 100644 --- a/asm/non_matchings/code_80091750/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 @@ -94,8 +94,8 @@ glabel L800A2054 /* 0A2C54 800A2054 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0A2C58 800A2058 4481B000 */ mtc1 $at, $f22 /* 0A2C5C 800A205C 3C01800F */ lui $at, %hi(D_800F1C28) # $at, 0x800f -/* 0A2C60 800A2060 3C11800E */ lui $s1, %hi(D_800E7868) # $s1, 0x800e -/* 0A2C64 800A2064 26317868 */ addiu $s1, %lo(D_800E7868) # addiu $s1, $s1, 0x7868 +/* 0A2C60 800A2060 3C11800E */ lui $s1, %hi(gTextOptionMenu) # $s1, 0x800e +/* 0A2C64 800A2064 26317868 */ addiu $s1, %lo(gTextOptionMenu) # addiu $s1, $s1, 0x7868 /* 0A2C68 800A2068 C4341C28 */ lwc1 $f20, %lo(D_800F1C28)($at) /* 0A2C6C 800A206C 00009025 */ move $s2, $zero /* 0A2C70 800A2070 2464FFEB */ addiu $a0, $v1, -0x15 @@ -110,10 +110,10 @@ glabel L800A2054 /* 0A2C90 800A2090 8E260000 */ lw $a2, ($s1) /* 0A2C94 800A2094 00003825 */ move $a3, $zero /* 0A2C98 800A2098 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A2C9C 800A209C 0C024CC9 */ jal func_80093324 +/* 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 @@ -137,11 +137,11 @@ glabel L800A2054 /* 0A2CF8 800A20F8 24050078 */ li $a1, 120 /* 0A2CFC 800A20FC 00003825 */ move $a3, $zero /* 0A2D00 800A2100 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A2D04 800A2104 0C024DBB */ jal draw_text +/* 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 @@ -158,14 +158,14 @@ glabel L800A2118 /* 0A2D44 800A2144 8E260000 */ lw $a2, ($s1) /* 0A2D48 800A2148 00003825 */ move $a3, $zero /* 0A2D4C 800A214C E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A2D50 800A2150 0C024CC9 */ jal func_80093324 +/* 0A2D50 800A2150 0C024CC9 */ jal print_text_mode_1 /* 0A2D54 800A2154 E7B60014 */ swc1 $f22, 0x14($sp) /* 0A2D58 800A2158 26310004 */ addiu $s1, $s1, 4 /* 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 @@ -180,10 +180,10 @@ glabel L800A2118 /* 0A2D98 800A2198 8E260000 */ lw $a2, ($s1) /* 0A2D9C 800A219C 00003825 */ move $a3, $zero /* 0A2DA0 800A21A0 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A2DA4 800A21A4 0C024CC9 */ jal func_80093324 +/* 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 @@ -213,19 +213,19 @@ glabel L800A21E4 /* 0A2E10 800A2210 8E260000 */ lw $a2, ($s1) /* 0A2E14 800A2214 00003825 */ move $a3, $zero /* 0A2E18 800A2218 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A2E1C 800A221C 0C024CC9 */ jal func_80093324 +/* 0A2E1C 800A221C 0C024CC9 */ jal print_text_mode_1 /* 0A2E20 800A2220 E7B60014 */ swc1 $f22, 0x14($sp) /* 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 @@ -243,19 +243,19 @@ glabel L800A223C /* 0A2E80 800A2280 8E260000 */ lw $a2, ($s1) /* 0A2E84 800A2284 00003825 */ move $a3, $zero /* 0A2E88 800A2288 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A2E8C 800A228C 0C024CC9 */ jal func_80093324 +/* 0A2E8C 800A228C 0C024CC9 */ jal print_text_mode_1 /* 0A2E90 800A2290 E7B40014 */ swc1 $f20, 0x14($sp) /* 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 @@ -271,19 +271,19 @@ glabel L800A22AC /* 0A2EE8 800A22E8 8E260000 */ lw $a2, ($s1) /* 0A2EEC 800A22EC 00003825 */ move $a3, $zero /* 0A2EF0 800A22F0 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A2EF4 800A22F4 0C024CC9 */ jal func_80093324 +/* 0A2EF4 800A22F4 0C024CC9 */ jal print_text_mode_1 /* 0A2EF8 800A22F8 E7B40014 */ swc1 $f20, 0x14($sp) /* 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 @@ -301,14 +301,14 @@ glabel L800A2314 /* 0A2F58 800A2358 8E260000 */ lw $a2, ($s1) /* 0A2F5C 800A235C 00003825 */ move $a3, $zero /* 0A2F60 800A2360 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A2F64 800A2364 0C024CC9 */ jal func_80093324 +/* 0A2F64 800A2364 0C024CC9 */ jal print_text_mode_1 /* 0A2F68 800A2368 E7B40014 */ swc1 $f20, 0x14($sp) /* 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 @@ -325,14 +325,14 @@ glabel L800A2384 /* 0A2FB0 800A23B0 8E260000 */ lw $a2, ($s1) /* 0A2FB4 800A23B4 00003825 */ move $a3, $zero /* 0A2FB8 800A23B8 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A2FBC 800A23BC 0C024CC9 */ jal func_80093324 +/* 0A2FBC 800A23BC 0C024CC9 */ jal print_text_mode_1 /* 0A2FC0 800A23C0 E7B60014 */ swc1 $f22, 0x14($sp) /* 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 @@ -365,7 +365,7 @@ glabel L800A23DC /* 0A3040 800A2440 24050055 */ li $a1, 85 /* 0A3044 800A2444 00003825 */ move $a3, $zero /* 0A3048 800A2448 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A304C 800A244C 0C024DBB */ jal draw_text +/* 0A304C 800A244C 0C024DBB */ jal print_text1_center_mode_1 /* 0A3050 800A2450 E7B60014 */ swc1 $f22, 0x14($sp) /* 0A3054 800A2454 00146900 */ sll $t5, $s4, 4 /* 0A3058 800A2458 01B46821 */ addu $t5, $t5, $s4 @@ -396,7 +396,7 @@ glabel L800A23DC /* 0A30B8 800A24B8 8DE60000 */ lw $a2, ($t7) /* 0A30BC 800A24BC E7B80014 */ swc1 $f24, 0x14($sp) /* 0A30C0 800A24C0 E7B80010 */ swc1 $f24, 0x10($sp) -/* 0A30C4 800A24C4 0C024DBB */ jal draw_text +/* 0A30C4 800A24C4 0C024DBB */ jal print_text1_center_mode_1 /* 0A30C8 800A24C8 00003825 */ move $a3, $zero /* 0A30CC 800A24CC 00008025 */ move $s0, $zero /* 0A30D0 800A24D0 24120096 */ li $s2, 150 @@ -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 @@ -456,18 +456,18 @@ glabel L800A23DC /* 0A318C 800A258C 27A600B9 */ addiu $a2, $sp, 0xb9 /* 0A3190 800A2590 00003825 */ move $a3, $zero /* 0A3194 800A2594 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A3198 800A2598 0C024CC9 */ jal func_80093324 +/* 0A3198 800A2598 0C024CC9 */ jal print_text_mode_1 /* 0A319C 800A259C E7B60014 */ swc1 $f22, 0x14($sp) /* 0A31A0 800A25A0 2401002A */ li $at, 42 /* 0A31A4 800A25A4 16610006 */ bne $s3, $at, .L800A25C0 -/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(D_8018D9C0) # $t7, 0x8019 +/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(gSomeDLBuffer) # $t7, 0x8019 /* 0A31AC 800A25AC 3C0E8019 */ lui $t6, %hi(D_8018EE10) # $t6, 0x8019 /* 0A31B0 800A25B0 25CEEE10 */ addiu $t6, %lo(D_8018EE10) # addiu $t6, $t6, -0x11f0 /* 0A31B4 800A25B4 001069C0 */ sll $t5, $s0, 7 /* 0A31B8 800A25B8 10000004 */ b .L800A25CC /* 0A31BC 800A25BC 01AE1821 */ addu $v1, $t5, $t6 .L800A25C0: -/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(D_8018D9C0)($t7) +/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(gSomeDLBuffer)($t7) /* 0A31C4 800A25C4 0010C1C0 */ sll $t8, $s0, 7 /* 0A31C8 800A25C8 01F81821 */ addu $v1, $t7, $t8 .L800A25CC: @@ -482,7 +482,7 @@ glabel L800A23DC /* 0A31EC 800A25EC 02402825 */ move $a1, $s2 /* 0A31F0 800A25F0 00003825 */ move $a3, $zero /* 0A31F4 800A25F4 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A31F8 800A25F8 0C024CC9 */ jal func_80093324 +/* 0A31F8 800A25F8 0C024CC9 */ jal print_text_mode_1 /* 0A31FC 800A25FC E7B40014 */ swc1 $f20, 0x14($sp) /* 0A3200 800A2600 10000019 */ b .L800A2668 /* 0A3204 800A2604 24010002 */ li $at, 2 @@ -510,7 +510,7 @@ glabel L800A23DC /* 0A3250 800A2650 00003825 */ move $a3, $zero /* 0A3254 800A2654 000D7080 */ sll $t6, $t5, 2 /* 0A3258 800A2658 00CE3021 */ addu $a2, $a2, $t6 -/* 0A325C 800A265C 0C024CC9 */ jal func_80093324 +/* 0A325C 800A265C 0C024CC9 */ jal print_text_mode_1 /* 0A3260 800A2660 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2) /* 0A3264 800A2664 24010002 */ li $at, 2 .L800A2668: @@ -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 @@ -546,7 +546,7 @@ glabel L800A26A8 /* 0A32D4 800A26D4 8E060000 */ lw $a2, ($s0) /* 0A32D8 800A26D8 00003825 */ move $a3, $zero /* 0A32DC 800A26DC E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A32E0 800A26E0 0C024DBB */ jal draw_text +/* 0A32E0 800A26E0 0C024DBB */ jal print_text1_center_mode_1 /* 0A32E4 800A26E4 E7B40014 */ swc1 $f20, 0x14($sp) /* 0A32E8 800A26E8 26100004 */ addiu $s0, $s0, 4 /* 0A32EC 800A26EC 0212082B */ sltu $at, $s0, $s2 @@ -579,7 +579,7 @@ glabel L800A26A8 /* 0A3354 800A2754 8D660000 */ lw $a2, ($t3) /* 0A3358 800A2758 E7B80014 */ swc1 $f24, 0x14($sp) /* 0A335C 800A275C E7B80010 */ swc1 $f24, 0x10($sp) -/* 0A3360 800A2760 0C024DBB */ jal draw_text +/* 0A3360 800A2760 0C024DBB */ jal print_text1_center_mode_1 /* 0A3364 800A2764 00003825 */ move $a3, $zero /* 0A3368 800A2768 00008025 */ move $s0, $zero /* 0A336C 800A276C 24120096 */ li $s2, 150 @@ -649,18 +649,18 @@ glabel L800A26A8 /* 0A3448 800A2848 27A600A9 */ addiu $a2, $sp, 0xa9 /* 0A344C 800A284C 00003825 */ move $a3, $zero /* 0A3450 800A2850 E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A3454 800A2854 0C024CC9 */ jal func_80093324 +/* 0A3454 800A2854 0C024CC9 */ jal print_text_mode_1 /* 0A3458 800A2858 E7B60014 */ swc1 $f22, 0x14($sp) /* 0A345C 800A285C 2401002A */ li $at, 42 /* 0A3460 800A2860 16610006 */ bne $s3, $at, .L800A287C -/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(D_8018D9C0) # $t1, 0x8019 +/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(gSomeDLBuffer) # $t1, 0x8019 /* 0A3468 800A2868 3C0A8019 */ lui $t2, %hi(D_8018EE10) # $t2, 0x8019 /* 0A346C 800A286C 254AEE10 */ addiu $t2, %lo(D_8018EE10) # addiu $t2, $t2, -0x11f0 /* 0A3470 800A2870 001041C0 */ sll $t0, $s0, 7 /* 0A3474 800A2874 10000004 */ b .L800A2888 /* 0A3478 800A2878 010A1821 */ addu $v1, $t0, $t2 .L800A287C: -/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(D_8018D9C0)($t1) +/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(gSomeDLBuffer)($t1) /* 0A3480 800A2880 001059C0 */ sll $t3, $s0, 7 /* 0A3484 800A2884 012B1821 */ addu $v1, $t1, $t3 .L800A2888: @@ -675,7 +675,7 @@ glabel L800A26A8 /* 0A34A8 800A28A8 02402825 */ move $a1, $s2 /* 0A34AC 800A28AC 00003825 */ move $a3, $zero /* 0A34B0 800A28B0 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A34B4 800A28B4 0C024CC9 */ jal func_80093324 +/* 0A34B4 800A28B4 0C024CC9 */ jal print_text_mode_1 /* 0A34B8 800A28B8 E7B40014 */ swc1 $f20, 0x14($sp) /* 0A34BC 800A28BC 10000019 */ b .L800A2924 /* 0A34C0 800A28C0 24010002 */ li $at, 2 @@ -703,7 +703,7 @@ glabel L800A26A8 /* 0A350C 800A290C 00003825 */ move $a3, $zero /* 0A3510 800A2910 00085080 */ sll $t2, $t0, 2 /* 0A3514 800A2914 00CA3021 */ addu $a2, $a2, $t2 -/* 0A3518 800A2918 0C024CC9 */ jal func_80093324 +/* 0A3518 800A2918 0C024CC9 */ jal print_text_mode_1 /* 0A351C 800A291C 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2) /* 0A3520 800A2920 24010002 */ li $at, 2 .L800A2924: @@ -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 @@ -742,16 +742,16 @@ glabel L800A26A8 /* 0A359C 800A299C 8E660000 */ lw $a2, ($s3) /* 0A35A0 800A29A0 00003825 */ move $a3, $zero /* 0A35A4 800A29A4 E7B80010 */ swc1 $f24, 0x10($sp) -/* 0A35A8 800A29A8 0C024CC9 */ jal func_80093324 +/* 0A35A8 800A29A8 0C024CC9 */ jal print_text_mode_1 /* 0A35AC 800A29AC E7B80014 */ swc1 $f24, 0x14($sp) /* 0A35B0 800A29B0 26520001 */ addiu $s2, $s2, 1 /* 0A35B4 800A29B4 24010002 */ li $at, 2 /* 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 @@ -774,7 +774,7 @@ glabel L800A29D0 /* 0A3614 800A2A14 24050055 */ li $a1, 85 /* 0A3618 800A2A18 00003825 */ move $a3, $zero /* 0A361C 800A2A1C E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A3620 800A2A20 0C024DBB */ jal draw_text +/* 0A3620 800A2A20 0C024DBB */ jal print_text1_center_mode_1 /* 0A3624 800A2A24 E7B60014 */ swc1 $f22, 0x14($sp) /* 0A3628 800A2A28 3C013F40 */ li $at, 0x3F400000 # 0.750000 /* 0A362C 800A2A2C 4481C000 */ mtc1 $at, $f24 @@ -804,7 +804,7 @@ glabel L800A29D0 /* 0A3688 800A2A88 8D260000 */ lw $a2, ($t1) /* 0A368C 800A2A8C E7B80014 */ swc1 $f24, 0x14($sp) /* 0A3690 800A2A90 E7B80010 */ swc1 $f24, 0x10($sp) -/* 0A3694 800A2A94 0C024DBB */ jal draw_text +/* 0A3694 800A2A94 0C024DBB */ jal print_text1_center_mode_1 /* 0A3698 800A2A98 00003825 */ move $a3, $zero /* 0A369C 800A2A9C 00008025 */ move $s0, $zero /* 0A36A0 800A2AA0 24120096 */ li $s2, 150 @@ -867,18 +867,18 @@ glabel L800A29D0 /* 0A3764 800A2B64 27A60099 */ addiu $a2, $sp, 0x99 /* 0A3768 800A2B68 00003825 */ move $a3, $zero /* 0A376C 800A2B6C E7B60010 */ swc1 $f22, 0x10($sp) -/* 0A3770 800A2B70 0C024CC9 */ jal func_80093324 +/* 0A3770 800A2B70 0C024CC9 */ jal print_text_mode_1 /* 0A3774 800A2B74 E7B60014 */ swc1 $f22, 0x14($sp) /* 0A3778 800A2B78 2401002A */ li $at, 42 /* 0A377C 800A2B7C 16610006 */ bne $s3, $at, .L800A2B98 -/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(D_8018D9C0) # $t2, 0x8019 +/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(gSomeDLBuffer) # $t2, 0x8019 /* 0A3784 800A2B84 3C088019 */ lui $t0, %hi(D_8018EE10) # $t0, 0x8019 /* 0A3788 800A2B88 2508EE10 */ addiu $t0, %lo(D_8018EE10) # addiu $t0, $t0, -0x11f0 /* 0A378C 800A2B8C 0010C9C0 */ sll $t9, $s0, 7 /* 0A3790 800A2B90 10000004 */ b .L800A2BA4 /* 0A3794 800A2B94 03281821 */ addu $v1, $t9, $t0 .L800A2B98: -/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(D_8018D9C0)($t2) +/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(gSomeDLBuffer)($t2) /* 0A379C 800A2B9C 001049C0 */ sll $t1, $s0, 7 /* 0A37A0 800A2BA0 01491821 */ addu $v1, $t2, $t1 .L800A2BA4: @@ -893,7 +893,7 @@ glabel L800A29D0 /* 0A37C4 800A2BC4 02402825 */ move $a1, $s2 /* 0A37C8 800A2BC8 00003825 */ move $a3, $zero /* 0A37CC 800A2BCC E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A37D0 800A2BD0 0C024CC9 */ jal func_80093324 +/* 0A37D0 800A2BD0 0C024CC9 */ jal print_text_mode_1 /* 0A37D4 800A2BD4 E7B40014 */ swc1 $f20, 0x14($sp) /* 0A37D8 800A2BD8 10000019 */ b .L800A2C40 /* 0A37DC 800A2BDC 24010002 */ li $at, 2 @@ -921,7 +921,7 @@ glabel L800A29D0 /* 0A3828 800A2C28 00003825 */ move $a3, $zero /* 0A382C 800A2C2C 00194080 */ sll $t0, $t9, 2 /* 0A3830 800A2C30 00C83021 */ addu $a2, $a2, $t0 -/* 0A3834 800A2C34 0C024CC9 */ jal func_80093324 +/* 0A3834 800A2C34 0C024CC9 */ jal print_text_mode_1 /* 0A3838 800A2C38 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2) /* 0A383C 800A2C3C 24010002 */ li $at, 2 .L800A2C40: @@ -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/code_80091750/func_800AB314.s b/asm/non_matchings/menu_items/func_800AB314.s similarity index 95% rename from asm/non_matchings/code_80091750/func_800AB314.s rename to asm/non_matchings/menu_items/func_800AB314.s index 664099db7..e2cd168de 100644 --- a/asm/non_matchings/code_80091750/func_800AB314.s +++ b/asm/non_matchings/menu_items/func_800AB314.s @@ -8,7 +8,7 @@ glabel func_800AB314 /* 0ABF28 800AB328 24A4005F */ addiu $a0, $a1, 0x5f /* 0ABF2C 800AB32C AFA3001C */ sw $v1, 0x1c($sp) /* 0ABF30 800AB330 AFA5003C */ sw $a1, 0x3c($sp) -/* 0ABF34 800AB334 0C02ABBD */ jal find_8018D9E0_entry_dupe +/* 0ABF34 800AB334 0C02ABBD */ jal find_menu_items_dupe /* 0ABF38 800AB338 AFA60040 */ sw $a2, 0x40($sp) /* 0ABF3C 800AB33C 8FA5003C */ lw $a1, 0x3c($sp) /* 0ABF40 800AB340 8FA3001C */ lw $v1, 0x1c($sp) @@ -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/code_80091750/func_800A474C.s b/asm/non_matchings/menu_items/render_lap_times.s similarity index 97% rename from asm/non_matchings/code_80091750/func_800A474C.s rename to asm/non_matchings/menu_items/render_lap_times.s index d01240183..3e88d3e63 100644 --- a/asm/non_matchings/code_80091750/func_800A474C.s +++ b/asm/non_matchings/menu_items/render_lap_times.s @@ -15,7 +15,7 @@ glabel D_800F1DC8 .section .text -glabel func_800A474C +glabel render_lap_times /* 0A534C 800A474C 27BDFFB0 */ addiu $sp, $sp, -0x50 /* 0A5350 800A4750 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e /* 0A5354 800A4754 8DCEC50C */ lw $t6, %lo(gGamestate)($t6) @@ -86,7 +86,7 @@ glabel func_800A474C /* 0A5438 800A4838 8FAB0030 */ lw $t3, 0x30($sp) /* 0A543C 800A483C 55600024 */ bnel $t3, $zero, .L800A48D0 /* 0A5440 800A4840 24020003 */ li $v0, 3 -/* 0A5444 800A4844 0C02ABBD */ jal find_8018D9E0_entry_dupe +/* 0A5444 800A4844 0C02ABBD */ jal find_menu_items_dupe /* 0A5448 800A4848 240400BB */ li $a0, 187 /* 0A544C 800A484C 8FAC0050 */ lw $t4, 0x50($sp) /* 0A5450 800A4850 29810005 */ slti $at, $t4, 5 @@ -152,7 +152,7 @@ glabel func_800A474C /* 0A552C 800A492C 00003825 */ move $a3, $zero /* 0A5530 800A4930 E7B40010 */ swc1 $f20, 0x10($sp) /* 0A5534 800A4934 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0A5538 800A4938 0C024CC9 */ jal func_80093324 +/* 0A5538 800A4938 0C024CC9 */ jal print_text_mode_1 /* 0A553C 800A493C 24840032 */ addiu $a0, $a0, 0x32 /* 0A5540 800A4940 8FA4002C */ lw $a0, 0x2c($sp) /* 0A5544 800A4944 0C029E51 */ jal get_time_record_seconds @@ -172,7 +172,7 @@ glabel func_800A474C /* 0A557C 800A497C 00003825 */ move $a3, $zero /* 0A5580 800A4980 E7B40010 */ swc1 $f20, 0x10($sp) /* 0A5584 800A4984 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0A5588 800A4988 0C024CC9 */ jal func_80093324 +/* 0A5588 800A4988 0C024CC9 */ jal print_text_mode_1 /* 0A558C 800A498C 24840046 */ addiu $a0, $a0, 0x46 /* 0A5590 800A4990 8FA4002C */ lw $a0, 0x2c($sp) /* 0A5594 800A4994 0C029E69 */ jal get_time_record_centiseconds @@ -206,7 +206,7 @@ glabel func_800A474C /* 0A55FC 800A49FC 8FA50058 */ lw $a1, 0x58($sp) /* 0A5600 800A4A00 00003825 */ move $a3, $zero /* 0A5604 800A4A04 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A5608 800A4A08 0C024DBB */ jal draw_text +/* 0A5608 800A4A08 0C024DBB */ jal print_text1_center_mode_1 /* 0A560C 800A4A0C E7B40014 */ swc1 $f20, 0x14($sp) /* 0A5610 800A4A10 8FBF0024 */ lw $ra, 0x24($sp) /* 0A5614 800A4A14 D7B40018 */ ldc1 $f20, 0x18($sp) diff --git a/asm/non_matchings/code_80091750/func_8009F5E0.s b/asm/non_matchings/menu_items/render_menus.s similarity index 93% rename from asm/non_matchings/code_80091750/func_8009F5E0.s rename to asm/non_matchings/menu_items/render_menus.s index 08dc2b827..f25c72942 100644 --- a/asm/non_matchings/code_80091750/func_8009F5E0.s +++ b/asm/non_matchings/menu_items/render_menus.s @@ -122,7 +122,7 @@ glabel D_800F1AFC .section .text -glabel func_8009F5E0 +glabel render_menus /* 0A01E0 8009F5E0 27BDFF50 */ addiu $sp, $sp, -0xb0 /* 0A01E4 8009F5E4 AFBF0034 */ sw $ra, 0x34($sp) /* 0A01E8 8009F5E8 AFB10030 */ sw $s1, 0x30($sp) @@ -292,12 +292,12 @@ glabel L8009F844 /* 0A0444 8009F844 0C02D557 */ jal has_unlocked_extra_mode /* 0A0448 8009F848 00000000 */ nop /* 0A044C 8009F84C 00025880 */ sll $t3, $v0, 2 -/* 0A0450 8009F850 3C05800E */ lui $a1, %hi(D_800E7D4C) +/* 0A0450 8009F850 3C05800E */ lui $a1, %hi(gMenuTexturesBackground) /* 0A0454 8009F854 00AB2821 */ addu $a1, $a1, $t3 -/* 0A0458 8009F858 8CA57D4C */ lw $a1, %lo(D_800E7D4C)($a1) +/* 0A0458 8009F858 8CA57D4C */ lw $a1, %lo(gMenuTexturesBackground)($a1) /* 0A045C 8009F85C 8E040000 */ lw $a0, ($s0) /* 0A0460 8009F860 8E26000C */ lw $a2, %lo(D_FA00000C)($s1) -/* 0A0464 8009F864 0C026E9D */ jal func_8009BA74 +/* 0A0464 8009F864 0C026E9D */ jal render_menu_textures /* 0A0468 8009F868 8E270010 */ lw $a3, %lo(D_FA000010)($s1) /* 0A046C 8009F86C 10000415 */ b .L800A08C4 /* 0A0470 8009F870 AE020000 */ sw $v0, ($s0) @@ -309,21 +309,21 @@ 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(D_020045E8) # $a1, 0x200 -/* 0A049C 8009F89C 24A545E8 */ addiu $a1, %lo(D_020045E8) # addiu $a1, $a1, 0x45e8 +/* 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 /* 0A04A0 8009F8A0 8E040000 */ lw $a0, ($s0) /* 0A04A4 8009F8A4 8E26000C */ lw $a2, %lo(D_FA00000C)($s1) -/* 0A04A8 8009F8A8 0C026E9D */ jal func_8009BA74 +/* 0A04A8 8009F8A8 0C026E9D */ jal render_menu_textures /* 0A04AC 8009F8AC 8E270010 */ lw $a3, %lo(D_FA000010)($s1) /* 0A04B0 8009F8B0 10000404 */ b .L800A08C4 /* 0A04B4 8009F8B4 AE020000 */ sw $v0, ($s0) glabel L8009F8B8 /* 0A04B8 8009F8B8 3C18800E */ lui $t8, %hi(gGlobalTimer) # $t8, 0x800e /* 0A04BC 8009F8BC 8F18C54C */ lw $t8, %lo(gGlobalTimer)($t8) -/* 0A04C0 8009F8C0 3C050200 */ lui $a1, %hi(D_02004610) # $a1, 0x200 -/* 0A04C4 8009F8C4 24A54610 */ addiu $a1, %lo(D_02004610) # addiu $a1, $a1, 0x4610 +/* 0A04C0 8009F8C0 3C050200 */ lui $a1, %hi(seg2_push_start_button_texture) # $a1, 0x200 +/* 0A04C4 8009F8C4 24A54610 */ addiu $a1, %lo(seg2_push_start_button_texture) # addiu $a1, $a1, 0x4610 /* 0A04C8 8009F8C8 07010003 */ bgez $t8, .L8009F8D8 /* 0A04CC 8009F8CC 0018C8C3 */ sra $t9, $t8, 3 /* 0A04D0 8009F8D0 27010007 */ addiu $at, $t8, 7 @@ -336,7 +336,7 @@ glabel L8009F8B8 /* 0A04E8 8009F8E8 8FBF0034 */ lw $ra, 0x34($sp) /* 0A04EC 8009F8EC 8E040000 */ lw $a0, ($s0) /* 0A04F0 8009F8F0 8E26000C */ lw $a2, %lo(D_FA00000C)($s1) -/* 0A04F4 8009F8F4 0C026E9D */ jal func_8009BA74 +/* 0A04F4 8009F8F4 0C026E9D */ jal render_menu_textures /* 0A04F8 8009F8F8 8E270010 */ lw $a3, %lo(D_FA000010)($s1) /* 0A04FC 8009F8FC 100003F1 */ b .L800A08C4 /* 0A0500 8009F900 AE020000 */ sw $v0, ($s0) @@ -383,7 +383,7 @@ glabel L8009F904 /* 0A059C 8009F99C 8E260000 */ lw $a2, ($s1) /* 0A05A0 8009F9A0 00003825 */ move $a3, $zero /* 0A05A4 8009F9A4 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A05A8 8009F9A8 0C024DBB */ jal draw_text +/* 0A05A8 8009F9A8 0C024DBB */ jal print_text1_center_mode_1 /* 0A05AC 8009F9AC E7A00014 */ swc1 $f0, 0x14($sp) /* 0A05B0 8009F9B0 00002025 */ move $a0, $zero /* 0A05B4 8009F9B4 0C02D3AD */ jal func_800B4EB4 @@ -443,7 +443,7 @@ glabel L8009F904 /* 0A067C 8009FA7C 240500A0 */ li $a1, 160 /* 0A0680 8009FA80 00003825 */ move $a3, $zero /* 0A0684 8009FA84 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A0688 8009FA88 0C024CC9 */ jal func_80093324 +/* 0A0688 8009FA88 0C024CC9 */ jal print_text_mode_1 /* 0A068C 8009FA8C E7A00014 */ swc1 $f0, 0x14($sp) /* 0A0690 8009FA90 02202025 */ move $a0, $s1 /* 0A0694 8009FA94 0C029E51 */ jal get_time_record_seconds @@ -465,7 +465,7 @@ glabel L8009F904 /* 0A06D4 8009FAD4 240500A0 */ li $a1, 160 /* 0A06D8 8009FAD8 00003825 */ move $a3, $zero /* 0A06DC 8009FADC E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A06E0 8009FAE0 0C024CC9 */ jal func_80093324 +/* 0A06E0 8009FAE0 0C024CC9 */ jal print_text_mode_1 /* 0A06E4 8009FAE4 E7A00014 */ swc1 $f0, 0x14($sp) /* 0A06E8 8009FAE8 02202025 */ move $a0, $s1 /* 0A06EC 8009FAEC 0C029E69 */ jal get_time_record_centiseconds @@ -483,8 +483,8 @@ glabel L8009F904 /* 0A071C 8009FB1C 1000036A */ b .L800A08C8 /* 0A0720 8009FB20 8FBF0034 */ lw $ra, 0x34($sp) glabel L8009FB24 -/* 0A0724 8009FB24 3C11800E */ lui $s1, %hi(D_800E77A0) # $s1, 0x800e -/* 0A0728 8009FB28 263177A0 */ addiu $s1, %lo(D_800E77A0) # addiu $s1, $s1, 0x77a0 +/* 0A0724 8009FB24 3C11800E */ lui $s1, %hi(gTextNoController) # $s1, 0x800e +/* 0A0728 8009FB28 263177A0 */ addiu $s1, %lo(gTextNoController) # addiu $s1, $s1, 0x77a0 /* 0A072C 8009FB2C 0C024C0D */ jal get_string_width /* 0A0730 8009FB30 8E240000 */ lw $a0, ($s1) /* 0A0734 8009FB34 8E240004 */ lw $a0, 4($s1) @@ -555,8 +555,8 @@ glabel L8009FB24 /* 0A082C 8009FC2C 44993000 */ mtc1 $t9, $f6 /* 0A0830 8009FC30 46005402 */ mul.s $f16, $f10, $f0 /* 0A0834 8009FC34 240A00B4 */ li $t2, 180 -/* 0A0838 8009FC38 3C02800E */ lui $v0, %hi(D_800E77A0) # $v0, 0x800e -/* 0A083C 8009FC3C 244277A0 */ addiu $v0, %lo(D_800E77A0) # addiu $v0, $v0, 0x77a0 +/* 0A0838 8009FC38 3C02800E */ lui $v0, %hi(gTextNoController) # $v0, 0x800e +/* 0A083C 8009FC3C 244277A0 */ addiu $v0, %lo(gTextNoController) # addiu $v0, $v0, 0x77a0 /* 0A0840 8009FC40 00001825 */ move $v1, $zero /* 0A0844 8009FC44 46803220 */ cvt.s.w $f8, $f6 /* 0A0848 8009FC48 448A3000 */ mtc1 $t2, $f6 @@ -583,13 +583,13 @@ glabel L8009FB24 /* 0A0898 8009FC98 46101480 */ add.s $f18, $f2, $f16 /* 0A089C 8009FC9C 4600910D */ trunc.w.s $f4, $f18 /* 0A08A0 8009FCA0 44052000 */ mfc1 $a1, $f4 -/* 0A08A4 8009FCA4 0C024DBB */ jal draw_text +/* 0A08A4 8009FCA4 0C024DBB */ jal print_text1_center_mode_1 /* 0A08A8 8009FCA8 00000000 */ nop /* 0A08AC 8009FCAC 8FA20040 */ lw $v0, 0x40($sp) /* 0A08B0 8009FCB0 8FA30044 */ lw $v1, 0x44($sp) -/* 0A08B4 8009FCB4 3C0C800E */ lui $t4, %hi(D_800E77A8) # $t4, 0x800e +/* 0A08B4 8009FCB4 3C0C800E */ lui $t4, %hi(gTextBattleIntroduction) # $t4, 0x800e /* 0A08B8 8009FCB8 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 0A08BC 8009FCBC 258C77A8 */ addiu $t4, %lo(D_800E77A8) # addiu $t4, $t4, 0x77a8 +/* 0A08BC 8009FCBC 258C77A8 */ addiu $t4, %lo(gTextBattleIntroduction) # addiu $t4, $t4, 0x77a8 /* 0A08C0 8009FCC0 44810000 */ mtc1 $at, $f0 /* 0A08C4 8009FCC4 24420004 */ addiu $v0, $v0, 4 /* 0A08C8 8009FCC8 144CFFE8 */ bne $v0, $t4, .L8009FC6C @@ -600,24 +600,24 @@ glabel L8009FCD8 /* 0A08D8 8009FCD8 0C02D557 */ jal has_unlocked_extra_mode /* 0A08DC 8009FCDC 00000000 */ nop /* 0A08E0 8009FCE0 00026880 */ sll $t5, $v0, 2 -/* 0A08E4 8009FCE4 3C05800E */ lui $a1, %hi(D_800E7D4C) +/* 0A08E4 8009FCE4 3C05800E */ lui $a1, %hi(gMenuTexturesBackground) /* 0A08E8 8009FCE8 00AD2821 */ addu $a1, $a1, $t5 /* 0A08EC 8009FCEC 8E26000C */ lw $a2, 0xc($s1) /* 0A08F0 8009FCF0 8E270010 */ lw $a3, 0x10($s1) /* 0A08F4 8009FCF4 240E0003 */ li $t6, 3 /* 0A08F8 8009FCF8 AFAE0010 */ sw $t6, 0x10($sp) /* 0A08FC 8009FCFC AFA00014 */ sw $zero, 0x14($sp) -/* 0A0900 8009FD00 8CA57D4C */ lw $a1, %lo(D_800E7D4C)($a1) +/* 0A0900 8009FD00 8CA57D4C */ lw $a1, %lo(gMenuTexturesBackground)($a1) /* 0A0904 8009FD04 0C026F27 */ jal func_8009BC9C /* 0A0908 8009FD08 8E040000 */ lw $a0, ($s0) /* 0A090C 8009FD0C 100002ED */ b .L800A08C4 /* 0A0910 8009FD10 AE020000 */ sw $v0, ($s0) glabel L8009FD14 -/* 0A0914 8009FD14 3C050200 */ lui $a1, %hi(D_02004660) # $a1, 0x200 -/* 0A0918 8009FD18 24A54660 */ addiu $a1, %lo(D_02004660) # addiu $a1, $a1, 0x4660 +/* 0A0914 8009FD14 3C050200 */ lui $a1, %hi(seg2_game_select_texture) # $a1, 0x200 +/* 0A0918 8009FD18 24A54660 */ addiu $a1, %lo(seg2_game_select_texture) # addiu $a1, $a1, 0x4660 /* 0A091C 8009FD1C 8E040000 */ lw $a0, ($s0) /* 0A0920 8009FD20 8E26000C */ lw $a2, 0xc($s1) -/* 0A0924 8009FD24 0C026E9D */ jal func_8009BA74 +/* 0A0924 8009FD24 0C026E9D */ jal render_menu_textures /* 0A0928 8009FD28 8E270010 */ lw $a3, 0x10($s1) /* 0A092C 8009FD2C 100002E5 */ b .L800A08C4 /* 0A0930 8009FD30 AE020000 */ sw $v0, ($s0) @@ -649,7 +649,7 @@ glabel L8009FD58 glabel L8009FD90 /* 0A0990 8009FD90 8E23001C */ lw $v1, 0x1c($s1) /* 0A0994 8009FD94 2506FFF1 */ addiu $a2, $t0, -0xf -/* 0A0998 8009FD98 3C098019 */ lui $t1, %hi(gMainMenuSelectionDepth) # $t1, 0x8019 +/* 0A0998 8009FD98 3C098019 */ lui $t1, %hi(gMainMenuSelection) # $t1, 0x8019 /* 0A099C 8009FD9C 28610020 */ slti $at, $v1, 0x20 /* 0A09A0 8009FDA0 50200030 */ beql $at, $zero, .L8009FE64 /* 0A09A4 8009FDA4 2518FFF6 */ addiu $t8, $t0, -0xa @@ -658,7 +658,7 @@ glabel L8009FD90 /* 0A09B0 8009FDB0 00084080 */ sll $t0, $t0, 2 /* 0A09B4 8009FDB4 01034021 */ addu $t0, $t0, $v1 /* 0A09B8 8009FDB8 00084040 */ sll $t0, $t0, 1 -/* 0A09BC 8009FDBC 8129EDED */ lb $t1, %lo(gMainMenuSelectionDepth)($t1) +/* 0A09BC 8009FDBC 8129EDED */ lb $t1, %lo(gMainMenuSelection)($t1) /* 0A09C0 8009FDC0 05010003 */ bgez $t0, .L8009FDD0 /* 0A09C4 8009FDC4 0008C983 */ sra $t9, $t0, 6 /* 0A09C8 8009FDC8 2501003F */ addiu $at, $t0, 0x3f @@ -721,10 +721,10 @@ glabel L8009FD90 glabel L8009FE9C /* 0A0A9C 8009FE9C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0A0AA0 8009FEA0 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((D_800E86AC - 1)) # 0x800f -/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((D_800E86B0 - 3)) # 0x800f +/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((gGameModeMenuColumn - 1)) # 0x800f +/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((gGameModeSubMenuColumn - 3)) # 0x800f /* 0A0AAC 8009FEAC 00621821 */ addu $v1, $v1, $v0 -/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo((D_800E86AC - 1))($v1) # -0x7955($v1) +/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo((gGameModeMenuColumn - 1))($v1) # -0x7955($v1) /* 0A0AB4 8009FEB4 00026880 */ sll $t5, $v0, 2 /* 0A0AB8 8009FEB8 00025880 */ sll $t3, $v0, 2 /* 0A0ABC 8009FEBC 01A26823 */ subu $t5, $t5, $v0 @@ -738,7 +738,7 @@ glabel L8009FE9C /* 0A0ADC 8009FEDC 00CC3021 */ addu $a2, $a2, $t4 /* 0A0AE0 8009FEE0 00AF2821 */ addu $a1, $a1, $t7 /* 0A0AE4 8009FEE4 2F010008 */ sltiu $at, $t8, 8 -/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((D_800E86B0 - 3))($a2) # -0x7953($a2) +/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((gGameModeSubMenuColumn - 3))($a2) # -0x7953($a2) /* 0A0AEC 8009FEEC 10200037 */ beqz $at, .L8009FFCC /* 0A0AF0 8009FEF0 8CA52B70 */ lw $a1, %lo((gGameModePlayerSelection - 0xC))($a1) # 0x2b70($a1) /* 0A0AF4 8009FEF4 0018C080 */ sll $t8, $t8, 2 @@ -757,10 +757,10 @@ glabel L8009FF0C .L8009FF24: /* 0A0B24 8009FF24 00084880 */ sll $t1, $t0, 2 .L8009FF28: -/* 0A0B28 8009FF28 3C04800F */ lui $a0, %hi(D_800E824C) # 0x800f +/* 0A0B28 8009FF28 3C04800F */ lui $a0, %hi(D_800E8294-0x48) # 0x800f /* 0A0B2C 8009FF2C 00892021 */ addu $a0, $a0, $t1 /* 0A0B30 8009FF30 AFB900A8 */ sw $t9, 0xa8($sp) -/* 0A0B34 8009FF34 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) +/* 0A0B34 8009FF34 8C84824C */ lw $a0, %lo(D_800E8294-0x48)($a0) # -0x7db4($a0) /* 0A0B38 8009FF38 0C026449 */ jal segmented_to_virtual_dupe /* 0A0B3C 8009FF3C AFA600AC */ sw $a2, 0xac($sp) /* 0A0B40 8009FF40 8FA600AC */ lw $a2, 0xac($sp) @@ -774,10 +774,10 @@ glabel L8009FF50 /* 0A0B5C 8009FF5C 1000001B */ b .L8009FFCC /* 0A0B60 8009FF60 2406FFFF */ li $a2, -1 .L8009FF64: -/* 0A0B64 8009FF64 3C04800F */ lui $a0, %hi(D_800E824C) # 0x800f +/* 0A0B64 8009FF64 3C04800F */ lui $a0, %hi(D_800E82A4-0x58) # 0x800f /* 0A0B68 8009FF68 24050016 */ li $a1, 22 /* 0A0B6C 8009FF6C 008A2021 */ addu $a0, $a0, $t2 -/* 0A0B70 8009FF70 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) +/* 0A0B70 8009FF70 8C84824C */ lw $a0, %lo(D_800E82A4-0x58)($a0) # -0x7db4($a0) /* 0A0B74 8009FF74 AFA500A8 */ sw $a1, 0xa8($sp) /* 0A0B78 8009FF78 0C026449 */ jal segmented_to_virtual_dupe /* 0A0B7C 8009FF7C AFA600AC */ sw $a2, 0xac($sp) @@ -792,10 +792,10 @@ glabel L8009FF90 /* 0A0B9C 8009FF9C 1000000B */ b .L8009FFCC /* 0A0BA0 8009FFA0 2406FFFF */ li $a2, -1 .L8009FFA4: -/* 0A0BA4 8009FFA4 3C04800F */ lui $a0, %hi(D_800E824C) # 0x800f +/* 0A0BA4 8009FFA4 3C04800F */ lui $a0, %hi(D_800E82AC-0x60) # 0x800f /* 0A0BA8 8009FFA8 24050018 */ li $a1, 24 /* 0A0BAC 8009FFAC 008B2021 */ addu $a0, $a0, $t3 -/* 0A0BB0 8009FFB0 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) +/* 0A0BB0 8009FFB0 8C84824C */ lw $a0, %lo(D_800E82AC-0x60)($a0) # -0x7db4($a0) /* 0A0BB4 8009FFB4 AFA500A8 */ sw $a1, 0xa8($sp) /* 0A0BB8 8009FFB8 0C026449 */ jal segmented_to_virtual_dupe /* 0A0BBC 8009FFBC AFA600AC */ sw $a2, 0xac($sp) @@ -805,8 +805,8 @@ glabel L8009FF90 .L8009FFCC: /* 0A0BCC 8009FFCC 2401FFFF */ li $at, -1 /* 0A0BD0 8009FFD0 10C1023C */ beq $a2, $at, .L800A08C4 -/* 0A0BD4 8009FFD4 3C028019 */ lui $v0, %hi(gMainMenuSelectionDepth) # $v0, 0x8019 -/* 0A0BD8 8009FFD8 8042EDED */ lb $v0, %lo(gMainMenuSelectionDepth)($v0) +/* 0A0BD4 8009FFD4 3C028019 */ lui $v0, %hi(gMainMenuSelection) # $v0, 0x8019 +/* 0A0BD8 8009FFD8 8042EDED */ lb $v0, %lo(gMainMenuSelection)($v0) /* 0A0BDC 8009FFDC 240E0001 */ li $t6, 1 /* 0A0BE0 8009FFE0 240F00FF */ li $t7, 255 /* 0A0BE4 8009FFE4 28410005 */ slti $at, $v0, 5 @@ -866,7 +866,7 @@ glabel L8009FF90 /* 0A0CB0 800A00B0 8E040000 */ lw $a0, ($s0) /* 0A0CB4 800A00B4 8FA5009C */ lw $a1, 0x9c($sp) /* 0A0CB8 800A00B8 8E26000C */ lw $a2, 0xc($s1) -/* 0A0CBC 800A00BC 0C026E9D */ jal func_8009BA74 +/* 0A0CBC 800A00BC 0C026E9D */ jal render_menu_textures /* 0A0CC0 800A00C0 8E270010 */ lw $a3, 0x10($s1) /* 0A0CC4 800A00C4 100001FF */ b .L800A08C4 /* 0A0CC8 800A00C8 AE020000 */ sw $v0, ($s0) @@ -880,7 +880,7 @@ glabel L800A00DC /* 0A0CE0 800A00E0 24A54B4C */ addiu $a1, %lo(D_02004B4C) # addiu $a1, $a1, 0x4b4c /* 0A0CE4 800A00E4 8E040000 */ lw $a0, ($s0) /* 0A0CE8 800A00E8 8E26000C */ lw $a2, 0xc($s1) -/* 0A0CEC 800A00EC 0C026E9D */ jal func_8009BA74 +/* 0A0CEC 800A00EC 0C026E9D */ jal render_menu_textures /* 0A0CF0 800A00F0 8E270010 */ lw $a3, 0x10($s1) /* 0A0CF4 800A00F4 100001F3 */ b .L800A08C4 /* 0A0CF8 800A00F8 AE020000 */ sw $v0, ($s0) @@ -889,11 +889,11 @@ glabel L800A00FC /* 0A0D00 800A0100 3C188019 */ lui $t8, %hi(gCharacterGridSelections) # 0x8019 /* 0A0D04 800A0104 0305C021 */ addu $t8, $t8, $a1 /* 0A0D08 800A0108 8318EDE4 */ lb $t8, %lo(gCharacterGridSelections)($t8) # -0x121c($t8) -/* 0A0D0C 800A010C 3C198019 */ lui $t9, %hi(D_8018EDE8) # 0x8019 +/* 0A0D0C 800A010C 3C198019 */ lui $t9, %hi(gCharacterGridIsSelected) # 0x8019 /* 0A0D10 800A0110 0325C821 */ addu $t9, $t9, $a1 /* 0A0D14 800A0114 530001EC */ beql $t8, $zero, .L800A08C8 /* 0A0D18 800A0118 8FBF0034 */ lw $ra, 0x34($sp) -/* 0A0D1C 800A011C 8339EDE8 */ lb $t9, %lo(D_8018EDE8)($t9) # -0x1218($t9) +/* 0A0D1C 800A011C 8339EDE8 */ lb $t9, %lo(gCharacterGridIsSelected)($t9) # -0x1218($t9) /* 0A0D20 800A0120 3C06800E */ lui $a2, %hi(gGlobalTimer) # $a2, 0x800e /* 0A0D24 800A0124 17200003 */ bnez $t9, .L800A0134 /* 0A0D28 800A0128 00000000 */ nop @@ -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) @@ -968,7 +968,7 @@ glabel L800A01F8 /* 0A0E18 800A0218 8E040000 */ lw $a0, ($s0) /* 0A0E1C 800A021C 00402825 */ move $a1, $v0 /* 0A0E20 800A0220 8E26000C */ lw $a2, 0xc($s1) -/* 0A0E24 800A0224 0C026E9D */ jal func_8009BA74 +/* 0A0E24 800A0224 0C026E9D */ jal render_menu_textures /* 0A0E28 800A0228 8E270010 */ lw $a3, 0x10($s1) /* 0A0E2C 800A022C AE020000 */ sw $v0, ($s0) /* 0A0E30 800A0230 0C02A329 */ jal func_800A8CA4 @@ -984,7 +984,7 @@ glabel L800A0240 /* 0A0E54 800A0254 8E040000 */ lw $a0, ($s0) /* 0A0E58 800A0258 00402825 */ move $a1, $v0 /* 0A0E5C 800A025C 8E26000C */ lw $a2, 0xc($s1) -/* 0A0E60 800A0260 0C026E9D */ jal func_8009BA74 +/* 0A0E60 800A0260 0C026E9D */ jal render_menu_textures /* 0A0E64 800A0264 8E270010 */ lw $a3, 0x10($s1) /* 0A0E68 800A0268 10000196 */ b .L800A08C4 /* 0A0E6C 800A026C AE020000 */ sw $v0, ($s0) @@ -1039,22 +1039,22 @@ glabel L800A02DC /* 0A0F18 800A0318 C4261AF8 */ lwc1 $f6, %lo(D_800F1AF8)($at) /* 0A0F1C 800A031C 8E24000C */ lw $a0, 0xc($s1) /* 0A0F20 800A0320 8E250010 */ lw $a1, 0x10($s1) -/* 0A0F24 800A0324 3C06800E */ lui $a2, %hi(D_800E7728 - 0x194) +/* 0A0F24 800A0324 3C06800E */ lui $a2, %hi(gBestTimeText - 0x194) /* 0A0F28 800A0328 000B6080 */ sll $t4, $t3, 2 /* 0A0F2C 800A032C 00CC3021 */ addu $a2, $a2, $t4 -/* 0A0F30 800A0330 8CC67594 */ lw $a2, %lo(D_800E7728 - 0x194)($a2) +/* 0A0F30 800A0330 8CC67594 */ lw $a2, %lo(gBestTimeText - 0x194)($a2) /* 0A0F34 800A0334 00003825 */ move $a3, $zero /* 0A0F38 800A0338 E7A00010 */ swc1 $f0, 0x10($sp) /* 0A0F3C 800A033C E7A60014 */ swc1 $f6, 0x14($sp) /* 0A0F40 800A0340 24840008 */ addiu $a0, $a0, 8 -/* 0A0F44 800A0344 0C024CC9 */ jal func_80093324 +/* 0A0F44 800A0344 0C024CC9 */ jal print_text_mode_1 /* 0A0F48 800A0348 24A50010 */ addiu $a1, $a1, 0x10 /* 0A0F4C 800A034C 0C02A1D3 */ jal func_800A874C /* 0A0F50 800A0350 02202025 */ move $a0, $s1 /* 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) @@ -1090,7 +1090,7 @@ glabel L800A037C /* 0A0FD8 800A03D8 8E040000 */ lw $a0, ($s0) /* 0A0FDC 800A03DC 00402825 */ move $a1, $v0 /* 0A0FE0 800A03E0 8E26000C */ lw $a2, 0xc($s1) -/* 0A0FE4 800A03E4 0C026E9D */ jal func_8009BA74 +/* 0A0FE4 800A03E4 0C026E9D */ jal render_menu_textures /* 0A0FE8 800A03E8 8E270010 */ lw $a3, 0x10($s1) /* 0A0FEC 800A03EC 10000135 */ b .L800A08C4 /* 0A0FF0 800A03F0 AE020000 */ sw $v0, ($s0) @@ -1110,8 +1110,8 @@ glabel L800A0404 /* 0A1020 800A0420 10000129 */ b .L800A08C8 /* 0A1024 800A0424 8FBF0034 */ lw $ra, 0x34($sp) glabel L800A0428 -/* 0A1028 800A0428 3C028019 */ lui $v0, %hi(gMainMenuSelectionDepth) # $v0, 0x8019 -/* 0A102C 800A042C 8042EDED */ lb $v0, %lo(gMainMenuSelectionDepth)($v0) +/* 0A1028 800A0428 3C028019 */ lui $v0, %hi(gMainMenuSelection) # $v0, 0x8019 +/* 0A102C 800A042C 8042EDED */ lb $v0, %lo(gMainMenuSelection)($v0) /* 0A1030 800A0430 8FAB00A8 */ lw $t3, 0xa8($sp) /* 0A1034 800A0434 240D0001 */ li $t5, 1 /* 0A1038 800A0438 28410005 */ slti $at, $v0, 5 @@ -1169,24 +1169,24 @@ glabel L800A0428 /* 0A10FC 800A04FC 24A7003F */ addiu $a3, $a1, 0x3f /* 0A1100 800A0500 AE020000 */ sw $v0, ($s0) .L800A0504: -/* 0A1104 800A0504 3C050200 */ lui $a1, %hi(D_02004A34) # $a1, 0x200 -/* 0A1108 800A0508 24A54A34 */ addiu $a1, %lo(D_02004A34) # addiu $a1, $a1, 0x4a34 +/* 0A1104 800A0504 3C050200 */ lui $a1, %hi(seg2_data_texture) # $a1, 0x200 +/* 0A1108 800A0508 24A54A34 */ addiu $a1, %lo(seg2_data_texture) # addiu $a1, $a1, 0x4a34 /* 0A110C 800A050C 8E040000 */ lw $a0, ($s0) /* 0A1110 800A0510 8E26000C */ lw $a2, 0xc($s1) -/* 0A1114 800A0514 0C026E9D */ jal func_8009BA74 +/* 0A1114 800A0514 0C026E9D */ jal render_menu_textures /* 0A1118 800A0518 8E270010 */ lw $a3, 0x10($s1) /* 0A111C 800A051C AE020000 */ sw $v0, ($s0) /* 0A1120 800A0520 0C024C36 */ jal set_text_color /* 0A1124 800A0524 24040003 */ li $a0, 3 /* 0A1128 800A0528 3C01800F */ lui $at, %hi(D_800F1AFC) # $at, 0x800f /* 0A112C 800A052C C4201AFC */ lwc1 $f0, %lo(D_800F1AFC)($at) -/* 0A1130 800A0530 3C06800E */ lui $a2, %hi(D_800E77B4) # $a2, 0x800e -/* 0A1134 800A0534 24C677B4 */ addiu $a2, %lo(D_800E77B4) # addiu $a2, $a2, 0x77b4 +/* 0A1130 800A0530 3C06800E */ lui $a2, %hi(gTextMenuData) # $a2, 0x800e +/* 0A1134 800A0534 24C677B4 */ addiu $a2, %lo(gTextMenuData) # addiu $a2, $a2, 0x77b4 /* 0A1138 800A0538 24040125 */ li $a0, 293 /* 0A113C 800A053C 2405001C */ li $a1, 28 /* 0A1140 800A0540 00003825 */ move $a3, $zero /* 0A1144 800A0544 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A1148 800A0548 0C024DAE */ jal func_800936B8 +/* 0A1148 800A0548 0C024DAE */ jal print_text1_left /* 0A114C 800A054C E7A00014 */ swc1 $f0, 0x14($sp) /* 0A1150 800A0550 100000DD */ b .L800A08C8 /* 0A1154 800A0554 8FBF0034 */ lw $ra, 0x34($sp) @@ -1216,7 +1216,7 @@ glabel L800A0578 /* 0A11A8 800A05A8 8E27001C */ lw $a3, 0x1c($s1) /* 0A11AC 800A05AC 8CC67500 */ lw $a2, %lo(gCupNames)($a2) /* 0A11B0 800A05B0 E7A80014 */ swc1 $f8, 0x14($sp) -/* 0A11B4 800A05B4 0C024DAE */ jal func_800936B8 +/* 0A11B4 800A05B4 0C024DAE */ jal print_text1_left /* 0A11B8 800A05B8 E7AA0010 */ swc1 $f10, 0x10($sp) /* 0A11BC 800A05BC 100000C2 */ b .L800A08C8 /* 0A11C0 800A05C0 8FBF0034 */ lw $ra, 0x34($sp) @@ -1236,7 +1236,7 @@ glabel L800A05C4 /* 0A11F4 800A05F4 8E27001C */ lw $a3, 0x1c($s1) /* 0A11F8 800A05F8 8CC67524 */ lw $a2, %lo(gCourseNames)($a2) /* 0A11FC 800A05FC E7B20014 */ swc1 $f18, 0x14($sp) -/* 0A1200 800A0600 0C024CC9 */ jal func_80093324 +/* 0A1200 800A0600 0C024CC9 */ jal print_text_mode_1 /* 0A1204 800A0604 E7B00010 */ swc1 $f16, 0x10($sp) /* 0A1208 800A0608 100000AF */ b .L800A08C8 /* 0A120C 800A060C 8FBF0034 */ lw $ra, 0x34($sp) @@ -1299,7 +1299,7 @@ glabel L800A0694 /* 0A12D0 800A06D0 8E040000 */ lw $a0, ($s0) /* 0A12D4 800A06D4 00402825 */ move $a1, $v0 /* 0A12D8 800A06D8 8E26000C */ lw $a2, 0xc($s1) -/* 0A12DC 800A06DC 0C026E9D */ jal func_8009BA74 +/* 0A12DC 800A06DC 0C026E9D */ jal render_menu_textures /* 0A12E0 800A06E0 8E270010 */ lw $a3, 0x10($s1) /* 0A12E4 800A06E4 AE020000 */ sw $v0, ($s0) /* 0A12E8 800A06E8 8E2E001C */ lw $t6, 0x1c($s1) @@ -1311,12 +1311,12 @@ 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) glabel L800A071C -/* 0A131C 800A071C 0C028F21 */ jal func_800A3C84 +/* 0A131C 800A071C 0C028F21 */ jal time_trials_finish_text_render /* 0A1320 800A0720 02202025 */ move $a0, $s1 /* 0A1324 800A0724 10000068 */ b .L800A08C8 /* 0A1328 800A0728 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) @@ -1375,7 +1375,7 @@ glabel L800A07CC /* 0A13D0 800A07D0 24A54638 */ addiu $a1, %lo(D_02004638) # addiu $a1, $a1, 0x4638 /* 0A13D4 800A07D4 8E040000 */ lw $a0, ($s0) /* 0A13D8 800A07D8 8E26000C */ lw $a2, 0xc($s1) -/* 0A13DC 800A07DC 0C026E9D */ jal func_8009BA74 +/* 0A13DC 800A07DC 0C026E9D */ jal render_menu_textures /* 0A13E0 800A07E0 8E270010 */ lw $a3, 0x10($s1) /* 0A13E4 800A07E4 10000037 */ b .L800A08C4 /* 0A13E8 800A07E8 AE020000 */ sw $v0, ($s0) @@ -1426,7 +1426,7 @@ glabel L800A084C /* 0A1480 800A0880 8E040000 */ lw $a0, ($s0) /* 0A1484 800A0884 00402825 */ move $a1, $v0 /* 0A1488 800A0888 8E26000C */ lw $a2, 0xc($s1) -/* 0A148C 800A088C 0C026E9D */ jal func_8009BA74 +/* 0A148C 800A088C 0C026E9D */ jal render_menu_textures /* 0A1490 800A0890 8E270010 */ lw $a3, 0x10($s1) /* 0A1494 800A0894 AE020000 */ sw $v0, ($s0) /* 0A1498 800A0898 8E29001C */ lw $t1, 0x1c($s1) @@ -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/asm/non_matchings/menus/main_menu_act.s b/asm/non_matchings/menus/main_menu_act.s index aaf78962e..482b91605 100644 --- a/asm/non_matchings/menus/main_menu_act.s +++ b/asm/non_matchings/menus/main_menu_act.s @@ -29,13 +29,13 @@ glabel main_menu_act .L800B2A24: /* 0B3624 800B2A24 A7A3002E */ sh $v1, 0x2e($sp) .L800B2A28: -/* 0B3628 800B2A28 0C02D148 */ jal func_800B4520 +/* 0B3628 800B2A28 0C02D148 */ jal is_screen_being_faded /* 0B362C 800B2A2C A7A50036 */ sh $a1, 0x36($sp) /* 0B3630 800B2A30 97A3002E */ lhu $v1, 0x2e($sp) /* 0B3634 800B2A34 144002A8 */ bnez $v0, .L800B34D8 /* 0B3638 800B2A38 97A50036 */ lhu $a1, 0x36($sp) -/* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B3644 800B2A44 910C0000 */ lbu $t4, ($t0) /* 0B3648 800B2A48 3C188019 */ lui $t8, %hi(gPlayerCount) # 0x8019 /* 0B364C 800B2A4C 2D810009 */ sltiu $at, $t4, 9 @@ -49,10 +49,10 @@ glabel main_menu_act glabel L800B2A6C # case 0 /* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 /* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) -/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3678 800B2A78 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5 -/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) +/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7) /* 0B3684 800B2A84 000D7080 */ sll $t6, $t5, 2 /* 0B3688 800B2A88 01CD7023 */ subu $t6, $t6, $t5 /* 0B368C 800B2A8C 000E7080 */ sll $t6, $t6, 2 @@ -72,13 +72,13 @@ glabel L800B2AA4 # case 3 /* 0B36C0 800B2AC0 244A0001 */ addiu $t2, $v0, 1 /* 0B36C4 800B2AC4 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019 /* 0B36C8 800B2AC8 A02AEDF3 */ sb $t2, %lo(gPlayerCount)($at) -/* 0B36CC 800B2ACC 0C02D12B */ jal func_800B44AC +/* 0B36CC 800B2ACC 0C02D12B */ jal reset_cycle_flash_menu /* 0B36D0 800B2AD0 AFA3001C */ sw $v1, 0x1c($sp) /* 0B36D4 800B2AD4 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B36D8 800B2AD8 0C032384 */ jal play_sound2 /* 0B36DC 800B2ADC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B36E0 800B2AE0 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B36E0 800B2AE0 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B36E8 800B2AE8 8FA6001C */ lw $a2, 0x1c($sp) .L800B2AEC: /* 0B36EC 800B2AEC 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 @@ -90,14 +90,14 @@ glabel L800B2AA4 # case 3 /* 0B3704 800B2B04 244CFFFF */ addiu $t4, $v0, -1 /* 0B3708 800B2B08 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019 /* 0B370C 800B2B0C A02CEDF3 */ sb $t4, %lo(gPlayerCount)($at) -/* 0B3710 800B2B10 0C02D12B */ jal func_800B44AC +/* 0B3710 800B2B10 0C02D12B */ jal reset_cycle_flash_menu /* 0B3714 800B2B14 AFA6001C */ sw $a2, 0x1c($sp) /* 0B3718 800B2B18 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B371C 800B2B1C 0C032384 */ jal play_sound2 /* 0B3720 800B2B20 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 /* 0B3724 800B2B24 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 -/* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B3730 800B2B30 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3734 800B2B34 8FA6001C */ lw $a2, 0x1c($sp) .L800B2B38: @@ -137,17 +137,17 @@ glabel L800B2AA4 # case 3 /* 0B37A8 800B2BA8 0C0328CC */ jal func_800CA330 /* 0B37AC 800B2BAC 24040019 */ li $a0, 25 /* 0B37B0 800B2BB0 24070001 */ li $a3, 1 -/* 0B37B4 800B2BB4 3C018019 */ lui $at, %hi(D_8018EDE0) # $at, 0x8019 +/* 0B37B4 800B2BB4 3C018019 */ lui $at, %hi(gMenuFadeType) # $at, 0x8019 /* 0B37B8 800B2BB8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(D_8018EDE0)($at) +/* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(gMenuFadeType)($at) /* 0B37C0 800B2BC0 0C032384 */ jal play_sound2 /* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 /* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) -/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f +/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7 -/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) +/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8) /* 0B37E0 800B2BE0 000F7080 */ sll $t6, $t7, 2 /* 0B37E4 800B2BE4 01CF7023 */ subu $t6, $t6, $t7 /* 0B37E8 800B2BE8 000E7080 */ sll $t6, $t6, 2 @@ -160,17 +160,17 @@ glabel L800B2AA4 # case 3 /* 0B3800 800B2C00 11400015 */ beqz $t2, .L800B2C58 /* 0B3804 800B2C04 30D90020 */ andi $t9, $a2, 0x20 /* 0B3808 800B2C08 240B0004 */ li $t3, 4 -/* 0B380C 800B2C0C 0C02D12B */ jal func_800B44AC +/* 0B380C 800B2C0C 0C02D12B */ jal reset_cycle_flash_menu /* 0B3810 800B2C10 A10B0000 */ sb $t3, ($t0) /* 0B3814 800B2C14 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 /* 0B3818 800B2C18 0C032384 */ jal play_sound2 /* 0B381C 800B2C1C 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019 /* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4) -/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4 -/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) +/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7) /* 0B3838 800B2C38 000C6880 */ sll $t5, $t4, 2 /* 0B383C 800B2C3C 01AC6823 */ subu $t5, $t5, $t4 /* 0B3840 800B2C40 000D6880 */ sll $t5, $t5, 2 @@ -189,10 +189,10 @@ glabel L800B2AA4 # case 3 /* 0B3870 800B2C70 34849010 */ ori $a0, (0x49009010 & 0xFFFF) # ori $a0, $a0, 0x9010 /* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 /* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1) -/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f +/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3880 800B2C80 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1 -/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) +/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3) /* 0B388C 800B2C8C 00095080 */ sll $t2, $t1, 2 /* 0B3890 800B2C90 01495023 */ subu $t2, $t2, $t1 /* 0B3894 800B2C94 000A5080 */ sll $t2, $t2, 2 @@ -212,10 +212,10 @@ glabel L800B2AA4 # case 3 /* 0B38C8 800B2CC8 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011 /* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019 /* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6) -/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f +/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6 -/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1) +/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((gGameModeMenuColumn - 1))($t1) # -0x7955($t1) /* 0B38E4 800B2CE4 000EC880 */ sll $t9, $t6, 2 /* 0B38E8 800B2CE8 032EC823 */ subu $t9, $t9, $t6 /* 0B38EC 800B2CEC 0019C880 */ sll $t9, $t9, 2 @@ -225,9 +225,9 @@ glabel L800B2AA4 # case 3 /* 0B38FC 800B2CFC 100001F4 */ b .L800B34D0 /* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1) .L800B2D04: -/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3908 800B2D08 01E27821 */ addu $t7, $t7, $v0 -/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) +/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7) /* 0B3910 800B2D10 01826023 */ subu $t4, $t4, $v0 /* 0B3914 800B2D14 000C6080 */ sll $t4, $t4, 2 /* 0B3918 800B2D18 000F6880 */ sll $t5, $t7, 2 @@ -242,8 +242,8 @@ glabel L800B2D30 # case 4 /* 0B3938 800B2D38 00603025 */ move $a2, $v1 /* 0B393C 800B2D3C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(D_800E86AC) # $t1, 0x800f -/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(D_800E86AC) # addiu $t1, $t1, -0x7954 +/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(gGameModeMenuColumn) # $t1, 0x800f +/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(gGameModeMenuColumn) # addiu $t1, $t1, -0x7954 /* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((gPlayerModeSelection - 1)) # 0x800f /* 0B3950 800B2D50 0322C821 */ addu $t9, $t9, $v0 /* 0B3954 800B2D54 00491821 */ addu $v1, $v0, $t1 @@ -254,13 +254,13 @@ glabel L800B2D30 # case 4 /* 0B3968 800B2D68 5020000B */ beql $at, $zero, .L800B2D98 /* 0B396C 800B2D6C 30CA0800 */ andi $t2, $a2, 0x800 /* 0B3970 800B2D70 A06BFFFF */ sb $t3, -1($v1) -/* 0B3974 800B2D74 0C02D12B */ jal func_800B44AC +/* 0B3974 800B2D74 0C02D12B */ jal reset_cycle_flash_menu /* 0B3978 800B2D78 AFA6001C */ sw $a2, 0x1c($sp) /* 0B397C 800B2D7C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B3980 800B2D80 0C032384 */ jal play_sound2 /* 0B3984 800B2D84 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3988 800B2D88 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B398C 800B2D8C 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B3988 800B2D88 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B398C 800B2D8C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B3990 800B2D90 8FA6001C */ lw $a2, 0x1c($sp) .L800B2D94: /* 0B3994 800B2D94 30CA0800 */ andi $t2, $a2, 0x800 @@ -268,37 +268,37 @@ glabel L800B2D30 # case 4 /* 0B3998 800B2D98 11400011 */ beqz $t2, .L800B2DE0 /* 0B399C 800B2D9C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 /* 0B39A0 800B2DA0 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) -/* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(D_800E86AC) # $t4, 0x800f -/* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(D_800E86AC) # addiu $t4, $t4, -0x7954 +/* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(gGameModeMenuColumn) # $t4, 0x800f +/* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(gGameModeMenuColumn) # addiu $t4, $t4, -0x7954 /* 0B39AC 800B2DAC 01EC1821 */ addu $v1, $t7, $t4 /* 0B39B0 800B2DB0 8064FFFF */ lb $a0, -1($v1) /* 0B39B4 800B2DB4 1880000A */ blez $a0, .L800B2DE0 /* 0B39B8 800B2DB8 248DFFFF */ addiu $t5, $a0, -1 /* 0B39BC 800B2DBC A06DFFFF */ sb $t5, -1($v1) -/* 0B39C0 800B2DC0 0C02D12B */ jal func_800B44AC +/* 0B39C0 800B2DC0 0C02D12B */ jal reset_cycle_flash_menu /* 0B39C4 800B2DC4 AFA6001C */ sw $a2, 0x1c($sp) /* 0B39C8 800B2DC8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B39CC 800B2DCC 0C032384 */ jal play_sound2 /* 0B39D0 800B2DD0 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B39D4 800B2DD4 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B39D8 800B2DD8 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B39D4 800B2DD4 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B39D8 800B2DD8 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B39DC 800B2DDC 8FA6001C */ lw $a2, 0x1c($sp) .L800B2DE0: /* 0B39E0 800B2DE0 30D84000 */ andi $t8, $a2, 0x4000 /* 0B39E4 800B2DE4 13000015 */ beqz $t8, .L800B2E3C /* 0B39E8 800B2DE8 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B39EC 800B2DEC 24040003 */ li $a0, 3 -/* 0B39F0 800B2DF0 0C02D12B */ jal func_800B44AC +/* 0B39F0 800B2DF0 0C02D12B */ jal reset_cycle_flash_menu /* 0B39F4 800B2DF4 A1040000 */ sb $a0, ($t0) /* 0B39F8 800B2DF8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B39FC 800B2DFC 0C032384 */ jal play_sound2 /* 0B3A00 800B2E00 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019 /* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6) -/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6 -/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9) +/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9) /* 0B3A1C 800B2E1C 000E4880 */ sll $t1, $t6, 2 /* 0B3A20 800B2E20 012E4823 */ subu $t1, $t1, $t6 /* 0B3A24 800B2E24 00094880 */ sll $t1, $t1, 2 @@ -309,11 +309,11 @@ glabel L800B2D30 # case 4 /* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1) .L800B2E3C: /* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3A44 800B2E44 30CF8000 */ andi $t7, $a2, 0x8000 /* 0B3A48 800B2E48 00822021 */ addu $a0, $a0, $v0 /* 0B3A4C 800B2E4C 11E0003F */ beqz $t7, .L800B2F4C -/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) +/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0) /* 0B3A54 800B2E54 00026080 */ sll $t4, $v0, 2 /* 0B3A58 800B2E58 01826023 */ subu $t4, $t4, $v0 /* 0B3A5C 800B2E5C 000C6080 */ sll $t4, $t4, 2 @@ -363,14 +363,14 @@ glabel L800B2D30 # case 4 /* 0B3AFC 800B2EFC 0C032384 */ jal play_sound2 /* 0B3B00 800B2F00 3484900D */ ori $a0, (0x4900900D & 0xFFFF) # ori $a0, $a0, 0x900d .L800B2F04: -/* 0B3B04 800B2F04 0C02D12B */ jal func_800B44AC +/* 0B3B04 800B2F04 0C02D12B */ jal reset_cycle_flash_menu /* 0B3B08 800B2F08 00000000 */ nop /* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 /* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) -/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7 -/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5) +/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5) /* 0B3B24 800B2F24 000F6080 */ sll $t4, $t7, 2 /* 0B3B28 800B2F28 018F6023 */ subu $t4, $t4, $t7 /* 0B3B2C 800B2F2C 000C6080 */ sll $t4, $t4, 2 @@ -409,10 +409,10 @@ glabel L800B2F70 # case 5, 8 /* 0B3BA8 800B2FA8 00000000 */ nop .L800B2FAC: /* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0 -/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) +/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8) /* 0B3BC0 800B2FC0 00026080 */ sll $t4, $v0, 2 /* 0B3BC4 800B2FC4 01826023 */ subu $t4, $t4, $v0 /* 0B3BC8 800B2FC8 000C6080 */ sll $t4, $t4, 2 @@ -433,13 +433,13 @@ glabel L800B2F70 # case 5, 8 .L800B3000: /* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f -/* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(D_800E86B0) # $t7, 0x800f +/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f +/* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(gGameModeSubMenuColumn) # $t7, 0x800f /* 0B3C10 800B3010 01625821 */ addu $t3, $t3, $v0 -/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) +/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3) /* 0B3C18 800B3018 00024880 */ sll $t1, $v0, 2 /* 0B3C1C 800B301C 01224823 */ subu $t1, $t1, $v0 -/* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(D_800E86B0) # addiu $t7, $t7, -0x7950 +/* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(gGameModeSubMenuColumn) # addiu $t7, $t7, -0x7950 /* 0B3C24 800B3024 012B5021 */ addu $t2, $t1, $t3 /* 0B3C28 800B3028 014F1821 */ addu $v1, $t2, $t7 /* 0B3C2C 800B302C 8064FFFD */ lb $a0, -3($v1) @@ -450,7 +450,7 @@ glabel L800B2F70 # case 5, 8 /* 0B3C40 800B3040 2498FFFF */ addiu $t8, $a0, -1 /* 0B3C44 800B3044 A078FFFD */ sb $t8, -3($v1) /* 0B3C48 800B3048 AFA40028 */ sw $a0, 0x28($sp) -/* 0B3C4C 800B304C 0C02D12B */ jal func_800B44AC +/* 0B3C4C 800B304C 0C02D12B */ jal reset_cycle_flash_menu /* 0B3C50 800B3050 AFA6001C */ sw $a2, 0x1c($sp) /* 0B3C54 800B3054 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B3C58 800B3058 0C032384 */ jal play_sound2 @@ -471,15 +471,15 @@ glabel L800B2F70 # case 5, 8 /* 0B3C90 800B3090 8FA6001C */ lw $a2, 0x1c($sp) /* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f -/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((gGameModePlayerColumnExtra - 3)) # 0x800f +/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f +/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((sGameModePlayerColumnExtra - 3)) # 0x800f /* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0 -/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) +/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0) /* 0B3CAC 800B30AC 00027080 */ sll $t6, $v0, 2 /* 0B3CB0 800B30B0 01C27023 */ subu $t6, $t6, $v0 /* 0B3CB4 800B30B4 01C4C821 */ addu $t9, $t6, $a0 /* 0B3CB8 800B30B8 01394821 */ addu $t1, $t1, $t9 -/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((gGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1) +/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((sGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1) /* 0B3CC0 800B30C0 00A9082A */ slt $at, $a1, $t1 /* 0B3CC4 800B30C4 10200012 */ beqz $at, .L800B3110 /* 0B3CC8 800B30C8 00000000 */ nop @@ -488,15 +488,15 @@ glabel L800B2F70 # case 5, 8 .L800B30D4: /* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f -/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((gGameModePlayerColumnDefault - 3)) # 0x800f +/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f +/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((sGameModePlayerColumnDefault - 3)) # 0x800f /* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0 -/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) +/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0) /* 0B3CEC 800B30EC 00025880 */ sll $t3, $v0, 2 /* 0B3CF0 800B30F0 01625823 */ subu $t3, $t3, $v0 /* 0B3CF4 800B30F4 01645021 */ addu $t2, $t3, $a0 /* 0B3CF8 800B30F8 01EA7821 */ addu $t7, $t7, $t2 -/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((gGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7) +/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((sGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7) /* 0B3D00 800B3100 00AF082A */ slt $at, $a1, $t7 /* 0B3D04 800B3104 10200002 */ beqz $at, .L800B3110 /* 0B3D08 800B3108 00000000 */ nop @@ -505,14 +505,14 @@ glabel L800B2F70 # case 5, 8 /* 0B3D10 800B3110 1060000F */ beqz $v1, .L800B3150 /* 0B3D14 800B3114 00026880 */ sll $t5, $v0, 2 /* 0B3D18 800B3118 01A26823 */ subu $t5, $t5, $v0 -/* 0B3D1C 800B311C 3C0C800F */ lui $t4, %hi(D_800E86B0) # $t4, 0x800f -/* 0B3D20 800B3120 258C86B0 */ addiu $t4, %lo(D_800E86B0) # addiu $t4, $t4, -0x7950 +/* 0B3D1C 800B311C 3C0C800F */ lui $t4, %hi(gGameModeSubMenuColumn) # $t4, 0x800f +/* 0B3D20 800B3120 258C86B0 */ addiu $t4, %lo(gGameModeSubMenuColumn) # addiu $t4, $t4, -0x7950 /* 0B3D24 800B3124 01A4C021 */ addu $t8, $t5, $a0 /* 0B3D28 800B3128 030C1821 */ addu $v1, $t8, $t4 /* 0B3D2C 800B312C 806EFFFD */ lb $t6, -3($v1) /* 0B3D30 800B3130 AFA6001C */ sw $a2, 0x1c($sp) /* 0B3D34 800B3134 25D90001 */ addiu $t9, $t6, 1 -/* 0B3D38 800B3138 0C02D12B */ jal func_800B44AC +/* 0B3D38 800B3138 0C02D12B */ jal reset_cycle_flash_menu /* 0B3D3C 800B313C A079FFFD */ sb $t9, -3($v1) /* 0B3D40 800B3140 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B3D44 800B3144 0C032384 */ jal play_sound2 @@ -521,31 +521,31 @@ glabel L800B2F70 # case 5, 8 .L800B3150: /* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f -/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((D_800E86B0 - 3)) # 0x800f +/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f +/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((gGameModeSubMenuColumn - 3)) # 0x800f /* 0B3D60 800B3160 00822021 */ addu $a0, $a0, $v0 -/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) +/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0) /* 0B3D68 800B3168 00024880 */ sll $t1, $v0, 2 /* 0B3D6C 800B316C 01224823 */ subu $t1, $t1, $v0 /* 0B3D70 800B3170 01245821 */ addu $t3, $t1, $a0 -/* 0B3D74 800B3174 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 +/* 0B3D74 800B3174 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 /* 0B3D78 800B3178 00AB2821 */ addu $a1, $a1, $t3 /* 0B3D7C 800B317C 30CA4000 */ andi $t2, $a2, 0x4000 -/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B3D84 800B3184 11400015 */ beqz $t2, .L800B31DC -/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((D_800E86B0 - 3))($a1) # -0x7953($a1) +/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((gGameModeSubMenuColumn - 3))($a1) # -0x7953($a1) /* 0B3D8C 800B318C 240F0004 */ li $t7, 4 -/* 0B3D90 800B3190 0C02D12B */ jal func_800B44AC +/* 0B3D90 800B3190 0C02D12B */ jal reset_cycle_flash_menu /* 0B3D94 800B3194 A10F0000 */ sb $t7, ($t0) /* 0B3D98 800B3198 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B3D9C 800B319C 0C032384 */ jal play_sound2 /* 0B3DA0 800B31A0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 /* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) -/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5 -/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4) +/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4) /* 0B3DBC 800B31BC 000DC080 */ sll $t8, $t5, 2 /* 0B3DC0 800B31C0 030DC023 */ subu $t8, $t8, $t5 /* 0B3DC4 800B31C4 0018C080 */ sll $t8, $t8, 2 @@ -558,16 +558,16 @@ glabel L800B2F70 # case 5, 8 /* 0B3DDC 800B31DC 30C98000 */ andi $t1, $a2, 0x8000 /* 0B3DE0 800B31E0 1120002C */ beqz $t1, .L800B3294 /* 0B3DE4 800B31E4 0002C880 */ sll $t9, $v0, 2 -/* 0B3DE8 800B31E8 0C02D12B */ jal func_800B44AC +/* 0B3DE8 800B31E8 0C02D12B */ jal reset_cycle_flash_menu /* 0B3DEC 800B31EC AFA50028 */ sw $a1, 0x28($sp) /* 0B3DF0 800B31F0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3DF4 800B31F4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3DF8 800B31F8 24070001 */ li $a3, 1 /* 0B3DFC 800B31FC 8FA50028 */ lw $a1, 0x28($sp) /* 0B3E00 800B3200 14E2000E */ bne $a3, $v0, .L800B323C -/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3E08 800B3208 01625821 */ addu $t3, $t3, $v0 -/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) +/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3) /* 0B3E10 800B3210 54EB000B */ bnel $a3, $t3, .L800B3240 /* 0B3E14 800B3214 240A0006 */ li $t2, 6 /* 0B3E18 800B3218 54A70009 */ bnel $a1, $a3, .L800B3240 @@ -582,9 +582,9 @@ glabel L800B2F70 # case 5, 8 .L800B323C: /* 0B3E3C 800B323C 240A0006 */ li $t2, 6 .L800B3240: -/* 0B3E40 800B3240 3C018019 */ lui $at, %hi(gMainMenuSelectionDepth) # $at, 0x8019 +/* 0B3E40 800B3240 3C018019 */ lui $at, %hi(gMainMenuSelection) # $at, 0x8019 /* 0B3E44 800B3244 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B3E48 800B3248 A02AEDED */ sb $t2, %lo(gMainMenuSelectionDepth)($at) +/* 0B3E48 800B3248 A02AEDED */ sb $t2, %lo(gMainMenuSelection)($at) /* 0B3E4C 800B324C 0C032384 */ jal play_sound2 /* 0B3E50 800B3250 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B3E54 800B3254 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019 @@ -592,10 +592,10 @@ glabel L800B2F70 # case 5, 8 .L800B325C: /* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 /* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) -/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3E68 800B3268 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7 -/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4) +/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4) /* 0B3E74 800B3274 000F6880 */ sll $t5, $t7, 2 /* 0B3E78 800B3278 01AF6823 */ subu $t5, $t5, $t7 /* 0B3E7C 800B327C 000D6880 */ sll $t5, $t5, 2 @@ -633,8 +633,8 @@ glabel L800B32B4 # case 6, 7 .L800B32F4: /* 0B3EF4 800B32F4 0C032384 */ jal play_sound2 /* 0B3EF8 800B32F8 AFA6001C */ sw $a2, 0x1c($sp) -/* 0B3EFC 800B32FC 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 -/* 0B3F00 800B3300 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 +/* 0B3EFC 800B32FC 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019 +/* 0B3F00 800B3300 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213 /* 0B3F04 800B3304 8FA6001C */ lw $a2, 0x1c($sp) .L800B3308: /* 0B3F08 800B3308 30CD4000 */ andi $t5, $a2, 0x4000 @@ -643,10 +643,10 @@ glabel L800B32B4 # case 6, 7 /* 0B3F10 800B3310 30D98000 */ andi $t9, $a2, 0x8000 /* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) -/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3F20 800B3320 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0 -/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((D_800E86AC - 1))($t6) # -0x7955($t6) +/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((gGameModeMenuColumn - 1))($t6) # -0x7955($t6) /* 0B3F2C 800B332C 0002C080 */ sll $t8, $v0, 2 /* 0B3F30 800B3330 0302C023 */ subu $t8, $t8, $v0 /* 0B3F34 800B3334 0018C080 */ sll $t8, $t8, 2 @@ -672,17 +672,17 @@ glabel L800B32B4 # case 6, 7 .L800B3380: /* 0B3F80 800B3380 A10A0000 */ sb $t2, ($t0) .L800B3384: -/* 0B3F84 800B3384 0C02D12B */ jal func_800B44AC +/* 0B3F84 800B3384 0C02D12B */ jal reset_cycle_flash_menu /* 0B3F88 800B3388 00000000 */ nop /* 0B3F8C 800B338C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B3F90 800B3390 0C032384 */ jal play_sound2 /* 0B3F94 800B3394 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 /* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) -/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7 -/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5) +/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5) /* 0B3FB0 800B33B0 000F6080 */ sll $t4, $t7, 2 /* 0B3FB4 800B33B4 018F6023 */ subu $t4, $t4, $t7 /* 0B3FB8 800B33B8 000C6080 */ sll $t4, $t4, 2 @@ -701,14 +701,14 @@ glabel L800B32B4 # case 6, 7 /* 0B3FE8 800B33E8 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900 /* 0B3FEC 800B33EC 0C032384 */ jal play_sound2 /* 0B3FF0 800B33F0 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016 -/* 0B3FF4 800B33F4 0C02CA32 */ jal func_800B28C8 +/* 0B3FF4 800B33F4 0C02CA32 */ jal setup_game_mode_selected /* 0B3FF8 800B33F8 00000000 */ nop /* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 /* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1) -/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((D_800E86AC - 1)) # 0x800f +/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B4008 800B3408 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1 -/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((D_800E86AC - 1))($t2) # -0x7955($t2) +/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((gGameModeMenuColumn - 1))($t2) # -0x7955($t2) /* 0B4014 800B3414 00095880 */ sll $t3, $t1, 2 /* 0B4018 800B3418 01695823 */ subu $t3, $t3, $t1 /* 0B401C 800B341C 000B5880 */ sll $t3, $t3, 2 @@ -719,10 +719,10 @@ glabel L800B32B4 # case 6, 7 /* 0B4030 800B3430 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1) .L800B3434: /* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4) -/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f +/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B403C 800B343C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4 -/* 0B4044 800B3444 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) +/* 0B4044 800B3444 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8) /* 0B4048 800B3448 000C7080 */ sll $t6, $t4, 2 /* 0B404C 800B344C 01CC7023 */ subu $t6, $t6, $t4 /* 0B4050 800B3450 000E7080 */ sll $t6, $t6, 2 @@ -734,10 +734,10 @@ glabel L800B32B4 # case 6, 7 glabel L800B3468 # case 1, 2 /* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019 /* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2) -/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f +/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B4074 800B3474 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2 -/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) +/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7) /* 0B4080 800B3480 000A5880 */ sll $t3, $t2, 2 /* 0B4084 800B3484 016A5823 */ subu $t3, $t3, $t2 /* 0B4088 800B3488 000B5880 */ sll $t3, $t3, 2 @@ -748,10 +748,10 @@ glabel L800B3468 # case 1, 2 /* 0B409C 800B349C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1) .L800B34A0: # default /* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(gPlayerCount)($t8) # -0x120d($t8) -/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f +/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f /* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f /* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8 -/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9) +/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9) /* 0B40B4 800B34B4 00187080 */ sll $t6, $t8, 2 /* 0B40B8 800B34B8 01D87023 */ subu $t6, $t6, $t8 /* 0B40BC 800B34BC 000E7080 */ sll $t6, $t6, 2 diff --git a/asm/non_matchings/menus/player_select_menu_act.s b/asm/non_matchings/menus/player_select_menu_act.s index 6684b4a0d..7adc12d10 100644 --- a/asm/non_matchings/menus/player_select_menu_act.s +++ b/asm/non_matchings/menus/player_select_menu_act.s @@ -18,12 +18,12 @@ glabel player_select_menu_act /* 0B4194 800B3594 3069FFFF */ andi $t1, $v1, 0xffff /* 0B4198 800B3598 01201825 */ move $v1, $t1 .L800B359C: -/* 0B419C 800B359C 0C02D148 */ jal func_800B4520 +/* 0B419C 800B359C 0C02D148 */ jal is_screen_being_faded /* 0B41A0 800B35A0 A7A30036 */ sh $v1, 0x36($sp) /* 0B41A4 800B35A4 14400167 */ bnez $v0, .L800B3B44 /* 0B41A8 800B35A8 97A30036 */ lhu $v1, 0x36($sp) -/* 0B41AC 800B35AC 3C028019 */ lui $v0, %hi(D_8018EDEE) # $v0, 0x8019 -/* 0B41B0 800B35B0 8042EDEE */ lb $v0, %lo(D_8018EDEE)($v0) +/* 0B41AC 800B35AC 3C028019 */ lui $v0, %hi(gPlayerSelectMenuSelection) # $v0, 0x8019 +/* 0B41B0 800B35B0 8042EDEE */ lb $v0, %lo(gPlayerSelectMenuSelection)($v0) /* 0B41B4 800B35B4 24010001 */ li $at, 1 /* 0B41B8 800B35B8 97AB0046 */ lhu $t3, 0x46($sp) /* 0B41BC 800B35BC 1041000A */ beq $v0, $at, .L800B35E8 @@ -59,8 +59,8 @@ glabel player_select_menu_act .L800B3630: /* 0B4230 800B3630 13000014 */ beqz $t8, .L800B3684 /* 0B4234 800B3634 97B90046 */ lhu $t9, 0x46($sp) -/* 0B4238 800B3638 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019 -/* 0B423C 800B363C 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218 +/* 0B4238 800B3638 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019 +/* 0B423C 800B363C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218 /* 0B4240 800B3640 00793821 */ addu $a3, $v1, $t9 /* 0B4244 800B3644 80E80000 */ lb $t0, ($a3) /* 0B4248 800B3648 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 @@ -81,14 +81,14 @@ glabel player_select_menu_act /* 0B4280 800B3680 8FA6002C */ lw $a2, 0x2c($sp) .L800B3684: /* 0B4284 800B3684 97A90046 */ lhu $t1, 0x46($sp) -/* 0B4288 800B3688 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019 -/* 0B428C 800B368C 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218 +/* 0B4288 800B3688 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019 +/* 0B428C 800B368C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218 /* 0B4290 800B3690 30CA8000 */ andi $t2, $a2, 0x8000 /* 0B4294 800B3694 11400017 */ beqz $t2, .L800B36F4 /* 0B4298 800B3698 00693821 */ addu $a3, $v1, $t1 /* 0B429C 800B369C 80EB0000 */ lb $t3, ($a3) /* 0B42A0 800B36A0 240C0001 */ li $t4, 1 -/* 0B42A4 800B36A4 3C05800F */ lui $a1, %hi((D_800F2BAC - 1)) # 0x800f +/* 0B42A4 800B36A4 3C05800F */ lui $a1, %hi((sCharacterGridOrder - 1)) # 0x800f /* 0B42A8 800B36A8 55600013 */ bnel $t3, $zero, .L800B36F8 /* 0B42AC 800B36AC 00002025 */ move $a0, $zero /* 0B42B0 800B36B0 8FAD0028 */ lw $t5, 0x28($sp) @@ -98,14 +98,14 @@ glabel player_select_menu_act /* 0B42C0 800B36C0 3421800E */ ori $at, (0x2900800E & 0xFFFF) # ori $at, $at, 0x800e /* 0B42C4 800B36C4 AFA70020 */ sw $a3, 0x20($sp) /* 0B42C8 800B36C8 00AE2821 */ addu $a1, $a1, $t6 -/* 0B42CC 800B36CC 80A52BAB */ lb $a1, %lo((D_800F2BAC - 1))($a1) # 0x2bab($a1) +/* 0B42CC 800B36CC 80A52BAB */ lb $a1, %lo((sCharacterGridOrder - 1))($a1) # 0x2bab($a1) /* 0B42D0 800B36D0 AFA6002C */ sw $a2, 0x2c($sp) /* 0B42D4 800B36D4 93A40047 */ lbu $a0, 0x47($sp) /* 0B42D8 800B36D8 00057900 */ sll $t7, $a1, 4 /* 0B42DC 800B36DC 0C03243D */ jal func_800C90F4 /* 0B42E0 800B36E0 01E12821 */ addu $a1, $t7, $at -/* 0B42E4 800B36E4 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019 -/* 0B42E8 800B36E8 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218 +/* 0B42E4 800B36E4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019 +/* 0B42E8 800B36E8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218 /* 0B42EC 800B36EC 8FA6002C */ lw $a2, 0x2c($sp) /* 0B42F0 800B36F0 8FA70020 */ lw $a3, 0x20($sp) .L800B36F4: @@ -133,10 +133,10 @@ glabel player_select_menu_act .L800B3738: /* 0B4338 800B3738 1480000B */ bnez $a0, .L800B3768 /* 0B433C 800B373C 240C0002 */ li $t4, 2 -/* 0B4340 800B3740 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019 -/* 0B4344 800B3744 A02CEDEE */ sb $t4, %lo(D_8018EDEE)($at) +/* 0B4340 800B3740 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019 +/* 0B4344 800B3744 A02CEDEE */ sb $t4, %lo(gPlayerSelectMenuSelection)($at) /* 0B4348 800B3748 AFA6002C */ sw $a2, 0x2c($sp) -/* 0B434C 800B374C 0C02D12B */ jal func_800B44AC +/* 0B434C 800B374C 0C02D12B */ jal reset_cycle_flash_menu /* 0B4350 800B3750 AFA70020 */ sw $a3, 0x20($sp) /* 0B4354 800B3754 3C038019 */ lui $v1, %hi(gMenuTimingCounter) # $v1, 0x8019 /* 0B4358 800B3758 2463EE00 */ addiu $v1, %lo(gMenuTimingCounter) # addiu $v1, $v1, -0x1200 @@ -375,11 +375,11 @@ glabel player_select_menu_act /* 0B46A8 800B3AA8 11A00011 */ beqz $t5, .L800B3AF0 /* 0B46AC 800B3AAC 30C88000 */ andi $t0, $a2, 0x8000 /* 0B46B0 800B3AB0 97AF0046 */ lhu $t7, 0x46($sp) -/* 0B46B4 800B3AB4 3C038019 */ lui $v1, %hi(D_8018EDE8) # $v1, 0x8019 -/* 0B46B8 800B3AB8 2463EDE8 */ addiu $v1, %lo(D_8018EDE8) # addiu $v1, $v1, -0x1218 +/* 0B46B4 800B3AB4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019 +/* 0B46B8 800B3AB8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218 /* 0B46BC 800B3ABC 240E0001 */ li $t6, 1 -/* 0B46C0 800B3AC0 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019 -/* 0B46C4 800B3AC4 A02EEDEE */ sb $t6, %lo(D_8018EDEE)($at) +/* 0B46C0 800B3AC0 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019 +/* 0B46C4 800B3AC4 A02EEDEE */ sb $t6, %lo(gPlayerSelectMenuSelection)($at) /* 0B46C8 800B3AC8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B46CC 800B3ACC 006FC021 */ addu $t8, $v1, $t7 /* 0B46D0 800B3AD0 A3000000 */ sb $zero, ($t8) @@ -407,10 +407,10 @@ glabel player_select_menu_act /* 0B4720 800B3B20 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1) .L800B3B24: /* 0B4724 800B3B24 10600007 */ beqz $v1, .L800B3B44 -/* 0B4728 800B3B28 3C0A800F */ lui $t2, %hi((D_800F2BAC - 1)) # 0x800f +/* 0B4728 800B3B28 3C0A800F */ lui $t2, %hi((sCharacterGridOrder - 1)) # 0x800f /* 0B472C 800B3B2C 97AB0046 */ lhu $t3, 0x46($sp) /* 0B4730 800B3B30 01435021 */ addu $t2, $t2, $v1 -/* 0B4734 800B3B34 814A2BAB */ lb $t2, %lo((D_800F2BAC - 1))($t2) # 0x2bab($t2) +/* 0B4734 800B3B34 814A2BAB */ lb $t2, %lo((sCharacterGridOrder - 1))($t2) # 0x2bab($t2) /* 0B4738 800B3B38 3C01800F */ lui $at, %hi(gCharacterSelections) # 0x800f /* 0B473C 800B3B3C 002B0821 */ addu $at, $at, $t3 /* 0B4740 800B3B40 A02A86A8 */ sb $t2, %lo(gCharacterSelections)($at) # -0x7958($at) diff --git a/asm/non_matchings/render_objects/func_8004C6FC.s b/asm/non_matchings/render_objects/func_8004C6FC.s index e26f8868e..1801f4b4c 100644 --- a/asm/non_matchings/render_objects/func_8004C6FC.s +++ b/asm/non_matchings/render_objects/func_8004C6FC.s @@ -1,4 +1,4 @@ -glabel func_8004C6FC +glabel render_texture_tile_rgba32_block /* 04D2FC 8004C6FC 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 04D300 8004C700 AFB10024 */ sw $s1, 0x24($sp) /* 04D304 8004C704 8FB10058 */ lw $s1, 0x58($sp) @@ -81,7 +81,7 @@ glabel func_8004C6FC /* 04D42C 8004C82C 03C02025 */ move $a0, $fp /* 04D430 8004C830 02802825 */ move $a1, $s4 /* 04D434 8004C834 02403025 */ move $a2, $s2 -/* 04D438 8004C838 0C012E54 */ jal func_8004B950 +/* 04D438 8004C838 0C012E54 */ jal render_texture_rectangle_wrap /* 04D43C 8004C83C 02003825 */ move $a3, $s0 /* 04D440 8004C840 02D11023 */ subu $v0, $s6, $s1 /* 04D444 8004C844 04410008 */ bgez $v0, .L8004C868 diff --git a/asm/non_matchings/save/func_800B68F4.s b/asm/non_matchings/save/func_800B68F4.s index f4fb10271..55079f337 100644 --- a/asm/non_matchings/save/func_800B68F4.s +++ b/asm/non_matchings/save/func_800B68F4.s @@ -1,6 +1,6 @@ glabel func_800B68F4 -/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(D_8018D9C0) # $v0, 0x8019 -/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(D_8018D9C0)($v0) +/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(gSomeDLBuffer) # $v0, 0x8019 +/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(gSomeDLBuffer)($v0) /* 0B74FC 800B68FC 000471C0 */ sll $t6, $a0, 7 /* 0B7500 800B6900 24870001 */ addiu $a3, $a0, 1 /* 0B7504 800B6904 01C21821 */ addu $v1, $t6, $v0 diff --git a/ctx_includes.c b/ctx_includes.c index defd80d04..597a4342c 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -73,7 +73,7 @@ #include "src/update_objects.h" #include "src/code_80086E70.h" #include "src/code_80091440.h" -#include "src/code_80091750.h" +#include "src/menu_items.h" #include "src/code_800AF9B0.h" #include #include diff --git a/enhancements/README.md b/enhancements/README.md deleted file mode 100644 index b86d3c8b6..000000000 --- a/enhancements/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Mario Kart 64 Enhancements - -This directory contains unofficial patches to the source code that provide various features -and enhancements. - -To apply a patch, run `tools/apply_patch.sh [patch]` where `[patch]` is the name of the -.patch file you wish to apply. This will perform all of the patch's changes -to the source code. - -Likewise, to undo the changes from a patch you applied, run -`tools/revert_patch.sh` with the name of the .patch file you wish to undo. - -To create your own enhancement patch, switch to the `master` Git -branch, make your changes to the code (but do not commit), then run `tools/create_patch.sh`. Your changes will be stored in the .patch file you specify. - -The following enhancements are included in this directory: - -## Flycam - `flycam.patch` - -This enhancement provides a flycam mode. diff --git a/enhancements/flycam.patch b/enhancements/flycam.patch deleted file mode 100644 index 8e5ebb4f2..000000000 --- a/enhancements/flycam.patch +++ /dev/null @@ -1,443 +0,0 @@ -diff --git a/mk64.ld b/mk64.ld -index 70f4820..f36f11c 100644 ---- a/mk64.ld -+++ b/mk64.ld -@@ -75,6 +75,7 @@ SECTIONS - BUILD_DIR/src/audio/seqplayer.o(.text); - BUILD_DIR/src/audio/external.o(.text); - BUILD_DIR/src/audio/port_eu.o(.text); -+ BUILD_DIR/src/flycam.o(.text); - #if DEBUG - BUILD_DIR/src/os/osCartRomInit.o(.text); - BUILD_DIR/src/debug/crash_screen_enhancement.o(.text); -@@ -229,6 +230,7 @@ SECTIONS - BUILD_DIR/src/audio/load.o(.data); - BUILD_DIR/src/audio/playback.o(.data); - BUILD_DIR/src/audio/effects.o(.data); -+ BUILD_DIR/src/flycam.o(.data); - #if DEBUG - BUILD_DIR/src/debug/crash_screen_enhancement.o(.data); - BUILD_DIR/src/debug/debug.o(.data); -@@ -277,6 +279,7 @@ SECTIONS - BUILD_DIR/src/audio/seqplayer.o(.rodata); - BUILD_DIR/src/audio/external.o(.rodata); - BUILD_DIR/src/audio/port_eu.o(.rodata); -+ BUILD_DIR/src/flycam.o(.rodata); - #if DEBUG - BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata); - BUILD_DIR/src/debug/debug.o(.rodata); -@@ -311,6 +314,7 @@ SECTIONS - BUILD_DIR/src/code_80091750.jp.o(.bss); - BUILD_DIR/src/code_800AF9B0.o(.bss); - BUILD_DIR/src/menus.o(.bss); -+ BUILD_DIR/src/flycam.o(.bss); - #if DEBUG - BUILD_DIR/src/os/osCartRomInit.o(.bss); - BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss); -diff --git a/src/camera.c b/src/camera.c -index 02275b1..406739d 100644 ---- a/src/camera.c -+++ b/src/camera.c -@@ -969,7 +969,9 @@ void func_8001EE98(Player *player, Camera *camera, s8 index) { - func_8001E8E8(camera, player, index); - break; - } -- func_8001E45C(camera, player, index); -+ -+ flycam(camera, player, index); -+ - break; - case 8: - func_8001E0C4(camera, player, index); -diff --git a/src/render_player.c b/src/render_player.c -index 6b14e27..d10796b 100644 ---- a/src/render_player.c -+++ b/src/render_player.c -@@ -65,6 +65,8 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) { - } - } - -+extern u32 isFlycam; -+ - u16 check_player_camera_collision(Player *player, Camera *camera, f32 arg2, f32 arg3) { - UNUSED f32 pad[6]; - f32 sp64; -@@ -79,6 +81,10 @@ u16 check_player_camera_collision(Player *player, Camera *camera, f32 arg2, f32 - s16 var_v0; - u16 ret; - -+ if (isFlycam) { -+ return 1; -+ } -+ - ret = 0; - switch (gActiveScreenMode) { /* irregular */ - case SCREEN_MODE_1P: -diff --git a/src/flycam.c b/src/flycam.c -new file mode 100644 -index 0000000..5569838 ---- /dev/null -+++ b/src/flycam.c -@@ -0,0 +1,328 @@ -+#include -+#include -+#include -++#include -+#include -+#include "main.h" -+#include -+#include -+#include "racing/collision.h" -+#include -+#include "player_controller.h" -+#include "code_80057C60.h" -+ -+// Yaw/pitch rotation sensitivity -+#define SENSITIVITY_X 0.0003f -+#define SENSITIVITY_Y 0.0003f -+ -+u32 isFlycam = false; -+u32 fRankIndex = 0; -+u32 fTargetPlayer = false; -+u32 fMode; // flycam mode should probably be an enum -+u32 fModeInit = false; -+ -+typedef struct { -+ Vec3f pos; -+ Vec3f lookAt; -+ Vec3s rot; -+} FlycamSaveState; -+ -+FlycamSaveState fState; -+ -+void flycam_calculate_forward_vector(Camera* camera, Vec3f forwardVector); -+void flycam_move_camera_forward(Camera* camera, struct Controller *controller, f32 distance); -+void flycam_update(Camera* camera, struct Controller *controller); -+void flycam_controller_manager(Camera *camera, struct Controller *controller, Player *player); -+void flycam_target_player(Camera *camera, u32 playerIndex); -+void flycam_move_camera_up(Camera* camera, struct Controller *controller, f32 distance); -+void flycam_save_state(Camera *camera); -+void flycam_load_state(Camera *camera); -+ -+ -+/** -+ * Controls -+ * -+ * Forward: A -+ * Backward: B -+ * -+ * Go faster: Z -+ * -+ * Up: C-up -+ * Down: C-down -+ * -+ * Targets players based on rank position -+ * -+ * Target player: R-trig -+ * Target next player: C-right -+ * Target previous player: C-left -+ * -+ * Switch camera modes: D-pad left -+ * -+ * Camera mode 1: Enter flycam at the player's position -+ * Camera mode 2: Enter flycam at previous flycam spot -+ * -+*/ -+ -+void flycam(Camera *camera, Player *player, s8 index) { -+ struct Controller *controller = &gControllers[0]; -+ Vec3f forwardVector; -+ f32 dirX; -+ f32 dirY; -+ f32 dirZ; -+ f32 length; -+ -+ if (controller->buttonPressed & L_TRIG) { -+ isFlycam = !isFlycam; -+ -+ // Don't use `bool = !bool` here as the game code can swap these on you. -+ // Which will confuse the code. This forces it to always be correct -+ if (isFlycam) { -+ player->type |= PLAYER_KART_AI; -+ } else { -+ player->type &= PLAYER_KART_AI; -+ } -+ -+ gIsHUDVisible = !isFlycam; -+ -+ if (isFlycam) { -+ -+ if (fMode && fModeInit) { -+ flycam_load_state(camera); -+ } else { -+ // !fMode or fMode not initialized -+ flycam_target_player(camera, get_player_index_for_player(player)); -+ } -+ -+ return; -+ } else { -+ if(fMode) { -+ flycam_save_state(camera); -+ } -+ } -+ } -+ -+ // Driving mode -+ if (!isFlycam) { -+ // Use normal camera code -+ func_8001E45C(camera, &gPlayers[fRankIndex], index); -+ return; -+ } -+ -+ -+ //if (player == gPlayerOne) { return; } -+ -+ //player->type &= ~PLAYER_HUMAN; -+ //player->type |= PLAYER_HUMAN; -+ -+ if ((player->type & PLAYER_START_SEQUENCE)) { return; } -+ -+ -+ flycam_controller_manager(camera, controller, player); -+ -+ -+ -+ -+} -+ -+void flycam_save_state(Camera *camera) { -+ fState.pos[0] = camera->pos[0]; -+ fState.pos[1] = camera->pos[1]; -+ fState.pos[2] = camera->pos[2]; -+ -+ fState.lookAt[0] = camera->lookAt[0]; -+ fState.lookAt[1] = camera->lookAt[1]; -+ fState.lookAt[2] = camera->lookAt[2]; -+ -+ fState.rot[0] = camera->rot[0]; -+ fState.rot[1] = camera->rot[1]; -+ fState.rot[2] = camera->rot[2]; -+ fModeInit = true; -+} -+ -+void flycam_load_state(Camera *camera) { -+ camera->pos[0] = fState.pos[0]; -+ camera->pos[1] = fState.pos[1]; -+ camera->pos[2] = fState.pos[2]; -+ -+ camera->lookAt[0] = fState.lookAt[0]; -+ camera->lookAt[1] = fState.lookAt[1]; -+ camera->lookAt[2] = fState.lookAt[2]; -+ -+ camera->rot[0] = fState.rot[0]; -+ camera->rot[1] = fState.rot[1]; -+ camera->rot[2] = fState.rot[2]; -+} -+ -+void flycam_controller_manager(Camera *camera, struct Controller *controller, Player *player) { -+ -+ if (controller->buttonPressed & U_JPAD) { -+ fMode = !fMode; -+ } -+ -+ // Target a player -+ if (controller->buttonPressed & R_TRIG) { -+ fTargetPlayer = !fTargetPlayer; -+ } -+ -+ // Target next player -+ if (controller->buttonPressed & L_CBUTTONS) { -+ if (fRankIndex > 0) { -+ fRankIndex--; -+ camera->playerId = fRankIndex; -+ D_800DC5EC->player = &gPlayers[fRankIndex]; -+ } -+ } -+ -+ // Target previous player -+ if (controller->buttonPressed & R_CBUTTONS) { -+ if (fRankIndex < 7) { -+ fRankIndex++; -+ camera->playerId = fRankIndex; -+ D_800DC5EC->player = &gPlayers[fRankIndex]; -+ } -+ } -+ -+ // Target camera at chosen player -+ if (fTargetPlayer) { -+ flycam_target_player(camera, gGPCurrentRacePlayerIdByRank[fRankIndex]); -+ // Don't run the other camera code. -+ return; -+ } -+ -+ // Rotation -+ if (!fTargetPlayer) { -+ if (controller->stickDirection != 0) { -+ flycam_update(camera, controller); -+ } -+ } -+ -+ // Forward -+ if (controller->button & A_BUTTON) { -+ flycam_move_camera_forward(camera, controller, 3.0f); -+ } -+ -+ // Backward B button but not A button. -+ if (controller->button & B_BUTTON && !(controller->button & A_BUTTON)) { -+ flycam_move_camera_forward(camera, controller, -3.0f); -+ } -+ -+ // Up -+ if (controller->button & U_CBUTTONS) { -+ flycam_move_camera_up(camera, controller, 2.0f); -+ } -+ // Up -+ if (controller->button & D_CBUTTONS) { -+ flycam_move_camera_up(camera, controller, -2.0f); -+ } -+} -+ -+// Calculates the forward direction vector based on camera orientation -+void flycam_calculate_forward_vector(Camera* camera, Vec3f forwardVector) { -+ f32 pitch = (camera->rot[2] / 65535.0f) * 360.0f; // Convert pitch from 0-65535 to degrees -+ f32 yaw = (camera->rot[1] / 65535.0f) * 360.0f; // Convert yaw from 0-65535 to degrees -+ -+ // Convert degrees to radians -+ pitch = pitch * M_PI / 180.0f; -+ yaw = yaw * M_PI / 180.0f; -+ -+ forwardVector[0] = -sinf(yaw) * cosf(pitch); -+ forwardVector[1] = -sinf(pitch); -+ forwardVector[2] = cosf(yaw) * cosf(pitch); -+} -+ -+// Function to move the camera forward -+void flycam_move_camera_forward(Camera* camera, struct Controller *controller, f32 distance) { -+ Vec3f forwardVector; -+ Vec3f rightVector; -+ f32 length; -+ flycam_calculate_forward_vector(camera, forwardVector); -+ -+ if (controller->button & Z_TRIG) { -+ distance *= 3; -+ } -+ -+ // Normalize the forward vector -+ length = sqrtf(forwardVector[0] * forwardVector[0] + forwardVector[1] * forwardVector[1] + forwardVector[2] * forwardVector[2]); -+ forwardVector[0] /= length; -+ forwardVector[1] /= length; -+ forwardVector[2] /= length; -+ -+ // Calculate the right vector by taking the cross product of forward and up -+ rightVector[0] = forwardVector[1] * camera->up[2] - forwardVector[2] * camera->up[1]; -+ rightVector[1] = forwardVector[2] * camera->up[0] - forwardVector[0] * camera->up[2]; -+ rightVector[2] = forwardVector[0] * camera->up[1] - forwardVector[1] * camera->up[0]; -+ -+ // Move the camera's position along the forward vector while considering its up vector -+ camera->pos[0] += forwardVector[0] * distance; -+ camera->pos[1] += forwardVector[1] * distance; -+ camera->pos[2] += forwardVector[2] * distance; -+ -+ // Optionally, you can also adjust the lookAt point to maintain the same relative position -+ camera->lookAt[0] += forwardVector[0] * distance; -+ camera->lookAt[1] += forwardVector[1] * distance; -+ camera->lookAt[2] += forwardVector[2] * distance; -+} -+ -+// Function to move the camera forward -+void flycam_move_camera_up(Camera* camera, struct Controller *controller, f32 distance) { -+ // Check if the Z button is pressed (for faster movement) -+ if (controller->button & Z_TRIG) { -+ distance *= 3; -+ } -+ -+ // Move the camera's position along its up vector (Y-axis) -+ camera->pos[1] += distance; -+ -+ // Optionally, adjust the lookAt point to maintain the same relative position -+ camera->lookAt[1] += distance; -+} -+ -+// Update camera rotation and lookAt point based on input -+void flycam_update(Camera* camera, struct Controller *controller) { -+ // Calculate yaw (horizontal movement) -+ f32 yawChange = controller->rawStickX * SENSITIVITY_X; -+ f32 pitchChange = controller->rawStickY * SENSITIVITY_Y; -+ Vec3f forwardVector; -+ -+ check_bounding_collision(&camera->collision, 50, camera->pos[0], camera->pos[1], camera->pos[2]); -+ -+ camera->rot[1] += (short)(yawChange * 65535.0f / (2 * M_PI)); // Convert radians to 0-65535 range -+ -+ camera->rot[2] += (short)(-pitchChange * 65535.0f / (2 * M_PI)); // Convert radians to 0-65535 range -+ -+ if (camera->rot[2] > 15999) { -+ camera->rot[2] = 15999; -+ } else if (camera->rot[2] < -15999) { -+ camera->rot[2] = -15999; -+ } -+ -+ // Update the lookAt point based on the new orientation -+ flycam_calculate_forward_vector(camera, forwardVector); -+ camera->lookAt[0] = camera->pos[0] + forwardVector[0]; -+ camera->lookAt[1] = camera->pos[1] + forwardVector[1]; -+ camera->lookAt[2] = camera->pos[2] + forwardVector[2]; -+} -+ -+void flycam_target_player(Camera *camera, u32 playerIndex) { -+ Vec3f forwardVector;// = 2.0f; -+ Player *player = &gPlayers[playerIndex]; -+ -+ // Calculate the direction from the player to the camera -+ f32 dirX = player->pos[0] - camera->pos[0]; -+ f32 dirY = player->pos[1] - camera->pos[1]; -+ f32 dirZ = player->pos[2] - camera->pos[2]; -+ -+ // Normalize the direction vector (if needed) -+ f32 length = sqrtf(dirX * dirX + dirY * dirY + dirZ * dirZ); -+ if (length > 0) { -+ dirX /= length; -+ dirY /= length; -+ dirZ /= length; -+ } -+ -+ // Update the camera's look-at direction -+ camera->lookAt[0] = camera->pos[0] + dirX; -+ camera->lookAt[1] = camera->pos[1] + dirY; -+ camera->lookAt[2] = camera->pos[2] + dirZ; -+} -diff --git a/src/main.c b/src/main.c -index 7c90951..135e98c 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -578,6 +578,7 @@ void race_logic_loop(void) { - gTickLogic = 2; - staff_ghosts_loop(); - if (gIsGamePaused == 0) { -+ func_8001EE98(gPlayerOneCopy, camera1, 0); - for (i = 0; i < gTickLogic; i++) { - if (D_8015011E) { - gCourseTimer += 0.01666666; // 1 / 60 -@@ -585,7 +586,6 @@ void race_logic_loop(void) { - func_802909F0(); - evaluate_collision_for_players_and_actors(); - func_800382DC(); -- func_8001EE98(gPlayerOneCopy, camera1, 0); - func_80028F70(); - func_8028F474(); - func_80059AC8(); -diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c -index c2a84aa..338e2bd 100644 ---- a/src/racing/render_courses.c -+++ b/src/racing/render_courses.c -@@ -180,6 +180,11 @@ void render_course_segments(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { - arg1->pathCounter = temp_v1; - temp_v1 = ((temp_v1 - 1) * 4) + var_a3; - -+ if (isFlycam) { -+ func_8029569C(); -+ return; -+ } -+ - gSPDisplayList(gDisplayListHead++, gfx[temp_v1]); - } diff --git a/include/defines.h b/include/defines.h index e4ee8c41c..e088066cb 100644 --- a/include/defines.h +++ b/include/defines.h @@ -48,25 +48,6 @@ #define HOLD_ALL_DPAD_AND_C_BUTTONS \ (U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS) -/** - * @brief Options for gDebugMenuSelection - */ -#define DEBUG_MENU_DISABLED 1 -#define DEBUG_MENU_DEBUG_MODE 2 -#define DEBUG_MENU_COURSE 3 -#define DEBUG_MENU_SCREEN_MODE 4 -#define DEBUG_MENU_PLAYER 5 -#define DEBUG_MENU_SOUND_MODE 6 -#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7 -#define DEBUG_MENU_EXITED 64 - -/** - * @brief Options for gDebugGotoScene - */ -#define DEBUG_GOTO_RACING 0 -#define DEBUG_GOTO_ENDING 1 -#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2 -#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3 /** * @brief Jump to demo mode from the debug menu using L and A @@ -214,34 +195,6 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR }; #define ENDING 5 #define CREDITS_SEQUENCE 9 -/** - * @brief Options for gMainMenuSelectionDepth - */ -#define BLANK_MAIN_MENU 0 -#define OPTIONS_SELECTION 1 -#define DATA_SELECTION 2 -#define PLAYER_NUM_SELECTION 3 -#define GAME_MODE_SELECTION 4 -#define GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION \ - 5 // Selecting CC for GP and Versus. Selecting "Begin" or "Data" for Time Trials. Unused for Battle -#define CONFIRM_OK_SELECTION 6 -#define CONFIRM_OK_SELECTION_FROM_BACK_OUT 7 -#define TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT 8 - -/** - * @brief Options for gControllerPakMenuSelection - */ -#define CONTROLLER_PAK_MENU_SELECT_RECORD 1 -#define CONTROLLER_PAK_MENU_END 2 -#define CONTROLLER_PAK_MENU_ERASE 3 -#define CONTROLLER_PAK_MENU_QUIT 4 -#define CONTROLLER_PAK_MENU_TABLE_GAME_DATA 5 -#define CONTROLLER_PAK_MENU_GO_TO_ERASING 6 -#define CONTROLLER_PAK_MENU_ERASING 7 -#define CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED 8 -#define CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK 9 -#define CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED 10 - /** * @brief Options for gScreenModeSelection and gActiveScreenMode */ @@ -269,12 +222,14 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR }; * flashing between 2 colors, but also cause individual characters * to be cutoff on their right side */ -#define TEXT_BLUE 0 -#define TEXT_GREEN 1 -#define TEXT_RED 2 -#define TEXT_YELLOW 3 -#define TEXT_BLUE_GREEN_RED_CYCLE_1 4 -#define TEXT_BLUE_GREEN_RED_CYCLE_2 5 +enum COLOR_ID { + TEXT_BLUE, + TEXT_GREEN, + TEXT_RED, + TEXT_YELLOW, + TEXT_BLUE_GREEN_RED_CYCLE_1, + TEXT_BLUE_GREEN_RED_CYCLE_2 +}; /** * @brief Sound mode options diff --git a/m2c_helper.sh b/m2c_helper.sh index 0cbe3ccf5..e4c83772f 100644 --- a/m2c_helper.sh +++ b/m2c_helper.sh @@ -5,7 +5,7 @@ # Utility to aid in the generation of m2c output for specific functions # # example usages: -# m2c_helper.sh code_80091750 func_800AAC18 +# m2c_helper.sh menu_items func_800AAC18 # m2c_helper.sh audio/load audio_init # # Be sure to set DISASSEMBLY_FILE to a filename you are comfortable with. diff --git a/safe_gcc.mk b/safe_gcc.mk deleted file mode 100644 index b580c9472..000000000 --- a/safe_gcc.mk +++ /dev/null @@ -1,181 +0,0 @@ -# This file is auto-generated. DO NOT MODIFY! - -SAFE_C_FILES := \ - build/us/src/camera.o \ - build/us/src/spawn_players.o \ - build/us/src/code_8003DC40.o \ - build/us/src/code_80091440.o \ - build/us/src/effects.o \ - build/us/src/code_80057C60_var.o \ - build/us/src/code_80091750.o \ - build/us/src/code_800029B0.o \ - build/us/src/animation.o \ - build/us/src/player_controller.o \ - build/us/src/code_80005FD0.o \ - build/us/src/profiler.o \ - build/us/src/render_player.o \ - build/us/src/code_80086E70.o \ - build/us/src/staff_ghosts.o \ - build/us/src/gbiMacro.o \ - build/us/src/kart_dma.o \ - build/us/src/math_util_2.o \ - build/us/src/main.o \ - build/us/src/data/some_data.o \ - build/us/src/data/kart_attributes.o \ - build/us/src/data/path_spawn_metadata.o \ - build/us/src/data/textures.o \ - build/us/src/data/trig_tables_bss.o \ - build/us/src/data/data_segment2.o \ - build/us/src/audio/seqplayer.o \ - build/us/src/audio/heap.o \ - build/us/src/audio/effects.o \ - build/us/src/audio/playback.o \ - build/us/src/audio/data.o \ - build/us/src/audio/audio_session_presets.o \ - build/us/src/audio/port_eu.o \ - build/us/src/buffers/gfx_output_buffer.o \ - build/us/src/buffers/trig_tables.o \ - build/us/src/buffers/buffers.o \ - build/us/src/buffers/random.o \ - build/us/src/buffers/trig_tables_bss.o \ - build/us/src/buffers/memory_pool.o \ - build/us/src/ending/credits.o \ - build/us/src/ending/code_80280000.o \ - build/us/src/ending/ceremony_and_credits.o \ - build/us/src/ending/dl_unk_80284EE0.o \ - build/us/src/ending/code_80281780.o \ - build/us/src/ending/podium_ceremony_actors.o \ - build/us/src/ending/code_80281C40.o \ - build/us/src/ending/camera_junk.o \ - build/us/src/debug/debug.o \ - build/us/src/debug/crash_screen_enhancement.o \ - build/us/src/racing/collision.o \ - build/us/src/racing/skybox_and_splitscreen.o \ - build/us/src/racing/memory.o \ - build/us/src/racing/race_logic.o \ - build/us/src/racing/actors_extended.o \ - build/us/src/racing/render_courses.o \ - build/us/src/racing/actors.o \ - build/us/src/os/guOrthoF.o \ - build/us/src/os/guLookAtF.o \ - build/us/src/os/__osSiDeviceBusy.o \ - build/us/src/os/_Litob.o \ - build/us/src/os/osContInit.o \ - build/us/src/os/osInitialize.o \ - build/us/src/os/osAiSetNextBuffer.o \ - build/us/src/os/guMtxCatL.o \ - build/us/src/os/__osAiDeviceBusy.o \ - build/us/src/os/contramread.o \ - build/us/src/os/osSpTaskLoadGo.o \ - build/us/src/os/crc.o \ - build/us/src/os/osCreateMesgQueue.o \ - build/us/src/os/guRotateF.o \ - build/us/src/os/__osLeoInterrupt.o \ - build/us/src/os/osContStartReadData.o \ - build/us/src/os/osGetThreadPri.o \ - build/us/src/os/osPfsNumFiles.o \ - build/us/src/os/__osSiRawReadIo.o \ - build/us/src/os/osSpTaskYield.o \ - build/us/src/os/osStartThread.o \ - build/us/src/os/osViData.o \ - build/us/src/os/osPfsFileState.o \ - build/us/src/os/contpfs.o \ - build/us/src/os/leointerrupt.o \ - build/us/src/os/osPfsAllocateFile.o \ - build/us/src/os/ldiv.o \ - build/us/src/os/osSpTaskYielded.o \ - build/us/src/os/__osSpSetPc.o \ - build/us/src/os/osSetTime.o \ - build/us/src/os/osYieldThread.o \ - build/us/src/os/osPiRawStartDma.o \ - build/us/src/os/osSetTimer.o \ - build/us/src/os/osPfsDeleteFile.o \ - build/us/src/os/__osSpDeviceBusy.o \ - build/us/src/os/osEepromRead.o \ - build/us/src/os/osPiRawReadIo.o \ - build/us/src/os/osSetEventMesg.o \ - build/us/src/os/NaN.o \ - build/us/src/os/osJamMesg.o \ - build/us/src/os/osPfsChecker.o \ - build/us/src/os/sprintf.o \ - build/us/src/os/_Printf.o \ - build/us/src/os/osViTable.o \ - build/us/src/os/osEepromLongWrite.o \ - build/us/src/os/__osEPiRawWriteIo.o \ - build/us/src/os/osViSetEvent.o \ - build/us/src/os/__osGetCurrFaultedThread.o \ - build/us/src/os/osCreatePiManager.o \ - build/us/src/os/epidma.o \ - build/us/src/os/osCartRomInit.o \ - build/us/src/os/osPfsFreeBlocks.o \ - build/us/src/os/osPfsSearchFile.o \ - build/us/src/os/__osAtomicDec.o \ - build/us/src/os/osViBlack.o \ - build/us/src/os/__osViInit.o \ - build/us/src/os/osEepromWrite.o \ - build/us/src/os/osAiSetFrequency.o \ - build/us/src/os/__osEPiRawReadIo.o \ - build/us/src/os/guLookAtRef.o \ - build/us/src/os/guPerspectiveF.o \ - build/us/src/os/contramwrite.o \ - build/us/src/os/osGetTime.o \ - build/us/src/os/__osViSwapContext.o \ - build/us/src/os/alBnkfNew.o \ - build/us/src/os/__osSpSetStatus.o \ - build/us/src/os/osPfsReadWriteFile.o \ - build/us/src/os/osPiStartDma.o \ - build/us/src/os/osRecvMesg.o \ - build/us/src/os/osDestroyThread.o \ - build/us/src/os/string.o \ - build/us/src/os/__osSiRawWriteIo.o \ - build/us/src/os/osPfsInit.o \ - build/us/src/os/guMtxCatF.o \ - build/us/src/os/osPfsIsPlug.o \ - build/us/src/os/__osDequeueThread.o \ - build/us/src/os/__osSiCreateAccessQueue.o \ - build/us/src/os/osViSwapBuffer.o \ - build/us/src/os/is_debug.o \ - build/us/src/os/__osViGetCurrentContext.o \ - build/us/src/os/__osPiCreateAccessQueue.o \ - build/us/src/os/__osSpRawStartDma.o \ - build/us/src/os/__osSyncPutChars.o \ - build/us/src/os/osSendMesg.o \ - build/us/src/os/osSyncPrintf.o \ - build/us/src/os/__osResetGlobalIntMask.o \ - build/us/src/os/guScaleF.o \ - build/us/src/os/osSetThreadPri.o \ - build/us/src/os/__osDevMgrMain.o \ - build/us/src/os/osVirtualToPhysical.o \ - build/us/src/os/osViSetMode.o \ - build/us/src/os/__osSetHWIntrRoutine.o \ - build/us/src/os/osCreateViManager.o \ - build/us/src/os/__osSiRawStartDma.o \ - build/us/src/os/guNormalize.o \ - build/us/src/os/osLeoDiskInit.o \ - build/us/src/os/__osSpGetStatus.o \ - build/us/src/os/osEepromLongRead.o \ - build/us/src/os/_Ldtob.o \ - build/us/src/os/guMtxF2L.o \ - build/us/src/os/osEPiRawStartDma.o \ - build/us/src/os/osPiGetCmdQueue.o \ - build/us/src/os/osAiGetLength.o \ - build/us/src/os/osViSetSpecialFeatures.o \ - build/us/src/os/osCreateThread.o \ - build/us/src/os/osTimer.o \ - build/us/src/os/osEepromProbe.o \ - build/us/src/os/__osSetGlobalIntMask.o \ - build/us/src/os/guTranslateF.o \ - build/us/src/os/math/llconv.o \ - build/us/src/os/math/cosf.o \ - build/us/src/os/math/llmuldiv.o \ - build/us/src/os/math/sinf.o \ - -# build/us/src/save.o -# build/us/src/crash_screen.o -# build/us/src/code_8006E9C0.o -# build/us/src/audio/synthesis.o -# build/us/src/code_80057C60.o -# build/us/src/menus.o -# build/us/src/render_objects.o -# build/us/src/code_800AF9B0.o -# build/us/src/update_objects.o \ No newline at end of file diff --git a/safe_gcc_old.mk b/safe_gcc_old.mk deleted file mode 100644 index fd7f2263a..000000000 --- a/safe_gcc_old.mk +++ /dev/null @@ -1,169 +0,0 @@ -# This file is auto-generated. DO NOT MODIFY! - -SAFE_C_FILES := \ - build/us/src/camera.o \ - build/us/src/spawn_players.o \ - build/us/src/code_8003DC40.o \ - build/us/src/code_80091440.o \ - build/us/src/effects.o \ - build/us/src/code_80057C60_var.o \ - build/us/src/code_800029B0.o \ - build/us/src/code_80004740.o \ - build/us/src/player_controller.o \ - build/us/src/profiler.o \ - build/us/src/render_player.o \ - build/us/src/code_80086E70.o \ - build/us/src/staff_ghosts.o \ - build/us/src/gbiMacro.o \ - build/us/src/kart_dma.o \ - build/us/src/math_util_2.o \ - build/us/src/main.o \ - build/us/src/data/kart_attributes.o \ - build/us/src/data/path_spawn_metadata.o \ - build/us/src/data/textures.o \ - build/us/src/data/trig_tables_bss.o \ - build/us/src/data/data_segment2.o \ - build/us/src/audio/seqplayer.o \ - build/us/src/audio/heap.o \ - build/us/src/audio/effects.o \ - build/us/src/audio/playback.o \ - build/us/src/audio/audio_session_presets.o \ - build/us/src/audio/port_eu.o \ - build/us/src/buffers/gfx_output_buffer.o \ - build/us/src/buffers/trig_tables.o \ - build/us/src/buffers/buffers.o \ - build/us/src/buffers/random.o \ - build/us/src/buffers/trig_tables_bss.o \ - build/us/src/buffers/memory_pool.o \ - build/us/src/ending/credits.o \ - build/us/src/ending/code_80280000.o \ - build/us/src/ending/ceremony_and_credits.o \ - build/us/src/ending/dl_unk_80284EE0.o \ - build/us/src/ending/code_80281780.o \ - build/us/src/ending/podium_ceremony_actors.o \ - build/us/src/ending/code_80281C40.o \ - build/us/src/ending/camera_junk.o \ - build/us/src/debug/debug.o \ - build/us/src/debug/crash_screen_enhancement.o \ - build/us/src/racing/collision.o \ - build/us/src/racing/skybox_and_splitscreen.o \ - build/us/src/racing/memory.o \ - build/us/src/racing/race_logic.o \ - build/us/src/racing/actors_extended.o \ - build/us/src/racing/render_courses.o \ - build/us/src/racing/actors.o \ - build/us/src/os/guOrthoF.o \ - build/us/src/os/guLookAtF.o \ - build/us/src/os/__osSiDeviceBusy.o \ - build/us/src/os/_Litob.o \ - build/us/src/os/osContInit.o \ - build/us/src/os/osInitialize.o \ - build/us/src/os/osAiSetNextBuffer.o \ - build/us/src/os/guMtxCatL.o \ - build/us/src/os/__osAiDeviceBusy.o \ - build/us/src/os/contramread.o \ - build/us/src/os/osSpTaskLoadGo.o \ - build/us/src/os/crc.o \ - build/us/src/os/osCreateMesgQueue.o \ - build/us/src/os/guRotateF.o \ - build/us/src/os/__osLeoInterrupt.o \ - build/us/src/os/osContStartReadData.o \ - build/us/src/os/osGetThreadPri.o \ - build/us/src/os/osPfsNumFiles.o \ - build/us/src/os/__osSiRawReadIo.o \ - build/us/src/os/osSpTaskYield.o \ - build/us/src/os/osStartThread.o \ - build/us/src/os/osViData.o \ - build/us/src/os/osPfsFileState.o \ - build/us/src/os/contpfs.o \ - build/us/src/os/leointerrupt.o \ - build/us/src/os/osPfsAllocateFile.o \ - build/us/src/os/ldiv.o \ - build/us/src/os/osSpTaskYielded.o \ - build/us/src/os/__osSpSetPc.o \ - build/us/src/os/osSetTime.o \ - build/us/src/os/osYieldThread.o \ - build/us/src/os/osPiRawStartDma.o \ - build/us/src/os/osSetTimer.o \ - build/us/src/os/osPfsDeleteFile.o \ - build/us/src/os/__osSpDeviceBusy.o \ - build/us/src/os/osEepromRead.o \ - build/us/src/os/osPiRawReadIo.o \ - build/us/src/os/osSetEventMesg.o \ - build/us/src/os/NaN.o \ - build/us/src/os/osJamMesg.o \ - build/us/src/os/osPfsChecker.o \ - build/us/src/os/sprintf.o \ - build/us/src/os/_Printf.o \ - build/us/src/os/osViTable.o \ - build/us/src/os/osEepromLongWrite.o \ - build/us/src/os/__osEPiRawWriteIo.o \ - build/us/src/os/osViSetEvent.o \ - build/us/src/os/__osGetCurrFaultedThread.o \ - build/us/src/os/osCreatePiManager.o \ - build/us/src/os/epidma.o \ - build/us/src/os/osCartRomInit.o \ - build/us/src/os/osPfsFreeBlocks.o \ - build/us/src/os/osPfsSearchFile.o \ - build/us/src/os/__osAtomicDec.o \ - build/us/src/os/osViBlack.o \ - build/us/src/os/__osViInit.o \ - build/us/src/os/osEepromWrite.o \ - build/us/src/os/osAiSetFrequency.o \ - build/us/src/os/__osEPiRawReadIo.o \ - build/us/src/os/guLookAtRef.o \ - build/us/src/os/guPerspectiveF.o \ - build/us/src/os/contramwrite.o \ - build/us/src/os/osGetTime.o \ - build/us/src/os/__osViSwapContext.o \ - build/us/src/os/alBnkfNew.o \ - build/us/src/os/__osSpSetStatus.o \ - build/us/src/os/osPfsReadWriteFile.o \ - build/us/src/os/osPiStartDma.o \ - build/us/src/os/osRecvMesg.o \ - build/us/src/os/osDestroyThread.o \ - build/us/src/os/string.o \ - build/us/src/os/__osSiRawWriteIo.o \ - build/us/src/os/osPfsInit.o \ - build/us/src/os/guMtxCatF.o \ - build/us/src/os/osPfsIsPlug.o \ - build/us/src/os/__osDequeueThread.o \ - build/us/src/os/__osSiCreateAccessQueue.o \ - build/us/src/os/osViSwapBuffer.o \ - build/us/src/os/is_debug.o \ - build/us/src/os/__osViGetCurrentContext.o \ - build/us/src/os/__osPiCreateAccessQueue.o \ - build/us/src/os/__osSpRawStartDma.o \ - build/us/src/os/__osSyncPutChars.o \ - build/us/src/os/osSendMesg.o \ - build/us/src/os/osSyncPrintf.o \ - build/us/src/os/__osResetGlobalIntMask.o \ - build/us/src/os/guScaleF.o \ - build/us/src/os/osSetThreadPri.o \ - build/us/src/os/__osDevMgrMain.o \ - build/us/src/os/osVirtualToPhysical.o \ - build/us/src/os/osViSetMode.o \ - build/us/src/os/__osSetHWIntrRoutine.o \ - build/us/src/os/osCreateViManager.o \ - build/us/src/os/__osSiRawStartDma.o \ - build/us/src/os/guNormalize.o \ - build/us/src/os/osLeoDiskInit.o \ - build/us/src/os/__osSpGetStatus.o \ - build/us/src/os/osEepromLongRead.o \ - build/us/src/os/_Ldtob.o \ - build/us/src/os/guMtxF2L.o \ - build/us/src/os/osEPiRawStartDma.o \ - build/us/src/os/osPiGetCmdQueue.o \ - build/us/src/os/osAiGetLength.o \ - build/us/src/os/osViSetSpecialFeatures.o \ - build/us/src/os/osCreateThread.o \ - build/us/src/os/osTimer.o \ - build/us/src/os/osEepromProbe.o \ - build/us/src/os/__osSetGlobalIntMask.o \ - build/us/src/os/guTranslateF.o \ - build/us/src/os/math/llconv.o \ - build/us/src/os/math/cosf.o \ - build/us/src/os/math/llmuldiv.o \ - build/us/src/os/math/sinf.o \ - build/us/assets/code/common_data/common_data.o\ - build/us/assets/code/common_data/common_data.mio0.o\ \ No newline at end of file diff --git a/src/audio/external.c b/src/audio/external.c index 3b12d26b1..97a2ce7f3 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -12,7 +12,7 @@ #include "audio/port_eu.h" #include "code_800029B0.h" #include "code_80005FD0.h" -#include "code_80091750.h" +#include "menu_items.h" #include #include "port/Game.h" diff --git a/src/buffers.h b/src/buffers.h index 97470b25c..d8fb4f9ce 100644 --- a/src/buffers.h +++ b/src/buffers.h @@ -23,7 +23,7 @@ typedef struct { /* * In render_player, spawn_players, and staff_ghosts D_802BFB80 is the arraySize8 entry - * But in code_80091750 its the arraySize4 entry + * But in menu_items its the arraySize4 entry * The only way to unify those 2 things is to use a union */ typedef union { diff --git a/src/code_800029B0.c b/src/code_800029B0.c index 14f82137b..c1c784d51 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -13,7 +13,7 @@ #include #include "collision.h" #include "memory.h" -#include "code_80091750.h" +#include "menu_items.h" #include "skybox_and_splitscreen.h" #include "code_8006E9C0.h" #include "spawn_players.h" diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 735887971..cb4157b63 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -27,7 +27,7 @@ #include #include "main.h" #include "menus.h" -#include "code_80091750.h" +#include "menu_items.h" #include "audio/external.h" #include "ending/podium_ceremony_actors.h" #include "spawn_players.h" @@ -3553,7 +3553,7 @@ void func_8000F628(void) { } } } - if ((D_8018EE08 == 1) && (GetCourse() != GetPodiumCeremony())) { + if ((gDemoUseController == 1) && (GetCourse() != GetPodiumCeremony())) { for (i = 0; i < NUM_PLAYERS; i++) { D_80163330[i] = 0; } @@ -3605,7 +3605,7 @@ void func_8000F628(void) { D_8016348C = 0; D_801634EC = 0; func_8001AB00(); - if (D_8018EE08 == 1) { + if (gDemoUseController == 1) { if (gDemoMode == 1) { for (i = 0; i < NUM_PLAYERS; i++) { @@ -5339,7 +5339,7 @@ void func_80014DE4(s32 cameraIndex) { D_801646D0[cameraIndex].unk0 = 0; D_801646D0[cameraIndex].unk2 = 0; D_801646D0[cameraIndex].unk4 = 0; - if ((gModeSelection == 1) && (D_8018EDFC == 0)) { + if ((gModeSelection == 1) && (gCourseMapInit == 0)) { D_80164678[cameraIndex] = 0; } diff --git a/src/code_80057C60.h b/src/code_80057C60.h index ec0bc4696..4b6ed7613 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -521,7 +521,6 @@ extern s32 D_8018D1D4; // extern s32 D_8018D1D8; -> objects.h extern s32 D_8018D1DC; -extern u8* D_8018D1E0; extern f32 D_8018D1E8; extern s32 D_8018D1EC; // extern s32 D_8018D1F0; -> objects.h diff --git a/src/code_80057C60_var.c b/src/code_80057C60_var.c index fda4d187c..d0e929ee6 100644 --- a/src/code_80057C60_var.c +++ b/src/code_80057C60_var.c @@ -77,7 +77,6 @@ s32 D_8018D1D0; s32 D_8018D1D4; s32 D_8018D1D8; s32 D_8018D1DC; -u8* D_8018D1E0; UNUSED s32 D_8018D1E4; f32 D_8018D1E8; s32 D_8018D1EC; diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index 91fe49ee4..797b6085a 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -23,7 +23,7 @@ #include "menus.h" #include #include "render_objects.h" -#include "code_80091750.h" +#include "menu_items.h" #include "src/data/some_data.h" #include "effects.h" #include @@ -117,7 +117,10 @@ void clear_object_list() { objectListSize = -1; } -u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) { +/** + * Dma's mario kart 64 logo and course outline textures. + */ +u8* dma_misc_textures(u8* devAddr, u8* baseAddress, u32 size, u32 offset) { #ifdef TARGET_N64 u8** tempAddress; u8* address; @@ -139,9 +142,8 @@ u8* func_8006ED94(u8* devAddr, u8* baseAddress, u32 size, u32 offset) { return baseAddress; } +// Stubbed because load texture directly. void load_mario_kart_64_logo(void) { - u8* d_gTextureLogoMarioKart64 = LOAD_ASSET(gTextureLogoMarioKart64); - D_8018D1E0 = func_8006ED94((u8*) d_gTextureLogoMarioKart64, (u8*) D_8018D9B0, 0x79E1, 0x20000); } // Some kind of initalization for the Item Window part of the HUD @@ -175,7 +177,7 @@ void func_8006EF60(void) { s16 huh; u8* wut; - wut = D_8018D9B4 + 0xFFFF0000; + wut = gMenuCompressedBuffer + 0xFFFF0000; // clang-format off // God forgive me for my sins... huh = 0x14; if (0) {} for (i = 0; i < huh; i++) { D_8018D248[i] = CourseManager_GetProps()->MinimapTexture; wut += ResourceGetTexSizeByName(CourseManager_GetProps()->MinimapTexture); } @@ -382,8 +384,8 @@ void func_8006F824(s32 arg0) { } void func_8006F8CC(void) { - if (D_8018EDFC == 0) { - D_8018EDFC = 1; + if (gCourseMapInit == 0) { + gCourseMapInit = 1; gHUDModes = 0; D_801657E6 = 0; D_801657F0 = 0; diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h index b26dab556..ad8c2f977 100644 --- a/src/code_8006E9C0.h +++ b/src/code_8006E9C0.h @@ -8,7 +8,7 @@ void init_hud(void); void reset_object_variable(void); void func_8006EB10(void); void clear_object_list(void); -u8* func_8006ED94(u8*, u8*, u32, u32); +u8* dma_misc_textures(u8*, u8*, u32, u32); void load_mario_kart_64_logo(void); void init_item_window(s32); void func_8006EEE8(s32); diff --git a/src/code_80091750.h b/src/code_80091750.h deleted file mode 100644 index 8e482c464..000000000 --- a/src/code_80091750.h +++ /dev/null @@ -1,619 +0,0 @@ -#ifndef CODE_80091750_H -#define CODE_80091750_H - -#include -#include "textures.h" -#include "main.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[]; - -/* File specific types */ - -/* -Known `types` for `struct_8018D9E0_entry` -0x53: "Mushroom Cup" box on the cup selection screen -0x54: "Flower Cup" box on the cup selection screen -0x55: "Star Cup" box on the cup selection screen -0x56: "Special Cup" box on the cup selection screen -0x5E: A box of static over the course images as the cup selection screen loads in. - It is near unnoticeable though as in practice it doesn't last long enough to be seen. - Try locking the word at `8018DC80` to see something like 0x20 just before confirming character selection to make -it last longer See `func_80096CD8` for the actual drawing of the static -*/ - -typedef struct { - /* 0x00 */ s32 type; // id maybe? - /* 0x04 */ s32 cursor; // sound mode, maybe some other stuff - /* 0x08 */ s32 unk8; // This is used but I can't tell what for - /* 0x0C */ s32 column; - /* 0x10 */ s32 row; - /* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values - // If equal, later entries in D_8018D9E0 are on top - /* 0x15 */ u8 visible; // active? If 1 its displayed, if 0 its not - // These seem to be generic space available for use by the struct, no 1 purpose for any given member - /* 0x16 */ s16 unk16; // Potentially unused - /* 0x18 */ s32 D_8018DEE0_index; // Index in D_8018DEE0, an array of some other struct type - /* 0x1C */ s32 unk1C; // Multi use. Sometimes cup selection, sometimes course index. - /* 0x20 */ s32 unk20; // Multi use, hard to tell what for though. Sometimes a random number, sometimes GP points - /* 0x24 */ f32 unk24; // Multi use, x scaling for some things, rotation multiplier for the question box in some - // menus, probably some other things -} struct_8018D9E0_entry; // size = 0x28 - -typedef struct { - /* 0x00 */ MkAnimation* textureSequence; - /* 0x04 */ s32 sequenceIndex; // Index in textureSequence that the animation is currently on - /* 0x08 */ s32 frameCountDown; // Frames left for the given animation part - /* 0x0C */ u32 visible; // visbile if 0x80000000, otherwise invisbile AND paused - /* 0x10 */ s32 D_8018E118_index; // Don't know what D_8018E118 tracks - /* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown -} struct_8018DEE0_entry; // size = 0x18 - -typedef struct { - /* 0x0 */ MkTexture* texture; - /* 0x4 */ s32 unk_4; -} struct_8018E060_entry; // size = 0x8 - -typedef struct { - /* 0x0 */ MkTexture* mk64Texture; - /* 0x4 */ s16 unk4; - /* 0x6 */ s16 unk6; -} struct_8018E0E8_entry; // size = 0x8 - -typedef struct { - /* 0x00 */ u64* textureData; // This should be interpreted as a segmented address - /** - * Its hard to tell what exactly what this is meant to be, - * but it appears to be used as some sort of offset/index from the address stored in D_8018D9B0. - * This value is (roughly) the sum of (width * height) of the - * textures in all the previous entries in D_8018E118 - */ - /* 0x04 */ s32 offset; -} struct_8018E118_entry; // size = 0x08 - -typedef struct { - /* 0x00 */ MkTexture* textures; - /* 0x04 */ Gfx* displayList; -} struct_8018E768_entry; // size = 0x08 - -struct UnkStruct_8018E7E8 { - /* 0x0 */ s16 x; - /* 0x2 */ s16 y; - /* 0x4 */ s16 unk1; - /* 0x6 */ s16 unk2; -}; // size = 0x8 - -typedef struct { - /* 0x00 */ s16 column; - /* 0x02 */ s16 row; - /* 0x04 */ s16 pad0; - /* 0x06 */ s16 pad1; -} Unk_D_800E70A0; // size = 0x08 - -/* Function Prototypes */ - -f64 exponent_by_squaring(f64, s32); -f64 func_800917B0(f64, f64); -f64 func_8009186C(f64); -f64 func_8009195C(f64); -f64 func_80091A6C(f64, s32); -f64 func_80091AC0(f64, s32*); -void swap_values(s32*, s32*); -s32 func_80091D74(void); -void func_80091EE4(void); -void func_80091FA4(void); -void func_80092148(void); -void func_800921B4(void); -void text_rainbow_effect(s32, s32, s32); -void set_text_color_rainbow_if_selected(s32, s32, s32); -void func_80092258(void); -void func_80092290(s32, s32*, s32*); -void func_80092500(void); -void func_80092564(void); -void func_800925A0(void); -void func_800925CC(void); -void func_80092604(void); -void func_80092630(void); -void func_8009265C(void); -void func_80092688(void); -void func_80092C80(void); -s32 char_to_glyph_index(char*); -s32 func_80092DF8(char*); -s32 func_80092E1C(char*); -s32 func_80092EE4(char*); -s32 get_string_width(char*); -void set_text_color(s32); -void func_800930E4(s32, s32, char*); -void print_text0(s32, s32, char*, s32, f32, f32, s32); -void func_80093324(s32, s32, char*, s32, f32, f32); -void func_80093358(s32, s32, char*, s32, f32, f32); -void print_text1(s32, s32, char*, s32, f32, f32, s32); -void func_800936B8(s32, s32, char*, s32, f32, f32); -void draw_text(s32, s32, char*, s32, f32, f32); -void func_80093720(s32, s32, char*, s32, f32, f32); -void func_80093754(s32, s32, char*, s32, f32, f32); -void print_text2(s32, s32, char*, s32, f32, f32, s32); -void func_800939C8(s32, s32, char*, s32, f32, f32); -void text_draw(s32, s32, char*, s32, f32, f32); -void func_80093A30(s32); -void func_80093A5C(u32); -void func_80093B70(u32); -void func_80093C1C(s32); -void func_80093C88(void); -void func_80093C90(void); -void func_80093C98(s32); -void func_80093E20(void); -void func_80093E40(void); -void func_80093E60(void); -void func_80093F10(void); -void func_800940EC(s32); -void func_800942D0(void); -void func_80094660(struct GfxPool*, s32); -void render_checkered_flag(struct GfxPool*, s32); -void func_80094A64(struct GfxPool*); -void render_menus(void); -void func_80095574(void); -Gfx* draw_flash_select_case(Gfx*, s32, s32, s32, s32, s32); -Gfx* draw_flash_select_case_slow(Gfx*, s32, s32, s32, s32); -Gfx* draw_flash_select_case_fast(Gfx*, s32, s32, s32, s32); -Gfx* func_800959F8(Gfx*, Vtx*); -Gfx* func_80095BD0(Gfx*, u8*, f32, f32, u32, u32, f32, f32); -Gfx* func_80095E10(Gfx*, s8, s32, s32, s32, s32, s32, s32, s32, s32, u8*, u32, u32); -Gfx* func_800963F0(Gfx*, s8, s32, s32, f32, f32, s32, s32, s32, s32, s32, s32, u8*, u32, u32); -Gfx* func_80096CD8(Gfx*, s32, s32, u32, u32); -Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, - s32 arg9, u16* argA, u32 argB, u32 argC, s32 argD); -Gfx* func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32); -Gfx* func_80097AE4(Gfx*, s8, s32, s32, u8*, s32); -Gfx* func_80097E58(Gfx* displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7, - u8* someTexture, u32 arg9, u32 argA, s32 width); -Gfx* func_80098558(Gfx*, u32, u32, u32, u32, u32, u32, s32, s32); -Gfx* func_800987D0(Gfx*, u32, u32, u32, u32, s32, s32, u8*, u32, s32); -Gfx* draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32); -Gfx* draw_box(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32); -Gfx* draw_box_wide(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32); -Gfx* func_80098FC8(Gfx*, s32, s32, s32, s32); -void dma_copy_base_729a30(u64*, size_t, void*); -void dma_copy_base_7fa3c0(u64*, size_t, void*); -void func_80099110(void); -void load_menu_img(MkTexture*); -void* segmented_to_virtual_dupe(const void*); -void* segmented_to_virtual_dupe_2(const void*); -void load_img_wrap(MkTexture*); -void load_menu_img2(MkTexture*, s32); -void func_80099958(MkTexture*, s32, s32); -void func_80099E54(void); -void func_80099E60(MkTexture*, s32, s32); -void func_80099EC4(void); -void func_80099A70(void); -void func_80099A94(MkTexture*, s32); -void func_80099AEC(void); -void func_8009A238(MkTexture*, s32); -void func_8009A2F0(struct_8018E0E8_entry*); -void func_8009A344(void); -s32 animate_character_select_menu(MkAnimation*); -s32 func_8009A478(MkAnimation*, s32); -void func_8009A594(s32, s32, MkAnimation*); -void func_8009A640(s32, s32, s32, MkAnimation*); -void func_8009A6D4(void); -void func_8009A76C(s32, s32, s32, s32); -void func_8009A7EC(s32, s32, s32, s32, s32); -MkTexture* func_8009A878(struct_8018DEE0_entry*); -MkTexture* func_8009A944(struct_8018DEE0_entry*, s32); -void func_8009A9FC(s32, s32, u32, s32); -void func_8009AB7C(s32); -void func_8009AD78(s32, s32); -void convert_img_to_greyscale(s32, u32); -void adjust_img_colour(s32, s32, s32, s32, s32); -u16* func_8009B8C4(u64*); -void func_8009B938(void); -void func_8009B954(MkTexture*); -void func_8009B998(void); -Gfx* func_8009B9D0(Gfx*, MkTexture*); -Gfx* func_8009BA74(Gfx*, MkTexture*, s32, s32); -Gfx* func_8009BC9C(Gfx*, MkTexture*, s32, s32, s32, s32); -Gfx* print_letter(Gfx*, MkTexture*, f32, f32, s32, f32, f32); -Gfx* func_8009C204(Gfx*, MkTexture*, s32, s32, s32); -Gfx* func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32); -Gfx* func_8009C708(Gfx*, struct_8018DEE0_entry*, s32, s32, s32, s32); -void func_8009C918(void); -void func_8009CA2C(void); -void func_8009CA6C(s32); -void func_8009CBE4(s32, s32, s32); -void func_8009CDDC(s32, s32); -void func_8009CDFC(s32, s32); -void func_8009CE1C(void); -void func_8009CE64(s32); -void func_8009D77C(s32, s32, s32); -void func_8009D958(s32, s32); -void func_8009D978(s32, s32); -void func_8009D998(s32); -void func_8009DAA8(void); -void func_8009DB8C(void); -void func_8009DEF8(u32, u32); -void func_8009DF4C(s32); -void func_8009DF6C(s32); -void func_8009DF8C(u32, u32); -void func_8009DFE0(s32); -void func_8009E000(s32); -void func_8009E020(s32, s32); -void func_8009E088(s32, s32); -void func_8009E0F0(s32); -void func_8009E1C0(void); -void func_8009E1E4(void); -void func_8009E208(void); -void func_8009E230(void); -void func_8009E258(void); -void func_8009E280(void); -void func_8009E2A8(s32); -void func_8009E2F0(s32); -void func_8009E5BC(void); -void func_8009E5FC(s32); -void func_8009E620(void); -void add_ui_element(s32, s32, s32, s8); -void func_8009F5E0(struct_8018D9E0_entry*); -void func_800A08D8(u8, s32, s32); -s32 func_800A095C(char*, s32, s32, s32); -void func_800A09E0(struct_8018D9E0_entry*); -void func_800A0AD0(struct_8018D9E0_entry*); -void func_800A0B80(struct_8018D9E0_entry*); -void func_800A0DFC(void); -void func_800A0EB8(struct_8018D9E0_entry*, s32); -void func_800A0FA4(struct_8018D9E0_entry*, s32); -void func_800A10CC(struct_8018D9E0_entry*); -void func_800A11D0(struct_8018D9E0_entry*, s32, s32); -void func_800A12BC(struct_8018D9E0_entry*, MkTexture*); -void func_800A1350(struct_8018D9E0_entry*); -void func_800A143C(struct_8018D9E0_entry*, s32); -void func_800A1500(struct_8018D9E0_entry*); -void func_800A15EC(struct_8018D9E0_entry*); -void func_800A1780(struct_8018D9E0_entry*); -void func_800A1924(struct_8018D9E0_entry*); -void func_800A1A20(struct_8018D9E0_entry*); -void func_800A1BE0(struct_8018D9E0_entry*); -void func_800A1DE0(struct_8018D9E0_entry*); -void func_800A1F30(struct_8018D9E0_entry*); -void func_800A1FB0(struct_8018D9E0_entry*); -void func_800A2D1C(struct_8018D9E0_entry*); -void func_800A2EB8(struct_8018D9E0_entry*); -void func_800A32B4(s32, s32, s32, s32); -void func_800A34A8(struct_8018D9E0_entry*); -void func_800A3A10(s8*); -void func_800A3ADC(struct_8018D9E0_entry*, s32, s32, s32, s32, s8*); -void func_800A3C84(struct_8018D9E0_entry*); -void func_800A3E60(struct_8018D9E0_entry*); -void func_800A4550(s32, s32, s32); -void func_800A474C(s32, s32, s32); -void func_800A4A24(struct_8018D9E0_entry*); -void render_pause_menu(struct_8018D9E0_entry*); -void render_pause_menu_time_trials(struct_8018D9E0_entry*); -void render_pause_menu_versus(struct_8018D9E0_entry*); -void render_pause_grand_prix(struct_8018D9E0_entry*); -void render_pause_battle(struct_8018D9E0_entry*); -void func_800A54EC(void); -void func_800A5738(struct_8018D9E0_entry*); -void func_800A6034(struct_8018D9E0_entry*); -void func_800A6154(struct_8018D9E0_entry*); -void func_800A638C(struct_8018D9E0_entry*); -void func_800A66A8(struct_8018D9E0_entry*, Unk_D_800E70A0*); -void func_800A69C8(struct_8018D9E0_entry*); -void func_800A6BEC(struct_8018D9E0_entry*); -void func_800A6CC0(struct_8018D9E0_entry*); -void func_800A6D94(s32, s32, u8*); -void func_800A6E94(s32, s32, u8*); -void func_800A70E8(struct_8018D9E0_entry*); -void func_800A7258(struct_8018D9E0_entry*); -void func_800A72FC(struct_8018D9E0_entry*); -void func_800A7448(struct_8018D9E0_entry*); -void func_800A75A0(struct_8018D9E0_entry*); -void func_800A761C(struct_8018D9E0_entry*); -void func_800A7790(struct_8018D9E0_entry*); -void convert_number_to_ascii(s32, char*); -void write_dashes(char*); -void get_time_record_minutes(s32, char*); -void get_time_record_seconds(s32, char*); -void get_time_record_centiseconds(s32, char*); -void func_800A79F4(s32, char*); -void func_800A7A4C(s32); -void func_800A8230(void); -void func_800A8250(void); -void func_800A8270(s32, struct_8018D9E0_entry*); -void func_800A8564(struct_8018D9E0_entry*); -void func_800A86E8(struct_8018D9E0_entry*); -void func_800A874C(struct_8018D9E0_entry*); -void func_800A890C(s32, struct_8018D9E0_entry*); -void func_800A8A98(struct_8018D9E0_entry*); -void func_800A8CA4(struct_8018D9E0_entry*); -void func_800A8E14(struct_8018D9E0_entry*); -void func_800A8EC0(struct_8018D9E0_entry*); -void func_800A8F48(struct_8018D9E0_entry*); -void func_800A90D4(s32, struct_8018D9E0_entry*); -void func_800A91D8(struct_8018D9E0_entry*, s32, s32); -void func_800A9208(struct_8018D9E0_entry*, s32); -void func_800A9278(struct_8018D9E0_entry*, s32); -void func_800A92E8(struct_8018D9E0_entry*, s32); -void func_800A939C(struct_8018D9E0_entry*, s32); -void func_800A940C(struct_8018D9E0_entry*, s32); -void func_800A94C8(struct_8018D9E0_entry*, s32, s32); -void func_800A954C(struct_8018D9E0_entry*); -void func_800A9710(struct_8018D9E0_entry*); -void func_800A97BC(struct_8018D9E0_entry*); -void func_800A9A98(struct_8018D9E0_entry*); -void func_800A9B9C(struct_8018D9E0_entry*); -void func_800A9C40(struct_8018D9E0_entry*); -void func_800A9D5C(struct_8018D9E0_entry*); -void func_800A9E58(struct_8018D9E0_entry*); -void func_800AA280(struct_8018D9E0_entry*); -void func_800AA2EC(struct_8018D9E0_entry*); -void func_800AA5C8(struct_8018D9E0_entry*, s8); -void func_800AA69C(struct_8018D9E0_entry*); -void func_800AAA9C(struct_8018D9E0_entry*); -void func_800AAB90(struct_8018D9E0_entry*); -void func_800AAC18(struct_8018D9E0_entry*); -void func_800AADD4(struct_8018D9E0_entry*); -void func_800AAE18(struct_8018D9E0_entry*); -struct_8018D9E0_entry* func_800AAE68(void); -struct_8018D9E0_entry* func_800AAEB4(s32); -struct_8018D9E0_entry* find_8018D9E0_entry_dupe(s32); -struct_8018D9E0_entry* find_8018D9E0_entry(s32); -s32 func_800AAF70(s32); -void func_800AAF94(struct_8018D9E0_entry*, s32); -s32 func_800AAFCC(s32); -void func_800AB020(struct_8018D9E0_entry*); -void func_800AB098(struct_8018D9E0_entry*); -void func_800AB164(struct_8018D9E0_entry*); -void func_800AB260(struct_8018D9E0_entry*); -void func_800AB290(struct_8018D9E0_entry*); -void func_800AB314(struct_8018D9E0_entry*); -void func_800AB904(struct_8018D9E0_entry*); -void func_800AB9B0(struct_8018D9E0_entry*); -void func_800ABAE8(struct_8018D9E0_entry*); -void func_800ABB24(struct_8018D9E0_entry*); -void func_800ABBCC(struct_8018D9E0_entry*); -void func_800ABC38(struct_8018D9E0_entry*); -void func_800ABCF4(struct_8018D9E0_entry*); -void func_800ABEAC(struct_8018D9E0_entry*); -void func_800ABF68(struct_8018D9E0_entry*); -void func_800AC128(struct_8018D9E0_entry*); -void func_800AC300(struct_8018D9E0_entry*); -void func_800AC324(struct_8018D9E0_entry*); -void func_800AC458(struct_8018D9E0_entry*); -void func_800AC978(struct_8018D9E0_entry*); -void func_800ACA14(struct_8018D9E0_entry*); -void func_800ACC50(struct_8018D9E0_entry*); -void func_800ACF40(struct_8018D9E0_entry*); -void func_800AD1A4(struct_8018D9E0_entry*); -void func_800AD2E8(struct_8018D9E0_entry*); -void func_800ADF48(struct_8018D9E0_entry*); -void func_800AE218(struct_8018D9E0_entry*); -void func_800AEC54(struct_8018D9E0_entry*); -void func_800AEDBC(struct_8018D9E0_entry*); -void func_800AEE90(struct_8018D9E0_entry*); -void func_800AEEBC(struct_8018D9E0_entry*); -void func_800AEEE8(struct_8018D9E0_entry*); -void func_800AEF14(struct_8018D9E0_entry*); -void func_800AEF74(struct_8018D9E0_entry*); -void func_800AF004(struct_8018D9E0_entry*); -void func_800AF1AC(struct_8018D9E0_entry*); -void func_800AF270(struct_8018D9E0_entry*); -void func_800AF480(struct_8018D9E0_entry*); -void func_800AF4DC(struct_8018D9E0_entry*); -void func_800AF740(struct_8018D9E0_entry*); - -// This really, really shouldn't be in this header file, but I don't know where else to put it -void rmonPrintf(const char*, ...); -void tkmk00decode(u8*, u8*, u8*, s32); - -/* File specific defines */ - -#define D_8018D9E0_SIZE 0x20 -#define D_8018DEE0_SIZE 0x10 -#define D_8018E060_SIZE 0x10 -#define D_8018E0E8_SIZE 0x05 -#define D_8018E118_SIZE 0xC8 -#define D_8018E768_SIZE 0x08 -#define D_8018E7E8_SIZE 0x05 -#define D_8018E810_SIZE 0x05 - -/* This is where I'd put my static data, if I had any */ - -extern s32 D_800DDB24; -extern s16 D_80164478[]; - -extern u16* D_8018D9B0; -extern u8* D_8018D9B4; -extern u8* D_8018D9B8; -extern u8* D_8018D9BC; -extern void* D_8018D9C0; -extern s8 gGPPointsByCharacterId[8]; -extern s8 gCharacterIdByGPOverallRank[]; -extern s8 D_8018D9D8; -extern s8 D_8018D9D9; -extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; -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 struct_8018E118_entry D_8018E118[D_8018E118_SIZE]; -extern s32 gNumD_8018E118Entries; -extern Gfx* D_8018E75C; -extern s32 gNumD_8018E768Entries; -extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; -extern s32 gCycleFlashMenu; -extern s8 D_8018E7AC[]; -extern u32 D_8018E7B8[]; -extern u32 D_8018E7D0[]; -extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE]; -extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE]; -extern s8 gTextColor; -extern u8 D_8018ED90; -extern u8 D_8018ED91; -extern s8 D_8018E838[]; -extern s32 D_8018E840[]; -extern s32 D_8018E850[]; -extern s32 D_8018E854; -extern s32 D_8018E858[]; -extern s32 D_8018E85C; - -// extern u8 _textures_0aSegmentRomStart[]; -// extern u8 _textures_0bSegmentRomStart[]; - -extern Unk_D_800E70A0 D_800E70A0[]; -extern Unk_D_800E70A0 D_800E70E8[]; -extern Unk_D_800E70A0 D_800E7108[][4]; -extern Unk_D_800E70A0 D_800E7148[]; -extern Unk_D_800E70A0 D_800E7168[]; -extern Unk_D_800E70A0 D_800E7188[]; -extern Unk_D_800E70A0 D_800E7208[][2]; -extern Unk_D_800E70A0 D_800E7248[]; -extern Unk_D_800E70A0 D_800E7258[]; -extern Unk_D_800E70A0 D_800E7268[]; -extern Unk_D_800E70A0 D_800E7278[]; -extern Unk_D_800E70A0 D_800E72F8; -extern Unk_D_800E70A0 D_800E7300[]; -extern Unk_D_800E70A0 D_800E7360[]; -extern Unk_D_800E70A0 D_800E7380[]; -extern Unk_D_800E70A0 D_800E7390[]; -extern Unk_D_800E70A0 D_800E73C0[]; -extern Unk_D_800E70A0 D_800E73D0[]; -extern Unk_D_800E70A0 D_800E73E0[]; -extern Unk_D_800E70A0 D_800E7410[]; -extern Unk_D_800E70A0 D_800E7420[]; -extern Unk_D_800E70A0 D_800E7430[]; -extern Unk_D_800E70A0 D_800E7458[]; -extern Unk_D_800E70A0 D_800E7480[]; -extern RGBA16 D_800E74A8[]; -extern RGBA16 D_800E74D0[]; -extern RGBA16 D_800E74E8[]; -extern const s16 gGlyphDisplayWidth[]; -extern char* gCupNames[]; -extern const s8 D_800EFD64[]; -extern char* D_800E7678[]; -extern char* gDebugCharacterNames[]; -extern char* D_800E76A8[]; -extern char* D_800E76CC[]; -extern char* D_800E76DC[]; -extern char* gDebugScreenModeNames[]; -extern char* gDebugSoundModeNames[]; -extern char* gSoundModeNames[]; // D_800E7710 -extern char* D_800E7720[]; -extern char* D_800E7728[]; -extern char* D_800E7730; -extern char* D_800E7734[]; -extern char* D_800E7744[]; -extern char* gTextPauseButton[]; -extern char* D_800E7778[]; -extern char D_800E7780[]; -extern char* D_800E77A0[]; -extern char* D_800E77A8[]; -extern char D_800E77B4[]; -extern char D_800E77D8[]; -extern char* D_800E7834[]; -extern char* D_800E7840[]; -extern char* D_800E7848[]; -extern char* D_800E7860[]; -extern char* D_800E7868[]; -extern char* D_800E7878[]; -extern char* D_800E7884[]; -extern char* D_800E7890[]; -extern char* D_800E78D0[]; -extern char* D_800E7900[]; -extern char* D_800E7918[]; -extern char* D_800E7920[]; -extern char* D_800E7928[]; -extern char* D_800E7930[]; -extern char* D_800E7938[]; -extern char* D_800E7940[]; -extern char* D_800E7980[]; -extern char* D_800E798C[]; -extern char* D_800E7A34[]; -extern char* D_800E7A3C[]; -extern char* D_800E7A44; -extern char* D_800E7A48[]; -extern char* D_800E7A54[]; -extern char* D_800E7A60[]; -extern char* D_800E7A6C[]; -extern char* D_800E7A74[]; -extern char* D_800E7A80[]; -extern char* D_800E7A88[]; -extern char* D_800E7A98; -extern char* D_800E7A9C[]; -extern char* D_800E7AA4[]; -extern const s8 gGPPointRewards[]; -extern const s8 D_800F0B1C[]; -extern const s8 D_800F0B28[]; -extern const s8 D_800F0B50[]; -extern const s8 D_800F0B54[]; -extern RGBA16 D_800E7AC8[]; -extern RGBA16 D_800E7AE8[]; -extern MkTexture* D_800E7AF8[]; -extern MkTexture* D_800E7D0C[]; -extern MkAnimation* D_800E7D34[]; -extern MkTexture* D_800E7D4C[]; -extern MkTexture* D_800E7D54[]; -extern MkTexture* D_800E7D74[]; -extern MkTexture* D_800E7DC4[]; -extern MkAnimation* D_800E7E14[]; -extern MkAnimation* D_800E7E20[]; -extern MkAnimation* D_800E7E34[]; -extern MkTexture* gGlyphTextureLUT[]; -extern MkTexture* D_800E7FF0[]; -extern MkTexture* D_800E80A0[]; -extern MkTexture* D_800E8114[]; -extern MkTexture* D_800E8174[]; -extern MkTexture* D_800E817C[]; -extern MkTexture* D_800E81E4[]; -extern MkTexture* D_800E822C[]; -extern MkTexture* D_800E8234[]; -extern MkTexture* D_800E824C[]; -extern MkTexture* D_800E8254[]; -extern MkTexture* D_800E8274[]; -extern MkTexture* D_800E8294[]; -extern MkTexture* D_800E82B4[]; -extern MkTexture* D_800E82C4[]; -extern MkTexture* D_800E82F4[]; -extern MkAnimation* D_800E8320[]; -extern MkAnimation* D_800E8340[]; -extern MkAnimation* D_800E8360[]; -extern MkAnimation* gCharacterCelebrateAnimation[]; -extern MkAnimation* D_800E83A0[]; -extern MkAnimation* gCharacterDeselectAnimation[]; -extern MkAnimation* gCharacterSingleBlinkAnimation[]; -extern MkAnimation* gCharacterDoubleBlinkAnimation[]; -extern MkAnimation* gCharacterDefeatAnimation[]; -extern s32 D_800E8440[]; -extern s32 D_800E8460[]; -extern s32 D_800E8480[]; -extern s32 D_800E84A0[]; -extern Vtx* D_800E84C0[]; -extern Gfx* D_800E84CC[]; -extern Gfx* D_800E84EC[]; -extern Gfx* D_800E850C[]; -extern s8 D_800E852C; -extern f32 D_800E8530; -extern f32 D_800E8534; -extern Unk_D_800E70A0 D_800E8538[]; -extern Unk_D_800E70A0 D_800E8540[]; -extern Unk_D_800E70A0 D_800E85C0[]; -extern Unk_D_800E70A0 D_800E8600[]; - -extern s32 gControllerPak1NumPagesFree; -extern s32 gControllerPak1FileNote; -extern s32 gControllerPak2FileNote; - -extern f32 D_8018ED98; -extern f32 D_8018ED9C; -extern f32 D_8018EDA0; - -extern f32 D_8018EDA4; -extern f32 D_8018EDA8; -extern f32 D_8018EDAC; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/code_800AF9B0.c b/src/code_800AF9B0.c index fdc1c32d2..732a6e8e9 100644 --- a/src/code_800AF9B0.c +++ b/src/code_800AF9B0.c @@ -4,7 +4,7 @@ #include "code_800AF9B0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "memory.h" #include "main.h" #include "math_util.h" diff --git a/src/data/textures.c b/src/data/textures.c index 55fb1d6a8..ba62a4ed4 100644 --- a/src/data/textures.c +++ b/src/data/textures.c @@ -2,7 +2,7 @@ * @file textures.c * @brief Texture data. * start in ram 0x801978D0 - * look like link to code_80091750 + * look like link to menu_items */ #include #include @@ -10,1429 +10,1429 @@ #include "textures.h" /** - * @brief MkTexture of a tiny font texture of number 0 + * @brief MenuTexture of a tiny font texture of number 0 * - */ -MkTexture D_02000000[2] = { - { 3, 0, gTextureTinyFont0, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, + */ +MenuTexture D_02000000[2] = { + { 3, gTextureTinyFont0, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 1 + * @brief MenuTexture of a tiny font texture of number 1 * */ -MkTexture D_02000028[2] = { - { 3, 0, gTextureTinyFont1, 8, 8, 0, 0, 0x49, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000028[2] = { + { 3, gTextureTinyFont1, 8, 8, 0, 0, 0x49}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 2 + * @brief MenuTexture of a tiny font texture of number 2 * */ -MkTexture D_02000050[2] = { - { 3, 0, gTextureTinyFont2, 8, 8, 0, 0, 0x73, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000050[2] = { + { 3, gTextureTinyFont2, 8, 8, 0, 0, 0x73}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 3 + * @brief MenuTexture of a tiny font texture of number 3 * */ -MkTexture D_02000078[2] = { - { 3, 0, gTextureTinyFont3, 8, 8, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000078[2] = { + { 3, gTextureTinyFont3, 8, 8, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 4 + * @brief MenuTexture of a tiny font texture of number 4 * */ -MkTexture D_020000A0[2] = { - { 3, 0, gTextureTinyFont4, 8, 8, 0, 0, 0x5a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020000A0[2] = { + { 3, gTextureTinyFont4, 8, 8, 0, 0, 0x5a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 5 + * @brief MenuTexture of a tiny font texture of number 5 * */ -MkTexture D_020000C8[2] = { - { 3, 0, gTextureTinyFont5, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020000C8[2] = { + { 3, gTextureTinyFont5, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 6 + * @brief MenuTexture of a tiny font texture of number 6 * */ -MkTexture D_020000F0[2] = { - { 3, 0, gTextureTinyFont6, 8, 8, 0, 0, 0x74, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020000F0[2] = { + { 3, gTextureTinyFont6, 8, 8, 0, 0, 0x74}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 7 + * @brief MenuTexture of a tiny font texture of number 7 * */ -MkTexture D_02000118[2] = { - { 3, 0, gTextureTinyFont7, 8, 8, 0, 0, 0x5e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000118[2] = { + { 3, gTextureTinyFont7, 8, 8, 0, 0, 0x5e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 8 + * @brief MenuTexture of a tiny font texture of number 8 * */ -MkTexture D_02000140[2] = { - { 3, 0, gTextureTinyFont8, 8, 8, 0, 0, 0x77, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000140[2] = { + { 3, gTextureTinyFont8, 8, 8, 0, 0, 0x77}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of number 9 + * @brief MenuTexture of a tiny font texture of number 9 * */ -MkTexture D_02000168[2] = { - { 3, 0, gTextureTinyFont9, 8, 8, 0, 0, 0x74, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000168[2] = { + { 3, gTextureTinyFont9, 8, 8, 0, 0, 0x74}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter A + * @brief MenuTexture of a tiny font texture of letter A * */ -MkTexture D_02000190[2] = { - { 3, 0, gTextureTinyFontA, 8, 8, 0, 0, 0x6b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000190[2] = { + { 3, gTextureTinyFontA, 8, 8, 0, 0, 0x6b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter B + * @brief MenuTexture of a tiny font texture of letter B * */ -MkTexture D_020001B8[2] = { - { 3, 0, gTextureTinyFontB, 8, 8, 0, 0, 0x7d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020001B8[2] = { + { 3, gTextureTinyFontB, 8, 8, 0, 0, 0x7d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter C + * @brief MenuTexture of a tiny font texture of letter C * */ -MkTexture D_020001E0[2] = { - { 3, 0, gTextureTinyFontC, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020001E0[2] = { + { 3, gTextureTinyFontC, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter D + * @brief MenuTexture of a tiny font texture of letter D * */ -MkTexture D_02000208[2] = { - { 3, 0, gTextureTinyFontD, 8, 8, 0, 0, 0x71, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000208[2] = { + { 3, gTextureTinyFontD, 8, 8, 0, 0, 0x71}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter E + * @brief MenuTexture of a tiny font texture of letter E * */ -MkTexture D_02000230[2] = { - { 3, 0, gTextureTinyFontE, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000230[2] = { + { 3, gTextureTinyFontE, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter F + * @brief MenuTexture of a tiny font texture of letter F * */ -MkTexture D_02000258[2] = { - { 3, 0, gTextureTinyFontF, 8, 8, 0, 0, 0x63, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000258[2] = { + { 3, gTextureTinyFontF, 8, 8, 0, 0, 0x63}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter G + * @brief MenuTexture of a tiny font texture of letter G * */ -MkTexture D_02000280[2] = { - { 3, 0, gTextureTinyFontG, 8, 8, 0, 0, 0x73, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000280[2] = { + { 3, gTextureTinyFontG, 8, 8, 0, 0, 0x73}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter H + * @brief MenuTexture of a tiny font texture of letter H * */ -MkTexture D_020002A8[2] = { - { 3, 0, gTextureTinyFontH, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020002A8[2] = { + { 3, gTextureTinyFontH, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter I + * @brief MenuTexture of a tiny font texture of letter I * */ -MkTexture D_020002D0[2] = { - { 3, 0, gTextureTinyFontI, 8, 8, 0, 0, 0x48, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020002D0[2] = { + { 3, gTextureTinyFontI, 8, 8, 0, 0, 0x48}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter J + * @brief MenuTexture of a tiny font texture of letter J * */ -MkTexture D_020002F8[2] = { - { 3, 0, gTextureTinyFontJ, 8, 8, 0, 0, 0x52, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020002F8[2] = { + { 3, gTextureTinyFontJ, 8, 8, 0, 0, 0x52}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter K + * @brief MenuTexture of a tiny font texture of letter K * */ -MkTexture D_02000320[2] = { - { 3, 0, gTextureTinyFontK, 8, 8, 0, 0, 0x6f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000320[2] = { + { 3, gTextureTinyFontK, 8, 8, 0, 0, 0x6f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter L + * @brief MenuTexture of a tiny font texture of letter L * */ -MkTexture D_02000348[2] = { - { 3, 0, gTextureTinyFontL, 8, 8, 0, 0, 0x4b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000348[2] = { + { 3, gTextureTinyFontL, 8, 8, 0, 0, 0x4b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter M + * @brief MenuTexture of a tiny font texture of letter M * */ -MkTexture D_02000370[2] = { - { 3, 0, gTextureTinyFontM, 8, 8, 0, 0, 0x7c, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000370[2] = { + { 3, gTextureTinyFontM, 8, 8, 0, 0, 0x7c}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter N + * @brief MenuTexture of a tiny font texture of letter N * */ -MkTexture D_02000398[2] = { - { 3, 0, gTextureTinyFontN, 8, 8, 0, 0, 0x7b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000398[2] = { + { 3, gTextureTinyFontN, 8, 8, 0, 0, 0x7b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter O + * @brief MenuTexture of a tiny font texture of letter O * */ -MkTexture D_020003C0[2] = { - { 3, 0, gTextureTinyFontO, 8, 8, 0, 0, 0x76, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020003C0[2] = { + { 3, gTextureTinyFontO, 8, 8, 0, 0, 0x76}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter P + * @brief MenuTexture of a tiny font texture of letter P * */ -MkTexture D_020003E8[2] = { - { 3, 0, gTextureTinyFontP, 8, 8, 0, 0, 0x6a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020003E8[2] = { + { 3, gTextureTinyFontP, 8, 8, 0, 0, 0x6a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter Q + * @brief MenuTexture of a tiny font texture of letter Q * */ -MkTexture D_02000410[2] = { - { 3, 0, gTextureTinyFontQ, 8, 8, 0, 0, 0x77, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000410[2] = { + { 3, gTextureTinyFontQ, 8, 8, 0, 0, 0x77}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter R + * @brief MenuTexture of a tiny font texture of letter R * */ -MkTexture D_02000438[2] = { - { 3, 0, gTextureTinyFontR, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000438[2] = { + { 3, gTextureTinyFontR, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter S + * @brief MenuTexture of a tiny font texture of letter S * */ -MkTexture D_02000460[2] = { - { 3, 0, gTextureTinyFontS, 8, 8, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000460[2] = { + { 3, gTextureTinyFontS, 8, 8, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter T + * @brief MenuTexture of a tiny font texture of letter T * */ -MkTexture D_02000488[2] = { - { 3, 0, gTextureTinyFontT, 8, 8, 0, 0, 0x54, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000488[2] = { + { 3, gTextureTinyFontT, 8, 8, 0, 0, 0x54}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter U + * @brief MenuTexture of a tiny font texture of letter U * */ -MkTexture D_020004B0[2] = { - { 3, 0, gTextureTinyFontU, 8, 8, 0, 0, 0x62, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020004B0[2] = { + { 3, gTextureTinyFontU, 8, 8, 0, 0, 0x62}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter V + * @brief MenuTexture of a tiny font texture of letter V * */ -MkTexture D_020004D8[2] = { - { 3, 0, gTextureTinyFontV, 8, 8, 0, 0, 0x5e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020004D8[2] = { + { 3, gTextureTinyFontV, 8, 8, 0, 0, 0x5e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter W + * @brief MenuTexture of a tiny font texture of letter W * */ -MkTexture D_02000500[2] = { - { 3, 0, gTextureTinyFontW, 8, 8, 0, 0, 0x7c, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000500[2] = { + { 3, gTextureTinyFontW, 8, 8, 0, 0, 0x7c}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter X + * @brief MenuTexture of a tiny font texture of letter X * */ -MkTexture D_02000528[2] = { - { 3, 0, gTextureTinyFontX, 8, 8, 0, 0, 0x6b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000528[2] = { + { 3, gTextureTinyFontX, 8, 8, 0, 0, 0x6b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter Y + * @brief MenuTexture of a tiny font texture of letter Y * */ -MkTexture D_02000550[2] = { - { 3, 0, gTextureTinyFontY, 8, 8, 0, 0, 0x51, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000550[2] = { + { 3, gTextureTinyFontY, 8, 8, 0, 0, 0x51}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of letter Z + * @brief MenuTexture of a tiny font texture of letter Z * */ -MkTexture D_02000578[2] = { - { 3, 0, gTextureTinyFontZ, 8, 8, 0, 0, 0x68, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000578[2] = { + { 3, gTextureTinyFontZ, 8, 8, 0, 0, 0x68}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '!' + * @brief MenuTexture of a tiny font texture of '!' * */ -MkTexture D_020005A0[2] = { - { 3, 0, gTextureTinyFontExclamationMark, 8, 8, 0, 0, 0x46, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020005A0[2] = { + { 3, gTextureTinyFontExclamationMark, 8, 8, 0, 0, 0x46}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '"' + * @brief MenuTexture of a tiny font texture of '"' * */ -MkTexture D_020005C8[2] = { - { 3, 0, gTextureTinyFontDoubleQuote, 8, 8, 0, 0, 0x37, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020005C8[2] = { + { 3, gTextureTinyFontDoubleQuote, 8, 8, 0, 0, 0x37}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '#' + * @brief MenuTexture of a tiny font texture of '#' * */ -MkTexture D_020005F0[2] = { - { 3, 0, gTextureTinyFontHash, 8, 8, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020005F0[2] = { + { 3, gTextureTinyFontHash, 8, 8, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of "'" + * @brief MenuTexture of a tiny font texture of "'" * */ -MkTexture D_02000618[2] = { - { 3, 0, gTextureTinyFontSingleQuote, 8, 8, 0, 0, 0x2f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000618[2] = { + { 3, gTextureTinyFontSingleQuote, 8, 8, 0, 0, 0x2f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '*' + * @brief MenuTexture of a tiny font texture of '*' * */ -MkTexture D_02000640[2] = { - { 3, 0, gTextureTinyFontAsterisk, 8, 8, 0, 0, 0x6a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000640[2] = { + { 3, gTextureTinyFontAsterisk, 8, 8, 0, 0, 0x6a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '+' + * @brief MenuTexture of a tiny font texture of '+' * */ -MkTexture D_02000668[2] = { - { 3, 0, gTextureTinyFontPlus, 8, 8, 0, 0, 0x51, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000668[2] = { + { 3, gTextureTinyFontPlus, 8, 8, 0, 0, 0x51}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000690[2] = { - { 3, 0, gTexture7EEB18, 8, 8, 0, 0, 0x30, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000690[2] = { + { 3, gTexture7EEB18, 8, 8, 0, 0, 0x30}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '-' + * @brief MenuTexture of a tiny font texture of '-' * */ -MkTexture D_020006B8[2] = { - { 3, 0, gTextureTinyFontMinus, 8, 8, 0, 0, 0x35, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020006B8[2] = { + { 3, gTextureTinyFontMinus, 8, 8, 0, 0, 0x35}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of ',' + * @brief MenuTexture of a tiny font texture of ',' * */ -MkTexture D_020006E0[2] = { - { 3, 0, gTextureTinyFontComma, 8, 8, 0, 0, 0x31, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020006E0[2] = { + { 3, gTextureTinyFontComma, 8, 8, 0, 0, 0x31}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '/' + * @brief MenuTexture of a tiny font texture of '/' * */ -MkTexture D_02000708[2] = { - { 3, 0, gTextureTinyFontForwardSlash, 8, 8, 0, 0, 0x4f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000708[2] = { + { 3, gTextureTinyFontForwardSlash, 8, 8, 0, 0, 0x4f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of ';' + * @brief MenuTexture of a tiny font texture of ';' * */ -MkTexture D_02000730[2] = { - { 3, 0, gTextureTinyFontColon, 8, 8, 0, 0, 0x38, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000730[2] = { + { 3, gTextureTinyFontColon, 8, 8, 0, 0, 0x38}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000758[2] = { - { 3, 0, gTexture7EEC34, 8, 8, 0, 0, 0x51, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000758[2] = { + { 3, gTexture7EEC34, 8, 8, 0, 0, 0x51}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a tiny font texture of '?' + * @brief MenuTexture of a tiny font texture of '?' * */ -MkTexture D_02000780[2] = { - { 3, 0, gTextureTinyFontQuestion, 8, 8, 0, 0, 0x60, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000780[2] = { + { 3, gTextureTinyFontQuestion, 8, 8, 0, 0, 0x60}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020007A8[2] = { - { 3, 0, gTexture7EECE4, 8, 8, 0, 0, 0x8f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020007A8[2] = { + { 3, gTexture7EECE4, 8, 8, 0, 0, 0x8f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020007D0[2] = { - { 3, 0, gTexture7EED74, 8, 8, 0, 0, 0x3d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020007D0[2] = { + { 3, gTexture7EED74, 8, 8, 0, 0, 0x3d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020007F8[2] = { - { 3, 0, gTexture7EEDB0, 8, 8, 0, 0, 0x37, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020007F8[2] = { + { 3, gTexture7EEDB0, 8, 8, 0, 0, 0x37}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000820[2] = { - { 3, 0, gTexture7EEDE8, 8, 8, 0, 0, 0x39, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000820[2] = { + { 3, gTexture7EEDE8, 8, 8, 0, 0, 0x39}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000848[2] = { - { 3, 0, gTexture7EEE20, 8, 8, 0, 0, 0x5b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000848[2] = { + { 3, gTexture7EEE20, 8, 8, 0, 0, 0x5b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000870[2] = { - { 3, 0, gTexture7EEE7C, 8, 8, 0, 0, 0x55, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000870[2] = { + { 3, gTexture7EEE7C, 8, 8, 0, 0, 0x55}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000898[2] = { - { 3, 0, gTexture7EEED0, 8, 8, 0, 0, 0x6a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000898[2] = { + { 3, gTexture7EEED0, 8, 8, 0, 0, 0x6a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020008C0[2] = { - { 3, 0, gTexture7EEF3C, 8, 8, 0, 0, 0x55, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020008C0[2] = { + { 3, gTexture7EEF3C, 8, 8, 0, 0, 0x55}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020008E8[2] = { - { 3, 0, gTexture7EEF90, 8, 8, 0, 0, 0x62, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020008E8[2] = { + { 3, gTexture7EEF90, 8, 8, 0, 0, 0x62}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000910[2] = { - { 3, 0, gTexture7EEFF4, 8, 8, 0, 0, 0x64, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000910[2] = { + { 3, gTexture7EEFF4, 8, 8, 0, 0, 0x64}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000938[2] = { - { 3, 0, gTexture7EF058, 8, 8, 0, 0, 0x5b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000938[2] = { + { 3, gTexture7EF058, 8, 8, 0, 0, 0x5b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000960[2] = { - { 3, 0, gTexture7EF0B4, 8, 8, 0, 0, 0x5d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000960[2] = { + { 3, gTexture7EF0B4, 8, 8, 0, 0, 0x5d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000988[2] = { - { 3, 0, gTexture7EF110, 8, 8, 0, 0, 0x6d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000988[2] = { + { 3, gTexture7EF110, 8, 8, 0, 0, 0x6d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020009B0[2] = { - { 3, 0, gTexture7EF17C, 8, 8, 0, 0, 0x73, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020009B0[2] = { + { 3, gTexture7EF17C, 8, 8, 0, 0, 0x73}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020009D8[2] = { - { 3, 0, gTexture7EF1F0, 8, 8, 0, 0, 0x5e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020009D8[2] = { + { 3, gTexture7EF1F0, 8, 8, 0, 0, 0x5e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000A00[2] = { - { 3, 0, gTexture7EF250, 8, 8, 0, 0, 0x69, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000A00[2] = { + { 3, gTexture7EF250, 8, 8, 0, 0, 0x69}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000A28[2] = { - { 3, 0, gTexture7EF2B8, 8, 8, 0, 0, 0x5b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000A28[2] = { + { 3, gTexture7EF2B8, 8, 8, 0, 0, 0x5b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000A50[2] = { - { 3, 0, gTexture7EF314, 8, 8, 0, 0, 0x73, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000A50[2] = { + { 3, gTexture7EF314, 8, 8, 0, 0, 0x73}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000A78[2] = { - { 3, 0, gTexture7EF388, 8, 8, 0, 0, 0x6f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000A78[2] = { + { 3, gTexture7EF388, 8, 8, 0, 0, 0x6f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000AA0[2] = { - { 3, 0, gTexture7EF3F8, 8, 8, 0, 0, 0x79, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000AA0[2] = { + { 3, gTexture7EF3F8, 8, 8, 0, 0, 0x79}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000AC8[2] = { - { 3, 0, gTexture7EF470, 8, 8, 0, 0, 0x74, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000AC8[2] = { + { 3, gTexture7EF470, 8, 8, 0, 0, 0x74}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000AF0[2] = { - { 3, 0, gTexture7EF4E4, 8, 8, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000AF0[2] = { + { 3, gTexture7EF4E4, 8, 8, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000B18[2] = { - { 3, 0, gTexture7EF554, 8, 8, 0, 0, 0x6c, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000B18[2] = { + { 3, gTexture7EF554, 8, 8, 0, 0, 0x6c}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000B40[2] = { - { 3, 0, gTexture7EF5C0, 8, 8, 0, 0, 0x61, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000B40[2] = { + { 3, gTexture7EF5C0, 8, 8, 0, 0, 0x61}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000B68[2] = { - { 3, 0, gTexture7EF620, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000B68[2] = { + { 3, gTexture7EF620, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000B90[2] = { - { 3, 0, gTexture7EF694, 8, 8, 0, 0, 0x74, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000B90[2] = { + { 3, gTexture7EF694, 8, 8, 0, 0, 0x74}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000BB8[2] = { - { 3, 0, gTexture7EF708, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000BB8[2] = { + { 3, gTexture7EF708, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000BE0[2] = { - { 3, 0, gTexture7EF77C, 8, 8, 0, 0, 0x6b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000BE0[2] = { + { 3, gTexture7EF77C, 8, 8, 0, 0, 0x6b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000C08[2] = { - { 3, 0, gTexture7EF7E8, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000C08[2] = { + { 3, gTexture7EF7E8, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000C30[2] = { - { 3, 0, gTexture7EF85C, 8, 8, 0, 0, 0x6b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000C30[2] = { + { 3, gTexture7EF85C, 8, 8, 0, 0, 0x6b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000C58[2] = { - { 3, 0, gTexture7EF8C8, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000C58[2] = { + { 3, gTexture7EF8C8, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000C80[2] = { - { 3, 0, gTexture7EF93C, 8, 8, 0, 0, 0x76, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000C80[2] = { + { 3, gTexture7EF93C, 8, 8, 0, 0, 0x76}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000CA8[2] = { - { 3, 0, gTexture7EF9B4, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000CA8[2] = { + { 3, gTexture7EF9B4, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000CD0[2] = { - { 3, 0, gTexture7EFA2C, 8, 8, 0, 0, 0x7b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000CD0[2] = { + { 3, gTexture7EFA2C, 8, 8, 0, 0, 0x7b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000CF8[2] = { - { 3, 0, gTexture7EFAA8, 8, 8, 0, 0, 0x57, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000CF8[2] = { + { 3, gTexture7EFAA8, 8, 8, 0, 0, 0x57}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000D20[2] = { - { 3, 0, gTexture7EFB00, 8, 8, 0, 0, 0x63, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000D20[2] = { + { 3, gTexture7EFB00, 8, 8, 0, 0, 0x63}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000D48[2] = { - { 3, 0, gTexture7EFB64, 8, 8, 0, 0, 0x57, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000D48[2] = { + { 3, gTexture7EFB64, 8, 8, 0, 0, 0x57}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000D70[2] = { - { 3, 0, gTexture7EFBBC, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000D70[2] = { + { 3, gTexture7EFBBC, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000D98[2] = { - { 3, 0, gTexture7EFC30, 8, 8, 0, 0, 0x7b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000D98[2] = { + { 3, gTexture7EFC30, 8, 8, 0, 0, 0x7b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000DC0[2] = { - { 3, 0, gTexture7EFCAC, 8, 8, 0, 0, 0x53, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000DC0[2] = { + { 3, gTexture7EFCAC, 8, 8, 0, 0, 0x53}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000DE8[2] = { - { 3, 0, gTexture7EFD00, 8, 8, 0, 0, 0x60, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000DE8[2] = { + { 3, gTexture7EFD00, 8, 8, 0, 0, 0x60}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000E10[2] = { - { 3, 0, gTexture7EFD60, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000E10[2] = { + { 3, gTexture7EFD60, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000E38[2] = { - { 3, 0, gTexture7EFDD4, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000E38[2] = { + { 3, gTexture7EFDD4, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000E60[2] = { - { 3, 0, gTexture7EFE48, 8, 8, 0, 0, 0x57, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000E60[2] = { + { 3, gTexture7EFE48, 8, 8, 0, 0, 0x57}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000E88[2] = { - { 3, 0, gTexture7EFEA0, 8, 8, 0, 0, 0x8d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000E88[2] = { + { 3, gTexture7EFEA0, 8, 8, 0, 0, 0x8d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000EB0[2] = { - { 3, 0, gTexture7EFF2C, 8, 8, 0, 0, 0x63, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000EB0[2] = { + { 3, gTexture7EFF2C, 8, 8, 0, 0, 0x63}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000ED8[2] = { - { 3, 0, gTexture7EFF90, 8, 8, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000ED8[2] = { + { 3, gTexture7EFF90, 8, 8, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000F00[2] = { - { 3, 0, gTexture7F0000, 8, 8, 0, 0, 0x6d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000F00[2] = { + { 3, gTexture7F0000, 8, 8, 0, 0, 0x6d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000F28[2] = { - { 3, 0, gTexture7F006C, 8, 8, 0, 0, 0x6a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000F28[2] = { + { 3, gTexture7F006C, 8, 8, 0, 0, 0x6a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000F50[2] = { - { 3, 0, gTexture7F00D8, 8, 8, 0, 0, 0x80, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000F50[2] = { + { 3, gTexture7F00D8, 8, 8, 0, 0, 0x80}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000F78[2] = { - { 3, 0, gTexture7F0158, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000F78[2] = { + { 3, gTexture7F0158, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000FA0[2] = { - { 3, 0, gTexture7F01D0, 8, 8, 0, 0, 0x6a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000FA0[2] = { + { 3, gTexture7F01D0, 8, 8, 0, 0, 0x6a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000FC8[2] = { - { 3, 0, gTexture7F023C, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000FC8[2] = { + { 3, gTexture7F023C, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02000FF0[2] = { - { 3, 0, gTexture7F02B4, 8, 8, 0, 0, 0x79, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02000FF0[2] = { + { 3, gTexture7F02B4, 8, 8, 0, 0, 0x79}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001018[2] = { - { 3, 0, gTexture7F032C, 8, 8, 0, 0, 0x63, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001018[2] = { + { 3, gTexture7F032C, 8, 8, 0, 0, 0x63}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001040[2] = { - { 3, 0, gTexture7F0390, 8, 8, 0, 0, 0x72, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001040[2] = { + { 3, gTexture7F0390, 8, 8, 0, 0, 0x72}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001068[2] = { - { 3, 0, gTexture7F0404, 8, 8, 0, 0, 0x6d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001068[2] = { + { 3, gTexture7F0404, 8, 8, 0, 0, 0x6d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001090[2] = { - { 3, 0, gTexture7F0470, 8, 8, 0, 0, 0x7d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001090[2] = { + { 3, gTexture7F0470, 8, 8, 0, 0, 0x7d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020010B8[2] = { - { 3, 0, gTexture7F04EC, 8, 8, 0, 0, 0x6e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020010B8[2] = { + { 3, gTexture7F04EC, 8, 8, 0, 0, 0x6e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020010E0[2] = { - { 3, 0, gTexture7F055C, 8, 8, 0, 0, 0x93, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020010E0[2] = { + { 3, gTexture7F055C, 8, 8, 0, 0, 0x93}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001108[2] = { - { 3, 0, gTexture7F05F0, 8, 8, 0, 0, 0x7f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001108[2] = { + { 3, gTexture7F05F0, 8, 8, 0, 0, 0x7f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001130[2] = { - { 3, 0, gTexture7F0670, 8, 8, 0, 0, 0x7b, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001130[2] = { + { 3, gTexture7F0670, 8, 8, 0, 0, 0x7b}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001158[2] = { - { 3, 0, gTexture7F06EC, 8, 8, 0, 0, 0x7a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001158[2] = { + { 3, gTexture7F06EC, 8, 8, 0, 0, 0x7a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001180[2] = { - { 3, 0, gTexture7F0768, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001180[2] = { + { 3, gTexture7F0768, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020011A8[2] = { - { 3, 0, gTexture7F07E0, 8, 8, 0, 0, 0x77, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020011A8[2] = { + { 3, gTexture7F07E0, 8, 8, 0, 0, 0x77}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020011D0[2] = { - { 3, 0, gTexture7F0858, 8, 8, 0, 0, 0x7f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020011D0[2] = { + { 3, gTexture7F0858, 8, 8, 0, 0, 0x7f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020011F8[2] = { - { 3, 0, gTexture7F08D8, 8, 8, 0, 0, 0x71, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020011F8[2] = { + { 3, gTexture7F08D8, 8, 8, 0, 0, 0x71}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001220[2] = { - { 3, 0, gTexture7F0948, 8, 8, 0, 0, 0x87, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001220[2] = { + { 3, gTexture7F0948, 8, 8, 0, 0, 0x87}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001248[2] = { - { 3, 0, gTexture7F09D0, 8, 8, 0, 0, 0x6d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001248[2] = { + { 3, gTexture7F09D0, 8, 8, 0, 0, 0x6d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001270[2] = { - { 3, 0, gTexture7F0A3C, 8, 8, 0, 0, 0x7e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001270[2] = { + { 3, gTexture7F0A3C, 8, 8, 0, 0, 0x7e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001298[2] = { - { 3, 0, gTexture7F0ABC, 8, 8, 0, 0, 0x77, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001298[2] = { + { 3, gTexture7F0ABC, 8, 8, 0, 0, 0x77}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020012C0[2] = { - { 3, 0, gTexture7F0B34, 8, 8, 0, 0, 0x7d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020012C0[2] = { + { 3, gTexture7F0B34, 8, 8, 0, 0, 0x7d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020012E8[2] = { - { 3, 0, gTexture7F0BB0, 8, 8, 0, 0, 0x75, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020012E8[2] = { + { 3, gTexture7F0BB0, 8, 8, 0, 0, 0x75}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001310[2] = { - { 3, 0, gTexture7F0C24, 8, 8, 0, 0, 0x71, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001310[2] = { + { 3, gTexture7F0C24, 8, 8, 0, 0, 0x71}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001338[2] = { - { 3, 0, gTexture7F0C94, 8, 8, 0, 0, 0x77, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001338[2] = { + { 3, gTexture7F0C94, 8, 8, 0, 0, 0x77}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001360[2] = { - { 3, 0, gTexture7F0D0C, 8, 8, 0, 0, 0x7f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001360[2] = { + { 3, gTexture7F0D0C, 8, 8, 0, 0, 0x7f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001388[2] = { - { 3, 0, gTexture7F0D8C, 8, 8, 0, 0, 0x61, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001388[2] = { + { 3, gTexture7F0D8C, 8, 8, 0, 0, 0x61}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020013B0[2] = { - { 3, 0, gTexture7F0DEC, 8, 8, 0, 0, 0x6e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020013B0[2] = { + { 3, gTexture7F0DEC, 8, 8, 0, 0, 0x6e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020013D8[2] = { - { 3, 0, gTexture7F0E5C, 8, 8, 0, 0, 0x87, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020013D8[2] = { + { 3, gTexture7F0E5C, 8, 8, 0, 0, 0x87}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001400[2] = { - { 3, 0, gTexture7F0EE4, 8, 8, 0, 0, 0x78, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001400[2] = { + { 3, gTexture7F0EE4, 8, 8, 0, 0, 0x78}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001428[2] = { - { 3, 0, gTexture7F0F5C, 8, 8, 0, 0, 0x7d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001428[2] = { + { 3, gTexture7F0F5C, 8, 8, 0, 0, 0x7d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001450[2] = { - { 3, 0, gTexture7F0FD8, 8, 8, 0, 0, 0x60, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001450[2] = { + { 3, gTexture7F0FD8, 8, 8, 0, 0, 0x60}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001478[2] = { - { 3, 0, gTexture7F1038, 8, 8, 0, 0, 0x65, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001478[2] = { + { 3, gTexture7F1038, 8, 8, 0, 0, 0x65}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020014A0[2] = { - { 3, 0, gTexture7F109C, 8, 8, 0, 0, 0x87, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020014A0[2] = { + { 3, gTexture7F109C, 8, 8, 0, 0, 0x87}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of bar ? + * @brief MenuTexture of bar ? * */ -MkTexture D_020014C8[6] = { - { 0, 0, gTextureGoldBar, 256, 40, 32, 25, 0xd4c, 0 }, { 0, 0, gTexturePinkBar, 90, 16, 65, 70, 0x468, 0 }, - { 0, 0, gTexturePinkBar, 90, 16, 164, 70, 0x468, 0 }, { 0, 0, gTexturePinkBar, 90, 16, 65, 200, 0x468, 0 }, - { 0, 0, gTexturePinkBar, 90, 16, 164, 200, 0x468, 0 }, { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020014C8[6] = { + { 0, gTextureGoldBar, 256, 40, 32, 25, 0xd4c}, { 0, gTexturePinkBar, 90, 16, 65, 70, 0x468}, + { 0, gTexturePinkBar, 90, 16, 164, 70, 0x468}, { 0, gTexturePinkBar, 90, 16, 65, 200, 0x468}, + { 0, gTexturePinkBar, 90, 16, 164, 200, 0x468}, { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of gold ? + * @brief MenuTexture of gold ? * */ -MkTexture D_02001540[3] = { - { 0, 0, gTextureGreenGoldStripe, 256, 29, 32, 91, 0xbec, 0 }, - { 0, 0, gTextureGoldStripe, 256, 15, 32, 180, 0x6f8, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001540[3] = { + { 0, gTextureGreenGoldStripe, 256, 29, 32, 91, 0xbec}, + { 0, gTextureGoldStripe, 256, 15, 32, 180, 0x6f8}, + { 0, NULL, 0, 0, 0, 0, 0}, }; -MkTexture D_0200157C[2] = { - { 0, 0, gTextureWhiteStripe, 256, 10, 0, 0, 0xe4, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200157C[2] = { + { 0, gTextureWhiteStripe, 256, 10, 0, 0, 0xe4}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020015A4[2] = { - { 3, 0, gTexture7ED50C, 256, 5, 32, 120, 0x196, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020015A4[2] = { + { 3, gTexture7ED50C, 256, 5, 32, 120, 0x196}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of select record ? + * @brief MenuTexture of select record ? * */ -MkTexture D_020015CC[5] = { - { 3, 0, gTextureSelectRecord, 68, 10, 75, 74, 0x378, 0 }, - { 3, 0, gTextureTextEnd, 20, 10, 200, 74, 0x12f, 0 }, - { 3, 0, gTextureTextErase, 28, 10, 96, 204, 0x19e, 0 }, - { 3, 0, gTextureTextQuit, 24, 10, 198, 204, 0x149, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020015CC[5] = { + { 3, gTextureSelectRecord, 68, 10, 75, 74, 0x378}, + { 3, gTextureTextEnd, 20, 10, 200, 74, 0x12f}, + { 3, gTextureTextErase, 28, 10, 96, 204, 0x19e}, + { 3, gTextureTextQuit, 24, 10, 198, 204, 0x149}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of select record ? + * @brief MenuTexture of select record ? * */ -MkTexture D_02001630[2] = { - { 3, 0, gTextureTableOfContents, 88, 10, 116, 94, 0x42d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001630[2] = { + { 3, gTextureTableOfContents, 88, 10, 116, 94, 0x42d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of select record ? + * @brief MenuTexture of select record ? * */ -MkTexture D_02001658[5] = { - { 3, 0, gTextureTextHash, 8, 10, 48, 108, 0x07e, 0 }, - { 3, 0, gTextureTextGameData, 56, 10, 132, 108, 0x2c4, 0 }, - { 3, 0, gTextureTextPages, 32, 10, 252, 108, 0x1c1, 0 }, - { 3, 0, gTextureTextPagesFree, 56, 10, 132, 184, 0x2c2, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001658[5] = { + { 3, gTextureTextHash, 8, 10, 48, 108, 0x07e}, + { 3, gTextureTextGameData, 56, 10, 132, 108, 0x2c4}, + { 3, gTextureTextPages, 32, 10, 252, 108, 0x1c1}, + { 3, gTextureTextPagesFree, 56, 10, 132, 184, 0x2c2}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 0 + * @brief MenuTexture of a small font texture of number 0 * */ -MkTexture D_020016BC[2] = { - { 3, 0, gTextureSmallFont0, 8, 9, 0, 0, 0x8e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020016BC[2] = { + { 3, gTextureSmallFont0, 8, 9, 0, 0, 0x8e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 1 + * @brief MenuTexture of a small font texture of number 1 * */ -MkTexture D_020016E4[2] = { - { 3, 0, gTextureSmallFont1, 8, 9, 0, 0, 0x59, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020016E4[2] = { + { 3, gTextureSmallFont1, 8, 9, 0, 0, 0x59}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 2 + * @brief MenuTexture of a small font texture of number 2 * */ -MkTexture D_0200170C[2] = { - { 3, 0, gTextureSmallFont2, 8, 9, 0, 0, 0x97, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200170C[2] = { + { 3, gTextureSmallFont2, 8, 9, 0, 0, 0x97}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 3 + * @brief MenuTexture of a small font texture of number 3 * */ -MkTexture D_02001734[2] = { - { 3, 0, gTextureSmallFont3, 8, 9, 0, 0, 0x95, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001734[2] = { + { 3, gTextureSmallFont3, 8, 9, 0, 0, 0x95}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 4 + * @brief MenuTexture of a small font texture of number 4 * */ -MkTexture D_0200175C[2] = { - { 3, 0, gTextureSmallFont4, 8, 9, 0, 0, 0x87, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200175C[2] = { + { 3, gTextureSmallFont4, 8, 9, 0, 0, 0x87}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 5 + * @brief MenuTexture of a small font texture of number 5 * */ -MkTexture D_02001784[2] = { - { 3, 0, gTextureSmallFont5, 8, 9, 0, 0, 0x99, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001784[2] = { + { 3, gTextureSmallFont5, 8, 9, 0, 0, 0x99}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 6 + * @brief MenuTexture of a small font texture of number 6 * */ -MkTexture D_020017AC[2] = { - { 3, 0, gTextureSmallFont6, 8, 9, 0, 0, 0x9a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020017AC[2] = { + { 3, gTextureSmallFont6, 8, 9, 0, 0, 0x9a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 7 + * @brief MenuTexture of a small font texture of number 7 * */ -MkTexture D_020017D4[2] = { - { 3, 0, gTextureSmallFont7, 8, 9, 0, 0, 0x70, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020017D4[2] = { + { 3, gTextureSmallFont7, 8, 9, 0, 0, 0x70}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 8 + * @brief MenuTexture of a small font texture of number 8 * */ -MkTexture D_020017FC[2] = { - { 3, 0, gTextureSmallFont8, 8, 9, 0, 0, 0x90, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020017FC[2] = { + { 3, gTextureSmallFont8, 8, 9, 0, 0, 0x90}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a small font texture of number 9 + * @brief MenuTexture of a small font texture of number 9 * */ -MkTexture D_02001824[2] = { - { 3, 0, gTextureSmallFont9, 8, 9, 0, 0, 0x9f, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001824[2] = { + { 3, gTextureSmallFont9, 8, 9, 0, 0, 0x9f}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200184C[2] = { - { 3, 0, gTexture7ED058, 96, 22, 0, 0, 0x238, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200184C[2] = { + { 3, gTexture7ED058, 96, 22, 0, 0, 0x238}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001874[2] = { - { 3, 0, gTexture7ED290, 248, 10, 0, 0, 0x27d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001874[2] = { + { 3, gTexture7ED290, 248, 10, 0, 0, 0x27d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of a n64 controller pak Data Select + * @brief MenuTexture of a n64 controller pak Data Select * */ -MkTexture D_0200189C[2] = { - { 3, 0, gTextureN64ControllerPakDataSelect, 180, 32, 70, 29, 0x1128, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200189C[2] = { + { 3, gTextureN64ControllerPakDataSelect, 180, 32, 70, 29, 0x1128}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of text Erase Data Record Confirmation + * @brief MenuTexture of text Erase Data Record Confirmation * */ -MkTexture D_020018C4[2] = { - { 3, 0, gTextureEraseDataRecordConfirmation, 180, 32, 70, 29, 0xff4, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020018C4[2] = { + { 3, gTextureEraseDataRecordConfirmation, 180, 32, 70, 29, 0xff4}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of text Record Not Erased + * @brief MenuTexture of text Record Not Erased * */ -MkTexture D_020018EC[2] = { - { 3, 0, gTextureRecordNotErased, 180, 32, 70, 29, 0x8d1, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020018EC[2] = { + { 3, gTextureRecordNotErased, 180, 32, 70, 29, 0x8d1}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of text Please Insert N64 Controller Pak + * @brief MenuTexture of text Please Insert N64 Controller Pak * */ -MkTexture D_02001914[2] = { - { 3, 0, gTexturePlaceN64ControllerPakIntoController1, 180, 32, 70, 29, 0xc4a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001914[2] = { + { 3, gTexturePlaceN64ControllerPakIntoController1, 180, 32, 70, 29, 0xc4a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of text Please Reinsert Original N64 Controller Pak + * @brief MenuTexture of text Please Reinsert Original N64 Controller Pak * */ -MkTexture D_0200193C[2] = { - { 3, 0, gTexturePleaseReinsertOriginalN64ControllerPak, 180, 32, 70, 29, 0xcd6, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200193C[2] = { + { 3, gTexturePleaseReinsertOriginalN64ControllerPak, 180, 32, 70, 29, 0xcd6}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of text Erasing Selected Record + * @brief MenuTexture of text Erasing Selected Record * */ -MkTexture D_02001964[2] = { - { 3, 0, gTextureErasingSelectedRecord, 180, 32, 70, 29, 0xc02, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001964[2] = { + { 3, gTextureErasingSelectedRecord, 180, 32, 70, 29, 0xc02}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** @@ -1490,255 +1490,255 @@ MkAnimation D_020019DC[2] = { }; /** - * @brief MkTexture of Name DK + * @brief MenuTexture of Name DK * */ -MkTexture D_020019EC[2] = { - { 0, 0, gTextureNameDK, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020019EC[2] = { + { 0, gTextureNameDK, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Toad + * @brief MenuTexture of Name Toad * */ -MkTexture D_02001A14[2] = { - { 0, 0, gTextureNameToad, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001A14[2] = { + { 0, gTextureNameToad, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Bowser + * @brief MenuTexture of Name Bowser * */ -MkTexture D_02001A3C[2] = { - { 0, 0, gTextureNameBowser, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001A3C[2] = { + { 0, gTextureNameBowser, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Luigi + * @brief MenuTexture of Name Luigi * */ -MkTexture D_02001A64[2] = { - { 0, 0, gTextureNameLuigi, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001A64[2] = { + { 0, gTextureNameLuigi, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Mario + * @brief MenuTexture of Name Mario * */ -MkTexture D_02001A8C[2] = { - { 0, 0, gTextureNameMario, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001A8C[2] = { + { 0, gTextureNameMario, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Peach + * @brief MenuTexture of Name Peach * */ -MkTexture D_02001AB4[2] = { - { 0, 0, gTextureNamePeach, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001AB4[2] = { + { 0, gTextureNamePeach, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Wario + * @brief MenuTexture of Name Wario * */ -MkTexture D_02001ADC[2] = { - { 0, 0, gTextureNameWario, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001ADC[2] = { + { 0, gTextureNameWario, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Name Yoshi + * @brief MenuTexture of Name Yoshi * */ -MkTexture D_02001B04[2] = { - { 0, 0, gTextureNameYoshi, 64, 12, 0, 64, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001B04[2] = { + { 0, gTextureNameYoshi, 64, 12, 0, 64, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Mario Raceway + * @brief MenuTexture of Course Preview Mario Raceway * */ -MkTexture D_02001B2C[2] = { - { 0, 0, gTextureCoursePreviewMarioRaceway, 128, 78, 0, 0, 0x3157, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_mario_raceway_preview_texture[2] = { + { 0, gTextureCoursePreviewMarioRaceway, 128, 78, 0, 0, 0x3157}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Choco Mountain + * @brief MenuTexture of Course Preview Choco Mountain * */ -MkTexture D_02001B54[2] = { - { 0, 0, gTextureCoursePreviewChocoMountain, 128, 78, 0, 0, 0x2a24, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001B54[2] = { + { 0, gTextureCoursePreviewChocoMountain, 128, 78, 0, 0, 0x2a24}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Bowser Castle + * @brief MenuTexture of Course Preview Bowser Castle * */ -MkTexture D_02001B7C[2] = { - { 0, 0, gTextureCoursePreviewBowsersCastle, 128, 78, 0, 0, 0x30de, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001B7C[2] = { + { 0, gTextureCoursePreviewBowsersCastle, 128, 78, 0, 0, 0x30de}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Banshee Boardwalk + * @brief MenuTexture of Course Preview Banshee Boardwalk * */ -MkTexture D_02001BA4[2] = { - { 0, 0, gTextureCoursePreviewBansheeBoardwalk, 128, 78, 0, 0, 0x26ad, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001BA4[2] = { + { 0, gTextureCoursePreviewBansheeBoardwalk, 128, 78, 0, 0, 0x26ad}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Yoshi Valley + * @brief MenuTexture of Course Preview Yoshi Valley * */ -MkTexture D_02001BCC[2] = { - { 0, 0, gTextureCoursePreviewYoshiValley, 128, 78, 0, 0, 0x3a41, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001BCC[2] = { + { 0, gTextureCoursePreviewYoshiValley, 128, 78, 0, 0, 0x3a41}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Frappe Snowland + * @brief MenuTexture of Course Preview Frappe Snowland * */ -MkTexture D_02001BF4[2] = { - { 0, 0, gTextureCoursePreviewFrappeSnowland, 128, 78, 0, 0, 0x2409, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001BF4[2] = { + { 0, gTextureCoursePreviewFrappeSnowland, 128, 78, 0, 0, 0x2409}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Koopa Troopa Beach + * @brief MenuTexture of Course Preview Koopa Troopa Beach * */ -MkTexture D_02001C1C[2] = { - { 0, 0, gTextureCoursePreviewKoopaTroopaBeach, 128, 78, 0, 0, 0x2323, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001C1C[2] = { + { 0, gTextureCoursePreviewKoopaTroopaBeach, 128, 78, 0, 0, 0x2323}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Royal Raceway + * @brief MenuTexture of Course Preview Royal Raceway * */ -MkTexture D_02001C44[2] = { - { 0, 0, gTextureCoursePreviewRoyalRaceway, 128, 78, 0, 0, 0x2821, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001C44[2] = { + { 0, gTextureCoursePreviewRoyalRaceway, 128, 78, 0, 0, 0x2821}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Luigi Raceway + * @brief MenuTexture of Course Preview Luigi Raceway * */ -MkTexture D_02001C6C[2] = { - { 0, 0, gTextureCoursePreviewLuigiRaceway, 128, 78, 0, 0, 0x2d74, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001C6C[2] = { + { 0, gTextureCoursePreviewLuigiRaceway, 128, 78, 0, 0, 0x2d74}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Moo Moo Farm + * @brief MenuTexture of Course Preview Moo Moo Farm * */ -MkTexture D_02001C94[2] = { - { 0, 0, gTextureCoursePreviewMooMooFarm, 128, 78, 0, 0, 0x25c7, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001C94[2] = { + { 0, gTextureCoursePreviewMooMooFarm, 128, 78, 0, 0, 0x25c7}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Toads Turnpike + * @brief MenuTexture of Course Preview Toads Turnpike * */ -MkTexture D_02001CBC[2] = { - { 0, 0, gTextureCoursePreviewToadsTurnpike, 128, 78, 0, 0, 0x299a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001CBC[2] = { + { 0, gTextureCoursePreviewToadsTurnpike, 128, 78, 0, 0, 0x299a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Kalimari Desert + * @brief MenuTexture of Course Preview Kalimari Desert * */ -MkTexture D_02001CE4[2] = { - { 0, 0, gTextureCoursePreviewKalimariDesert, 128, 78, 0, 0, 0x280a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001CE4[2] = { + { 0, gTextureCoursePreviewKalimariDesert, 128, 78, 0, 0, 0x280a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Sherbet Land + * @brief MenuTexture of Course Preview Sherbet Land * */ -MkTexture D_02001D0C[2] = { - { 0, 0, gTextureCoursePreviewSherbetLand, 128, 78, 0, 0, 0x300e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001D0C[2] = { + { 0, gTextureCoursePreviewSherbetLand, 128, 78, 0, 0, 0x300e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Rainbow Road + * @brief MenuTexture of Course Preview Rainbow Road * */ -MkTexture D_02001D34[2] = { - { 0, 0, gTextureCoursePreviewRainbowRoad, 128, 78, 0, 0, 0x2824, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001D34[2] = { + { 0, gTextureCoursePreviewRainbowRoad, 128, 78, 0, 0, 0x2824}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Wario Stadium + * @brief MenuTexture of Course Preview Wario Stadium * */ -MkTexture D_02001D5C[2] = { - { 0, 0, gTextureCoursePreviewWarioStadium, 128, 78, 0, 0, 0x32d3, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001D5C[2] = { + { 0, gTextureCoursePreviewWarioStadium, 128, 78, 0, 0, 0x32d3}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Block Fort + * @brief MenuTexture of Course Preview Block Fort * */ -MkTexture D_02001D84[2] = { - { 0, 0, gTextureCoursePreviewBlockFort, 128, 78, 0, 0, 0x2528, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001D84[2] = { + { 0, gTextureCoursePreviewBlockFort, 128, 78, 0, 0, 0x2528}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Skyscraper + * @brief MenuTexture of Course Preview Skyscraper * */ -MkTexture D_02001DAC[2] = { - { 0, 0, gTextureCoursePreviewSkyscraper, 128, 78, 0, 0, 0x26f0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001DAC[2] = { + { 0, gTextureCoursePreviewSkyscraper, 128, 78, 0, 0, 0x26f0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Double Deck + * @brief MenuTexture of Course Preview Double Deck * */ -MkTexture D_02001DD4[2] = { - { 0, 0, gTextureCoursePreviewDoubleDeck, 128, 78, 0, 0, 0x28f7, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001DD4[2] = { + { 0, gTextureCoursePreviewDoubleDeck, 128, 78, 0, 0, 0x28f7}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview DKs Jungle Parkway + * @brief MenuTexture of Course Preview DKs Jungle Parkway * */ -MkTexture D_02001DFC[2] = { - { 0, 0, gTextureCoursePreviewDksJungleParkway, 128, 78, 0, 0, 0x3ee4, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001DFC[2] = { + { 0, gTextureCoursePreviewDksJungleParkway, 128, 78, 0, 0, 0x3ee4}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of Course Preview Big Donut + * @brief MenuTexture of Course Preview Big Donut * */ -MkTexture D_02001E24[2] = { - { 0, 0, gTextureCoursePreviewBigDonut, 128, 78, 0, 0, 0x2f5c, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001E24[2] = { + { 0, gTextureCoursePreviewBigDonut, 128, 78, 0, 0, 0x2f5c}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** @@ -1746,8 +1746,8 @@ MkTexture D_02001E24[2] = { * */ MkAnimation D_02001E4C[3] = { - { D_02001B2C, 0x0000003c }, - { D_02001B2C, 0x0000003c }, + { seg2_mario_raceway_preview_texture, 0x0000003c }, + { seg2_mario_raceway_preview_texture, 0x0000003c }, { NULL, 0x00000000 }, }; @@ -1756,7 +1756,7 @@ MkAnimation D_02001E4C[3] = { * */ MkAnimation D_02001E64[2] = { - { D_02001B2C, 0x0000003c }, + { seg2_mario_raceway_preview_texture, 0x0000003c }, { NULL, 0x00000000 }, }; @@ -1928,66 +1928,66 @@ MkAnimation D_02001F94[2] = { }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02001FA4[2] = { - { 3, 0, gTexture7ED6A4, 68, 51, 0, 0, 0x38e, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001FA4[2] = { + { 3, gTexture7ED6A4, 68, 51, 0, 0, 0x38e}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of trophy gold + * @brief MenuTexture of trophy gold * */ -MkTexture D_02001FCC[2] = { - { 1, 0, gTextureTrophyGold, 45, 45, 0, 0, 0x633, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001FCC[2] = { + { 1, gTextureTrophyGold, 45, 45, 0, 0, 0x633}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of trophy silver + * @brief MenuTexture of trophy silver * */ -MkTexture D_02001FF4[2] = { - { 1, 0, gTextureTrophySilver, 45, 45, 0, 0, 0x629, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02001FF4[2] = { + { 1, gTextureTrophySilver, 45, 45, 0, 0, 0x629}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of trophy bronze + * @brief MenuTexture of trophy bronze * */ -MkTexture D_0200201C[2] = { - { 1, 0, gTextureTrophyBronze, 45, 45, 0, 0, 0x5ec, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200201C[2] = { + { 1, gTextureTrophyBronze, 45, 45, 0, 0, 0x5ec}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of cup gold + * @brief MenuTexture of cup gold * */ -MkTexture D_02002044[2] = { - { 1, 0, gTextureCupGold, 45, 45, 0, 0, 0x98a, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002044[2] = { + { 1, gTextureCupGold, 45, 45, 0, 0, 0x98a}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of cup silver + * @brief MenuTexture of cup silver * */ -MkTexture D_0200206C[2] = { - { 1, 0, gTextureCupSilver, 45, 45, 0, 0, 0x985, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200206C[2] = { + { 1, gTextureCupSilver, 45, 45, 0, 0, 0x985}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture of cup bronze + * @brief MenuTexture of cup bronze * */ -MkTexture D_02002094[2] = { - { 1, 0, gTextureCupBronze, 45, 45, 0, 0, 0x8a2, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002094[2] = { + { 1, gTextureCupBronze, 45, 45, 0, 0, 0x8a2}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** @@ -2045,3937 +2045,3937 @@ MkAnimation D_0200210C[2] = { }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200211C[2] = { - { 5, 0, gTexture7F2094, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200211C[2] = { + { 5, gTexture7F2094, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002144[2] = { - { 5, 0, gTexture7F2164, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002144[2] = { + { 5, gTexture7F2164, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200216C[2] = { - { 5, 0, gTexture7F2234, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200216C[2] = { + { 5, gTexture7F2234, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002194[2] = { - { 5, 0, gTexture7F2304, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002194[2] = { + { 5, gTexture7F2304, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020021BC[2] = { - { 5, 0, gTexture7F23D4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020021BC[2] = { + { 5, gTexture7F23D4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020021E4[2] = { - { 5, 0, gTexture7F24A4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020021E4[2] = { + { 5, gTexture7F24A4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200220C[2] = { - { 5, 0, gTexture7F2574, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200220C[2] = { + { 5, gTexture7F2574, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002234[2] = { - { 5, 0, gTexture7F2644, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002234[2] = { + { 5, gTexture7F2644, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200225C[2] = { - { 5, 0, gTexture7F2714, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200225C[2] = { + { 5, gTexture7F2714, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002284[2] = { - { 5, 0, gTexture7F27E4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002284[2] = { + { 5, gTexture7F27E4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020022AC[2] = { - { 5, 0, gTexture7F28B4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020022AC[2] = { + { 5, gTexture7F28B4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020022D4[2] = { - { 5, 0, gTexture7F2984, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020022D4[2] = { + { 5, gTexture7F2984, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020022FC[2] = { - { 5, 0, gTexture7F2A54, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020022FC[2] = { + { 5, gTexture7F2A54, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002324[2] = { - { 5, 0, gTexture7F2B24, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002324[2] = { + { 5, gTexture7F2B24, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200234C[2] = { - { 5, 0, gTexture7F2BF4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200234C[2] = { + { 5, gTexture7F2BF4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002374[2] = { - { 5, 0, gTexture7F2CC4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002374[2] = { + { 5, gTexture7F2CC4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200239C[2] = { - { 5, 0, gTexture7F2D94, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200239C[2] = { + { 5, gTexture7F2D94, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020023C4[2] = { - { 5, 0, gTexture7F2E64, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020023C4[2] = { + { 5, gTexture7F2E64, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020023EC[2] = { - { 5, 0, gTexture7F2F34, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020023EC[2] = { + { 5, gTexture7F2F34, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002414[2] = { - { 5, 0, gTexture7F3004, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002414[2] = { + { 5, gTexture7F3004, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200243C[2] = { - { 5, 0, gTexture7F30D4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200243C[2] = { + { 5, gTexture7F30D4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002464[2] = { - { 5, 0, gTexture7F31A4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002464[2] = { + { 5, gTexture7F31A4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200248C[2] = { - { 5, 0, gTexture7F3274, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200248C[2] = { + { 5, gTexture7F3274, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020024B4[2] = { - { 5, 0, gTexture7F3344, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020024B4[2] = { + { 5, gTexture7F3344, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020024DC[2] = { - { 5, 0, gTexture7F3414, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020024DC[2] = { + { 5, gTexture7F3414, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002504[2] = { - { 5, 0, gTexture7F34E4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002504[2] = { + { 5, gTexture7F34E4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200252C[2] = { - { 5, 0, gTexture7F1394, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200252C[2] = { + { 5, gTexture7F1394, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002554[2] = { - { 5, 0, gTexture7F1464, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002554[2] = { + { 5, gTexture7F1464, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200257C[2] = { - { 5, 0, gTexture7F16D4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200257C[2] = { + { 5, gTexture7F16D4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020025A4[2] = { - { 5, 0, gTexture7F17A4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020025A4[2] = { + { 5, gTexture7F17A4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020025CC[2] = { - { 5, 0, gTexture7F12C4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020025CC[2] = { + { 5, gTexture7F12C4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020025F4[2] = { - { 5, 0, gTexture7F1604, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020025F4[2] = { + { 5, gTexture7F1604, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200261C[2] = { - { 5, 0, gTexture7F1534, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200261C[2] = { + { 5, gTexture7F1534, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002644[2] = { - { 5, 0, gTexture7F1124, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002644[2] = { + { 5, gTexture7F1124, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200266C[2] = { - { 5, 0, gTexture7F11F4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200266C[2] = { + { 5, gTexture7F11F4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002694[2] = { - { 5, 0, gTexture7F1874, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002694[2] = { + { 5, gTexture7F1874, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020026BC[2] = { - { 5, 0, gTexture7F1944, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020026BC[2] = { + { 5, gTexture7F1944, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020026E4[2] = { - { 5, 0, gTexture7F1A14, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020026E4[2] = { + { 5, gTexture7F1A14, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200270C[2] = { - { 5, 0, gTexture7F1AE4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200270C[2] = { + { 5, gTexture7F1AE4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002734[2] = { - { 5, 0, gTexture7F1BB4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002734[2] = { + { 5, gTexture7F1BB4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200275C[2] = { - { 5, 0, gTexture7F1C84, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200275C[2] = { + { 5, gTexture7F1C84, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002784[2] = { - { 5, 0, gTexture7F1D54, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002784[2] = { + { 5, gTexture7F1D54, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020027AC[2] = { - { 5, 0, gTexture7F1E24, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020027AC[2] = { + { 5, gTexture7F1E24, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020027D4[2] = { - { 5, 0, gTexture7F1EF4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020027D4[2] = { + { 5, gTexture7F1EF4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020027FC[2] = { - { 5, 0, gTexture7F1FC4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020027FC[2] = { + { 5, gTexture7F1FC4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002824[2] = { - { 5, 0, gTexture7F35B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002824[2] = { + { 5, gTexture7F35B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200284C[2] = { - { 5, 0, gTexture7F3634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200284C[2] = { + { 5, gTexture7F3634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002874[2] = { - { 5, 0, gTexture7F36B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002874[2] = { + { 5, gTexture7F36B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200289C[2] = { - { 5, 0, gTexture7F3734, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200289C[2] = { + { 5, gTexture7F3734, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020028C4[2] = { - { 5, 0, gTexture7F37B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020028C4[2] = { + { 5, gTexture7F37B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020028EC[2] = { - { 5, 0, gTexture7F3AB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020028EC[2] = { + { 5, gTexture7F3AB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002914[2] = { - { 5, 0, gTexture7F3B34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002914[2] = { + { 5, gTexture7F3B34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200293C[2] = { - { 5, 0, gTexture7F3BB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200293C[2] = { + { 5, gTexture7F3BB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002964[2] = { - { 5, 0, gTexture7F3C34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002964[2] = { + { 5, gTexture7F3C34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200298C[2] = { - { 5, 0, gTexture7F3CB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200298C[2] = { + { 5, gTexture7F3CB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020029B4[2] = { - { 5, 0, gTexture7F3D34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020029B4[2] = { + { 5, gTexture7F3D34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020029DC[2] = { - { 5, 0, gTexture7F3DB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020029DC[2] = { + { 5, gTexture7F3DB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002A04[2] = { - { 5, 0, gTexture7F3E34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002A04[2] = { + { 5, gTexture7F3E34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002A2C[2] = { - { 5, 0, gTexture7F3EB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002A2C[2] = { + { 5, gTexture7F3EB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002A54[2] = { - { 5, 0, gTexture7F3F34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002A54[2] = { + { 5, gTexture7F3F34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002A7C[2] = { - { 5, 0, gTexture7F3FB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002A7C[2] = { + { 5, gTexture7F3FB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002AA4[2] = { - { 5, 0, gTexture7F4034, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002AA4[2] = { + { 5, gTexture7F4034, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002ACC[2] = { - { 5, 0, gTexture7F40B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002ACC[2] = { + { 5, gTexture7F40B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002AF4[2] = { - { 5, 0, gTexture7F41B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002AF4[2] = { + { 5, gTexture7F41B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002B1C[2] = { - { 5, 0, gTexture7F4234, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002B1C[2] = { + { 5, gTexture7F4234, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002B44[2] = { - { 5, 0, gTexture7F42B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002B44[2] = { + { 5, gTexture7F42B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002B6C[2] = { - { 5, 0, gTexture7F4334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002B6C[2] = { + { 5, gTexture7F4334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002B94[2] = { - { 5, 0, gTexture7F43B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002B94[2] = { + { 5, gTexture7F43B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002BBC[2] = { - { 5, 0, gTexture7F4434, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002BBC[2] = { + { 5, gTexture7F4434, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002BE4[2] = { - { 5, 0, gTexture7F44B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002BE4[2] = { + { 5, gTexture7F44B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002C0C[2] = { - { 5, 0, gTexture7F4534, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002C0C[2] = { + { 5, gTexture7F4534, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002C34[2] = { - { 5, 0, gTexture7F45B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002C34[2] = { + { 5, gTexture7F45B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002C5C[2] = { - { 5, 0, gTexture7F4634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002C5C[2] = { + { 5, gTexture7F4634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002C84[2] = { - { 5, 0, gTexture7F46B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002C84[2] = { + { 5, gTexture7F46B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002CAC[2] = { - { 5, 0, gTexture7F4734, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002CAC[2] = { + { 5, gTexture7F4734, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002CD4[2] = { - { 5, 0, gTexture7F47B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002CD4[2] = { + { 5, gTexture7F47B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002CFC[2] = { - { 5, 0, gTexture7F4834, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002CFC[2] = { + { 5, gTexture7F4834, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002D24[2] = { - { 5, 0, gTexture7F48B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002D24[2] = { + { 5, gTexture7F48B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002D4C[2] = { - { 5, 0, gTexture7F4934, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002D4C[2] = { + { 5, gTexture7F4934, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002D74[2] = { - { 5, 0, gTexture7F49B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002D74[2] = { + { 5, gTexture7F49B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002D9C[2] = { - { 5, 0, gTexture7F4A34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002D9C[2] = { + { 5, gTexture7F4A34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002DC4[2] = { - { 5, 0, gTexture7F4AB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002DC4[2] = { + { 5, gTexture7F4AB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002DEC[2] = { - { 5, 0, gTexture7F4B34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002DEC[2] = { + { 5, gTexture7F4B34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002E14[2] = { - { 5, 0, gTexture7F4D34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002E14[2] = { + { 5, gTexture7F4D34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002E3C[2] = { - { 5, 0, gTexture7F4DB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002E3C[2] = { + { 5, gTexture7F4DB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002E64[2] = { - { 5, 0, gTexture7F4E34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002E64[2] = { + { 5, gTexture7F4E34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002E8C[2] = { - { 5, 0, gTexture7F4EB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002E8C[2] = { + { 5, gTexture7F4EB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002EB4[2] = { - { 5, 0, gTexture7F4F34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002EB4[2] = { + { 5, gTexture7F4F34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002EDC[2] = { - { 5, 0, gTexture7F4FB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002EDC[2] = { + { 5, gTexture7F4FB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002F04[2] = { - { 5, 0, gTexture7F5034, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002F04[2] = { + { 5, gTexture7F5034, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002F2C[2] = { - { 5, 0, gTexture7F50B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002F2C[2] = { + { 5, gTexture7F50B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002F54[2] = { - { 5, 0, gTexture7F5134, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002F54[2] = { + { 5, gTexture7F5134, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002F7C[2] = { - { 5, 0, gTexture7F51B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002F7C[2] = { + { 5, gTexture7F51B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002FA4[2] = { - { 5, 0, gTexture7F5234, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002FA4[2] = { + { 5, gTexture7F5234, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002FCC[2] = { - { 5, 0, gTexture7F52B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002FCC[2] = { + { 5, gTexture7F52B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02002FF4[2] = { - { 5, 0, gTexture7F5334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02002FF4[2] = { + { 5, gTexture7F5334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200301C[2] = { - { 5, 0, gTexture7F53B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200301C[2] = { + { 5, gTexture7F53B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003044[2] = { - { 5, 0, gTexture7F5434, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003044[2] = { + { 5, gTexture7F5434, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200306C[2] = { - { 5, 0, gTexture7F54B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200306C[2] = { + { 5, gTexture7F54B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003094[2] = { - { 5, 0, gTexture7F5534, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003094[2] = { + { 5, gTexture7F5534, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020030BC[2] = { - { 5, 0, gTexture7F55B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020030BC[2] = { + { 5, gTexture7F55B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020030E4[2] = { - { 5, 0, gTexture7F5634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020030E4[2] = { + { 5, gTexture7F5634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200310C[2] = { - { 5, 0, gTexture7F56B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200310C[2] = { + { 5, gTexture7F56B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003134[2] = { - { 5, 0, gTexture7F5734, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003134[2] = { + { 5, gTexture7F5734, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200315C[2] = { - { 5, 0, gTexture7F57B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200315C[2] = { + { 5, gTexture7F57B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003184[2] = { - { 5, 0, gTexture7F5834, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003184[2] = { + { 5, gTexture7F5834, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020031AC[2] = { - { 5, 0, gTexture7F58B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020031AC[2] = { + { 5, gTexture7F58B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020031D4[2] = { - { 5, 0, gTexture7F5934, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020031D4[2] = { + { 5, gTexture7F5934, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020031FC[2] = { - { 5, 0, gTexture7F59B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020031FC[2] = { + { 5, gTexture7F59B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003224[2] = { - { 5, 0, gTexture7F5A34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003224[2] = { + { 5, gTexture7F5A34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200324C[2] = { - { 5, 0, gTexture7F5AB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200324C[2] = { + { 5, gTexture7F5AB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003274[2] = { - { 5, 0, gTexture7F5B34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003274[2] = { + { 5, gTexture7F5B34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200329C[2] = { - { 5, 0, gTexture7F5BB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200329C[2] = { + { 5, gTexture7F5BB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020032C4[2] = { - { 5, 0, gTexture7F5C34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020032C4[2] = { + { 5, gTexture7F5C34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020032EC[2] = { - { 5, 0, gTexture7F5CB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020032EC[2] = { + { 5, gTexture7F5CB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003314[2] = { - { 5, 0, gTexture7F5D34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003314[2] = { + { 5, gTexture7F5D34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200333C[2] = { - { 5, 0, gTexture7F4BB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200333C[2] = { + { 5, gTexture7F4BB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003364[2] = { - { 5, 0, gTexture7F4C34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003364[2] = { + { 5, gTexture7F4C34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200338C[2] = { - { 5, 0, gTexture7F4CB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200338C[2] = { + { 5, gTexture7F4CB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020033B4[2] = { - { 5, 0, gTexture7F4134, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020033B4[2] = { + { 5, gTexture7F4134, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020033DC[2] = { - { 5, 0, gTexture7F3834, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020033DC[2] = { + { 5, gTexture7F3834, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003404[2] = { - { 5, 0, gTexture7F38B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003404[2] = { + { 5, gTexture7F38B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200342C[2] = { - { 5, 0, gTexture7F3934, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200342C[2] = { + { 5, gTexture7F3934, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003454[2] = { - { 5, 0, gTexture7F39B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003454[2] = { + { 5, gTexture7F39B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200347C[2] = { - { 5, 0, gTexture7F3A34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200347C[2] = { + { 5, gTexture7F3A34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020034A4[2] = { - { 5, 0, gTexture7F5DB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020034A4[2] = { + { 5, gTexture7F5DB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020034CC[2] = { - { 5, 0, gTexture7F5E34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020034CC[2] = { + { 5, gTexture7F5E34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020034F4[2] = { - { 5, 0, gTexture7F5EB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020034F4[2] = { + { 5, gTexture7F5EB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200351C[2] = { - { 5, 0, gTexture7F5F34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200351C[2] = { + { 5, gTexture7F5F34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003544[2] = { - { 5, 0, gTexture7F5FB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003544[2] = { + { 5, gTexture7F5FB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200356C[2] = { - { 5, 0, gTexture7F62B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200356C[2] = { + { 5, gTexture7F62B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003594[2] = { - { 5, 0, gTexture7F6334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003594[2] = { + { 5, gTexture7F6334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020035BC[2] = { - { 5, 0, gTexture7F63B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020035BC[2] = { + { 5, gTexture7F63B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020035E4[2] = { - { 5, 0, gTexture7F6434, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020035E4[2] = { + { 5, gTexture7F6434, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200360C[2] = { - { 5, 0, gTexture7F64B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200360C[2] = { + { 5, gTexture7F64B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003634[2] = { - { 5, 0, gTexture7F6534, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003634[2] = { + { 5, gTexture7F6534, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200365C[2] = { - { 5, 0, gTexture7F65B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200365C[2] = { + { 5, gTexture7F65B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003684[2] = { - { 5, 0, gTexture7F6634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003684[2] = { + { 5, gTexture7F6634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020036AC[2] = { - { 5, 0, gTexture7F66B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020036AC[2] = { + { 5, gTexture7F66B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020036D4[2] = { - { 5, 0, gTexture7F6734, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020036D4[2] = { + { 5, gTexture7F6734, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020036FC[2] = { - { 5, 0, gTexture7F67B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020036FC[2] = { + { 5, gTexture7F67B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003724[2] = { - { 5, 0, gTexture7F6834, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003724[2] = { + { 5, gTexture7F6834, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200374C[2] = { - { 5, 0, gTexture7F68B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200374C[2] = { + { 5, gTexture7F68B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003774[2] = { - { 5, 0, gTexture7F69B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003774[2] = { + { 5, gTexture7F69B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200379C[2] = { - { 5, 0, gTexture7F6A34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200379C[2] = { + { 5, gTexture7F6A34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020037C4[2] = { - { 5, 0, gTexture7F6AB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020037C4[2] = { + { 5, gTexture7F6AB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020037EC[2] = { - { 5, 0, gTexture7F6B34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020037EC[2] = { + { 5, gTexture7F6B34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003814[2] = { - { 5, 0, gTexture7F6BB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003814[2] = { + { 5, gTexture7F6BB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200383C[2] = { - { 5, 0, gTexture7F6C34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200383C[2] = { + { 5, gTexture7F6C34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003864[2] = { - { 5, 0, gTexture7F6CB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003864[2] = { + { 5, gTexture7F6CB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200388C[2] = { - { 5, 0, gTexture7F6D34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200388C[2] = { + { 5, gTexture7F6D34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020038B4[2] = { - { 5, 0, gTexture7F6DB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020038B4[2] = { + { 5, gTexture7F6DB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020038DC[2] = { - { 5, 0, gTexture7F6E34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020038DC[2] = { + { 5, gTexture7F6E34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003904[2] = { - { 5, 0, gTexture7F6EB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003904[2] = { + { 5, gTexture7F6EB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200392C[2] = { - { 5, 0, gTexture7F6F34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200392C[2] = { + { 5, gTexture7F6F34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003954[2] = { - { 5, 0, gTexture7F6FB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003954[2] = { + { 5, gTexture7F6FB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200397C[2] = { - { 5, 0, gTexture7F7034, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200397C[2] = { + { 5, gTexture7F7034, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020039A4[2] = { - { 5, 0, gTexture7F70B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020039A4[2] = { + { 5, gTexture7F70B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020039CC[2] = { - { 5, 0, gTexture7F7134, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020039CC[2] = { + { 5, gTexture7F7134, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020039F4[2] = { - { 5, 0, gTexture7F71B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020039F4[2] = { + { 5, gTexture7F71B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003A1C[2] = { - { 5, 0, gTexture7F7234, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003A1C[2] = { + { 5, gTexture7F7234, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003A44[2] = { - { 5, 0, gTexture7F72B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003A44[2] = { + { 5, gTexture7F72B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003A6C[2] = { - { 5, 0, gTexture7F7334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003A6C[2] = { + { 5, gTexture7F7334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003A94[2] = { - { 5, 0, gTexture7F7534, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003A94[2] = { + { 5, gTexture7F7534, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003ABC[2] = { - { 5, 0, gTexture7F75B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003ABC[2] = { + { 5, gTexture7F75B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003AE4[2] = { - { 5, 0, gTexture7F7634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003AE4[2] = { + { 5, gTexture7F7634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003B0C[2] = { - { 5, 0, gTexture7F76B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003B0C[2] = { + { 5, gTexture7F76B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003B34[2] = { - { 5, 0, gTexture7F7734, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003B34[2] = { + { 5, gTexture7F7734, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003B5C[2] = { - { 5, 0, gTexture7F77B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003B5C[2] = { + { 5, gTexture7F77B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003B84[2] = { - { 5, 0, gTexture7F7834, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003B84[2] = { + { 5, gTexture7F7834, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003BAC[2] = { - { 5, 0, gTexture7F78B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003BAC[2] = { + { 5, gTexture7F78B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003BD4[2] = { - { 5, 0, gTexture7F7934, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003BD4[2] = { + { 5, gTexture7F7934, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003BFC[2] = { - { 5, 0, gTexture7F79B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003BFC[2] = { + { 5, gTexture7F79B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003C24[2] = { - { 5, 0, gTexture7F7A34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003C24[2] = { + { 5, gTexture7F7A34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003C4C[2] = { - { 5, 0, gTexture7F7AB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003C4C[2] = { + { 5, gTexture7F7AB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003C74[2] = { - { 5, 0, gTexture7F7B34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003C74[2] = { + { 5, gTexture7F7B34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003C9C[2] = { - { 5, 0, gTexture7F7BB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003C9C[2] = { + { 5, gTexture7F7BB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003CC4[2] = { - { 5, 0, gTexture7F7C34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003CC4[2] = { + { 5, gTexture7F7C34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003CEC[2] = { - { 5, 0, gTexture7F7CB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003CEC[2] = { + { 5, gTexture7F7CB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003D14[2] = { - { 5, 0, gTexture7F7D34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003D14[2] = { + { 5, gTexture7F7D34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003D3C[2] = { - { 5, 0, gTexture7F7DB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003D3C[2] = { + { 5, gTexture7F7DB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003D64[2] = { - { 5, 0, gTexture7F7E34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003D64[2] = { + { 5, gTexture7F7E34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003D8C[2] = { - { 5, 0, gTexture7F7EB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003D8C[2] = { + { 5, gTexture7F7EB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003DB4[2] = { - { 5, 0, gTexture7F7F34, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003DB4[2] = { + { 5, gTexture7F7F34, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003DDC[2] = { - { 5, 0, gTexture7F7FB4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003DDC[2] = { + { 5, gTexture7F7FB4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003E04[2] = { - { 5, 0, gTexture7F8034, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003E04[2] = { + { 5, gTexture7F8034, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003E2C[2] = { - { 5, 0, gTexture7F80B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003E2C[2] = { + { 5, gTexture7F80B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003E54[2] = { - { 5, 0, gTexture7F8134, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003E54[2] = { + { 5, gTexture7F8134, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003E7C[2] = { - { 5, 0, gTexture7F81B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003E7C[2] = { + { 5, gTexture7F81B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003EA4[2] = { - { 5, 0, gTexture7F8234, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003EA4[2] = { + { 5, gTexture7F8234, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003ECC[2] = { - { 5, 0, gTexture7F82B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003ECC[2] = { + { 5, gTexture7F82B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003EF4[2] = { - { 5, 0, gTexture7F8334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003EF4[2] = { + { 5, gTexture7F8334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003F1C[2] = { - { 5, 0, gTexture7F83B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003F1C[2] = { + { 5, gTexture7F83B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003F44[2] = { - { 5, 0, gTexture7F8434, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003F44[2] = { + { 5, gTexture7F8434, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003F6C[2] = { - { 5, 0, gTexture7F84B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003F6C[2] = { + { 5, gTexture7F84B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003F94[2] = { - { 5, 0, gTexture7F8534, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003F94[2] = { + { 5, gTexture7F8534, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003FBC[2] = { - { 5, 0, gTexture7F73B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003FBC[2] = { + { 5, gTexture7F73B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02003FE4[2] = { - { 5, 0, gTexture7F7434, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02003FE4[2] = { + { 5, gTexture7F7434, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200400C[2] = { - { 5, 0, gTexture7F74B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200400C[2] = { + { 5, gTexture7F74B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004034[2] = { - { 5, 0, gTexture7F6934, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004034[2] = { + { 5, gTexture7F6934, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200405C[2] = { - { 5, 0, gTexture7F6034, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200405C[2] = { + { 5, gTexture7F6034, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004084[2] = { - { 5, 0, gTexture7F60B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004084[2] = { + { 5, gTexture7F60B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020040AC[2] = { - { 5, 0, gTexture7F6134, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020040AC[2] = { + { 5, gTexture7F6134, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020040D4[2] = { - { 5, 0, gTexture7F61B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020040D4[2] = { + { 5, gTexture7F61B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020040FC[2] = { - { 5, 0, gTexture7F6234, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020040FC[2] = { + { 5, gTexture7F6234, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004124[2] = { - { 5, 0, gTexture7F9BF4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004124[2] = { + { 5, gTexture7F9BF4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200414C[2] = { - { 5, 0, gTexture7F8734, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200414C[2] = { + { 5, gTexture7F8734, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004174[2] = { - { 5, 0, gTexture7F8914, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004174[2] = { + { 5, gTexture7F8914, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200419C[2] = { - { 5, 0, gTexture7F8AF4, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200419C[2] = { + { 5, gTexture7F8AF4, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020041C4[2] = { - { 5, 0, gTexture7F8CD4, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020041C4[2] = { + { 5, gTexture7F8CD4, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020041EC[2] = { - { 5, 0, gTexture7F8EB4, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020041EC[2] = { + { 5, gTexture7F8EB4, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004214[2] = { - { 5, 0, gTexture7F9094, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004214[2] = { + { 5, gTexture7F9094, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200423C[2] = { - { 5, 0, gTexture7F9274, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200423C[2] = { + { 5, gTexture7F9274, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004264[2] = { - { 5, 0, gTexture7F9454, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004264[2] = { + { 5, gTexture7F9454, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200428C[2] = { - { 5, 0, gTexture7F9634, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200428C[2] = { + { 5, gTexture7F9634, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020042B4[2] = { - { 5, 0, gTexture7F9814, 30, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020042B4[2] = { + { 5, gTexture7F9814, 30, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020042DC[2] = { - { 5, 0, gTexture7F85B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020042DC[2] = { + { 5, gTexture7F85B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004304[2] = { - { 5, 0, gTexture7F8634, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004304[2] = { + { 5, gTexture7F8634, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200432C[2] = { - { 5, 0, gTexture7F86B4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200432C[2] = { + { 5, gTexture7F86B4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004354[2] = { - { 5, 0, gTexture7F99F4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004354[2] = { + { 5, gTexture7F99F4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200437C[2] = { - { 5, 0, gTexture7F9A74, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200437C[2] = { + { 5, gTexture7F9A74, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020043A4[2] = { - { 5, 0, gTexture7F9CF4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020043A4[2] = { + { 5, gTexture7F9CF4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020043CC[2] = { - { 5, 0, gTexture7F9DC4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020043CC[2] = { + { 5, gTexture7F9DC4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020043F4[2] = { - { 5, 0, gTexture7F9E44, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020043F4[2] = { + { 5, gTexture7F9E44, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200441C[2] = { - { 5, 0, gTexture7F9EC4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200441C[2] = { + { 5, gTexture7F9EC4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004444[2] = { - { 5, 0, gTexture7FA044, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004444[2] = { + { 5, gTexture7FA044, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200446C[2] = { - { 5, 0, gTexture7FA0C4, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200446C[2] = { + { 5, gTexture7FA0C4, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004494[2] = { - { 5, 0, gTexture7FA194, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004494[2] = { + { 5, gTexture7FA194, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020044BC[2] = { - { 5, 0, gTexture7FA264, 26, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020044BC[2] = { + { 5, gTexture7FA264, 26, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020044E4[2] = { - { 5, 0, gTexture7F9AF4, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020044E4[2] = { + { 5, gTexture7F9AF4, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200450C[2] = { - { 5, 0, gTexture7F9B74, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200450C[2] = { + { 5, gTexture7F9B74, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004534[2] = { - { 5, 0, gTexture7FA334, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004534[2] = { + { 5, gTexture7FA334, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200455C[2] = { - { 5, 0, gTexture7F9C74, 16, 16, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200455C[2] = { + { 5, gTexture7F9C74, 16, 16, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown empty MkTexture + * @brief unknown empty MenuTexture * */ -MkTexture D_02004584[1] = { - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004584[1] = { + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the blue sky background + * @brief MenuTexture for the blue sky background * */ -MkTexture D_02004598[2] = { - { 0, 0, gTextureBackgroundBlueSky, 320, 240, 0, 0, 0xcd60, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_blue_sky_background_texture[2] = { + { 0, gTextureBackgroundBlueSky, 320, 240, 0, 0, 0xcd60}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the sunset background + * @brief MenuTexture for the sunset background * */ -MkTexture D_020045C0[2] = { - { 0, 0, gTextureBackgroundSunset, 320, 240, 0, 0, 0x93c4, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_sunset_background_texture[2] = { + { 0, gTextureBackgroundSunset, 320, 240, 0, 0, 0x93c4}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for copyright + * @brief MenuTexture for copyright * */ -MkTexture D_020045E8[2] = { - { 1, 0, gTextureCopyright1996, 124, 17, 98, 199, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_copyright_1996_texture[2] = { + { 1, gTextureCopyright1996, 124, 17, 98, 199, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for press start + * @brief MenuTexture for press start * */ -MkTexture D_02004610[2] = { - { 1, 0, gTexturePushStartButton, 159, 16, 81, 179, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_push_start_button_texture[2] = { + { 1, gTexturePushStartButton, 159, 16, 81, 179, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the options menu + * @brief MenuTexture for the options menu * */ -MkTexture D_02004638[2] = { - { 0, 0, gTextureOption, 130, 32, 95, 16, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004638[2] = { + { 0, gTextureOption, 130, 32, 95, 16, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the game select menu + * @brief MenuTexture for the game select menu * */ -MkTexture D_02004660[2] = { - { 0, 0, gTextureGameSelect, 200, 32, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_game_select_texture[2] = { + { 0, gTextureGameSelect, 200, 32, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the first colone one player + * @brief MenuTexture for the first colone one player * */ -MkTexture D_02004688[4] = { - { 1, 0, gTextureMenu1PGame, 64, 54, 0, 0, 0x0, 0 }, - { 1, 0, gTextureMenuModeMarioGP, 64, 18, 0, 65, 0x0, 0 }, - { 1, 0, gTextureMenuModeTimeTrials, 64, 18, 0, 83, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_1p_column[4] = { + { 1, gTextureMenu1PGame, 64, 54, 0, 0, 0x0}, + { 1, gTextureMenuModeMarioGP, 64, 18, 0, 65, 0x0}, + { 1, gTextureMenuModeTimeTrials, 64, 18, 0, 83, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the first colone two player + * @brief MenuTexture for the first colone two player * */ -MkTexture D_020046D8[5] = { - { 1, 0, gTextureMenu2PGame, 64, 54, 0, 0, 0x0, 0 }, - { 1, 0, gTextureMenuModeMarioGP, 64, 18, 0, 65, 0x0, 0 }, - { 1, 0, gTextureMenuModeVS, 64, 18, 0, 83, 0x0, 0 }, - { 1, 0, gTextureMenuModeBattle, 64, 18, 0, 101, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_2p_column[5] = { + { 1, gTextureMenu2PGame, 64, 54, 0, 0, 0x0}, + { 1, gTextureMenuModeMarioGP, 64, 18, 0, 65, 0x0}, + { 1, gTextureMenuModeVS, 64, 18, 0, 83, 0x0}, + { 1, gTextureMenuModeBattle, 64, 18, 0, 101, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the first colone three player + * @brief MenuTexture for the first colone three player * */ -MkTexture D_0200473C[4] = { - { 1, 0, gTextureMenu3PGame, 64, 54, 0, 0, 0x0, 0 }, - { 1, 0, gTextureMenuModeVS, 64, 18, 0, 65, 0x0, 0 }, - { 1, 0, gTextureMenuModeBattle, 64, 18, 0, 83, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_3p_column[4] = { + { 1, gTextureMenu3PGame, 64, 54, 0, 0, 0x0}, + { 1, gTextureMenuModeVS, 64, 18, 0, 65, 0x0}, + { 1, gTextureMenuModeBattle, 64, 18, 0, 83, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for the first colone four player + * @brief MenuTexture for the first colone four player * */ -MkTexture D_0200478C[4] = { - { 1, 0, gTextureMenu4PGame, 64, 54, 0, 0, 0x0, 0 }, - { 1, 0, gTextureMenuModeVS, 64, 18, 0, 65, 0x0, 0 }, - { 1, 0, gTextureMenuModeBattle, 64, 18, 0, 83, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_4p_column[4] = { + { 1, gTextureMenu4PGame, 64, 54, 0, 0, 0x0}, + { 1, gTextureMenuModeVS, 64, 18, 0, 65, 0x0}, + { 1, gTextureMenuModeBattle, 64, 18, 0, 83, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_020047DC[2] = { - { 1, 0, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020047DC[2] = { + { 1, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004804[2] = { - { 1, 0, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004804[2] = { + { 1, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200482C[2] = { - { 1, 0, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200482C[2] = { + { 1, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_02004854[2] = { - { 1, 0, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004854[2] = { + { 1, gTextureSmallGreenTriangle, 12, 7, 27, 56, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief unknown MkTexture + * @brief unknown MenuTexture * */ -MkTexture D_0200487C[2] = { - { 1, 0, gTextureMenuOK, 31, 19, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_0200487C[2] = { + { 1, gTextureMenuOK, 31, 19, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu L Option + * @brief MenuTexture for Menu L Option * */ -MkTexture D_020048A4[2] = { - { 1, 0, gTextureMenuLOption, 58, 19, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020048A4[2] = { + { 1, gTextureMenuLOption, 58, 19, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu R Option + * @brief MenuTexture for Menu R Option * */ -MkTexture D_020048CC[2] = { - { 1, 0, gTextureMenuRData, 58, 19, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020048CC[2] = { + { 1, gTextureMenuRData, 58, 19, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu 50cc + * @brief MenuTexture for Menu 50cc * */ -MkTexture D_020048F4[2] = { - { 1, 0, gTextureMenu50cc, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_50_CC_texture[2] = { + { 1, gTextureMenu50cc, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu 100cc + * @brief MenuTexture for Menu 100cc * */ -MkTexture D_0200491C[2] = { - { 1, 0, gTextureMenu100cc, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_100_CC_texture[2] = { + { 1, gTextureMenu100cc, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu 150cc + * @brief MenuTexture for Menu 150cc * */ -MkTexture D_02004944[2] = { - { 1, 0, gTextureMenu150cc, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_150_CC_texture[2] = { + { 1, gTextureMenu150cc, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture for Menu Extra + * @brief MenuTexture for Menu Extra * */ -MkTexture D_0200496C[2] = { - { 1, 0, gTextureMenuExtra, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_extra_CC_texture[2] = { + { 1, gTextureMenuExtra, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Without Item + * @brief MenuTextures for Menu Without Item * */ -MkTexture D_02004994[2] = { - { 1, 0, gTextureMenuWithoutItem, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_no_item_texture[2] = { + { 1, gTextureMenuWithoutItem, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu With Item + * @brief MenuTextures for Menu With Item * */ -MkTexture D_020049BC[2] = { - { 1, 0, gTextureMenuWithItem, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020049BC[2] = { + { 1, gTextureMenuWithItem, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Begin + * @brief MenuTextures for Menu Begin * */ -MkTexture D_020049E4[2] = { - { 1, 0, gTextureMenuBegin, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020049E4[2] = { + { 1, gTextureMenuBegin, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Ghost + * @brief MenuTextures for Menu Ghost * */ -MkTexture D_02004A0C[2] = { - { 1, 0, gTextureMenuGhost, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004A0C[2] = { + { 1, gTextureMenuGhost, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Data + * @brief MenuTextures for Menu Data * */ -MkTexture D_02004A34[2] = { - { 1, 0, gTextureMenuData, 64, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_data_texture[2] = { + { 1, gTextureMenuData, 64, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures P1 Border ? + * @brief MenuTextures P1 Border ? * */ -MkTexture D_02004A5C[3] = { - { 3, 0, gTexture7E56E4, 64, 64, 0, 0, 0x116c, 0 }, - { 4, 0, gTextureP1BorderBlue, 64, 64, 0, 0, 0x0000, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_P1_border_texture[3] = { + { 3, gTexture7E56E4, 64, 64, 0, 0, 0x116c}, + { 4, gTextureP1BorderBlue, 64, 64, 0, 0, 0x0000}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures P2 Border ? + * @brief MenuTextures P2 Border ? * */ -MkTexture D_02004A98[3] = { - { 3, 0, gTexture7E56E4, 64, 64, 0, 0, 0x116c, 0 }, - { 4, 0, gTextureP2BorderRed, 64, 64, 0, 0, 0x0000, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_P2_border_texture[3] = { + { 3, gTexture7E56E4, 64, 64, 0, 0, 0x116c}, + { 4, gTextureP2BorderRed, 64, 64, 0, 0, 0x0000}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures P3 Border ? + * @brief MenuTextures P3 Border ? * */ -MkTexture D_02004AD4[3] = { - { 3, 0, gTexture7E56E4, 64, 64, 0, 0, 0x116c, 0 }, - { 4, 0, gTextureP3BorderOrange, 64, 64, 0, 0, 0x0000, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_P3_border_texture[3] = { + { 3, gTexture7E56E4, 64, 64, 0, 0, 0x116c}, + { 4, gTextureP3BorderOrange, 64, 64, 0, 0, 0x0000}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures P4 Border ? + * @brief MenuTextures P4 Border ? * */ -MkTexture D_02004B10[3] = { - { 3, 0, gTexture7E56E4, 64, 64, 0, 0, 0x116c, 0 }, - { 4, 0, gTextureP4BorderGreen, 64, 64, 0, 0, 0x0000, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_P4_border_texture[3] = { + { 3, gTexture7E56E4, 64, 64, 0, 0, 0x116c}, + { 4, gTextureP4BorderGreen, 64, 64, 0, 0, 0x0000}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Player Select + * @brief MenuTextures for Menu Player Select * */ -MkTexture D_02004B4C[2] = { - { 0, 0, gTexturePlayerSelect, 220, 32, 51, 16, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004B4C[2] = { + { 0, gTexturePlayerSelect, 220, 32, 51, 16, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu OK + * @brief MenuTextures for Menu OK * */ -MkTexture D_02004B74[2] = { - { 1, 0, gTextureMenuOK, 31, 19, 264, 202, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004B74[2] = { + { 1, gTextureMenuOK, 31, 19, 264, 202, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Select + * @brief MenuTextures for Menu Select * */ -MkTexture D_02004B9C[2] = { - { 0, 0, gTextureMapSelect, 190, 32, 65, 18, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_menu_select_texture[2] = { + { 0, gTextureMapSelect, 190, 32, 65, 18, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Mushroom Cup + * @brief MenuTextures for Menu Mushroom Cup * */ -MkTexture D_02004BC4[2] = { - { 1, 0, gTextureMenuMushroomCup, 65, 40, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_mushroom_cup_texture[2] = { + { 1, gTextureMenuMushroomCup, 65, 40, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Flower Cup + * @brief MenuTextures for Menu Flower Cup * */ -MkTexture D_02004BEC[2] = { - { 1, 0, gTextureMenuFlowerCup, 65, 40, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_flower_cup_texture[2] = { + { 1, gTextureMenuFlowerCup, 65, 40, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Star Cup + * @brief MenuTextures for Menu Star Cup * */ -MkTexture D_02004C14[2] = { - { 1, 0, gTextureMenuStarCup, 65, 40, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_star_cup_texture[2] = { + { 1, gTextureMenuStarCup, 65, 40, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Menu Special Cup + * @brief MenuTextures for Menu Special Cup * */ -MkTexture D_02004C3C[2] = { - { 1, 0, gTextureMenuSpecialCup, 65, 40, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_special_cup_texture[2] = { + { 1, gTextureMenuSpecialCup, 65, 40, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for the course preview mario raceway + * @brief MenuTextures for the course preview mario raceway * */ -MkTexture D_02004C64[2] = { - { 0, 0, gTextureCoursePreviewMarioRaceway, 128, 78, 23, 112, 0x1e3d, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_mario_raceway_preview_small_texture[2] = { + { 0, gTextureCoursePreviewMarioRaceway, 128, 78, 23, 112, 0x1e3d}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture title for mushroom cup + * @brief MenuTexture title for mushroom cup * */ -MkTexture D_02004C8C[5] = { - { 1, 0, gTextureTitleLuigiRaceway, 140, 18, 157, 112, 0x0, 0 }, - { 1, 0, gTextureTitleMooMooFarm, 140, 18, 157, 136, 0x0, 0 }, - { 1, 0, gTextureTitleKoopaTroopaBeach, 140, 18, 157, 160, 0x0, 0 }, - { 1, 0, gTextureTitleKalimariDesert, 140, 18, 157, 184, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_mushroom_cup_title_texture[5] = { + { 1, gTextureTitleLuigiRaceway, 140, 18, 157, 112, 0x0}, + { 1, gTextureTitleMooMooFarm, 140, 18, 157, 136, 0x0}, + { 1, gTextureTitleKoopaTroopaBeach, 140, 18, 157, 160, 0x0}, + { 1, gTextureTitleKalimariDesert, 140, 18, 157, 184, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture title for flower cup + * @brief MenuTexture title for flower cup * */ -MkTexture D_02004CF0[5] = { - { 1, 0, gTextureTitleToadsTurnpike, 140, 18, 157, 112, 0x0, 0 }, - { 1, 0, gTextureTitleFrappeSnowland, 140, 18, 157, 136, 0x0, 0 }, - { 1, 0, gTextureTitleChocoMountain, 140, 18, 157, 160, 0x0, 0 }, - { 1, 0, gTextureTitleMarioRaceway, 140, 18, 157, 184, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_flower_cup_title_texture[5] = { + { 1, gTextureTitleToadsTurnpike, 140, 18, 157, 112, 0x0}, + { 1, gTextureTitleFrappeSnowland, 140, 18, 157, 136, 0x0}, + { 1, gTextureTitleChocoMountain, 140, 18, 157, 160, 0x0}, + { 1, gTextureTitleMarioRaceway, 140, 18, 157, 184, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture title for star cup + * @brief MenuTexture title for star cup * */ -MkTexture D_02004D54[5] = { - { 1, 0, gTextureTitleWarioStadium, 140, 18, 157, 112, 0x0, 0 }, - { 1, 0, gTextureTitleSherbetLand, 140, 18, 157, 136, 0x0, 0 }, - { 1, 0, gTextureTitleRoyalRaceway, 140, 18, 157, 160, 0x0, 0 }, - { 1, 0, gTextureTitleBowsersCastle, 140, 18, 157, 184, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_star_cup_title_texture[5] = { + { 1, gTextureTitleWarioStadium, 140, 18, 157, 112, 0x0}, + { 1, gTextureTitleSherbetLand, 140, 18, 157, 136, 0x0}, + { 1, gTextureTitleRoyalRaceway, 140, 18, 157, 160, 0x0}, + { 1, gTextureTitleBowsersCastle, 140, 18, 157, 184, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTexture title for special cup + * @brief MenuTexture title for special cup * */ -MkTexture D_02004DB8[5] = { - { 1, 0, gTextureTitleDKsJungleParkway, 140, 18, 157, 112, 0x0, 0 }, - { 1, 0, gTextureTitleYoshiValley, 140, 18, 157, 136, 0x0, 0 }, - { 1, 0, gTextureTitleBansheeBoardwalk, 140, 18, 157, 160, 0x0, 0 }, - { 1, 0, gTextureTitleRainbowRoad, 140, 18, 157, 184, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_special_cup_title_texture[5] = { + { 1, gTextureTitleDKsJungleParkway, 140, 18, 157, 112, 0x0}, + { 1, gTextureTitleYoshiValley, 140, 18, 157, 136, 0x0}, + { 1, gTextureTitleBansheeBoardwalk, 140, 18, 157, 160, 0x0}, + { 1, gTextureTitleRainbowRoad, 140, 18, 157, 184, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title for battle mode + * @brief MenuTextures title for battle mode * */ -MkTexture D_02004E1C[5] = { - { 1, 0, gTextureTitleBigDonut, 140, 18, 157, 112, 0x0, 0 }, - { 1, 0, gTextureTitleBlockFort, 140, 18, 157, 136, 0x0, 0 }, - { 1, 0, gTextureTitleDoubleDeck, 140, 18, 157, 160, 0x0, 0 }, - { 1, 0, gTextureTitleSkyscraper, 140, 18, 157, 184, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_battle_title_texture[5] = { + { 1, gTextureTitleBigDonut, 140, 18, 157, 112, 0x0}, + { 1, gTextureTitleBlockFort, 140, 18, 157, 136, 0x0}, + { 1, gTextureTitleDoubleDeck, 140, 18, 157, 160, 0x0}, + { 1, gTextureTitleSkyscraper, 140, 18, 157, 184, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures Menu OK + * @brief MenuTextures Menu OK * */ -MkTexture D_02004E80[2] = { - { 1, 0, gTextureMenuOK, 31, 19, 265, 208, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004E80[2] = { + { 1, gTextureMenuOK, 31, 19, 265, 208, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Mario Raceway + * @brief MenuTextures title Mario Raceway * */ -MkTexture D_02004EA8[2] = { - { 1, 0, gTextureTitleMarioRaceway, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_mario_raceway_title_texture[2] = { + { 1, gTextureTitleMarioRaceway, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Choco Mountain + * @brief MenuTextures title Choco Mountain * */ -MkTexture D_02004ED0[2] = { - { 1, 0, gTextureTitleChocoMountain, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture seg2_choco_mountain_title_texture[2] = { + { 1, gTextureTitleChocoMountain, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Bowser's Castle + * @brief MenuTextures title Bowser's Castle * */ -MkTexture D_02004EF8[2] = { - { 1, 0, gTextureTitleBowsersCastle, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004EF8[2] = { + { 1, gTextureTitleBowsersCastle, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Banshee Boardwalk + * @brief MenuTextures title Banshee Boardwalk * */ -MkTexture D_02004F20[2] = { - { 1, 0, gTextureTitleBansheeBoardwalk, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004F20[2] = { + { 1, gTextureTitleBansheeBoardwalk, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Yoshi Valley + * @brief MenuTextures title Yoshi Valley * */ -MkTexture D_02004F48[2] = { - { 1, 0, gTextureTitleYoshiValley, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004F48[2] = { + { 1, gTextureTitleYoshiValley, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Frappe Snowland + * @brief MenuTextures title Frappe Snowland * */ -MkTexture D_02004F70[2] = { - { 1, 0, gTextureTitleFrappeSnowland, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004F70[2] = { + { 1, gTextureTitleFrappeSnowland, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Koopa Troopa Beach + * @brief MenuTextures title Koopa Troopa Beach * */ -MkTexture D_02004F98[2] = { - { 1, 0, gTextureTitleKoopaTroopaBeach, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004F98[2] = { + { 1, gTextureTitleKoopaTroopaBeach, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Royal Raceway + * @brief MenuTextures title Royal Raceway * */ -MkTexture D_02004FC0[2] = { - { 1, 0, gTextureTitleRoyalRaceway, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004FC0[2] = { + { 1, gTextureTitleRoyalRaceway, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Luigi Raceway + * @brief MenuTextures title Luigi Raceway * */ -MkTexture D_02004FE8[2] = { - { 1, 0, gTextureTitleLuigiRaceway, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02004FE8[2] = { + { 1, gTextureTitleLuigiRaceway, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Moo Moo Farm + * @brief MenuTextures title Moo Moo Farm * */ -MkTexture D_02005010[2] = { - { 1, 0, gTextureTitleMooMooFarm, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005010[2] = { + { 1, gTextureTitleMooMooFarm, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Toad's Turnpike + * @brief MenuTextures title Toad's Turnpike * */ -MkTexture D_02005038[2] = { - { 1, 0, gTextureTitleToadsTurnpike, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005038[2] = { + { 1, gTextureTitleToadsTurnpike, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Kalimari Desert + * @brief MenuTextures title Kalimari Desert * */ -MkTexture D_02005060[2] = { - { 1, 0, gTextureTitleKalimariDesert, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005060[2] = { + { 1, gTextureTitleKalimariDesert, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Sherbet Land + * @brief MenuTextures title Sherbet Land * */ -MkTexture D_02005088[2] = { - { 1, 0, gTextureTitleSherbetLand, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005088[2] = { + { 1, gTextureTitleSherbetLand, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Rainbow Road + * @brief MenuTextures title Rainbow Road * */ -MkTexture D_020050B0[2] = { - { 1, 0, gTextureTitleRainbowRoad, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020050B0[2] = { + { 1, gTextureTitleRainbowRoad, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Wario Stadium + * @brief MenuTextures title Wario Stadium * */ -MkTexture D_020050D8[2] = { - { 1, 0, gTextureTitleWarioStadium, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020050D8[2] = { + { 1, gTextureTitleWarioStadium, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Block Fort + * @brief MenuTextures title Block Fort * */ -MkTexture D_02005100[2] = { - { 1, 0, gTextureTitleBlockFort, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005100[2] = { + { 1, gTextureTitleBlockFort, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Skyscraper + * @brief MenuTextures title Skyscraper * */ -MkTexture D_02005128[2] = { - { 1, 0, gTextureTitleSkyscraper, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005128[2] = { + { 1, gTextureTitleSkyscraper, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Double Deck + * @brief MenuTextures title Double Deck * */ -MkTexture D_02005150[2] = { - { 1, 0, gTextureTitleDoubleDeck, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005150[2] = { + { 1, gTextureTitleDoubleDeck, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title DK's Jungle Parkway + * @brief MenuTextures title DK's Jungle Parkway * */ -MkTexture D_02005178[2] = { - { 1, 0, gTextureTitleDKsJungleParkway, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005178[2] = { + { 1, gTextureTitleDKsJungleParkway, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures title Big Donut + * @brief MenuTextures title Big Donut * */ -MkTexture D_020051A0[2] = { - { 1, 0, gTextureTitleBigDonut, 140, 18, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020051A0[2] = { + { 1, gTextureTitleBigDonut, 140, 18, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 00 + * @brief MenuTextures for Mario Face 00 * */ -MkTexture D_020051C8[2] = { - { 0, 0, gTextureMarioFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020051C8[2] = { + { 0, gTextureMarioFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 01 + * @brief MenuTextures for Mario Face 01 * */ -MkTexture D_020051F0[2] = { - { 0, 0, gTextureMarioFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020051F0[2] = { + { 0, gTextureMarioFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 02 + * @brief MenuTextures for Mario Face 02 * */ -MkTexture D_02005218[2] = { - { 0, 0, gTextureMarioFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005218[2] = { + { 0, gTextureMarioFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 03 + * @brief MenuTextures for Mario Face 03 * */ -MkTexture D_02005240[2] = { - { 0, 0, gTextureMarioFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005240[2] = { + { 0, gTextureMarioFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 04 + * @brief MenuTextures for Mario Face 04 * */ -MkTexture D_02005268[2] = { - { 0, 0, gTextureMarioFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005268[2] = { + { 0, gTextureMarioFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 05 + * @brief MenuTextures for Mario Face 05 * */ -MkTexture D_02005290[2] = { - { 0, 0, gTextureMarioFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005290[2] = { + { 0, gTextureMarioFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 06 + * @brief MenuTextures for Mario Face 06 * */ -MkTexture D_020052B8[2] = { - { 0, 0, gTextureMarioFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020052B8[2] = { + { 0, gTextureMarioFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 07 + * @brief MenuTextures for Mario Face 07 * */ -MkTexture D_020052E0[2] = { - { 0, 0, gTextureMarioFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020052E0[2] = { + { 0, gTextureMarioFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 08 + * @brief MenuTextures for Mario Face 08 * */ -MkTexture D_02005308[2] = { - { 0, 0, gTextureMarioFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005308[2] = { + { 0, gTextureMarioFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 09 + * @brief MenuTextures for Mario Face 09 * */ -MkTexture D_02005330[2] = { - { 0, 0, gTextureMarioFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005330[2] = { + { 0, gTextureMarioFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 10 + * @brief MenuTextures for Mario Face 10 * */ -MkTexture D_02005358[2] = { - { 0, 0, gTextureMarioFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005358[2] = { + { 0, gTextureMarioFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 11 + * @brief MenuTextures for Mario Face 11 * */ -MkTexture D_02005380[2] = { - { 0, 0, gTextureMarioFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005380[2] = { + { 0, gTextureMarioFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 12 + * @brief MenuTextures for Mario Face 12 * */ -MkTexture D_020053A8[2] = { - { 0, 0, gTextureMarioFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020053A8[2] = { + { 0, gTextureMarioFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 13 + * @brief MenuTextures for Mario Face 13 * */ -MkTexture D_020053D0[2] = { - { 0, 0, gTextureMarioFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020053D0[2] = { + { 0, gTextureMarioFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 14 + * @brief MenuTextures for Mario Face 14 * */ -MkTexture D_020053F8[2] = { - { 0, 0, gTextureMarioFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020053F8[2] = { + { 0, gTextureMarioFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 15 + * @brief MenuTextures for Mario Face 15 * */ -MkTexture D_02005420[2] = { - { 0, 0, gTextureMarioFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005420[2] = { + { 0, gTextureMarioFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Mario Face 16 + * @brief MenuTextures for Mario Face 16 * */ -MkTexture D_02005448[2] = { - { 0, 0, gTextureMarioFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005448[2] = { + { 0, gTextureMarioFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 00 + * @brief MenuTextures for Luigi Face 00 * */ -MkTexture D_02005470[2] = { - { 0, 0, gTextureLuigiFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005470[2] = { + { 0, gTextureLuigiFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 01 + * @brief MenuTextures for Luigi Face 01 * */ -MkTexture D_02005498[2] = { - { 0, 0, gTextureLuigiFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005498[2] = { + { 0, gTextureLuigiFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 02 + * @brief MenuTextures for Luigi Face 02 * */ -MkTexture D_020054C0[2] = { - { 0, 0, gTextureLuigiFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020054C0[2] = { + { 0, gTextureLuigiFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 03 + * @brief MenuTextures for Luigi Face 03 * */ -MkTexture D_020054E8[2] = { - { 0, 0, gTextureLuigiFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020054E8[2] = { + { 0, gTextureLuigiFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 04 + * @brief MenuTextures for Luigi Face 04 * */ -MkTexture D_02005510[2] = { - { 0, 0, gTextureLuigiFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005510[2] = { + { 0, gTextureLuigiFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 05 + * @brief MenuTextures for Luigi Face 05 * */ -MkTexture D_02005538[2] = { - { 0, 0, gTextureLuigiFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005538[2] = { + { 0, gTextureLuigiFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 06 + * @brief MenuTextures for Luigi Face 06 * */ -MkTexture D_02005560[2] = { - { 0, 0, gTextureLuigiFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005560[2] = { + { 0, gTextureLuigiFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 07 + * @brief MenuTextures for Luigi Face 07 * */ -MkTexture D_02005588[2] = { - { 0, 0, gTextureLuigiFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005588[2] = { + { 0, gTextureLuigiFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 08 + * @brief MenuTextures for Luigi Face 08 * */ -MkTexture D_020055B0[2] = { - { 0, 0, gTextureLuigiFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020055B0[2] = { + { 0, gTextureLuigiFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 09 + * @brief MenuTextures for Luigi Face 09 * */ -MkTexture D_020055D8[2] = { - { 0, 0, gTextureLuigiFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020055D8[2] = { + { 0, gTextureLuigiFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 10 + * @brief MenuTextures for Luigi Face 10 * */ -MkTexture D_02005600[2] = { - { 0, 0, gTextureLuigiFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005600[2] = { + { 0, gTextureLuigiFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 11 + * @brief MenuTextures for Luigi Face 11 * */ -MkTexture D_02005628[2] = { - { 0, 0, gTextureLuigiFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005628[2] = { + { 0, gTextureLuigiFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 12 + * @brief MenuTextures for Luigi Face 12 * */ -MkTexture D_02005650[2] = { - { 0, 0, gTextureLuigiFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005650[2] = { + { 0, gTextureLuigiFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 13 + * @brief MenuTextures for Luigi Face 13 * */ -MkTexture D_02005678[2] = { - { 0, 0, gTextureLuigiFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005678[2] = { + { 0, gTextureLuigiFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 14 + * @brief MenuTextures for Luigi Face 14 * */ -MkTexture D_020056A0[2] = { - { 0, 0, gTextureLuigiFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020056A0[2] = { + { 0, gTextureLuigiFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 15 + * @brief MenuTextures for Luigi Face 15 * */ -MkTexture D_020056C8[2] = { - { 0, 0, gTextureLuigiFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020056C8[2] = { + { 0, gTextureLuigiFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Luigi Face 16 + * @brief MenuTextures for Luigi Face 16 * */ -MkTexture D_020056F0[2] = { - { 0, 0, gTextureLuigiFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020056F0[2] = { + { 0, gTextureLuigiFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 00 + * @brief MenuTextures for Toad Face 00 * */ -MkTexture D_02005718[2] = { - { 0, 0, gTextureToadFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005718[2] = { + { 0, gTextureToadFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 01 + * @brief MenuTextures for Toad Face 01 * */ -MkTexture D_02005740[2] = { - { 0, 0, gTextureToadFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005740[2] = { + { 0, gTextureToadFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 02 + * @brief MenuTextures for Toad Face 02 * */ -MkTexture D_02005768[2] = { - { 0, 0, gTextureToadFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005768[2] = { + { 0, gTextureToadFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 03 + * @brief MenuTextures for Toad Face 03 * */ -MkTexture D_02005790[2] = { - { 0, 0, gTextureToadFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005790[2] = { + { 0, gTextureToadFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 04 + * @brief MenuTextures for Toad Face 04 * */ -MkTexture D_020057B8[2] = { - { 0, 0, gTextureToadFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020057B8[2] = { + { 0, gTextureToadFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 05 + * @brief MenuTextures for Toad Face 05 * */ -MkTexture D_020057E0[2] = { - { 0, 0, gTextureToadFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020057E0[2] = { + { 0, gTextureToadFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 06 + * @brief MenuTextures for Toad Face 06 * */ -MkTexture D_02005808[2] = { - { 0, 0, gTextureToadFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005808[2] = { + { 0, gTextureToadFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 07 + * @brief MenuTextures for Toad Face 07 * */ -MkTexture D_02005830[2] = { - { 0, 0, gTextureToadFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005830[2] = { + { 0, gTextureToadFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 08 + * @brief MenuTextures for Toad Face 08 * */ -MkTexture D_02005858[2] = { - { 0, 0, gTextureToadFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005858[2] = { + { 0, gTextureToadFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 09 + * @brief MenuTextures for Toad Face 09 * */ -MkTexture D_02005880[2] = { - { 0, 0, gTextureToadFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005880[2] = { + { 0, gTextureToadFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 10 + * @brief MenuTextures for Toad Face 10 * */ -MkTexture D_020058A8[2] = { - { 0, 0, gTextureToadFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020058A8[2] = { + { 0, gTextureToadFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 11 + * @brief MenuTextures for Toad Face 11 * */ -MkTexture D_020058D0[2] = { - { 0, 0, gTextureToadFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020058D0[2] = { + { 0, gTextureToadFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 12 + * @brief MenuTextures for Toad Face 12 * */ -MkTexture D_020058F8[2] = { - { 0, 0, gTextureToadFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020058F8[2] = { + { 0, gTextureToadFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 13 + * @brief MenuTextures for Toad Face 13 * */ -MkTexture D_02005920[2] = { - { 0, 0, gTextureToadFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005920[2] = { + { 0, gTextureToadFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 14 + * @brief MenuTextures for Toad Face 14 * */ -MkTexture D_02005948[2] = { - { 0, 0, gTextureToadFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005948[2] = { + { 0, gTextureToadFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 15 + * @brief MenuTextures for Toad Face 15 * */ -MkTexture D_02005970[2] = { - { 0, 0, gTextureToadFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005970[2] = { + { 0, gTextureToadFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Toad Face 16 + * @brief MenuTextures for Toad Face 16 * */ -MkTexture D_02005998[2] = { - { 0, 0, gTextureToadFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005998[2] = { + { 0, gTextureToadFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 00 + * @brief MenuTextures for Peach Face 00 * */ -MkTexture D_020059C0[2] = { - { 0, 0, gTexturePeachFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020059C0[2] = { + { 0, gTexturePeachFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 01 + * @brief MenuTextures for Peach Face 01 * */ -MkTexture D_020059E8[2] = { - { 0, 0, gTexturePeachFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020059E8[2] = { + { 0, gTexturePeachFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 02 + * @brief MenuTextures for Peach Face 02 * */ -MkTexture D_02005A10[2] = { - { 0, 0, gTexturePeachFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005A10[2] = { + { 0, gTexturePeachFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 03 + * @brief MenuTextures for Peach Face 03 * */ -MkTexture D_02005A38[2] = { - { 0, 0, gTexturePeachFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005A38[2] = { + { 0, gTexturePeachFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 04 + * @brief MenuTextures for Peach Face 04 * */ -MkTexture D_02005A60[2] = { - { 0, 0, gTexturePeachFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005A60[2] = { + { 0, gTexturePeachFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 05 + * @brief MenuTextures for Peach Face 05 * */ -MkTexture D_02005A88[2] = { - { 0, 0, gTexturePeachFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005A88[2] = { + { 0, gTexturePeachFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 06 + * @brief MenuTextures for Peach Face 06 * */ -MkTexture D_02005AB0[2] = { - { 0, 0, gTexturePeachFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005AB0[2] = { + { 0, gTexturePeachFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 07 + * @brief MenuTextures for Peach Face 07 * */ -MkTexture D_02005AD8[2] = { - { 0, 0, gTexturePeachFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005AD8[2] = { + { 0, gTexturePeachFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 08 + * @brief MenuTextures for Peach Face 08 * */ -MkTexture D_02005B00[2] = { - { 0, 0, gTexturePeachFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005B00[2] = { + { 0, gTexturePeachFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 09 + * @brief MenuTextures for Peach Face 09 * */ -MkTexture D_02005B28[2] = { - { 0, 0, gTexturePeachFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005B28[2] = { + { 0, gTexturePeachFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 10 + * @brief MenuTextures for Peach Face 10 * */ -MkTexture D_02005B50[2] = { - { 0, 0, gTexturePeachFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005B50[2] = { + { 0, gTexturePeachFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 11 + * @brief MenuTextures for Peach Face 11 * */ -MkTexture D_02005B78[2] = { - { 0, 0, gTexturePeachFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005B78[2] = { + { 0, gTexturePeachFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 12 + * @brief MenuTextures for Peach Face 12 * */ -MkTexture D_02005BA0[2] = { - { 0, 0, gTexturePeachFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005BA0[2] = { + { 0, gTexturePeachFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 13 + * @brief MenuTextures for Peach Face 13 * */ -MkTexture D_02005BC8[2] = { - { 0, 0, gTexturePeachFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005BC8[2] = { + { 0, gTexturePeachFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 14 + * @brief MenuTextures for Peach Face 14 * */ -MkTexture D_02005BF0[2] = { - { 0, 0, gTexturePeachFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005BF0[2] = { + { 0, gTexturePeachFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 15 + * @brief MenuTextures for Peach Face 15 * */ -MkTexture D_02005C18[2] = { - { 0, 0, gTexturePeachFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005C18[2] = { + { 0, gTexturePeachFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Peach Face 16 + * @brief MenuTextures for Peach Face 16 * */ -MkTexture D_02005C40[2] = { - { 0, 0, gTexturePeachFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005C40[2] = { + { 0, gTexturePeachFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 00 + * @brief MenuTextures for Yoshi Face 00 * */ -MkTexture D_02005C68[2] = { - { 0, 0, gTextureYoshiFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005C68[2] = { + { 0, gTextureYoshiFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 01 + * @brief MenuTextures for Yoshi Face 01 * */ -MkTexture D_02005C90[2] = { - { 0, 0, gTextureYoshiFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005C90[2] = { + { 0, gTextureYoshiFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 02 + * @brief MenuTextures for Yoshi Face 02 * */ -MkTexture D_02005CB8[2] = { - { 0, 0, gTextureYoshiFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005CB8[2] = { + { 0, gTextureYoshiFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 03 + * @brief MenuTextures for Yoshi Face 03 * */ -MkTexture D_02005CE0[2] = { - { 0, 0, gTextureYoshiFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005CE0[2] = { + { 0, gTextureYoshiFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 04 + * @brief MenuTextures for Yoshi Face 04 * */ -MkTexture D_02005D08[2] = { - { 0, 0, gTextureYoshiFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005D08[2] = { + { 0, gTextureYoshiFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 05 + * @brief MenuTextures for Yoshi Face 05 * */ -MkTexture D_02005D30[2] = { - { 0, 0, gTextureYoshiFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005D30[2] = { + { 0, gTextureYoshiFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 06 + * @brief MenuTextures for Yoshi Face 06 * */ -MkTexture D_02005D58[2] = { - { 0, 0, gTextureYoshiFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005D58[2] = { + { 0, gTextureYoshiFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 07 + * @brief MenuTextures for Yoshi Face 07 * */ -MkTexture D_02005D80[2] = { - { 0, 0, gTextureYoshiFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005D80[2] = { + { 0, gTextureYoshiFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 08 + * @brief MenuTextures for Yoshi Face 08 * */ -MkTexture D_02005DA8[2] = { - { 0, 0, gTextureYoshiFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005DA8[2] = { + { 0, gTextureYoshiFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 09 + * @brief MenuTextures for Yoshi Face 09 * */ -MkTexture D_02005DD0[2] = { - { 0, 0, gTextureYoshiFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005DD0[2] = { + { 0, gTextureYoshiFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 10 + * @brief MenuTextures for Yoshi Face 10 * */ -MkTexture D_02005DF8[2] = { - { 0, 0, gTextureYoshiFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005DF8[2] = { + { 0, gTextureYoshiFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 11 + * @brief MenuTextures for Yoshi Face 11 * */ -MkTexture D_02005E20[2] = { - { 0, 0, gTextureYoshiFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005E20[2] = { + { 0, gTextureYoshiFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 12 + * @brief MenuTextures for Yoshi Face 12 * */ -MkTexture D_02005E48[2] = { - { 0, 0, gTextureYoshiFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005E48[2] = { + { 0, gTextureYoshiFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 13 + * @brief MenuTextures for Yoshi Face 13 * */ -MkTexture D_02005E70[2] = { - { 0, 0, gTextureYoshiFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005E70[2] = { + { 0, gTextureYoshiFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 14 + * @brief MenuTextures for Yoshi Face 14 * */ -MkTexture D_02005E98[2] = { - { 0, 0, gTextureYoshiFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005E98[2] = { + { 0, gTextureYoshiFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 15 + * @brief MenuTextures for Yoshi Face 15 * */ -MkTexture D_02005EC0[2] = { - { 0, 0, gTextureYoshiFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005EC0[2] = { + { 0, gTextureYoshiFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Yoshi Face 16 + * @brief MenuTextures for Yoshi Face 16 * */ -MkTexture D_02005EE8[2] = { - { 0, 0, gTextureYoshiFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005EE8[2] = { + { 0, gTextureYoshiFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 00 + * @brief MenuTextures for DK Face 00 * */ -MkTexture D_02005F10[2] = { - { 0, 0, gTextureDkFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005F10[2] = { + { 0, gTextureDkFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 01 + * @brief MenuTextures for DK Face 01 * */ -MkTexture D_02005F38[2] = { - { 0, 0, gTextureDkFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005F38[2] = { + { 0, gTextureDkFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 02 + * @brief MenuTextures for DK Face 02 * */ -MkTexture D_02005F60[2] = { - { 0, 0, gTextureDkFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005F60[2] = { + { 0, gTextureDkFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 03 + * @brief MenuTextures for DK Face 03 * */ -MkTexture D_02005F88[2] = { - { 0, 0, gTextureDkFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005F88[2] = { + { 0, gTextureDkFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 04 + * @brief MenuTextures for DK Face 04 * */ -MkTexture D_02005FB0[2] = { - { 0, 0, gTextureDkFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005FB0[2] = { + { 0, gTextureDkFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 05 + * @brief MenuTextures for DK Face 05 * */ -MkTexture D_02005FD8[2] = { - { 0, 0, gTextureDkFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02005FD8[2] = { + { 0, gTextureDkFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 06 + * @brief MenuTextures for DK Face 06 * */ -MkTexture D_02006000[2] = { - { 0, 0, gTextureDkFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006000[2] = { + { 0, gTextureDkFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 07 + * @brief MenuTextures for DK Face 07 * */ -MkTexture D_02006028[2] = { - { 0, 0, gTextureDkFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006028[2] = { + { 0, gTextureDkFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 08 + * @brief MenuTextures for DK Face 08 * */ -MkTexture D_02006050[2] = { - { 0, 0, gTextureDkFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006050[2] = { + { 0, gTextureDkFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 09 + * @brief MenuTextures for DK Face 09 * */ -MkTexture D_02006078[2] = { - { 0, 0, gTextureDkFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006078[2] = { + { 0, gTextureDkFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 10 + * @brief MenuTextures for DK Face 10 * */ -MkTexture D_020060A0[2] = { - { 0, 0, gTextureDkFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020060A0[2] = { + { 0, gTextureDkFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 11 + * @brief MenuTextures for DK Face 11 * */ -MkTexture D_020060C8[2] = { - { 0, 0, gTextureDkFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020060C8[2] = { + { 0, gTextureDkFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 12 + * @brief MenuTextures for DK Face 12 * */ -MkTexture D_020060F0[2] = { - { 0, 0, gTextureDkFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020060F0[2] = { + { 0, gTextureDkFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 13 + * @brief MenuTextures for DK Face 13 * */ -MkTexture D_02006118[2] = { - { 0, 0, gTextureDkFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006118[2] = { + { 0, gTextureDkFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 14 + * @brief MenuTextures for DK Face 14 * */ -MkTexture D_02006140[2] = { - { 0, 0, gTextureDkFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006140[2] = { + { 0, gTextureDkFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 15 + * @brief MenuTextures for DK Face 15 * */ -MkTexture D_02006168[2] = { - { 0, 0, gTextureDkFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006168[2] = { + { 0, gTextureDkFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for DK Face 16 + * @brief MenuTextures for DK Face 16 * */ -MkTexture D_02006190[2] = { - { 0, 0, gTextureDkFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006190[2] = { + { 0, gTextureDkFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 00 + * @brief MenuTextures for Wario Face 00 * */ -MkTexture D_020061B8[2] = { - { 0, 0, gTextureWarioFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020061B8[2] = { + { 0, gTextureWarioFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 01 + * @brief MenuTextures for Wario Face 01 * */ -MkTexture D_020061E0[2] = { - { 0, 0, gTextureWarioFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020061E0[2] = { + { 0, gTextureWarioFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 02 + * @brief MenuTextures for Wario Face 02 * */ -MkTexture D_02006208[2] = { - { 0, 0, gTextureWarioFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006208[2] = { + { 0, gTextureWarioFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 03 + * @brief MenuTextures for Wario Face 03 * */ -MkTexture D_02006230[2] = { - { 0, 0, gTextureWarioFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006230[2] = { + { 0, gTextureWarioFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 04 + * @brief MenuTextures for Wario Face 04 * */ -MkTexture D_02006258[2] = { - { 0, 0, gTextureWarioFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006258[2] = { + { 0, gTextureWarioFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 05 + * @brief MenuTextures for Wario Face 05 * */ -MkTexture D_02006280[2] = { - { 0, 0, gTextureWarioFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006280[2] = { + { 0, gTextureWarioFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 06 + * @brief MenuTextures for Wario Face 06 * */ -MkTexture D_020062A8[2] = { - { 0, 0, gTextureWarioFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020062A8[2] = { + { 0, gTextureWarioFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 07 + * @brief MenuTextures for Wario Face 07 * */ -MkTexture D_020062D0[2] = { - { 0, 0, gTextureWarioFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020062D0[2] = { + { 0, gTextureWarioFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 08 + * @brief MenuTextures for Wario Face 08 * */ -MkTexture D_020062F8[2] = { - { 0, 0, gTextureWarioFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020062F8[2] = { + { 0, gTextureWarioFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 09 + * @brief MenuTextures for Wario Face 09 * */ -MkTexture D_02006320[2] = { - { 0, 0, gTextureWarioFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006320[2] = { + { 0, gTextureWarioFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 10 + * @brief MenuTextures for Wario Face 10 * */ -MkTexture D_02006348[2] = { - { 0, 0, gTextureWarioFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006348[2] = { + { 0, gTextureWarioFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 11 + * @brief MenuTextures for Wario Face 11 * */ -MkTexture D_02006370[2] = { - { 0, 0, gTextureWarioFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006370[2] = { + { 0, gTextureWarioFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 12 + * @brief MenuTextures for Wario Face 12 * */ -MkTexture D_02006398[2] = { - { 0, 0, gTextureWarioFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006398[2] = { + { 0, gTextureWarioFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 13 + * @brief MenuTextures for Wario Face 13 * */ -MkTexture D_020063C0[2] = { - { 0, 0, gTextureWarioFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020063C0[2] = { + { 0, gTextureWarioFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 14 + * @brief MenuTextures for Wario Face 14 * */ -MkTexture D_020063E8[2] = { - { 0, 0, gTextureWarioFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020063E8[2] = { + { 0, gTextureWarioFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 15 + * @brief MenuTextures for Wario Face 15 * */ -MkTexture D_02006410[2] = { - { 0, 0, gTextureWarioFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006410[2] = { + { 0, gTextureWarioFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Wario Face 16 + * @brief MenuTextures for Wario Face 16 * */ -MkTexture D_02006438[2] = { - { 0, 0, gTextureWarioFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006438[2] = { + { 0, gTextureWarioFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 00 + * @brief MenuTextures for Bowser Face 00 * */ -MkTexture D_02006460[2] = { - { 0, 0, gTextureBowserFace00, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006460[2] = { + { 0, gTextureBowserFace00, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 01 + * @brief MenuTextures for Bowser Face 01 * */ -MkTexture D_02006488[2] = { - { 0, 0, gTextureBowserFace01, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006488[2] = { + { 0, gTextureBowserFace01, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 02 + * @brief MenuTextures for Bowser Face 02 * */ -MkTexture D_020064B0[2] = { - { 0, 0, gTextureBowserFace02, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020064B0[2] = { + { 0, gTextureBowserFace02, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 03 + * @brief MenuTextures for Bowser Face 03 * */ -MkTexture D_020064D8[2] = { - { 0, 0, gTextureBowserFace03, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020064D8[2] = { + { 0, gTextureBowserFace03, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 04 + * @brief MenuTextures for Bowser Face 04 * */ -MkTexture D_02006500[2] = { - { 0, 0, gTextureBowserFace04, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006500[2] = { + { 0, gTextureBowserFace04, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 05 + * @brief MenuTextures for Bowser Face 05 * */ -MkTexture D_02006528[2] = { - { 0, 0, gTextureBowserFace05, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006528[2] = { + { 0, gTextureBowserFace05, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 06 + * @brief MenuTextures for Bowser Face 06 * */ -MkTexture D_02006550[2] = { - { 0, 0, gTextureBowserFace06, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006550[2] = { + { 0, gTextureBowserFace06, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 07 + * @brief MenuTextures for Bowser Face 07 * */ -MkTexture D_02006578[2] = { - { 0, 0, gTextureBowserFace07, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006578[2] = { + { 0, gTextureBowserFace07, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 08 + * @brief MenuTextures for Bowser Face 08 * */ -MkTexture D_020065A0[2] = { - { 0, 0, gTextureBowserFace08, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020065A0[2] = { + { 0, gTextureBowserFace08, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 09 + * @brief MenuTextures for Bowser Face 09 * */ -MkTexture D_020065C8[2] = { - { 0, 0, gTextureBowserFace09, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020065C8[2] = { + { 0, gTextureBowserFace09, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 10 + * @brief MenuTextures for Bowser Face 10 * */ -MkTexture D_020065F0[2] = { - { 0, 0, gTextureBowserFace10, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020065F0[2] = { + { 0, gTextureBowserFace10, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 11 + * @brief MenuTextures for Bowser Face 11 * */ -MkTexture D_02006618[2] = { - { 0, 0, gTextureBowserFace11, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006618[2] = { + { 0, gTextureBowserFace11, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 12 + * @brief MenuTextures for Bowser Face 12 * */ -MkTexture D_02006640[2] = { - { 0, 0, gTextureBowserFace12, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006640[2] = { + { 0, gTextureBowserFace12, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 13 + * @brief MenuTextures for Bowser Face 13 * */ -MkTexture D_02006668[2] = { - { 0, 0, gTextureBowserFace13, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006668[2] = { + { 0, gTextureBowserFace13, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 14 + * @brief MenuTextures for Bowser Face 14 * */ -MkTexture D_02006690[2] = { - { 0, 0, gTextureBowserFace14, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_02006690[2] = { + { 0, gTextureBowserFace14, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 15 + * @brief MenuTextures for Bowser Face 15 * */ -MkTexture D_020066B8[2] = { - { 0, 0, gTextureBowserFace15, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020066B8[2] = { + { 0, gTextureBowserFace15, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** - * @brief MkTextures for Bowser Face 16 + * @brief MenuTextures for Bowser Face 16 * */ -MkTexture D_020066E0[2] = { - { 0, 0, gTextureBowserFace16, 64, 64, 0, 0, 0x0, 0 }, - { 0, 0, NULL, 0, 0, 0, 0, 0, 0 }, +MenuTexture D_020066E0[2] = { + { 0, gTextureBowserFace16, 64, 64, 0, 0, 0x0}, + { 0, NULL, 0, 0, 0, 0, 0}, }; /** diff --git a/src/debug/all_variables.h b/src/debug/all_variables.h index dd1bd4d92..41afb0407 100644 --- a/src/debug/all_variables.h +++ b/src/debug/all_variables.h @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/effects.c b/src/effects.c index 76c38e4ba..bff1803ff 100644 --- a/src/effects.c +++ b/src/effects.c @@ -16,7 +16,7 @@ #include "effects.h" #include "audio/external.h" #include "spawn_players.h" -#include "code_80091750.h" +#include "menu_items.h" #include "port/Game.h" s32 D_8018D900[8]; diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index a55cf78d0..5b964e0d6 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -18,7 +18,7 @@ #include "audio/external.h" #include #include "podium_ceremony_actors.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_80057C60.h" #include "defines.h" diff --git a/src/ending/code_80280000.c b/src/ending/code_80280000.c index 848cd3e1a..daa7ba8c5 100644 --- a/src/ending/code_80280000.c +++ b/src/ending/code_80280000.c @@ -13,7 +13,7 @@ #include "code_80280000.h" #include "code_80281780.h" #include "skybox_and_splitscreen.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_8006E9C0.h" #include "code_800029B0.h" #include "ceremony_and_credits.h" diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index ec370711c..1c91047f2 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -17,7 +17,7 @@ #include "collision.h" #include "code_80281C40.h" #include "code_800029B0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "main.h" #include "menus.h" #include "render_courses.h" diff --git a/src/ending/code_80281C40.c b/src/ending/code_80281C40.c index 50a2b7839..1e4c63e79 100644 --- a/src/ending/code_80281C40.c +++ b/src/ending/code_80281C40.c @@ -7,7 +7,7 @@ #include "skybox_and_splitscreen.h" #include "render_objects.h" #include "code_80057C60.h" -#include "code_80091750.h" +#include "menu_items.h" #include "podium_ceremony_actors.h" #include "ceremony_and_credits.h" #include "podium_ceremony_actors.h" diff --git a/src/ending/credits.c b/src/ending/credits.c index 8458842df..4abcf58ea 100644 --- a/src/ending/credits.c +++ b/src/ending/credits.c @@ -1,7 +1,7 @@ #include "credits.h" #include "defines.h" -struct_802850C0_entry D_802850C0[] = { +CreditsRenderInfo gTextCreditsRenderInfo[] = { { 0.80f, -200, 38, 160, 30, SLIDE_RIGHT, TEXT_BLUE_GREEN_RED_CYCLE_1, 0 }, { 0.90f, 520, 200, 160, 200, SLIDE_LEFT, TEXT_BLUE, 0 }, { 0.80f, -200, 38, 160, 30, SLIDE_RIGHT, TEXT_BLUE_GREEN_RED_CYCLE_1, 0 }, diff --git a/src/ending/credits.h b/src/ending/credits.h index 7af30d018..4e5c97440 100644 --- a/src/ending/credits.h +++ b/src/ending/credits.h @@ -19,9 +19,9 @@ typedef struct { /* 0x0C */ s8 slideDirection; // 0 for slide right, 1 for slide left. May have other uses/effects /* 0x0D */ s8 textColor; /* 0x0E */ s16 padding; // Always seems to be 0, never read (that I can see) -} struct_802850C0_entry; // size = 0x10 +} CreditsRenderInfo; // size = 0x10 -extern struct_802850C0_entry D_802850C0[]; // D_802850C0 +extern CreditsRenderInfo gTextCreditsRenderInfo[]; // gTextCreditsRenderInfo extern char* gCreditsText[]; #endif diff --git a/src/engine/World.cpp b/src/engine/World.cpp index ded60a262..1e68a4b26 100644 --- a/src/engine/World.cpp +++ b/src/engine/World.cpp @@ -60,8 +60,8 @@ u32 World::GetCupIndex() { u32 World::NextCup() { s32 hack = 1; - // Prevent battle mode - if (gModeSelection == GRAND_PRIX) { + // Do not display battle mode on GP, TT, or VS + if (gModeSelection != BATTLE) { hack = 2; } diff --git a/src/engine/objects/Trophy.cpp b/src/engine/objects/Trophy.cpp index c14cc23ca..4de758aab 100644 --- a/src/engine/objects/Trophy.cpp +++ b/src/engine/objects/Trophy.cpp @@ -14,7 +14,7 @@ extern "C" { #include "engine/Matrix.h" #include "render_objects.h" #include "code_80086E70.h" -#include "code_80091750.h" +#include "menu_items.h" } OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) { diff --git a/src/engine/wasm.cpp b/src/engine/wasm.cpp index c94e7882b..cef8760dd 100644 --- a/src/engine/wasm.cpp +++ b/src/engine/wasm.cpp @@ -16,7 +16,7 @@ // #include // #include // #include -// #include +// #include // #include // #include // #include diff --git a/src/main.c b/src/main.c index ed98b5f3f..2eb386197 100644 --- a/src/main.c +++ b/src/main.c @@ -31,7 +31,7 @@ #include "code_800029B0.h" #include "code_80280000.h" #include "podium_ceremony_actors.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_80057C60.h" #include "profiler.h" #include "player_controller.h" diff --git a/src/code_80091750.c b/src/menu_items.c similarity index 63% rename from src/code_80091750.c rename to src/menu_items.c index 48e353058..a59a996b9 100644 --- a/src/code_80091750.c +++ b/src/menu_items.c @@ -9,7 +9,7 @@ #include #include #include "code_800029B0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_80005FD0.h" #include "code_8006E9C0.h" #include "menus.h" @@ -50,11 +50,14 @@ const char* GetCupName(void); -u16* D_8018D9B0; -u8* D_8018D9B4; -u8* D_8018D9B8; -u8* D_8018D9BC; -void* D_8018D9C0; +void guMtxCatL(Mtx* m, Mtx* n, Mtx* res); + +const char* sMenuTextureList[MENU_TEXTURE_BUFFER_MAX]; +u8* gMenuCompressedBuffer; +u8* sTKMK00_LowResBuffer; +u8* sGPPointsCopy; +void* gSomeDLBuffer; + /** * List of bytes indexed by character ID * Indicates number of Grand Prix points that character @@ -64,14 +67,14 @@ s8 gGPPointsByCharacterId[8]; s8 gCharacterIdByGPOverallRank[8]; s8 D_8018D9D8; s8 D_8018D9D9; -struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; +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; -struct_8018E118_entry D_8018E118[D_8018E118_SIZE]; -s32 gNumD_8018E118Entries; -Gfx* D_8018E75C; +s32 sMenuTextureListIndex; +TextureMap sMenuTextureMap[TEXTURE_MAP_MAX]; +s32 sMenuTextureEntries; +Gfx* sGfxPtr; s32 gNumD_8018E768Entries; struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; s32 gCycleFlashMenu; @@ -98,12 +101,11 @@ s32 gControllerPak1MaxWriteableFiles; s32 gControllerPak1NumPagesFree; s32 gControllerPak1FileNote; s32 gControllerPak2FileNote; -s32 code_80091750_bss_pad2; ALIGNED8 SaveData gSaveData; u8 D_8018ED90; u8 D_8018ED91; -s32 s8018ED94; +s32 sIntroLogoTimer; Unk_D_800E70A0 D_800E70A0[] = { { 0x3d, 0x11, 0x00, 0x00 }, { 0x15, 0x3e, 0x00, 0x00 }, { 0x5c, 0x3e, 0x00, 0x00 }, @@ -327,7 +329,7 @@ char* gCupNames[] = { // @todo Increase this array for more than eight players const s8 D_800EFD64[] = { 0, 1, 4, 3, 5, 6, 2, 7 }; -char* D_800E7678[] = { +char* gCupText[] = { "none", "bronze", "silver", @@ -370,20 +372,20 @@ char* gDebugSoundModeNames[] = { char* gSoundModeNames[NUM_SOUND_MODES] = { "STEREO", "HEADPHONE", "", "MONO" }; -char* D_800E7720[] = { +char* gWinLoseText[] = { "WINNER!", "LOSER!", }; -char* D_800E7728[] = { +char* gBestTimeText[] = { "BEST RECORDS", "BEST LAP", }; // Might need a const? -char* D_800E7730 = "LAP TIME"; +char* gLapTimeText = "LAP TIME"; -char* D_800E7734[] = { +char* gPrefixTimeText[] = { "LAP 1", "LAP 2", "LAP 3", @@ -406,23 +408,23 @@ char* D_800E7778[] = { }; // This is plain data, it should not end up in rodata -char D_800E7780[] = "NOW-MEET THE COURSE GHOST!!!"; +char gTextMenuAnnounceGhost[] = "NOW-MEET THE COURSE GHOST!!!"; -char* D_800E77A0[] = { "CONNECT A CONTROLLER TO SOCKET 1,", "THEN POWER ON AGAIN" }; +char* gTextNoController[] = { "CONNECT A CONTROLLER TO SOCKET 1,", "THEN POWER ON AGAIN" }; -char* D_800E77A8[] = { +char* gTextBattleIntroduction[] = { "BATTLE GAME", "POP OPPOSING PLAYER'S BALLOONS", "WHEN ALL 3 ARE GONE,THEY ARE OUT!", }; // This is plain data, it should not end up in rodata -char D_800E77B4[] = "a BUTTON*SEE DATA B BUTTON*EXIT"; +char gTextMenuData[] = "a BUTTON*SEE DATA B BUTTON*EXIT"; // This is plain data, it should not end up in rodata -char D_800E77D8[] = "distance"; +char gTextDistance[] = "distance"; -char* D_800E7834[] = { +char* gTextMenuOption[] = { "return to menu", "erase records for this course", "erase ghost from this course", @@ -433,8 +435,8 @@ char* D_800E7840[] = { "erase", }; -// Why oh why is this array flat? It should be D_800E7848[][3] -char* D_800E7848[] = { +// Why oh why is this array flat? It should be gEraseBestGhostText[][3] +char* gEraseBestGhostText[] = { "THE BEST RECORDS AND BEST", "LAP FOR THIS COURSE WILL BE", "ERASED. IS THIS OK?", "GHOST DATA FOR THIS", "COURSE WILL BE ERASED.", "IS THIS OK?", @@ -445,7 +447,7 @@ char* D_800E7860[] = { "GHOST DATA", }; -char* D_800E7868[] = { +char* gTextOptionMenu[] = { "RETURN TO GAME SELECT", "SOUND MODE", "COPY N64 CONTROLLER PAK", @@ -483,6 +485,9 @@ char* D_800E7890[] = { "UNABLE TO COPY GHOST ", "-- INSUFFICIENT FREE PAGES ", +}; + +char* D_800E78BC[] = { "IN CONTROLLER 1 ", "N64 CONTROLLER PAK", }; @@ -673,7 +678,7 @@ char* D_800E7A9C[] = { "WHAT A PITY!", }; -char* D_800E7AA4[] = { +char* gPlaceText[] = { "YOU PLACED", " st", " nd", " rd", " th", " th", " th", " th", " th", }; @@ -701,7 +706,7 @@ RGBA16 D_800E7AE8[] = { { 0xff, 0xff, 0xff, 0xff }, }; -MkTexture* D_800E7AF8[] = { +MenuTexture* D_800E7AF8[] = { D_02000000, D_02000028, D_02000050, D_02000078, D_020000A0, D_020000C8, D_020000F0, D_02000118, D_02000140, D_02000168, D_02000190, D_020001B8, D_020001E0, D_02000208, D_02000230, D_02000258, D_02000280, D_020002A8, D_020002D0, D_020002F8, D_02000320, D_02000348, D_02000370, D_02000398, D_020003C0, D_020003E8, D_02000410, @@ -719,7 +724,7 @@ MkTexture* D_800E7AF8[] = { D_020013B0, D_020013D8, D_02001400, D_02001428, D_02001450, D_02001478, D_020014A0, }; -MkTexture* D_800E7D0C[] = { +MenuTexture* D_800E7D0C[] = { D_020016BC, D_020016E4, D_0200170C, D_02001734, D_0200175C, D_02001784, D_020017AC, D_020017D4, D_020017FC, D_02001824, }; @@ -728,25 +733,29 @@ MkAnimation* D_800E7D34[] = { D_0200198C, D_0200199C, D_020019AC, D_020019BC, D_020019CC, D_020019DC, }; -MkTexture* D_800E7D4C[] = { - D_02004598, - D_020045C0, +MenuTexture* gMenuTexturesBackground[] = { + seg2_blue_sky_background_texture, + seg2_sunset_background_texture, }; -MkTexture* D_800E7D54[] = { +MenuTexture* D_800E7D54[] = { D_02001A8C, D_02001A64, D_02001AB4, D_02001A14, D_02001B04, D_020019EC, D_02001ADC, D_02001A3C, }; -MkTexture* D_800E7D74[] = { - D_02001B2C, D_02001B54, D_02001B7C, D_02001BA4, D_02001BCC, D_02001BF4, D_02001C1C, +MenuTexture* D_800E7D74[] = { + seg2_mario_raceway_preview_texture, D_02001B54, D_02001B7C, D_02001BA4, D_02001BCC, D_02001BF4, D_02001C1C, D_02001C44, D_02001C6C, D_02001C94, D_02001CBC, D_02001CE4, D_02001D0C, D_02001D34, D_02001D5C, D_02001D84, D_02001DAC, D_02001DD4, D_02001DFC, D_02001E24, }; -MkTexture* D_800E7DC4[] = { - D_02004EA8, D_02004ED0, D_02004EF8, D_02004F20, D_02004F48, D_02004F70, D_02004F98, +MenuTexture* D_800E7DC4[] = { + seg2_mario_raceway_title_texture, seg2_choco_mountain_title_texture, D_02004EF8, D_02004F20, D_02004F48, D_02004F70, D_02004F98, D_02004FC0, D_02004FE8, D_02005010, D_02005038, D_02005060, D_02005088, D_020050B0, - D_020050D8, D_02005100, D_02005128, D_02005150, D_02005178, D_020051A0, + D_020050D8 +}; + +MenuTexture* D_800E7E00[] = { +D_02005100, D_02005128, D_02005150, D_02005178, D_020051A0, }; // Unused? @@ -766,7 +775,7 @@ MkAnimation* D_800E7E34[] = { D_02001F44, D_02001F54, D_02001F64, D_02001F74, D_02001F84, D_02001F94, }; -MkTexture* gGlyphTextureLUT[] = { +MenuTexture* gGlyphTextureLUT[] = { D_0200211C, D_02002144, D_0200216C, D_02002194, D_020021BC, D_020021E4, D_0200220C, D_02002234, D_0200225C, D_02002284, D_020022AC, D_020022D4, D_020022FC, D_02002324, D_0200234C, D_02002374, D_0200239C, D_020023C4, D_020023EC, D_02002414, D_0200243C, D_02002464, D_0200248C, D_020024B4, D_020024DC, D_02002504, D_0200252C, @@ -780,7 +789,7 @@ MkTexture* gGlyphTextureLUT[] = { D_020031AC, }; -MkTexture* D_800E7FF0[] = { +MenuTexture* D_800E7FF0[] = { D_02003274, D_02002C34, D_020031D4, D_0200329C, D_02002C5C, D_020031FC, D_020032C4, D_02002C84, D_02003224, D_020032EC, D_02002CAC, D_0200324C, D_02003314, D_02002CD4, D_02002CFC, D_02002D24, D_02002D4C, D_02002D74, D_0200333C, D_02002D9C, D_02003364, D_02002DC4, D_0200338C, D_02002DEC, D_02002E14, D_02002E3C, D_02002E64, @@ -788,77 +797,96 @@ MkTexture* D_800E7FF0[] = { D_0200347C, D_020034A4, D_020034CC, D_020034F4, D_0200351C, D_02003544, D_0200356C, D_02003BD4, }; -MkTexture* D_800E80A0[] = { +MenuTexture* D_800E80A0[] = { D_02003594, D_02003BFC, D_020035BC, D_02003C24, D_020035E4, D_02003C4C, D_0200360C, D_02003C74, D_02003634, D_02003C9C, D_0200365C, D_02003CC4, D_02003684, D_02003CEC, D_020036AC, D_02003D14, D_020036D4, D_02003D3C, D_020036FC, D_02003D64, D_02003724, D_02003D8C, D_02004034, D_0200374C, D_02003DB4, D_02003774, D_02003DDC, D_0200379C, D_02003E04, }; -MkTexture* D_800E8114[] = { +MenuTexture* D_800E8114[] = { D_020037C4, D_020037EC, D_02003814, D_0200383C, D_02003864, D_0200388C, D_02003E2C, D_02003EF4, D_020038B4, D_02003E54, D_02003F1C, D_020038DC, D_02003E7C, D_02003F44, D_02003904, D_02003EA4, D_02003F6C, D_0200392C, D_02003ECC, D_02003F94, D_02003954, D_0200397C, D_020039A4, D_020039CC, }; -MkTexture* D_800E8174[] = { +MenuTexture* D_800E8174[] = { D_020039F4, D_02003FBC, }; -MkTexture* D_800E817C[] = { +MenuTexture* D_800E817C[] = { D_02003A1C, D_02003FE4, D_02003A44, D_0200400C, D_02003A6C, D_02003A94, D_02003ABC, D_02003AE4, D_02003B0C, D_02003B34, D_02003B5C, D_02003B84, D_02003BAC, D_0200405C, D_02004084, D_020040AC, D_020040D4, D_020040FC, D_020043CC, D_02004444, D_0200437C, D_020043F4, D_02004124, D_0200414C, D_02004174, D_0200419C, }; -MkTexture* D_800E81E4[] = { +MenuTexture* D_800E81E4[] = { D_020041C4, D_020041EC, D_02004214, D_0200423C, D_02004264, D_0200428C, D_020042B4, D_020042DC, D_02004354, D_020043A4, D_0200441C, D_0200446C, D_02004494, D_020044BC, D_02004304, D_0200432C, D_020044E4, D_0200450C, }; -MkTexture* D_800E822C[] = { +MenuTexture* D_800E822C[] = { D_02004534, D_0200455C, }; -// In a perfect world this would be `MkTexture *D_800E8234[][2]` -MkTexture* D_800E8234[] = { - D_02004688, D_020047DC, D_020046D8, D_02004804, D_0200473C, D_0200482C, +MenuTexture* D_800E8234[] = { + seg2_menu_1p_column, D_020047DC, + seg2_menu_2p_column, D_02004804, + seg2_menu_3p_column, D_0200482C, + seg2_menu_4p_column, D_02004854, }; -MkTexture* D_800E824C[] = { - D_0200478C, - D_02004854, +MenuTexture* D_800E8254[] = { + seg2_game_select_texture, + seg2_menu_1p_column, + seg2_menu_2p_column, + seg2_menu_3p_column, + seg2_menu_4p_column, + D_0200487C, + D_020048A4, + D_020048CC, }; -MkTexture* D_800E8254[] = { - D_02004660, D_02004688, D_020046D8, D_0200473C, D_0200478C, D_0200487C, D_020048A4, D_020048CC, +MenuTexture* D_800E8274[] = { // CC textures + seg2_50_CC_texture, seg2_100_CC_texture, seg2_150_CC_texture, seg2_extra_CC_texture, +}; +MenuTexture* D_800E8284[] = { // Versus and Battle textures + D_020049BC, seg2_menu_no_item_texture +}; +MenuTexture* D_800E828C[] = { // Time Trials Begin & Data (probably) + D_020049E4, seg2_data_texture, }; -MkTexture* D_800E8274[] = { - D_020048F4, D_0200491C, D_02004944, D_0200496C, D_020049BC, D_02004994, D_020049E4, D_02004A34, +// Next three variables are duplicates of the above, for whatever reason... +MenuTexture* D_800E8294[] = { + seg2_50_CC_texture, seg2_100_CC_texture, seg2_150_CC_texture, seg2_extra_CC_texture }; -MkTexture* D_800E8294[] = { - D_020048F4, D_0200491C, D_02004944, D_0200496C, D_020049BC, D_02004994, D_020049E4, D_02004A34, +MenuTexture* D_800E82A4[] = { + D_020049BC, seg2_menu_no_item_texture }; -MkTexture* D_800E82B4[] = { - D_02004A5C, - D_02004A98, - D_02004AD4, - D_02004B10, +MenuTexture* D_800E82AC[] = { + D_020049E4, seg2_data_texture, }; -MkTexture* D_800E82C4[] = { - D_02004B9C, D_02004BC4, D_02004BEC, D_02004C14, D_02004C3C, D_02004C64, - D_02004C8C, D_02004CF0, D_02004D54, D_02004DB8, D_02004E1C, D_02004E80, +MenuTexture* gMenuTexturesBorderPlayer[] = { + seg2_P1_border_texture, + seg2_P2_border_texture, + seg2_P3_border_texture, + seg2_P4_border_texture, }; -MkTexture* D_800E82F4[] = { - D_02004BC4, D_02004BEC, D_02004C14, D_02004C3C, D_02004C64, D_02004C8C, - D_02004CF0, D_02004D54, D_02004DB8, D_02004E1C, D_02004E80, +MenuTexture* gMenuTexturesTrackSelection[] = { + seg2_menu_select_texture, seg2_mushroom_cup_texture, seg2_flower_cup_texture, seg2_star_cup_texture, seg2_special_cup_texture, seg2_mario_raceway_preview_small_texture, + seg2_mushroom_cup_title_texture, seg2_flower_cup_title_texture, seg2_star_cup_title_texture, seg2_special_cup_title_texture, seg2_battle_title_texture, D_02004E80, +}; + +MenuTexture* D_800E82F4[] = { + seg2_mushroom_cup_texture, seg2_flower_cup_texture, seg2_star_cup_texture, seg2_special_cup_texture, seg2_mario_raceway_preview_small_texture, seg2_mushroom_cup_title_texture, + seg2_flower_cup_title_texture, seg2_star_cup_title_texture, seg2_special_cup_title_texture, seg2_battle_title_texture, D_02004E80, }; MkAnimation* D_800E8320[] = { @@ -935,9 +963,9 @@ Gfx* D_800E850C[] = { s8 D_800E852C = 1; -f32 D_800E8530 = 0.0f; +f32 sIntroModelMotionSpeed = 0.0f; -f32 D_800E8534 = 3.0f; +f32 sIntroModelSpeed = 3.0f; Unk_D_800E70A0 D_800E8538[] = { { 0x69, 0x9b, 0x00, 0x00 } }; @@ -1062,7 +1090,7 @@ f64 func_8009195C(f64 arg0) { return func_80091A6C((temp_f2 + arg0) / (temp_f2 - arg0), temp_f10); } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009195C.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_8009195C.s") #endif /** @@ -1131,9 +1159,9 @@ void func_80091B78(void) { if (D_800E852C) { D_800E852C = why; - D_8018EDF4 = 10; - D_8018EDF5 = 5; - D_8018EDF6 = 10; + gVersusResultCursorSelection = 10; + gTimeTrialsResultCursorSelection = 5; + gBattleResultCursorSelection = 10; if (osEepromProbe(&gSIEventMesgQueue) != 0) { // save data disabled for now due to array overflow // load_save_data(); @@ -1150,12 +1178,12 @@ void func_80091B78(void) { } gNextFreeMemoryAddress = gFreeMemoryResetAnchor; // Hypothetically, this should be a ptr... But only hypothetically. - D_8018D9B0 = get_next_available_memory_addr(0x000900B0); - D_8018D9B4 = (u8*) get_next_available_memory_addr(0x0000CE00); - D_8018D9B8 = (u8*) get_next_available_memory_addr(0x00012C00); - D_8018D9C0 = (struct_8018EE10_entry*) get_next_available_memory_addr(0x00001000); + //sMenuTextureList = get_next_available_memory_addr(0x000900B0); + gMenuCompressedBuffer = (u8*) get_next_available_memory_addr(0x0000CE00); + sTKMK00_LowResBuffer = (u8*) get_next_available_memory_addr(SCREEN_WIDTH * SCREEN_HEIGHT); + gSomeDLBuffer = (struct_8018EE10_entry*) get_next_available_memory_addr(0x00001000); func_800AF9B0(); - D_8018EE0C = 0; + unref_D_8018EE0C = 0; for (i = 0; i < 5; i++) { D_8018E7AC[i] = 0; @@ -1169,8 +1197,8 @@ void func_80091B78(void) { D_800DC5EC->screenStartY = 120; D_800DC5EC->screenWidth = SCREEN_WIDTH; D_800DC5EC->screenHeight = SCREEN_HEIGHT; - D_800E86A4 = 1; - render_menus(); + gFadeModeSelection = 1; + setup_menus(); for (i = 0; i < 4; i++) { func_800C97C4((u8) i); @@ -1180,7 +1208,7 @@ void func_80091B78(void) { func_800C9D0C((u8) i); } - func_800B44BC(); + set_sound_mode(); osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON); } @@ -1230,7 +1258,7 @@ void func_80091EE4(void) { gControllerPak1State = BAD; tmp = func_800B5F30(); - if ((D_8018EDFB != 0) && (tmp == 0)) { + if ((gGhostPlayerInit != 0) && (tmp == 0)) { temp_s2 = (GetCupIndex() * 4) + GetCupCursorPosition(); func_800B6708(); @@ -1238,7 +1266,7 @@ void func_80091EE4(void) { if ((D_8018EE10[temp_s0].ghostDataSaved != 0) && (temp_s2 == D_8018EE10[temp_s0].courseIndex)) { func_800B64EC(temp_s0); temp_s0 = 2; - D_8018EDFB = 0; + gGhostPlayerInit = 0; } } } @@ -1246,12 +1274,11 @@ void func_80091EE4(void) { void func_80091FA4(void) { s32 i; - //! @todo These sizes need to be sizeof() for shiftability if possible - D_8018D9B4 = (u8*) get_next_available_memory_addr(0x00002800); - D_8018D9B0 = (u16*) get_next_available_memory_addr(0x000124F8); - D_8018D9B8 = (u8*) get_next_available_memory_addr(0x00001000); - D_8018D9BC = get_next_available_memory_addr(4); + gMenuCompressedBuffer = (u8*) get_next_available_memory_addr(0x00002800); + //sMenuTextureList = (u16*) get_next_available_memory_addr(0x000124F8); + sTKMK00_LowResBuffer = (u8*) get_next_available_memory_addr(0x00001000); + sGPPointsCopy = get_next_available_memory_addr(4); for (i = 0; i < 5; i++) { D_8018E7AC[i] = 0; @@ -1261,23 +1288,23 @@ void func_80091FA4(void) { D_8018E838[i] = 0; } - func_80099110(); + clear_menu_textures(); func_8009A344(); - func_8009E620(); + clear_menus(); func_80092258(); - add_ui_element(0x00000096, 0x00000064, 0x00000024, 1); - add_ui_element(0x00000097, 0x00000064, 0x000000DD, 1); - add_ui_element(0x00000098, 0, 0, 0); - add_ui_element(0x000000C7, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_096, 0x00000064, 0x00000024, MENU_ITEM_PRIORITY_1); + add_menu_item(MENU_ITEM_TYPE_097, 0x00000064, 0x000000DD, MENU_ITEM_PRIORITY_1); + add_menu_item(MENU_ITEM_TYPE_098, 0, 0, MENU_ITEM_PRIORITY_0); + add_menu_item(MENU_ITEM_PAUSE, 0, 0, MENU_ITEM_PRIORITY_0); if (gModeSelection == TIME_TRIALS) { - add_ui_element(0x000000BE, 0, 0, 0); - add_ui_element(0x0000010E, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0BE, 0, 0, MENU_ITEM_PRIORITY_0); + add_menu_item(MENU_ITEM_TYPE_10E, 0, 0, MENU_ITEM_PRIORITY_0); } if ((D_8015F890 != 0) && (gModeSelection == TIME_TRIALS)) { - add_ui_element(0x000000BD, 0, 0, 0); + add_menu_item(MENU_ITEM_END_COURSE_OPTION, 0, 0, MENU_ITEM_PRIORITY_0); } - if (!(gControllerBits & 1) && (D_8018EE08 != 0)) { - add_ui_element(4, 0, 0, 2); + if (!(gControllerBits & 1) && (gDemoUseController != 0)) { + add_menu_item(MENU_ITEM_UI_NO_CONTROLLER, 0, 0, MENU_ITEM_PRIORITY_2); } func_800B5F30(); } @@ -1305,7 +1332,7 @@ void func_800921B4(void) { // if selected and detect kind menu void text_rainbow_effect(s32 test, s32 target, s32 alternative_color) { if (test == target) { - if (func_800B4520() != 0) { + if (is_screen_being_faded() != 0) { set_text_color(gGlobalTimer % 3); } else { set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); @@ -1388,149 +1415,149 @@ void func_80092500(void) { switch (gModeSelection) { case GRAND_PRIX: - add_ui_element(0xAA, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0AA, 0, 0, MENU_ITEM_PRIORITY_0); break; case TIME_TRIALS: - add_ui_element(0xB9, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0B9, 0, 0, MENU_ITEM_PRIORITY_0); break; } } void func_80092564(void) { - add_ui_element(0xAC, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0AC, 0, 0, MENU_ITEM_PRIORITY_0); func_8005D18C(); func_8001968C(); } void func_800925A0(void) { - add_ui_element(0xAF, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0AF, 0, 0, MENU_ITEM_PRIORITY_0); } void func_800925CC(void) { - struct_8018D9E0_entry* temp = find_8018D9E0_entry_dupe(0xAF); - if (temp->cursor == 2) { - temp->cursor = 3; + MenuItem* item = find_menu_items_dupe(MENU_ITEM_TYPE_0AF); + if (item->state == 2) { + item->state = 3; } } void func_80092604(void) { - add_ui_element(0xB0, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0B0, 0, 0, MENU_ITEM_PRIORITY_0); } void func_80092630(void) { - add_ui_element(0xBC, 0, 0, 0); + add_menu_item(MENU_ITEM_ANNOUNCE_GHOST, 0, 0, MENU_ITEM_PRIORITY_0); } void func_8009265C(void) { - add_ui_element(0x12B, 0, 0, 2); + add_menu_item(MENU_ITEM_TYPE_12B, 0, 0, MENU_ITEM_PRIORITY_2); } void func_80092688(void) { switch (D_800DC5E4) { case 0: - add_ui_element(0x1CE, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1CE, 0, 0, MENU_ITEM_PRIORITY_2); + break; default: - add_ui_element(0x190, 0, 0, 2); - add_ui_element(0x191, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_190, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_191, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 2: - add_ui_element(0x192, 0, 0, 2); - add_ui_element(0x193, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_192, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_193, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 3: - add_ui_element(0x194, 0, 0, 2); - add_ui_element(0x195, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_194, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_195, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 4: - add_ui_element(0x196, 0, 0, 2); - add_ui_element(0x197, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_196, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_197, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 5: - add_ui_element(0x198, 0, 0, 2); - add_ui_element(0x199, 0, 0, 2); - add_ui_element(0x19A, 0, 0, 2); - add_ui_element(0x19B, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_198, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_199, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_19A, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_19B, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 6: - add_ui_element(0x198, 0, 0, 2); - add_ui_element(0x19C, 0, 0, 2); - add_ui_element(0x19D, 0, 0, 2); - add_ui_element(0x19E, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_198, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_19C, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_19D, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_19E, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 7: - add_ui_element(0x19F, 0, 0, 2); - add_ui_element(0x1A0, 0, 0, 2); - add_ui_element(0x1A1, 0, 0, 2); - add_ui_element(0x1A2, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_19F, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A0, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A1, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A2, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 8: - add_ui_element(0x1A3, 0, 0, 2); - add_ui_element(0x1A4, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1A3, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A4, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 9: - add_ui_element(0x1A5, 0, 0, 2); - add_ui_element(0x1A6, 0, 0, 2); - add_ui_element(0x1A7, 0, 0, 2); - add_ui_element(0x1A8, 0, 0, 2); - add_ui_element(0x1A9, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1A5, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A6, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A7, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A8, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A9, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 10: - add_ui_element(0x1A5, 0, 0, 2); - add_ui_element(0x1A6, 0, 0, 2); - add_ui_element(0x1AA, 0, 0, 2); - add_ui_element(0x1AB, 0, 0, 2); - add_ui_element(0x1AC, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1A5, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1A6, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1AA, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1AB, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1AC, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 11: - add_ui_element(0x1AD, 0, 0, 2); - add_ui_element(0x1AE, 0, 0, 2); - add_ui_element(0x1AF, 0, 0, 2); - add_ui_element(0x1B0, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1AD, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1AE, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1AF, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B0, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 12: - add_ui_element(0x1B1, 0, 0, 2); - add_ui_element(0x1B2, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1B1, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B2, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 13: - add_ui_element(0x1B3, 0, 0, 2); - add_ui_element(0x1B4, 0, 0, 2); - add_ui_element(0x1B5, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1B3, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B4, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B5, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 14: - add_ui_element(0x1B6, 0, 0, 2); - add_ui_element(0x1B7, 0, 0, 2); - add_ui_element(0x1B8, 0, 0, 2); - add_ui_element(0x1B9, 0, 0, 2); - add_ui_element(0x1BA, 0, 0, 2); - add_ui_element(0x1BB, 0, 0, 2); - add_ui_element(0x1BC, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1B6, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B7, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B8, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1B9, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1BA, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1BB, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1BC, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 15: - add_ui_element(0x1BD, 0, 0, 2); - add_ui_element(0x1BE, 0, 0, 2); - add_ui_element(0x1BF, 0, 0, 2); - add_ui_element(0x1C0, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1BD, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1BE, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1BF, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C0, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 16: - add_ui_element(0x1C1, 0, 0, 2); - add_ui_element(0x1C2, 0, 0, 2); - add_ui_element(0x1C3, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1C1, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C2, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C3, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 17: - add_ui_element(0x1C4, 0, 0, 2); - add_ui_element(0x1C5, 0, 0, 2); - add_ui_element(0x1C6, 0, 0, 2); - add_ui_element(0x1C7, 0, 0, 2); - add_ui_element(0x1C8, 0, 0, 2); - add_ui_element(0x1C9, 0, 0, 2); - add_ui_element(0x1CA, 0, 0, 2); - add_ui_element(0x1CB, 0, 0, 2); - add_ui_element(0x1CC, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1C4, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C5, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C6, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C7, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C8, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1C9, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1CA, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1CB, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_1CC, 0, 0, MENU_ITEM_PRIORITY_2); + break; case 18: - add_ui_element(0x1CD, 0, 0, 2); - return; + add_menu_item(MENU_ITEM_TYPE_1CD, 0, 0, MENU_ITEM_PRIORITY_2); + break; } } @@ -1542,76 +1569,76 @@ void func_80092C80(void) { // Some kind of lookup function, seems to return an index to be used // to get a character's width in pixels s32 char_to_glyph_index(char* character) { - s32 var_v1; + s32 index; s8 temp_v0; temp_v0 = *character; - var_v1 = 1; + index = 1; if ((temp_v0 >= 'a') && (temp_v0 <= 'z')) { - var_v1 = temp_v0 - 0x61; + index = temp_v0 - 0x61; } else if ((temp_v0 >= 'A') && (temp_v0 <= 'Z')) { - var_v1 = temp_v0 - 0x41; + index = temp_v0 - 0x41; } else if ((temp_v0 >= '0') && (temp_v0 <= '9')) { - var_v1 = temp_v0 - 0x10; + index = temp_v0 - 0x10; } else if (temp_v0 == ' ') { - var_v1 = -1; + index = -1; } else if (temp_v0 < 0) { // Handling EUC-JUP characters switch (temp_v0) { /* irregular */ case -92: // 0xA4 - var_v1 = func_80092E1C(character + 1); + index = func_80092E1C(character + 1); break; case -91: // 0xA5 - var_v1 = func_80092DF8(character + 1); + index = func_80092DF8(character + 1); break; case -95: // 0xA1 case -93: // 0xA3 case -85: // 0xAB - var_v1 = func_80092EE4(character); + index = func_80092EE4(character); break; } } else { switch (temp_v0) { case '!': - var_v1 = 0x0000001A; + index = 0x0000001A; break; case '-': - var_v1 = 0x0000001B; + index = 0x0000001B; break; case '?': - var_v1 = 0x0000001C; + index = 0x0000001C; break; case '\'': - var_v1 = 0x0000001D; + index = 0x0000001D; break; case '$': - var_v1 = 0x0000001E; + index = 0x0000001E; break; case '.': - var_v1 = 0x0000001F; + index = 0x0000001F; break; case '\"': - var_v1 = 0x0000002A; + index = 0x0000002A; break; case '*': - var_v1 = 0x0000002B; + index = 0x0000002B; break; case '+': - var_v1 = 0x0000002C; + index = 0x0000002C; break; // Displayed as "cc" case '(': - var_v1 = 0x0000002D; + index = 0x0000002D; break; case ',': - var_v1 = 0x0000002E; + index = 0x0000002E; break; default: - var_v1 = -2; + index = -2; break; } } - return var_v1; + return index; } s32 func_80092DF8(char* arg) { @@ -1779,7 +1806,7 @@ void set_text_color(s32 arg0) { UNUSED void func_800930E4(s32 arg0, s32 arg1, char* arg2) { set_text_color(TEXT_BLUE); - func_80093324(arg0, arg1, arg2, 0, 1.0, 1.0); + print_text_mode_1(arg0, arg1, arg2, 0, 1.0, 1.0); } // "tracking" is a uniform spacing between all characters in a given word @@ -1792,10 +1819,10 @@ void print_text0(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 do { glyphIndex = char_to_glyph_index(text); if (glyphIndex >= 0) { - load_menu_img((MkTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex])); + load_menu_img((MenuTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex])); gDisplayListHead = print_letter(gDisplayListHead, - (MkTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex]), + (MenuTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex]), column + (stringWidth * scaleX), row, mode, scaleX, scaleY); stringWidth += gGlyphDisplayWidth[glyphIndex] + tracking; } else if ((glyphIndex != -2) && (glyphIndex == -1)) { @@ -1814,11 +1841,11 @@ void print_text0(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 gSPDisplayList(gDisplayListHead++, D_020077D8); } -void func_80093324(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text_mode_1(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text0(column, row, text, tracking, scaleX, scaleY, 1); } -void func_80093358(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text_mode_2(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text0(column, row, text, tracking, scaleX, scaleY, 2); } @@ -1846,15 +1873,15 @@ void print_text1(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 } switch (arg6) { - case 1: + case LEFT_TEXT: // ??? do { } while (0); - case 3: + case RIGHT_TEXT: column -= stringWidth; break; - case 2: - case 4: + case CENTER_TEXT_MODE_1: + case CENTER_TEXT_MODE_2: column -= stringWidth / 2; break; default: @@ -1890,24 +1917,24 @@ void print_text1(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 gSPDisplayList(gDisplayListHead++, D_020077D8); } -void func_800936B8(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text1_left(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text1(column, row, text, tracking, scaleX, scaleY, 1); } -void draw_text(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text1_center_mode_1(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text1(column, row, text, tracking, scaleX, scaleY, 2); } -void func_80093720(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text1_right(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text1(column, row, text, tracking, scaleX, scaleY, 3); } -void func_80093754(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { +void print_text1_center_mode_2(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY) { print_text1(column, row, text, tracking, scaleX, scaleY, 4); } void print_text2(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 scaleY, s32 arg6) { - MkTexture* glyphTexture; + MenuTexture* glyphTexture; s32 characterWidth; s32 glyphIndex; @@ -1916,7 +1943,7 @@ void print_text2(s32 column, s32 row, char* text, s32 tracking, f32 scaleX, f32 do { glyphIndex = char_to_glyph_index(text); if (glyphIndex >= 0) { - glyphTexture = (MkTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex]); + glyphTexture = (MenuTexture*) segmented_to_virtual_dupe((const void*) gGlyphTextureLUT[glyphIndex]); load_menu_img(glyphTexture); gDisplayListHead = print_letter(gDisplayListHead, glyphTexture, column - (gGlyphDisplayWidth[glyphIndex] / 2), row, @@ -2039,7 +2066,7 @@ void func_80093C98(s32 arg0) { AddEffectMatrixOrtho(); gSPDisplayList(gDisplayListHead++, D_02007F18); gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); - func_800A8250(); + handle_menus_special(); if (arg0 == 0) { func_800A54EC(); func_8009CA6C(4); @@ -2060,10 +2087,10 @@ void func_80093E40(void) { void func_80093E60(void) { s32 i; - D_8018D9B4 = get_next_available_memory_addr(0x00002800); - D_8018D9B0 = (u16*) get_next_available_memory_addr(0x000124F8); - D_8018D9B8 = get_next_available_memory_addr(0x00001000); - D_8018D9BC = get_next_available_memory_addr(4U); + gMenuCompressedBuffer = get_next_available_memory_addr(0x00002800); + //sMenuTextureList = (u16*) get_next_available_memory_addr(0x000124F8); + sTKMK00_LowResBuffer = get_next_available_memory_addr(0x00001000); + sGPPointsCopy = get_next_available_memory_addr(4U); for (i = 0; i < 5; i++) { D_8018E7AC[i] = 0; @@ -2073,9 +2100,9 @@ void func_80093E60(void) { D_8018E838[i] = 0; } - func_80099110(); + clear_menu_textures(); func_8009A344(); - func_8009E620(); + clear_menus(); func_80092258(); D_8018ED91 = 0; } @@ -2093,7 +2120,7 @@ void func_80093F10(void) { func_8009C918(); func_80099A70(); func_80099E54(); - func_800A8230(); + handle_menus_default(); func_80099AEC(); func_80099EC4(); func_8009CA2C(); @@ -2115,7 +2142,7 @@ void func_800940EC(s32 arg0) { func_80092148(); func_80099A70(); func_80099E54(); - func_800A8230(); + handle_menus_default(); func_80099AEC(); func_80099EC4(); func_8009CA6C(arg0); @@ -2131,9 +2158,9 @@ void func_800942D0(void) { test = &gGfxPool->mtxObject[0]; gSPMatrix(gDisplayListHead++, &gGfxPool->mtxScreen, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPMatrix(gDisplayListHead++, &gGfxPool->mtxLookAt[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - guRotate(test, D_8018EDC8, 1.0f, 0.0f, 0.0f); - guRotate(test + 1, D_8018EDCC, 0.0f, 1.0f, 0.0f); - guScale(test + 2, 1.0f, 1.0f, D_8018EDC4); + guRotate(test, gIntroModelRotX, 1.0f, 0.0f, 0.0f); + guRotate(test + 1, gIntroModelRotY, 0.0f, 1.0f, 0.0f); + guScale(test + 2, 1.0f, 1.0f, gIntroModelScale); gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, test++, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); @@ -2141,14 +2168,14 @@ void func_800942D0(void) { gDPSetEnvColor(gDisplayListHead++, 0x00, 0x00, 0x00, 0x00); gSPDisplayList(gDisplayListHead++, D_02007F60); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); - if (D_800E8530 > 0) { - var_f26 = D_800E8534; + if (sIntroModelMotionSpeed > 0) { + var_f26 = sIntroModelSpeed; if (var_f26 > 10.0f) { var_f26 = 10.0f; } for (var_s2 = 0, thing = 0xC0; var_s2 < 0xC; var_s2++, thing -= 0x10) { guRotate(test, 0.0f, 1.0f, 0.0f, 0.0f); - guRotate(test + 1, (var_s2 + 1) * D_800E8530 * var_f26, 0.0f, 1.0f, 0.0f); + guRotate(test + 1, (var_s2 + 1) * sIntroModelMotionSpeed * var_f26, 0.0f, 1.0f, 0.0f); guScale(test + 2, 1.0f, 1.0f, 2.0f); gSPMatrix(gDisplayListHead++, test++, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); @@ -2167,7 +2194,7 @@ void func_80094660(struct GfxPool* arg0, UNUSED s32 arg1) { gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP); guPerspective(&arg0->mtxScreen, &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); - guLookAt(&arg0->mtxLookAt[0], 0.0f, 0.0f, (f32) D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + guLookAt(&arg0->mtxLookAt[0], 0.0f, 0.0f, (f32) gIntroModelZEye, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); func_800942D0(); gDPPipeSync(gDisplayListHead++); gDPSetTexturePersp(gDisplayListHead++, G_TP_NONE); @@ -2179,12 +2206,12 @@ void render_checkered_flag(struct GfxPool* arg0, UNUSED s32 arg1) { move_segment_table_to_dmem(); guPerspective(&arg0->mtxPersp[0], &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); - guLookAt(&arg0->mtxLookAt[1], 0.0f, 0.0f, (f32) D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); - guRotate(&arg0->mtxObject[0], D_8018EDC8, 1.0f, 0, 0); - guRotate(&arg0->mtxObject[1], D_8018EDCC, 0, 1.0f, 0); - guRotate(&arg0->mtxObject[2], D_8018EDD0, 0, 0, 1.0f); - guScale(&arg0->mtxObject[3], D_8018EDC4, D_8018EDC4, D_8018EDC4); - guTranslate(&arg0->mtxObject[4], D_8018EDD4, D_8018EDD8, D_8018EDDC); + guLookAt(&arg0->mtxLookAt[1], 0.0f, 0.0f, (f32) gIntroModelZEye, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + guRotate(&arg0->mtxObject[0], gIntroModelRotX, 1.0f, 0, 0); + guRotate(&arg0->mtxObject[1], gIntroModelRotY, 0, 1.0f, 0); + guRotate(&arg0->mtxObject[2], gIntroModelRotZ, 0, 0, 1.0f); + guScale(&arg0->mtxObject[3], gIntroModelScale, gIntroModelScale, gIntroModelScale); + guTranslate(&arg0->mtxObject[4], gIntroModelPosX, gIntroModelPosY, gIntroModelPosZ); gSPMatrix(gDisplayListHead++, &arg0->mtxPersp[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPMatrix(gDisplayListHead++, &arg0->mtxLookAt[1], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, &arg0->mtxObject[0], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); @@ -2207,7 +2234,7 @@ void func_80094A64(struct GfxPool* pool) { guOrtho(&pool->mtxScreen, 0.0f, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0.0f, -100.0f, 100.0f, 1.0f); gSPMatrix(gDisplayListHead++, &pool->mtxScreen, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPDisplayList(gDisplayListHead++, D_02007650); - render_menus(); + setup_menus(); func_80092290(4, D_8018E850, D_8018E858); func_80092290(5, (s32*) &D_8018E850[1], (s32*) &D_8018E858[1]); func_80099A70(); @@ -2225,7 +2252,7 @@ void func_80094A64(struct GfxPool* pool) { case MAIN_MENU: case CHARACTER_SELECT_MENU: case COURSE_SELECT_MENU: - func_800A8230(); + handle_menus_default(); func_80099AEC(); break; } @@ -2235,145 +2262,145 @@ void func_80094A64(struct GfxPool* pool) { gSPDisplayList(gDisplayListHead++, D_020076B0); } -void render_menus(void) { - if (D_800E86A4 != 0) { - func_80099110(); +void setup_menus(void) { + if (gFadeModeSelection != 0) { + clear_menu_textures(); func_8009A344(); - func_8009E620(); + clear_menus(); func_8009B938(); func_80092258(); func_800B5F30(); func_800B6014(); - func_800B3F74(gMenuSelection); + load_menu_states(gMenuSelection); switch (gMenuSelection) { case OPTIONS_MENU: - add_ui_element(0x00000023, 0, 0, 2); - add_ui_element(0x000000F1, 0, 0, 4); - add_ui_element(0x000000F0, 0, 0, 2); + add_menu_item(MAIN_MENU_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_0F1, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(MENU_ITEM_TYPE_0F0, 0, 0, MENU_ITEM_PRIORITY_2); break; case DATA_MENU: - add_ui_element(0x00000023, 0, 0, 2); - add_ui_element(0x0000008C, 0, 0, 6); - add_ui_element(0x0000007C, 0, 0, 6); - add_ui_element(0x0000007D, 0, 0, 6); - add_ui_element(0x0000007E, 0, 0, 6); - add_ui_element(0x0000007F, 0, 0, 6); - add_ui_element(0x00000080, 0, 0, 6); - add_ui_element(0x00000081, 0, 0, 6); - add_ui_element(0x00000082, 0, 0, 6); - add_ui_element(0x00000083, 0, 0, 6); - add_ui_element(0x00000084, 0, 0, 6); - add_ui_element(0x00000085, 0, 0, 6); - add_ui_element(0x00000086, 0, 0, 6); - add_ui_element(0x00000087, 0, 0, 6); - add_ui_element(0x00000088, 0, 0, 6); - add_ui_element(0x00000089, 0, 0, 6); - add_ui_element(0x0000008A, 0, 0, 6); - add_ui_element(0x0000008B, 0, 0, 6); - add_ui_element(0x0000008D, 0, 0, 8); + add_menu_item(MAIN_MENU_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_TYPE_08C, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_07C, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_07D, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_07E, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_07F, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_080, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_081, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_082, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_083, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_084, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_085, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_086, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_087, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_088, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_089, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_08A, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_08B, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_08D, 0, 0, MENU_ITEM_PRIORITY_8); break; case COURSE_DATA_MENU: - add_ui_element(0x000000E6, 0, 0, 8); - add_ui_element(0x000000E7, 0, 0, 8); - add_ui_element(0x000000E8, 0, 0, 8); - add_ui_element(0x000000E9, 0, 0, 8); - add_ui_element(0x000000EA, 0, 0, 8); + add_menu_item(MENU_ITEM_DATA_COURSE_IMAGE, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_DATA_COURSE_INFO, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_DATA_COURSE_SELECTABLE, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_0E9, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_0EA, 0, 0, MENU_ITEM_PRIORITY_8); break; case LOGO_INTRO_MENU: - add_ui_element(0x000000FA, 0, 0, 0); + add_menu_item(MENU_ITEM_UI_LOGO_INTRO, 0, 0, MENU_ITEM_PRIORITY_0); break; case CONTROLLER_PAK_MENU: - add_ui_element(0x000000DA, 0, 0, 0); - add_ui_element(0x000000D2, 0, 0, 4); - add_ui_element(0x000000D4, 0, 0, 6); - add_ui_element(0x000000D3, 0, 0, 8); - add_ui_element(0x000000D5, 0, 0, 0x0A); - add_ui_element(0x000000D6, 0, 0, 0x0A); - add_ui_element(0x000000D7, 0, 0, 0x0A); - add_ui_element(0x000000D8, 0, 0, 0x0A); - add_ui_element(0x000000D9, 0, 0, 0x0A); + add_menu_item(MENU_ITEM_TYPE_0DA, 0, 0, MENU_ITEM_PRIORITY_0); + add_menu_item(MENU_ITEM_TYPE_0D2, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(MENU_ITEM_TYPE_0D4, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_0D3, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_0D5, 0, 0, MENU_ITEM_PRIORITY_A); + add_menu_item(MENU_ITEM_TYPE_0D6, 0, 0, MENU_ITEM_PRIORITY_A); + add_menu_item(MENU_ITEM_TYPE_0D7, 0, 0, MENU_ITEM_PRIORITY_A); + add_menu_item(MENU_ITEM_TYPE_0D8, 0, 0, MENU_ITEM_PRIORITY_A); + add_menu_item(MENU_ITEM_TYPE_0D9, 0, 0, MENU_ITEM_PRIORITY_A); break; case START_MENU: - add_ui_element(2, 0, 0, 4); - add_ui_element(1, 0, 0, 0); - add_ui_element(0x000000FB, 0, 0, 0); + add_menu_item(MENU_ITEM_UI_LOGO_AND_COPYRIGHT, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(MENU_ITEM_UI_START_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_0); + add_menu_item(START_MENU_FLAG, 0, 0, MENU_ITEM_PRIORITY_0); if (gControllerBits & 1) { - add_ui_element(3, 0, 0, 2); + add_menu_item(MENU_ITEM_UI_PUSH_START_BUTTON, 0, 0, MENU_ITEM_PRIORITY_2); } else { - add_ui_element(4, 0, 0, 2); + add_menu_item(MENU_ITEM_UI_NO_CONTROLLER, 0, 0, MENU_ITEM_PRIORITY_2); } - add_ui_element(5, 0, 0, 6); + add_menu_item(MENU_ITEM_UI_START_RECORD_TIME, 0, 0, MENU_ITEM_PRIORITY_6); gDemoMode = 0; - D_8018EE08 = 0; + gDemoUseController = 0; break; case MAIN_MENU: - add_ui_element(0x00000023, 0, 0, 2); - add_ui_element(0x0000000A, 0x0000015E, 0x00000011, 6); - add_ui_element(0x0000000E, 0x0000015E, 0x0000003E, 6); - add_ui_element(0x0000000D, 0x0000015E, 0x0000003E, 6); - add_ui_element(0x0000000C, 0x0000015E, 0x0000003E, 6); - add_ui_element(0x0000000B, 0x0000015E, 0x0000003E, 6); - add_ui_element(0x0000000F, 0x0000015E, 0x000000C8, 6); - add_ui_element(0x00000011, 0x0000015E, 0x000000C8, 6); - add_ui_element(0x00000010, 0x0000015E, 0x000000C8, 6); + add_menu_item(MAIN_MENU_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(MENU_ITEM_UI_GAME_SELECT, 0x0000015E, 0x00000011, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_UI_4P_GAME, 0x0000015E, 0x0000003E, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_UI_3P_GAME, 0x0000015E, 0x0000003E, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_UI_2P_GAME, 0x0000015E, 0x0000003E, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_UI_1P_GAME, 0x0000015E, 0x0000003E, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_UI_OK, 0x0000015E, 0x000000C8, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_DATA_GFX, 0x0000015E, 0x000000C8, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_OPTION_GFX, 0x0000015E, 0x000000C8, MENU_ITEM_PRIORITY_6); if (has_unlocked_extra_mode() != 0) { - add_ui_element(0x00000015, 0, 0, 6); + add_menu_item(MAIN_MENU_EXTRA_CC, 0, 0, MENU_ITEM_PRIORITY_6); } - add_ui_element(0x00000014, 0, 0, 6); - add_ui_element(0x00000013, 0, 0, 6); - add_ui_element(0x00000012, 0, 0, 6); - add_ui_element(0x00000019, 0, 0, 6); - add_ui_element(0x00000018, 0, 0, 6); - add_ui_element(0x0000001B, 0, 0, 0x0C); + add_menu_item(MAIN_MENU_150CC, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_100CC, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_50CC, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_TIME_TRIALS_DATA, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MAIN_MENU_TIME_TRIALS_BEGIN, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_01B, 0, 0, MENU_ITEM_PRIORITY_C); break; case CHARACTER_SELECT_MENU: - add_ui_element(0x00000024, 0, 0, 2); - add_ui_element(0x0000002A, 0, 0, 6); - add_ui_element(0x00000033, 0, 0, 6); - add_ui_element(0x0000002B, 0, 0, 8); - add_ui_element(0x0000002C, 0, 0, 8); - add_ui_element(0x0000002D, 0, 0, 6); - add_ui_element(0x0000002E, 0, 0, 6); - add_ui_element(0x0000002F, 0, 0, 6); - add_ui_element(0x00000030, 0, 0, 6); - add_ui_element(0x00000031, 0, 0, 6); - add_ui_element(0x00000032, 0, 0, 8); - add_ui_element(0x00000034, 0, 0, 0x0C); - add_ui_element(0x00000035, 0, 0, 0x0C); - add_ui_element(0x00000036, 0, 0, 0x0C); - add_ui_element(0x00000037, 0, 0, 0x0C); + add_menu_item(CHARACTER_SELECT_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(CHARACTER_SELECT_MENU_PLAYER_SELECT_BANNER, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_OK, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_MARIO, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(CHARACTER_SELECT_MENU_LUIGI, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(CHARACTER_SELECT_MENU_TOAD, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_PEACH, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_YOSHI, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_DK, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_WARIO, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(CHARACTER_SELECT_MENU_BOWSER, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(CHARACTER_SELECT_MENU_1P_CURSOR, 0, 0, MENU_ITEM_PRIORITY_C); + add_menu_item(CHARACTER_SELECT_MENU_2P_CURSOR, 0, 0, MENU_ITEM_PRIORITY_C); + add_menu_item(CHARACTER_SELECT_MENU_3P_CURSOR, 0, 0, MENU_ITEM_PRIORITY_C); + add_menu_item(CHARACTER_SELECT_MENU_4P_CURSOR, 0, 0, MENU_ITEM_PRIORITY_C); break; case COURSE_SELECT_MENU: - add_ui_element(0x00000025, 0, 0, 2); - add_ui_element(0x00000052, 0, 0, 6); + add_menu_item(COURSE_SELECT_BACKGROUND, 0, 0, MENU_ITEM_PRIORITY_2); + add_menu_item(COURSE_SELECT_MAP_SELECT, 0, 0, MENU_ITEM_PRIORITY_6); if (gModeSelection != BATTLE) { - add_ui_element(0x00000053, 0, 0, 4); - add_ui_element(0x00000054, 0, 0, 4); - add_ui_element(0x00000055, 0, 0, 4); - add_ui_element(0x00000056, 0, 0, 4); - add_ui_element(0x00000058, 0, 0, 6); - add_ui_element(0x00000059, 0, 0, 6); - add_ui_element(0x0000005A, 0, 0, 6); - add_ui_element(0x0000005B, 0, 0, 6); + add_menu_item(COURSE_SELECT_MUSHROOM_CUP, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(COURSE_SELECT_FLOWER_CUP, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(COURSE_SELECT_STAR_CUP, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(COURSE_SELECT_SPECIAL_CUP, 0, 0, MENU_ITEM_PRIORITY_4); + add_menu_item(MENU_ITEM_TYPE_058, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(COURSE_SELECT_COURSE_NAMES, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_05A, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_05B, 0, 0, MENU_ITEM_PRIORITY_6); } else { - add_ui_element(0x0000005C, 0, 0, 6); - add_ui_element(0x0000006E, 0, 0, 6); + add_menu_item(COURSE_SELECT_BATTLE_NAMES, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_06E, 0, 0, MENU_ITEM_PRIORITY_6); } - add_ui_element(0x00000064, 0, 0, 6); - add_ui_element(0x0000005F, 0, 0, 6); - add_ui_element(0x00000060, 0, 0, 6); - add_ui_element(0x00000061, 0, 0, 6); - add_ui_element(0x00000062, 0, 0, 6); - add_ui_element(0x0000005D, 0, 0, 6); - add_ui_element(0x0000005E, 0, 0, 8); + add_menu_item(MENU_ITEM_TYPE_064, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_05F, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_060, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_061, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_062, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(COURSE_SELECT_OK, 0, 0, MENU_ITEM_PRIORITY_6); + add_menu_item(MENU_ITEM_TYPE_05E, 0, 0, MENU_ITEM_PRIORITY_8); if (gModeSelection == TIME_TRIALS) { - add_ui_element(0x00000065, 0, 0, 8); - add_ui_element(0x00000066, 0, 0, 8); - add_ui_element(0x00000069, 0, 0, 8); + add_menu_item(MENU_ITEM_TYPE_065, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_066, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_069, 0, 0, MENU_ITEM_PRIORITY_8); } if (gModeSelection == GRAND_PRIX) { - add_ui_element(0x00000068, 0, 0, 8); - add_ui_element(0x00000067, 0, 0, 5); + add_menu_item(MENU_ITEM_TYPE_068, 0, 0, MENU_ITEM_PRIORITY_8); + add_menu_item(MENU_ITEM_TYPE_067, 0, 0, MENU_ITEM_PRIORITY_5); } break; case 0: @@ -2384,12 +2411,12 @@ void render_menus(void) { default: break; } - if (D_800E86A4 != 2) { + if (gFadeModeSelection != FADE_MODE_LOGO) { func_8009DF4C(0x00000014); } else { func_8009DF6C(0x00000014); } - D_800E86A4 = 0; + gFadeModeSelection = FADE_MODE_NONE; } } @@ -2398,8 +2425,8 @@ CProperties* GetCoursePropsA(void); void func_80095574(void) { s32 var_v0; - if ((D_8018EE0C < 3) || (D_8018E7AC[4] != 0)) { - func_800A8230(); + if ((unref_D_8018EE0C < 3) || (D_8018E7AC[4] != 0)) { + handle_menus_default(); } if (gDebugMenuSelection >= 2) { load_debug_font(); @@ -2441,7 +2468,7 @@ void func_80095574(void) { } debug_print_str2(var_v0 + 0xB9, 0x0000006E, GetCoursePropsA()->DebugName); debug_print_str2(0x00000050, 0x00000078, "screen_mode"); - debug_print_str2(0x000000AA, 0x00000078, gDebugScreenModeNames[D_8018EDF1]); + debug_print_str2(0x000000AA, 0x00000078, gDebugScreenModeNames[gScreenModeListIndex]); debug_print_str2(0x00000050, 0x00000082, "player"); debug_print_str2(0x000000AA, 0x00000082, gDebugCharacterNames[gCharacterSelections[0]]); debug_print_str2(0x00000050, 0x0000008C, "sound mode"); @@ -2651,13 +2678,13 @@ Gfx* func_80095E10(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 sp64 = 0; s32 var_v0_2; - while (var_t0 < argB) { + while ((u32)var_t0 < argB) { var_t0 *= 2; } temp_lo = 0x400 / var_t0; - while ((temp_lo / 2) > argC) { + while ((u32)(temp_lo / 2) > argC) { temp_lo /= 2; } @@ -2705,9 +2732,9 @@ Gfx* func_80095E10(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, var_s4 = temp_lo; } - for (var_a1_2 = arg4; var_a1_2 < arg6; var_a1_2 += var_t0) { + for (var_a1_2 = arg4; var_a1_2 < (u32)arg6; var_a1_2 += var_t0) { - if (arg6 < var_t0 + var_a1_2) { + if ((u32)arg6 < var_t0 + var_a1_2) { var_s2 = arg6 - var_a1_2; if (!var_s2) { break; @@ -2745,13 +2772,13 @@ Gfx* func_800963F0(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, f32 arg4, s32 sp64 = 0; s32 var_v0_2; - while (var_t0 < argD) { + while ((u32)var_t0 < argD) { var_t0 *= 2; } temp_lo = 0x400 / var_t0; - while ((temp_lo / 2) > argE) { + while ((u32)(temp_lo / 2) > argE) { temp_lo /= 2; } @@ -2791,9 +2818,9 @@ Gfx* func_800963F0(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, f32 arg4, arg3 /= arg5; sp7C = argA; - for (var_s3 = arg7; var_s3 < arg9; var_s3 += temp_lo) { + for (var_s3 = arg7; var_s3 < (u32)arg9; var_s3 += temp_lo) { - if (arg9 < temp_lo + var_s3) { + if ((u32)arg9 < temp_lo + var_s3) { var_s4 = arg9 - var_s3; if (!var_s4) { break; @@ -2802,9 +2829,9 @@ Gfx* func_800963F0(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, f32 arg4, var_s4 = temp_lo; } b = var_s4 * arg5; - for (var_a1_2 = arg6; var_a1_2 < arg8; var_a1_2 += var_t0) { + for (var_a1_2 = arg6; var_a1_2 < (u32)arg8; var_a1_2 += var_t0) { - if (arg8 < var_t0 + var_a1_2) { + if ((u32)arg8 < var_t0 + var_a1_2) { var_s2 = arg8 - var_a1_2; if (!var_s2) { break; @@ -2855,13 +2882,13 @@ Gfx* func_80096CD8(Gfx* displayListHead, s32 arg1, s32 arg2, u32 width, u32 arg4 s32 maskt = 0; s32 rand; - while (var_ra < width) { + while (var_ra < (s32)width) { var_ra *= 2; } spCC = 0x400 / var_ra; - while ((spCC / 2) > arg4) { + while ((spCC / 2) > (s32)arg4) { spCC /= 2; } @@ -2933,7 +2960,7 @@ Gfx* func_80096CD8(Gfx* displayListHead, s32 arg1, s32 arg2, u32 width, u32 arg4 return displayListHead; } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80096CD8.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_80096CD8.s") #endif #ifdef NON_MATCHING @@ -2957,13 +2984,13 @@ Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, gDPSetCombineLERP(displayListHead++, TEXEL1, TEXEL0, PRIMITIVE_ALPHA, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED); - while (var_t0 < argB) { + while (var_t0 < (s32)argB) { var_t0 *= 2; } temp_lo = 0x400 / var_t0; - while ((temp_lo / 2) > argC) { + while ((temp_lo / 2) > (s32)argC) { temp_lo /= 2; } @@ -3000,9 +3027,9 @@ Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, return displayListHead; } sp7C = arg8; - for (var_s3 = arg5; var_s3 < arg7; var_s3 += temp_lo) { + for (var_s3 = arg5; var_s3 < (u32)arg7; var_s3 += temp_lo) { - if (arg7 < temp_lo + var_s3) { + if (arg7 < (s32)temp_lo + var_s3) { var_s4 = arg7 - var_s3; if (!var_s4) { break; @@ -3011,9 +3038,9 @@ Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, var_s4 = temp_lo; } - for (var_a1_2 = arg4; var_a1_2 < arg6; var_a1_2 += var_t0) { + for (var_a1_2 = arg4; var_a1_2 < (u32)arg6; var_a1_2 += var_t0) { - if (arg6 < var_t0 + var_a1_2) { + if (arg6 < (s32)var_t0 + var_a1_2) { var_s2 = arg6 - var_a1_2; if (!var_s2) { break; @@ -3044,7 +3071,7 @@ Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, return displayListHead; } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80097274.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_80097274.s") #endif #undef D_0B002A00 @@ -3154,7 +3181,7 @@ Gfx* func_80098558(Gfx* displayListHead, u32 arg1, u32 arg2, u32 arg3, u32 arg4, arg5Copy = arg5; for (var_v0 = arg2; var_v0 < arg4; var_v0 += 0x20) { for (var_a3 = arg1; var_a3 < arg3; var_a3 += 0x20) { - gMKLoadTextureTile(displayListHead++, D_8018D9B0, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg8, 0, var_a3, var_v0, + gMKLoadTextureTile(displayListHead++, sMenuTextureList, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg8, 0, var_a3, var_v0, var_a3 + 0x20, var_v0 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); gSPTextureRectangle(displayListHead++, arg5 << 2, arg6 << 2, (arg5 + 0x20) << 2, (arg6 + 0x20) << 2, 0, 0, @@ -3188,7 +3215,7 @@ Gfx* func_800987D0(Gfx* displayListHead, u32 arg1, u32 arg2, u32 width, u32 heig columnCopy = column; for (var_v0_2 = arg2; (u32) var_v0_2 < height; var_v0_2 += 0x20) { for (var_a2 = arg1; (u32) var_a2 < width; var_a2 += 0x20) { - gMKLoadTextureTile(displayListHead++, D_8018D9B0, G_IM_FMT_RGBA, G_IM_SIZ_16b, textureWidth, 0, var_a2, + gMKLoadTextureTile(displayListHead++, sMenuTextureList, G_IM_FMT_RGBA, G_IM_SIZ_16b, textureWidth, 0, var_a2, var_v0_2, var_a2 + 0x20, var_v0_2 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); temp_f6 = (temp_f18 * ((temp_f0 * (column - 0xA0)) + (temp_f24 * (row - 0x78)))) + 160.0f; @@ -3364,33 +3391,63 @@ Gfx* func_80098FC8_wide(Gfx* displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry return draw_box_fill_wide(displayListHead, ulx, uly, lrx, lry, 0, 0, 0, 0xFF); } -void dma_copy_base_729a30(u64* arg0, size_t nbytes, void* vaddr) { -#ifdef TARGET_N64 - OSIoMesg sp30; - OSMesg sp2C; +void load_texture(const char* texture) { + if (sMenuTextureListIndex >= 500) { + printf("\nload_texture: REACHED MAXIMUM MENU ITEMS\n\n"); + return; + } - osInvalDCache(vaddr, nbytes); - osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(arg0)], - vaddr, nbytes, &gDmaMesgQueue); - osRecvMesg(&gDmaMesgQueue, &sp2C, OS_MESG_BLOCK); -#endif + sMenuTextureList[sMenuTextureListIndex] = texture; + + sMenuTextureMap[sMenuTextureEntries].textureData = texture; + sMenuTextureMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + + sMenuTextureListIndex += 1; + sMenuTextureEntries += 1; } -void dma_copy_base_7fa3c0(u64* arg0, size_t nbytes, void* vaddr) { -#ifdef TARGET_N64 - OSIoMesg sp30; - OSMesg sp2C; +/** + * If you need to reset a texture cache after a modification, + * this will reload the texture. + */ +void load_texture_reset_cache(const char* texture) { + if (sMenuTextureListIndex >= 500) { + printf("\nload_texture: REACHED MAXIMUM MENU ITEMS\n\n"); + return; + } - osInvalDCache(vaddr, nbytes); - osPiStartDma(&sp30, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_textures_0bSegmentRomStart[SEGMENT_OFFSET(arg0)], - vaddr, nbytes, &gDmaMesgQueue); - osRecvMesg(&gDmaMesgQueue, &sp2C, OS_MESG_BLOCK); -#endif + ResourceDirtyByName(texture); + + sMenuTextureList[sMenuTextureListIndex] = texture; + + sMenuTextureMap[sMenuTextureEntries].textureData = texture; + sMenuTextureMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + + sMenuTextureListIndex += 1; + sMenuTextureEntries += 1; } -void func_80099110(void) { - gMenuTextureBufferIndex = 0; - gNumD_8018E118Entries = 0; +void replace_texture(s32 index, const char* newTexture) { + sMenuTextureList[sMenuTextureMap[index].offset] = newTexture; + sMenuTextureMap[index].textureData = newTexture; + //printf("\nTEST %s %p %s idx %d\n\n", sMenuTextureList[index], sMenuTextureList[sMenuTextureListIndex], newTexture, sMenuTextureListIndex); +} + +// strcpy the const char asset strings into sMenuTextureList. This replaces osPiDma. +void dma_compressed_mio0_texture_segA(u64* data, size_t nbytes, void* vaddr) { +} + +// strcpy the const char asset strings into sMenuTextureList. This replaces osPiDma. +void dma_tkmk00_textures(u64* data, size_t nbytes, void* vaddr) { +} + +void clear_menu_textures(void) { + for (size_t i = 0; i < ARRAY_COUNT(sMenuTextureList); i++) { + sMenuTextureList[i] = NULL; + } + + sMenuTextureListIndex = 0; + sMenuTextureEntries = 0; } /** @@ -3423,270 +3480,211 @@ void* segmented_to_virtual_dupe_2(const void* addr) { #include -#ifdef NON_MATCHING -// https://decomp.me/scratch/NAZ12 -// Register allocation nonsense -void load_menu_img(MkTexture* arg0) { - u16 var_a1_2; - s32 var_v0; - s32 var_a1; - MkTexture* var_s1; - struct_8018E118_entry* thing = &D_8018E118[0]; - var_s1 = segmented_to_virtual_dupe(arg0); - while (var_s1->textureData != NULL) { - var_a1 = 0; - for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { - if (var_s1->textureData == (thing + var_v0)->textureData) { - var_a1 = 1; +void load_menu_img(MenuTexture* addr) { + u16 size; + s32 i; + s32 imgLoaded; + MenuTexture* texAddr; + TextureMap* texMap = &sMenuTextureMap[0]; + + texAddr = segmented_to_virtual_dupe(addr); + while (texAddr->textureData != NULL) { + imgLoaded = false; + for (i = 0; i < sMenuTextureEntries; i++) { + if (texAddr->textureData == (texMap + i)->textureData) { + imgLoaded = true; break; } } - if (var_a1 == 0) { - if (var_s1->type == 3) { - if (var_s1->size != 0) { - var_a1_2 = var_s1->size; + if (imgLoaded == false) { + if (texAddr->type == 3) { + if (texAddr->size != 0) { + size = texAddr->size; } else { - var_a1_2 = 0x1000; + size = 0x1000; } - if (var_a1_2 % 8) { - var_a1_2 = ((var_a1_2 / 8) * 8) + 8; + if (size % 8) { + size = ((size / 8) * 8) + 8; } -// mio0decode(D_8018D9B4, &D_8018D9B0[gMenuTextureBufferIndex]); -// size_t texSize = ResourceGetTexSizeByName(var_s1->textureData); -// memcpy(&D_8018D9B0[gMenuTextureBufferIndex], var_s1->textureData, texSize); -#ifdef TARGET_N64 - dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4); - mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gMenuTextureBufferIndex]); -#else - strcpy(&D_8018D9B0[gMenuTextureBufferIndex], var_s1->textureData); -#endif + dma_compressed_mio0_texture_segA(texAddr->textureData, size, sMenuTextureList[sMenuTextureListIndex]); + mio0decode(gMenuCompressedBuffer, (u8*) &sMenuTextureList[sMenuTextureListIndex]); + load_texture(texAddr->textureData); } else { -#ifdef TARGET_N64 - dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2, - &D_8018D9B0[gMenuTextureBufferIndex]); -#else - strcpy(&D_8018D9B0[gMenuTextureBufferIndex], var_s1->textureData); -#endif + dma_compressed_mio0_texture_segA(texAddr->textureData, (texAddr->height * texAddr->width) * 2, + &sMenuTextureList[sMenuTextureListIndex]); + load_texture(texAddr->textureData); } - thing[gNumD_8018E118Entries].textureData = var_s1->textureData; - thing[gNumD_8018E118Entries].offset = gMenuTextureBufferIndex; - gMenuTextureBufferIndex += var_s1->height * var_s1->width; - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; - gNumD_8018E118Entries += 1; + //texMap[sMenuTextureEntries].textureData = texAddr->textureData; + //texMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + //sMenuTextureListIndex += 1; + //sMenuTextureListIndex = ((sMenuTextureListIndex / 8) * 8) + 8; + //sMenuTextureEntries += 1; } - var_s1++; + texAddr++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/load_menu_img.s") -#endif -#ifdef NON_MATCHING -// https://decomp.me/scratch/O2tkD -// Register allocation nonsense -void func_80099394(MkTexture* arg0) { - UNUSED u16 var_a1_2; - s32 var_v0; - s32 var_a1; - UNUSED s32 temp_s3; - MkTexture* var_s1; - struct_8018E118_entry* thing; +void func_80099394(MenuTexture* addr) { + s32 i; + s32 imgLoaded; + MenuTexture* texAddr; + TextureMap* texMap = &sMenuTextureMap[0]; - var_s1 = segmented_to_virtual_dupe(arg0); - while (var_s1->textureData != NULL) { - var_a1 = 0; - for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { - // wtf is going on here? - if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) { - var_a1 = 1; + texAddr = segmented_to_virtual_dupe(addr); + while (texAddr->textureData != NULL) { + imgLoaded = false; + for (i = 0; i < sMenuTextureEntries; i++) { + if (texAddr->textureData == (texMap + i)->textureData) { + imgLoaded = true; break; } } - if (var_a1 == 0) { - if (var_s1->type == 5) { -#ifdef TARGET_N64 - dma_copy_base_729a30(var_s1->textureData, (u32) ((s32) (var_s1->height * var_s1->width) / 2), - &D_8018D9B0[gMenuTextureBufferIndex]); -#else - u8* tex = LOAD_ASSET(var_s1->textureData); - size_t texSize = ResourceGetTexSizeByName(var_s1->textureData); - memcpy(&D_8018D9B0[gMenuTextureBufferIndex], tex, texSize); -#endif + + if (imgLoaded == false) { + if (texAddr->type == 5) { + dma_compressed_mio0_texture_segA(texAddr->textureData, (u32) (((s32) (texAddr->height * texAddr->width)) / 2), + &sMenuTextureList[sMenuTextureListIndex]); + load_texture(texAddr->textureData); } - - thing = &D_8018E118[gNumD_8018E118Entries]; - thing->textureData = var_s1->textureData; - thing = &D_8018E118[gNumD_8018E118Entries]; - thing->offset = gMenuTextureBufferIndex; - - gMenuTextureBufferIndex += (var_s1->height * var_s1->width); - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; - gNumD_8018E118Entries += 1; + //texMap[sMenuTextureEntries].textureData = texAddr->textureData; + //texMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + //sMenuTextureListIndex += 1; + //sMenuTextureListIndex = ((sMenuTextureListIndex / 8) * 8) + 8; + //sMenuTextureEntries += 1; } - var_s1++; + texAddr++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099394.s") -#endif -#ifdef NON_MATCHING -// Register allocation nonsense -// https://decomp.me/scratch/Wv2MX -void func_8009952C(MkTexture* arg0) { - UNUSED u16 var_a1_2; - s32 var_v0; - s32 var_a1; - UNUSED s32 temp_s3; - MkTexture* var_s1; - struct_8018E118_entry* thing; +void func_8009952C(MenuTexture* addr) { + s32 i; + s32 imgLoaded; + MenuTexture* texAddr; + TextureMap* texMap = &sMenuTextureMap[0]; - var_s1 = segmented_to_virtual_dupe(arg0); - while (var_s1->textureData != NULL) { - var_a1 = 0; - for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { - // wtf is going on here? - if (D_8018E118[var_v0 ^ 0].textureData == (*var_s1).textureData) { - var_a1 = 1; + texAddr = segmented_to_virtual_dupe(addr); + while (texAddr->textureData != NULL) { + imgLoaded = false; + for (i = 0; i < sMenuTextureEntries; i++) { + if (texAddr->textureData == (texMap + i)->textureData) { + imgLoaded = true; break; } } - if (var_a1 == 0) { -#ifdef TARGET_N64 - dma_copy_base_729a30(var_s1->textureData, 0x00008000U, D_8018D9B4); - mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[gMenuTextureBufferIndex]); -#else - memcpy(&D_8018D9B0[gMenuTextureBufferIndex], var_s1->textureData, var_s1->width * var_s1->height * 2); -#endif - thing = &D_8018E118[gNumD_8018E118Entries]; - thing->textureData = var_s1->textureData; - thing = &D_8018E118[gNumD_8018E118Entries]; - thing->offset = gMenuTextureBufferIndex; - - gMenuTextureBufferIndex += (var_s1->height * var_s1->width); - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; - gNumD_8018E118Entries += 1; + if (imgLoaded == false) { + dma_compressed_mio0_texture_segA(texAddr->textureData, 0x00008000U, &sMenuTextureList[sMenuTextureListIndex]); + mio0decode(gMenuCompressedBuffer, (u8*) &sMenuTextureList[sMenuTextureListIndex]); + load_texture(texAddr->textureData); + //texMap[sMenuTextureEntries].textureData = texAddr->textureData; + //texMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + //sMenuTextureListIndex += 1; + //sMenuTextureListIndex = ((sMenuTextureListIndex / 8) * 8) + 8; + //sMenuTextureEntries += 1; } - var_s1++; + texAddr++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009952C.s") -#endif -void load_img_wrap(MkTexture* arg0) { - load_menu_img2(arg0, 1); +void load_menu_img_mio0_forced(MenuTexture* addr) { + load_menu_img_comp_type(addr, LOAD_MENU_IMG_MIO0_FORCE); } -#ifdef NON_MATCHING -// Register allocation nonsense -// https://decomp.me/scratch/hwAAp -void load_menu_img2(MkTexture* arg0, s32 arg1) { - u16 var_a1_2; - s32 var_v0; - s32 var_a1; - u8 var_v0_2; - MkTexture* texture; - struct_8018E118_entry* thing = &D_8018E118[0]; +void load_menu_img_comp_type(MenuTexture* addr, s32 compType) { + u16 size; + s32 i; + s32 imgLoaded; + u8 clearBit; + MenuTexture* texAddr; + TextureMap* texMap = &sMenuTextureMap[0]; - texture = segmented_to_virtual_dupe(arg0); - - size_t siz = texture->width * texture->height; - // for (size_t i = 0; i < siz; i++) { - // printf(" 0x%llX", texture->textureData[i]); - // } - - // Because it's loading an mkTexture. The second element in the array is usually all zeros. - // Despite this loop, it's usually only ran once. - while (texture->textureData != NULL) { - var_a1 = 0; - for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { - if (texture->textureData == (thing + var_v0)->textureData) { - var_a1 = 1; + texAddr = segmented_to_virtual_dupe(addr); + while (texAddr->textureData != NULL) { + imgLoaded = false; + for (i = 0; i < sMenuTextureEntries; i++) { + if (texAddr->textureData == (texMap + i)->textureData) { + imgLoaded = true; break; } } - if ((var_a1 == 0) || (arg1 > 0)) { - if (texture->size != 0) { - var_a1_2 = texture->size; + + if ((imgLoaded == false) || (compType > LOAD_MENU_IMG_FORCE)) { + if (texAddr->size != 0) { + size = texAddr->size; } else { - var_a1_2 = 0x1000; + size = 0x1000; } - if ((var_a1_2 % 8)) { - var_a1_2 = (((var_a1_2 / 8) * 8) + 8); + if (size % 8) { + size = ((size / 8) * 8) + 8; } - switch (arg1) { /* irregular */ - case -1: - case 1: - // dma_copy_base_729a30(texture->textureData, var_a1_2, D_8018D9B4); + + // dma a compressed texture to the compressed texture buffer + switch (compType) { + case LOAD_MENU_IMG_MIO0_ONCE: + case LOAD_MENU_IMG_MIO0_FORCE: + //dma_compressed_mio0_texture_segA(texAddr->textureData, size, gMenuCompressedBuffer); break; - case 0: - case 2: - // dma_copy_base_7fa3c0(texture->textureData, var_a1_2, D_8018D9B4); + case LOAD_MENU_IMG_TKMK00_ONCE: + case LOAD_MENU_IMG_TKMK00_FORCE: + //dma_tkmk00_textures(texAddr->textureData, size, gMenuCompressedBuffer); break; } - switch (arg1) { /* switch 1; irregular */ - case -1: /* switch 1 */ - case 1: { - // mio0decode(D_8018D9B4, (u8*)&D_8018D9B0[gMenuTextureBufferIndex]); - // printf("w: %d, h: %d", texture->width, texture->height); - u8* tex = (u8*) LOAD_ASSET(texture->textureData); - memcpy(&D_8018D9B0[gMenuTextureBufferIndex], tex, texture->width * texture->height * 2); + + // Extract compressed texture to the texture buffer + switch (compType) { + case LOAD_MENU_IMG_MIO0_ONCE: + case LOAD_MENU_IMG_MIO0_FORCE: + mio0decode(gMenuCompressedBuffer, (u8*) &sMenuTextureList[sMenuTextureListIndex]); + //strcpy(&sMenuTextureList[sMenuTextureListIndex], texAddr->textureData); + load_texture(texAddr->textureData); break; - } - case 0: /* switch 1 */ - case 2: /* switch 1 */ - if (texture->type == 1) { - var_v0_2 = 0x000000BE; + case LOAD_MENU_IMG_TKMK00_ONCE: + case LOAD_MENU_IMG_TKMK00_FORCE: + if (texAddr->type == 1) { + clearBit = 0xBE; } else { - var_v0_2 = 1; + clearBit = 1; } if (1) {} - // D_8018D9B0[gMenuTextureBufferIndex] = &gTextureBackgroundBlueSky; - // tkmk00decode(D_8018D9B4, texture->textureData, (u8*)&D_8018D9B0[gMenuTextureBufferIndex], - // var_v0_2); - u8* tex2 = (u8*) LOAD_ASSET(texture->textureData); - memcpy(&D_8018D9B0[gMenuTextureBufferIndex], tex2, texture->width * texture->height * 2); + tkmk00decode(gMenuCompressedBuffer, sTKMK00_LowResBuffer, + (u8*) &sMenuTextureList[sMenuTextureListIndex], clearBit); + load_texture(texAddr->textureData); + + //strcpy(&sMenuTextureList[sMenuTextureListIndex], texAddr->textureData); break; } - thing[gNumD_8018E118Entries].textureData = texture->textureData; - thing[gNumD_8018E118Entries].offset = gMenuTextureBufferIndex; - gMenuTextureBufferIndex += texture->height * texture->width; - gMenuTextureBufferIndex = ((gMenuTextureBufferIndex / 8) * 8) + 8; - gNumD_8018E118Entries += 1; + //texMap[sMenuTextureEntries].textureData = texAddr->textureData; + //texMap[sMenuTextureEntries].offset = sMenuTextureListIndex; + //sMenuTextureListIndex += 1; + //sMenuTextureListIndex = ((sMenuTextureListIndex / 8) * 8) + 8; + //sMenuTextureEntries += 1; } - texture++; + texAddr++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/load_menu_img2.s") -#endif -void func_80099958(MkTexture* arg0, s32 arg1, s32 arg2) { - u16 var_a1; - UNUSED u8* thing; - MkTexture* temp_v0; +void func_80099958(MenuTexture* addr, s32 arg1, s32 arg2) { + u16 size; + MenuTexture* texAddr; - temp_v0 = segmented_to_virtual_dupe(arg0); - while (temp_v0->textureData != NULL) { - if (temp_v0->size != 0) { - var_a1 = temp_v0->size; + texAddr = segmented_to_virtual_dupe(addr); + while (texAddr->textureData != NULL) { + if (texAddr->size != 0) { + size = texAddr->size; } else { - var_a1 = 0x1400; + size = 0x1400; } - if (var_a1 % 8) { + if (size % 8) { // Round up to the next multiple of eight - var_a1 = ((var_a1 / 8) * 8) + 8; + size = ((size / 8) * 8) + 8; } - // dma_copy_base_729a30(temp_v0->textureData, var_a1, D_8018D9B4); - // mio0decode(D_8018D9B4, D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array); - u8* tex = LOAD_ASSET(temp_v0->textureData); - memcpy(D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array, temp_v0->textureData, - temp_v0->width * temp_v0->height * 2); - temp_v0++; + //! @warning This function does not increment sMenuTextureListIndex + dma_compressed_mio0_texture_segA(texAddr->textureData, size, gMenuCompressedBuffer); + mio0decode(gMenuCompressedBuffer, D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array); + load_texture(texAddr->textureData); + texAddr++; } } @@ -3697,7 +3695,7 @@ void func_80099A70(void) { for (i = 0; i < D_8018E060_SIZE; i++) {} } -void func_80099A94(MkTexture* arg0, s32 arg1) { +void func_80099A94(MenuTexture* arg0, s32 arg1) { struct_8018E060_entry* var_v1; var_v1 = &D_8018E060[0]; @@ -3705,125 +3703,118 @@ void func_80099A94(MkTexture* arg0, s32 arg1) { var_v1++; } var_v1->texture = segmented_to_virtual_dupe(arg0); - var_v1->unk_4 = arg1; + var_v1->texNum = arg1; } #ifdef NON_MATCHING // https://decomp.me/scratch/rxEoi // Something's up with the handling of `_textures_0aSegmentRomStart`, I don't know how to fix it void func_80099AEC(void) { - s8 var_s4; + s8 texEnd; s32 size; - UNUSED s32 stackPadding0; - UNUSED s32 stackPadding1; - s32 huh; - OSIoMesg sp68; - OSMesg sp64; - UNUSED u8* test; - s32 sp60; - MkTexture* temp_s2; + s32 texSize; + OSIoMesg mb; + OSMesg msg; + s32 bufSize; + MenuTexture* texAddr; struct_8018E060_entry* var_s1; if (gGamestate == RACING) { - sp60 = 0x00000500; + bufSize = 0x00000500; } else { - sp60 = 0x00001000; + bufSize = 0x00001000; } - var_s4 = 0; - var_s1 = &D_8018E060[0]; - temp_s2 = var_s1->texture; + texEnd = 0; + var_s1 = D_8018E060; + texAddr = var_s1->texture; - if (temp_s2 == NULL) + if (texAddr == NULL) return; - huh = temp_s2->size; - if (huh != 0) { - size = huh; + texSize = texAddr->size; + if (texSize != 0) { + size = texSize; } else { size = 0x1400; } if (size % 8) { size = ((size / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4, size); + osInvalDCache(gMenuCompressedBuffer, size); #ifdef TARGET_N64 - osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], - D_8018D9B4, size, &gDmaMesgQueue); + osPiStartDma(&mb, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(texAddr->textureData)], + gMenuCompressedBuffer, size, &gDmaMesgQueue); #endif - osRecvMesg(&gDmaMesgQueue, &sp64, 1); + osRecvMesg(&gDmaMesgQueue, &msg, 1); while (1) { if ((var_s1 + 1)->texture == NULL) { - var_s4 += 1; + texEnd += 1; } else { - temp_s2 = (var_s1 + 1)->texture; - huh = (var_s1 + 1)->texture->size; - if (huh != 0) { - size = huh; + texAddr = (var_s1 + 1)->texture; + texSize = (var_s1 + 1)->texture->size; + if (texSize != 0) { + size = texSize; } else { size = 0x1400; } if (size % 8) { size = ((size / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4 + sp60 * 4, size); + osInvalDCache(gMenuCompressedBuffer + bufSize * 4, size); #ifdef TARGET_N64 - osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], - D_8018D9B4 + sp60 * 4, size, &gDmaMesgQueue); + osPiStartDma(&mb, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(texAddr->textureData)], + gMenuCompressedBuffer + bufSize * 4, size, &gDmaMesgQueue); #endif } -#ifdef TARGET_N64 - mio0decode(D_8018D9B4, (u8*) &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]); -#else - memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], var_s1->texture->textureData, - var_s1->texture->width * var_s1->texture->height * 2); -#endif + mio0decode(gMenuCompressedBuffer, (u8*) &sMenuTextureList[sMenuTextureMap[var_s1->texNum].offset]); + //strcpy(&sMenuTextureList[sMenuTextureMap[var_s1->texNum].offset], var_s1->texture->textureData); + //sMenuTextureList[sMenuTextureMap[var_s1->texNum].offset] = var_s1->texture->textureData; + replace_texture(var_s1->texNum, var_s1->texture->textureData); + var_s1->texture = NULL; var_s1++; - if (var_s4 != 0) + if (texEnd != 0) break; - osRecvMesg(&gDmaMesgQueue, &sp64, 1); + osRecvMesg(&gDmaMesgQueue, &msg, 1); if ((var_s1 + 1)->texture == NULL) { - var_s4 += 1; + texEnd += 1; } else { - temp_s2 = (var_s1 + 1)->texture; - huh = (var_s1 + 1)->texture->size; - if (huh != 0) { - size = huh; + texAddr = (var_s1 + 1)->texture; + texSize = (var_s1 + 1)->texture->size; + if (texSize != 0) { + size = texSize; } else { size = 0x1400; } if (size % 8) { size = ((size / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4, size); + osInvalDCache(gMenuCompressedBuffer, size); #ifdef TARGET_N64 - osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], - D_8018D9B4, size, &gDmaMesgQueue); + osPiStartDma(&mb, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(texAddr->textureData)], + gMenuCompressedBuffer, size, &gDmaMesgQueue); #endif } -#ifdef TARGET_N64 - mio0decode(D_8018D9B4 + sp60 * 4, (u8*) &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]); -#else - memcpy(&D_8018D9B0[D_8018E118[var_s1->unk_4].offset], var_s1->texture->textureData, - var_s1->texture->width * var_s1->texture->height * 2); -#endif + mio0decode(gMenuCompressedBuffer + bufSize * 4, + (u8*) &sMenuTextureList[sMenuTextureMap[var_s1->texNum].offset]); + replace_texture(var_s1->texNum, var_s1->texture->textureData); var_s1->texture = NULL; var_s1++; - if (var_s4 != 0) + if (texEnd != 0) break; - osRecvMesg(&gDmaMesgQueue, &sp64, 1); + osRecvMesg(&gDmaMesgQueue, &msg, 1); } } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099AEC.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_80099AEC.s") #endif void func_80099E54(void) { D_8018E0E8[0].mk64Texture = NULL; } -void func_80099E60(MkTexture* arg0, s32 arg1, s32 arg2) { +void func_80099E60(MenuTexture* arg0, s32 arg1, s32 arg2) { struct_8018E0E8_entry* var_v1; var_v1 = D_8018E0E8; @@ -3848,7 +3839,7 @@ void func_80099EC4(void) { OSMesg sp64; s32 huh; u8* test; - MkTexture* temp_s2; + MenuTexture* temp_s2; struct_8018E0E8_entry* var_s1; var_s4 = 0; @@ -3867,13 +3858,13 @@ void func_80099EC4(void) { if (var_s0 % 8) { var_s0 = ((var_s0 / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4, var_s0); + osInvalDCache(gMenuCompressedBuffer, var_s0); #ifdef TARGET_N64 test = &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)]; - osPiStartDma(&sp68, 0, 0, (uintptr_t) test, D_8018D9B4, var_s0, &gDmaMesgQueue); + osPiStartDma(&sp68, 0, 0, (uintptr_t) test, gMenuCompressedBuffer, var_s0, &gDmaMesgQueue); #endif if ((var_s0 && var_s0) && var_s0) {} - // osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, + // osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], gMenuCompressedBuffer, var_s0, // &gDmaMesgQueue); osRecvMesg(&gDmaMesgQueue, &sp64, 1); while (1) { @@ -3890,14 +3881,14 @@ void func_80099EC4(void) { if (var_s0 % 8) { var_s0 = ((var_s0 / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4 + 0x1400, var_s0); + osInvalDCache(gMenuCompressedBuffer + 0x1400, var_s0); #ifdef TARGET_N64 osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], - D_8018D9B4 + 0x1400, var_s0, &gDmaMesgQueue); + gMenuCompressedBuffer + 0x1400, var_s0, &gDmaMesgQueue); #endif } #ifdef TARGET_N64 - mio0decode(D_8018D9B4, + mio0decode(gMenuCompressedBuffer, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array); #else memcpy(D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array, @@ -3921,14 +3912,14 @@ void func_80099EC4(void) { if (var_s0 % 8) { var_s0 = ((var_s0 / 8) * 8) + 8; } - osInvalDCache(D_8018D9B4, var_s0); + osInvalDCache(gMenuCompressedBuffer, var_s0); #ifdef TARGET_N64 osPiStartDma(&sp68, 0, 0, (uintptr_t) &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], - D_8018D9B4, var_s0, &gDmaMesgQueue); + gMenuCompressedBuffer, var_s0, &gDmaMesgQueue); #endif } #ifdef TARGET_N64 - mio0decode(D_8018D9B4 + 0x1400, + mio0decode(gMenuCompressedBuffer + 0x1400, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array); #else memcpy(D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array, @@ -3942,31 +3933,31 @@ void func_80099EC4(void) { } } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099EC4.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_80099EC4.s") #endif -void func_8009A238(MkTexture* arg0, s32 arg1) { +void func_8009A238(MenuTexture* arg0, s32 arg1) { s32 var_a3; s32 temp_v1; u64* sp24; - UNUSED struct_8018E118_entry* temp_v0; + UNUSED TextureMap* temp_v0; - temp_v1 = D_8018E118[arg1].offset; + temp_v1 = sMenuTextureMap[arg1].offset; sp24 = arg0->textureData; var_a3 = arg0->size; if (var_a3 % 8) { var_a3 = ((var_a3 / 8) * 8) + 8; } - // dma_copy_base_7fa3c0(sp24, var_a3, D_8018D9B4); - // tkmk00decode(D_8018D9B4, D_8018D9B8, (u8*) &D_8018D9B0[temp_v1], 1); + dma_tkmk00_textures(sp24, var_a3, gMenuCompressedBuffer); + // tkmk00decode(gMenuCompressedBuffer, sTKMK00_LowResBuffer, (u8*) &sMenuTextureList[temp_v1], 1); // u8 *tex = (u8 *) LOAD_ASSET(arg0->textureData); - size_t texSize = ResourceGetTexSizeByName(arg0->textureData); - memcpy(&D_8018D9B0[temp_v1], arg0->textureData, texSize); - D_8018E118[arg1].textureData = arg0->textureData; + //size_t texSize = ResourceGetTexSizeByName(arg0->textureData); + replace_texture(arg1, arg0->textureData); + //sMenuTextureMap[arg1].textureData = arg0->textureData; } void func_8009A2F0(struct_8018E0E8_entry* arg0) { - MkTexture* var_a0; + MenuTexture* var_a0; struct_8018E0E8_entry* temp_v0; temp_v0 = segmented_to_virtual_dupe_2(arg0); @@ -3975,7 +3966,7 @@ void func_8009A2F0(struct_8018E0E8_entry* arg0) { if (var_a0 == NULL) { break; } - load_menu_img2(var_a0, 0); + load_menu_img_comp_type(var_a0, LOAD_MENU_IMG_TKMK00_ONCE); if (1) {} temp_v0++; var_a0 = temp_v0->mk64Texture; @@ -4010,15 +4001,15 @@ s32 animate_character_select_menu(MkAnimation* anim) { entry->sequenceIndex = -1; entry->frameCountDown = 0; entry->visible = 0x80000000; - entry->D_8018E118_index = gNumD_8018E118Entries; + entry->menuTextureIndex = sMenuTextureEntries; if (anim[0].mk64Texture) { - load_img_wrap(anim[0].mk64Texture); + load_menu_img_mio0_forced(anim[0].mk64Texture); } if (anim[1].mk64Texture) { - load_img_wrap(anim[1].mk64Texture); + load_menu_img_mio0_forced(anim[1].mk64Texture); } else { - load_img_wrap(anim[0].mk64Texture); + load_menu_img_mio0_forced(anim[0].mk64Texture); } entry->unk14 = 0; @@ -4046,7 +4037,7 @@ s32 func_8009A478(MkAnimation* anim, s32 arg1) { entry->sequenceIndex = -1; entry->frameCountDown = 0; entry->visible = 0x80000000; - entry->D_8018E118_index = gNumD_8018E118Entries; + entry->menuTextureIndex = sMenuTextureEntries; if (anim[0].mk64Texture) { func_80099958(anim[0].mk64Texture, arg1, 0); } @@ -4061,7 +4052,7 @@ s32 func_8009A478(MkAnimation* anim, s32 arg1) { void func_8009A594(s32 arg0, s32 arg1, MkAnimation* arg2) { MkAnimation* temp_v0; - MkTexture* temp_a0; + MenuTexture* temp_a0; temp_v0 = segmented_to_virtual_dupe_2(arg2); D_8018DEE0[arg0].textureSequence = temp_v0; @@ -4071,17 +4062,17 @@ void func_8009A594(s32 arg0, s32 arg1, MkAnimation* arg2) { D_8018DEE0[arg0].frameCountDown = (temp_v0 + arg1)->frame_length; temp_a0 = segmented_to_virtual_dupe(temp_v0[arg1].mk64Texture); if (D_8018DEE0[arg0].unk14 != 0) { - func_80099A94(temp_a0, D_8018DEE0[arg0].D_8018E118_index); + func_80099A94(temp_a0, D_8018DEE0[arg0].menuTextureIndex); D_8018DEE0[arg0].unk14 = 0; } else { - func_80099A94(temp_a0, D_8018DEE0[arg0].D_8018E118_index + 1); + func_80099A94(temp_a0, D_8018DEE0[arg0].menuTextureIndex + 1); D_8018DEE0[arg0].unk14 = 1; } } void func_8009A640(s32 arg0, s32 arg1, s32 arg2, MkAnimation* arg3) { MkAnimation* temp_v0; - MkTexture* temp_a0; + MenuTexture* temp_a0; temp_v0 = segmented_to_virtual_dupe_2(arg3); D_8018DEE0[arg0].textureSequence = temp_v0; @@ -4119,11 +4110,11 @@ void func_8009A7EC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } } -MkTexture* func_8009A878(struct_8018DEE0_entry* arg0) { +MenuTexture* func_8009A878(struct_8018DEE0_entry* arg0) { MkAnimation* temp_v1; MkAnimation* var_v0; MkAnimation* test; - MkTexture* temp_a0; + MenuTexture* temp_a0; temp_v1 = arg0->textureSequence; if (arg0->sequenceIndex < 0) { @@ -4142,21 +4133,21 @@ MkTexture* func_8009A878(struct_8018DEE0_entry* arg0) { arg0->frameCountDown = var_v0->frame_length; temp_a0 = segmented_to_virtual_dupe(var_v0->mk64Texture); if (arg0->unk14 != 0) { - func_80099A94(temp_a0, arg0->D_8018E118_index); + func_80099A94(temp_a0, arg0->menuTextureIndex); arg0->unk14 = 0; } else { - func_80099A94(temp_a0, arg0->D_8018E118_index + 1); + func_80099A94(temp_a0, arg0->menuTextureIndex + 1); arg0->unk14 = 1; } } return arg0->textureSequence[arg0->sequenceIndex].mk64Texture; } -MkTexture* func_8009A944(struct_8018DEE0_entry* arg0, s32 arg1) { +MenuTexture* func_8009A944(struct_8018DEE0_entry* arg0, s32 arg1) { MkAnimation* temp_v1; MkAnimation* var_v0; MkAnimation* test; - MkTexture* temp_a0; + MenuTexture* temp_a0; temp_v1 = arg0->textureSequence; if (arg0->sequenceIndex < 0) { @@ -4189,13 +4180,12 @@ void func_8009A9FC(s32 arg0, s32 arg1, u32 arg2, s32 arg3) { s32 alpha; s32 temp_t9; u16 temp_a0; - s32 var_t1; u16* color0; u16* color1; - color0 = &D_8018D9B0[D_8018E118[arg0].offset]; - color1 = &D_8018D9B0[D_8018E118[arg1].offset]; - for (var_t1 = 0; (u32) var_t1 < arg2; var_t1++) { + color0 = LOAD_ASSET(sMenuTextureList[sMenuTextureMap[arg0].offset]); + color1 = LOAD_ASSET(sMenuTextureList[sMenuTextureMap[arg1].offset]); + for (size_t i = 0; i < arg2; i++) { temp_a0 = BSWAP16(*color0++); red = (temp_a0 & 0xF800) >> 0xB; green = (temp_a0 & 0x7C0) >> 6; @@ -4209,8 +4199,8 @@ void func_8009A9FC(s32 arg0, s32 arg1, u32 arg2, s32 arg3) { *color1++ = BSWAP16(newblue + newgreen + newred + alpha); } // Invalidate texture to properly apply color manipulation - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg0].offset); - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg1].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[arg0].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[arg1].offset); } void func_8009AB7C(s32 arg0) { @@ -4225,7 +4215,7 @@ void func_8009AB7C(s32 arg0) { s32 var_v1; u16* color; - color = &D_8018D9B0[D_8018E118[arg0].offset]; + color = LOAD_ASSET(sMenuTextureList[sMenuTextureMap[arg0].offset]); for (var_v1 = 0; var_v1 < 0x4B000; var_v1++) { u16 color_pixel = BSWAP16(*color); red = ((color_pixel & 0xF800) >> 0xB) * 0x4D; @@ -4240,7 +4230,7 @@ void func_8009AB7C(s32 arg0) { *color++ = BSWAP16(newblue + newgreen + newred + alpha); } // Invalidate texture to properly apply color manipulation - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg0].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[arg0].offset); } void func_8009AD78(s32 arg0, s32 arg1) { @@ -4257,8 +4247,8 @@ void func_8009AD78(s32 arg0, s32 arg1) { UNUSED u16 temp_a0; u16* color; - color = &D_8018D9B0[D_8018E118[arg0].offset]; - size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset; + color = LOAD_ASSET(sMenuTextureList[sMenuTextureMap[arg0].offset]); + size = sMenuTextureMap[arg0 + 1].offset - sMenuTextureMap[arg0].offset; for (var_v1 = 0; var_v1 != size; var_v1++) { u16 color_pixel = BSWAP16(*color); red = ((color_pixel & 0xF800) >> 0xB) * 0x4D; @@ -4271,44 +4261,52 @@ void func_8009AD78(s32 arg0, s32 arg1) { *color++ = BSWAP16((temp_t9 << 1) + (temp_t9 << 6) + (temp_t9 << 0xB) + alpha); } // Invalidate texture to properly apply color manipulation - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg0].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[arg0].offset); } -void convert_img_to_greyscale(s32 arg0, u32 arg1) { - u32 var_s0; +void convert_img_to_greyscale(s32 index, u32 num) { + size_t width = ResourceGetTexWidthByName(sMenuTextureList[sMenuTextureMap[index].offset]); + size_t height = ResourceGetTexHeightByName(sMenuTextureList[sMenuTextureMap[index].offset]); + u32 i; s32 red; s32 green; s32 blue; s32 alpha; - u32 temp_t9; - s32 size; + u32 result; u16* color; - f32 sp48[0x20]; + f32 sp48[32]; + + size_t size = width * height; - for (var_s0 = 0; var_s0 < 0x20; var_s0++) { - sp48[var_s0] = func_800917B0(var_s0 * 0.03125, (arg1 * 1.5 * 0.00390625) + 0.25); + for (i = 0; i < ARRAY_COUNT(sp48); i++) { + sp48[i] = func_800917B0(i * 0.03125, (num * 1.5 * 0.00390625) + 0.25); } - color = &D_8018D9B0[D_8018E118[arg0].offset]; - size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset; - for (var_s0 = 0; var_s0 < (u32) size; var_s0++) { + + color = (u16*)LOAD_ASSET(sMenuTextureList[sMenuTextureMap[index].offset]); + + + + for (i = 0; i < (u32) size; i++) { u16 color_pixel = BSWAP16(*color); red = ((color_pixel & 0xF800) >> 0xB) * 0x55; green = ((color_pixel & 0x7C0) >> 6) * 0x4B; blue = ((color_pixel & 0x3E) >> 1) * 0x5F; alpha = color_pixel & 0x1; - temp_t9 = red + green + blue; - temp_t9 >>= 8; - temp_t9 = sp48[temp_t9] * 32.0f; - if (temp_t9 >= 0x20) { - temp_t9 = 0x1F; + result = red + green + blue; + result >>= 8; + result = sp48[result] * 32.0f; + if (result >= 0x20) { + result = 0x1F; } - *color++ = BSWAP16((temp_t9 << 1) + (temp_t9 << 6) + (temp_t9 << 0xB) + alpha); + *color++ = BSWAP16((result << 1) + (result << 6) + (result << 0xB) + alpha); } // Invalidate texture to properly apply color manipulation - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg0].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[index].offset); } -void adjust_img_colour(s32 arg0, s32 screen_size, s32 arg2, s32 arg3, s32 arg4) { +void adjust_img_colour(s32 index, s32 screenSize, s32 r, s32 g, s32 b) { + size_t width = ResourceGetTexWidthByName(sMenuTextureList[sMenuTextureMap[index].offset]); + size_t height = ResourceGetTexHeightByName(sMenuTextureList[sMenuTextureMap[index].offset]); s32 red; s32 green; s32 blue; @@ -4317,11 +4315,14 @@ void adjust_img_colour(s32 arg0, s32 screen_size, s32 arg2, s32 arg3, s32 arg4) s32 newgreen; s32 newblue; u32 temp_t9; - s32 var_v1; u16* color; + // Overwrite the default screen size of 320 * 240 to allow widescreen textures. + screenSize = width * height; - color = &D_8018D9B0[D_8018E118[arg0].offset]; - for (var_v1 = 0; var_v1 < screen_size; var_v1++) { + color = LOAD_ASSET(sMenuTextureList[sMenuTextureMap[index].offset]); + + + for (size_t i = 0; i < screenSize; i++) { u16 color_pixel = BSWAP16(*color); red = ((color_pixel & 0xF800) >> 0xB) * 0x4D; green = ((color_pixel & 0x7C0) >> 6) * 0x96; @@ -4329,13 +4330,13 @@ void adjust_img_colour(s32 arg0, s32 screen_size, s32 arg2, s32 arg3, s32 arg4) alpha = (color_pixel & 0x1); temp_t9 = red + green + blue; temp_t9 = temp_t9 >> 8; - newred = ((temp_t9 * arg2) >> 8) << 0xB; - newgreen = ((temp_t9 * arg3) >> 8) << 6; - newblue = ((temp_t9 * arg4) >> 8) << 1; + newred = ((temp_t9 * r) >> 8) << 0xB; + newgreen = ((temp_t9 * g) >> 8) << 6; + newblue = ((temp_t9 * b) >> 8) << 1; *color++ = BSWAP16(newred + newgreen + newblue + alpha); } // Invalidate texture to properly apply color manipulation - gSPInvalidateTexCache(gDisplayListHead++, D_8018E118[arg0].offset); + gSPInvalidateTexCache(gDisplayListHead++, sMenuTextureMap[index].offset); } u16* func_8009B8C4(u64* arg0) { @@ -4345,35 +4346,35 @@ u16* func_8009B8C4(u64* arg0) { s32 someIndex; found = 0; - for (someIndex = 0; someIndex < gNumD_8018E118Entries; someIndex++) { - if (arg0 == D_8018E118[someIndex].textureData) { + for (someIndex = 0; someIndex < sMenuTextureEntries; someIndex++) { + if (arg0 == sMenuTextureMap[someIndex].textureData) { found = 1; - offset = D_8018E118[someIndex].offset; + offset = sMenuTextureMap[someIndex].offset; break; } } if (found != 0) { - return &D_8018D9B0[offset]; + return sMenuTextureList[offset]; } return NULL; } -// D_8018D9C0 is a little weird. In code_800AF9B0 its treated as a +// gSomeDLBuffer is a little weird. In code_800AF9B0 its treated as a // struct_8018EE10_entry pointer. But here its being treated as a // Gfx pointer. It seems to be multi use. void func_8009B938(void) { - D_8018E75C = (Gfx*) D_8018D9C0; + sGfxPtr = (Gfx*) gSomeDLBuffer; gNumD_8018E768Entries = 0; } -void func_8009B954(MkTexture* arg0) { +void func_8009B954(MenuTexture* arg0) { D_8018E768[gNumD_8018E768Entries].textures = segmented_to_virtual_dupe(arg0); - D_8018E768[gNumD_8018E768Entries].displayList = D_8018E75C; + D_8018E768[gNumD_8018E768Entries].displayList = sGfxPtr; } void func_8009B998(void) { - gSPEndDisplayList(D_8018E75C++); + gSPEndDisplayList(sGfxPtr++); gNumD_8018E768Entries += 1; } @@ -4382,7 +4383,7 @@ void func_8009B998(void) { // Based on the target assembly, in the event that it never finds // the desired entry, it'll treat the return value of segmented_to_virtual_dupe // as the return of this function. Which seems like a bug to me -Gfx* func_8009B9D0(Gfx* displayListHead, MkTexture* textures) { +Gfx* func_8009B9D0(Gfx* displayListHead, MenuTexture* textures) { Gfx* displayList; UNUSED s32 pad; bool found; @@ -4402,8 +4403,8 @@ Gfx* func_8009B9D0(Gfx* displayListHead, MkTexture* textures) { } } -Gfx* func_8009BA74(Gfx* arg0, MkTexture* arg1, s32 column, s32 row) { - MkTexture* temp_v0; +Gfx* render_menu_textures(Gfx* arg0, MenuTexture* arg1, s32 column, s32 row) { + MenuTexture* temp_v0; u8* temp_v0_3; s8 var_s4; @@ -4447,8 +4448,8 @@ Gfx* func_8009BA74(Gfx* arg0, MkTexture* arg1, s32 column, s32 row) { return arg0; } -Gfx* func_8009BC9C(Gfx* arg0, MkTexture* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { - MkTexture* var_s0; +Gfx* func_8009BC9C(Gfx* arg0, MenuTexture* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { + MenuTexture* var_s0; u8* temp_v0_3; var_s0 = segmented_to_virtual_dupe(arg1); @@ -4477,7 +4478,7 @@ Gfx* func_8009BC9C(Gfx* arg0, MkTexture* arg1, s32 arg2, s32 arg3, s32 arg4, s32 break; case 4: /* switch 1 */ arg0 = func_80097274(arg0, 0, 0x00000400, 0x00000400, 0, 0, var_s0->width, var_s0->height, - var_s0->dX + arg2, var_s0->dY + arg3, temp_v0_3, var_s0->width, var_s0->height, + var_s0->dX + arg2, var_s0->dY + arg3, (u16*)temp_v0_3, var_s0->width, var_s0->height, arg5); break; } @@ -4487,12 +4488,12 @@ Gfx* func_8009BC9C(Gfx* arg0, MkTexture* arg1, s32 arg2, s32 arg3, s32 arg4, s32 return arg0; } -Gfx* print_letter(Gfx* arg0, MkTexture* glyphTexture, f32 arg2, f32 arg3, s32 mode, f32 scaleX, f32 scaleY) { +Gfx* print_letter(Gfx* arg0, MenuTexture* glyphTexture, f32 arg2, f32 arg3, s32 mode, f32 scaleX, f32 scaleY) { s32 var_v0; u8* temp_v0_2; f32 thing0; f32 thing1; - MkTexture* var_s0; + MenuTexture* var_s0; var_s0 = segmented_to_virtual_dupe(glyphTexture); while (var_s0->textureData != NULL) { @@ -4539,10 +4540,10 @@ Gfx* print_letter(Gfx* arg0, MkTexture* glyphTexture, f32 arg2, f32 arg3, s32 mo return arg0; } -Gfx* func_8009C204(Gfx* arg0, MkTexture* arg1, s32 arg2, s32 arg3, s32 arg4) { +Gfx* func_8009C204(Gfx* arg0, MenuTexture* arg1, s32 arg2, s32 arg3, s32 arg4) { s32 var_s2; u8* temp_t0; - MkTexture* var_s1; + MenuTexture* var_s1; var_s1 = segmented_to_virtual_dupe(arg1); while (var_s1->textureData != NULL) { @@ -4584,7 +4585,7 @@ Gfx* func_8009C434(Gfx* arg0, struct_8018DEE0_entry* arg1, s32 arg2, s32 arg3, s s32 var_t0; s32 var_t1; Gfx* temp; - MkTexture* var_s0; + MenuTexture* var_s0; var_s0 = segmented_to_virtual_dupe(arg1->textureSequence[arg1->sequenceIndex].mk64Texture); temp = D_02007728; @@ -4606,28 +4607,29 @@ Gfx* func_8009C434(Gfx* arg0, struct_8018DEE0_entry* arg1, s32 arg2, s32 arg3, s break; } if (arg1->unk14 != 0) { - var_t0 = D_8018E118[arg1->D_8018E118_index + 1].offset; + var_t0 = sMenuTextureMap[arg1->menuTextureIndex + 1].offset; } else { - var_t0 = D_8018E118[arg1->D_8018E118_index].offset; + var_t0 = sMenuTextureMap[arg1->menuTextureIndex].offset; if (1) {} if (1) {} if (1) {} } + if (arg4 >= 0) { arg0 = func_80097E58(arg0, var_t1, 0, 0U, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, - (u8*) &D_8018D9B0[var_t0], var_s0->width, var_s0->height, (u32) arg4); + (u8*) sMenuTextureList[var_t0], var_s0->width, var_s0->height, (u32) arg4); } else { switch (arg4) { case -1: arg0 = func_80095E10(arg0, var_t1, 0x00000400, 0x00000400, 0, 0, var_s0->width, var_s0->height, - var_s0->dX + arg2, var_s0->dY + arg3, (u8*) &D_8018D9B0[var_t0], var_s0->width, + var_s0->dX + arg2, var_s0->dY + arg3, (u8*) sMenuTextureList[var_t0], var_s0->width, var_s0->height); break; case -2: arg0 = func_800963F0(arg0, var_t1, 0x00000400, 0x00000400, 0.5f, 0.5f, 0, 0, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, - (u8*) &D_8018D9B0[var_t0], var_s0->width, var_s0->height); + (u8*) sMenuTextureList[var_t0], var_s0->width, var_s0->height); break; } } @@ -4640,7 +4642,7 @@ Gfx* func_8009C708(Gfx* arg0, struct_8018DEE0_entry* arg1, s32 arg2, s32 arg3, s s32 var_t0; UNUSED s32 thing; Gfx* temp; - MkTexture* var_s1; + MenuTexture* var_s1; var_s1 = segmented_to_virtual_dupe(arg1->textureSequence[arg1->sequenceIndex].mk64Texture); temp = D_02007728; @@ -4702,9 +4704,9 @@ void func_8009CA2C(void) { void func_8009CA6C(s32 arg0) { s32 var_a1; - if ((arg0 == 4) || ((find_8018D9E0_entry(0x000000AA) == NULL) && (find_8018D9E0_entry(0x000000AB) == NULL) && - (find_8018D9E0_entry(0x000000B9) == NULL) && (find_8018D9E0_entry(0x000000BA) == NULL) && - (find_8018D9E0_entry(0x000000AC) == NULL) && (find_8018D9E0_entry(0x000000B0) == NULL))) { + if ((arg0 == 4) || ((find_menu_items(0x000000AA) == NULL) && (find_menu_items(0x000000AB) == NULL) && + (find_menu_items(0x000000B9) == NULL) && (find_menu_items(0x000000BA) == NULL) && + (find_menu_items(0x000000AC) == NULL) && (find_menu_items(0x000000B0) == NULL))) { var_a1 = 0; gSPDisplayList(gDisplayListHead++, D_0D0076F8); if ((arg0 != 4) && (gIsGamePaused != 0)) { @@ -4777,7 +4779,7 @@ void func_8009CBE4(s32 arg0, s32 arg1, s32 arg2) { return; } D_8018E7AC[arg0] = 0; - D_8018EE0C = 0; + unref_D_8018EE0C = 0; } } @@ -4799,7 +4801,7 @@ void func_8009CE64(s32 arg0) { s32 thing; s32 var_a1; UNUSED s32 stackPadding0; - struct_8018D9E0_entry* temp_v0; + MenuItem* menuItem; var_a1 = 0; if (gGamestate == 5) { @@ -4828,9 +4830,9 @@ void func_8009CE64(s32 arg0) { D_8018E7AC[arg0] = 5; } else { var_a1 = 0; - temp_v0 = find_8018D9E0_entry(0x000000B0); - if (temp_v0 != NULL) { - switch (temp_v0->cursor) { /* switch 8; irregular */ + menuItem = find_menu_items(0x000000B0); + if (menuItem != NULL) { + switch (menuItem->state) { /* switch 8; irregular */ case 10: /* switch 8 */ func_802903B0(); break; @@ -4847,9 +4849,9 @@ void func_8009CE64(s32 arg0) { } } else { var_a1 = 0; - temp_v0 = find_8018D9E0_entry(0x000000AC); - if (temp_v0 != NULL) { - switch (temp_v0->cursor) { /* switch 7; irregular */ + menuItem = find_menu_items(0x000000AC); + if (menuItem != NULL) { + switch (menuItem->state) { /* switch 7; irregular */ case 11: /* switch 7 */ func_802903B0(); D_8016556E = 1; @@ -4861,9 +4863,9 @@ void func_8009CE64(s32 arg0) { } } else { var_a1 = 0; - temp_v0 = find_8018D9E0_entry(0x000000C7); - if (temp_v0 != NULL) { - switch (temp_v0->cursor) { /* switch 1 */ + menuItem = find_menu_items(0x000000C7); + if (menuItem != NULL) { + switch (menuItem->state) { /* switch 1 */ case 12: /* switch 1 */ func_802903B0(); var_a1 = 1; @@ -4895,9 +4897,9 @@ void func_8009CE64(s32 arg0) { gIsGamePaused = 0; } } - temp_v0 = find_8018D9E0_entry(0x000000BD); - if (temp_v0 != NULL) { - switch (temp_v0->cursor) { /* switch 2 */ + menuItem = find_menu_items(0x000000BD); + if (menuItem != NULL) { + switch (menuItem->state) { /* switch 2 */ case 11: /* switch 2 */ D_8015F892 = 1; D_8015F890 = 0; @@ -4936,11 +4938,11 @@ void func_8009CE64(s32 arg0) { } else { D_8018E7AC[arg0] = 0; if (gDebugMenuSelection != 0x40) { - switch (D_8018EDE0) { /* switch 3 */ + switch (gMenuFadeType) { /* switch 3 */ case 0: /* switch 3 */ if (gMenuSelection == 8) { gMenuSelection = 0x0000000A; - D_800E86A4 = 2; + gFadeModeSelection = 2; } else { gMenuSelection++; } @@ -4950,7 +4952,7 @@ void func_8009CE64(s32 arg0) { break; case 2: /* switch 3 */ gDemoMode = 1; - D_8018EE08 = 1; + gDemoUseController = 1; gGamestateNext = 4; gCCSelection = (s32) 1; switch (gNextDemoId) { /* switch 4 */ @@ -5034,7 +5036,6 @@ void func_8009CE64(s32 arg0) { if (gNextDemoId >= 6) { gNextDemoId = 0; } - printf("\nSELECTED!!!!!\n"); //gCupSelection = GetCupIndex(); // gCupSelectionByCourseId[gCurrentCourseId]; D_800DC540 = (s32) GetCupIndex(); @@ -5063,17 +5064,17 @@ void func_8009CE64(s32 arg0) { } break; } - if (D_800E86A4 == 0) { - D_800E86A4 = 1; + if (gFadeModeSelection == 0) { + gFadeModeSelection = 1; } if (gMenuSelection >= 0xE) { gGamestateNext = 4; if (gModeSelection == 1) { - D_8018EDFB = (s8) 1; + gGhostPlayerInit = (s8) 1; } func_8009CE1C(); } - D_8018EE0C = 0; + unref_D_8018EE0C = 0; } else { switch (gDebugGotoScene) { /* switch 5; irregular */ case 1: /* switch 5 */ @@ -5087,7 +5088,7 @@ void func_8009CE64(s32 arg0) { default: /* switch 5 */ gGamestateNext = 4; if (gModeSelection == (s32) 1) { - D_8018EDFB = 1; + gGhostPlayerInit = 1; } break; } @@ -5268,7 +5269,7 @@ void func_8009DB8C(void) { if ((u32) var_v1 >= D_8018E7B8[4]) { if ((u32) var_v1 == D_8018E7B8[4]) { for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) { - D_8018D9B8[var_s0] = 1; + sTKMK00_LowResBuffer[var_s0] = 1; } } else { func_8009CE64(4); @@ -5277,9 +5278,9 @@ void func_8009DB8C(void) { var_s0 = 0; var_s3 = 0; while (var_s3 < (0x4B0U / D_8018E7B8[4])) { - if ((D_8018D9B8[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7B8[4]) == 0)) { + if ((sTKMK00_LowResBuffer[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7B8[4]) == 0)) { var_s3 += 1; - D_8018D9B8[var_s0] = 1; + sTKMK00_LowResBuffer[var_s0] = 1; } var_s0 += 1; if (var_s0 >= 0x4B0) { @@ -5292,7 +5293,7 @@ void func_8009DB8C(void) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0xFF); gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) { - if (D_8018D9B8[var_s0] != 0) { + if (sTKMK00_LowResBuffer[var_s0] != 0) { temp_t4 = (var_s0 % 40) * 8; temp_t5 = (var_s0 / 40) * 8; gDPFillRectangle(gDisplayListHead++, temp_t4, temp_t5, temp_t4 + 8, temp_t5 + 8); @@ -5397,7 +5398,7 @@ void func_8009E0F0(s32 arg0) { } D_8018E7D0[4] = 0; for (var_v0 = 0; var_v0 < 0x4B0; var_v0++) { - D_8018D9B8[var_v0] = 0; + sTKMK00_LowResBuffer[var_v0] = 0; } } } @@ -5415,32 +5416,32 @@ void func_8009E17C(u32 arg0) { void func_8009E1C0(void) { func_8009DFE0(10); - D_8018EDE0 = 0; + gMenuFadeType = 0; } void func_8009E1E4(void) { func_8009E000(10); - D_8018EDE0 = 0; + gMenuFadeType = 0; } void func_8009E208(void) { func_8009DFE0(10); - D_8018EDE0 = 1; + gMenuFadeType = 1; } void func_8009E230(void) { func_8009DFE0(10); - D_8018EDE0 = 2; + gMenuFadeType = 2; } void func_8009E258(void) { func_8009DFE0(10); - D_8018EDE0 = 3; + gMenuFadeType = 3; } void func_8009E280(void) { func_8009DFE0(10); - D_8018EDE0 = 4; + gMenuFadeType = 4; } void func_8009E2A8(s32 arg0) { @@ -5502,18 +5503,18 @@ void func_8009E5FC(s32 arg0) { D_8018E840[arg0] = 0; } -void func_8009E620(void) { +void clear_menus(void) { s32 index; - for (index = 0; index < D_8018D9E0_SIZE; index++) { - D_8018D9E0[index].type = 0; + for (index = 0; index < MENU_ITEMS_MAX; index++) { + gMenuItems[index].type = 0; } } #ifdef NON_MATCHING // https://decomp.me/scratch/1BHpa // Stack differences, can't figure out how to fix them -void add_ui_element(s32 type, s32 column, s32 row, s8 priority) { - struct_8018D9E0_entry* var_ra; +void add_menu_item(s32 type, s32 column, s32 row, s8 priority) { + MenuItem* var_ra; s32 stackPadding0; UNUSED s32 stackPadding1; UNUSED s32 stackPadding2; @@ -5521,235 +5522,235 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) { s32 var_v0; s32 var_v1_3; s32 temp_a1; - UNUSED MkTexture* mk64Texture; + UNUSED MenuTexture* mk64Texture; MkAnimation* var_a0; s32 one = 1; var_v0 = 0; - var_ra = D_8018D9E0; - // ???????? - // Credit to Vetri for the idea to mess around with this loop - // to fix the issue near the 0xD4 case - while (true) { - var_v0++; - if (var_ra->type == 0) - break; + var_ra = gMenuItems; - if (var_v0 > D_8018D9E0_SIZE) { + while (true) { + if (var_ra->type == 0) { + break; + } + var_v0++; + if (var_v0 > MENU_ITEMS_MAX) { printf("Ran out of buffer space for UI elements"); while (true) {} } var_ra++; } var_ra->type = type; - var_ra->cursor = 0; - var_ra->unk8 = 0; + var_ra->state = 0; + var_ra->subState = 0; var_ra->column = column; var_ra->row = row; var_ra->priority = (u8) priority; var_ra->visible = one; - var_ra->unk1C = 0; - var_ra->unk20 = 0; + var_ra->param1 = 0; + var_ra->param2 = 0; switch (type) { - case 0xFA: - s8018ED94 = 0; - D_800E8530 = 0.0f; - D_800E8534 = 3.0f; - D_8018EDC0 = 0x000009C4; - D_8018EDC8 = 0; - D_8018EDCC = -270.0f; - D_8018EDD0 = 0; - D_8018EDD4 = 0; - D_8018EDD8 = 0; - D_8018EDDC = 0; - D_8018EDC4 = 3; - var_ra->unk1C = -1; - var_ra->unk20 = one; + case MENU_ITEM_UI_LOGO_INTRO: + sIntroLogoTimer = 0; + sIntroModelMotionSpeed = 0.0f; + sIntroModelSpeed = 3.0f; + gIntroModelZEye = 2500; + gIntroModelRotX = 0; + gIntroModelRotY = -270.0f; + gIntroModelRotZ = 0; + gIntroModelPosX = 0; + gIntroModelPosY = 0; + gIntroModelPosZ = 0; + gIntroModelScale = 3; + var_ra->param1 = -1; + var_ra->param2 = one; break; - case 0xFB: - D_8018EDC0 = 0x00000708; - D_8018EDC8 = -51.0f; - D_8018EDCC = -12.0f; - D_8018EDD0 = -18.0f; - D_8018EDD4 = -270.0f; - D_8018EDD8 = 750.0f; - D_8018EDDC = 0; - D_8018EDC4 = 1.0f; - var_ra->unk1C = -1; - var_ra->unk20 = one; + case START_MENU_FLAG: + gIntroModelZEye = 1800; + gIntroModelRotX = -51.0f; + gIntroModelRotY = -12.0f; + gIntroModelRotZ = -18.0f; + gIntroModelPosX = -270.0f; + gIntroModelPosY = 750.0f; + gIntroModelPosZ = 0; + gIntroModelScale = 1.0f; + var_ra->param1 = -1; + var_ra->param2 = one; break; - case 0xD2: - load_menu_img2(D_020014C8, 0); + case MENU_ITEM_TYPE_0D2: + load_menu_img_comp_type(D_020014C8, LOAD_MENU_IMG_TKMK00_ONCE); func_8009B954(D_020014C8); - D_8018E75C = func_8009BA74(D_8018E75C, D_020014C8, var_ra->column, var_ra->row); + sGfxPtr = render_menu_textures(sGfxPtr, D_020014C8, var_ra->column, var_ra->row); func_8009B998(); break; - case 0xD3: - load_menu_img2(D_02001540, 0); + case MENU_ITEM_TYPE_0D3: + load_menu_img_comp_type(D_02001540, LOAD_MENU_IMG_TKMK00_ONCE); func_8009B954(D_02001540); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001540, var_ra->column, var_ra->row); + sGfxPtr = render_menu_textures(sGfxPtr, D_02001540, var_ra->column, var_ra->row); func_8009B998(); break; - case 0xD4: - load_menu_img2(D_0200157C, 0); + case MENU_ITEM_TYPE_0D4: + load_menu_img_comp_type(D_0200157C, LOAD_MENU_IMG_TKMK00_ONCE); load_menu_img(D_02001874); var_ra->row = 0x00000069; for (var_v0 = 0; var_v0 < 133; var_v0++) { load_menu_img(segmented_to_virtual_dupe(D_800E7AF8[var_v0])); } break; - case 0xD5: + case MENU_ITEM_TYPE_0D5: load_menu_img(D_020015A4); func_8009B954(D_020015A4); - D_8018E75C = func_8009BA74(D_8018E75C, D_020015A4, var_ra->column, var_ra->row); - gDPLoadTextureBlock(D_8018E75C++, func_8009B8C4(gTexture7ED50C), G_IM_FMT_IA, G_IM_SIZ_16b, 256, 5, 0, + sGfxPtr = render_menu_textures(sGfxPtr, D_020015A4, var_ra->column, var_ra->row); + gDPLoadTextureBlock(sGfxPtr++, func_8009B8C4(gTexture7ED50C), G_IM_FMT_IA, G_IM_SIZ_16b, 256, 5, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(D_8018E75C++, 0x80, 0x2C0, 0x480, 0x2D4, G_TX_RENDERTILE, 0, 0x80, 0x0400, 0xFC00); + gSPTextureRectangle(sGfxPtr++, 0x80, 0x2C0, 0x480, 0x2D4, G_TX_RENDERTILE, 0, 0x80, 0x0400, 0xFC00); func_8009B998(); load_menu_img(D_020015CC); func_8009B954(D_020015CC); - D_8018E75C = func_8009BA74(D_8018E75C, D_020015CC, var_ra->column, var_ra->row); + sGfxPtr = render_menu_textures(sGfxPtr, D_020015CC, var_ra->column, var_ra->row); func_8009B998(); load_menu_img(D_02001630); func_8009B954(D_02001630); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001630, var_ra->column, var_ra->row); + sGfxPtr = render_menu_textures(sGfxPtr, D_02001630, var_ra->column, var_ra->row); func_8009B998(); load_menu_img(D_02001658); func_8009B954(D_02001658); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001658, var_ra->column, var_ra->row); + 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_img2(D_800E7D4C[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); + load_texture_reset_cache(gMenuTexturesBackground[has_unlocked_extra_mode()]->textureData); break; - case 0x2: + case MENU_ITEM_UI_LOGO_AND_COPYRIGHT: load_mario_kart_64_logo(); - gMenuTextureBufferIndex += 0x10000; - load_menu_img(D_020045E8); + //sMenuTextureListIndex += 1; + load_menu_img(seg2_copyright_1996_texture); break; - case 0x3: - load_menu_img(D_02004610); + case MENU_ITEM_UI_PUSH_START_BUTTON: + load_menu_img(seg2_push_start_button_texture); break; - case 0x23: - case 0x24: - case 0x25: - load_menu_img2(D_800E7D4C[has_unlocked_extra_mode()], 0); - load_menu_img2(D_02004B74, 0); + case MAIN_MENU_BACKGROUND: + case CHARACTER_SELECT_BACKGROUND: + case COURSE_SELECT_BACKGROUND: + load_texture_reset_cache(gMenuTexturesBackground[has_unlocked_extra_mode()]->textureData); + //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); + adjust_img_colour(0, SCREEN_WIDTH * SCREEN_HEIGHT, D_800E74E8[type - MAIN_MENU_BACKGROUND].red, + D_800E74E8[type - MAIN_MENU_BACKGROUND].green, D_800E74E8[type - MAIN_MENU_BACKGROUND].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_img2(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_img2(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_img2(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_img2(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(D_800E82B4[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_img2(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_img2(segmented_to_virtual_dupe(D_800E82C4[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_img2(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_img2(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 { @@ -5757,14 +5758,14 @@ void add_ui_element(s32 type, s32 column, s32 row, s8 priority) { D_8018EE10[1].ghostDataSaved = 0; } break; - case 0x78: - case 0x79: - case 0x7A: - case 0x7B: - load_menu_img2(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_img2(segmented_to_virtual_dupe(D_02004A34), 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 { @@ -5772,46 +5773,46 @@ void add_ui_element(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_img2(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_img2(segmented_to_virtual_dupe(D_800E7DC4[gCupCourseOrder[temp_v0_6 / 4][temp_v0_6 % 4]]), 0); - load_menu_img2(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; @@ -5824,26 +5825,26 @@ void add_ui_element(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_img2(segmented_to_virtual_dupe(D_800E7D54[temp_a1]), 0); - load_menu_img(segmented_to_virtual_dupe(D_800E82B4[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_img2(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(); @@ -5852,16 +5853,16 @@ void add_ui_element(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_img2(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; @@ -5874,89 +5875,89 @@ void add_ui_element(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_img2(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; } } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/add_ui_element.s") +GLOBAL_ASM("asm/non_matchings/menu_items/add_menu_item.s") #endif #ifdef NON_MATCHING // https://decomp.me/scratch/MatRp // Biggest diff left is in the case 0x12 though 0x19 handling. Not really sure what's going on there -// There's also a diff in the handling of D_800E77A0 in case 0x4. Not sure what's going on there either -void func_8009F5E0(struct_8018D9E0_entry* arg0) { +// There's also a diff in the handling of gTextNoController in case 0x4. Not sure what's going on there either +void render_menus(MenuItem* arg0) { s32 var_a1; s32 var_v1; UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; - MkTexture* sp9C; + MenuTexture* sp9C; UNUSED s32 stackPadding2; s32 temp_a0; s32 temp_t2; @@ -5971,32 +5972,32 @@ void func_8009F5E0(struct_8018D9E0_entry* 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); @@ -6006,55 +6007,55 @@ void func_8009F5E0(struct_8018D9E0_entry* 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 = - func_8009BA74(gDisplayListHead, D_800E7D4C[has_unlocked_extra_mode()], arg0->column, arg0->row); + 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)); - gDisplayListHead = func_8009BA74(gDisplayListHead, D_020045E8, arg0->column, arg0->row); + 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 = func_8009BA74(gDisplayListHead, D_02004610, arg0->column, arg0->row); + 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); - draw_text(0x0000009B, 0x0000008C, CourseManager_GetProps()->Name, 0, 0.9f, 0.9f); + 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) { set_text_color((s32) gGlobalTimer % 2); } 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); - func_80093324(0x0000008B, 0x000000A0, "'", 0, 1.0f, 1.0f); + print_text_mode_1(0x0000008B, 0x000000A0, "'", 0, 1.0f, 1.0f); get_time_record_seconds(temp_v1, sp80); func_800939C8(0x00000094, 0x000000A0, sp80, 0, 1.0f, 1.0f); - func_80093324(0x000000A7, 0x000000A0, "\"", 0, 1.0f, 1.0f); + print_text_mode_1(0x000000A7, 0x000000A0, "\"", 0, 1.0f, 1.0f); get_time_record_centiseconds(temp_v1, sp80); func_800939C8(0x000000B4, 0x000000A0, sp80, 0, 1.0f, 1.0f); break; - case 0x4: /* switch 6 */ - var_t0 = get_string_width(D_800E77A0[0]); - temp_v1 = get_string_width(D_800E77A0[1]); + 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) { var_t0 = temp_v1; } @@ -6062,39 +6063,39 @@ void func_8009F5E0(struct_8018D9E0_entry* 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++) { - draw_text(0xA0 * one - floatone * why, (s32) (0xB4 * one + ((f32) (temp_t9 * 0x12) * why)), - D_800E77A0[temp_t9], 0, why, why); + 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 */ - gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E7D4C[has_unlocked_extra_mode()], arg0->column, + 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 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004660, arg0->column, arg0->row); + 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); + gDisplayListHead = func_8009BC9C(gDisplayListHead, D_0200487C, arg0->column, arg0->row, 2, arg0->param1); 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 (var_a1 == gMainMenuSelectionDepth) { + if (arg0->param1 < 0x20) { + temp_t9 = (arg0->param1 * 0x3A) / 64; + if (var_a1 == gMainMenuSelection) { gDisplayListHead = draw_flash_select_case_fast(gDisplayListHead, arg0->column + temp_t9, arg0->row, (arg0->column - temp_t9) + 0x39, arg0->row + 0x12); @@ -6106,79 +6107,85 @@ void func_8009F5E0(struct_8018D9E0_entry* arg0) { } var_v1 = arg0->type - 0xA; gDisplayListHead = - func_8009BC9C(gDisplayListHead, D_800E8254[var_v1], arg0->column, arg0->row, 2, arg0->unk1C); + func_8009BC9C(gDisplayListHead, D_800E8254[var_v1], arg0->column, arg0->row, 2, arg0->param1); 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 */ - 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 */ - if ((var_a1 != 0) && (var_a1 != 2)) { - var_v1 = -1; + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: + case MAIN_MENU_EXTRA_CC: + case MENU_ITEM_TYPE_016: + case MENU_ITEM_TYPE_017: + case MAIN_MENU_TIME_TRIALS_BEGIN: + case MAIN_MENU_TIME_TRIALS_DATA: + var_v1 = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; + var_a1 = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; + switch (arg0->type) { + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: + case MAIN_MENU_EXTRA_CC: + switch(var_a1) { + case 0: + case 2: + break; + default: + var_v1 = -1; + break; } - var_a1 = 18; - sp9C = segmented_to_virtual_dupe(D_800E824C[arg0->type]); + var_a1 = MAIN_MENU_50CC; + sp9C = segmented_to_virtual_dupe(D_800E8294[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_800E824C[arg0->type]); + var_a1 = MENU_ITEM_TYPE_016; + sp9C = segmented_to_virtual_dupe(D_800E82A4[arg0->type - MENU_ITEM_TYPE_016]); } 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_800E824C[arg0->type]); + var_a1 = MAIN_MENU_TIME_TRIALS_BEGIN; + sp9C = segmented_to_virtual_dupe(D_800E82AC[arg0->type - MAIN_MENU_TIME_TRIALS_BEGIN]); } break; + } // End of switch + if (var_v1 == -1) { + break; } - if (var_v1 != -1) { - if ((gMainMenuSelectionDepth >= 5) && (var_v1 == (arg0->type - var_a1))) { - if (gMainMenuSelectionDepth >= 6) { - gDisplayListHead = - draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, - arg0->row + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); - } else { - gDisplayListHead = - draw_flash_select_case_slow(gDisplayListHead, arg0->column ^ 0, arg0->row ^ 0, - arg0->column + 0x3F, arg0->row + 0x11); - } + if ((gMainMenuSelection >= 5) && (var_v1 == (arg0->type - var_a1))) { + if (gMainMenuSelection >= 6) { + gDisplayListHead = + draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, + arg0->row + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } else { - gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, - arg0->row + 0x11, 1, 1, 1, 0x000000FF); + gDisplayListHead = + draw_flash_select_case_slow(gDisplayListHead, arg0->column ^ 0, arg0->row ^ 0, + arg0->column + 0x3F, arg0->row + 0x11); } - gDisplayListHead = func_8009BA74(gDisplayListHead, sp9C, arg0->column, arg0->row); + } else { + gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, + arg0->row + 0x11, 1, 1, 1, 0x000000FF); } + 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 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004B4C, arg0->column, arg0->row); + 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) { + if (gCharacterGridIsSelected[temp_a0] == 0) { temp_t2 = 0x000000FF; } else { temp_t2 = gGlobalTimer % 16; @@ -6189,99 +6196,99 @@ void func_8009F5E0(struct_8018D9E0_entry* 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); + gDisplayListHead = func_8009BC9C(gDisplayListHead, D_02004B74, arg0->column, arg0->row, 2, arg0->param1); 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 */ - func_8009A76C(arg0->D_8018DEE0_index, arg0->column, arg0->row, arg0->unk1C); + case MENU_ITEM_TYPE_0A0: + case MENU_ITEM_TYPE_0A1: + func_8009A76C(arg0->D_8018DEE0_index, arg0->column, arg0->row, arg0->param1); 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 = - func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C4[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 = - func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C4[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); - func_80093324(arg0->column + 8, arg0->row + 0x10, D_800E7728[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 = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E8294[gCCSelection]), + 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 ((gMainMenuSelection >= MAIN_MENU_MODE_SUB_SELECT) && (var_a1 == (arg0->type - var_v1))) { + if (gMainMenuSelection >= MAIN_MENU_MODE_SUB_SELECT) { gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, arg0->row + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); @@ -6293,206 +6300,206 @@ void func_8009F5E0(struct_8018D9E0_entry* arg0) { gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x3F, arg0->row + 0x11, 1, 1, 1, 0x000000FF); } - gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A34, arg0->column, arg0->row); - set_text_color(3); - func_800936B8(0x00000125, 0x0000001C, D_800E77B4, 0, 0.55f, 0.55f); + gDisplayListHead = render_menu_textures(gDisplayListHead, seg2_data_texture, arg0->column, arg0->row); + 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); - func_800936B8(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); - func_80093324(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 = - func_8009BA74(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 */ - func_800A3C84(arg0); + case MENU_ITEM_TYPE_0B9: + time_trials_finish_text_render(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 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004638, arg0->column, arg0->row); + 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) { - gDisplayListHead = func_8009BA74( + 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; } } } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009F5E0.s") +GLOBAL_ASM("asm/non_matchings/menu_items/render_menus.s") #endif void func_800A08D8(u8 arg0, s32 column, s32 row) { @@ -6503,7 +6510,7 @@ void func_800A08D8(u8 arg0, s32 column, s32 row) { arg0 = 0x2B; } gDisplayListHead = - func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E7AF8[arg0]), column, row); + render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E7AF8[arg0]), column, row); } } } @@ -6525,36 +6532,31 @@ 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(struct_8018D9E0_entry* 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 = func_8009BA74(gDisplayListHead, D_0200157C, x, y); - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A09E0.s") -#endif +void func_800A09E0(MenuItem *item) { + s32 table_row; -void func_800A0AD0(UNUSED struct_8018D9E0_entry* arg0) { - struct_8018D9E0_entry* temp_t1; - // Find struct_8018D9E0_entry with a type/id of 0xDA - temp_t1 = find_8018D9E0_entry_dupe(0xDA); + gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 319, 194); + for (table_row = 0; table_row < 9; table_row++) { + if (gControllerPakScrollDirection == 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); + } +} + +void func_800A0AD0(UNUSED MenuItem* arg0) { + MenuItem* temp_t1; + // 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 = - func_8009BA74(gDisplayListHead, D_02001874, 0x24, (gControllerPakSelectedTableRow * 0xA) + 0x7C); + render_menu_textures(gDisplayListHead, D_02001874, 0x24, (gControllerPakSelectedTableRow * 0xA) + 0x7C); } } -void func_800A0B80(struct_8018D9E0_entry* arg0) { +void func_800A0B80(MenuItem* arg0) { UNUSED s32 temp_a2; s32 temp_s1; s32 temp_s2; @@ -6565,12 +6567,12 @@ void func_800A0B80(struct_8018D9E0_entry* arg0) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x32, 0xFF); for (var_s5 = 0; var_s5 < 9; var_s5++) { - if (D_800E86C4[var_s5] == 0) { + if (gControllerPakVisibleTableRows[var_s5] == 0) { continue; } temp_s1 = var_s5 * 0xA; - var_s0 = D_800E86C4[var_s5]; + var_s0 = gControllerPakVisibleTableRows[var_s5]; if (var_s0 < 0xA) { func_800A08D8(var_s0 + 0x10, 0x00000032, arg0->row + temp_s1 + 1); } else { @@ -6579,8 +6581,8 @@ void func_800A0B80(struct_8018D9E0_entry* arg0) { func_800A08D8(0x11U, 0x0000002F, arg0->row + temp_s1 + 1); } temp_s2 = arg0->row + temp_s1 + 1; - if (pfsError[D_800E86C4[var_s5] - 1] == 0) { - temp_s4 = &pfsState[D_800E86C4[var_s5] - 1]; + if (pfsError[gControllerPakVisibleTableRows[var_s5] - 1] == 0) { + temp_s4 = &pfsState[gControllerPakVisibleTableRows[var_s5] - 1]; var_s0 = func_800A095C(temp_s4->game_name, 0x00000010, 0x0000004F, temp_s2); if (temp_s4->ext_name[0] != 0) { func_800A08D8(0x3CU, (var_s0 * 8) + 0x4F, temp_s2); @@ -6610,18 +6612,18 @@ void func_800A0DFC(void) { temp_t6 = var_s0 % 10; var_s0 /= 10; gDisplayListHead = - func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D0C[temp_t6]), var_s1, 0x000000B8); + render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D0C[temp_t6]), var_s1, 0x000000B8); var_s1 -= 9; } while (var_s0 != 0); } -void func_800A0EB8(UNUSED struct_8018D9E0_entry* arg0, s32 arg1) { +void func_800A0EB8(UNUSED MenuItem* arg0, s32 arg1) { s32 var_t1; s32 thing; Unk_D_800E70A0* temp_v0; - struct_8018D9E0_entry* temp_t3; + MenuItem* temp_t3; - temp_t3 = find_8018D9E0_entry_dupe(0x000000DA); + temp_t3 = find_menu_items_dupe(MENU_ITEM_TYPE_0DA); if (arg1 == 0) { if (gControllerPakMenuSelection == CONTROLLER_PAK_MENU_END) { var_t1 = 1; @@ -6637,46 +6639,46 @@ void func_800A0EB8(UNUSED struct_8018D9E0_entry* arg0, s32 arg1) { } } temp_v0 = &D_800E7278[var_t1]; - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, temp_t3->unk20, 0x00, 0xFF); - gDisplayListHead = func_8009BA74(gDisplayListHead, D_0200184C, (s32) temp_v0->column, (s32) temp_v0->row); + 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(struct_8018D9E0_entry* arg0, s32 arg1) { - switch (arg0->cursor) { +void func_800A0FA4(MenuItem* arg0, s32 arg1) { + switch (arg0->state) { case 0: case 2: case 3: - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 0]), + gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 0]), arg0->column, arg0->row); - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 1]), + gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_800E8234[(arg1 * 2) + 1]), arg0->column, arg0->row); break; 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; } } -void func_800A10CC(struct_8018D9E0_entry* arg0) { +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]` - func_80093324(0x00000023, 0x41 + (0xD * var_s1), D_800E7940[(index * 4) + var_s1], 0, 0.65f, 0.65f); + print_text_mode_1(0x00000023, 0x41 + (0xD * var_s1), D_800E7940[(index * 4) + var_s1], 0, 0.65f, 0.65f); } break; default: @@ -6684,34 +6686,34 @@ void func_800A10CC(struct_8018D9E0_entry* arg0) { } } -void func_800A11D0(struct_8018D9E0_entry* arg0, s32 arg1, s32 arg2) { +void render_cursor_player(MenuItem* arg0, s32 arg1, s32 arg2) { RGBA16* temp_v1; temp_v1 = &D_800E74A8[arg1]; gDPSetPrimColor(gDisplayListHead++, 0, 0, temp_v1->red, temp_v1->green, temp_v1->blue, temp_v1->alpha); gDPSetEnvColor(gDisplayListHead++, arg2, arg2, arg2, 0x00); gDisplayListHead = - func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82B4[arg1]), arg0->column, arg0->row); + render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesBorderPlayer[arg1]), arg0->column, arg0->row); } -void func_800A12BC(struct_8018D9E0_entry* arg0, MkTexture* arg1) { - switch (arg0->cursor) { +void func_800A12BC(MenuItem* arg0, MenuTexture* arg1) { + switch (arg0->state) { case 0: case 2: case 4: - gDisplayListHead = func_8009BA74(gDisplayListHead, arg1, arg0->column, arg0->row); + gDisplayListHead = render_menu_textures(gDisplayListHead, arg1, arg0->column, arg0->row); 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; } } -void func_800A1350(struct_8018D9E0_entry* arg0) { +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: @@ -6720,7 +6722,7 @@ void func_800A1350(struct_8018D9E0_entry* 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; @@ -6728,35 +6730,35 @@ void func_800A1350(struct_8018D9E0_entry* arg0) { } } -void func_800A143C(struct_8018D9E0_entry* arg0, s32 arg1) { - switch (arg0->cursor) { +void func_800A143C(MenuItem* arg0, s32 arg1) { + switch (arg0->state) { case 0: case 2: case 3: - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C4[arg1 + 1]), + gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg1 + 1]), arg0->column, arg0->row); break; case 1: case 4: - gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C4[arg1 + 1]), - arg0->column, arg0->row, 2, arg0->unk1C); + gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(gMenuTexturesTrackSelection[arg1 + 1]), + arg0->column, arg0->row, 2, arg0->param1); break; } } -void func_800A1500(struct_8018D9E0_entry* arg0) { - struct_8018D9E0_entry* temp_v0; +void func_800A1500(MenuItem* arg0) { + MenuItem* temp_v0; Unk_D_800E70A0* temp_v0_2; s32 var_a1; var_a1 = 0; - temp_v0 = find_8018D9E0_entry_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; @@ -6775,7 +6777,7 @@ void func_800A1500(struct_8018D9E0_entry* arg0) { } } -void func_800A15EC(struct_8018D9E0_entry* arg0) { +void func_800A15EC(MenuItem* arg0) { s16 courseId = gCupCourseOrder[(arg0->type - 0x7C) / 4][(arg0->type - 0x7C) % 4]; gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D74[courseId]), arg0->column, arg0->row, 2); @@ -6792,7 +6794,7 @@ void func_800A15EC(struct_8018D9E0_entry* arg0) { } } -void func_800A1780(struct_8018D9E0_entry* arg0) { +void func_800A1780(MenuItem* arg0) { RGBA16* temp_a1; RGBA16* temp_v1; s32 temp_a2; @@ -6801,23 +6803,25 @@ void func_800A1780(struct_8018D9E0_entry* 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 = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_02001FA4), arg0->column, arg0->row); + gDisplayListHead = render_menu_textures(gDisplayListHead, segmented_to_virtual_dupe(D_02001FA4), arg0->column, arg0->row); } -void func_800A1924(struct_8018D9E0_entry* 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 = func_8009BA74(gDisplayListHead, D_02004A0C, 0x57, 0x84); + 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 { @@ -6825,38 +6829,43 @@ void func_800A1924(struct_8018D9E0_entry* arg0) { } while (0); } -void func_800A1A20(struct_8018D9E0_entry* 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); - draw_text(0x69, arg0->row + 0x19, CourseManager_GetProps()->Name, 0, 0.75f, 0.75f); + print_text1_center_mode_1(0x69, arg0->row + 0x19, CourseManager_GetProps()->Name, 0, 0.75f, 0.75f); + + // distance set_text_color(TEXT_RED); - func_80093324(0x2D, arg0->row + 0x28, (char*) &D_800E77D8, 0, 0.75f, 0.75f); - func_800936B8(0xA5, arg0->row + 0x28, CourseManager_GetProps()->CourseLength, 1, 0.75f, 0.75f); + 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); - func_80093324(0xA0, arg0->row + 0x86, D_800E7728[0], 0, 0.75f, 0.75f); + print_text_mode_1(0xA0, arg0->row + 0x86, gBestTimeText[0], 0, 0.75f, 0.75f); // Print the 3 Lap Time Trial records for (recordType = TIME_TRIAL_3LAP_RECORD_1, rowOffset = 0; recordType < TIME_TRIAL_1LAP_RECORD; recordType++, rowOffset += 0xD) { set_text_color(TEXT_RED); - func_800A474C(recordType, 0x96, arg0->row + rowOffset + 0x92); + render_lap_times(recordType, 0x96, arg0->row + rowOffset + 0x92); } set_text_color(TEXT_YELLOW); - func_80093324(0xA0, arg0->row + 0xD5, D_800E7728[1], 0, 0.75f, 0.75f); - func_800A474C(TIME_TRIAL_1LAP_RECORD, 0x96, arg0->row + 0xE1); + print_text_mode_1(0xA0, arg0->row + 0xD5, gBestTimeText[1], 0, 0.75f, 0.75f); + render_lap_times(TIME_TRIAL_1LAP_RECORD, 0x96, arg0->row + 0xE1); } -void func_800A1BE0(struct_8018D9E0_entry* 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; @@ -6864,20 +6873,20 @@ void func_800A1BE0(struct_8018D9E0_entry* arg0) { temp_s6 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4] .courseRecords[gTimeTrialDataCourseIndex % 4]; - for (var_s0 = 0; var_s0 < 3; var_s0++) { - wut = D_800E7834[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; } @@ -6885,12 +6894,12 @@ void func_800A1BE0(struct_8018D9E0_entry* arg0) { } } if (var_s1 != 0) { - set_text_color(0); + set_text_color(TEXT_BLUE); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0x96); - func_80093358(0x00000025, 0x3F + (0xD * var_s0), D_800E7834[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); - func_80093324(0x00000025, 0x3F + (0xD * var_s0), D_800E7834[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; @@ -6898,7 +6907,7 @@ void func_800A1BE0(struct_8018D9E0_entry* arg0) { func_800A66A8(arg0, (Unk_D_800E70A0*) &sp78); } -void func_800A1DE0(struct_8018D9E0_entry* arg0) { +void func_800A1DE0(MenuItem* arg0) { UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; UNUSED s32 stackPadding2; @@ -6909,154 +6918,144 @@ void func_800A1DE0(struct_8018D9E0_entry* 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 `D_800E7848[gCourseRecordsMenuSelection - 1][var_s1]` - wut = D_800E7848[(gCourseRecordsMenuSelection - 1) * 3 + var_s1]; - func_80093324(0x0000001B, 0x3C + (0xD * var_s1), D_800E7848[(gCourseRecordsMenuSelection - 1) * 3 + var_s1], 0, + // Also, in a perfect world this would be `gEraseBestGhostText[gCourseRecordsMenuSelection - 1][var_s1]` + wut = gEraseBestGhostText[(gCourseRecordsMenuSelection - 1) * 3 + var_s1]; + print_text_mode_1(0x0000001B, 0x3C + (0xD * var_s1), gEraseBestGhostText[(gCourseRecordsMenuSelection - 1) * 3 + var_s1], 0, 0.65f, 0.65f); } for (var_s1 = 0; var_s1 < 2; var_s1++) { wut = D_800E7840[var_s1]; - if (var_s1 == D_8018EDF9) { + if (var_s1 == gCourseRecordsSubMenuSelection) { var_a0 = 5; } else { var_a0 = 1; } set_text_color(var_a0); - func_80093324(0x00000043, 0x6E + (0xD * var_s1), D_800E7840[var_s1], 0, 0.65f, 0.65f); + print_text_mode_1(0x00000043, 0x6E + (0xD * var_s1), D_800E7840[var_s1], 0, 0.65f, 0.65f); } sp58.column = 0x003B; - sp58.row = (D_8018EDF9 * 0xD) + 0x66; + sp58.row = (gCourseRecordsSubMenuSelection * 0xD) + 0x66; func_800A66A8(arg0, &sp58); } -void func_800A1F30(UNUSED struct_8018D9E0_entry* unused) { +void func_800A1F30(UNUSED MenuItem* unused) { s32 row; s32 text; set_text_color(TEXT_RED); for (row = 0x49, text = 0; row < 0x69; row += 0x10, text++) { - func_80093324(0x2A, row, D_800E7860[text], 0, 0.75f, 0.75f); + print_text_mode_1(0x2A, row, D_800E7860[text], 0, 0.75f, 0.75f); } } #ifdef NON_MATCHING // Register allocation stuff, minor stack diffs -void func_800A1FB0(struct_8018D9E0_entry* arg0) { +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); - func_80093324(0x00000032, 0x55 + (0x23 * stackPadding0), D_800E7868[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); - draw_text(0x000000E6, 0x00000078, gSoundModeNames[gSoundMode], 0, 1.0f, 1.0f); + 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++) { - func_80093324(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 < ARRAY_COUNT(D_800E7878); 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); - func_80093324(0x00000084, 0x96 + (0x19 * stackPadding0), D_800E7840[stackPadding0], 0, 1.0f, 1.0f); - if (stackPadding0 == (D_8018EDEC - 0x1E)) { + for (i = 0; i < ARRAY_COUNT(D_800E7840); 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++) { - func_80093324(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 < ARRAY_COUNT(D_800E7884); 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++) { - func_80093324(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 < ARRAY_COUNT(D_800E78D0) / 4; 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++) { - func_80093324(0x00000023, 0x55 + (0x14 * stackPadding0), D_800E7890[(var_s1 * 4) + stackPadding0], 0, + case SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P: + case SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P: + case SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P: + case SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P: + set_text_color(TEXT_RED); + var_s1 = gSubMenuSelection - SUB_MENU_COPY_PAK_ERROR_1P_MIN; + for (i = 0; i < ARRAY_COUNT(D_800E7890) / 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 */ - set_text_color(2); - var_s1 = D_8018EDEC - 0x41; - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - func_80093324(0x00000041, 0x55 + (0x14 * stackPadding0), D_800E7900[(var_s1 * 3) + stackPadding0], 0, + case SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P: + case SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P: + set_text_color(TEXT_RED); + var_s1 = gSubMenuSelection - SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN; + for (i = 0; i < ARRAY_COUNT(D_800E7900) / 2; 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 */ - set_text_color(3); - for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) { - func_80093324(0x00000050, 0x55 + (0x14 * stackPadding0), D_800E7A48[stackPadding0], 0, 1.0f, 1.0f); + case SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT: + case SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE: + set_text_color(TEXT_YELLOW); + for (i = 0; i < ARRAY_COUNT(D_800E7A48); 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: - var_s5 = 0x28; + case SUB_MENU_COPY_PAK_FROM_GHOST1_1P: + case SUB_MENU_COPY_PAK_FROM_GHOST2_1P: + case SUB_MENU_COPY_PAK_TO_GHOST1_2P: + case SUB_MENU_COPY_PAK_TO_GHOST2_2P: + switch (gSubMenuSelection) { + case SUB_MENU_COPY_PAK_FROM_GHOST1_1P: + case SUB_MENU_COPY_PAK_FROM_GHOST2_1P: + var_s5 = SUB_MENU_COPY_PAK_FROM_GHOST_MIN; var_s4 = 0; break; - case 0x32: - case 0x33: - var_s5 = 0x32; + case SUB_MENU_COPY_PAK_TO_GHOST1_2P: + case SUB_MENU_COPY_PAK_TO_GHOST2_2P: + var_s5 = SUB_MENU_COPY_PAK_TO_GHOST_MIN; var_s4 = 1; default: // var_s5 = spC4; @@ -7064,33 +7063,33 @@ void func_800A1FB0(struct_8018D9E0_entry* arg0) { break; } set_text_color(var_s4 + 1); - draw_text(0x000000A0, 0x00000055, D_800E7920[var_s4], 0, 0.6f, 0.6f); - for (var_s1 = 0; var_s1 < 2; var_s1++) { - set_text_color(3); - draw_text(0x5C + (0x82 * var_s1), 0x0000007D, D_800E7918[var_s1], 0, 0.75f, 0.75f); + print_text1_center_mode_1(0x000000A0, 0x00000055, D_800E7920[var_s4], 0, 0.6f, 0.6f); + for (var_s1 = 0; var_s1 < ARRAY_COUNT(D_800E7918); var_s1++) { + set_text_color(TEXT_YELLOW); + 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); } - } else if ((var_s4 != 0) && (var_s2 == arg0->unk20)) { + } else if ((var_s4 != 0) && (var_s2 == arg0->param2)) { set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(1); + set_text_color(TEXT_GREEN); } convert_number_to_ascii(var_s2 + 1, &spB8[0]); - func_80093324(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &spB8[1], 0, 0.6f, 0.6f); + print_text_mode_1(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &spB8[1], 0, 0.6f, 0.6f); if (var_s1 == 0) { var_v1 = &D_8018EE10[var_s2]; } else { - var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2]; + var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2]; } if (var_v1->ghostDataSaved == 0) { - func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); + print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); } else { - func_80093324( + print_text_mode_1( 0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), CourseManager_GetProps()->Name, 0, 0.5f, 0.5f); @@ -7098,38 +7097,38 @@ void func_800A1FB0(struct_8018D9E0_entry* arg0) { } } break; - case 0x38: /* switch 1 */ - case 0x39: /* switch 1 */ - set_text_color(2); - for (var_s1 = 0; var_s1 < 2; var_s1++) { - draw_text(0x000000A0, 0x4D + (0x14 * var_s1), D_800E7928[var_s1], 0, 0.8f, 0.8f); + case SUB_MENU_COPY_PAK_PROMPT_QUIT: + case SUB_MENU_COPY_PAK_PROMPT_COPY: + set_text_color(TEXT_RED); + for (var_s1 = 0; var_s1 < ARRAY_COUNT(D_800E7928); var_s1++) { + print_text1_center_mode_1(0x000000A0, 0x4D + (0x14 * var_s1), D_800E7928[var_s1], 0, 0.8f, 0.8f); } - for (var_s1 = 0; var_s1 < 2; var_s1++) { - set_text_color(3); - draw_text(0x5C + (0x82 * var_s1), 0x0000007D, D_800E7918[var_s1], 0, 0.75f, 0.75f); + for (var_s1 = 0; var_s1 < ARRAY_COUNT(D_800E7918); var_s1++) { + set_text_color(TEXT_YELLOW); + 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 == 0) { - if (var_s2 == arg0->unk1C) { + if (var_s2 == arg0->param1) { set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(1); + set_text_color(TEXT_GREEN); } - } else if (var_s2 == arg0->unk20) { + } else if (var_s2 == arg0->param2) { set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(1); + set_text_color(TEXT_GREEN); } convert_number_to_ascii(var_s2 + 1, &spA8[0]); - func_80093324(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &spA8[1], 0, 0.6f, 0.6f); + print_text_mode_1(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &spA8[1], 0, 0.6f, 0.6f); if (var_s1 == 0) { var_v1 = &D_8018EE10[var_s2]; } else { - var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2]; + var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2]; } if (var_v1->ghostDataSaved == 0) { - func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); + print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); } else { - func_80093324( + print_text_mode_1( 0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), CourseManager_GetProps()->Name, 0, 0.5f, 0.5f); @@ -7137,51 +7136,51 @@ void func_800A1FB0(struct_8018D9E0_entry* arg0) { } } // Register allocation diffs here - for (var_s2 = 0; var_s2 < 2; var_s2++) { - if (var_s2 == (D_8018EDEC - 0x38)) { + for (var_s2 = 0; var_s2 < ARRAY_COUNT(D_800E7930); var_s2++) { + if (var_s2 == (gSubMenuSelection - SUB_MENU_COPY_PAK_PROMPT_MIN)) { spE0.column = 0x6E + (0x32 * var_s2); spE0.row = 0x00D2; } - text_rainbow_effect((D_8018EDEC - 0x38), var_s2, TEXT_YELLOW); - func_80093324(0x6E + (0x32 * var_s2), 0x000000D2, D_800E7930[var_s2], 0, 0.75f, 0.75f); + text_rainbow_effect((gSubMenuSelection - SUB_MENU_COPY_PAK_PROMPT_MIN), 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; - set_text_color(2); - draw_text(0x000000A0, 0x00000055, D_800E7938[var_s5], 0, 1.0f, 1.0f); - for (var_s1 = 0; var_s1 < 2; var_s1++) { - set_text_color(3); - draw_text(0x5C + (0x82 * var_s1), 0x0000007D, D_800E7918[var_s1], 0, 0.75f, 0.75f); + case SUB_MENU_COPY_PAK_START: + case SUB_MENU_COPY_PAK_COPYING: + case SUB_MENU_COPY_PAK_COMPLETED: + var_s5 = (gSubMenuSelection - SUB_MENU_COPY_PAK_ACTION_MIN) / 2; + set_text_color(TEXT_RED); + print_text1_center_mode_1(0x000000A0, 0x00000055, D_800E7938[var_s5], 0, 1.0f, 1.0f); + for (var_s1 = 0; var_s1 < ARRAY_COUNT(D_800E7918); var_s1++) { + set_text_color(TEXT_YELLOW); + 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 == 0) { - if (var_s2 == arg0->unk1C) { + if (var_s2 == arg0->param1) { if (var_s5 == 0) { - set_text_color(2); + set_text_color(TEXT_RED); } else { set_text_color(gGlobalTimer % 3); } } else { - set_text_color(1); + set_text_color(TEXT_GREEN); } - } else if (var_s2 == arg0->unk20) { - set_text_color(2); + } else if (var_s2 == arg0->param2) { + set_text_color(TEXT_RED); } else { - set_text_color(1); + set_text_color(TEXT_GREEN); } convert_number_to_ascii(var_s2 + 1, &sp98[0]); - func_80093324(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &sp98[1], 0, 0.6f, 0.6f); + print_text_mode_1(0x20 + (0x89 * var_s1), 0x96 + (0x1E * var_s2), &sp98[1], 0, 0.6f, 0.6f); if (var_s1 == 0) { var_v1 = &D_8018EE10[var_s2]; } else { - var_v1 = &((struct_8018EE10_entry*) D_8018D9C0)[var_s2]; + var_v1 = &((struct_8018EE10_entry*) gSomeDLBuffer)[var_s2]; } if (var_v1->ghostDataSaved == 0) { - func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); + print_text_mode_1(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f); } else { - func_80093324( + print_text_mode_1( 0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), CourseManager_GetProps()->Name, 0, 0.5f, 0.5f); @@ -7190,17 +7189,17 @@ void func_800A1FB0(struct_8018D9E0_entry* arg0) { } break; } - switch (D_8018EDEC) { /* switch 2 */ - case 0x28: /* switch 2 */ - case 0x29: /* switch 2 */ - case 0x32: /* switch 2 */ - case 0x33: /* switch 2 */ - case 0x38: /* switch 2 */ - case 0x39: /* switch 2 */ + switch (gSubMenuSelection) { + case SUB_MENU_COPY_PAK_FROM_GHOST1_1P: + case SUB_MENU_COPY_PAK_FROM_GHOST2_1P: + case SUB_MENU_COPY_PAK_TO_GHOST1_2P: + case SUB_MENU_COPY_PAK_TO_GHOST2_2P: + case SUB_MENU_COPY_PAK_PROMPT_QUIT: + case SUB_MENU_COPY_PAK_PROMPT_COPY: spE0.column -= 5; spE0.row -= 6; break; - default: /* switch 2 */ + default: spE0.column -= 0xA; spE0.row -= 8; break; @@ -7208,33 +7207,33 @@ void func_800A1FB0(struct_8018D9E0_entry* arg0) { func_800A66A8(arg0, (Unk_D_800E70A0*) &spE0); } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1FB0.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_800A1FB0.s") #endif -void func_800A2D1C(struct_8018D9E0_entry* arg0) { +void func_800A2D1C(MenuItem* arg0) { switch (D_80164A28) { case 1: gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0, 0x13F, 0x28); gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0xC7, 0x13F, 0xEF); - arg0->unk1C = 0x28; + arg0->param1 = 0x28; break; case 2: - arg0->unk1C -= 2; - if (arg0->unk1C > 0) { - gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0, 0x13F, arg0->unk1C); - gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0xEF - arg0->unk1C, 0x13F, 0xEF); + arg0->param1 -= 2; + if (arg0->param1 > 0) { + gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0, 0x13F, arg0->param1); + gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0xEF - arg0->param1, 0x13F, 0xEF); } else { arg0->type = 0; } break; default: - if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != 1) || (D_8018EE08 != 0)) { + if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != 1) || (gDemoUseController != 0)) { arg0->type = 0; } else { - arg0->unk1C -= 2; - if (arg0->unk1C > 0) { - gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0, 0x13F, arg0->unk1C); - gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0xEF - arg0->unk1C, 0x13F, 0xEF); + arg0->param1 -= 2; + if (arg0->param1 > 0) { + gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0, 0x13F, arg0->param1); + gDisplayListHead = func_80098FC8_wide(gDisplayListHead, 0, 0xEF - arg0->param1, 0x13F, 0xEF); } else { arg0->type = 0; } @@ -7243,7 +7242,7 @@ void func_800A2D1C(struct_8018D9E0_entry* arg0) { } } -void func_800A2EB8(struct_8018D9E0_entry* arg0) { +void func_800A2EB8(MenuItem* arg0) { s8 sp70[8]; UNUSED s32 stackPadding0; char sp68[3]; @@ -7255,11 +7254,11 @@ void func_800A2EB8(struct_8018D9E0_entry* arg0) { sp70[var_s2] = gPlayers[gGPCurrentRacePlayerIdByRank[var_s2]].characterId; } set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); - func_80093324(arg0->column + 0x1E, arg0->row + 0x19, "results", 0, 1.0f, 1.0f); + print_text_mode_1(arg0->column + 0x1E, arg0->row + 0x19, "results", 0, 1.0f, 1.0f); set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); - func_80093324(arg0->column + 0x2C, arg0->row + 0x28, "round", 0, 0.7f, 0.7f); + print_text_mode_1(arg0->column + 0x2C, arg0->row + 0x28, "round", 0, 0.7f, 0.7f); convert_number_to_ascii(GetCupCursorPosition() + 1, sp68); - func_80093324(arg0->column + 0x57, arg0->row + 0x28, &sp68[1], 0, 0.7f, 0.7f); + print_text_mode_1(arg0->column + 0x57, arg0->row + 0x28, &sp68[1], 0, 0.7f, 0.7f); for (var_s2 = 0; var_s2 < 4; var_s2++) { if (gGPCurrentRacePlayerIdByRank[var_s2] < gPlayerCount) { var_a0 = (s32) gGlobalTimer % 3; @@ -7281,10 +7280,10 @@ void func_800A2EB8(struct_8018D9E0_entry* arg0) { set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); temp_s0 = (s32) (((f32) (get_string_width(GetCupName()) + 8) * 0.6f) / 2); // gCupNames[GetCupIndex()]) + 8) * 0.6f) / 2); - draw_text((-(s32) (((f32) (get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xF5, + print_text1_center_mode_1((-(s32) (((f32) (get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xF5, arg0->row + 0xE1, gCupNames[D_800DC540], 0, 0.6f, 0.6f); - draw_text((temp_s0 - arg0->column) + 0xF5, arg0->row + 0xE1, - D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); + print_text1_center_mode_1((temp_s0 - arg0->column) + 0xF5, arg0->row + 0xE1, + D_800E76CC[gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } void func_800A32B4(s32 arg0, s32 arg1, s32 characterId, s32 rank) { @@ -7301,18 +7300,18 @@ void func_800A32B4(s32 arg0, s32 arg1, s32 characterId, s32 rank) { sp3C[2] = '.'; sp3C[3] = '\0'; func_800939C8(arg0 - 1, arg1, &sp3C[1], -4, 0.7f, 0.7f); - func_80093324(arg0 + 0xA, arg1, D_800E76A8[characterId], 0, 0.65f, 0.7f); + print_text_mode_1(arg0 + 0xA, arg1, D_800E76A8[characterId], 0, 0.65f, 0.7f); convert_number_to_ascii((s32) (sp50 / 60.0f), sp3C); func_800939C8(arg0 + 0x42, arg1, sp3C, 0, 0.7f, 0.7f); convert_number_to_ascii((s32) sp50 % 60, sp3C); - func_80093324(arg0 + 0x4E, arg1, "'", 0, 0.7f, 0.7f); + print_text_mode_1(arg0 + 0x4E, arg1, "'", 0, 0.7f, 0.7f); func_800939C8(arg0 + 0x56, arg1, sp3C, 0, 0.7f, 0.7f); convert_number_to_ascii((s32) ((f64) sp50 * 100.0) % 100, sp3C); - func_80093324(arg0 + 0x62, arg1, "\"", 0, 0.7f, 0.7f); + print_text_mode_1(arg0 + 0x62, arg1, "\"", 0, 0.7f, 0.7f); func_800939C8(arg0 + 0x6A, arg1, sp3C, 0, 0.7f, 0.7f); } -void func_800A34A8(struct_8018D9E0_entry* arg0) { +void func_800A34A8(MenuItem* arg0) { s8 sp80[8]; UNUSED s32 stackPadding0; char sp78[3]; @@ -7325,34 +7324,34 @@ void func_800A34A8(struct_8018D9E0_entry* arg0) { s32 rank; s32 test; - if (arg0->cursor != 0) { - if (arg0->cursor < 9) { - for (rank = 0; rank < 8; rank++) { + if (arg0->state != 0) { + if (arg0->state < 9) { + for (rank = 0; rank < NUM_PLAYERS; rank++) { sp80[rank] = gPlayers[gGPCurrentRacePlayerIdByRank[rank]].characterId; } } else { func_800A3A10(sp80); func_800A3A10(gCharacterIdByGPOverallRank); } - set_text_color(4); - func_80093324(arg0->column + 0x19, 0x19 - arg0->row, "driver's points", 0, 0.8f, 0.8f); - set_text_color(5); - func_80093324(arg0->column + 0x36, 0x28 - arg0->row, "round", 0, 0.7f, 0.7f); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); + print_text_mode_1(arg0->column + 0x19, 0x19 - arg0->row, "driver's points", 0, 0.8f, 0.8f); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + print_text_mode_1(arg0->column + 0x36, 0x28 - arg0->row, "round", 0, 0.7f, 0.7f); convert_number_to_ascii(GetCupCursorPosition() + 1, sp78); - func_80093324(arg0->column + 0x61, (0x28 & 0xFFFFFFFF) - arg0->row, &sp78[1], 0, 0.7f, 0.7f); + print_text_mode_1(arg0->column + 0x61, (0x28 & 0xFFFFFFFF) - arg0->row, &sp78[1], 0, 0.7f, 0.7f); for (rank = 0; rank < 4; rank++) { - test = arg0->cursor; + test = arg0->state; if ((test != 8) && (test != 9)) { var_v0 = 0; } else { - if ((rank * 5) < arg0->unk1C) { + if ((rank * 5) < arg0->param1) { var_v0 = 1; } else { var_v0 = 0; } } if (var_v0 == 0) { - if (arg0->cursor < 9) { + if (arg0->state < 9) { var_v0 = gGPCurrentRacePlayerIdByRank[rank]; var_v1 = 0; } else { @@ -7370,18 +7369,18 @@ void func_800A34A8(struct_8018D9E0_entry* arg0) { } } for (rank = 4; rank < NUM_PLAYERS; rank++) { - test = arg0->cursor; + test = arg0->state; if ((test != 8) && (test != 9)) { var_v0 = 0; } else { - if ((rank * 5) < arg0->unk1C) { + if ((rank * 5) < arg0->param1) { var_v0 = 1; } else { var_v0 = 0; } } if (var_v0 == 0) { - if (arg0->cursor < 9) { + if (arg0->state < 9) { var_v0 = gGPCurrentRacePlayerIdByRank[rank]; } else { var_v0 = D_80164478[sp80[rank]]; @@ -7395,12 +7394,12 @@ void func_800A34A8(struct_8018D9E0_entry* arg0) { func_800A3ADC(arg0, 0xBE - arg0->column, arg0->row + (rank * 0x10) + 0x5A, sp80[rank], rank, sp80); } } - set_text_color(5); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); temp_s0_3 = ((get_string_width(gCupNames[GetCupIndex()]) + 8) * 0.6f) / 2; - draw_text((-(s32) (((get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xE6, + print_text1_center_mode_1((-(s32) (((get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xE6, arg0->row + 0xE1, gCupNames[D_800DC540], 0, 0.6f, 0.6f); - draw_text((temp_s0_3 - arg0->column) + 0xE6, arg0->row + 0xE1, - D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); + print_text1_center_mode_1((temp_s0_3 - arg0->column) + 0xE6, arg0->row + 0xE1, + D_800E76CC[gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } } @@ -7436,13 +7435,13 @@ void func_800A3A10(s8* arg0) { } } -void func_800A3ADC(struct_8018D9E0_entry* arg0, s32 arg1, s32 arg2, s32 characterId, s32 arg4, s8* arg5) { +void func_800A3ADC(MenuItem* arg0, s32 arg1, s32 arg2, s32 characterId, s32 arg4, s8* arg5) { UNUSED s32 stackPadding0; s32 wut; char sp34[4]; s32 phi_v1; - if (arg0->cursor < 9) { + if (arg0->state < 9) { convert_number_to_ascii(arg4 + 1, sp34); } else { for (phi_v1 = arg4; phi_v1 > 0; phi_v1--) { @@ -7456,39 +7455,39 @@ void func_800A3ADC(struct_8018D9E0_entry* arg0, s32 arg1, s32 arg2, s32 characte sp34[2] = '.'; sp34[3] = '\0'; func_800939C8(arg1, arg2, &sp34[1], -4, 0.7f, 0.7f); - func_80093324(arg1 + 0xA, arg2, D_800E76A8[characterId], 0, 0.7f, 0.7f); + print_text_mode_1(arg1 + 0xA, arg2, D_800E76A8[characterId], 0, 0.7f, 0.7f); convert_number_to_ascii(gGPPointsByCharacterId[characterId], sp34); func_800939C8(arg1 + 0x47, arg2, sp34, 0, 0.7f, 0.7f); - if ((arg4 < 4) && (arg0->cursor < 9)) { - convert_number_to_ascii(D_8018D9BC[arg4], sp34); + if ((arg4 < ARRAY_COUNT(gGPPointRewards)) && (arg0->state < 9)) { + convert_number_to_ascii(sGPPointsCopy[arg4], sp34); sp34[0] = '+'; - func_80093324(arg1 + 0x5A, arg2, sp34, 0, 0.7f, 0.7f); + print_text_mode_1(arg1 + 0x5A, arg2, sp34, 0, 0.7f, 0.7f); } } -void func_800A3C84(struct_8018D9E0_entry* arg0) { +void time_trials_finish_text_render(MenuItem* arg0) { s32 recordType; s32 rowOffset; set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); - draw_text(arg0->column + 0x43, arg0->row + 0x19, CourseManager_GetProps()->Name, 0, 0.6f, 0.6f); + print_text1_center_mode_1(arg0->column + 0x43, arg0->row + 0x19, CourseManager_GetProps()->Name, 0, 0.6f, 0.6f); set_text_color(TEXT_YELLOW); - draw_text(arg0->column + 0x46, arg0->row + 0x28, D_800E7730, 0, 0.75f, 0.75f); + print_text1_center_mode_1(arg0->column + 0x46, arg0->row + 0x28, gLapTimeText, 0, 0.75f, 0.75f); for (recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_3LAP_RECORD_5; recordType += 1, rowOffset += 0xF) { - func_800A4550(recordType, arg0->column + 0x17, arg0->row + rowOffset + 0x37); + render_lap_time(recordType, arg0->column + 0x17, arg0->row + rowOffset + 0x37); } set_text_color(TEXT_YELLOW); - func_80093324(0xB4 - arg0->column, arg0->row + 0x86, D_800E7728[0], 0, 0.75f, 0.75f); + print_text_mode_1(0xB4 - arg0->column, arg0->row + 0x86, gBestTimeText[0], 0, 0.75f, 0.75f); for (recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_1LAP_RECORD; recordType += 1, rowOffset += 0xD) { set_text_color(TEXT_RED); - func_800A474C(recordType, 0xAA - arg0->column, arg0->row + rowOffset + 0x92); + render_lap_times(recordType, 0xAA - arg0->column, arg0->row + rowOffset + 0x92); } set_text_color(TEXT_YELLOW); - func_80093324(0xB4 - arg0->column, arg0->row + 0xD5, D_800E7728[1], 0, 0.75f, 0.75f); - func_800A474C(TIME_TRIAL_1LAP_RECORD, 0xAA - arg0->column, arg0->row + 0xE1); + print_text_mode_1(0xB4 - arg0->column, arg0->row + 0xD5, gBestTimeText[1], 0, 0.75f, 0.75f); + render_lap_times(TIME_TRIAL_1LAP_RECORD, 0xAA - arg0->column, arg0->row + 0xE1); } -void func_800A3E60(struct_8018D9E0_entry* arg0) { +void func_800A3E60(MenuItem* arg0) { UNUSED s32 stackPadding0; Unk_D_800E70A0 sp84; UNUSED s32 stackPadding1; @@ -7501,7 +7500,7 @@ void func_800A3E60(struct_8018D9E0_entry* arg0) { Unk_D_800E70A0* var_v0_5; char sp60[3]; - var_v0 = arg0->cursor; + var_v0 = arg0->state; if (var_v0 == 0) { return; } @@ -7509,26 +7508,26 @@ void func_800A3E60(struct_8018D9E0_entry* arg0) { return; } - set_text_color(4); - draw_text(arg0->column + 0x55, 0x19 - arg0->row, + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); + print_text1_center_mode_1(arg0->column + 0x55, 0x19 - arg0->row, CourseManager_GetProps()->Name, 0, 0.6f, 0.6f); - set_text_color(3); - draw_text(arg0->column + 0x55, 0x28 - arg0->row, D_800E7730, 0, 0.75f, 0.75f); + set_text_color(TEXT_YELLOW); + print_text1_center_mode_1(arg0->column + 0x55, 0x28 - arg0->row, gLapTimeText, 0, 0.75f, 0.75f); for (var_s1 = 0; var_s1 < 4; var_s1++) { - func_800A4550(var_s1, arg0->column + 0x26, ((0xF * var_s1) - arg0->row) + 0x37); + render_lap_time(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->state) { + 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); + text_rainbow_effect(arg0->state - 5, var_s1, 1); switch (var_s1) { /* switch 3; irregular */ case 4: /* switch 3 */ if (D_80162DF8 == 1) { @@ -7542,97 +7541,97 @@ void func_800A3E60(struct_8018D9E0_entry* arg0) { break; } if (var_v1 != 0) { - set_text_color(0); + set_text_color(TEXT_BLUE); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0x96); - func_80093358(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, gTextPauseButton[var_s1 + 1], + print_text_mode_2(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, gTextPauseButton[var_s1 + 1], 0, 0.75f, 0.75f); } else { - func_80093324(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, gTextPauseButton[var_s1 + 1], + print_text_mode_1(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, gTextPauseButton[var_s1 + 1], 0, 0.75f, 0.75f); } } 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 */ - set_text_color(3); - var_v1 = arg0->cursor - 11; + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + set_text_color(TEXT_YELLOW); + var_v1 = arg0->state - 11; for (var_s1 = 0; var_s1 < 7; var_s1++) { - func_80093324(0x000000A2, 0x8C + (0xD * var_s1), D_800E798C[(var_v1 * 7) + var_s1], 0, 0.6f, 0.6f); + print_text_mode_1(0x000000A2, 0x8C + (0xD * var_s1), D_800E798C[(var_v1 * 7) + var_s1], 0, 0.6f, 0.6f); } break; - case 17: /* switch 1 */ - case 18: /* switch 1 */ - set_text_color(1); + case 17: + case 18: + set_text_color(TEXT_GREEN); for (var_s1 = 0; var_s1 < 2; var_s1++) { - func_80093324(0x000000A5, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A3C[var_s1], 0, 0.7f, 0.7f); + print_text_mode_1(0x000000A5, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A3C[var_s1], 0, 0.7f, 0.7f); } for (var_s1 = 0; var_s1 < 2; var_s1++) { - text_rainbow_effect(arg0->cursor - 0x11, var_s1, 1); + text_rainbow_effect(arg0->state - 0x11, var_s1, 1); convert_number_to_ascii(var_s1 + 1, sp60); - func_80093324(0xB1 - arg0->column, 0xAA + (0x1E * var_s1), &sp60[1], 0, 0.6f, 0.6f); + print_text_mode_1(0xB1 - arg0->column, 0xAA + (0x1E * var_s1), &sp60[1], 0, 0.6f, 0.6f); if (D_8018EE10[var_s1].ghostDataSaved == 0) { - func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E7A44, 0, 0.45f, 0.45f); + print_text_mode_1(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E7A44, 0, 0.45f, 0.45f); } else { - func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), + print_text_mode_1(0xBB - arg0->column, 0xAA + (0x1E * var_s1), CourseManager_GetProps()->Name, 0, 0.45f, 0.45f); } } break; - case 19: /* switch 1 */ - set_text_color(3); + case 19: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x000000AA, (0xD * var_s1) + 0x93, D_800E7A48[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x000000AA, (0xD * var_s1) + 0x93, D_800E7A48[var_s1], 0, 0.8f, 0.8f); } break; - case 20: /* switch 1 */ - case 21: /* switch 1 */ + case 20: + case 21: if (var_s1 && var_s1) {} - set_text_color(3); + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x000000A3, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A60[var_s1], 0, 0.67f, 0.67f); + print_text_mode_1(0x000000A3, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A60[var_s1], 0, 0.67f, 0.67f); } for (var_s1 = 0; var_s1 < 2; var_s1++) { - text_rainbow_effect(arg0->cursor - 0x14, var_s1, 1); - func_80093324(0xC8 - arg0->column, 0xB9 + (0xF * var_s1), D_800E7A6C[var_s1], 0, 0.75f, 0.75f); + text_rainbow_effect(arg0->state - 0x14, var_s1, 1); + print_text_mode_1(0xC8 - arg0->column, 0xB9 + (0xF * var_s1), D_800E7A6C[var_s1], 0, 0.75f, 0.75f); } break; - case 25: /* switch 1 */ - set_text_color(3); + case 25: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x000000A3, (0xD * var_s1) + 0x93, D_800E7A74[var_s1], 0, 0.67f, 0.67f); + print_text_mode_1(0x000000A3, (0xD * var_s1) + 0x93, D_800E7A74[var_s1], 0, 0.67f, 0.67f); } break; - case 26: /* switch 1 */ - set_text_color(3); + case 26: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 2; var_s1++) { - func_80093324(0x000000AA, (0xD * var_s1) + 0x93, D_800E7A80[var_s1], 0, 0.75f, 0.75f); + print_text_mode_1(0x000000AA, (0xD * var_s1) + 0x93, D_800E7A80[var_s1], 0, 0.75f, 0.75f); } break; } - switch (arg0->cursor) { /* switch 2 */ + switch (arg0->state) { /* switch 2 */ case 5: /* switch 2 */ case 6: /* switch 2 */ case 7: /* switch 2 */ case 8: /* switch 2 */ case 9: /* switch 2 */ case 10: /* switch 2 */ - var_v0_5 = &D_800E7390[arg0->cursor - 5]; + var_v0_5 = &D_800E7390[arg0->state - 5]; break; case 17: /* switch 2 */ case 18: /* switch 2 */ - var_v0_5 = &D_800E73C0[arg0->cursor - 17]; + var_v0_5 = &D_800E73C0[arg0->state - 17]; break; case 20: /* switch 2 */ case 21: /* switch 2 */ - var_v0_5 = &D_800E73D0[arg0->cursor - 20]; + var_v0_5 = &D_800E73D0[arg0->state - 20]; break; case 30: /* switch 2 */ - var_v0_5 = &D_800E7390[arg0->unk1C - 5]; + var_v0_5 = &D_800E7390[arg0->param1 - 5]; break; default: return; @@ -7642,44 +7641,42 @@ void func_800A3E60(struct_8018D9E0_entry* arg0) { func_800A66A8(arg0, &sp84); } -void func_800A4550(s32 lapNumber, s32 column, s32 row) { - UNUSED s32 stackPadding0; - s32 sp40; - UNUSED s32 stackPadding1; +void render_lap_time(s32 lapNumber, s32 column, s32 row) { + s32 time; s32 textColor; char sp34[3]; - struct_8018D9E0_entry* temp_v0_2; + MenuItem* temp_v0_2; if (lapNumber < 3) { - sp40 = playerHUD[PLAYER_ONE].lapDurations[lapNumber]; - set_text_color(2); + time = playerHUD[PLAYER_ONE].lapDurations[lapNumber]; + set_text_color(TEXT_RED); } else { - sp40 = playerHUD[PLAYER_ONE].someTimer; - set_text_color(1); + time = playerHUD[PLAYER_ONE].someTimer; + set_text_color(TEXT_GREEN); } - func_800936B8(column + 0x21, row, D_800E7734[lapNumber], 0, 0.7f, 0.7f); - temp_v0_2 = find_8018D9E0_entry_dupe(0x000000BB); + print_text1_left(column + 0x21, row, gPrefixTimeText[lapNumber], 0, 0.7f, 0.7f); + temp_v0_2 = find_menu_items_dupe(MENU_ITEM_TYPE_0BB); if (lapNumber < 3) { - if (temp_v0_2->unk20 & (1 << lapNumber)) { + if (temp_v0_2->param2 & (1 << lapNumber)) { // Best lap textColor = (s32) gGlobalTimer % 3; } else { textColor = TEXT_YELLOW; } } else { - if (temp_v0_2->unk1C >= 0) { + if (temp_v0_2->param1 >= 0) { textColor = (s32) gGlobalTimer % 3; } else { textColor = TEXT_YELLOW; } } set_text_color(textColor); - get_time_record_minutes(sp40, sp34); + get_time_record_minutes(time, sp34); func_800939C8(column + 0x2C, row, sp34, 0, 0.7f, 0.7f); - func_80093324(column + 0x37, row, "'", 0, 0.7f, 0.7f); - get_time_record_seconds(sp40, sp34); + print_text_mode_1(column + 0x37, row, "'", 0, 0.7f, 0.7f); + get_time_record_seconds(time, sp34); func_800939C8(column + 0x40, row, sp34, 0, 0.7f, 0.7f); - func_80093324(column + 0x4B, row, "\"", 0, 0.7f, 0.7f); - get_time_record_centiseconds(sp40, sp34); + print_text_mode_1(column + 0x4B, row, "\"", 0, 0.7f, 0.7f); + get_time_record_centiseconds(time, sp34); func_800939C8(column + 0x55, row, sp34, 0, 0.7f, 0.7f); } @@ -7688,15 +7685,14 @@ void func_800A4550(s32 lapNumber, s32 column, s32 row) { // The majority of th diff is from the handling of `textColor`. There is something super fucky there. // The permuter found a decent improvement with making `textColor` a `volatile` variable but that // seems wrong for several reasons - -void func_800A474C(s32 recordType, s32 column, s32 row) { +void render_lap_times(s32 recordType, s32 column, s32 row) { UNUSED s32 stackPadding0; u32 timeRecord; s32 textColor; s32 temp_t0; s32 characterId; char sp38[3]; - struct_8018D9E0_entry* temp_v0; + MenuItem* temp_v0; s32 sp30; if (gGamestate == 4) { sp30 = 0; @@ -7719,9 +7715,9 @@ void func_800A474C(s32 recordType, s32 column, s32 row) { } func_800939C8(column + 0x14, row, D_800E7744[recordType], 2, 0.65f, 0.65f); if (sp30 == 0) { - temp_v0 = find_8018D9E0_entry_dupe(0x000000BB); + temp_v0 = find_menu_items_dupe(MENU_ITEM_TYPE_0BB); if (recordType < 5) { - if (recordType == temp_v0->unk1C) { + if (recordType == temp_v0->param1) { textColor = gGlobalTimer % 3; } else { textColor = TEXT_YELLOW; @@ -7729,7 +7725,7 @@ void func_800A474C(s32 recordType, s32 column, s32 row) { } else { // huh? textColor = TEXT_YELLOW; - if (temp_v0->unk20 != 0) { + if (temp_v0->param2 != 0) { textColor = gGlobalTimer; textColor %= 3; } else { @@ -7742,11 +7738,11 @@ void func_800A474C(s32 recordType, s32 column, s32 row) { temp_t0 = timeRecord & 0xFFFFF; get_time_record_minutes(temp_t0, sp38); func_800939C8(column + 0x27, row, sp38, 0, 0.65f, 0.65f); - func_80093324(column + 0x32, row, "'", 0, 0.65f, 0.65f); + print_text_mode_1(column + 0x32, row, "'", 0, 0.65f, 0.65f); if (!textColor) {} get_time_record_seconds(temp_t0, sp38); func_800939C8(column + 0x3B, row, sp38, 0, 0.65f, 0.65f); - func_80093324(column + 0x46, row, "\"", 0, 0.65f, 0.65f); + print_text_mode_1(column + 0x46, row, "\"", 0, 0.65f, 0.65f); get_time_record_centiseconds(temp_t0, sp38); func_800939C8(column + 0x50, row, sp38, 0, 0.65f, 0.65f); if (temp_t0 < 0x927C0) { @@ -7754,14 +7750,13 @@ void func_800A474C(s32 recordType, s32 column, s32 row) { } else { characterId = 8; } - draw_text(column + 0x78, row, D_800E76A8[characterId], 0, 0.65f, 0.65f); + print_text1_center_mode_1(column + 0x78, row, D_800E76A8[characterId], 0, 0.65f, 0.65f); } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A474C.s") +GLOBAL_ASM("asm/non_matchings/menu_items/render_lap_times.s") #endif -void func_800A4A24(struct_8018D9E0_entry* arg0) { - UNUSED s32 stackPadding0; +void render_menu_item_announce_ghost(MenuItem* arg0) { s32 temp_t0; s32 temp_t1; s32 temp_t2; @@ -7770,14 +7765,14 @@ void func_800A4A24(struct_8018D9E0_entry* arg0) { temp_t0 = 0x140 - arg0->column; temp_t1 = arg0->row; - temp_t2 = (s32) ((get_string_width(D_800E7780) + 8) * someMultiplier) / 2; + temp_t2 = (s32) ((get_string_width(gTextMenuAnnounceGhost) + 8) * someMultiplier) / 2; gDisplayListHead = draw_box(gDisplayListHead, temp_t0 - temp_t2, (temp_t1 - thing) + 4, temp_t2 + temp_t0, temp_t1 + 4, 0, 0, 0, 0x00000064); set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); - draw_text(arg0->column - 3, arg0->row, D_800E7780, 0, 0.85f, 0.85f); + print_text1_center_mode_1(arg0->column - 3, arg0->row, gTextMenuAnnounceGhost, 0, 0.85f, 0.85f); } -void render_pause_menu(struct_8018D9E0_entry* arg0) { +void render_pause_menu(MenuItem* arg0) { if (gIsGamePaused != 0) { switch (gModeSelection) { case TIME_TRIALS: @@ -7796,10 +7791,7 @@ void render_pause_menu(struct_8018D9E0_entry* arg0) { } } -void render_pause_menu_time_trials(struct_8018D9E0_entry* arg0) { - UNUSED s32 stackPadding0; - UNUSED s32 stackPadding1; - UNUSED s32 stackPadding2; +void render_pause_menu_time_trials(MenuItem* arg0) { char sp68[3]; s32 temp_a0; s32 var_s0; @@ -7807,39 +7799,39 @@ void render_pause_menu_time_trials(struct_8018D9E0_entry* arg0) { gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x0000008C); set_text_color(TEXT_YELLOW); - draw_text(0x000000A0, 0x00000050, CourseManager_GetProps()->Name, 0, 1.0f, + print_text1_center_mode_1(0x000000A0, 0x00000050, CourseManager_GetProps()->Name, 0, 1.0f, 1.0f); set_text_color(TEXT_RED); - draw_text(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f); + print_text1_center_mode_1(0x0000009D, 0x00000060, gBestTimeText[0], 0, 0.8f, 0.8f); temp_a0 = func_800B4E24(TIME_TRIAL_3LAP_RECORD_1); temp_a0 &= 0xFFFFF; get_time_record_minutes(temp_a0, sp68); func_800939C8(0x0000007F, 0x0000006D, sp68, 0, 0.8f, 0.8f); - func_80093324(0x0000008E, 0x0000006D, "'", 0, 0.8f, 0.8f); + print_text_mode_1(0x0000008E, 0x0000006D, "'", 0, 0.8f, 0.8f); get_time_record_seconds(temp_a0, sp68); func_800939C8(0x00000098, 0x0000006D, sp68, 0, 0.8f, 0.8f); - func_80093324(0x000000A7, 0x0000006D, "\"", 0, 0.8f, 0.8f); + print_text_mode_1(0x000000A7, 0x0000006D, "\"", 0, 0.8f, 0.8f); get_time_record_centiseconds(temp_a0, sp68); func_800939C8(0x000000B3, 0x0000006D, sp68, 0, 0.8f, 0.8f); - draw_text(0x0000009D, 0x0000007C, D_800E7728[1], 0, 0.8f, 0.8f); + print_text1_center_mode_1(0x0000009D, 0x0000007C, gBestTimeText[1], 0, 0.8f, 0.8f); temp_a0 = func_800B4F2C(); temp_a0 &= 0xFFFFF; get_time_record_minutes(temp_a0, sp68); func_800939C8(0x0000007F, 0x00000089, sp68, 0, 0.8f, 0.8f); - func_80093324(0x0000008E, 0x00000089, "'", 0, 0.8f, 0.8f); + print_text_mode_1(0x0000008E, 0x00000089, "'", 0, 0.8f, 0.8f); get_time_record_seconds(temp_a0, sp68); func_800939C8(0x00000098, 0x00000089, sp68, 0, 0.8f, 0.8f); - func_80093324(0x000000A7, 0x00000089, "\"", 0, 0.8f, 0.8f); + print_text_mode_1(0x000000A7, 0x00000089, "\"", 0, 0.8f, 0.8f); get_time_record_centiseconds(temp_a0, sp68); func_800939C8(0x000000B3, 0x00000089, sp68, 0, 0.8f, 0.8f); for (var_s0 = 0; var_s0 < 5; var_s0++) { - text_rainbow_effect(arg0->cursor - 11, var_s0, TEXT_GREEN); - func_80093324(D_800E8538[zero].column, D_800E8538[zero].row + (13 * var_s0), gTextPauseButton[var_s0], 0, 0.75f, + text_rainbow_effect(arg0->state - 11, var_s0, TEXT_GREEN); + print_text_mode_1(D_800E8538[zero].column, D_800E8538[zero].row + (13 * var_s0), gTextPauseButton[var_s0], 0, 0.75f, 0.75f); } } -void render_pause_menu_versus(struct_8018D9E0_entry* arg0) { +void render_pause_menu_versus(MenuItem* arg0) { s16 temp_t0; s16 temp_v1; s32 temp_t3; @@ -7863,12 +7855,12 @@ void render_pause_menu_versus(struct_8018D9E0_entry* arg0) { } else { var_s1 = var_s0; } - text_rainbow_effect(arg0->cursor - 0x15, var_s0, TEXT_YELLOW); - func_80093324(temp_s3->column - 2, temp_s3->row + (13 * var_s0), gTextPauseButton[var_s1], 0, 0.75f, 0.75f); + text_rainbow_effect(arg0->state - 0x15, var_s0, TEXT_YELLOW); + print_text_mode_1(temp_s3->column - 2, temp_s3->row + (13 * var_s0), gTextPauseButton[var_s1], 0, 0.75f, 0.75f); } } -void render_pause_grand_prix(struct_8018D9E0_entry* arg0) { +void render_pause_grand_prix(MenuItem* arg0) { s32 temp_t0; s32 temp_v1; s32 temp_s0; @@ -7891,19 +7883,19 @@ void render_pause_grand_prix(struct_8018D9E0_entry* arg0) { temp_s0 = ((get_string_width(gCupNames[GetCupIndex()]) * one) + 10.0f) / 2; temp_s1 = ((get_string_width(D_800E76CC[gCCSelection]) * one) + 10.0f) / 2; set_text_color(TEXT_YELLOW); - draw_text(160 - temp_s1, temp_s3->row - 50, gCupNames[GetCupIndex()], 0, 1.0f, 1.0f); + print_text1_center_mode_1(160 - temp_s1, temp_s3->row - 50, gCupNames[GetCupIndex()], 0, 1.0f, 1.0f); set_text_color(TEXT_YELLOW); - draw_text(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f); + print_text1_center_mode_1(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f); set_text_color(TEXT_YELLOW); - draw_text(160, temp_s3->row - 30, CourseManager_GetProps()->Name, 0, 1.0f, + print_text1_center_mode_1(160, temp_s3->row - 30, CourseManager_GetProps()->Name, 0, 1.0f, 1.0f); for (var_s0 = 0; var_s0 < 2; var_s0++) { - text_rainbow_effect(arg0->cursor - 31, var_s0, TEXT_YELLOW); - func_80093324(temp_s3->column, temp_s3->row + (var_s0 * 13), gTextPauseButton[var_s0 * 4], 0, 0.75f, 0.75f); + text_rainbow_effect(arg0->state - 31, var_s0, TEXT_YELLOW); + print_text_mode_1(temp_s3->column, temp_s3->row + (var_s0 * 13), gTextPauseButton[var_s0 * 4], 0, 0.75f, 0.75f); } } -void render_pause_battle(struct_8018D9E0_entry* arg0) { +void render_pause_battle(MenuItem* arg0) { struct UnkStruct_800DC5EC* temp_v0; s16 temp_t0; s16 temp_v1; @@ -7927,15 +7919,15 @@ void render_pause_battle(struct_8018D9E0_entry* arg0) { } else { var_s1 = var_a1; } - text_rainbow_effect(arg0->cursor - 0x29, var_a1, TEXT_YELLOW); - func_80093324(temp_s3->column - 2, temp_s3->row + 13 * var_a1, gTextPauseButton[var_s1], 0, 0.75f, 0.75f); + text_rainbow_effect(arg0->state - 0x29, var_a1, TEXT_YELLOW); + print_text_mode_1(temp_s3->column - 2, temp_s3->row + 13 * var_a1, gTextPauseButton[var_s1], 0, 0.75f, 0.75f); } } void func_800A54EC(void) { Unk_D_800E70A0 sp50; Unk_D_800E70A0* var_v1; - struct_8018D9E0_entry* sp48; + MenuItem* sp48; s32 whyTheSequel; s32 why; UNUSED Unk_D_800E70A0* huh; @@ -7945,7 +7937,7 @@ void func_800A54EC(void) { } why = gModeSelection; - sp48 = find_8018D9E0_entry(0x000000C7); + sp48 = find_menu_items(MENU_ITEM_PAUSE); if (why) {} // ????? gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880)); // guOrtho(&gGfxPool->mtxEffect[gMatrixEffectCount], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f); @@ -7970,21 +7962,15 @@ void func_800A54EC(void) { } whyTheSequel = D_800F0B50[why]; sp50.column = var_v1->column - 8; - sp50.row = (var_v1->row + ((sp48->cursor - whyTheSequel) * 0xD)) - 8; + sp50.row = (var_v1->row + ((sp48->state - whyTheSequel) * 0xD)) - 8; func_800A66A8(sp48, &sp50); } -void func_800A5738(struct_8018D9E0_entry* arg0) { +void render_menu_item_end_course_option(MenuItem* arg0) { Unk_D_800E70A0 sp98; - UNUSED s32 stackPadding0; - UNUSED s32 stackPadding1; - UNUSED s32 stackPadding2; f32 why; char sp84[3]; - UNUSED s32 stackPadding3; - UNUSED s32 stackPadding4; s32 temp_a0; - UNUSED s32 var_v1; s32 var_s1; s32 var_s2; s32 temp_v0; @@ -7992,142 +7978,142 @@ void func_800A5738(struct_8018D9E0_entry* arg0) { Unk_D_800E70A0* var_v0_9; char sp5C[3]; - if (arg0->cursor == 0) { - if ((arg0->unk1C >= 0x1E) && ((gGlobalTimer / 16) % 2)) { - why = get_string_width(gTextPauseButton[5]) * 0.8f; + if (arg0->state == 0) { + if ((arg0->param1 >= 0x1E) && ((gGlobalTimer / 16) % 2)) { + why = get_string_width(gTextPauseButton[REPLAY]) * 0.8f; gDisplayListHead = draw_box_wide(gDisplayListHead, 0x000000C0, 0x00000021, (s32) (why) + 0xC6, 0x00000032, 0, 0, 0, 0x00000096); - set_text_color(1); - func_80093324(0x000000BF, 0x00000030, gTextPauseButton[5], 0, 0.8f, 0.8f); + set_text_color(TEXT_GREEN); + print_text_mode_1(0x000000BF, 0x00000030, gTextPauseButton[REPLAY], 0, 0.8f, 0.8f); } } else { - if (arg0->cursor == 1) { - var_s1 = arg0->unk1C; - var_s2 = (s32) (arg0->unk1C * 0xFF) / 140; + if (arg0->state == 1) { + var_s1 = arg0->param1; + var_s2 = (s32) (arg0->param1 * 0xFF) / 140; } else { var_s1 = 0x0000008C; var_s2 = 0x000000FF; } gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_s2); - set_text_color(3); - func_80093754(0x000000A0, 0x00000050, CourseManager_GetProps()->Name, + set_text_color(TEXT_YELLOW); + 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 */ - set_text_color(2); - func_80093754(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f); + switch (arg0->state) { + case 1: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + set_text_color(TEXT_RED); + print_text1_center_mode_2(0x0000009D, 0x00000060, gBestTimeText[0], 0, 0.8f, 0.8f); temp_a0 = func_800B4E24(0); temp_a0 &= 0xFFFFF; get_time_record_minutes(temp_a0, sp84); text_draw(0x0000007F, 0x0000006D, sp84, 0, 0.8f, 0.8f); - func_80093358(0x0000008E, 0x0000006D, "'", 0, 0.8f, 0.8f); + print_text_mode_2(0x0000008E, 0x0000006D, "'", 0, 0.8f, 0.8f); get_time_record_seconds(temp_a0, sp84); text_draw(0x00000098, 0x0000006D, sp84, 0, 0.8f, 0.8f); - func_80093358(0x000000A7, 0x0000006D, "\"", 0, 0.8f, 0.8f); + print_text_mode_2(0x000000A7, 0x0000006D, "\"", 0, 0.8f, 0.8f); get_time_record_centiseconds(temp_a0, sp84); text_draw(0x000000B3, 0x0000006D, sp84, 0, 0.8f, 0.8f); - func_80093754(0x0000009D, 0x0000007C, D_800E7728[1], 0, 0.8f, 0.8f); + print_text1_center_mode_2(0x0000009D, 0x0000007C, gBestTimeText[1], 0, 0.8f, 0.8f); temp_a0 = func_800B4F2C(); temp_a0 &= 0xFFFFF; get_time_record_minutes(temp_a0, sp84); text_draw(0x0000007F, 0x00000089, sp84, 0, 0.8f, 0.8f); - func_80093358(0x0000008E, 0x00000089, "'", 0, 0.8f, 0.8f); + print_text_mode_2(0x0000008E, 0x00000089, "'", 0, 0.8f, 0.8f); get_time_record_seconds(temp_a0, sp84); text_draw(0x00000098, 0x00000089, sp84, 0, 0.8f, 0.8f); - func_80093358(0x000000A7, 0x00000089, "\"", 0, 0.8f, 0.8f); + print_text_mode_2(0x000000A7, 0x00000089, "\"", 0, 0.8f, 0.8f); get_time_record_centiseconds(temp_a0, sp84); text_draw(0x000000B3, 0x00000089, sp84, 0, 0.8f, 0.8f); for (var_s1 = 0; var_s1 < 6; var_s1++) { - text_rainbow_effect(arg0->cursor - 0xB, var_s1, TEXT_GREEN); - func_80093358(D_800E8538[zero].column, D_800E8538[zero].row + (0xD * var_s1), + text_rainbow_effect(arg0->state - 0xB, var_s1, TEXT_GREEN); + print_text_mode_2(D_800E8538[zero].column, D_800E8538[zero].row + (0xD * var_s1), gTextPauseButton[var_s1 + 1], 0, 0.75f, 0.75f); } 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 */ - set_text_color(3); - temp_v0 = arg0->cursor - 0x15; + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + set_text_color(TEXT_YELLOW); + temp_v0 = arg0->state - 0x15; for (var_s1 = 0; var_s1 < 7; var_s1++) { - func_80093324(0x0000004D, 0x6E + (0xD * var_s1), D_800E798C[(temp_v0 * 7) + var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x0000004D, 0x6E + (0xD * var_s1), D_800E798C[(temp_v0 * 7) + var_s1], 0, 0.8f, 0.8f); } break; - case 30: /* switch 1 */ - case 31: /* switch 1 */ - set_text_color(1); + case 30: + case 31: + set_text_color(TEXT_GREEN); for (var_s1 = 0; var_s1 < 2; var_s1++) { - func_80093324(0x0000005A, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A3C[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x0000005A, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A3C[var_s1], 0, 0.8f, 0.8f); } for (var_s1 = 0; var_s1 < 2; var_s1++) { - text_rainbow_effect(arg0->cursor - 0x1E, var_s1, TEXT_GREEN); + text_rainbow_effect(arg0->state - 0x1E, var_s1, TEXT_GREEN); convert_number_to_ascii(var_s1 + 1, sp5C); - func_80093324(0x5A - arg0->column, (0x96 + (0x14 * var_s1)), &sp5C[1], 0, 0.75f, 0.75f); + print_text_mode_1(0x5A - arg0->column, (0x96 + (0x14 * var_s1)), &sp5C[1], 0, 0.75f, 0.75f); if (D_8018EE10[var_s1].ghostDataSaved == 0) { - func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E7A44, 0, 0.75f, 0.75f); + print_text_mode_1(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E7A44, 0, 0.75f, 0.75f); } else { - func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), + print_text_mode_1(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), CourseManager_GetProps()->Name, 0, 0.75f, 0.75f); } } break; - case 32: /* switch 1 */ - set_text_color(3); + case 32: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x00000064, (0xD * var_s1) + 0x6E, D_800E7A48[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x00000064, (0xD * var_s1) + 0x6E, D_800E7A48[var_s1], 0, 0.8f, 0.8f); } break; - case 35: /* switch 1 */ - case 36: /* switch 1 */ - set_text_color(3); + case 35: + case 36: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x00000055, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A60[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x00000055, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A60[var_s1], 0, 0.8f, 0.8f); } for (var_s1 = 0; var_s1 < 2; var_s1++) { - text_rainbow_effect(arg0->cursor - 0x23, var_s1, TEXT_GREEN); - func_80093324(0x7D - arg0->column, 0x9B + (0xF * var_s1), D_800E7A6C[var_s1], 0, 0.8f, 0.8f); + text_rainbow_effect(arg0->state - 0x23, var_s1, TEXT_GREEN); + print_text_mode_1(0x7D - arg0->column, 0x9B + (0xF * var_s1), D_800E7A6C[var_s1], 0, 0.8f, 0.8f); } break; - case 40: /* switch 1 */ - set_text_color(3); + case 40: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 3; var_s1++) { - func_80093324(0x00000055, (0xD * var_s1) + 0x6E, D_800E7A74[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x00000055, (0xD * var_s1) + 0x6E, D_800E7A74[var_s1], 0, 0.8f, 0.8f); } break; - case 41: /* switch 1 */ - set_text_color(3); + case 41: + set_text_color(TEXT_YELLOW); for (var_s1 = 0; var_s1 < 2; var_s1++) { - func_80093324(0x0000005D, (0xD * var_s1) + 0x6E, D_800E7A80[var_s1], 0, 0.8f, 0.8f); + print_text_mode_1(0x0000005D, (0xD * var_s1) + 0x6E, D_800E7A80[var_s1], 0, 0.8f, 0.8f); } break; } - switch (arg0->cursor) { /* switch 2 */ + switch (arg0->state) { /* switch 2 */ case 11: /* switch 2 */ case 12: /* switch 2 */ case 13: /* switch 2 */ case 14: /* switch 2 */ case 15: /* switch 2 */ case 16: /* switch 2 */ - var_v0_9 = &D_800E73E0[arg0->cursor - 11]; + var_v0_9 = &D_800E73E0[arg0->state - 11]; break; case 30: /* switch 2 */ case 31: /* switch 2 */ - var_v0_9 = &D_800E7410[arg0->cursor - 30]; + var_v0_9 = &D_800E7410[arg0->state - 30]; break; case 35: /* switch 2 */ case 36: /* switch 2 */ if (0) {} // wtf? - var_v0_9 = &D_800E7420[arg0->cursor - 35]; + var_v0_9 = &D_800E7420[arg0->state - 35]; break; default: return; @@ -8138,21 +8124,21 @@ void func_800A5738(struct_8018D9E0_entry* arg0) { } } -void func_800A6034(struct_8018D9E0_entry* arg0) { +void func_800A6034(MenuItem* arg0) { char* text; if (D_801657E8 != true) { - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, arg0->unk1C); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, arg0->param1); text = gCupNames[D_800DC540]; set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); - func_80093754(arg0->column + 0x41, arg0->row + 0xA0, text, 0, 0.85f, 1.0f); + print_text1_center_mode_2(arg0->column + 0x41, arg0->row + 0xA0, text, 0, 0.85f, 1.0f); text = CourseManager_GetProps()->Name; set_text_color((s32) gCurrentCourseId % 4); - func_80093754(arg0->column + 0x41, arg0->row + 0xC3, text, 0, 0.65f, 0.85f); + print_text1_center_mode_2(arg0->column + 0x41, arg0->row + 0xC3, text, 0, 0.65f, 0.85f); } } -void func_800A6154(struct_8018D9E0_entry* arg0) { +void func_800A6154(MenuItem* arg0) { UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; UNUSED s32 stackPadding2; @@ -8161,49 +8147,49 @@ void func_800A6154(struct_8018D9E0_entry* arg0) { s32 var_s0; s32 var_s1; - if (arg0->cursor == 0) { - gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->unk1C); + if (arg0->state == 0) { + gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->param1); set_text_color(3); - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->unk1C * 0xFF) / 100); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->param1 * 0xFF) / 100); for (var_s1 = 0, var_s0 = 0x96; var_s0 < 0xBE; var_s1++, var_s0 += 0x14) { - func_80093358(0x0000008C, var_s0, gTextPauseButton[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); + print_text_mode_2(0x0000008C, var_s0, gTextPauseButton[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); } } else { gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x00000064); for (var_s1 = 0, var_s0 = 0x96; var_s1 < 2; var_s1++, var_s0 += 0x14) { - text_rainbow_effect(arg0->cursor - 0xB, var_s1, TEXT_YELLOW); - func_80093324(0x0000008C, var_s0, gTextPauseButton[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); + text_rainbow_effect(arg0->state - 0xB, var_s1, TEXT_YELLOW); + print_text_mode_1(0x0000008C, var_s0, gTextPauseButton[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); } } - if (arg0->cursor >= 0xB) { + if (arg0->state >= 0xB) { sp6C.column = 0x0084; - sp6C.row = (arg0->cursor * 0x14) - 0x4E; + sp6C.row = (arg0->state * 0x14) - 0x4E; func_800A66A8(arg0, &sp6C); } - if (arg0->unk20 > 0) { - gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0, 0x0000013F, arg0->unk20); - gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0xEF - arg0->unk20, 0x0000013F, 0x000000EF); + if (arg0->param2 > 0) { + gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0, 0x0000013F, arg0->param2); + gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0xEF - arg0->param2, 0x0000013F, 0x000000EF); } } -void func_800A638C(struct_8018D9E0_entry* arg0) { +void func_800A638C(MenuItem* arg0) { UNUSED s32 temp_a0; s32 var_a1; UNUSED s32 var_s0; s32 var_s1; UNUSED s8** var_s2; - if (arg0->cursor == 0) { - gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->unk1C); - set_text_color(5); - gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->unk1C * 0xFF) / 100); - func_80093754(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); + if (arg0->state == 0) { + gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->param1); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->param1 * 0xFF) / 100); + print_text1_center_mode_2(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); } else { gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x00000064); - set_text_color(5); - draw_text(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + print_text1_center_mode_1(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); } - switch (arg0->cursor) { /* irregular */ + switch (arg0->state) { /* irregular */ default: var_a1 = 0x000000FF; break; @@ -8212,7 +8198,7 @@ void func_800A638C(struct_8018D9E0_entry* arg0) { var_a1 = 0; break; case 2: - var_a1 = arg0->unk1C; + var_a1 = arg0->param1; break; } gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_a1); @@ -8229,42 +8215,41 @@ void func_800A638C(struct_8018D9E0_entry* arg0) { default: break; } - if (arg0->cursor >= 10) { + if (arg0->state >= 10) { for (var_s1 = 0; var_s1 < 4; var_s1++) { - text_rainbow_effect(arg0->cursor - 0xA, var_s1, TEXT_GREEN); - func_80093324(0x00000069, 0xAE + (0xF * var_s1), gTextPauseButton[var_s1 + 1], 0, 0.8f, 0.8f); + text_rainbow_effect(arg0->state - 0xA, var_s1, TEXT_GREEN); + print_text_mode_1(0x00000069, 0xAE + (0xF * var_s1), gTextPauseButton[var_s1 + 1], 0, 0.8f, 0.8f); } - func_800A66A8(arg0, &D_800E7360[arg0->cursor - 10]); + func_800A66A8(arg0, &D_800E7360[arg0->state - 10]); } } -void func_800A66A8(struct_8018D9E0_entry* arg0, Unk_D_800E70A0* arg1) { +void func_800A66A8(MenuItem* arg0, Unk_D_800E70A0* arg1) { Mtx *mtx; f32 tmp; static float x2, y2, z2; static float x1, y1, z1; mtx = GetEffectMatrix(); // &gGfxPool->mtxEffect[gMatrixEffectCount]; - if (arg0->unk24 > 1.5) { - arg0->unk24 *= 0.95; + if (arg0->paramf > 1.5) { + arg0->paramf *= 0.95; } else { - arg0->unk24 = 1.5; + arg0->paramf = 1.5; } - tmp = arg0->unk24; - x1 = (tmp * 3) * arg0->unk8; + tmp = arg0->paramf; + x1 = (tmp * 3) * arg0->subState; y1 = tmp * 4; z1 = tmp * 2; x2 += x1; y2 += y1; z2 += z1; - if (x2) - ; - if (y2) - ; - if (z2) - ; + // clang-format off + if (x2); + if (y2); + if (z2); + // clang-format on guScale(mtx, 1.2f, 1.2f, 1.2f); guRotate(mtx + 1, y2, 0.0f, 1.0f, 0.0f); @@ -8285,7 +8270,7 @@ void func_800A66A8(struct_8018D9E0_entry* arg0, Unk_D_800E70A0* arg1) { gSPDisplayList(gDisplayListHead++, D_0D003090); } -void func_800A69C8(UNUSED struct_8018D9E0_entry* arg0) { +void func_800A69C8(UNUSED MenuItem* arg0) { Unk_D_800E70A0* thing; UNUSED s32 stackPadding1; s32 var_s0; @@ -8311,7 +8296,7 @@ void func_800A69C8(UNUSED struct_8018D9E0_entry* arg0) { var_s4 = &gNmiUnknown4[var_s0]; break; } - temp_s3 = D_800E7720[var_v1]; + temp_s3 = gWinLoseText[var_v1]; if (var_v1 != 0) { set_text_color(TEXT_BLUE); } else { @@ -8319,14 +8304,14 @@ void func_800A69C8(UNUSED struct_8018D9E0_entry* arg0) { } func_800A79F4(var_s4[0], sp74); text_draw(thing->column + 0x10, thing->row + 0x75, sp74, 0, 1.0f, 1.0f); - func_80093754(D_800E7380[var_s0].column, D_800E7380[var_s0].row, temp_s3, 0, 0.65f, 1.0f); + print_text1_center_mode_2(D_800E7380[var_s0].column, D_800E7380[var_s0].row, temp_s3, 0, 0.65f, 1.0f); } set_text_color(TEXT_BLUE); // Not a hyphen, that is an EUC-JP character text_draw(0x0000009E, D_800E7300[0].row + 0x6D, "ー", 0, 1.0f, 1.0f); } -void func_800A6BEC(UNUSED struct_8018D9E0_entry* arg0) { +void func_800A6BEC(UNUSED MenuItem* arg0) { s32 var_s0; for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { @@ -8341,7 +8326,7 @@ void func_800A6BEC(UNUSED struct_8018D9E0_entry* arg0) { } } -void func_800A6CC0(UNUSED struct_8018D9E0_entry* arg0) { +void func_800A6CC0(UNUSED MenuItem* arg0) { s32 var_s0; for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { @@ -8370,7 +8355,7 @@ void func_800A6D94(s32 arg0, s32 arg1, u8* arg2) { } thing = arg2[arg1]; if (var_v0 != 0) { - set_text_color(0); + set_text_color(TEXT_BLUE); } else { set_text_color(gGlobalTimer % 3); } @@ -8420,14 +8405,14 @@ void func_800A6E94(s32 arg0, s32 arg1, u8* arg2) { text_draw(temp_s0->column + 0x2D, temp_s0->row + 0x78, sp40, 0, 0.8f, 0.8f); } -void func_800A70E8(struct_8018D9E0_entry* arg0) { +void func_800A70E8(MenuItem* arg0) { s32 var_s0; s32 temp_f6; s32 alpha; s32 loopIndex; s32 stringIndex; - if (arg0->cursor == 1) { + if (arg0->state == 1) { var_s0 = get_string_width(D_800E7A34[0]) * 0.45f; temp_f6 = get_string_width(D_800E7A34[1]) * 0.45f; if (var_s0 < temp_f6) { @@ -8435,23 +8420,23 @@ void func_800A70E8(struct_8018D9E0_entry* arg0) { } gDisplayListHead = draw_box(gDisplayListHead, 0x000000C0, 0x00000022, var_s0 + 0xC6, 0x00000039, 0, 0, 0, 0x00000096); - alpha = 0x180 - ((arg0->unk1C % 32) * 8); + alpha = 0x180 - ((arg0->param1 % 32) * 8); if (alpha >= 0x100) { alpha = 0xFF; } gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, alpha); set_text_color(TEXT_RED); for (loopIndex = 0x2C, stringIndex = 0; loopIndex < 0x40; loopIndex += 0xA, stringIndex++) { - func_80093358(0x000000C0, loopIndex, D_800E7A34[stringIndex], 0, 0.45f, 0.45f); + print_text_mode_2(0x000000C0, loopIndex, D_800E7A34[stringIndex], 0, 0.45f, 0.45f); } } } // Shading layer of the grand prix podium result screen -void func_800A7258(struct_8018D9E0_entry* arg0) { - if (arg0->cursor == 0) { +void func_800A7258(MenuItem* arg0) { + if (arg0->state == 0) { // If shading layer is fading in - gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x13F, 0xEF, 0, 0, 0, arg0->unk1C); + gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x13F, 0xEF, 0, 0, 0, arg0->param1); } else { // All other stages of the podium scene gDisplayListHead = draw_box_wide(gDisplayListHead, 0, 0, 0x13F, 0xEF, 0, 0, 0, 0x64); @@ -8459,36 +8444,36 @@ void func_800A7258(struct_8018D9E0_entry* arg0) { } // Podium scene, top line -void func_800A72FC(struct_8018D9E0_entry* arg0) { +void func_800A72FC(MenuItem* arg0) { UNUSED s32 pad; s32 cupNameLength = (((f32) get_string_width(GetCupName()) * 1) + 10) / 2; s32 ccNameLength = (((f32) get_string_width(D_800E76CC[gCCSelection]) * 1) + 10) / 2; set_text_color(TEXT_YELLOW); - draw_text(arg0->column - ccNameLength, arg0->row, GetCupName(), 0, 1, 1); + print_text1_center_mode_1(arg0->column - ccNameLength, arg0->row, GetCupName(), 0, 1, 1); set_text_color(TEXT_YELLOW); - draw_text(arg0->column + cupNameLength, arg0->row, D_800E76DC[gCCSelection], 0, 1, 1); + print_text1_center_mode_1(arg0->column + cupNameLength, arg0->row, D_800E76DC[gCCSelection], 0, 1, 1); } -void func_800A7448(struct_8018D9E0_entry* arg0) { +void func_800A7448(MenuItem* arg0) { UNUSED s32 pad; s32 sp40; s32 sp3C; s32 thing = D_802874D8.unk1D; if (thing >= 3) { set_text_color(TEXT_YELLOW); - draw_text(arg0->column, arg0->row, D_800E7A98, 0, 0.75f, 0.75f); + print_text1_center_mode_1(arg0->column, arg0->row, D_800E7A98, 0, 0.75f, 0.75f); } else { sp40 = (s32) (((f32) (get_string_width(D_800E7A88[0]) + 5) * 0.75f) / 2); sp3C = (s32) (((f32) (get_string_width(D_800E7A88[thing + 1]) + 5) * 0.75f) / 2); set_text_color(TEXT_YELLOW); - draw_text(arg0->column - sp3C, arg0->row, D_800E7A88[0], 0, 0.75f, 0.75f); + print_text1_center_mode_1(arg0->column - sp3C, arg0->row, D_800E7A88[0], 0, 0.75f, 0.75f); set_text_color(TEXT_YELLOW); - draw_text(arg0->column + sp40, arg0->row, D_800E7A88[thing + 1], 0, 0.75f, 0.75f); + print_text1_center_mode_1(arg0->column + sp40, arg0->row, D_800E7A88[thing + 1], 0, 0.75f, 0.75f); } } -void func_800A75A0(struct_8018D9E0_entry* arg0) { +void func_800A75A0(MenuItem* arg0) { UNUSED s32 pad; s32 topThree; @@ -8499,10 +8484,10 @@ void func_800A75A0(struct_8018D9E0_entry* arg0) { } set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1); - draw_text(arg0->column, arg0->row, D_800E7A9C[topThree], 0, 1.3f, 1.3f); + print_text1_center_mode_1(arg0->column, arg0->row, D_800E7A9C[topThree], 0, 1.3f, 1.3f); } -void func_800A761C(struct_8018D9E0_entry* arg0) { +void func_800A761C(MenuItem* arg0) { UNUSED s32 stackPadding0; s32 sp48; s32 sp44; @@ -8511,32 +8496,32 @@ void func_800A761C(struct_8018D9E0_entry* arg0) { temp_a0 = D_802874D8.unk1D + 1; func_800A79F4(temp_a0, sp3C); - sp48 = ((get_string_width(D_800E7AA4[0]) + 5) * 1.2f) / 2; - sp44 = ((get_string_width(D_800E7AA4[temp_a0]) + 5) * 1.2f) / 2; - set_text_color(5); - draw_text(arg0->column - sp44, arg0->row, D_800E7AA4[0], 0, 1.2f, 1.2f); + sp48 = ((get_string_width(gPlaceText[0]) + 5) * 1.2f) / 2; + sp44 = ((get_string_width(gPlaceText[temp_a0]) + 5) * 1.2f) / 2; + set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + print_text1_center_mode_1(arg0->column - sp44, arg0->row, gPlaceText[0], 0, 1.2f, 1.2f); set_text_color((s32) gGlobalTimer % 3); - draw_text(arg0->column + sp48, arg0->row, D_800E7AA4[temp_a0], 0, 1.2f, 1.2f); + print_text1_center_mode_1(arg0->column + sp48, arg0->row, gPlaceText[temp_a0], 0, 1.2f, 1.2f); convert_number_to_ascii(temp_a0, sp3C); func_800939C8((arg0->column + sp48) - 0x18, arg0->row, &sp3C[1], 0, 2.0f, 2.0f); } -void func_800A7790(struct_8018D9E0_entry* arg0) { +void menu_item_credits_render(MenuItem* arg0) { f32 someScaling; s32 creditIndex; s8 slideDirection; UNUSED s32 pad; creditIndex = arg0->type - 0x190; - set_text_color(D_802850C0[creditIndex].textColor); - slideDirection = D_802850C0[creditIndex].slideDirection; + set_text_color(gTextCreditsRenderInfo[creditIndex].textColor); + slideDirection = gTextCreditsRenderInfo[creditIndex].slideDirection; if ((slideDirection == SLIDE_RIGHT) || (slideDirection != SLIDE_LEFT)) { - someScaling = D_802850C0[creditIndex].textScaling; - func_800936B8(arg0->column, arg0->row, gCreditsText[creditIndex], arg0->unk1C * someScaling, - arg0->unk24 * someScaling, someScaling); + someScaling = gTextCreditsRenderInfo[creditIndex].textScaling; + print_text1_left(arg0->column, arg0->row, gCreditsText[creditIndex], arg0->param1 * someScaling, + arg0->paramf * someScaling, someScaling); } else { - someScaling = D_802850C0[creditIndex].textScaling; - func_80093324(arg0->column, arg0->row, gCreditsText[creditIndex], arg0->unk1C * someScaling, - arg0->unk24 * someScaling, someScaling); + someScaling = gTextCreditsRenderInfo[creditIndex].textScaling; + print_text_mode_1(arg0->column, arg0->row, gCreditsText[creditIndex], arg0->param1 * someScaling, + arg0->paramf * someScaling, someScaling); } } @@ -8604,427 +8589,426 @@ void func_800A79F4(s32 arg0, char* arg1) { arg1[4] = '\0'; } -void func_800A7A4C(s32 arg0) { - s32 var_s0; - s32 var_v1; - s32 var_v1_2; +void handle_menus_with_pri_arg(s32 priSpecial) { + s32 j; + s32 isRendered; + s32 i; s32 type; - struct_8018D9E0_entry* var_s1; - s32 one = 1; + MenuItem* menuItem; - for (var_v1_2 = 0; var_v1_2 < D_8018D9E0_SIZE; var_v1_2++) { - var_v1 = 0; - var_s1 = &D_8018D9E0[var_v1_2]; - type = var_s1->type; - if ((type == 4) || (type == 5) || (type == 0x000000C7)) { - if (arg0 != 0) { - var_v1 = 1; + for (i = 0; i < MENU_ITEMS_MAX; i++) { + isRendered = false; + menuItem = &gMenuItems[i]; + type = menuItem->type; + if ((type == MENU_ITEM_UI_NO_CONTROLLER) || (type == MENU_ITEM_UI_START_RECORD_TIME) || (type == MENU_ITEM_PAUSE)) { + if (priSpecial != 0) { + isRendered = true; } - } else if (arg0 == 0) { - var_v1 = 1; + } else if (priSpecial == 0) { + isRendered = true; } - if (var_v1 == 0) { + if (isRendered == false) { continue; } switch (type) { /* switch 8; irregular */ - case 0xFA: /* switch 8 */ - if (s8018ED94 < 0x50) { - D_800E8534 = 3.0f; - } else if (s8018ED94 < 0x5A) { - if (D_800E8530 < 1.0) { - D_800E8530 += 0.1; + case MENU_ITEM_UI_LOGO_INTRO: /* switch 8 */ + if (sIntroLogoTimer < 0x50) { + sIntroModelSpeed = 3.0f; + } else if (sIntroLogoTimer < 0x5A) { + if (sIntroModelMotionSpeed < 1.0) { + sIntroModelMotionSpeed += 0.1; } - D_800E8534 += 0.1; - } else if (s8018ED94 < 0xA0) { - D_800E8534 += 0.1; - } else if (s8018ED94 < 0x190) { - D_800E8534 += 0.3; + sIntroModelSpeed += 0.1; + } else if (sIntroLogoTimer < 0xA0) { + sIntroModelSpeed += 0.1; + } else if (sIntroLogoTimer < 0x190) { + sIntroModelSpeed += 0.3; } - D_8018EDCC -= D_800E8534; - s8018ED94 += 1; - if (D_8018EDCC < -360.0f) { - D_8018EDCC += 360.0f; + gIntroModelRotY -= sIntroModelSpeed; + sIntroLogoTimer += 1; + if (gIntroModelRotY < -360.0f) { + gIntroModelRotY += 360.0f; } - var_s1->unk1C++; - if (var_s1->unk1C == 0x000000B4) { + menuItem->param1++; + if (menuItem->param1 == 0x000000B4) { func_8009E000(0x00000028); func_800CA388(0x64U); - D_8018EDE0 = 0; + gMenuFadeType = 0; } - if ((var_s1->unk20 != 0) && (var_s1->unk1C >= 3)) { - var_s1->unk20 = 0; + if ((menuItem->param2 != 0) && (menuItem->param1 >= 3)) { + menuItem->param2 = 0; play_sound2(SOUND_INTRO_LOGO); } break; - case 0xDA: /* switch 8 */ - func_800A954C(var_s1); + case MENU_ITEM_TYPE_0DA: /* switch 8 */ + func_800A954C(menuItem); break; - case 0xD6: /* switch 8 */ - func_800A9710(var_s1); + case MENU_ITEM_TYPE_0D6: /* switch 8 */ + func_800A9710(menuItem); break; - case 0xD4: /* switch 8 */ - func_800A97BC(var_s1); + case MENU_ITEM_TYPE_0D4: /* switch 8 */ + func_800A97BC(menuItem); break; - case 0x5: /* switch 8 */ - switch (var_s1->cursor) { /* switch 9; irregular */ + case MENU_ITEM_UI_START_RECORD_TIME: /* switch 8 */ + switch (menuItem->state) { /* switch 9; irregular */ case 0: /* switch 9 */ if (gControllerFive->button & R_TRIG) { - var_s1->cursor = (s32) 1U; + menuItem->state = (s32) 1U; play_sound2(SOUND_ACTION_PING); } else { - var_s1->visible = 0; + menuItem->visible = 0; } break; - case 1: /* switch 9 */ - default: /* switch 9 */ - var_s1->visible = one; + case 1: + default: + menuItem->visible = 1; break; } break; - case 0xA: /* switch 8 */ - func_800AA280(var_s1); + case MENU_ITEM_UI_GAME_SELECT: + func_800AA280(menuItem); break; - case 0x10: /* switch 8 */ - case 0x11: /* switch 8 */ - switch (gMainMenuSelectionDepth) { /* switch 5 */ - case OPTIONS_SELECTION: /* switch 5 */ - case DATA_SELECTION: /* switch 5 */ - case PLAYER_NUM_SELECTION: /* switch 5 */ - func_800A9B9C(var_s1); + case MAIN_MENU_OPTION_GFX: + case MAIN_MENU_DATA_GFX: + switch (gMainMenuSelection) { + case MAIN_MENU_OPTION: + case MAIN_MENU_DATA: + case MAIN_MENU_PLAYER_SELECT: + func_800A9B9C(menuItem); break; - case GAME_MODE_SELECTION: /* switch 5 */ - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 5 */ - case CONFIRM_OK_SELECTION: /* switch 5 */ - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: /* switch 5 */ - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: /* switch 5 */ - func_800A9C40(var_s1); + case MAIN_MENU_MODE_SELECT: + case MAIN_MENU_MODE_SUB_SELECT: + case MAIN_MENU_OK_SELECT: + case MAIN_MENU_OK_SELECT_GO_BACK: + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: + func_800A9C40(menuItem); break; } break; - case 0xF: /* switch 8 */ - func_800AA280(var_s1); - func_800A9A98(var_s1); + case MENU_ITEM_UI_OK: + func_800AA280(menuItem); + update_ok_menu_item(menuItem); break; - case 0xB: /* switch 8 */ - case 0xC: /* switch 8 */ - case 0xD: /* switch 8 */ - case 0xE: /* switch 8 */ - switch (gMainMenuSelectionDepth) { /* switch 6 */ - case OPTIONS_SELECTION: /* switch 6 */ - case DATA_SELECTION: /* switch 6 */ - case PLAYER_NUM_SELECTION: /* switch 6 */ - func_800A9B9C(var_s1); + case MENU_ITEM_UI_1P_GAME: + case MENU_ITEM_UI_2P_GAME: + case MENU_ITEM_UI_3P_GAME: + case MENU_ITEM_UI_4P_GAME: + switch (gMainMenuSelection) { /* switch 6 */ + case MAIN_MENU_OPTION: /* switch 6 */ + case MAIN_MENU_DATA: /* switch 6 */ + case MAIN_MENU_PLAYER_SELECT: /* switch 6 */ + func_800A9B9C(menuItem); break; - case GAME_MODE_SELECTION: /* switch 6 */ - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 6 */ - case CONFIRM_OK_SELECTION: /* switch 6 */ - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: /* switch 6 */ - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: /* switch 6 */ - func_800A9C40(var_s1); + case MAIN_MENU_MODE_SELECT: /* switch 6 */ + case MAIN_MENU_MODE_SUB_SELECT: /* switch 6 */ + case MAIN_MENU_OK_SELECT: /* switch 6 */ + case MAIN_MENU_OK_SELECT_GO_BACK: /* switch 6 */ + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: /* switch 6 */ + func_800A9C40(menuItem); break; } - func_800A9D5C(var_s1); + func_800A9D5C(menuItem); break; - case 0x12: /* switch 8 */ - case 0x13: /* switch 8 */ - case 0x14: /* switch 8 */ - case 0x15: /* switch 8 */ - case 0x16: /* switch 8 */ - case 0x17: /* switch 8 */ - case 0x18: /* switch 8 */ - case 0x19: /* switch 8 */ - func_800A9E58(var_s1); + case MAIN_MENU_50CC: + case MAIN_MENU_100CC: + case MAIN_MENU_150CC: + case MAIN_MENU_EXTRA_CC: + case MENU_ITEM_TYPE_016: + case MENU_ITEM_TYPE_017: + case MAIN_MENU_TIME_TRIALS_BEGIN: + case MAIN_MENU_TIME_TRIALS_DATA: + func_800A9E58(menuItem); break; - case 0x1B: /* switch 8 */ - func_800AA2EC(var_s1); + case MENU_ITEM_TYPE_01B: + func_800AA2EC(menuItem); break; - case 0x34: /* switch 8 */ - case 0x35: /* switch 8 */ - case 0x36: /* switch 8 */ - case 0x37: /* switch 8 */ - func_800AADD4(var_s1); + case CHARACTER_SELECT_MENU_1P_CURSOR: + case CHARACTER_SELECT_MENU_2P_CURSOR: + case CHARACTER_SELECT_MENU_3P_CURSOR: + case CHARACTER_SELECT_MENU_4P_CURSOR: + update_cursor(menuItem); break; - case 0x2B: /* switch 8 */ - case 0x2C: /* switch 8 */ - case 0x2D: /* switch 8 */ - case 0x2E: /* switch 8 */ - case 0x2F: /* switch 8 */ - case 0x30: /* switch 8 */ - case 0x31: /* switch 8 */ - case 0x32: /* switch 8 */ - func_800AAC18(var_s1); - switch (var_s1->type) { /* switch 7 */ - case 43: /* switch 7 */ - case 44: /* switch 7 */ - case 45: /* switch 7 */ - case 46: /* switch 7 */ - case 47: /* switch 7 */ - case 48: /* switch 7 */ - case 49: /* switch 7 */ - case 50: /* switch 7 */ - func_800AA69C(var_s1); + 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_800AAC18(menuItem); + switch (menuItem->type) { + 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_800AA69C(menuItem); break; } - switch (D_8018EDEE) { /* switch 10; irregular */ - case 1: /* switch 10 */ - func_800AAB90(var_s1); + switch (gPlayerSelectMenuSelection) { + case PLAYER_SELECT_MENU_MAIN: + func_800AAB90(menuItem); break; - case 2: /* switch 10 */ - case 3: /* switch 10 */ - func_800AAA9C(var_s1); + case PLAYER_SELECT_MENU_OK: + case PLAYER_SELECT_MENU_OK_GO_BACK: + func_800AAA9C(menuItem); break; } - func_800AAE18(var_s1); + func_800AAE18(menuItem); break; - case 0x33: /* switch 8 */ - case 0x5D: /* switch 8 */ - func_800A9A98(var_s1); + case CHARACTER_SELECT_MENU_OK: + case COURSE_SELECT_OK: + update_ok_menu_item(menuItem); break; - case 0x53: /* switch 8 */ - case 0x54: /* switch 8 */ - case 0x55: /* switch 8 */ - case 0x56: /* switch 8 */ - func_800AB164(var_s1); - switch (D_8018EDEC) { /* switch 11; irregular */ - case 1: /* switch 11 */ - func_800AB020(var_s1); + case COURSE_SELECT_MUSHROOM_CUP: + case COURSE_SELECT_FLOWER_CUP: + case COURSE_SELECT_STAR_CUP: + case COURSE_SELECT_SPECIAL_CUP: + func_800AB164(menuItem); + switch (gSubMenuSelection) { + case 1: + func_800AB020(menuItem); break; - case 2: /* switch 11 */ - case 3: /* switch 11 */ - func_800AB098(var_s1); + case 2: + case 3: + func_800AB098(menuItem); break; } break; - case 0x58: /* switch 8 */ - case 0x59: /* switch 8 */ - case 0x5A: /* switch 8 */ - case 0x5B: /* switch 8 */ - func_800AB260(var_s1); + case MENU_ITEM_TYPE_058: + case COURSE_SELECT_COURSE_NAMES: + case MENU_ITEM_TYPE_05A: + case MENU_ITEM_TYPE_05B: + func_800AB260(menuItem); break; - case 0x64: /* switch 8 */ - func_800AB314(var_s1); + case MENU_ITEM_TYPE_064: + func_800AB314(menuItem); break; - case 0x5F: /* switch 8 */ - case 0x60: /* switch 8 */ - case 0x61: /* switch 8 */ - case 0x62: /* switch 8 */ - func_800AB290(var_s1); + case MENU_ITEM_TYPE_05F: + case MENU_ITEM_TYPE_060: + case MENU_ITEM_TYPE_061: + case MENU_ITEM_TYPE_062: + func_800AB290(menuItem); break; - case 0x65: /* switch 8 */ - case 0x66: /* switch 8 */ - func_800AB904(var_s1); + case MENU_ITEM_TYPE_065: + case MENU_ITEM_TYPE_066: + func_800AB904(menuItem); break; - case 0x67: /* switch 8 */ - func_800AB9B0(var_s1); + case MENU_ITEM_TYPE_067: + func_800AB9B0(menuItem); break; - case 0x78: /* switch 8 */ - case 0x79: /* switch 8 */ - case 0x7A: /* switch 8 */ - case 0x7B: /* switch 8 */ - case 0x8C: /* switch 8 */ - func_800ABAE8(var_s1); + case MENU_ITEM_TYPE_078: + case MENU_ITEM_TYPE_079: + case MENU_ITEM_TYPE_07A: + case MENU_ITEM_TYPE_07B: + case MENU_ITEM_TYPE_08C: + func_800ABAE8(menuItem); break; - case 0x8D: /* switch 8 */ - func_800ABB24(var_s1); + case MENU_ITEM_TYPE_08D: + func_800ABB24(menuItem); break; - case 0x7C: /* switch 8 */ - case 0x7D: /* switch 8 */ - case 0x7E: /* switch 8 */ - case 0x7F: /* switch 8 */ - case 0x80: /* switch 8 */ - case 0x81: /* switch 8 */ - case 0x82: /* switch 8 */ - case 0x83: /* switch 8 */ - case 0x84: /* switch 8 */ - case 0x85: /* switch 8 */ - case 0x86: /* switch 8 */ - case 0x87: /* switch 8 */ - case 0x88: /* switch 8 */ - case 0x89: /* switch 8 */ - case 0x8A: /* switch 8 */ - case 0x8B: /* switch 8 */ - func_800ABBCC(var_s1); + 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_800ABBCC(menuItem); break; - case 0x96: /* switch 8 */ - func_800ABC38(var_s1); + case MENU_ITEM_TYPE_096: + func_800ABC38(menuItem); break; - case 0x97: /* switch 8 */ - func_800ABEAC(var_s1); + case MENU_ITEM_TYPE_097: + func_800ABEAC(menuItem); break; - case 0x5E: /* switch 8 */ - func_800AC300(var_s1); + case MENU_ITEM_TYPE_05E: + func_800AC300(menuItem); break; - case 0xAA: /* switch 8 */ - func_800AC324(var_s1); + case MENU_ITEM_TYPE_0AA: + func_800AC324(menuItem); break; - case 0xAB: /* switch 8 */ - func_800AC458(var_s1); + case MENU_ITEM_TYPE_0AB: + func_800AC458(menuItem); break; - case 0xAC: /* switch 8 */ - func_800ACA14(var_s1); + case MENU_ITEM_TYPE_0AC: + func_800ACA14(menuItem); break; - case 0xAF: /* switch 8 */ - func_800AC978(var_s1); + case MENU_ITEM_TYPE_0AF: + func_800AC978(menuItem); break; - case 0xB0: /* switch 8 */ - func_800ACC50(var_s1); + case MENU_ITEM_TYPE_0B0: + func_800ACC50(menuItem); break; - case 0xB1: /* switch 8 */ - case 0xB2: /* switch 8 */ - case 0xB3: /* switch 8 */ - case 0xB4: /* switch 8 */ - func_800ACF40(var_s1); + case MENU_ITEM_TYPE_0B1: + case MENU_ITEM_TYPE_0B2: + case MENU_ITEM_TYPE_0B3: + case MENU_ITEM_TYPE_0B4: + func_800ACF40(menuItem); break; - case 0xB9: /* switch 8 */ - func_800AD1A4(var_s1); + case MENU_ITEM_TYPE_0B9: + func_800AD1A4(menuItem); break; - case 0xBA: /* switch 8 */ - func_800AD2E8(var_s1); + case MENU_ITEM_TYPE_0BA: + func_800AD2E8(menuItem); break; - case 0xBC: /* switch 8 */ - func_800AEC54(var_s1); + case MENU_ITEM_ANNOUNCE_GHOST: + func_800AEC54(menuItem); break; - case 0xC7: /* switch 8 */ - func_800ADF48(var_s1); + case MENU_ITEM_PAUSE: + func_800ADF48(menuItem); break; - case 0xBD: /* switch 8 */ - func_800AE218(var_s1); + case MENU_ITEM_END_COURSE_OPTION: + func_800AE218(menuItem); break; - case 0xE6: /* switch 8 */ - func_800AEDBC(var_s1); + case MENU_ITEM_DATA_COURSE_IMAGE: + func_800AEDBC(menuItem); break; - case 0xE8: /* switch 8 */ - func_800AEE90(var_s1); + case MENU_ITEM_DATA_COURSE_SELECTABLE: + func_800AEE90(menuItem); break; - case 0xE9: /* switch 8 */ - func_800AEEBC(var_s1); + case MENU_ITEM_TYPE_0E9: + func_800AEEBC(menuItem); break; - case 0xEA: /* switch 8 */ - func_800AEEE8(var_s1); + case MENU_ITEM_TYPE_0EA: + func_800AEEE8(menuItem); break; - case 0xBE: /* switch 8 */ - func_800AEF14(var_s1); + case MENU_ITEM_TYPE_0BE: + func_800AEF14(menuItem); break; - case 0x10E: /* switch 8 */ - func_800AEF74(var_s1); + case MENU_ITEM_TYPE_10E: + func_800AEF74(menuItem); break; - case 0x12B: /* switch 8 */ - func_800AF004(var_s1); + case MENU_ITEM_TYPE_12B: + func_800AF004(menuItem); break; - case 0x12C: /* switch 8 */ - case 0x12D: /* switch 8 */ - case 0x12E: /* switch 8 */ - case 0x12F: /* switch 8 */ - func_800AF1AC(var_s1); + case MENU_ITEM_TYPE_12C: + case MENU_ITEM_TYPE_12D: + case MENU_ITEM_TYPE_12E: + case MENU_ITEM_TYPE_12F: + func_800AF1AC(menuItem); break; - case 0x130: /* switch 8 */ - func_800AF270(var_s1); + case MENU_ITEM_TYPE_130: + func_800AF270(menuItem); break; - case 0x190: /* switch 8 */ - case 0x191: /* switch 8 */ - case 0x192: /* switch 8 */ - case 0x193: /* switch 8 */ - case 0x194: /* switch 8 */ - case 0x195: /* switch 8 */ - case 0x196: /* switch 8 */ - case 0x197: /* switch 8 */ - case 0x198: /* switch 8 */ - case 0x199: /* switch 8 */ - case 0x19A: /* switch 8 */ - case 0x19B: /* switch 8 */ - case 0x19C: /* switch 8 */ - case 0x19D: /* switch 8 */ - case 0x19E: /* switch 8 */ - case 0x19F: /* switch 8 */ - case 0x1A0: /* switch 8 */ - case 0x1A1: /* switch 8 */ - case 0x1A2: /* switch 8 */ - case 0x1A3: /* switch 8 */ - case 0x1A4: /* switch 8 */ - case 0x1A5: /* switch 8 */ - case 0x1A6: /* switch 8 */ - case 0x1A7: /* switch 8 */ - case 0x1A8: /* switch 8 */ - case 0x1A9: /* switch 8 */ - case 0x1AA: /* switch 8 */ - case 0x1AB: /* switch 8 */ - case 0x1AC: /* switch 8 */ - case 0x1AD: /* switch 8 */ - case 0x1AE: /* switch 8 */ - case 0x1AF: /* switch 8 */ - case 0x1B0: /* switch 8 */ - case 0x1B1: /* switch 8 */ - case 0x1B2: /* switch 8 */ - case 0x1B3: /* switch 8 */ - case 0x1B4: /* switch 8 */ - case 0x1B5: /* switch 8 */ - case 0x1B6: /* switch 8 */ - case 0x1B7: /* switch 8 */ - case 0x1B8: /* switch 8 */ - case 0x1B9: /* switch 8 */ - case 0x1BA: /* switch 8 */ - case 0x1BB: /* switch 8 */ - case 0x1BC: /* switch 8 */ - case 0x1BD: /* switch 8 */ - case 0x1BE: /* switch 8 */ - case 0x1BF: /* switch 8 */ - case 0x1C0: /* switch 8 */ - case 0x1C1: /* switch 8 */ - case 0x1C2: /* switch 8 */ - case 0x1C3: /* switch 8 */ - case 0x1C4: /* switch 8 */ - case 0x1C5: /* switch 8 */ - case 0x1C6: /* switch 8 */ - case 0x1C7: /* switch 8 */ - case 0x1C8: /* switch 8 */ - case 0x1C9: /* switch 8 */ - case 0x1CA: /* switch 8 */ - case 0x1CB: /* switch 8 */ - case 0x1CC: /* switch 8 */ - case 0x1CD: /* switch 8 */ - case 0x1CE: /* switch 8 */ - func_800AF480(var_s1); + 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: + func_800AF480(menuItem); break; - case 0: - case 1: - case 2: - case 3: - case 4: + case MENU_ITEM_UI_NONE: + case MENU_ITEM_UI_START_BACKGROUND: + case MENU_ITEM_UI_LOGO_AND_COPYRIGHT: + case MENU_ITEM_UI_PUSH_START_BUTTON: + case MENU_ITEM_UI_NO_CONTROLLER: break; } } - for (var_s0 = 0; var_s0 < 0x10; var_s0++) { - for (var_v1_2 = 0; var_v1_2 < D_8018D9E0_SIZE; var_v1_2++) { - var_v1 = 0; - var_s1 = &D_8018D9E0[var_v1_2]; - if (var_s1 && var_s1) {} // ? - type = var_s1->type; - if ((type == 4) || (type == 5) || (type == 0x000000C7)) { - if (arg0 != 0) { - var_v1 = 1; + for (j = 0; j < MENU_ITEM_PRIORITY_MAX; j++) { + for (i = 0; i < MENU_ITEMS_MAX; i++) { + isRendered = false; + menuItem = &gMenuItems[i]; + if (menuItem && menuItem) {} // ? + type = menuItem->type; + if ((type == MENU_ITEM_UI_NO_CONTROLLER) || (type == MENU_ITEM_UI_START_RECORD_TIME) || (type == MENU_ITEM_PAUSE)) { + if (priSpecial != 0) { + isRendered = true; } - } else if (arg0 == 0) { - var_v1 = 1; + } else if (priSpecial == 0) { + isRendered = true; } - if ((var_v1 != 0) && (var_s0 == (s8) var_s1->priority)) { - func_8009F5E0(var_s1); + if ((isRendered) && (j == (s8) menuItem->priority)) { + render_menus(menuItem); } } } } -void func_800A8230(void) { - func_800A7A4C(0); +void handle_menus_default(void) { + handle_menus_with_pri_arg(0); } -void func_800A8250(void) { - func_800A7A4C(1); +void handle_menus_special(void) { + handle_menus_with_pri_arg(1); } -void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) { +void func_800A8270(s32 arg0, MenuItem* arg1) { s32 temp_t1; s32 temp_t6; s32 var_s0; @@ -9032,8 +9016,8 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) { s32 var_s3; s32 var_s4; - if (arg1->unk1C < 0x20) { - temp_t6 = (arg1->unk1C << 6) / 64; + if (arg1->param1 < 0x20) { + temp_t6 = (arg1->param1 << 6) / 64; temp_t1 = arg1->column; var_s0 = arg1->row; var_s3 = temp_t1 + temp_t6; @@ -9042,8 +9026,8 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) { gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); if ((arg0 + 1) == gPlayerCount) { - if ((gMainMenuSelectionDepth == OPTIONS_SELECTION) || (gMainMenuSelectionDepth == DATA_SELECTION) || - (gMainMenuSelectionDepth == PLAYER_NUM_SELECTION)) { + if ((gMainMenuSelection == MAIN_MENU_OPTION) || (gMainMenuSelection == MAIN_MENU_DATA) || + (gMainMenuSelection == MAIN_MENU_PLAYER_SELECT)) { gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35); } else { gDisplayListHead = draw_box_fill(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35, 0x000000FF, @@ -9053,8 +9037,8 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) { gDisplayListHead = func_80098FC8(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35); } for (var_s0 += 0x41, var_s2 = 0; var_s2 <= gPlayerModeSelection[arg0]; var_s2++, var_s0 += 0x12) { - if ((var_s2 == D_800E86AC[arg0]) && ((arg0 + 1) == gPlayerCount) && (gMainMenuSelectionDepth >= 4)) { - if (gMainMenuSelectionDepth == GAME_MODE_SELECTION) { + if ((var_s2 == gGameModeMenuColumn[arg0]) && ((arg0 + 1) == gPlayerCount) && (gMainMenuSelection >= 4)) { + if (gMainMenuSelection == MAIN_MENU_MODE_SELECT) { gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11); } else { @@ -9069,39 +9053,39 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry* arg1) { } } -void func_800A8564(struct_8018D9E0_entry* arg0) { +void func_800A8564(MenuItem* arg0) { s32 sp34; s32 var_a1; - MkTexture* var_a0; + MenuTexture* var_a0; s32 temp_a2; s32 temp_t0; var_a1 = 0; - switch (arg0->type) { /* irregular */ + switch (arg0->type) { case 0xF: var_a0 = D_0200487C; - if ((gMainMenuSelectionDepth == CONFIRM_OK_SELECTION) || - (gMainMenuSelectionDepth == CONFIRM_OK_SELECTION_FROM_BACK_OUT)) { + if ((gMainMenuSelection == MAIN_MENU_OK_SELECT) || + (gMainMenuSelection == MAIN_MENU_OK_SELECT_GO_BACK)) { var_a1 = 1; } break; case 0x33: var_a0 = D_02004B74; - if ((D_8018EDEE == 2) || (D_8018EDEE == 3)) { + if ((gPlayerSelectMenuSelection == PLAYER_SELECT_MENU_OK) || (gPlayerSelectMenuSelection == PLAYER_SELECT_MENU_OK_GO_BACK)) { var_a1 = 1; } break; case 0x5D: var_a0 = D_02004E80; - if (D_8018EDEC == 3) { + if (gSubMenuSelection == SUB_MENU_MAP_SELECT_OK) { var_a1 = 1; } break; default: return; } - if (arg0->unk1C < 0x20) { - sp34 = (arg0->unk1C << 5) / 64; + if (arg0->param1 < 0x20) { + sp34 = (arg0->param1 << 5) / 64; var_a0 = segmented_to_virtual_dupe(var_a0); temp_t0 = arg0->column + var_a0->dX; temp_a2 = arg0->row + var_a0->dY; @@ -9115,50 +9099,50 @@ void func_800A8564(struct_8018D9E0_entry* arg0) { } } -void func_800A86E8(struct_8018D9E0_entry* arg0) { +void func_800A86E8(MenuItem* arg0) { gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x64, arg0->row + 0x27, 1, 1, 1, 0xFF); } // Credit for the use of ternary operators goes to LLONSIT -void func_800A874C(struct_8018D9E0_entry* arg0) { +void func_800A874C(MenuItem* arg0) { UNUSED s32 stackPadding0; - char sp58[3]; + char buffer[3]; UNUSED s32 stackPadding1; UNUSED s32 stackPadding2; s32 temp_s1; UNUSED u32 var_v0; u32 var_s2; - set_text_color(1); - var_s2 = arg0->type == 0x00000065 ? func_800B4E24(0) : func_800B4F2C(); + set_text_color(TEXT_GREEN); + var_s2 = arg0->type == MENU_ITEM_TYPE_065 ? func_800B4E24(0) : func_800B4F2C(); temp_s1 = var_s2 & 0xFFFFF; - get_time_record_minutes((temp_s1 ^ 0), sp58); - text_draw(arg0->column + 5, arg0->row + 0x21, sp58, 0, 0.6f, 0.65f); - func_80093324(arg0->column + 0xE, arg0->row + 0x21, "'", 0, 0.6f, 0.65f); - get_time_record_seconds(temp_s1, sp58); - text_draw(arg0->column + 0x16, arg0->row + 0x21, sp58, 0, 0.6f, 0.65f); - func_80093324(arg0->column + 0x20, arg0->row + 0x21, "\"", 0, 0.6f, 0.65f); - get_time_record_centiseconds(temp_s1, sp58); - text_draw(arg0->column + 0x29, arg0->row + 0x21, sp58, 0, 0.6f, 0.65f); + get_time_record_minutes((temp_s1 ^ 0), buffer); + text_draw(arg0->column + 5, arg0->row + 0x21, buffer, 0, 0.6f, 0.65f); + print_text_mode_1(arg0->column + 0xE, arg0->row + 0x21, "'", 0, 0.6f, 0.65f); + get_time_record_seconds(temp_s1, buffer); + text_draw(arg0->column + 0x16, arg0->row + 0x21, buffer, 0, 0.6f, 0.65f); + print_text_mode_1(arg0->column + 0x20, arg0->row + 0x21, "\"", 0, 0.6f, 0.65f); + get_time_record_centiseconds(temp_s1, buffer); + text_draw(arg0->column + 0x29, arg0->row + 0x21, buffer, 0, 0.6f, 0.65f); var_s2 = (u32) temp_s1 < 0x927C0U ? var_s2 >> 0x14 : 8; - func_800936B8(arg0->column + 0x60, arg0->row + 0x21, D_800E76A8[var_s2], 0, 0.6f, 0.65f); + print_text1_left(arg0->column + 0x60, arg0->row + 0x21, D_800E76A8[var_s2], 0, 0.6f, 0.65f); } -void func_800A890C(s32 arg0, struct_8018D9E0_entry* arg1) { +void func_800A890C(s32 arg0, MenuItem* arg1) { s32 temp_a2; s32 temp_t1; s32 temp_t7; - if (arg1->unk1C < 32) { + if (arg1->param1 < 32) { if (1) {} - temp_t7 = (arg1->unk1C * 65) / 64; + temp_t7 = (arg1->param1 * 65) / 64; temp_t1 = arg1->column; temp_a2 = arg1->row; gDPPipeSync(gDisplayListHead++); 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 == SUB_MENU_MAP_SELECT_CUP) { gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39); } else { @@ -9172,7 +9156,7 @@ void func_800A890C(s32 arg0, struct_8018D9E0_entry* arg1) { } } -void func_800A8A98(struct_8018D9E0_entry* arg0) { +void func_800A8A98(MenuItem* arg0) { s32 temp_s2; s32 temp_s3; s32 someIndex; @@ -9183,8 +9167,8 @@ void func_800A8A98(struct_8018D9E0_entry* 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 > SUB_MENU_MAP_SELECT_CUP) && (gModeSelection != GRAND_PRIX)) { + if ((gSubMenuSelection == SUB_MENU_MAP_SELECT_COURSE) || (gSubMenuSelection == SUB_MENU_MAP_SELECT_BATTLE_COURSE)) { 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); @@ -9202,23 +9186,23 @@ void func_800A8A98(struct_8018D9E0_entry* arg0) { } } -void func_800A8CA4(struct_8018D9E0_entry* arg0) { +void func_800A8CA4(MenuItem* arg0) { s32 temp_s2; s32 temp_s3; s32 var_s0; - struct_8018D9E0_entry* temp_v0; + MenuItem* temp_v0; - temp_v0 = find_8018D9E0_entry_dupe(0x00000064); + temp_v0 = find_menu_items_dupe(MENU_ITEM_TYPE_064); temp_s2 = arg0->column; temp_s3 = arg0->row; gDPPipeSync(gDisplayListHead++); 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 != SUB_MENU_MAP_SELECT_OK) { for (var_s0 = 0; var_s0 < 4; var_s0++) { // Wut? - if ((var_s0 != (temp_v0->unk1C % 4)) != 0) { + if ((var_s0 != (temp_v0->param1 % 4)) != 0) { gDisplayListHead = draw_box_wide(gDisplayListHead, D_800E7208[var_s0][0].column + temp_s2, D_800E7208[var_s0][0].row + temp_s3, D_800E7208[var_s0][1].column + temp_s2, @@ -9229,22 +9213,22 @@ void func_800A8CA4(struct_8018D9E0_entry* arg0) { } } -void func_800A8E14(UNUSED struct_8018D9E0_entry* arg0) { +void render_battle_introduction(UNUSED MenuItem* arg0) { set_text_color(TEXT_YELLOW); - draw_text(0x98, 0x44, D_800E77A8[0], 0, 1.0f, 1.0f); - func_80093324(0x17, 0x58, D_800E77A8[1], 0, 0.7f, 0.8f); - func_80093324(0x17, 0x6A, D_800E77A8[2], 0, 0.7f, 0.8f); + 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); + print_text_mode_1(0x17, 0x6A, gTextBattleIntroduction[2], 0, 0.7f, 0.8f); } -void func_800A8EC0(struct_8018D9E0_entry* arg0) { - if (arg0->unk20 != 0) { +void func_800A8EC0(MenuItem* arg0) { + if (arg0->param2 != 0) { func_8009A76C(arg0->D_8018DEE0_index, arg0->column, arg0->row, -1); set_text_color(TEXT_YELLOW); - func_80093324(arg0->column + 0x20, arg0->row + 0x28, D_800E7678[arg0->unk20], 0, 0.7f, 0.7f); + print_text_mode_1(arg0->column + 0x20, arg0->row + 0x28, gCupText[arg0->param2], 0, 0.7f, 0.7f); } } -void func_800A8F48(UNUSED struct_8018D9E0_entry* arg0) { +void func_800A8F48(UNUSED MenuItem* arg0) { UNUSED Gfx* temp_v0_2; Unk_D_800E70A0* temp_v0; s16 temp_s0; @@ -9252,8 +9236,8 @@ void func_800A8F48(UNUSED struct_8018D9E0_entry* arg0) { s32 temp_s2; s32 var_s1; - switch (D_8018EDEC) { /* irregular */ - case 1: + switch (gSubMenuSelection) { /* irregular */ + case SUB_MENU_MAP_SELECT_CUP: for (var_s1 = 0; var_s1 < 4; var_s1++) { if (func_800B639C((GetCupIndex() * 4) + var_s1) >= 0) { temp_v0 = &D_800E7168[var_s1]; @@ -9267,24 +9251,24 @@ void func_800A8F48(UNUSED struct_8018D9E0_entry* arg0) { } } break; - case 2: + case SUB_MENU_MAP_SELECT_COURSE: default: if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) >= 0) { gDisplayListHead = func_80098FC8(gDisplayListHead, 0x00000057, 0x00000070, 0x00000096, 0x00000081); - gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A0C, 0x00000057, 0x00000070); + gDisplayListHead = render_menu_textures(gDisplayListHead, D_02004A0C, 0x00000057, 0x00000070); } break; } } -void func_800A90D4(UNUSED s32 arg0, struct_8018D9E0_entry* arg1) { +void func_800A90D4(UNUSED s32 arg0, MenuItem* arg1) { s32 temp_a2; s32 temp_t1; s32 temp_t7; - if (arg1->unk1C < 0x20) { + if (arg1->param1 < 0x20) { if (1) {} - temp_t7 = (arg1->unk1C * 0x41) / 0x40; + temp_t7 = (arg1->param1 * 0x41) / 0x40; temp_t1 = arg1->column; temp_a2 = arg1->row; gDPPipeSync(gDisplayListHead++); @@ -9295,12 +9279,12 @@ void func_800A90D4(UNUSED s32 arg0, struct_8018D9E0_entry* arg1) { } } -void func_800A91D8(struct_8018D9E0_entry* arg0, s32 columnTarget, s32 rowTarget) { +void func_800A91D8(MenuItem* arg0, s32 columnTarget, s32 rowTarget) { func_800A9208(arg0, columnTarget); func_800A9278(arg0, rowTarget); } -void func_800A9208(struct_8018D9E0_entry* arg0, s32 columnTarget) { +void func_800A9208(MenuItem* arg0, s32 columnTarget) { s32 step = columnTarget - arg0->column; if (step != 0) { @@ -9319,7 +9303,7 @@ void func_800A9208(struct_8018D9E0_entry* arg0, s32 columnTarget) { arg0->column += step; } -void func_800A9278(struct_8018D9E0_entry* arg0, s32 rowTarget) { +void func_800A9278(MenuItem* arg0, s32 rowTarget) { s32 step = rowTarget - arg0->row; if (step != 0) { @@ -9338,7 +9322,7 @@ void func_800A9278(struct_8018D9E0_entry* arg0, s32 rowTarget) { arg0->row += step; } -void func_800A92E8(struct_8018D9E0_entry* arg0, s32 columnTarget) { +void func_800A92E8(MenuItem* arg0, s32 columnTarget) { s32 step = columnTarget - arg0->column; if (step != 0) { @@ -9371,7 +9355,7 @@ void func_800A92E8(struct_8018D9E0_entry* arg0, s32 columnTarget) { } // Appears to be a copy of func_800A9278 -UNUSED void func_800A939C(struct_8018D9E0_entry* arg0, s32 rowTarget) { +UNUSED void func_800A939C(MenuItem* arg0, s32 rowTarget) { s32 step = rowTarget - arg0->row; if (step != 0) { @@ -9390,7 +9374,7 @@ UNUSED void func_800A939C(struct_8018D9E0_entry* arg0, s32 rowTarget) { arg0->row += step; } -void func_800A940C(struct_8018D9E0_entry* arg0, s32 columnTarget) { +void func_800A940C(MenuItem* arg0, s32 columnTarget) { s32 step = columnTarget - arg0->column; if (step != 0) { @@ -9421,7 +9405,7 @@ void func_800A940C(struct_8018D9E0_entry* arg0, s32 columnTarget) { } } -void func_800A94C8(struct_8018D9E0_entry* arg0, s32 columnTarget, s32 arg2) { +void func_800A94C8(MenuItem* arg0, s32 columnTarget, s32 arg2) { s32 step; if (columnTarget == arg0->column) { @@ -9445,24 +9429,24 @@ void func_800A94C8(struct_8018D9E0_entry* arg0, s32 columnTarget, s32 arg2) { } } -void func_800A954C(struct_8018D9E0_entry* arg0) { +void func_800A954C(MenuItem* arg0) { // Cycle lasts 26 (0x1A) frames - if (arg0->cursor == 0) { + if (arg0->state == 0) { // Move highlight from yellow to red - arg0->unk20 = (s32) (u32) ((((f32) (0xC - arg0->unk1C) * 127.0f) / 12.0f) + 128.0f); + arg0->param2 = (s32) (u32) ((((f32) (0xC - arg0->param1) * 127.0f) / 12.0f) + 128.0f); } else { // Move highlight from red to yellow - arg0->unk20 = (s32) (u32) ((((f64) (f32) arg0->unk1C * 127.0) / 12.0) + 128.0); + arg0->param2 = (s32) (u32) ((((f64) (f32) arg0->param1 * 127.0) / 12.0) + 128.0); } - arg0->unk1C++; - if (arg0->unk1C >= 0xC) { + arg0->param1++; + if (arg0->param1 >= 0xC) { // Every 13 (0xC) frames reverse direction - arg0->unk1C = 0; - arg0->cursor ^= 1; + arg0->param1 = 0; + arg0->state ^= 1; } } -void func_800A9710(struct_8018D9E0_entry* arg0) { +void func_800A9710(MenuItem* arg0) { s32 phi_v0; switch (gControllerPakMenuSelection) { @@ -9487,33 +9471,33 @@ void func_800A9710(struct_8018D9E0_entry* arg0) { phi_v0 = 0; break; } - if (phi_v0 != arg0->cursor) { - arg0->cursor = phi_v0; + if (phi_v0 != arg0->state) { + arg0->state = phi_v0; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7D34[phi_v0])); } } -void func_800A97BC(struct_8018D9E0_entry* 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]; + gControllerPakVisibleTableRows[i] = gControllerPakVisibleTableRows[i + 1]; } else { - if ((D_800E86C4[i - 1] == 0x10) || (D_800E86C4[i - 1] == 0)) { - D_800E86C4[i] = 0; + if ((gControllerPakVisibleTableRows[i - 1] == 0x10) || (gControllerPakVisibleTableRows[i - 1] == 0)) { + gControllerPakVisibleTableRows[i] = 0; } else { - D_800E86C4[i] = D_800E86C4[i - 1] + 1; + gControllerPakVisibleTableRows[i] = gControllerPakVisibleTableRows[i - 1] + 1; } } } - D_800E86C4[0] = D_800E86C4[8] = 0; + gControllerPakVisibleTableRows[0] = gControllerPakVisibleTableRows[8] = 0; } break; @@ -9521,35 +9505,35 @@ void func_800A97BC(struct_8018D9E0_entry* 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]; + gControllerPakVisibleTableRows[i] = gControllerPakVisibleTableRows[i - 1]; } else { - if ((D_800E86C4[i + 1] == 1) || (D_800E86C4[i + 1] == 0)) { - D_800E86C4[i] = 0; + if ((gControllerPakVisibleTableRows[i + 1] == 1) || (gControllerPakVisibleTableRows[i + 1] == 0)) { + gControllerPakVisibleTableRows[i] = 0; } else { - D_800E86C4[i] = D_800E86C4[i + 1] - 1; + gControllerPakVisibleTableRows[i] = gControllerPakVisibleTableRows[i + 1] - 1; } } } - D_800E86C4[0] = D_800E86C4[8] = 0; + gControllerPakVisibleTableRows[0] = gControllerPakVisibleTableRows[8] = 0; break; default: - *D_800E86D0 = 0; + gControllerPakScrollDirection = 0; break; } } } // todo: <-- fix these brackets -// Don't know if this belongs here or inside func_800A9A98 +// Don't know if this belongs here or inside update_ok_menu_item // as a `static const`. But this matches so we'll leave // it here for now. const s8 D_800F0CA0[] = { 0x03, 0x03, 0x03, 0x02, 0x00, 0x02, 0x02, 0x01, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x02, 0x00 }; -void func_800A9A98(struct_8018D9E0_entry* arg0) { +void update_ok_menu_item(MenuItem* arg0) { s32 sp4; s32 var_v0; @@ -9557,64 +9541,64 @@ void func_800A9A98(struct_8018D9E0_entry* arg0) { default: var_v0 = sp4; // wut? break; - case 0xF: - var_v0 = D_800F0CA0[gMainMenuSelectionDepth - 1]; + case MENU_ITEM_UI_OK: + var_v0 = D_800F0CA0[gMainMenuSelection - 1]; break; - case 0x5D: - var_v0 = D_800F0CA0[D_8018EDEC + 11]; + case COURSE_SELECT_OK: + var_v0 = D_800F0CA0[gSubMenuSelection + 11]; break; - case 0x33: - var_v0 = D_800F0CA0[D_8018EDEE + 7]; + case CHARACTER_SELECT_MENU_OK: + var_v0 = D_800F0CA0[gPlayerSelectMenuSelection + 7]; break; } switch (var_v0) { /* switch 1; irregular */ case 0: /* switch 1 */ - arg0->unk1C = 0; + arg0->param1 = 0; break; case 1: /* switch 1 */ - arg0->unk1C = 0x00000020; + arg0->param1 = 0x00000020; break; case 2: /* switch 1 */ - if (arg0->unk1C > 0) { - arg0->unk1C = (arg0->unk1C - (arg0->unk1C / 12)) - 2; - if (arg0->unk1C < 0) { - arg0->unk1C = 0; + if (arg0->param1 > 0) { + arg0->param1 = (arg0->param1 - (arg0->param1 / 12)) - 2; + if (arg0->param1 < 0) { + arg0->param1 = 0; } } break; case 3: /* switch 1 */ - if (arg0->unk1C < 0x20) { - arg0->unk1C += 2; - if (arg0->unk1C >= 0x20) { - arg0->unk1C = 0x00000020; + if (arg0->param1 < 0x20) { + arg0->param1 += 2; + if (arg0->param1 >= 0x20) { + arg0->param1 = 0x00000020; } } break; } } -void func_800A9B9C(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800A9B9C(MenuItem* arg0) { + switch (arg0->state) { case 0: func_800AA280(arg0); break; case 1: func_800AA280(arg0); - arg0->cursor = 4; + arg0->state = 4; /* fallthrough */ case 4: - if (arg0->unk1C > 0) { - arg0->unk1C = (arg0->unk1C - (arg0->unk1C / 12)) - 2; - if (arg0->unk1C < 0) { - arg0->unk1C = 0; + if (arg0->param1 > 0) { + arg0->param1 = (arg0->param1 - (arg0->param1 / 12)) - 2; + if (arg0->param1 < 0) { + arg0->param1 = 0; } } else { - arg0->unk1C = 0; - arg0->cursor = 0; + arg0->param1 = 0; + arg0->state = 0; } break; case 2: - arg0->cursor = 3; + arg0->state = 3; break; case 3: default: @@ -9622,40 +9606,40 @@ void func_800A9B9C(struct_8018D9E0_entry* arg0) { } } -void func_800A9C40(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800A9C40(MenuItem* arg0) { + switch (arg0->state) { case 0: func_800AA280(arg0); if ((gPlayerCount + 0xA) == arg0->type) { - arg0->cursor = 2; + arg0->state = 2; } else { - arg0->cursor = 1; + arg0->state = 1; } break; case 4: if ((gPlayerCount + 0xA) == arg0->type) { - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; break; } - arg0->cursor = 1; + arg0->state = 1; case 1: func_800AA280(arg0); - if ((gMainMenuSelectionDepth == CONFIRM_OK_SELECTION_FROM_BACK_OUT) || - (gMainMenuSelectionDepth == TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT)) { - arg0->unk1C = 0x00000020; + if ((gMainMenuSelection == MAIN_MENU_OK_SELECT_GO_BACK) || + (gMainMenuSelection == MAIN_MENU_MODE_SUB_SELECT_GO_BACK)) { + arg0->param1 = 0x00000020; } else { - if (arg0->unk1C < 0x20) { - arg0->unk1C += 2; - if (arg0->unk1C >= 0x20) { - arg0->unk1C = 0x00000020; + if (arg0->param1 < 0x20) { + arg0->param1 += 2; + if (arg0->param1 >= 0x20) { + arg0->param1 = 0x00000020; } } } break; case 3: if ((gPlayerCount + 0xA) == arg0->type) { - arg0->cursor = 2; + arg0->state = 2; } break; case 2: @@ -9664,7 +9648,7 @@ void func_800A9C40(struct_8018D9E0_entry* arg0) { } } -void func_800A9D5C(struct_8018D9E0_entry* arg0) { +void func_800A9D5C(MenuItem* arg0) { Unk_D_800E70A0* temp_v0; if ((gPlayerCount + 0xA) == arg0->type) { @@ -9673,10 +9657,10 @@ void func_800A9D5C(struct_8018D9E0_entry* arg0) { arg0->priority = 6; } - switch (arg0->cursor) { + switch (arg0->state) { case 2: - if ((gMainMenuSelectionDepth == CONFIRM_OK_SELECTION_FROM_BACK_OUT) || - (gMainMenuSelectionDepth == TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT)) { + if ((gMainMenuSelection == MAIN_MENU_OK_SELECT_GO_BACK) || + (gMainMenuSelection == MAIN_MENU_MODE_SUB_SELECT_GO_BACK)) { arg0->column = 0x00000080; arg0->row = 0x0000003E; } else { @@ -9687,7 +9671,7 @@ void func_800A9D5C(struct_8018D9E0_entry* arg0) { temp_v0 = &D_800E70A0[arg0->type - 0xA]; func_800A91D8(arg0, temp_v0->column, temp_v0->row); if ((arg0->column == temp_v0->column) && (arg0->row == temp_v0->row)) { - arg0->cursor = 0; + arg0->state = 0; } /* fallthrough */ case 0: @@ -9698,8 +9682,8 @@ void func_800A9D5C(struct_8018D9E0_entry* arg0) { } } -void func_800A9E58(struct_8018D9E0_entry* arg0) { - struct_8018D9E0_entry* temp_v0; +void func_800A9E58(MenuItem* arg0) { + MenuItem* temp_v0; Unk_D_800E70A0* temp_v1_2; s32 sp24; s32 sp20; @@ -9729,33 +9713,33 @@ void func_800A9E58(struct_8018D9E0_entry* arg0) { break; } - temp_a1 = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; - switch (arg0->cursor) { /* switch 5; irregular */ + temp_a1 = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; + switch (arg0->state) { /* switch 5; irregular */ case 0: /* switch 5 */ if ((temp_a1 != sp20) && (temp_a1 != sp1C)) { arg0->visible = 0; } else { - arg0->unk20 = D_800E86AC[gPlayerCount - 1]; - switch (gMainMenuSelectionDepth) { /* switch 2 */ - case GAME_MODE_SELECTION: /* switch 2 */ - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 2 */ - case CONFIRM_OK_SELECTION: /* switch 2 */ + arg0->param2 = gGameModeMenuColumn[gPlayerCount - 1]; + switch (gMainMenuSelection) { /* switch 2 */ + case MAIN_MENU_MODE_SELECT: /* switch 2 */ + case MAIN_MENU_MODE_SUB_SELECT: /* switch 2 */ + case MAIN_MENU_OK_SELECT: /* switch 2 */ arg0->visible = 1; - temp_v0 = func_800AAE68(); + temp_v0 = get_menu_item_player_count(); arg0->column = temp_v0->column; - arg0->row = (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + 0x41; - arg0->unk1C = 0; - arg0->cursor = 1; + arg0->row = (gGameModeMenuColumn[gPlayerCount - 1] * 0x12) + temp_v0->row + 0x41; + arg0->param1 = 0; + arg0->state = 1; break; - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: /* switch 2 */ - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: /* switch 2 */ - temp_v0 = func_800AAE68(); + case MAIN_MENU_OK_SELECT_GO_BACK: /* switch 2 */ + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: /* switch 2 */ + temp_v0 = get_menu_item_player_count(); temp_v1_2 = &D_800E70E8[arg0->type - sp24]; arg0->column = temp_v0->column + temp_v1_2->column; - arg0->row = (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row; - arg0->unk1C = arg0->row - temp_v0->row; + arg0->row = (gGameModeMenuColumn[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row; + arg0->param1 = arg0->row - temp_v0->row; arg0->visible = 1; - arg0->cursor = 2; + arg0->state = 2; break; default: /* switch 2 */ arg0->visible = 0; @@ -9764,74 +9748,74 @@ void func_800A9E58(struct_8018D9E0_entry* arg0) { } break; case 1: /* switch 5 */ - switch (gMainMenuSelectionDepth) { /* switch 3 */ - case GAME_MODE_SELECTION: /* switch 3 */ - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 3 */ - case CONFIRM_OK_SELECTION: /* switch 3 */ - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: /* switch 3 */ - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: /* switch 3 */ + switch (gMainMenuSelection) { /* switch 3 */ + case MAIN_MENU_MODE_SELECT: /* switch 3 */ + case MAIN_MENU_MODE_SUB_SELECT: /* switch 3 */ + case MAIN_MENU_OK_SELECT: /* switch 3 */ + case MAIN_MENU_OK_SELECT_GO_BACK: /* switch 3 */ + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: /* switch 3 */ if ((temp_a1 != sp20) && (temp_a1 != sp1C)) { arg0->visible = 0; - arg0->cursor = 0; + arg0->state = 0; } else { - if (arg0->unk20 != D_800E86AC[gPlayerCount - 1]) { - arg0->cursor = 0; + if (arg0->param2 != gGameModeMenuColumn[gPlayerCount - 1]) { + arg0->state = 0; } - temp_v0 = func_800AAE68(); - arg0->column = temp_v0->column + arg0->unk1C; + temp_v0 = get_menu_item_player_count(); + arg0->column = temp_v0->column + arg0->param1; temp_v1_2 = &D_800E70E8[arg0->type - sp24]; func_800A92E8(arg0, temp_v0->column + temp_v1_2->column); - arg0->unk1C = arg0->column - temp_v0->column; - if (arg0->unk1C == temp_v1_2->column) { - arg0->cursor = 2; - arg0->unk1C = arg0->row - temp_v0->row; + arg0->param1 = arg0->column - temp_v0->column; + if (arg0->param1 == temp_v1_2->column) { + arg0->state = 2; + arg0->param1 = arg0->row - temp_v0->row; } } break; default: /* switch 3 */ arg0->visible = 0; - arg0->cursor = 0; + arg0->state = 0; break; } break; case 2: /* switch 5 */ - switch (gMainMenuSelectionDepth) { /* switch 4 */ - case GAME_MODE_SELECTION: /* switch 4 */ - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 4 */ - case CONFIRM_OK_SELECTION: /* switch 4 */ - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: /* switch 4 */ - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: /* switch 4 */ + switch (gMainMenuSelection) { /* switch 4 */ + case MAIN_MENU_MODE_SELECT: /* switch 4 */ + case MAIN_MENU_MODE_SUB_SELECT: /* switch 4 */ + case MAIN_MENU_OK_SELECT: /* switch 4 */ + case MAIN_MENU_OK_SELECT_GO_BACK: /* switch 4 */ + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: /* switch 4 */ if ((temp_a1 != sp20) && (temp_a1 != sp1C)) { arg0->visible = 0; - arg0->cursor = 0; + arg0->state = 0; } else { - if (arg0->unk20 != D_800E86AC[gPlayerCount - 1]) { - arg0->cursor = 0; + if (arg0->param2 != gGameModeMenuColumn[gPlayerCount - 1]) { + arg0->state = 0; } - temp_v0 = func_800AAE68(); + temp_v0 = get_menu_item_player_count(); temp_v1_2 = &D_800E70E8[arg0->type - sp24]; arg0->column = temp_v0->column + temp_v1_2->column; - arg0->row = temp_v0->row + arg0->unk1C; + arg0->row = temp_v0->row + arg0->param1; func_800A91D8(arg0, arg0->column, - (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row); - arg0->unk1C = arg0->row - temp_v0->row; + (gGameModeMenuColumn[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row); + arg0->param1 = arg0->row - temp_v0->row; } break; default: /* switch 4 */ arg0->visible = 0; - arg0->cursor = 0; + arg0->state = 0; break; } break; } } -void func_800AA280(struct_8018D9E0_entry* arg0) { +void func_800AA280(MenuItem* arg0) { Unk_D_800E70A0* temp_v0; temp_v0 = &D_800E70A0[arg0->type - 0xA]; - if ((gMainMenuSelectionDepth == CONFIRM_OK_SELECTION_FROM_BACK_OUT) || - (gMainMenuSelectionDepth == TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT)) { + if ((gMainMenuSelection == MAIN_MENU_OK_SELECT_GO_BACK) || + (gMainMenuSelection == MAIN_MENU_MODE_SUB_SELECT_GO_BACK)) { arg0->column = temp_v0->column; arg0->row = temp_v0->row; } else { @@ -9839,46 +9823,46 @@ void func_800AA280(struct_8018D9E0_entry* arg0) { } } -void func_800AA2EC(struct_8018D9E0_entry* arg0) { +void func_800AA2EC(MenuItem* arg0) { s32 temp_v0; s32 var_t1; var_t1 = 0; - switch (gMainMenuSelectionDepth) { - case OPTIONS_SELECTION: - case DATA_SELECTION: - case PLAYER_NUM_SELECTION: - case GAME_MODE_SELECTION: - arg0->cursor = 0; + switch (gMainMenuSelection) { + case MAIN_MENU_OPTION: + case MAIN_MENU_DATA: + case MAIN_MENU_PLAYER_SELECT: + case MAIN_MENU_MODE_SELECT: + arg0->state = 0; break; - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: - case CONFIRM_OK_SELECTION: - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: - if (arg0->cursor != 0) { + case MAIN_MENU_MODE_SUB_SELECT: + case MAIN_MENU_OK_SELECT: + case MAIN_MENU_OK_SELECT_GO_BACK: + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: + if (arg0->state != 0) { break; } if (gPlayerCount != 1) { break; } - if (D_800E86AC[gPlayerCount - 1] != 1) { + if (gGameModeMenuColumn[gPlayerCount - 1] != 1) { break; } 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 */ - arg0->cursor = 1; + case 0: + arg0->state = 1; var_t1 = 1; break; - case 2: /* switch 1 */ + case 2: gControllerPak1State = 0; break; - default: /* switch 1 */ + default: gControllerPak1State = 0; break; } @@ -9886,7 +9870,7 @@ void func_800AA2EC(struct_8018D9E0_entry* arg0) { if (var_t1 == 0) { if (gControllerPak1State == 0) { if (check_for_controller_pak(0) == 0) { - arg0->cursor = 2; + arg0->state = 2; break; } temp_v0 = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0); @@ -9894,14 +9878,14 @@ void func_800AA2EC(struct_8018D9E0_entry* arg0) { switch (temp_v0) { case PFS_ERR_NOPACK: case PFS_ERR_DEVICE: - arg0->cursor = 2; + arg0->state = 2; break; case PFS_ERR_ID_FATAL: - arg0->cursor = 3; + arg0->state = 3; break; case PFS_ERR_CONTRFAIL: default: - arg0->cursor = 3; + arg0->state = 3; break; } return; @@ -9910,29 +9894,29 @@ void func_800AA2EC(struct_8018D9E0_entry* arg0) { } if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) == 0) { - arg0->cursor = 1; + arg0->state = 1; break; } if (osPfsNumFiles(&gControllerPak1FileHandle, &gControllerPak1NumFilesUsed, &gControllerPak1MaxWriteableFiles) != 0) { - arg0->cursor = 3; + arg0->state = 3; break; } if (osPfsFreeBlocks(&gControllerPak1FileHandle, &gControllerPak1NumPagesFree) != 0) { - arg0->cursor = 3; + arg0->state = 3; break; } gControllerPak1NumPagesFree = (s32) gControllerPak1NumPagesFree >> 8; } if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) { - arg0->cursor = 5; + arg0->state = 5; break; } if (gControllerPak1NumPagesFree >= 0x79) { - arg0->cursor = 1; + arg0->state = 1; break; } - arg0->cursor = 5; + arg0->state = 5; } break; default: @@ -9940,27 +9924,27 @@ void func_800AA2EC(struct_8018D9E0_entry* arg0) { } } -void func_800AA5C8(struct_8018D9E0_entry* arg0, s8 arg1) { +void func_800AA5C8(MenuItem* arg0, s8 arg1) { s32 temp_v1; temp_v1 = arg0->type - 0x2B; - switch (arg0->unk8) { /* irregular */ + switch (arg0->subState) { /* irregular */ case 0: if (func_800AAFCC((s32) arg1) >= 0) { - arg0->unk8 = 2; + arg0->subState = 2; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8340[temp_v1])); } break; case 2: if (func_800AAFCC((s32) arg1) < 0) { - arg0->unk8 = 0; + arg0->subState = 0; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8320[temp_v1])); } break; } } -void func_800AA69C(struct_8018D9E0_entry* arg0) { +void func_800AA69C(MenuItem* arg0) { s32 temp_v0; s32 var_a0; s32 var_v0; @@ -9974,20 +9958,20 @@ void func_800AA69C(struct_8018D9E0_entry* arg0) { } else { var_a0 = 0; } - switch (arg0->unk8) { + switch (arg0->subState) { case 0: - if ((D_8018EDE8[temp_v0] != 0) && (var_a0 != 0)) { - arg0->unk8 = 1; + if ((gCharacterGridIsSelected[temp_v0] != 0) && (var_a0 != 0)) { + arg0->subState = 1; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a0])); } else { temp_v0 = random_int(0x00C8U); if (temp_v0 >= 0xC6) { - arg0->unk8 = 4; + arg0->subState = 4; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterSingleBlinkAnimation[temp_a0])); } else if (temp_v0 >= 0xC5) { - arg0->unk8 = 5; + arg0->subState = 5; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterDoubleBlinkAnimation[temp_a0])); } @@ -9995,28 +9979,28 @@ void func_800AA69C(struct_8018D9E0_entry* arg0) { break; case 1: if (D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex >= D_800E8440[temp_a0]) { - arg0->unk8 = 2; + arg0->subState = 2; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E83A0[temp_a0])); - } else if ((D_8018EDE8[temp_v0] == 0) && (var_a0 != 0)) { - arg0->unk8 = 3; + } else if ((gCharacterGridIsSelected[temp_v0] == 0) && (var_a0 != 0)) { + arg0->subState = 3; func_8009A594(arg0->D_8018DEE0_index, D_800E8460[temp_a0] - D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex, segmented_to_virtual_dupe_2(gCharacterDeselectAnimation[temp_a0])); } break; case 2: - if ((D_8018EDE8[temp_v0] == 0) && (var_a0 != 0)) { - arg0->unk8 = 3; + if ((gCharacterGridIsSelected[temp_v0] == 0) && (var_a0 != 0)) { + arg0->subState = 3; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterDeselectAnimation[temp_a0])); } break; case 3: if (D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex >= D_800E8460[temp_a0]) { - arg0->unk8 = 0; + arg0->subState = 0; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8360[temp_a0])); - } else if ((D_8018EDE8[temp_v0] != 0) && (var_a0 != 0)) { - arg0->unk8 = 1; + } else if ((gCharacterGridIsSelected[temp_v0] != 0) && (var_a0 != 0)) { + arg0->subState = 1; func_8009A594(arg0->D_8018DEE0_index, D_800E8460[temp_a0] - D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a0])); @@ -10024,18 +10008,18 @@ void func_800AA69C(struct_8018D9E0_entry* arg0) { break; case 4: case 5: - if ((D_8018EDE8[temp_v0] != 0) && (var_a0 != 0)) { - arg0->unk8 = 1; + if ((gCharacterGridIsSelected[temp_v0] != 0) && (var_a0 != 0)) { + arg0->subState = 1; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a0])); } else { - if (arg0->unk8 == 4) { + if (arg0->subState == 4) { var_v0 = D_800E8480[temp_a0]; } else { var_v0 = D_800E84A0[temp_a0]; } if (D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex >= var_v0) { - arg0->unk8 = 0; + arg0->subState = 0; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8360[temp_a0])); } } @@ -10045,35 +10029,35 @@ void func_800AA69C(struct_8018D9E0_entry* arg0) { } } -void func_800AAA9C(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AAA9C(MenuItem* arg0) { + switch (arg0->state) { case 3: - arg0->cursor = 1; + arg0->state = 1; /* fallthrough */ case 1: - if (D_8018EDEE == 3) { - arg0->unk1C = 0x00000020; + if (gPlayerSelectMenuSelection == 3) { + arg0->param1 = 0x00000020; } else { - if (arg0->unk1C < 0x20) { - arg0->unk1C += (arg0->unk1C / 12) + 2; - if (arg0->unk1C >= 0x20) { - arg0->unk1C = 0x00000020; + if (arg0->param1 < 0x20) { + arg0->param1 += (arg0->param1 / 12) + 2; + if (arg0->param1 >= 0x20) { + arg0->param1 = 0x00000020; } } } /* fallthrough */ case 0: if (func_800AAFCC(arg0->type - 0x2B) >= 0) { - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; } else { - arg0->cursor = 1; + arg0->state = 1; } break; case 4: if (func_800AAFCC(arg0->type - 0x2B) >= 0) { - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; } break; case 2: @@ -10082,25 +10066,25 @@ void func_800AAA9C(struct_8018D9E0_entry* arg0) { } } -void func_800AAB90(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AAB90(MenuItem* arg0) { + switch (arg0->state) { case 1: - if (arg0->unk1C > 0) { - arg0->cursor = 3; + if (arg0->param1 > 0) { + arg0->state = 3; } break; case 2: - arg0->cursor = 4; + arg0->state = 4; break; case 3: - if (arg0->unk1C > 0) { - arg0->unk1C = (arg0->unk1C - (arg0->unk1C / 12)) - 2; - if (arg0->unk1C < 0) { - arg0->unk1C = 0; + if (arg0->param1 > 0) { + arg0->param1 = (arg0->param1 - (arg0->param1 / 12)) - 2; + if (arg0->param1 < 0) { + arg0->param1 = 0; } } else { - arg0->unk1C = 0; - arg0->cursor = 0; + arg0->param1 = 0; + arg0->state = 0; } break; case 0: @@ -10110,7 +10094,7 @@ void func_800AAB90(struct_8018D9E0_entry* arg0) { } } -void func_800AAC18(struct_8018D9E0_entry* arg0) { +void func_800AAC18(MenuItem* arg0) { UNUSED s32 stackPadding0; UNUSED s32 stackPadding1; s32 temp_a1; @@ -10119,16 +10103,16 @@ void func_800AAC18(struct_8018D9E0_entry* arg0) { Unk_D_800E70A0* var_t0; temp_a1 = arg0->type - 0x2B; - switch (arg0->cursor) { + switch (arg0->state) { case 0: - if (D_8018EDEE == 3) { + if (gPlayerSelectMenuSelection == 3) { temp_v0 = func_800AAFCC(temp_a1); if (temp_v0 >= 0) { var_t0 = &D_800E7188[(gScreenModeSelection * 4) + temp_v0]; arg0->column = (s32) var_t0->column; arg0->row = (s32) var_t0->row; - arg0->cursor = 2; - arg0->unk8 = 2; + arg0->state = 2; + arg0->subState = 2; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8340[temp_a1])); } break; @@ -10141,7 +10125,7 @@ void func_800AAC18(struct_8018D9E0_entry* arg0) { break; case 2: case 4: - if (arg0->cursor == 2) { + if (arg0->state == 2) { temp_v0 = func_800AAFCC(temp_a1); if (temp_v0 >= 0) { var_t0 = &D_800E7188[(gScreenModeSelection * 4) + temp_v0]; @@ -10149,11 +10133,11 @@ void func_800AAC18(struct_8018D9E0_entry* arg0) { } else { var_t0 = &D_800E7108[0][temp_a1]; if ((var_t0->column == arg0->column) && (var_t0->row == arg0->row)) { - arg0->cursor = 0; + arg0->state = 0; return; } } - if ((arg0->cursor != 2) || (arg0->unk8 != 1)) { + if ((arg0->state != 2) || (arg0->subState != 1)) { func_800A91D8(arg0, (s32) var_t0->column, (s32) var_t0->row); } break; @@ -10162,20 +10146,20 @@ void func_800AAC18(struct_8018D9E0_entry* arg0) { } } -void func_800AADD4(struct_8018D9E0_entry* arg0) { +void update_cursor(MenuItem* arg0) { s32 playerId; s8 characterSelectionIndex; - playerId = arg0->type - 0x34; + playerId = arg0->type - CHARACTER_SELECT_MENU_1P_CURSOR; characterSelectionIndex = gCharacterGridSelections[playerId]; arg0->priority = 0xE - (playerId * 2); - func_800AAF94(arg0, characterSelectionIndex - 1); + hover_cursor_over_character_portrait(arg0, characterSelectionIndex - 1); } -void func_800AAE18(struct_8018D9E0_entry* arg0) { +void func_800AAE18(MenuItem* arg0) { s32 temp_v0; - temp_v0 = func_800AAFCC(arg0->type - 0x2B); + temp_v0 = func_800AAFCC(arg0->type - CHARACTER_SELECT_MENU_MARIO); if (temp_v0 >= 0) { arg0->priority = 0xE - (temp_v0 * 2); } else { @@ -10184,23 +10168,23 @@ void func_800AAE18(struct_8018D9E0_entry* arg0) { } /** - * Similar to find_8018D9E0_entry_dupe, there is potential for a - * hard lock in the function if no appropriate D_8018D9E0 entry + * Similar to find_menu_items_dupe, there is potential for a + * hard lock in the function if no appropriate gMenuItems entry * is found. **/ -struct_8018D9E0_entry* func_800AAE68(void) { +MenuItem* get_menu_item_player_count(void) { s32 count = gPlayerCount - 1; - for (size_t i = 0; i < ARRAY_COUNT(D_8018D9E0); i++) { - if (D_8018D9E0[i].type == (count + 0xB)) { - return &D_8018D9E0[i]; + for (size_t i = 0; i < ARRAY_COUNT(gMenuItems); i++) { + if (gMenuItems[i].type == (count + MENU_ITEM_UI_1P_GAME)) { + return &gMenuItems[i]; } } - printf("Error: func_800AAE68 returned a null value when searching id 0x%X", count + 0xB); + printf("Error: get_menu_item_player_count returned a null value when searching id 0x%X", count + 0xB); return NULL; - // struct_8018D9E0_entry *entry = D_8018D9E0; + // MenuItem *entry = gMenuItems; // s32 thing = gPlayerCount - 1; - // for(; !(entry > &D_8018D9E0[D_8018D9E0_SIZE]); entry++) { + // for(; !(entry > &gMenuItems[MENU_ITEMS_MAX]); entry++) { // if ((thing + 0xB) == entry->type) { // goto escape; // } @@ -10213,23 +10197,23 @@ struct_8018D9E0_entry* func_800AAE68(void) { } /** - * Similar to find_8018D9E0_entry_dupe, there is potential for a - * hard lock in the function if no appropriate D_8018D9E0 entry + * Similar to find_menu_items_dupe, there is potential for a + * hard lock in the function if no appropriate gMenuItems entry * is found. **/ -struct_8018D9E0_entry* func_800AAEB4(s32 arg0) { +MenuItem* get_menu_item_character(s32 arg0) { - for (size_t i = 0; i < ARRAY_COUNT(D_8018D9E0); i++) { - if (D_8018D9E0[i].type == (arg0 + 0x2B)) { - return &D_8018D9E0[i]; + for (size_t i = 0; i < ARRAY_COUNT(gMenuItems); i++) { + if (gMenuItems[i].type == (arg0 + 0x2B)) { + return &gMenuItems[i]; } } - printf("Error: func_800AAEB4 returned a null value when searching id 0x%X", arg0 + 0x2B); + printf("Error: get_menu_item_character returned a null value when searching id 0x%X", arg0 + 0x2B); return NULL; - // struct_8018D9E0_entry *entry = D_8018D9E0; + // MenuItem *entry = gMenuItems; - // for(; !(entry > &D_8018D9E0[D_8018D9E0_SIZE]); entry++) { + // for(; !(entry > &gMenuItems[MENU_ITEMS_MAX]); entry++) { // if ((arg0 + 0x2B) == entry->type) { // goto escape; // } @@ -10251,17 +10235,17 @@ struct_8018D9E0_entry* func_800AAEB4(s32 arg0) { * probably as much a matter of luck as it is good * reasoning on the original author(s) part. **/ -struct_8018D9E0_entry* find_8018D9E0_entry_dupe(s32 arg0) { - for (size_t i = 0; i < ARRAY_COUNT(D_8018D9E0); i++) { - if (D_8018D9E0[i].type == arg0) { - return &D_8018D9E0[i]; +MenuItem* find_menu_items_dupe(s32 type) { + for (size_t i = 0; i < ARRAY_COUNT(gMenuItems); i++) { + if (gMenuItems[i].type == type) { + return &gMenuItems[i]; } } - printf("Error: find_8018D9E0_entry_dupe returned a null value when searching id 0x%X", arg0); + printf("Error: find_menu_items_dupe returned a null value when searching id 0x%X", type); return NULL; - // struct_8018D9E0_entry *entry = D_8018D9E0; - // for (; !(entry > (&D_8018D9E0[D_8018D9E0_SIZE])); entry++) { + // MenuItem *entry = gMenuItems; + // for (; !(entry > (&gMenuItems[MENU_ITEMS_MAX])); entry++) { // if (entry->type == arg0) { // goto escape; // } @@ -10273,19 +10257,19 @@ struct_8018D9E0_entry* find_8018D9E0_entry_dupe(s32 arg0) { // return entry; } -struct_8018D9E0_entry* find_8018D9E0_entry(s32 arg0) { - for (size_t i = 0; i < ARRAY_COUNT(D_8018D9E0); i++) { - if (D_8018D9E0[i].type == arg0) { - return &D_8018D9E0[i]; +MenuItem* find_menu_items(s32 type) { + for (size_t i = 0; i < ARRAY_COUNT(gMenuItems); i++) { + if (gMenuItems[i].type == type) { + return &gMenuItems[i]; } } // No printf here as returning null seems to be normal game logic - // printf("Error: find_8018D9E0_entry returned a null value when searching id 0x%X", + // printf("Error: find_menu_items returned a null value when searching id 0x%X", // arg0); return NULL; - // struct_8018D9E0_entry *entry = D_8018D9E0; - // for (; !(entry > (&D_8018D9E0[D_8018D9E0_SIZE])); entry++) { + // MenuItem *entry = gMenuItems; + // for (; !(entry > (&gMenuItems[MENU_ITEMS_MAX])); entry++) { // if (entry->type == arg0) { // goto escape; // } @@ -10296,56 +10280,56 @@ struct_8018D9E0_entry* find_8018D9E0_entry(s32 arg0) { // return entry; } -s32 func_800AAF70(s32 arg0) { - struct_8018D9E0_entry* temp; - temp = func_800AAEB4(arg0); - return temp->cursor; +s32 get_character_menu_state(s32 arg0) { + MenuItem* temp; + temp = get_menu_item_character(arg0); + return temp->state; } -void func_800AAF94(struct_8018D9E0_entry* arg0, s32 arg1) { - struct_8018D9E0_entry* temp_v0; +void hover_cursor_over_character_portrait(MenuItem* arg0, s32 arg1) { + MenuItem* temp_v0; - temp_v0 = func_800AAEB4(arg1); + temp_v0 = get_menu_item_character(arg1); arg0->column = temp_v0->column; arg0->row = temp_v0->row; } -s32 func_800AAFCC(s32 arg0) { +s32 func_800AAFCC(s32 characterId) { s32 someIndex = 0; - s32 ret = 0; + s32 ret = false; for (; someIndex < 4; someIndex++) { - if ((arg0 + 1) == gCharacterGridSelections[someIndex]) { - ret = 1; + if ((characterId + 1) == gCharacterGridSelections[someIndex]) { + ret = true; break; } } - if (ret != 0) { + if (ret != false) { return someIndex; } return -1; } -void func_800AB020(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AB020(MenuItem* arg0) { + switch (arg0->state) { case 1: - arg0->cursor = 4; + arg0->state = 4; /* fallthrough */ case 4: - if (arg0->unk1C > 0) { - arg0->unk1C = (arg0->unk1C - (arg0->unk1C / 12)) - 2; - if (arg0->unk1C < 0) { - arg0->unk1C = 0; + if (arg0->param1 > 0) { + arg0->param1 = (arg0->param1 - (arg0->param1 / 12)) - 2; + if (arg0->param1 < 0) { + arg0->param1 = 0; } } else { - arg0->unk1C = 0; - arg0->cursor = 0; + arg0->param1 = 0; + arg0->state = 0; } break; case 2: - arg0->cursor = 3; + arg0->state = 3; break; case 0: case 3: @@ -10354,35 +10338,35 @@ void func_800AB020(struct_8018D9E0_entry* arg0) { } } -void func_800AB098(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AB098(MenuItem* arg0) { + switch (arg0->state) { case 0: if ((GetCupIndex() + 0x53) == arg0->type) { - arg0->cursor = 2; + arg0->state = 2; } else { - arg0->cursor = 1; + arg0->state = 1; } break; case 4: if ((GetCupIndex() + 0x53) == arg0->type) { - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; break; } else { - arg0->cursor = 1; + arg0->state = 1; } // Purposeful fallthrough case 1: - if (arg0->unk1C < 32) { - arg0->unk1C += 2; - if (arg0->unk1C >= 32) { - arg0->unk1C = 32; + if (arg0->param1 < 32) { + arg0->param1 += 2; + if (arg0->param1 >= 32) { + arg0->param1 = 32; } } break; case 3: if ((GetCupIndex() + 0x53) == arg0->type) { - arg0->cursor = 2; + arg0->state = 2; } break; case 2: @@ -10391,7 +10375,7 @@ void func_800AB098(struct_8018D9E0_entry* arg0) { } } -void func_800AB164(struct_8018D9E0_entry* arg0) { +void func_800AB164(MenuItem* arg0) { Unk_D_800E70A0* thing = &D_800E7148[arg0->type - 0x53]; if ((GetCupIndex() + 0x53) == arg0->type) { @@ -10400,7 +10384,7 @@ void func_800AB164(struct_8018D9E0_entry* arg0) { arg0->priority = 4; } - switch (arg0->cursor) { + switch (arg0->state) { case 0: thing = &D_800E7148[arg0->type - 0x53]; arg0->column = thing->column; @@ -10413,7 +10397,7 @@ void func_800AB164(struct_8018D9E0_entry* arg0) { thing = &D_800E7148[arg0->type - 0x53]; func_800A91D8(arg0, thing->column, thing->row); if ((arg0->column == thing->column) && (arg0->row == thing->row)) { - arg0->cursor = 0; + arg0->state = 0; } break; case 1: @@ -10423,7 +10407,7 @@ void func_800AB164(struct_8018D9E0_entry* arg0) { } } -void func_800AB260(struct_8018D9E0_entry* arg0) { +void func_800AB260(MenuItem* arg0) { s32 temp = (arg0->type - 0x58); if (temp == GetCupIndex()) { arg0->visible = 1; @@ -10432,9 +10416,9 @@ void func_800AB260(struct_8018D9E0_entry* arg0) { } } -void func_800AB290(struct_8018D9E0_entry* arg0) { - if (arg0->unk1C != GetCupIndex()) { - arg0->unk1C = GetCupIndex(); +void func_800AB290(MenuItem* arg0) { + if (arg0->param1 != GetCupIndex()) { + arg0->param1 = GetCupIndex(); func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[gCupCourseOrder[GetCupIndex()][arg0->type - 0x5F]])); } @@ -10443,33 +10427,33 @@ void func_800AB290(struct_8018D9E0_entry* arg0) { #ifdef NON_MATCHING // Decent work has been done, but not quite right // https://decomp.me/scratch/YLbkC -void func_800AB314(struct_8018D9E0_entry* arg0) { +void func_800AB314(MenuItem* arg0) { s32 var_a1; s32 one = 1; s32 four = 4; - struct_8018D9E0_entry* sp24[4]; + MenuItem* sp24[4]; s32 var_v0; for (var_a1 = 0; var_a1 < 4; var_a1++) { - sp24[var_a1] = find_8018D9E0_entry_dupe(var_a1 + 0x5F); + sp24[var_a1] = find_menu_items_dupe(var_a1 + 0x5F); } switch (gModeSelection) { default: - if (D_8018EDEC != one) { - arg0->cursor = 0; - arg0->unk20 = 0; + if (gSubMenuSelection != one) { + arg0->state = 0; + arg0->param2 = 0; for (var_a1 = 0; var_a1 < GetCupSize(); var_a1++) { if (GetCupCursorPosition() == var_a1) { sp24[var_a1]->visible = one; - if (arg0->unk1C != var_a1) { - arg0->unk1C = var_a1; + if (arg0->param1 != var_a1) { + arg0->param1 = var_a1; } } else { sp24[var_a1]->visible = 0; } } } else { - arg0->cursor = 3; + arg0->state = 3; for (var_a1 = 0; var_a1 < 4; var_a1++) { sp24[var_a1]->visible = one; sp24[var_a1]->priority = 6; @@ -10477,68 +10461,68 @@ void func_800AB314(struct_8018D9E0_entry* arg0) { } break; case 0: - switch (arg0->cursor) { /* irregular */ + switch (arg0->state) { /* irregular */ case 0: - if ((arg0->unk1C / 4) == GetCupIndex()) { - arg0->unk20++; - if (arg0->unk20 >= 0x33) { - arg0->cursor = one; - arg0->unk20 = 0; + if ((arg0->param1 / 4) == GetCupIndex()) { + arg0->param2++; + if (arg0->param2 >= 0x33) { + arg0->state = one; + arg0->param2 = 0; var_v0 = GetCupIndex() * 4; - arg0->unk1C = var_v0 + 1; + arg0->param1 = var_v0 + 1; } } else { - arg0->unk20 = 0; - arg0->unk1C = GetCupIndex() * 4; + arg0->param2 = 0; + arg0->param1 = GetCupIndex() * 4; } - if (D_8018EDEC == 3) { - arg0->cursor = 2; - arg0->unk20 = 0; + if (gSubMenuSelection == 3) { + arg0->state = 2; + arg0->param2 = 0; } break; case 1: - if ((arg0->unk1C / 4) != GetCupIndex()) { - arg0->cursor = 0; - arg0->unk20 = 0; - arg0->unk1C = 0; + if ((arg0->param1 / 4) != GetCupIndex()) { + arg0->state = 0; + arg0->param2 = 0; + arg0->param1 = 0; } else { - arg0->unk20++; - if (arg0->unk20 >= 0x1F) { - arg0->unk20 = 0; - arg0->unk1C = (GetCupIndex() * 4) + (((arg0->unk1C % 4) + one) % 4); + arg0->param2++; + if (arg0->param2 >= 0x1F) { + arg0->param2 = 0; + arg0->param1 = (GetCupIndex() * 4) + (((arg0->param1 % 4) + one) % 4); } else { - if (D_8018EDEC == 3) { - arg0->cursor = 2; - arg0->unk20 = 0; + if (gSubMenuSelection == 3) { + arg0->state = 2; + arg0->param2 = 0; } } } break; case 2: - arg0->unk20++; - if (arg0->unk20 >= 0x1A) { - arg0->cursor = 3; - arg0->unk20 = 0; + arg0->param2++; + if (arg0->param2 >= 0x1A) { + arg0->state = 3; + arg0->param2 = 0; } - if (D_8018EDEC != 3) { - arg0->cursor = 0; - arg0->unk20 = 0; - arg0->unk1C = 0; + if (gSubMenuSelection != 3) { + arg0->state = 0; + arg0->param2 = 0; + arg0->param1 = 0; } break; case 3: - if (D_8018EDEC != 3) { - arg0->cursor = 0; - arg0->unk20 = 0; - arg0->unk1C = 0; + if (gSubMenuSelection != 3) { + arg0->state = 0; + arg0->param2 = 0; + arg0->param1 = 0; } break; } - switch (arg0->cursor) { + switch (arg0->state) { case 0: case 1: for (var_a1 = 0; var_a1 < 4; var_a1++) { - if ((arg0->unk1C % 4) == var_a1) { + if ((arg0->param1 % 4) == var_a1) { sp24[var_a1]->visible = one; } else { sp24[var_a1]->visible = 0; @@ -10548,9 +10532,9 @@ void func_800AB314(struct_8018D9E0_entry* arg0) { break; case 2: for (var_a1 = 0; var_a1 < 4; var_a1++) { - if (var_a1 == (arg0->unk1C % 4)) { + if (var_a1 == (arg0->param1 % 4)) { sp24[var_a1]->priority = 6; - } else if (arg0->unk20 < (var_a1 * 5)) { + } else if (arg0->param2 < (var_a1 * 5)) { sp24[var_a1]->priority = four; } else { sp24[var_a1]->priority = 8; @@ -10571,13 +10555,13 @@ void func_800AB314(struct_8018D9E0_entry* arg0) { } } #else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AB314.s") +GLOBAL_ASM("asm/non_matchings/menu_items/func_800AB314.s") #endif -void func_800AB904(struct_8018D9E0_entry* arg0) { +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) { @@ -10594,35 +10578,35 @@ void func_800AB904(struct_8018D9E0_entry* arg0) { } } -void func_800AB9B0(struct_8018D9E0_entry* arg0) { +void func_800AB9B0(MenuItem* arg0) { Unk_D_800E70A0* temp_v1; - if (arg0->unk1C != GetCupIndex()) { - arg0->unk1C = GetCupIndex(); - arg0->unk20 = func_800B54C0((s32) GetCupIndex(), gCCSelection); + if (arg0->param1 != GetCupIndex()) { + arg0->param1 = GetCupIndex(); + arg0->param2 = func_800B54C0((s32) GetCupIndex(), gCCSelection); func_8009A594(arg0->D_8018DEE0_index, 0, - segmented_to_virtual_dupe_2(D_800E7E20[((gCCSelection / 2) * 4) - arg0->unk20])); + segmented_to_virtual_dupe_2(D_800E7E20[((gCCSelection / 2) * 4) - arg0->param2])); arg0->column = (s32) D_800E7268->column; arg0->row = D_800E7268->row; } - temp_v1 = &D_800E7268[arg0->cursor]; - switch (arg0->cursor) { /* irregular */ + temp_v1 = &D_800E7268[arg0->state]; + switch (arg0->state) { /* irregular */ case 0: func_800A91D8(arg0, (s32) temp_v1->column, (s32) temp_v1->row); - if (D_8018EDEC == 3) { - arg0->cursor = 1; + if (gSubMenuSelection == 3) { + arg0->state = 1; } break; case 1: func_800A91D8(arg0, (s32) temp_v1->column, (s32) temp_v1->row); - if (D_8018EDEC == 1) { - arg0->cursor = 0; + if (gSubMenuSelection == 1) { + arg0->state = 0; } break; } } -void func_800ABAE8(struct_8018D9E0_entry* arg0) { +void func_800ABAE8(MenuItem* arg0) { s32 index; if (arg0->type == 0x8C) { @@ -10634,21 +10618,21 @@ void func_800ABAE8(struct_8018D9E0_entry* arg0) { arg0->row = D_800E7430[index].row; } -void func_800ABB24(struct_8018D9E0_entry* arg0) { +void func_800ABB24(MenuItem* arg0) { Unk_D_800E70A0* temp_v1; s32 thing = gTimeTrialDataCourseIndex; temp_v1 = &D_800E7430[thing / 4]; arg0->column = temp_v1->column - 2; arg0->row = temp_v1->row + ((thing % 4) * 0x32) + 0x13; - arg0->unk1C += 0x10; - if (arg0->unk1C >= 0x100) { - arg0->unk1C -= 0x100; - arg0->unk20 = (s32) (arg0->unk20 + 1) % 3; + arg0->param1 += 0x10; + if (arg0->param1 >= 0x100) { + arg0->param1 -= 0x100; + arg0->param2 = (s32) (arg0->param2 + 1) % 3; } } -void func_800ABBCC(struct_8018D9E0_entry* arg0) { +void func_800ABBCC(MenuItem* arg0) { s32 temp_v0; Unk_D_800E70A0* temp_v1; @@ -10658,7 +10642,7 @@ void func_800ABBCC(struct_8018D9E0_entry* arg0) { arg0->row = temp_v1->row + ((temp_v0 % 4) * 0x32) + 0x14; } -void func_800ABC38(struct_8018D9E0_entry* arg0) { +void func_800ABC38(MenuItem* arg0) { // Huh? s32 one = 1; func_800ABCF4(arg0); @@ -10674,7 +10658,7 @@ void func_800ABC38(struct_8018D9E0_entry* arg0) { } break; default: - if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != (s32) 1U) || (D_8018EE08 != 0)) { + if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != (s32) 1U) || (gDemoUseController != 0)) { arg0->type = 0; } else { if (arg0->row >= -0x13) { @@ -10687,41 +10671,41 @@ void func_800ABC38(struct_8018D9E0_entry* arg0) { } } -void func_800ABCF4(struct_8018D9E0_entry* arg0) { +void func_800ABCF4(MenuItem* arg0) { f64 temp_f0; - switch (arg0->cursor) { /* irregular */ + switch (arg0->state) { /* irregular */ case 0: arg0->column = 0; - arg0->cursor = 1; - arg0->unk20 = (get_string_width(gCupNames[D_800DC540]) / 2) + 0xA0; + arg0->state = 1; + arg0->param2 = (get_string_width(gCupNames[D_800DC540]) / 2) + 0xA0; /* fallthrough */ case 1: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (s32) (arg0->unk20 - arg0->column) / 4; - if (arg0->unk1C >= 9) { - arg0->unk1C = 8; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (s32) (arg0->param2 - arg0->column) / 4; + if (arg0->param1 >= 9) { + arg0->param1 = 8; } - arg0->unk24 = (f32) (((f64) arg0->unk1C * 0.05) + 1.0); - if (arg0->column >= (arg0->unk20 - 0x14)) { - arg0->cursor = 2; + arg0->paramf = (f32) (((f64) arg0->param1 * 0.05) + 1.0); + if (arg0->column >= (arg0->param2 - 0x14)) { + arg0->state = 2; arg0->D_8018DEE0_index = 0; } break; case 2: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (s32) (arg0->unk20 - arg0->column) / 4; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (s32) (arg0->param2 - arg0->column) / 4; arg0->D_8018DEE0_index++; temp_f0 = (f64) (arg0->D_8018DEE0_index - 0xA); - arg0->unk24 = (f32) ((temp_f0 * 0.0085 * temp_f0) + 0.4); - if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->unk24 > 1.0)) { - arg0->unk24 = 1.0f; + arg0->paramf = (f32) ((temp_f0 * 0.0085 * temp_f0) + 0.4); + if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->paramf > 1.0)) { + arg0->paramf = 1.0f; } break; } } -void func_800ABEAC(struct_8018D9E0_entry* arg0) { +void func_800ABEAC(MenuItem* arg0) { s32 why = 1; func_800ABF68(arg0); switch (D_80164A28) { @@ -10736,7 +10720,7 @@ void func_800ABEAC(struct_8018D9E0_entry* arg0) { } break; default: - if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != why) || (D_8018EE08 != 0)) { + if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != why) || (gDemoUseController != 0)) { arg0->type = 0; } else { if (arg0->row < 0x104) { @@ -10749,110 +10733,110 @@ void func_800ABEAC(struct_8018D9E0_entry* arg0) { } } -void func_800ABF68(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800ABF68(MenuItem* arg0) { + switch (arg0->state) { case 0: arg0->column = 0x140; - arg0->cursor = 1; - arg0->unk20 = 0xA0 - (get_string_width(CourseManager_GetProps()->Name) / 2); + arg0->state = 1; + arg0->param2 = 0xA0 - (get_string_width(CourseManager_GetProps()->Name) / 2); /* fallthrough */ case 1: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (arg0->column - arg0->unk20) / 4; - if (arg0->unk1C >= 9) { - arg0->unk1C = 8; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (arg0->column - arg0->param2) / 4; + if (arg0->param1 >= 9) { + arg0->param1 = 8; } - arg0->unk24 = (arg0->unk1C * 0.05) + 1.0; - if ((arg0->unk20 + 0x14) >= arg0->column) { - arg0->cursor = 2; + arg0->paramf = (arg0->param1 * 0.05) + 1.0; + if ((arg0->param2 + 0x14) >= arg0->column) { + arg0->state = 2; arg0->D_8018DEE0_index = 0; } break; case 2: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (arg0->column - arg0->unk20) / 4; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (arg0->column - arg0->param2) / 4; arg0->D_8018DEE0_index++; - arg0->unk24 = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; - if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->unk24 > 1.0)) { - arg0->unk24 = 1.0f; + arg0->paramf = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; + if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->paramf > 1.0)) { + arg0->paramf = 1.0f; } break; } } -void func_800AC128(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AC128(MenuItem* arg0) { + switch (arg0->state) { case 0: arg0->column = 0x00000140; - arg0->cursor = 1; + arg0->state = 1; /* fallthrough */ case 1: func_800A940C(arg0, 0x00000064); - arg0->unk1C = (s32) (arg0->column - 0x64) / 6; - if (arg0->unk1C >= 9) { - arg0->unk1C = 8; + arg0->param1 = (s32) (arg0->column - 0x64) / 6; + if (arg0->param1 >= 9) { + arg0->param1 = 8; } - arg0->unk24 = (f32) (((f64) arg0->unk1C * 0.07) + 0.6); + arg0->paramf = (f32) (((f64) arg0->param1 * 0.07) + 0.6); if (arg0->column == 0x00000064) { - arg0->cursor = 2; + arg0->state = 2; arg0->D_8018DEE0_index = 0; } break; case 2: arg0->D_8018DEE0_index++; - arg0->unk1C = 0; - arg0->unk24 = (f32) (1.5 - ((arg0->D_8018DEE0_index - 0xF) * 0.004 * (arg0->D_8018DEE0_index - 0xF))); - if ((arg0->D_8018DEE0_index >= 0x10) && ((f64) arg0->unk24 < 0.8)) { - arg0->cursor = 3; + arg0->param1 = 0; + arg0->paramf = (f32) (1.5 - ((arg0->D_8018DEE0_index - 0xF) * 0.004 * (arg0->D_8018DEE0_index - 0xF))); + if ((arg0->D_8018DEE0_index >= 0x10) && ((f64) arg0->paramf < 0.8)) { + arg0->state = 3; arg0->D_8018DEE0_index = 0; } break; case 3: arg0->D_8018DEE0_index++; - arg0->unk1C = 0; - arg0->unk24 = (f32) (1.25 - ((arg0->D_8018DEE0_index - 0xF) * 0.002 * (arg0->D_8018DEE0_index - 0xF))); - if ((arg0->D_8018DEE0_index >= 0xD) && ((f64) arg0->unk24 < 1.0)) { - arg0->unk24 = 1.0f; + arg0->param1 = 0; + arg0->paramf = (f32) (1.25 - ((arg0->D_8018DEE0_index - 0xF) * 0.002 * (arg0->D_8018DEE0_index - 0xF))); + if ((arg0->D_8018DEE0_index >= 0xD) && ((f64) arg0->paramf < 1.0)) { + arg0->paramf = 1.0f; } break; } } -void func_800AC300(struct_8018D9E0_entry* arg0) { - if (arg0->unk20 < ++arg0->unk1C) { +void func_800AC300(MenuItem* arg0) { + if (arg0->param2 < ++arg0->param1) { arg0->type = 0; } } -void func_800AC324(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AC324(MenuItem* arg0) { + switch (arg0->state) { case 0: arg0->column = 0x14A; - arg0->cursor = 1; + arg0->state = 1; func_800921B4(); break; case 1: func_800A9208(arg0, 0xA0); if (arg0->column == 0xA0) { - arg0->cursor = 2; - arg0->unk20 = 0; + arg0->state = 2; + arg0->param2 = 0; } break; case 2: - arg0->unk20++; - if (((D_8018D9D8 != 0) || (arg0->unk20 >= 0x5B)) && (D_800DDB24 != 0)) { - arg0->cursor = 3; - arg0->unk1C = arg0->column; - add_ui_element(0xAB, 0, 0, 0); + arg0->param2++; + if (((D_8018D9D8 != 0) || (arg0->param2 >= 0x5B)) && (D_800DDB24 != 0)) { + arg0->state = 3; + arg0->param1 = arg0->column; + add_menu_item(0xAB, 0, 0, 0); } break; case 3: - arg0->column = arg0->unk1C; - if (arg0->unk1C < 0x14A) { + arg0->column = arg0->param1; + if (arg0->param1 < 0x14A) { if (D_8018D9D8 != 0) { - arg0->unk1C += 0x20; + arg0->param1 += 0x20; } else { - arg0->unk1C += 0x10; + arg0->param1 += 0x10; } } else { arg0->type = 0; @@ -10861,49 +10845,45 @@ void func_800AC324(struct_8018D9E0_entry* arg0) { } } -#ifdef NON_MATCHING -// https://decomp.me/scratch/NzdUC -// A really stupid register allocation issue -void func_800AC458(struct_8018D9E0_entry* arg0) { +void func_800AC458(MenuItem* arg0) { s32 var_a1; s32 var_t1; + s32 temp; - switch (arg0->cursor) { + switch (arg0->state) { case 0: arg0->column = -0x000000A0; - arg0->cursor = 1; - for (var_a1 = 0; var_a1 < 4; var_a1++) { - D_8018D9BC[var_a1] = gGPPointRewards[var_a1]; + arg0->state = 1; + for (var_a1 = 0; var_a1 < ARRAY_COUNT(gGPPointRewards); var_a1++) { + sGPPointsCopy[var_a1] = gGPPointRewards[var_a1]; } - arg0->unk20 = arg0->column; + arg0->param2 = arg0->column; break; case 1: - arg0->column = arg0->unk20; - if (D_8018D9D8 != 0) { - var_a1 = 0x20; + arg0->column = arg0->param2; + + temp = (D_8018D9D8 != 0) ? 0x20 : 0x10; + + if ((arg0->param2 + temp) < 0) { + arg0->param2 += temp; + D_800DC5EC->screenStartX += temp; + D_800DC5F0->screenStartX -= temp; } else { - var_a1 = 0x10; - } - if ((arg0->unk20 + var_a1) < 0) { - arg0->unk20 += var_a1; - D_800DC5EC->screenStartX += var_a1; - D_800DC5F0->screenStartX -= var_a1; - } else { - arg0->unk20 = 0; + arg0->param2 = 0; arg0->column = 0; - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; D_800DC5EC->screenStartX = 0x00F0; D_800DC5F0->screenStartX = 0x0050; } break; case 2: arg0->column = 0; - arg0->unk1C++; - if (((D_8018D9D8 != 0) || (arg0->unk1C >= 0x1F)) && (D_800DDB24 != 0)) { - arg0->cursor = 3; - arg0->unk1C = 0; - arg0->unk20 = 0; + arg0->param1++; + if (((D_8018D9D8 != 0) || (arg0->param1 >= 0x1F)) && (D_800DDB24 != 0)) { + arg0->state = 3; + arg0->param1 = 0; + arg0->param2 = 0; } break; case 3: @@ -10911,57 +10891,57 @@ void func_800AC458(struct_8018D9E0_entry* arg0) { case 5: case 6: var_t1 = 0; - var_a1 = arg0->cursor - 3; - arg0->unk1C++; - if (((arg0->unk1C % 3) == 0) || (D_8018D9D8 != 0)) { - if (D_8018D9BC[var_a1] > 0) { - D_8018D9BC[var_a1]--; + var_a1 = arg0->state - 3; + arg0->param1++; + if (((arg0->param1 % 3) == 0) || (D_8018D9D8 != 0)) { + if (sGPPointsCopy[var_a1] > 0) { + sGPPointsCopy[var_a1]--; gGPPointsByCharacterId[gPlayers[gGPCurrentRacePlayerIdByRank[var_a1]].characterId] += 1; play_sound2(SOUND_ACTION_COUNT_SCORE); var_t1 = 0; - if ((D_8018D9BC[var_a1] == 0) && (arg0->unk20 == 0)) { - arg0->unk20 = 1; - arg0->unk1C = 0; + if ((sGPPointsCopy[var_a1] == 0) && (arg0->param2 == 0)) { + arg0->param2 = 1; + arg0->param1 = 0; } } } - if ((arg0->unk20 != 0) && ((arg0->unk1C > 0xA) || ((D_8018D9D8 != 0) && (arg0->unk1C >= 4)))) { + if ((arg0->param2 != 0) && ((arg0->param1 > 0xA) || ((D_8018D9D8 != 0) && (arg0->param1 >= 4)))) { var_t1 = 1; } if (var_t1 != 0) { - arg0->unk20 = 0; - arg0->unk1C = 0; - if (arg0->cursor < 6) { - arg0->cursor++; + arg0->param2 = 0; + arg0->param1 = 0; + if (arg0->state < 6) { + arg0->state++; } else { - arg0->cursor = 7; + arg0->state = 7; } } break; case 7: - arg0->unk1C++; - if ((((D_8018D9D8 != 0) && (arg0->unk1C >= 0xB)) || (arg0->unk1C >= 0x3D)) && (D_800DDB24 != 0)) { - arg0->cursor = 8; - arg0->unk1C = 0; + arg0->param1++; + if ((((D_8018D9D8 != 0) && (arg0->param1 >= 0xB)) || (arg0->param1 >= 0x3D)) && (D_800DDB24 != 0)) { + arg0->state = 8; + arg0->param1 = 0; } break; case 8: - arg0->unk1C++; + arg0->param1++; if (D_8018D9D8 != 0) { - arg0->unk1C += 5; + arg0->param1 += 5; } - if (arg0->unk1C >= 0x29) { - arg0->cursor = 9; + if (arg0->param1 >= 0x29) { + arg0->state = 9; } break; case 9: - arg0->unk1C--; + arg0->param1--; if (D_8018D9D8 != 0) { - arg0->unk1C -= 5; + arg0->param1 -= 5; } - if (arg0->unk1C <= 0) { - arg0->cursor = 0x0000000A; - arg0->unk1C = 0; + if (arg0->param1 <= 0) { + arg0->state = 0x0000000A; + arg0->param1 = 0; if (gCourseIndexInCup == 3) { for (var_a1 = 0; var_a1 < 8; var_a1++) { if (D_80164478[gCharacterIdByGPOverallRank[var_a1]] < gPlayerCount) { @@ -10973,30 +10953,30 @@ void func_800AC458(struct_8018D9E0_entry* arg0) { } break; case 10: - arg0->unk1C++; - if (arg0->unk1C > 0) { - arg0->cursor = 0x0000000B; - arg0->unk1C = 0; + arg0->param1++; + if (arg0->param1 > 0) { + arg0->state = 0x0000000B; + arg0->param1 = 0; func_800921B4(); } break; case 11: if ((D_8018D9D8 != 0) && (D_800DDB24 != 0)) { - arg0->cursor = 0x0000000C; - arg0->unk20 = arg0->row; + arg0->state = 0x0000000C; + arg0->param2 = arg0->row; play_sound2(SOUND_ACTION_NEXT_COURSE); } break; case 12: - arg0->row = arg0->unk20; - if (arg0->unk20 < 0xF0) { - arg0->unk20 += 0x10; + arg0->row = arg0->param2; + if (arg0->param2 < 0xF0) { + arg0->param2 += 0x10; D_800DC5EC->screenStartY += 0x10; D_800DC5F0->screenStartY -= 0x10; } else { - arg0->unk20 = 0; - arg0->cursor = 0x0000000D; - arg0->unk1C = 0; + arg0->param2 = 0; + arg0->state = 0x0000000D; + arg0->param1 = 0; D_800DC5EC->screenStartY = 0x012C; D_800DC5F0->screenStartY = -0x003C; D_8015F894 = 4; @@ -11008,152 +10988,149 @@ void func_800AC458(struct_8018D9E0_entry* arg0) { break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AC458.s") -#endif -void func_800AC978(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { /* irregular */ +void func_800AC978(MenuItem* arg0) { + switch (arg0->state) { /* irregular */ case 0: arg0->column = 0x14A; - arg0->cursor = 1; - arg0->unk1C = 0xFF; + arg0->state = 1; + arg0->param1 = 0xFF; break; case 1: func_800A9208(arg0, 0xA0); if (arg0->column == 0xA0) { - arg0->cursor = 2; + arg0->state = 2; } break; case 2: break; case 3: - if (arg0->unk1C != 0) { - arg0->unk1C -= 0x33; + if (arg0->param1 != 0) { + arg0->param1 -= 0x33; } break; } } -void func_800ACA14(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { /* irregular */ +void func_800ACA14(MenuItem* arg0) { + switch (arg0->state) { /* irregular */ case 0: - if (arg0->unk20 >= 0xB) { - arg0->unk1C += 3; + if (arg0->param2 >= 0xB) { + arg0->param1 += 3; } - if (arg0->unk1C >= 0x65) { - arg0->cursor = 0x0000000B; - arg0->unk1C = 0; + if (arg0->param1 >= 0x65) { + arg0->state = 0x0000000B; + arg0->param1 = 0; } break; case 11: case 12: - if (func_800B4520()) { + if (is_screen_being_faded()) { break; } if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x800) { - if (arg0->cursor >= 0xC) { - arg0->cursor--; + if (arg0->state >= 0xC) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x400) { - if (arg0->cursor < 0xC) { - arg0->cursor++; + if (arg0->state < 0xC) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (gControllerFive->buttonPressed & 0x9000) { func_8009DFE0(0x0000001E); func_800CA330(0x19U); play_sound2(SOUND_ACTION_CONTINUE_UNKNOWN); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } break; default: break; } - if (arg0->unk20 < 0x28) { - arg0->unk20++; + if (arg0->param2 < 0x28) { + arg0->param2++; } } -void func_800ACC50(struct_8018D9E0_entry* arg0) { - s32 var_s0; +void func_800ACC50(MenuItem* arg0) { + s32 i; - switch (arg0->cursor) { + switch (arg0->state) { case 0: - arg0->unk1C += 3; - if (arg0->unk1C >= 0x65) { - arg0->cursor = 1; - arg0->unk1C = 0; - for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { - add_ui_element(var_s0 + 0xB1, 0, 0, (s8) (5 - var_s0)); + arg0->param1 += 3; + if (arg0->param1 >= 0x65) { + arg0->state = 1; + arg0->param1 = 0; + for (i = 0; i < gPlayerCount; i++) { + add_menu_item(i + MENU_ITEM_TYPE_0B1, 0, 0, (s8) (MENU_ITEM_PRIORITY_5 - i)); } } break; case 1: - if (find_8018D9E0_entry_dupe(0x000000B1)->cursor >= 2) { - arg0->cursor = 2; + if (find_menu_items_dupe(0x000000B1)->state >= 2) { + arg0->state = 2; } break; case 2: - arg0->unk1C += 0x20; - if (arg0->unk1C >= 0x100) { + arg0->param1 += 0x20; + if (arg0->param1 >= 0x100) { if (gModeSelection == VERSUS) { - arg0->cursor = (s32) D_8018EDF4; + arg0->state = (s32) gVersusResultCursorSelection; } else { - arg0->cursor = (s32) D_8018EDF6; + arg0->state = (s32) gBattleResultCursorSelection; } - arg0->unk1C = 0; + arg0->param1 = 0; } break; case 10: case 11: case 12: case 13: - if (func_800B4520() == 0) { + if (is_screen_being_faded() == 0) { if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x800) { - if (arg0->cursor >= 0xB) { - arg0->cursor--; + if (arg0->state >= 0xB) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x400) { - if (arg0->cursor < 0xD) { - arg0->cursor++; + if (arg0->state < 0xD) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (gControllerFive->buttonPressed & 0x9000) { func_8009DFE0(0x0000001E); play_sound2(SOUND_MENU_OK_CLICKED); if (gModeSelection == VERSUS) { - D_8018EDF4 = (s8) arg0->cursor; + gVersusResultCursorSelection = (s8) arg0->state; } else { - D_8018EDF6 = (s8) arg0->cursor; + gBattleResultCursorSelection = (s8) arg0->state; } - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } } @@ -11163,7 +11140,7 @@ void func_800ACC50(struct_8018D9E0_entry* arg0) { } } -void func_800ACF40(struct_8018D9E0_entry* arg0) { +void func_800ACF40(MenuItem* arg0) { Unk_D_800E70A0* temp_v0_2; s32 temp_a2; s32 temp_a1; @@ -11172,42 +11149,42 @@ void func_800ACF40(struct_8018D9E0_entry* arg0) { temp_a2 = arg0->type - 0xB1; temp_a1 = D_800EFD64[gCharacterSelections[arg0->type - 0xB1]]; - switch (arg0->cursor) { + switch (arg0->state) { case 0: arg0->column = D_800E72F8.column; arg0->row = D_800E72F8.row; - arg0->cursor = 1; + arg0->state = 1; break; case 1: temp_v0_2 = &D_800E7300[((gPlayerCount - 2) * 4) + temp_a2]; func_800A9208(arg0, temp_v0_2->column); func_800A9278(arg0, temp_v0_2->row); if (arg0->column == temp_v0_2->column) { - arg0->cursor = 2; - arg0->unk20 = 0; + arg0->state = 2; + arg0->param2 = 0; } 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; } break; } if (var_v1 == 0) { - arg0->unk20++; - if (arg0->unk20 >= 0x1F) { - if (find_8018D9E0_entry_dupe(0x000000B0)->cursor >= 2) { + arg0->param2++; + if (arg0->param2 >= 0x1F) { + if (find_menu_items_dupe(0x000000B0)->state >= 2) { func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1])); - arg0->cursor = 3; + arg0->state = 3; func_800CA24C(temp_a2); func_800C90F4(temp_a2, (gCharacterSelections[temp_a2] * 0x10) + 0x29008007); } @@ -11217,7 +11194,7 @@ void func_800ACF40(struct_8018D9E0_entry* arg0) { case 3: if (D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex >= D_800E8440[temp_a1]) { func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe_2(D_800E83A0[temp_a1])); - arg0->cursor = 4; + arg0->state = 4; } break; case 4: @@ -11226,42 +11203,42 @@ void func_800ACF40(struct_8018D9E0_entry* arg0) { } } -void func_800AD1A4(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AD1A4(MenuItem* arg0) { + switch (arg0->state) { case 0: arg0->column = 0x0000014A; - arg0->cursor = 1; + arg0->state = 1; func_800921B4(); - add_ui_element(0x000000BB, 0, 0, 0); + add_menu_item(MENU_ITEM_TYPE_0BB, 0, 0, MENU_ITEM_PRIORITY_0); break; case 1: func_800A9208(arg0, 0x000000A0); if (arg0->column == 0x000000A0) { - arg0->cursor = 2; - arg0->unk20 = 0; + arg0->state = 2; + arg0->param2 = 0; } break; case 2: - arg0->unk20++; - if (arg0->unk20 >= 0x15) { - arg0->cursor = 3; + arg0->param2++; + if (arg0->param2 >= 0x15) { + arg0->state = 3; } break; case 3: if (D_8018D9D8 != 0) { func_800921B4(); - arg0->cursor = 4; - arg0->unk1C = arg0->column; - add_ui_element(0x000000BA, 0, 0, 0); + arg0->state = 4; + arg0->param1 = arg0->column; + add_menu_item(MENU_ITEM_TYPE_0BA, 0, 0, MENU_ITEM_PRIORITY_0); } break; case 4: - arg0->column = arg0->unk1C; - if (arg0->unk1C < 0x14A) { + arg0->column = arg0->param1; + if (arg0->param1 < 0x14A) { if (D_8018D9D8 != 0) { - arg0->unk1C += 0x20; + arg0->param1 += 0x20; } else { - arg0->unk1C += 0x10; + arg0->param1 += 0x10; } } else { arg0->type = 0; @@ -11272,39 +11249,39 @@ void func_800AD1A4(struct_8018D9E0_entry* arg0) { } } -void func_800AD2E8(struct_8018D9E0_entry* arg0) { +void func_800AD2E8(MenuItem* arg0) { struct_8018EE10_entry* thing; s32 var_v1; s32 var_a1; s32 index; - switch (arg0->cursor) { /* switch 3; irregular */ + switch (arg0->state) { /* switch 3; irregular */ case 0: /* switch 3 */ arg0->column = -0x000000A0; - arg0->cursor = 1; - for (index = 0; index < 4; index++) { - D_8018D9BC[index] = gGPPointRewards[index]; + arg0->state = 1; + for (index = 0; index < ARRAY_COUNT(gGPPointRewards); index++) { + sGPPointsCopy[index] = gGPPointRewards[index]; } - arg0->unk20 = arg0->column; + arg0->param2 = arg0->column; break; ; case 1: /* switch 3 */ - arg0->column = arg0->unk20; + arg0->column = arg0->param2; if (D_8018D9D8 != 0) { var_a1 = 0x20; } else { var_a1 = 0x10; } - if ((arg0->unk20 + var_a1) < 0) { - arg0->unk20 += var_a1; + if ((arg0->param2 + var_a1) < 0) { + arg0->param2 += var_a1; D_800DC5EC->screenStartX += var_a1; D_800DC5F0->screenStartX -= var_a1; } else { - arg0->unk20 = 0; + arg0->param2 = 0; arg0->column = 0; - arg0->cursor = D_8018EDF5; - if ((arg0->cursor == 9) && (D_80162DF8 == 1)) { - arg0->cursor--; + arg0->state = gTimeTrialsResultCursorSelection; + if ((arg0->state == 9) && (D_80162DF8 == 1)) { + arg0->state--; } D_800DC5EC->screenStartX = 0x00F0; D_800DC5F0->screenStartX = 0x0050; @@ -11316,42 +11293,42 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { case 8: /* switch 3 */ case 9: /* switch 3 */ case 10: /* switch 3 */ - if (func_800B4520() == 0) { + if (is_screen_being_faded() == 0) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { - if (arg0->cursor >= 6) { - arg0->cursor--; - if ((D_80162DF8 == 1) && (arg0->cursor == 9)) { - arg0->cursor--; + if (arg0->state >= 6) { + arg0->state--; + if ((D_80162DF8 == 1) && (arg0->state == 9)) { + arg0->state--; } play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0xA) { - arg0->cursor++; - if ((D_80162DF8 == 1) && (arg0->cursor == 9)) { - arg0->cursor++; + if (arg0->state < 0xA) { + arg0->state++; + if ((D_80162DF8 == 1) && (arg0->state == 9)) { + arg0->state++; } - if ((arg0->cursor == 0x0000000A) && (D_80162DD4 != 0)) { - arg0->cursor -= 2; + if ((arg0->state == 0x0000000A) && (D_80162DD4 != 0)) { + arg0->state -= 2; } else { play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } } if (gControllerOne->buttonPressed & 0x9000) { - if (arg0->cursor == 0x0000000A) { + if (arg0->state == 0x0000000A) { var_v1 = 0; - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } if (gControllerPak1State != 0) { var_v1 = 0; @@ -11361,7 +11338,7 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { break; case 0: /* switch 4 */ func_800B6708(); - arg0->cursor = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x11; + arg0->state = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x11; var_v1 = 1; play_sound2(SOUND_MENU_SELECT); break; @@ -11377,26 +11354,26 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { if (gControllerPak1State == 0) { switch (func_800B5F30()) { /* switch 2 */ case -1: /* switch 2 */ - arg0->cursor = 0x0000000B; + arg0->state = 0x0000000B; var_v1 = 1; break; case -3: /* switch 2 */ case -2: /* switch 2 */ - arg0->cursor = 0x0000000C; + arg0->state = 0x0000000C; var_v1 = 1; break; case 1: /* switch 2 */ case 11: /* switch 2 */ - arg0->cursor = 0x0000000B; + arg0->state = 0x0000000B; var_v1 = 1; break; case 10: /* switch 2 */ - arg0->cursor = 0x0000000C; + arg0->state = 0x0000000C; var_v1 = 1; break; default: /* switch 2 */ var_v1 = 1; - arg0->cursor = 0x0000000C; + arg0->state = 0x0000000C; break; case 0: break; @@ -11408,33 +11385,33 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) == 0) { func_800B6708(); - arg0->cursor = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x11; + arg0->state = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x11; play_sound2(SOUND_MENU_SELECT); return; } } if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) { - arg0->cursor = 0x0000000E; + arg0->state = 0x0000000E; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } if (gControllerPak1NumPagesFree >= 0x79) { - arg0->cursor = 0x00000013; - arg0->unk1C = 0; + arg0->state = 0x00000013; + arg0->param1 = 0; play_sound2(SOUND_MENU_SELECT); return; } - arg0->cursor = 0x0000000E; + arg0->state = 0x0000000E; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } } else { - arg0->unk1C = arg0->cursor; - D_8018EDF5 = arg0->cursor; - arg0->cursor = 0x0000001E; - arg0->unk20 = arg0->row; + arg0->param1 = arg0->state; + gTimeTrialsResultCursorSelection = arg0->state; + arg0->state = 0x0000001E; + arg0->param2 = arg0->row; play_sound2(SOUND_ACTION_NEXT_COURSE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } } @@ -11448,139 +11425,139 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { case 16: /* switch 1 */ case 26: /* switch 1 */ if (gControllerOne->buttonPressed & 0xD000) { - arg0->cursor = 0x0000000A; + arg0->state = 0x0000000A; play_sound2(SOUND_MENU_GO_BACK); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } break; case 17: /* switch 1 */ case 18: /* switch 1 */ - arg0->unk20 = arg0->cursor - 0x11; - if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) != arg0->unk20) { + arg0->param2 = arg0->state - 0x11; + if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) != arg0->param2) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { - if (arg0->cursor >= 0x12) { - arg0->cursor--; + if (arg0->state >= 0x12) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0x12) { - arg0->cursor++; + if (arg0->state < 0x12) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } } if (gControllerOne->buttonPressed & 0x4000) { - arg0->cursor = 0x0000000A; + arg0->state = 0x0000000A; play_sound2(SOUND_MENU_GO_BACK); return; } if (gControllerOne->buttonPressed & 0x9000) { - thing = &D_8018EE10[arg0->unk20]; + thing = &D_8018EE10[arg0->param2]; if (thing->ghostDataSaved == 0) { - arg0->cursor = 0x00000019; - arg0->unk1C = 0; - } else if (func_800B63F0(arg0->unk20) == 0) { - arg0->cursor = 0x00000010; + arg0->state = 0x00000019; + arg0->param1 = 0; + } else if (func_800B63F0(arg0->param2) == 0) { + arg0->state = 0x00000010; } else { - arg0->cursor = 0x00000014; + arg0->state = 0x00000014; } play_sound2(SOUND_MENU_SELECT); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } break; case 19: /* switch 1 */ - if ((arg0->unk1C == 1) && (func_800B6A68() != 0)) { - arg0->cursor = 0x0000000F; + if ((arg0->param1 == 1) && (func_800B6A68() != 0)) { + arg0->state = 0x0000000F; return; } else { - arg0->unk1C++; - if (arg0->unk1C >= 2) { - arg0->cursor = 0x00000011; + arg0->param1++; + if (arg0->param1 >= 2) { + arg0->state = 0x00000011; } } break; case 20: /* switch 1 */ case 21: /* switch 1 */ - if (((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) && (arg0->cursor >= 0x15)) { - arg0->cursor--; + if (((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) && (arg0->state >= 0x15)) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0x15) { - arg0->cursor++; + if (arg0->state < 0x15) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (gControllerOne->buttonPressed & 0x4000) { - arg0->cursor = arg0->unk20 + 0x11; + arg0->state = arg0->param2 + 0x11; play_sound2(SOUND_MENU_GO_BACK); return; } if (gControllerOne->buttonPressed & 0x9000) { - if (arg0->cursor == 0x00000015) { - arg0->cursor = 0x00000019; - arg0->unk1C = 0; + if (arg0->state == 0x00000015) { + arg0->state = 0x00000019; + arg0->param1 = 0; play_sound2(SOUND_MENU_SELECT); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } else { - arg0->cursor = arg0->unk20 + 0x11; + arg0->state = arg0->param2 + 0x11; play_sound2(SOUND_MENU_GO_BACK); return; } } break; case 25: /* switch 1 */ - if (arg0->unk1C == 1) { + if (arg0->param1 == 1) { if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) != 0) { - arg0->cursor = 0x0000001A; + arg0->state = 0x0000001A; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - if (func_800B6178(arg0->unk20) != 0) { - arg0->cursor = 0x0000001A; + if (func_800B6178(arg0->param2) != 0) { + arg0->state = 0x0000001A; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } } - arg0->unk1C++; - if (arg0->unk1C >= 2) { - arg0->cursor = 0x0000000A; + arg0->param1++; + if (arg0->param1 >= 2) { + arg0->state = 0x0000000A; return; } break; case 30: /* switch 1 */ - arg0->row = arg0->unk20; - if (arg0->unk20 < 0xF0) { - arg0->unk20 += 0x10; + arg0->row = arg0->param2; + if (arg0->param2 < 0xF0) { + arg0->param2 += 0x10; D_800DC5EC->screenStartY += 0x10; D_800DC5F0->screenStartY -= 0x10; return; } - switch (arg0->unk1C) { /* switch 3 */ + switch (arg0->param1) { /* switch 3 */ case 5: /* switch 3 */ D_8015F890 = 0; D_8015F892 = 1; @@ -11601,8 +11578,8 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { func_802903B0(); break; } - arg0->unk20 = 0; - arg0->cursor = 0x0000001F; + arg0->param2 = 0; + arg0->state = 0x0000001F; D_800DC5EC->screenStartY = 0x012C; D_800DC5F0->screenStartY = -0x003C; D_8015F894 = 4; @@ -11618,14 +11595,14 @@ void func_800AD2E8(struct_8018D9E0_entry* arg0) { #else #define FUNC_800ADF48DEF 60 #endif -void func_800ADF48(struct_8018D9E0_entry* arg0) { +void func_800ADF48(MenuItem* arg0) { UNUSED s32 stackPadding; struct Controller* controller; if (gIsGamePaused != 0) { - switch (arg0->cursor) { + switch (arg0->state) { case 0: - arg0->cursor = D_800F0B50[gModeSelection]; + arg0->state = D_800F0B50[gModeSelection]; break; case 11: case 12: @@ -11642,38 +11619,38 @@ void func_800ADF48(struct_8018D9E0_entry* arg0) { case 42: case 43: case 44: - if (func_800B4520() == 0) { + if (is_screen_being_faded() == 0) { controller = &gControllers[gIsGamePaused - 1]; if ((controller->buttonPressed | controller->stickPressed) & 0x800) { - if (D_800F0B50[gModeSelection] < arg0->cursor) { - arg0->cursor--; + if (D_800F0B50[gModeSelection] < arg0->state) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((controller->buttonPressed | controller->stickPressed) & 0x400) { - if (arg0->cursor < D_800F0B54[gModeSelection]) { - arg0->cursor++; + if (arg0->state < D_800F0B54[gModeSelection]) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (controller->buttonPressed & B_BUTTON) { - if (arg0->cursor != D_800F0B50[gModeSelection]) { - arg0->cursor = D_800F0B50[gModeSelection]; + if (arg0->state != D_800F0B50[gModeSelection]) { + arg0->state = D_800F0B50[gModeSelection]; play_sound2(SOUND_MENU_GO_BACK); return; } } if (controller->buttonPressed & (START_BUTTON | A_BUTTON)) { - if (arg0->cursor == D_800F0B50[gModeSelection]) { - arg0->cursor = 0; + if (arg0->state == D_800F0B50[gModeSelection]) { + arg0->state = 0; gIsGamePaused = 0; func_8028DF38(); func_800C9F90(0U); @@ -11681,8 +11658,8 @@ void func_800ADF48(struct_8018D9E0_entry* arg0) { func_8009DFE0(30); play_sound2(SOUND_ACTION_CONTINUE_UNKNOWN); func_800CA330(FUNC_800ADF48DEF); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } } @@ -11692,70 +11669,70 @@ void func_800ADF48(struct_8018D9E0_entry* arg0) { break; } } else { - arg0->cursor = 0; + arg0->state = 0; } } -void func_800AE218(struct_8018D9E0_entry* arg0) { +void func_800AE218(MenuItem* arg0) { struct_8018EE10_entry* thing; s32 var_v1; - if (arg0->cursor != 0) { + if (arg0->state != 0) { D_800DC5B8 = 0; } - switch (arg0->cursor) { /* switch 1 */ - case 0: /* switch 1 */ - if (arg0->unk1C < 0x1E) { - arg0->unk1C++; + switch (arg0->state) { + case 0: + if (arg0->param1 < 0x1E) { + arg0->param1++; } if (gControllerOne->buttonPressed & 0x1000) { - arg0->cursor = 0x0000000F; + arg0->state = 0x0000000F; play_sound2(SOUND_ACTION_GO_BACK_2); } else if (playerHUD[PLAYER_ONE].raceCompleteBool != 0) { - arg0->cursor = 1; - arg0->unk1C = 0; + arg0->state = 1; + arg0->param1 = 0; } break; - default: /* switch 1 */ + default: break; - case 1: /* switch 1 */ - arg0->unk1C += 3; - if (arg0->unk1C >= 0x8D) { - arg0->cursor = 0x0000000F; + case 1: + arg0->param1 += 3; + if (arg0->param1 >= 0x8D) { + arg0->state = 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 */ - if (func_800B4520() == 0) { + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + if (is_screen_being_faded() == 0) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { - if (arg0->cursor >= 0xC) { - arg0->cursor--; + if (arg0->state >= 0xC) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0x10) { - arg0->cursor++; + if (arg0->state < 0x10) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (gControllerOne->buttonPressed & 0x9000) { - if (arg0->cursor == 0x00000010) { + if (arg0->state == 0x00000010) { var_v1 = 0; - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } if (gControllerPak1State != 0) { var_v1 = 0; @@ -11765,7 +11742,7 @@ void func_800AE218(struct_8018D9E0_entry* arg0) { break; case PFS_NO_ERROR: /* switch 3 */ func_800B6708(); - arg0->cursor = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x1E; + arg0->state = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x1E; var_v1 = 1; break; case PFS_ERR_NEW_PACK: /* switch 3 */ @@ -11783,26 +11760,26 @@ void func_800AE218(struct_8018D9E0_entry* arg0) { if (gControllerPak1State == 0) { switch (func_800B5F30()) { /* switch 2 */ case PFS_INVALID_DATA: /* switch 2 */ - arg0->cursor = 0x00000015; + arg0->state = 0x00000015; var_v1 = 1; break; case PFS_FREE_BLOCKS_ERROR: /* switch 2 */ case PFS_NUM_FILES_ERROR: /* switch 2 */ - arg0->cursor = 0x00000016; + arg0->state = 0x00000016; var_v1 = 1; break; case PFS_ERR_NOPACK: /* switch 2 */ case PFS_ERR_DEVICE: /* switch 2 */ - arg0->cursor = 0x00000015; + arg0->state = 0x00000015; var_v1 = 1; break; case PFS_ERR_ID_FATAL: /* switch 2 */ - arg0->cursor = 0x00000016; + arg0->state = 0x00000016; var_v1 = 1; break; default: /* switch 2 */ var_v1 = 1; - arg0->cursor = 0x00000016; + arg0->state = 0x00000016; break; case 0: break; @@ -11814,20 +11791,20 @@ void func_800AE218(struct_8018D9E0_entry* arg0) { if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) == 0) { func_800B6708(); - arg0->cursor = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x1E; + arg0->state = func_800B6348((GetCupIndex() * 4) + GetCupCursorPosition()) + 0x1E; play_sound2(SOUND_MENU_SELECT); return; } } if (gControllerPak1MaxWriteableFiles >= gControllerPak1NumFilesUsed) { - arg0->cursor = 0x00000018; + arg0->state = 0x00000018; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } else if (gControllerPak1NumPagesFree >= 0x79) { - arg0->cursor = 0x00000020; - arg0->unk1C = 0; + arg0->state = 0x00000020; + arg0->param1 = 0; play_sound2(SOUND_MENU_SELECT); } else { - arg0->cursor = 0x00000018; + arg0->state = 0x00000018; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } } else { @@ -11835,175 +11812,175 @@ void func_800AE218(struct_8018D9E0_entry* arg0) { play_sound2(SOUND_MENU_OK_CLICKED); func_800CA330(0x19U); func_800CA388(0x19U); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } } } 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; + arg0->state = 0x00000010; play_sound2(SOUND_MENU_GO_BACK); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } break; - case 30: /* switch 1 */ - case 31: /* switch 1 */ - arg0->unk20 = (u32) arg0->cursor - 0x1E; - if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) != arg0->unk20) { + case 30: + case 31: + arg0->param2 = (u32) arg0->state - 0x1E; + if (func_800B639C((GetCupIndex() * 4) + GetCupCursorPosition()) != arg0->param2) { if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x800) { - if (arg0->cursor >= 0x1F) { - arg0->cursor--; + if (arg0->state >= 0x1F) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0x1F) { - arg0->cursor++; + if (arg0->state < 0x1F) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } } if (gControllerOne->buttonPressed & 0x4000) { - arg0->cursor = 0x00000010; + arg0->state = 0x00000010; play_sound2(SOUND_MENU_GO_BACK); } else if (gControllerOne->buttonPressed & 0x9000) { - thing = &D_8018EE10[arg0->unk20]; + thing = &D_8018EE10[arg0->param2]; if (thing->ghostDataSaved == 0) { - arg0->cursor = 0x00000028; - arg0->unk1C = 0; - } else if (func_800B63F0(arg0->unk20) == 0) { - arg0->cursor = 0x0000001A; + arg0->state = 0x00000028; + arg0->param1 = 0; + } else if (func_800B63F0(arg0->param2) == 0) { + arg0->state = 0x0000001A; } else { - arg0->cursor = 0x00000023; + arg0->state = 0x00000023; } play_sound2(SOUND_MENU_SELECT); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } break; - case 32: /* switch 1 */ - if ((arg0->unk1C == 1) && (func_800B6A68() != 0)) { - arg0->cursor = 0x00000019; + case 32: + if ((arg0->param1 == 1) && (func_800B6A68() != 0)) { + arg0->state = 0x00000019; } else { - arg0->unk1C++; - if (arg0->unk1C >= 2) { - arg0->cursor = 0x0000001E; + arg0->param1++; + if (arg0->param1 >= 2) { + arg0->state = 0x0000001E; } } 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--; + ((s32) (u32) arg0->state >= 0x24)) { + arg0->state--; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = -1; + arg0->subState = -1; } if ((gControllerOne->buttonPressed | gControllerOne->stickPressed) & 0x400) { - if (arg0->cursor < 0x24) { - arg0->cursor++; + if (arg0->state < 0x24) { + arg0->state++; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } - arg0->unk8 = 1; + arg0->subState = 1; } } if (gControllerOne->buttonPressed & 0x4000) { - arg0->cursor = arg0->unk20 + 0x1E; + arg0->state = arg0->param2 + 0x1E; play_sound2(SOUND_MENU_GO_BACK); } else if (gControllerOne->buttonPressed & 0x9000) { - if (arg0->cursor == 0x00000024) { - arg0->cursor = 0x00000028; - arg0->unk1C = 0; + if (arg0->state == 0x00000024) { + arg0->state = 0x00000028; + arg0->param1 = 0; play_sound2(SOUND_MENU_SELECT); - if (arg0->unk24 < 4.2) { - arg0->unk24 += 4.0; + if (arg0->paramf < 4.2) { + arg0->paramf += 4.0; } } else { - arg0->cursor = arg0->unk20 + 0x1E; + arg0->state = arg0->param2 + 0x1E; play_sound2(SOUND_MENU_GO_BACK); } } break; - case 40: /* switch 1 */ - if (arg0->unk1C == 1) { + case 40: + if (arg0->param1 == 1) { if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote) != 0) { - arg0->cursor = 0x00000029; + arg0->state = 0x00000029; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - if (func_800B6178(arg0->unk20) != 0) { - arg0->cursor = 0x00000029; + if (func_800B6178(arg0->param2) != 0) { + arg0->state = 0x00000029; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } } - arg0->unk1C++; - if (arg0->unk1C >= 2) { - arg0->cursor = 0x00000010; + arg0->param1++; + if (arg0->param1 >= 2) { + arg0->state = 0x00000010; } break; } } -void func_800AEC54(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { +void func_800AEC54(MenuItem* arg0) { + switch (arg0->state) { case 0: - arg0->column = (get_string_width(D_800E7780) / 2) + 0x140; + arg0->column = (get_string_width(gTextMenuAnnounceGhost) / 2) + 0x140; arg0->row = 0x000000DA; - arg0->cursor = 1; + arg0->state = 1; func_800C90F4(0U, (D_80162DE4 * 0x10) + 0x29008001); break; case 1: func_800A9208(arg0, 0x000000A0); if (arg0->column == 0x000000A0) { - arg0->cursor = 2; - arg0->unk1C = 0; + arg0->state = 2; + arg0->param1 = 0; } break; case 2: - arg0->unk1C++; - if (arg0->unk1C >= 0x3D) { - arg0->cursor = 3; - arg0->unk1C = 0; + arg0->param1++; + if (arg0->param1 >= 0x3D) { + arg0->state = 3; + arg0->param1 = 0; } break; case 4: - arg0->unk1C++; - if (arg0->unk1C >= 6) { + arg0->param1++; + if (arg0->param1 >= 6) { arg0->type = 0; break; } // Purposeful fallthrough case 3: func_800A94C8(arg0, 0x000000A0, -1); - if (((arg0->column + 0x14) == -(get_string_width(D_800E7780) / 2)) && (arg0->cursor == 3)) { - arg0->cursor = 4; + if (((arg0->column + 0x14) == -(get_string_width(gTextMenuAnnounceGhost) / 2)) && (arg0->state == 3)) { + arg0->state = 4; } break; default: @@ -12011,9 +11988,9 @@ void func_800AEC54(struct_8018D9E0_entry* arg0) { } } -void func_800AEDBC(struct_8018D9E0_entry* arg0) { - if (arg0->unk1C != gTimeTrialDataCourseIndex) { - arg0->unk1C = (s32) gTimeTrialDataCourseIndex; +void func_800AEDBC(MenuItem* arg0) { + if (arg0->param1 != gTimeTrialDataCourseIndex) { + arg0->param1 = (s32) gTimeTrialDataCourseIndex; func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2( D_800E7E34[gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]])); @@ -12026,31 +12003,31 @@ void func_800AEDBC(struct_8018D9E0_entry* arg0) { } } -void func_800AEE90(struct_8018D9E0_entry* arg0) { - if (D_8018EDEC != 0xB) { +void func_800AEE90(MenuItem* arg0) { + if (gSubMenuSelection != 0xB) { arg0->visible = 0; } else { arg0->visible = 1; } } -void func_800AEEBC(struct_8018D9E0_entry* arg0) { - if (D_8018EDEC != 0xC) { +void func_800AEEBC(MenuItem* arg0) { + if (gSubMenuSelection != 0xC) { arg0->visible = 0; } else { arg0->visible = 1; } } -void func_800AEEE8(struct_8018D9E0_entry* arg0) { - if (D_8018EDEC != 0xD) { +void func_800AEEE8(MenuItem* arg0) { + if (gSubMenuSelection != 0xD) { arg0->visible = 0; } else { arg0->visible = 1; } } -void func_800AEF14(struct_8018D9E0_entry* arg0) { +void func_800AEF14(MenuItem* arg0) { if (playerHUD[PLAYER_ONE].raceCompleteBool != 0) { if ((u32) playerHUD[PLAYER_ONE].someTimer < (u32) (func_800B4E24(4) & 0xFFFFF)) { D_8018ED90 = 1; @@ -12059,58 +12036,58 @@ void func_800AEF14(struct_8018D9E0_entry* arg0) { } } -void func_800AEF74(struct_8018D9E0_entry* arg0) { - switch (arg0->cursor) { /* irregular */ +void func_800AEF74(MenuItem* arg0) { + switch (arg0->state) { /* irregular */ case 0: if (D_80162DF8 == 1) { - arg0->cursor = 1; - arg0->unk1C = 0; + arg0->state = 1; + arg0->param1 = 0; } else if (playerHUD[PLAYER_ONE].raceCompleteBool == (s8) 1) { - arg0->cursor = 2; + arg0->state = 2; } break; case 2: break; case 1: - arg0->unk1C += 1; + arg0->param1 += 1; if (playerHUD[PLAYER_ONE].raceCompleteBool == 1) { - arg0->cursor = 2; + arg0->state = 2; } break; } } -void func_800AF004(struct_8018D9E0_entry* arg0) { +void func_800AF004(MenuItem* arg0) { UNUSED s32 temp_t1; - switch (arg0->cursor) { + switch (arg0->state) { case 0: - arg0->unk1C += 3; - if (arg0->unk1C >= 0x65) { - arg0->unk1C = 0; - arg0->cursor = 1; + arg0->param1 += 3; + if (arg0->param1 >= 0x65) { + arg0->param1 = 0; + arg0->state = 1; // gCupSelection %= 4; // gCCSelection %= 4; - add_ui_element(0x0000012C, 0, 0, 4); + add_menu_item(MENU_ITEM_TYPE_12C, 0, 0, MENU_ITEM_PRIORITY_4); } break; case 1: case 2: case 3: case 4: - arg0->unk1C += 1; - if (arg0->unk1C >= 9) { - arg0->unk1C = 0; - arg0->cursor++; - add_ui_element(arg0->cursor + 0x12B, 0, 0, 4); + arg0->param1 += 1; + if (arg0->param1 >= 9) { + arg0->param1 = 0; + arg0->state++; + add_menu_item(arg0->state + MENU_ITEM_TYPE_12B, 0, 0, MENU_ITEM_PRIORITY_4); } break; case 5: - arg0->unk1C += 1; - if ((arg0->unk1C >= 0x65) && + arg0->param1 += 1; + if ((arg0->param1 >= 0x65) && ((gControllerFive->buttonPressed != 0) || (gControllerFive->stickPressed != 0))) { - arg0->cursor = 6; - arg0->unk1C = 0; + arg0->state = 6; + arg0->param1 = 0; if (D_802874D8.unk1D < 3) { play_sound2(SOUND_MENU_OK_CLICKED); } else { @@ -12122,7 +12099,7 @@ void func_800AF004(struct_8018D9E0_entry* arg0) { func_8009DFE0(0x0000001E); func_800CA330(0x19U); func_800CA388(0x19U); - arg0->cursor = 7; + arg0->state = 7; break; case 7: default: @@ -12130,22 +12107,22 @@ void func_800AF004(struct_8018D9E0_entry* arg0) { } } -void func_800AF1AC(struct_8018D9E0_entry* arg0) { +void func_800AF1AC(MenuItem* arg0) { Unk_D_800E70A0* temp_v0_2; s32 idx = arg0->type - 0x12C; - switch (arg0->cursor) { /* irregular */ + switch (arg0->state) { /* irregular */ case 0: temp_v0_2 = &D_800E7458[idx]; arg0->column = temp_v0_2->column; arg0->row = temp_v0_2->row; - arg0->cursor = 1; + arg0->state = 1; break; case 1: temp_v0_2 = &D_800E7480[idx]; func_800A91D8(arg0, temp_v0_2->column, temp_v0_2->row); if ((arg0->column == temp_v0_2->column) && (arg0->row == temp_v0_2->row)) { - arg0->cursor = 2; + arg0->state = 2; } break; case 2: @@ -12153,7 +12130,7 @@ void func_800AF1AC(struct_8018D9E0_entry* arg0) { } } -void func_800AF270(struct_8018D9E0_entry* arg0) { +void func_800AF270(MenuItem* arg0) { s32 temp_v1; s32 sp30; s32 temp_v0; @@ -12162,31 +12139,31 @@ void func_800AF270(struct_8018D9E0_entry* arg0) { temp_v1 = arg0->type - 0x12C; sp30 = D_802874D8.unk1E; temp_v0 = D_800EFD64[sp30]; - switch (arg0->cursor) { + switch (arg0->state) { case 0: thing = &D_800E7458[temp_v1]; arg0->column = thing->column; arg0->row = thing->row; - arg0->cursor = 1; + arg0->state = 1; break; case 1: thing = &D_800E7480[temp_v1]; func_800A91D8(arg0, thing->column, thing->row); if ((arg0->column == thing->column) && (arg0->row == thing->row)) { - arg0->cursor = 2; - arg0->unk20 = 0; + arg0->state = 2; + arg0->param2 = 0; } break; case 2: - arg0->unk20++; - if (arg0->unk20 >= 0x1F) { + arg0->param2++; + if (arg0->param2 >= 0x1F) { if (D_802874D8.unk1D >= 3) { - arg0->cursor = 4; + arg0->state = 4; func_800CA0B8(); func_800C90F4(0U, (sp30 * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x03)); func_800CA0A0(); } else { - arg0->cursor = 3; + arg0->state = 3; func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_v0])); func_800CA0B8(); @@ -12198,7 +12175,7 @@ void func_800AF270(struct_8018D9E0_entry* arg0) { case 3: if (D_8018DEE0[arg0->D_8018DEE0_index].sequenceIndex >= D_800E8440[temp_v0]) { func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe_2(D_800E83A0[temp_v0])); - arg0->cursor = 4; + arg0->state = 4; } break; case 4: @@ -12206,59 +12183,59 @@ void func_800AF270(struct_8018D9E0_entry* arg0) { } } -void func_800AF480(struct_8018D9E0_entry* arg0) { +void func_800AF480(MenuItem* arg0) { s32 idx = arg0->type - 0x190; - if ((D_802850C0[idx].slideDirection == 0) || (D_802850C0[idx].slideDirection != 1)) { + if ((gTextCreditsRenderInfo[idx].slideDirection == 0) || (gTextCreditsRenderInfo[idx].slideDirection != 1)) { func_800AF4DC(arg0); } else { func_800AF740(arg0); } } -void func_800AF4DC(struct_8018D9E0_entry* arg0) { +void func_800AF4DC(MenuItem* arg0) { UNUSED s32 pad; s32 temp_v0; - struct_802850C0_entry* temp_v1; + CreditsRenderInfo* temp_v1; temp_v0 = arg0->type - 0x190; - temp_v1 = &D_802850C0[temp_v0]; + temp_v1 = &gTextCreditsRenderInfo[temp_v0]; arg0->row = temp_v1->row; - switch (arg0->cursor) { + switch (arg0->state) { case 0: arg0->column = temp_v1->startingColumn; - arg0->cursor = 1; - arg0->unk20 = temp_v1->columnExtra + (get_string_width(gCreditsText[temp_v0]) * temp_v1->textScaling / 2); + arg0->state = 1; + arg0->param2 = temp_v1->columnExtra + (get_string_width(gCreditsText[temp_v0]) * temp_v1->textScaling / 2); /* fallthrough */ case 1: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (s32) (arg0->unk20 - arg0->column) / 4; - if (arg0->unk1C >= 9) { - arg0->unk1C = 8; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (s32) (arg0->param2 - arg0->column) / 4; + if (arg0->param1 >= 9) { + arg0->param1 = 8; } - arg0->unk24 = (arg0->unk1C * 0.05) + 1.0; - if (arg0->column >= (arg0->unk20 - 0x14)) { - arg0->cursor = 2; + arg0->paramf = (arg0->param1 * 0.05) + 1.0; + if (arg0->column >= (arg0->param2 - 0x14)) { + arg0->state = 2; arg0->D_8018DEE0_index = 0; } break; case 2: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (arg0->unk20 - arg0->column) / 4; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (arg0->param2 - arg0->column) / 4; arg0->D_8018DEE0_index += 1; - arg0->unk24 = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; - if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->unk24 > 1)) { - arg0->unk24 = 1.0f; - arg0->cursor = 3; + arg0->paramf = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; + if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->paramf > 1)) { + arg0->paramf = 1.0f; + arg0->state = 3; } break; case 3: if ((u8) D_8018ED91 != 0) { - arg0->cursor = 4; + arg0->state = 4; } break; case 4: - func_800A94C8(arg0, arg0->unk20, 1); + func_800A94C8(arg0, arg0->param2, 1); if (arg0->row > 480.0) { arg0->type = 0; } @@ -12268,49 +12245,49 @@ void func_800AF4DC(struct_8018D9E0_entry* arg0) { } } -void func_800AF740(struct_8018D9E0_entry* arg0) { +void func_800AF740(MenuItem* arg0) { UNUSED s32 pad; s32 temp_v0; - struct_802850C0_entry* temp_v1; + CreditsRenderInfo* temp_v1; temp_v0 = arg0->type - 0x190; - temp_v1 = &D_802850C0[temp_v0]; + temp_v1 = &gTextCreditsRenderInfo[temp_v0]; arg0->row = temp_v1->row; - switch (arg0->cursor) { + switch (arg0->state) { case 0: arg0->column = temp_v1->startingColumn; - arg0->cursor = 1; - arg0->unk20 = temp_v1->columnExtra - (get_string_width(gCreditsText[temp_v0]) * temp_v1->textScaling / 2); + arg0->state = 1; + arg0->param2 = temp_v1->columnExtra - (get_string_width(gCreditsText[temp_v0]) * temp_v1->textScaling / 2); /* fallthrough */ case 1: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (s32) (arg0->column - arg0->unk20) / 4; - if (arg0->unk1C >= 9) { - arg0->unk1C = 8; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (s32) (arg0->column - arg0->param2) / 4; + if (arg0->param1 >= 9) { + arg0->param1 = 8; } - arg0->unk24 = (arg0->unk1C * 0.05) + 1.0; - if ((arg0->unk20 + 0x14) >= arg0->column) { - arg0->cursor = 2; + arg0->paramf = (arg0->param1 * 0.05) + 1.0; + if ((arg0->param2 + 0x14) >= arg0->column) { + arg0->state = 2; arg0->D_8018DEE0_index = 0; } break; case 2: - func_800A9208(arg0, arg0->unk20); - arg0->unk1C = (arg0->column - arg0->unk20) / 4; + func_800A9208(arg0, arg0->param2); + arg0->param1 = (arg0->column - arg0->param2) / 4; arg0->D_8018DEE0_index += 1; - arg0->unk24 = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; - if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->unk24 > 1)) { - arg0->unk24 = 1.0f; - arg0->cursor = 3; + arg0->paramf = ((arg0->D_8018DEE0_index - 0xA) * 0.0085 * (arg0->D_8018DEE0_index - 0xA)) + 0.4; + if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->paramf > 1)) { + arg0->paramf = 1.0f; + arg0->state = 3; } break; case 3: if ((u8) D_8018ED91 != 0) { - arg0->cursor = 4; + arg0->state = 4; } break; case 4: - func_800A94C8(arg0, arg0->unk20, -1); + func_800A94C8(arg0, arg0->param2, -1); if (arg0->row > 480.0) { arg0->type = 0; } diff --git a/src/menu_items.h b/src/menu_items.h new file mode 100644 index 000000000..a55baaafc --- /dev/null +++ b/src/menu_items.h @@ -0,0 +1,863 @@ +#ifndef CODE_80091750_H +#define CODE_80091750_H + +#include +#include "textures.h" +#include "main.h" + +#ifdef __cplusplus +extern "C" { +#endif + +extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[]; + +/* File specific types */ + +/* +Known `types` for `MenuItem` +0x53: "Mushroom Cup" box on the cup selection screen +0x54: "Flower Cup" box on the cup selection screen +0x55: "Star Cup" box on the cup selection screen +0x56: "Special Cup" box on the cup selection screen +0x5E: A box of static over the course images as the cup selection screen loads in. + It is near unnoticeable though as in practice it doesn't last long enough to be seen. + Try locking the word at `8018DC80` to see something like 0x20 just before confirming character selection to make +it last longer See `func_80096CD8` for the actual drawing of the static +*/ + +typedef struct { + /* 0x00 */ s32 type; // id maybe? + /* 0x04 */ s32 state; // sound mode, maybe some other stuff + /* 0x08 */ s32 subState; // This is used but I can't tell what for + /* 0x0C */ s32 column; + /* 0x10 */ s32 row; + /* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values + // If equal, later entries in gMenuItems are on top + /* 0x15 */ u8 visible; // active? If 1 its displayed, if 0 its not + // These seem to be generic space available for use by the struct, no 1 purpose for any given member + /* 0x16 */ s16 unk16; // Potentially unused + /* 0x18 */ s32 D_8018DEE0_index; // Index in D_8018DEE0, an array of some other struct type + /* 0x1C */ s32 param1; // Multi use. Sometimes cup selection, sometimes course index. + /* 0x20 */ s32 param2; // Multi use, hard to tell what for though. Sometimes a random number, sometimes GP points + /* 0x24 */ f32 paramf; // Multi use, x scaling for some things, rotation multiplier for the question box in some + // menus, probably some other things +} MenuItem; // size = 0x28 + +typedef struct { + /* 0x00 */ MkAnimation* textureSequence; + /* 0x04 */ s32 sequenceIndex; // Index in textureSequence that the animation is currently on + /* 0x08 */ s32 frameCountDown; // Frames left for the given animation part + /* 0x0C */ u32 visible; // visbile if 0x80000000, otherwise invisbile AND paused + /* 0x10 */ s32 menuTextureIndex; // Don't know what sMenuTextureMap tracks + /* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown +} struct_8018DEE0_entry; // size = 0x18 + +typedef struct { + /* 0x0 */ MenuTexture* texture; + /* 0x4 */ s32 texNum; +} struct_8018E060_entry; // size = 0x8 + +typedef struct { + /* 0x0 */ MenuTexture* mk64Texture; + /* 0x4 */ s16 unk4; + /* 0x6 */ s16 unk6; +} struct_8018E0E8_entry; // size = 0x8 + +typedef struct { + /* 0x00 */ u64* textureData; // This should be interpreted as a segmented address + /** + * Its hard to tell what exactly what this is meant to be, + * but it appears to be used as some sort of offset/index from the address stored in sMenuTextureList. + * This value is (roughly) the sum of (width * height) of the + * textures in all the previous entries in sMenuTextureMap + */ + /* 0x04 */ s32 offset; +} TextureMap; // size = 0x08 + +typedef struct { + /* 0x00 */ MenuTexture* textures; + /* 0x04 */ Gfx* displayList; +} struct_8018E768_entry; // size = 0x08 + +struct UnkStruct_8018E7E8 { + /* 0x0 */ s16 x; + /* 0x2 */ s16 y; + /* 0x4 */ s16 unk1; + /* 0x6 */ s16 unk2; +}; // size = 0x8 + +typedef struct { + /* 0x00 */ s16 column; + /* 0x02 */ s16 row; + /* 0x04 */ s16 pad0; + /* 0x06 */ s16 pad1; +} Unk_D_800E70A0; // size = 0x08 + +enum MENU_ITEM_PRIORITY { + MENU_ITEM_PRIORITY_0, + MENU_ITEM_PRIORITY_1, + MENU_ITEM_PRIORITY_2, + MENU_ITEM_PRIORITY_3, + MENU_ITEM_PRIORITY_4, + MENU_ITEM_PRIORITY_5, + MENU_ITEM_PRIORITY_6, + MENU_ITEM_PRIORITY_7, + MENU_ITEM_PRIORITY_8, + MENU_ITEM_PRIORITY_9, + MENU_ITEM_PRIORITY_A, + MENU_ITEM_PRIORITY_B, + MENU_ITEM_PRIORITY_C, + MENU_ITEM_PRIORITY_D, + MENU_ITEM_PRIORITY_E, + MENU_ITEM_PRIORITY_F, + MENU_ITEM_PRIORITY_MAX // 0x10 +}; + +enum CenterText { LEFT_TEXT = 1, CENTER_TEXT_MODE_1, RIGHT_TEXT, CENTER_TEXT_MODE_2 }; + +enum MENU_ITEM_TYPE { + MENU_ITEM_UI_NONE, + MENU_ITEM_UI_START_BACKGROUND, + MENU_ITEM_UI_LOGO_AND_COPYRIGHT, + MENU_ITEM_UI_PUSH_START_BUTTON, + MENU_ITEM_UI_NO_CONTROLLER, + MENU_ITEM_UI_START_RECORD_TIME, + MENU_ITEM_UI_GAME_SELECT = 0xA, + MENU_ITEM_UI_1P_GAME, + MENU_ITEM_UI_2P_GAME, + MENU_ITEM_UI_3P_GAME, + MENU_ITEM_UI_4P_GAME, + MENU_ITEM_UI_OK, + MAIN_MENU_OPTION_GFX, + MAIN_MENU_DATA_GFX, + MAIN_MENU_50CC, + MAIN_MENU_100CC, + MAIN_MENU_150CC, + MAIN_MENU_EXTRA_CC, + MENU_ITEM_TYPE_016, + MENU_ITEM_TYPE_017, + MAIN_MENU_TIME_TRIALS_BEGIN, + MAIN_MENU_TIME_TRIALS_DATA, + MENU_ITEM_TYPE_01B = 0x1B, + MAIN_MENU_BACKGROUND = 0x23, + CHARACTER_SELECT_BACKGROUND, + COURSE_SELECT_BACKGROUND, + CHARACTER_SELECT_MENU_PLAYER_SELECT_BANNER = 0x2A, + CHARACTER_SELECT_MENU_MARIO, + CHARACTER_SELECT_MENU_LUIGI, + CHARACTER_SELECT_MENU_TOAD, + CHARACTER_SELECT_MENU_PEACH, + CHARACTER_SELECT_MENU_YOSHI, + CHARACTER_SELECT_MENU_DK, + CHARACTER_SELECT_MENU_WARIO, + CHARACTER_SELECT_MENU_BOWSER, + CHARACTER_SELECT_MENU_OK, + CHARACTER_SELECT_MENU_1P_CURSOR, + CHARACTER_SELECT_MENU_2P_CURSOR, + CHARACTER_SELECT_MENU_3P_CURSOR, + CHARACTER_SELECT_MENU_4P_CURSOR, + MENU_ITEM_TYPE_043 = 0x43, + MENU_ITEM_TYPE_044, + MENU_ITEM_TYPE_045, + MENU_ITEM_TYPE_046, + MENU_ITEM_TYPE_047, + MENU_ITEM_TYPE_048, + MENU_ITEM_TYPE_049, + MENU_ITEM_TYPE_050 = 0x50, + COURSE_SELECT_MAP_SELECT = 0x52, + COURSE_SELECT_MUSHROOM_CUP, + COURSE_SELECT_FLOWER_CUP, + COURSE_SELECT_STAR_CUP, + COURSE_SELECT_SPECIAL_CUP, + MENU_ITEM_TYPE_058 = 0x58, + COURSE_SELECT_COURSE_NAMES, + MENU_ITEM_TYPE_05A, + MENU_ITEM_TYPE_05B, + COURSE_SELECT_BATTLE_NAMES, + COURSE_SELECT_OK, + MENU_ITEM_TYPE_05E, + MENU_ITEM_TYPE_05F, + MENU_ITEM_TYPE_060, + MENU_ITEM_TYPE_061, + MENU_ITEM_TYPE_062, + MENU_ITEM_TYPE_064 = 0x64, + MENU_ITEM_TYPE_065, + MENU_ITEM_TYPE_066, + MENU_ITEM_TYPE_067, + MENU_ITEM_TYPE_068, + MENU_ITEM_TYPE_069, + MENU_ITEM_TYPE_06E = 0x6E, + MENU_ITEM_TYPE_078 = 0x78, + MENU_ITEM_TYPE_079, + MENU_ITEM_TYPE_07A, + MENU_ITEM_TYPE_07B, + MENU_ITEM_TYPE_07C, + MENU_ITEM_TYPE_07D, + MENU_ITEM_TYPE_07E, + MENU_ITEM_TYPE_07F, + MENU_ITEM_TYPE_080, + MENU_ITEM_TYPE_081, + MENU_ITEM_TYPE_082, + MENU_ITEM_TYPE_083, + MENU_ITEM_TYPE_084, + MENU_ITEM_TYPE_085, + MENU_ITEM_TYPE_086, + MENU_ITEM_TYPE_087, + MENU_ITEM_TYPE_088, + MENU_ITEM_TYPE_089, + MENU_ITEM_TYPE_08A, + MENU_ITEM_TYPE_08B, + MENU_ITEM_TYPE_08C, + MENU_ITEM_TYPE_08D, + MENU_ITEM_TYPE_096 = 0x96, + MENU_ITEM_TYPE_097, + MENU_ITEM_TYPE_098, + MENU_ITEM_TYPE_0A0 = 0xA0, + MENU_ITEM_TYPE_0A1, + MENU_ITEM_TYPE_0AA = 0xAA, + MENU_ITEM_TYPE_0AB, + MENU_ITEM_TYPE_0AC, + MENU_ITEM_TYPE_0AF = 0XAF, + MENU_ITEM_TYPE_0B0, + MENU_ITEM_TYPE_0B1, + MENU_ITEM_TYPE_0B2, + MENU_ITEM_TYPE_0B3, + MENU_ITEM_TYPE_0B4, + MENU_ITEM_TYPE_0B9 = 0xB9, + MENU_ITEM_TYPE_0BA, + MENU_ITEM_TYPE_0BB, + MENU_ITEM_ANNOUNCE_GHOST, + MENU_ITEM_END_COURSE_OPTION, + MENU_ITEM_TYPE_0BE, + MENU_ITEM_PAUSE = 0xC7, + MENU_ITEM_TYPE_0D2 = 0xD2, + MENU_ITEM_TYPE_0D3, + MENU_ITEM_TYPE_0D4, + MENU_ITEM_TYPE_0D5, + MENU_ITEM_TYPE_0D6, + MENU_ITEM_TYPE_0D7, + MENU_ITEM_TYPE_0D8, + MENU_ITEM_TYPE_0D9, + MENU_ITEM_TYPE_0DA, + MENU_ITEM_DATA_COURSE_IMAGE = 0xE6, + MENU_ITEM_DATA_COURSE_INFO, + MENU_ITEM_DATA_COURSE_SELECTABLE, + MENU_ITEM_TYPE_0E9, + MENU_ITEM_TYPE_0EA, + MENU_ITEM_TYPE_0F0 = 0xF0, + MENU_ITEM_TYPE_0F1, + MENU_ITEM_UI_LOGO_INTRO = 0xFA, + START_MENU_FLAG, + MENU_ITEM_TYPE_10E = 0x10E, + MENU_ITEM_TYPE_12B = 0X12B, + MENU_ITEM_TYPE_12C, + MENU_ITEM_TYPE_12D, + MENU_ITEM_TYPE_12E, + MENU_ITEM_TYPE_12F, + MENU_ITEM_TYPE_130, + MENU_ITEM_TYPE_190 = 0x190, + MENU_ITEM_TYPE_191, + MENU_ITEM_TYPE_192, + MENU_ITEM_TYPE_193, + MENU_ITEM_TYPE_194, + MENU_ITEM_TYPE_195, + MENU_ITEM_TYPE_196, + MENU_ITEM_TYPE_197, + MENU_ITEM_TYPE_198, + MENU_ITEM_TYPE_199, + MENU_ITEM_TYPE_19A, + MENU_ITEM_TYPE_19B, + MENU_ITEM_TYPE_19C, + MENU_ITEM_TYPE_19D, + MENU_ITEM_TYPE_19E, + MENU_ITEM_TYPE_19F, + MENU_ITEM_TYPE_1A0, + MENU_ITEM_TYPE_1A1, + MENU_ITEM_TYPE_1A2, + MENU_ITEM_TYPE_1A3, + MENU_ITEM_TYPE_1A4, + MENU_ITEM_TYPE_1A5, + MENU_ITEM_TYPE_1A6, + MENU_ITEM_TYPE_1A7, + MENU_ITEM_TYPE_1A8, + MENU_ITEM_TYPE_1A9, + MENU_ITEM_TYPE_1AA, + MENU_ITEM_TYPE_1AB, + MENU_ITEM_TYPE_1AC, + MENU_ITEM_TYPE_1AD, + MENU_ITEM_TYPE_1AE, + MENU_ITEM_TYPE_1AF, + MENU_ITEM_TYPE_1B0, + MENU_ITEM_TYPE_1B1, + MENU_ITEM_TYPE_1B2, + MENU_ITEM_TYPE_1B3, + MENU_ITEM_TYPE_1B4, + MENU_ITEM_TYPE_1B5, + MENU_ITEM_TYPE_1B6, + MENU_ITEM_TYPE_1B7, + MENU_ITEM_TYPE_1B8, + MENU_ITEM_TYPE_1B9, + MENU_ITEM_TYPE_1BA, + MENU_ITEM_TYPE_1BB, + MENU_ITEM_TYPE_1BC, + MENU_ITEM_TYPE_1BD, + MENU_ITEM_TYPE_1BE, + MENU_ITEM_TYPE_1BF, + MENU_ITEM_TYPE_1C0, + MENU_ITEM_TYPE_1C1, + MENU_ITEM_TYPE_1C2, + MENU_ITEM_TYPE_1C3, + MENU_ITEM_TYPE_1C4, + MENU_ITEM_TYPE_1C5, + MENU_ITEM_TYPE_1C6, + MENU_ITEM_TYPE_1C7, + MENU_ITEM_TYPE_1C8, + MENU_ITEM_TYPE_1C9, + MENU_ITEM_TYPE_1CA, + MENU_ITEM_TYPE_1CB, + MENU_ITEM_TYPE_1CC, + MENU_ITEM_TYPE_1CD, + MENU_ITEM_TYPE_1CE +}; + +enum LoadImgCompType { + LOAD_MENU_IMG_MIO0_ONCE = -1, + LOAD_MENU_IMG_TKMK00_ONCE, + // Force load image even if the data is loaded before + LOAD_MENU_IMG_FORCE = LOAD_MENU_IMG_TKMK00_ONCE, // 0 + LOAD_MENU_IMG_MIO0_FORCE, + LOAD_MENU_IMG_TKMK00_FORCE +}; + +enum TEXT_MENU_ID { CONTINUE_GAME, RETRY, COURSE_CHANGE, DRIVER_CHANGE, QUIT_TEXT_MENU, REPLAY, SAVE_GHOST }; + +/* Function Prototypes */ + +f64 exponent_by_squaring(f64, s32); +f64 func_800917B0(f64, f64); +f64 func_8009186C(f64); +f64 func_8009195C(f64); +f64 func_80091A6C(f64, s32); +f64 func_80091AC0(f64, s32*); +void swap_values(s32*, s32*); +s32 func_80091D74(void); +void func_80091EE4(void); +void func_80091FA4(void); +void func_80092148(void); +void func_800921B4(void); +void text_rainbow_effect(s32, s32, s32); +void set_text_color_rainbow_if_selected(s32, s32, s32); +void func_80092258(void); +void func_80092290(s32, s32*, s32*); +void func_80092500(void); +void func_80092564(void); +void func_800925A0(void); +void func_800925CC(void); +void func_80092604(void); +void func_80092630(void); +void func_8009265C(void); +void func_80092688(void); +void func_80092C80(void); +s32 char_to_glyph_index(char*); +s32 func_80092DF8(char*); +s32 func_80092E1C(char*); +s32 func_80092EE4(char*); +s32 get_string_width(char*); +void set_text_color(s32); +void func_800930E4(s32, s32, char*); +void print_text0(s32, s32, char*, s32, f32, f32, s32); +void print_text_mode_1(s32, s32, char*, s32, f32, f32); +void print_text_mode_2(s32, s32, char*, s32, f32, f32); +void print_text1(s32, s32, char*, s32, f32, f32, s32); +void print_text1_left(s32, s32, char*, s32, f32, f32); +void print_text1_center_mode_1(s32, s32, char*, s32, f32, f32); +void print_text1_right(s32, s32, char*, s32, f32, f32); +void print_text1_center_mode_2(s32, s32, char*, s32, f32, f32); +void print_text2(s32, s32, char*, s32, f32, f32, s32); +void func_800939C8(s32, s32, char*, s32, f32, f32); +void text_draw(s32, s32, char*, s32, f32, f32); +void func_80093A30(s32); +void func_80093A5C(u32); +void func_80093B70(u32); +void func_80093C1C(s32); +void func_80093C88(void); +void func_80093C90(void); +void func_80093C98(s32); +void func_80093E20(void); +void func_80093E40(void); +void func_80093E60(void); +void func_80093F10(void); +void func_800940EC(s32); +void func_800942D0(void); +void func_80094660(struct GfxPool*, s32); +void render_checkered_flag(struct GfxPool*, s32); +void func_80094A64(struct GfxPool*); +void setup_menus(void); +void func_80095574(void); +Gfx* draw_flash_select_case(Gfx*, s32, s32, s32, s32, s32); +Gfx* draw_flash_select_case_slow(Gfx*, s32, s32, s32, s32); +Gfx* draw_flash_select_case_fast(Gfx*, s32, s32, s32, s32); +Gfx* func_800959F8(Gfx*, Vtx*); +Gfx* func_80095BD0(Gfx*, u8*, f32, f32, u32, u32, f32, f32); +Gfx* func_80095E10(Gfx*, s8, s32, s32, s32, s32, s32, s32, s32, s32, u8*, u32, u32); +Gfx* func_800963F0(Gfx*, s8, s32, s32, f32, f32, s32, s32, s32, s32, s32, s32, u8*, u32, u32); +Gfx* func_80096CD8(Gfx*, s32, s32, u32, u32); +Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, + s32 arg9, u16* argA, u32 argB, u32 argC, s32 argD); +Gfx* func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32); +Gfx* func_80097AE4(Gfx*, s8, s32, s32, u8*, s32); +Gfx* func_80097E58(Gfx* displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7, + u8* someTexture, u32 arg9, u32 argA, s32 width); +Gfx* func_80098558(Gfx*, u32, u32, u32, u32, u32, u32, s32, s32); +Gfx* func_800987D0(Gfx*, u32, u32, u32, u32, s32, s32, u8*, u32, s32); +Gfx* draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32); +Gfx* draw_box(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32); +Gfx* draw_box_wide(Gfx*, s32, s32, s32, s32, u32, u32, u32, u32); +Gfx* func_80098FC8(Gfx*, s32, s32, s32, s32); +void dma_compressed_mio0_texture_segA(u64*, size_t, void*); +void dma_tkmk00_textures(u64*, size_t, void*); +void clear_menu_textures(void); +void load_menu_img(MenuTexture*); +void* segmented_to_virtual_dupe(const void*); +void* segmented_to_virtual_dupe_2(const void*); +void load_menu_img_mio0_forced(MenuTexture*); +void load_menu_img_comp_type(MenuTexture*, s32); +void func_80099958(MenuTexture*, s32, s32); +void func_80099E54(void); +void func_80099E60(MenuTexture*, s32, s32); +void func_80099EC4(void); +void func_80099A70(void); +void func_80099A94(MenuTexture*, s32); +void func_80099AEC(void); +void func_8009A238(MenuTexture*, s32); +void func_8009A2F0(struct_8018E0E8_entry*); +void func_8009A344(void); +s32 animate_character_select_menu(MkAnimation*); +s32 func_8009A478(MkAnimation*, s32); +void func_8009A594(s32, s32, MkAnimation*); +void func_8009A640(s32, s32, s32, MkAnimation*); +void func_8009A6D4(void); +void func_8009A76C(s32, s32, s32, s32); +void func_8009A7EC(s32, s32, s32, s32, s32); +MenuTexture* func_8009A878(struct_8018DEE0_entry*); +MenuTexture* func_8009A944(struct_8018DEE0_entry*, s32); +void func_8009A9FC(s32, s32, u32, s32); +void func_8009AB7C(s32); +void func_8009AD78(s32, s32); +void convert_img_to_greyscale(s32, u32); +void adjust_img_colour(s32, s32, s32, s32, s32); +u16* func_8009B8C4(u64*); +void func_8009B938(void); +void func_8009B954(MenuTexture*); +void func_8009B998(void); +Gfx* func_8009B9D0(Gfx*, MenuTexture*); +Gfx* render_menu_textures(Gfx*, MenuTexture*, s32, s32); +Gfx* func_8009BC9C(Gfx*, MenuTexture*, s32, s32, s32, s32); +Gfx* print_letter(Gfx*, MenuTexture*, f32, f32, s32, f32, f32); +Gfx* func_8009C204(Gfx*, MenuTexture*, s32, s32, s32); +Gfx* func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32); +Gfx* func_8009C708(Gfx*, struct_8018DEE0_entry*, s32, s32, s32, s32); +void func_8009C918(void); +void func_8009CA2C(void); +void func_8009CA6C(s32); +void func_8009CBE4(s32, s32, s32); +void func_8009CDDC(s32, s32); +void func_8009CDFC(s32, s32); +void func_8009CE1C(void); +void func_8009CE64(s32); +void func_8009D77C(s32, s32, s32); +void func_8009D958(s32, s32); +void func_8009D978(s32, s32); +void func_8009D998(s32); +void func_8009DAA8(void); +void func_8009DB8C(void); +void func_8009DEF8(u32, u32); +void func_8009DF4C(s32); +void func_8009DF6C(s32); +void func_8009DF8C(u32, u32); +void func_8009DFE0(s32); +void func_8009E000(s32); +void func_8009E020(s32, s32); +void func_8009E088(s32, s32); +void func_8009E0F0(s32); +void func_8009E1C0(void); +void func_8009E1E4(void); +void func_8009E208(void); +void func_8009E230(void); +void func_8009E258(void); +void func_8009E280(void); +void func_8009E2A8(s32); +void func_8009E2F0(s32); +void func_8009E5BC(void); +void func_8009E5FC(s32); +void clear_menus(void); +void add_menu_item(s32, s32, s32, s8); +void render_menus(MenuItem*); +void func_800A08D8(u8, s32, s32); +s32 func_800A095C(char*, s32, s32, s32); +void func_800A09E0(MenuItem*); +void func_800A0AD0(MenuItem*); +void func_800A0B80(MenuItem*); +void func_800A0DFC(void); +void func_800A0EB8(MenuItem*, s32); +void func_800A0FA4(MenuItem*, s32); +void func_800A10CC(MenuItem*); +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 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*); +void func_800A2D1C(MenuItem*); +void func_800A2EB8(MenuItem*); +void func_800A32B4(s32, s32, s32, s32); +void func_800A34A8(MenuItem*); +void func_800A3A10(s8*); +void func_800A3ADC(MenuItem*, s32, s32, s32, s32, s8*); +void time_trials_finish_text_render(MenuItem*); +void func_800A3E60(MenuItem*); +void render_lap_time(s32, s32, s32); +void render_lap_times(s32, s32, s32); +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 render_menu_item_end_course_option(MenuItem*); +void func_800A6034(MenuItem*); +void func_800A6154(MenuItem*); +void func_800A638C(MenuItem*); +void func_800A66A8(MenuItem*, Unk_D_800E70A0*); +void func_800A69C8(MenuItem*); +void func_800A6BEC(MenuItem*); +void func_800A6CC0(MenuItem*); +void func_800A6D94(s32, s32, u8*); +void func_800A6E94(s32, s32, u8*); +void func_800A70E8(MenuItem*); +void func_800A7258(MenuItem*); +void func_800A72FC(MenuItem*); +void func_800A7448(MenuItem*); +void func_800A75A0(MenuItem*); +void func_800A761C(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*); +void get_time_record_seconds(s32, char*); +void get_time_record_centiseconds(s32, char*); +void func_800A79F4(s32, char*); +void handle_menus_with_pri_arg(s32); +void handle_menus_default(void); +void handle_menus_special(void); +void func_800A8270(s32, MenuItem*); +void func_800A8564(MenuItem*); +void func_800A86E8(MenuItem*); +void func_800A874C(MenuItem*); +void func_800A890C(s32, MenuItem*); +void func_800A8A98(MenuItem*); +void func_800A8CA4(MenuItem*); +void render_battle_introduction(MenuItem*); +void func_800A8EC0(MenuItem*); +void func_800A8F48(MenuItem*); +void func_800A90D4(s32, MenuItem*); +void func_800A91D8(MenuItem*, s32, s32); +void func_800A9208(MenuItem*, s32); +void func_800A9278(MenuItem*, s32); +void func_800A92E8(MenuItem*, s32); +void func_800A939C(MenuItem*, s32); +void func_800A940C(MenuItem*, s32); +void func_800A94C8(MenuItem*, s32, s32); +void func_800A954C(MenuItem*); +void func_800A9710(MenuItem*); +void func_800A97BC(MenuItem*); +void update_ok_menu_item(MenuItem*); +void func_800A9B9C(MenuItem*); +void func_800A9C40(MenuItem*); +void func_800A9D5C(MenuItem*); +void func_800A9E58(MenuItem*); +void func_800AA280(MenuItem*); +void func_800AA2EC(MenuItem*); +void func_800AA5C8(MenuItem*, s8); +void func_800AA69C(MenuItem*); +void func_800AAA9C(MenuItem*); +void func_800AAB90(MenuItem*); +void func_800AAC18(MenuItem*); +void update_cursor(MenuItem*); +void func_800AAE18(MenuItem*); +MenuItem* get_menu_item_player_count(void); +MenuItem* get_menu_item_character(s32); +MenuItem* find_menu_items_dupe(s32); +MenuItem* find_menu_items(s32); +s32 get_character_menu_state(s32); +void hover_cursor_over_character_portrait(MenuItem*, s32); +s32 func_800AAFCC(s32); +void func_800AB020(MenuItem*); +void func_800AB098(MenuItem*); +void func_800AB164(MenuItem*); +void func_800AB260(MenuItem*); +void func_800AB290(MenuItem*); +void func_800AB314(MenuItem*); +void func_800AB904(MenuItem*); +void func_800AB9B0(MenuItem*); +void func_800ABAE8(MenuItem*); +void func_800ABB24(MenuItem*); +void func_800ABBCC(MenuItem*); +void func_800ABC38(MenuItem*); +void func_800ABCF4(MenuItem*); +void func_800ABEAC(MenuItem*); +void func_800ABF68(MenuItem*); +void func_800AC128(MenuItem*); +void func_800AC300(MenuItem*); +void func_800AC324(MenuItem*); +void func_800AC458(MenuItem*); +void func_800AC978(MenuItem*); +void func_800ACA14(MenuItem*); +void func_800ACC50(MenuItem*); +void func_800ACF40(MenuItem*); +void func_800AD1A4(MenuItem*); +void func_800AD2E8(MenuItem*); +void func_800ADF48(MenuItem*); +void func_800AE218(MenuItem*); +void func_800AEC54(MenuItem*); +void func_800AEDBC(MenuItem*); +void func_800AEE90(MenuItem*); +void func_800AEEBC(MenuItem*); +void func_800AEEE8(MenuItem*); +void func_800AEF14(MenuItem*); +void func_800AEF74(MenuItem*); +void func_800AF004(MenuItem*); +void func_800AF1AC(MenuItem*); +void func_800AF270(MenuItem*); +void func_800AF480(MenuItem*); +void func_800AF4DC(MenuItem*); +void func_800AF740(MenuItem*); + +// This really, really shouldn't be in this header file, but I don't know where else to put it +void rmonPrintf(const char*, ...); +void tkmk00decode(u8*, u8*, u8*, s32); + +/* File specific defines */ + +#define MENU_ITEMS_MAX 0x20 +#define D_8018DEE0_SIZE 0x10 +#define D_8018E060_SIZE 0x10 +#define D_8018E0E8_SIZE 0x05 +#define TEXTURE_MAP_MAX 0xC8 +#define D_8018E768_SIZE 0x08 +#define D_8018E7E8_SIZE 0x05 +#define D_8018E810_SIZE 0x05 +#define MENU_TEXTURE_BUFFER_MAX 500 + +/* This is where I'd put my static data, if I had any */ + +extern s32 D_800DDB24; +extern s16 D_80164478[]; + +/** + * Old name: sMenuTextureBuffer + * This array has been modified. Instead of holding a buffer of texture data + * It now holds a list of pointers to asset strings. + * use `load_texture()` and `replace_texture()` to add textures to the list for rendering. + */ +extern const char* sMenuTextureList[MENU_TEXTURE_BUFFER_MAX]; +extern u8* gMenuCompressedBuffer; +extern u8* sTKMK00_LowResBuffer; +extern u8* sGPPointsCopy; +extern void* gSomeDLBuffer; +extern s8 gGPPointsByCharacterId[8]; +extern s8 gCharacterIdByGPOverallRank[]; +extern s8 D_8018D9D8; +extern s8 D_8018D9D9; +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 sMenuTextureListIndex; // Old name: sMenuTextureBufferIndex, index into sMenuTextureList +extern TextureMap sMenuTextureMap[TEXTURE_MAP_MAX]; +extern s32 sMenuTextureEntries; +extern Gfx* sGfxPtr; +extern s32 gNumD_8018E768Entries; +extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE]; +extern s32 gCycleFlashMenu; +extern s8 D_8018E7AC[]; +extern u32 D_8018E7B8[]; +extern u32 D_8018E7D0[]; +extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE]; +extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE]; +extern s8 gTextColor; +extern u8 D_8018ED90; +extern u8 D_8018ED91; +extern s8 D_8018E838[]; +extern s32 D_8018E840[]; +extern s32 D_8018E850[]; +extern s32 D_8018E854; +extern s32 D_8018E858[]; +extern s32 D_8018E85C; + +// extern u8 _textures_0aSegmentRomStart[]; +// extern u8 _textures_0bSegmentRomStart[]; + +extern Unk_D_800E70A0 D_800E70A0[]; +extern Unk_D_800E70A0 D_800E70E8[]; +extern Unk_D_800E70A0 D_800E7108[][4]; +extern Unk_D_800E70A0 D_800E7148[]; +extern Unk_D_800E70A0 D_800E7168[]; +extern Unk_D_800E70A0 D_800E7188[]; +extern Unk_D_800E70A0 D_800E7208[][2]; +extern Unk_D_800E70A0 D_800E7248[]; +extern Unk_D_800E70A0 D_800E7258[]; +extern Unk_D_800E70A0 D_800E7268[]; +extern Unk_D_800E70A0 D_800E7278[]; +extern Unk_D_800E70A0 D_800E72F8; +extern Unk_D_800E70A0 D_800E7300[]; +extern Unk_D_800E70A0 D_800E7360[]; +extern Unk_D_800E70A0 D_800E7380[]; +extern Unk_D_800E70A0 D_800E7390[]; +extern Unk_D_800E70A0 D_800E73C0[]; +extern Unk_D_800E70A0 D_800E73D0[]; +extern Unk_D_800E70A0 D_800E73E0[]; +extern Unk_D_800E70A0 D_800E7410[]; +extern Unk_D_800E70A0 D_800E7420[]; +extern Unk_D_800E70A0 D_800E7430[]; +extern Unk_D_800E70A0 D_800E7458[]; +extern Unk_D_800E70A0 D_800E7480[]; +extern RGBA16 D_800E74A8[]; +extern RGBA16 D_800E74D0[]; +extern RGBA16 D_800E74E8[]; +extern const s16 gGlyphDisplayWidth[]; +extern char* gCupNames[]; +extern const s8 D_800EFD64[]; +extern char* gCupText[]; +extern char* gDebugCharacterNames[]; +extern char* D_800E76A8[]; +extern char* D_800E76CC[]; +extern char* D_800E76DC[]; +extern char* gDebugScreenModeNames[]; +extern char* gDebugSoundModeNames[]; +extern char* gSoundModeNames[]; // D_800E7710 +extern char* gWinLoseText[]; +extern char* gBestTimeText[]; +extern char* gLapTimeText; +extern char* gPrefixTimeText[]; +extern char* D_800E7744[]; +extern char* gTextPauseButton[]; +extern char* D_800E7778[]; +extern char gTextMenuAnnounceGhost[]; +extern char* gTextNoController[]; +extern char* gTextBattleIntroduction[]; +extern char gTextMenuData[]; +extern char gTextDistance[]; +extern char* gTextMenuOption[]; +extern char* D_800E7840[]; +extern char* gEraseBestGhostText[]; +extern char* D_800E7860[]; +extern char* gTextOptionMenu[]; +extern char* D_800E7878[]; +extern char* D_800E7884[]; +extern char* D_800E7890[]; +extern char* D_800E78D0[]; +extern char* D_800E7900[]; +extern char* D_800E7918[]; +extern char* D_800E7920[]; +extern char* D_800E7928[]; +extern char* D_800E7930[]; +extern char* D_800E7938[]; +extern char* D_800E7940[]; +extern char* D_800E7980[]; +extern char* D_800E798C[]; +extern char* D_800E7A34[]; +extern char* D_800E7A3C[]; +extern char* D_800E7A44; +extern char* D_800E7A48[]; +extern char* D_800E7A54[]; +extern char* D_800E7A60[]; +extern char* D_800E7A6C[]; +extern char* D_800E7A74[]; +extern char* D_800E7A80[]; +extern char* D_800E7A88[]; +extern char* D_800E7A98; +extern char* D_800E7A9C[]; +extern char* gPlaceText[]; +extern const s8 gGPPointRewards[]; +extern const s8 D_800F0B1C[]; +extern const s8 D_800F0B28[]; +extern const s8 D_800F0B50[]; +extern const s8 D_800F0B54[]; +extern RGBA16 D_800E7AC8[]; +extern RGBA16 D_800E7AE8[]; +extern MenuTexture* D_800E7AF8[]; +extern MenuTexture* D_800E7D0C[]; +extern MkAnimation* D_800E7D34[]; +extern MenuTexture* gMenuTexturesBackground[]; +extern MenuTexture* D_800E7D54[]; +extern MenuTexture* D_800E7D74[]; +extern MenuTexture* D_800E7DC4[]; +extern MkAnimation* D_800E7E14[]; +extern MkAnimation* D_800E7E20[]; +extern MkAnimation* D_800E7E34[]; +extern MenuTexture* gGlyphTextureLUT[]; +extern MenuTexture* D_800E7FF0[]; +extern MenuTexture* D_800E80A0[]; +extern MenuTexture* D_800E8114[]; +extern MenuTexture* D_800E8174[]; +extern MenuTexture* D_800E817C[]; +extern MenuTexture* D_800E81E4[]; +extern MenuTexture* D_800E822C[]; +extern MenuTexture* D_800E8234[]; +extern MenuTexture* D_800E8254[]; +extern MenuTexture* D_800E8274[]; +extern MenuTexture* D_800E8294[]; +extern MenuTexture* gMenuTexturesBorderPlayer[]; +extern MenuTexture* gMenuTexturesTrackSelection[]; +extern MenuTexture* D_800E82F4[]; +extern MkAnimation* D_800E8320[]; +extern MkAnimation* D_800E8340[]; +extern MkAnimation* D_800E8360[]; +extern MkAnimation* gCharacterCelebrateAnimation[]; +extern MkAnimation* D_800E83A0[]; +extern MkAnimation* gCharacterDeselectAnimation[]; +extern MkAnimation* gCharacterSingleBlinkAnimation[]; +extern MkAnimation* gCharacterDoubleBlinkAnimation[]; +extern MkAnimation* gCharacterDefeatAnimation[]; +extern s32 D_800E8440[]; +extern s32 D_800E8460[]; +extern s32 D_800E8480[]; +extern s32 D_800E84A0[]; +extern Vtx* D_800E84C0[]; +extern Gfx* D_800E84CC[]; +extern Gfx* D_800E84EC[]; +extern Gfx* D_800E850C[]; +extern s8 D_800E852C; +extern f32 sIntroModelMotionSpeed; +extern f32 sIntroModelSpeed; +extern Unk_D_800E70A0 D_800E8538[]; +extern Unk_D_800E70A0 D_800E8540[]; +extern Unk_D_800E70A0 D_800E85C0[]; +extern Unk_D_800E70A0 D_800E8600[]; + +extern s32 gControllerPak1NumPagesFree; +extern s32 gControllerPak1FileNote; +extern s32 gControllerPak2FileNote; + +extern f32 D_8018ED98; +extern f32 D_8018ED9C; +extern f32 D_8018EDA0; + +extern f32 D_8018EDA4; +extern f32 D_8018EDA8; +extern f32 D_8018EDAC; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/menus.c b/src/menus.c index a42e86c96..316ae8178 100644 --- a/src/menus.c +++ b/src/menus.c @@ -12,7 +12,7 @@ #include "audio/external.h" #include "code_800029B0.h" #include "code_80005FD0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_800AF9B0.h" #include "save.h" #include "staff_ghosts.h" @@ -22,77 +22,87 @@ #include "port/Game.h" /** BSS **/ -s32 D_8018EDC0; -f32 D_8018EDC4; -f32 D_8018EDC8; -f32 D_8018EDCC; -f32 D_8018EDD0; -f32 D_8018EDD4; -f32 D_8018EDD8; -f32 D_8018EDDC; -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 gMainMenuSelectionDepth; -s8 D_8018EDEE; // grid screen state? +s32 gIntroModelZEye; +f32 gIntroModelScale; // XYZ scale on checkerboard flag, Z scale on intro logo +f32 gIntroModelRotX; +f32 gIntroModelRotY; +f32 gIntroModelRotZ; +f32 gIntroModelPosX; +f32 gIntroModelPosY; +f32 gIntroModelPosZ; +s32 gMenuFadeType; +s8 gCharacterGridSelections[4]; // Map from each player to current grid position (1-4 top, 5-8 bottom) +bool gCharacterGridIsSelected[4]; // Sets true if a character is selected for each player +s8 gSubMenuSelection; // Map Select states, Options and Ghost Data text selection +s8 gMainMenuSelection; +s8 gPlayerSelectMenuSelection; // grid screen state? s8 gDebugMenuSelection; s8 gControllerPakMenuSelection; -s8 D_8018EDF1; +s8 gScreenModeListIndex; // 0-4 index, selects a screen mode in sScreenModePlayerTable u8 gSoundMode; -s8 gPlayerCount; // main menu row id? but it is also the number of players define -s8 D_8018EDF4; -s8 D_8018EDF5; -s8 D_8018EDF6; +s8 gPlayerCount; +s8 gVersusResultCursorSelection; // 4 options indexed (10-13), gets set when selecting an option +s8 gTimeTrialsResultCursorSelection; // 5 options indexed (5-9), gets set when selecting an option (excluding Save Ghost) +s8 gBattleResultCursorSelection; // 4 options indexed (10-13), gets set when selecting an option s8 gTimeTrialDataCourseIndex; -s8 gCourseRecordsMenuSelection; -s8 D_8018EDF9; +s8 gCourseRecordsMenuSelection; // Used for selecting an option in course record data +s8 gCourseRecordsSubMenuSelection; // Used for erase records and ghosts (Quit - Erase) s8 gDebugGotoScene; -s8 D_8018EDFB; -s8 D_8018EDFC; +bool gGhostPlayerInit; +bool gCourseMapInit; s32 gMenuTimingCounter; s32 gMenuDelayTimer; -s8 D_8018EE08; +s8 gDemoUseController; // Sets true alongside gDemoMode, controller related s8 gCupSelection; -s8 D_8018EE0A; +s8 sTempCupSelection; // Same as gCupSelection but it's only set in map select, not referenced s8 gCourseIndexInCup; -s8 D_8018EE0C; -struct_8018EE10_entry D_8018EE10[2]; +s8 unref_D_8018EE0C; // Set to 0 but never referenced /** Data **/ s32 gMenuSelection = LOGO_INTRO_MENU; -s32 D_800E86A4 = 0; +s32 gFadeModeSelection = FADE_MODE_NONE; s8 gCharacterSelections[4] = { MARIO, LUIGI, YOSHI, TOAD }; -// gGameModeRowSelectionForNumPlayers is (D_800E86AC - 1) -// gGameModeSubMenuRowSelectionForNumPlayers (D_800E86AC + 1) +// The current row selected in the mode column for each player indexed +// 0-1 1p / 0-2 2p´/ 0-1 3p / 0-1 4p +s8 gGameModeMenuColumn[4] = { 0, 0, 0, 0 }; -// the current row selected in column i on main menu -s8 D_800E86AC[4] = { 0, 0, 0, 0 }; // For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will // be whether 'Begin' or 'Data' is selected. Not used for Battle. // indexed as [column][row] -s8 D_800E86B0[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; +s8 gGameModeSubMenuColumn[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 unref_800E86E0[4] = { 0, 0, 0, 1 }; +s8 gControllerPakSelectedTableRow = 0; // 0-4 index, value of the current visible row select -u32 sVIGammaOffDitherOn = OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON; +// Numbers starting from the second 0 to number 6 get altered +// as you move up or down the page table of content (min value is 0, max value is 16 +s8 gControllerPakVisibleTableRows[12] = { 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0 }; +s8 gControllerPakScrollDirection = CONTROLLER_PAK_SCROLL_DIR_NONE; // 1 is down, 2 is up +s8 unref_D_800E86D4[12] = { 0 }; +s8 unref_D_800E86E0[4] = { 0, 0, 0, 1 }; -// Used to set gScreenModeSelection; might be smaller; could be function static data -const s8 D_800F2B50[] = { 0, 1, 2, 3, 3 }; +u32 sVIGammaOffDitherOn = (OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON); -// Set to gPlayerCount, then that sets gPlayerCountSelection1 -const s8 D_800F2B58[] = { 1, 2, 2, 3, 4 }; +/** Rodata **/ + +// Sets the actual screen mode based on values set in sScreenModePlayerCount +const s8 sScreenModePlayerTable[] = { + SCREEN_MODE_1P, + SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL, + SCREEN_MODE_2P_SPLITSCREEN_VERTICAL, + SCREEN_MODE_3P_4P_SPLITSCREEN, + SCREEN_MODE_3P_4P_SPLITSCREEN +}; + +// Sets how many players can load on each screen mode set in sScreenModePlayerTable +const s8 sScreenModePlayerCount[] = { 1, 2, 2, 3, 4 }; // Set indexed slots numbers for one-two-three-four mode selection const s8 gPlayerModeSelection[] = { 1, 2, 1, 1 }; // Limit for each index column in one-two-three-four mode selection -const s8 gGameModePlayerColumnDefault[][3] = { +const s8 sGameModePlayerColumnDefault[][3] = { { 2, 1, 0 }, // 1p (GP options, TT options, ...) { 2, 2, 0 }, // 2p (GP options, VS options, Battle) { 2, 0, 0 }, // 3p (VS options, Battle, ...) @@ -101,7 +111,7 @@ const s8 gGameModePlayerColumnDefault[][3] = { // Limit for each index column in one-two-three-four mode selection // for extra mode (mirror mode), hence the extra value (3 instead of 2) -const s8 gGameModePlayerColumnExtra[][3] = { +const s8 sGameModePlayerColumnExtra[][3] = { { 3, 1, 0 }, // 1p (GP options, TT options, ...) { 3, 3, 0 }, // 2p (GP options, VS options, Battle) { 3, 0, 0 }, // 3p (VS options, Battle, ...) @@ -116,8 +126,9 @@ const s32 gGameModePlayerSelection[][3] = { { VERSUS, BATTLE, 0x00000000 }, // 4p game modes }; -// map from character grid position id to character id -const s8 D_800F2BAC[] = { +// Map from character grid position id to character id +// Note: changing order doesn't affect graphics, only the selection +const s8 sCharacterGridOrder[] = { MARIO, LUIGI, PEACH, TOAD, YOSHI, DK, WARIO, BOWSER, }; @@ -134,10 +145,13 @@ const s16 gCupCourseOrder[5][4] = { { COURSE_BIG_DONUT, COURSE_BLOCK_FORT, COURSE_DOUBLE_DECK, COURSE_SKYSCRAPER }, }; -const s8 D_800F2BDC[4] = { 1, 0, 0, 0 }; -const s8 D_800F2BE0[4] = { 0, 1, 3, 4 }; +const s8 unref_800F2BDC[4] = { 1, 0, 0, 0 }; -const union GameModePack gSoundMenuPack = { { SOUND_STEREO, SOUND_HEADPHONES, SOUND_UNUSED, SOUND_MONO } }; +// Uses player count to set gScreenModeListIndex, the latter variable then selects a mode +// from sScreenModePlayerTable, note the 2 is not set since that's for vertical 2p screen +const s8 sScreenModeIdxFromPlayerMode[4] = { 0, 1, 3, 4 }; + +const union GameModePack sSoundMenuPack = { { SOUND_STEREO, SOUND_HEADPHONES, SOUND_UNUSED, SOUND_MONO } }; /**************************/ @@ -147,11 +161,10 @@ const union GameModePack gSoundMenuPack = { { SOUND_STEREO, SOUND_HEADPHONES, SO void update_menus(void) { u16 controllerIdx; - if (D_800E86A4 == 0) { + if (gFadeModeSelection == FADE_MODE_NONE) { for (controllerIdx = 0; controllerIdx < 4; controllerIdx++) { - // Debug, quick jump through menus using the start button. - if ((func_800B4520() == 0) && (gEnableDebugMode) && + if ((is_screen_being_faded() == 0) && (gEnableDebugMode) && ((gControllers[controllerIdx].buttonPressed & START_BUTTON) != 0)) { // this is certainly a way to write these... switch (gMenuSelection) { @@ -212,13 +225,15 @@ void update_menus(void) { } } -// navigation of the options menu -void options_menu_act(struct Controller* controller, u16 arg1) { +/** + * Navigation of the options menu + */ +void options_menu_act(struct Controller* controller, u16 controllerIdx) { u16 btnAndStick; // sp3E - struct_8018D9E0_entry* sp38; + MenuItem* sp38; s32 res; struct_8018EE10_entry* sp30; - bool sp2C; // cursorWasMoved or communicateStoredAction + bool tempVar; // cursorWasMoved or communicateStoredAction UNUSED u32 pad; btnAndStick = (controller->buttonPressed | controller->stickPressed); @@ -227,53 +242,53 @@ void options_menu_act(struct Controller* controller, u16 arg1) { btnAndStick |= A_BUTTON; } - if (!func_800B4520()) { - sp38 = find_8018D9E0_entry_dupe(0xF0); - sp30 = (struct_8018EE10_entry*) D_8018D9C0; - switch (D_8018EDEC) { - case 0x15: - case 0x16: - case 0x17: - case 0x18: { - sp2C = false; - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x18)) { - D_8018EDEC += 1; + if (!is_screen_being_faded()) { + sp38 = find_menu_items_dupe(0xF0); + sp30 = (struct_8018EE10_entry*) gSomeDLBuffer; + 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: { + tempVar = false; + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_OPTION_MAX)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = 1; - sp2C = true; + sp38->subState = 1; + tempVar = true; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x16)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_OPTION_MIN)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp2C = true; - sp38->unk8 = -1; + tempVar = true; + sp38->subState = -1; } - if (sp2C && gSoundMode != sp38->cursor) { + if (tempVar && gSoundMode != sp38->state) { gSaveData.main.saveInfo.soundMode = gSoundMode; write_save_data_grand_prix_points_and_sound_mode(); update_save_data_backup(); - sp38->cursor = gSoundMode; + sp38->state = gSoundMode; } if (btnAndStick & B_BUTTON) { func_8009E280(); play_sound2(SOUND_MENU_GO_BACK); - if (gSoundMode != sp38->cursor) { + if (gSoundMode != sp38->state) { gSaveData.main.saveInfo.soundMode = gSoundMode; write_save_data_grand_prix_points_and_sound_mode(); update_save_data_backup(); - sp38->cursor = gSoundMode; + sp38->state = gSoundMode; } return; } if (btnAndStick & A_BUTTON) { - switch (D_8018EDEC) { - case 0x16: + switch (gSubMenuSelection) { + case SUB_MENU_OPTION_SOUND_MODE: if (gSoundMode < 3) { gSoundMode += 1; } else { @@ -282,7 +297,7 @@ void options_menu_act(struct Controller* controller, u16 arg1) { if (gSoundMode == SOUND_UNUSED) { gSoundMode = SOUND_MONO; } - func_800B44BC(); + set_sound_mode(); switch (gSoundMode) { case SOUND_STEREO: play_sound2(SOUND_MENU_STEREO); @@ -295,75 +310,75 @@ void options_menu_act(struct Controller* controller, u16 arg1) { return; } break; - case 0x17: + case SUB_MENU_OPTION_COPY_CONTROLLER_PAK: switch (controller_pak_2_status()) { case PFS_INVALID_DATA: - D_8018EDEC = 0x2B; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; case PFS_NO_ERROR: func_800B6798(); - sp2C = controller_pak_1_status(); - switch (sp2C) { + tempVar = controller_pak_1_status(); + switch (tempVar) { case PFS_INVALID_DATA: - D_8018EDEC = 0x46; - sp38->cursor = 0; + gSubMenuSelection = SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT; + sp38->state = 0; play_sound2(SOUND_MENU_SELECT); break; case PFS_NO_ERROR: func_800B6708(); break; case PFS_NO_PAK_INSERTED: - D_8018EDEC = 0x34; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; case PFS_FILE_OVERFLOW: - D_8018EDEC = 0x37; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; case PFS_PAK_BAD_READ: - case 3: + case PFS_PAK_CORRUPTED: // unreachable, bad reads always returns previous case default: - D_8018EDEC = 0x35; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); break; } - if (sp2C == PFS_INVALID_DATA && !sp30[0].ghostDataSaved && - !sp30[1].ghostDataSaved) { - D_8018EDEC = 0x2A; + if (tempVar == PFS_INVALID_DATA && !sp30[PLAYER_ONE].ghostDataSaved && + !sp30[PLAYER_TWO].ghostDataSaved) { + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - if (sp2C == PFS_NO_ERROR) { - if (sp30[0].ghostDataSaved) { - D_8018EDEC = 0x28; + if (tempVar == PFS_NO_ERROR) { + if (sp30[PLAYER_ONE].ghostDataSaved) { + gSubMenuSelection = SUB_MENU_COPY_PAK_FROM_GHOST1_1P; play_sound2(SOUND_MENU_SELECT); - } else if (sp30[1].ghostDataSaved) { - D_8018EDEC = 0x29; + } else if (sp30[PLAYER_TWO].ghostDataSaved) { + gSubMenuSelection = SUB_MENU_COPY_PAK_FROM_GHOST2_1P; play_sound2(SOUND_MENU_SELECT); } else { - D_8018EDEC = 0x2A; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } } // else return? return; case PFS_NO_PAK_INSERTED: - D_8018EDEC = 0x2C; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; case PFS_PAK_BAD_READ: default: - D_8018EDEC = 0x2D; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - case 0x18: { - D_8018EDEC = 0x1E; + case SUB_MENU_OPTION_ERASE_ALL_DATA: { + gSubMenuSelection = SUB_MENU_ERASE_QUIT; play_sound2(SOUND_MENU_SELECT); return; } - case 0x15: { + case SUB_MENU_OPTION_RETURN_GAME_SELECT: { func_8009E280(); play_sound2(SOUND_MENU_GO_BACK); return; @@ -373,37 +388,37 @@ void options_menu_act(struct Controller* controller, u16 arg1) { // maybe else return?; break; } - case 0x1E: - case 0x1F: { - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x1F)) { - D_8018EDEC += 1; + case SUB_MENU_ERASE_QUIT: + case SUB_MENU_ERASE_ERASE: { + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_ERASE_MAX)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = 1; + sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x1F)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_ERASE_MIN)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = -1; + sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0x18; + gSubMenuSelection = SUB_MENU_OPTION_ERASE_ALL_DATA; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - switch (D_8018EDEC) { - case 0x1E: - D_8018EDEC = 0x18; + switch (gSubMenuSelection) { + case SUB_MENU_ERASE_QUIT: + gSubMenuSelection = SUB_MENU_OPTION_ERASE_ALL_DATA; play_sound2(SOUND_MENU_GO_BACK); break; - case 0x1F: - D_8018EDEC = 0x20; + case SUB_MENU_ERASE_ERASE: + gSubMenuSelection = SUB_MENU_SAVE_DATA_ERASED; func_800B46D0(); D_800DC5AC = 0; play_sound2(SOUND_MENU_EXPLOSION); @@ -412,187 +427,187 @@ void options_menu_act(struct Controller* controller, u16 arg1) { } break; // or return? } - case 0x20: { + case SUB_MENU_SAVE_DATA_ERASED: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0x18; + gSubMenuSelection = SUB_MENU_OPTION_ERASE_ALL_DATA; play_sound2(SOUND_MENU_GO_BACK); } break; } - case 0x28: - case 0x29: { - if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x29) && (sp30[1].ghostDataSaved)) { - D_8018EDEC += 1; + case SUB_MENU_COPY_PAK_FROM_GHOST1_1P: + case SUB_MENU_COPY_PAK_FROM_GHOST2_1P: { + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_FROM_GHOST_MAX) && (sp30[PLAYER_TWO].ghostDataSaved)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = 1; + sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x29) && sp30[0].ghostDataSaved) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_FROM_GHOST_MIN) && sp30[PLAYER_ONE].ghostDataSaved) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = -1; + sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0x17; + gSubMenuSelection = SUB_MENU_OPTION_COPY_CONTROLLER_PAK; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - sp38->unk20 = D_8018EDEC - 0x28; - if (sp30[sp38->unk20].courseIndex == D_8018EE10[1].courseIndex && D_8018EE10[1].ghostDataSaved) { - D_8018EDEC = 0x33; + sp38->param2 = gSubMenuSelection - SUB_MENU_COPY_PAK_FROM_GHOST_MIN; + if (sp30[sp38->param2].courseIndex == D_8018EE10[PLAYER_TWO].courseIndex && D_8018EE10[PLAYER_TWO].ghostDataSaved) { + gSubMenuSelection = SUB_MENU_COPY_PAK_TO_GHOST2_2P; } else { - D_8018EDEC = 0x32; + gSubMenuSelection = SUB_MENU_COPY_PAK_TO_GHOST1_2P; } play_sound2(SOUND_MENU_SELECT); } break; } - case 0x32: - case 0x33: { + case SUB_MENU_COPY_PAK_TO_GHOST1_2P: + case SUB_MENU_COPY_PAK_TO_GHOST2_2P: { // bit of a fake match, but if it works it works? - if ((sp30[sp38->unk20].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 - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->courseIndex))) || + ((D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->ghostDataSaved == 0)) { + if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_TO_GHOST_MAX)) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = 1; + sp38->subState = 1; } - if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x33)) { - D_8018EDEC -= 1; + if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_TO_GHOST_MIN)) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = -1; + sp38->subState = -1; } } if (btnAndStick & B_BUTTON) { - D_8018EDEC = sp38->unk20 + 0x28; + gSubMenuSelection = sp38->param2 + SUB_MENU_COPY_PAK_FROM_GHOST_MIN; play_sound2(SOUND_MENU_GO_BACK); } else if (btnAndStick & A_BUTTON) { - sp38->unk1C = D_8018EDEC - 0x32; - if (D_8018EE10[(sp38->unk1C)].ghostDataSaved) { - D_8018EDEC = 0x38; + sp38->param1 = gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN; + if (D_8018EE10[(sp38->param1)].ghostDataSaved) { + gSubMenuSelection = SUB_MENU_COPY_PAK_PROMPT_QUIT; } else { - D_8018EDEC = 0x3A; - sp38->cursor = 0; + gSubMenuSelection = SUB_MENU_COPY_PAK_START; + sp38->state = 0; } play_sound2(SOUND_MENU_SELECT); } break; } - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x34: - case 0x35: - case 0x37: - case 0x3C: - case 0x41: - case 0x42: { + 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: + case SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P: + case SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P: + case SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P: + case SUB_MENU_COPY_PAK_COMPLETED: + case SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P: + case SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0x17; + gSubMenuSelection = SUB_MENU_OPTION_COPY_CONTROLLER_PAK; play_sound2(SOUND_MENU_GO_BACK); } break; } - case 0x38: - case 0x39: { - if ((btnAndStick & R_JPAD) && D_8018EDEC < 0x39) { - D_8018EDEC += 1; + case SUB_MENU_COPY_PAK_PROMPT_QUIT: + case SUB_MENU_COPY_PAK_PROMPT_COPY: { + if ((btnAndStick & R_JPAD) && gSubMenuSelection < SUB_MENU_COPY_PAK_PROMPT_MAX) { + gSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = 1; + sp38->subState = 1; } - if ((btnAndStick & L_JPAD) && D_8018EDEC >= 0x39) { - D_8018EDEC -= 1; + if ((btnAndStick & L_JPAD) && gSubMenuSelection > SUB_MENU_COPY_PAK_PROMPT_MIN) { + gSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp38->unk24 < 4.2) { - sp38->unk24 += 4.0; + if (sp38->paramf < 4.2) { + sp38->paramf += 4.0; } - sp38->unk8 = -1; + sp38->subState = -1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = sp38->unk1C + 0x32; + gSubMenuSelection = sp38->param1 + SUB_MENU_COPY_PAK_TO_GHOST_MIN; play_sound2(SOUND_MENU_GO_BACK); return; } if (btnAndStick & A_BUTTON) { - if (D_8018EDEC == 0x38) { - D_8018EDEC = 0x17; + if (gSubMenuSelection == SUB_MENU_COPY_PAK_PROMPT_QUIT) { + gSubMenuSelection = SUB_MENU_OPTION_COPY_CONTROLLER_PAK; play_sound2(SOUND_MENU_GO_BACK); } else { - D_8018EDEC = 0x3A; + gSubMenuSelection = SUB_MENU_COPY_PAK_START; play_sound2(SOUND_MENU_SELECT); - sp38->cursor = 0; + sp38->state = 0; } } // return? break; } - case 0x3A: { - if (arg1 == 0) { - sp38->cursor += 1; + case SUB_MENU_COPY_PAK_START: { + if (controllerIdx == PLAYER_ONE) { + sp38->state += 1; } - if (sp38->cursor >= 3) { - D_8018EDEC = 0x3B; + if (sp38->state >= 3) { + gSubMenuSelection = SUB_MENU_COPY_PAK_COPYING; } break; } - case 0x3B: { + case SUB_MENU_COPY_PAK_COPYING: { res = controller_pak_2_status(); if (res == PFS_NO_ERROR) { - res = func_800B65F4(sp38->unk20, sp38->unk1C); + res = func_800B65F4(sp38->param2, sp38->param1); } if (res != 0) { - D_8018EDEC = 0x42; + gSubMenuSelection = SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } res = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, (u8*) gGameName, (u8*) gExtCode, &gControllerPak1FileNote); if (res == PFS_NO_ERROR) { - res = func_800B6178(sp38->unk1C); + res = func_800B6178(sp38->param1); } if (res != 0) { - D_8018EDEC = 0x41; + gSubMenuSelection = SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); return; } - D_8018EDEC = 0x3C; - D_8018EE10[sp38->unk1C].courseIndex = (sp30 + sp38->unk20)->courseIndex; - func_800B6088(sp38->unk1C); + gSubMenuSelection = SUB_MENU_COPY_PAK_COMPLETED; + D_8018EE10[sp38->param1].courseIndex = (sp30 + sp38->param2)->courseIndex; + func_800B6088(sp38->param1); break; } - case 0x46: { - if (arg1 == 0) { - sp38->cursor += 1; + case SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT: { + if (controllerIdx == PLAYER_ONE) { + sp38->state += 1; } - if (sp38->cursor >= 3) { - D_8018EDEC = 0x47; + if (sp38->state >= 3) { + gSubMenuSelection = SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE; } break; } - case 0x47: { + case SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE: { if (func_800B6A68()) { - D_8018EDEC = 0x36; + gSubMenuSelection = SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } else if (sp30[0].ghostDataSaved) { - D_8018EDEC = 0x28; + gSubMenuSelection = SUB_MENU_COPY_PAK_FROM_GHOST1_1P; } else { - D_8018EDEC = 0x29; + gSubMenuSelection = SUB_MENU_COPY_PAK_FROM_GHOST2_1P; } break; } @@ -602,70 +617,75 @@ void options_menu_act(struct Controller* controller, u16 arg1) { } } -// Handle navigating the data menu interface -void data_menu_act(struct Controller* controller, UNUSED u16 arg1) { - u16 buttonAndStickPress = (controller->buttonPressed | controller->stickPressed); +/** + * Navigation of the data menu + */ +void data_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) { + u16 btnAndStick = (controller->buttonPressed | controller->stickPressed); // Make pressing Start have the same effect as pressing A - if ((gEnableDebugMode == 0) && ((buttonAndStickPress & 0x1000) != 0)) { - buttonAndStickPress |= 0x8000; + if ((gEnableDebugMode == 0) && ((btnAndStick & START_BUTTON) != 0)) { + btnAndStick |= A_BUTTON; } - if (func_800B4520() == 0) { - if (D_8018EDEC == 1) { + if (is_screen_being_faded() == 0) { + if (gSubMenuSelection == SUB_MENU_DATA) { // If DPad/Stick down pressed, move selection down if not already in bottom row - if ((buttonAndStickPress & 0x400) != 0) { + if ((btnAndStick & D_JPAD) != 0) { if ((gTimeTrialDataCourseIndex % 4) != 3) { ++gTimeTrialDataCourseIndex; play_sound2(SOUND_MENU_CURSOR_MOVE); } } // If DPad/Stick up pressed, move selection up if not already in top row - if ((buttonAndStickPress & 0x800) != 0) { - if ((gTimeTrialDataCourseIndex & 3) != 0) { + if ((btnAndStick & U_JPAD) != 0) { + if ((gTimeTrialDataCourseIndex % 4) != 0) { --gTimeTrialDataCourseIndex; play_sound2(SOUND_MENU_CURSOR_MOVE); } } // If DPad/Stick right pressed, move selection right if not already in right-most column - if ((buttonAndStickPress & 0x100) != 0) { + if ((btnAndStick & R_JPAD) != 0) { if ((gTimeTrialDataCourseIndex / 4) != 3) { gTimeTrialDataCourseIndex += 4; play_sound2(SOUND_MENU_CURSOR_MOVE); } } // If DPad/Stick left pressed, move selection left if not already in left-most column - if ((buttonAndStickPress & 0x200) != 0) { + if ((btnAndStick & L_JPAD) != 0) { if ((gTimeTrialDataCourseIndex / 4) != 0) { gTimeTrialDataCourseIndex -= 4; play_sound2(SOUND_MENU_CURSOR_MOVE); } } // If B pressed, go to main menu - if ((buttonAndStickPress & 0x4000) != 0) { + if ((btnAndStick & B_BUTTON) != 0) { func_8009E258(); play_sound2(SOUND_MENU_GO_BACK); return; } // If A pressed, go to selected course's records - if ((buttonAndStickPress & 0x8000) != 0) { - gCourseRecordsMenuSelection = 0; + if ((btnAndStick & A_BUTTON) != 0) { + gCourseRecordsMenuSelection = COURSE_RECORDS_MENU_RETURN_MENU; func_8009E1C0(); 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?) - else if ((buttonAndStickPress & 0x8000) != 0) { + // If gSubMenuSelection is not SUB_MENU_DATA and A pressed, go to main menu + // This condition is not reachable but this failsafe was added nonetheless + else if ((btnAndStick & A_BUTTON) != 0) { func_8009E258(); play_sound2(SOUND_MENU_OK_CLICKED); } } } -void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { +/** + * Navigation of the course records data menu + */ +void course_data_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) { u16 btnAndStick; // sp2E - struct_8018D9E0_entry* sp28; + MenuItem* sp28; CourseTimeTrialRecords* sp24; s32 res; @@ -675,9 +695,9 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { btnAndStick |= A_BUTTON; } - if (!func_800B4520()) { - switch (D_8018EDEC) { - case 0x0B: { + if (!is_screen_being_faded()) { + switch (gSubMenuSelection) { + case SUB_MENU_DATA_OPTIONS: { if ((btnAndStick & L_JPAD) && (gTimeTrialDataCourseIndex > 0)) { gTimeTrialDataCourseIndex -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); @@ -688,47 +708,50 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { play_sound2(SOUND_MENU_CURSOR_MOVE); } - sp28 = find_8018D9E0_entry_dupe(0xE8); + sp28 = find_menu_items_dupe(0xE8); sp24 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4] .courseRecords[gTimeTrialDataCourseIndex % 4]; - if (gCourseRecordsMenuSelection == 2 && func_800B639C(gTimeTrialDataCourseIndex) < 0) { + if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_ERASE_GHOST && + func_800B639C(gTimeTrialDataCourseIndex) < 0) { gCourseRecordsMenuSelection -= 1; } - if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { + if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_ERASE_RECORDS && sp24->unknownBytes[0] == 0) { gCourseRecordsMenuSelection -= 1; } - if ((btnAndStick & U_JPAD) && (gCourseRecordsMenuSelection > 0)) { + if ((btnAndStick & U_JPAD) && (gCourseRecordsMenuSelection > COURSE_RECORDS_MENU_MIN)) { gCourseRecordsMenuSelection -= 1; if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { gCourseRecordsMenuSelection -= 1; } play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp28->unk24 < 4.2) { - sp28->unk24 += 4.0; + if (sp28->paramf < 4.2) { + sp28->paramf += 4.0; } - sp28->unk8 = -1; + sp28->subState = -1; } - if ((btnAndStick & D_JPAD) && (gCourseRecordsMenuSelection < 2)) { + if ((btnAndStick & D_JPAD) && (gCourseRecordsMenuSelection < COURSE_RECORDS_MENU_MAX)) { gCourseRecordsMenuSelection += 1; - if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { + if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_ERASE_RECORDS && + sp24->unknownBytes[0] == 0) { gCourseRecordsMenuSelection += 1; } - if (gCourseRecordsMenuSelection == 2 && func_800B639C(gTimeTrialDataCourseIndex) < 0) { + if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_ERASE_GHOST && + func_800B639C(gTimeTrialDataCourseIndex) < 0) { if (sp24->unknownBytes[0] == 0) { - gCourseRecordsMenuSelection = 0; + gCourseRecordsMenuSelection = COURSE_RECORDS_MENU_RETURN_MENU; } else { - gCourseRecordsMenuSelection = 1; + gCourseRecordsMenuSelection = COURSE_RECORDS_MENU_ERASE_RECORDS; } } else { play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp28->unk24 < 4.2) { - sp28->unk24 += 4.0; + if (sp28->paramf < 4.2) { + sp28->paramf += 4.0; } - sp28->unk8 = 1; + sp28->subState = 1; } } @@ -736,63 +759,63 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { func_8009E208(); play_sound2(SOUND_MENU_GO_BACK); } else if (btnAndStick & A_BUTTON) { - if (sp28->unk24 < 4.2) { - sp28->unk24 += 4.0; + if (sp28->paramf < 4.2) { + sp28->paramf += 4.0; } - if (gCourseRecordsMenuSelection == 0) { + if (gCourseRecordsMenuSelection == COURSE_RECORDS_MENU_RETURN_MENU) { func_8009E208(); play_sound2(SOUND_MENU_GO_BACK); } else { - D_8018EDEC = 0x0C; - D_8018EDF9 = 0; + gSubMenuSelection = SUB_MENU_DATA_ERASE_CONFIRM; + gCourseRecordsSubMenuSelection = COURSE_RECORDS_SUB_MENU_QUIT; play_sound2(SOUND_MENU_SELECT); } } break; } - case 0x0C: { - sp28 = find_8018D9E0_entry_dupe(0xE9); - if ((btnAndStick & U_JPAD) && (D_8018EDF9 > 0)) { - D_8018EDF9 -= 1; + case SUB_MENU_DATA_ERASE_CONFIRM: { + sp28 = find_menu_items_dupe(0xE9); + if ((btnAndStick & U_JPAD) && (gCourseRecordsSubMenuSelection > COURSE_RECORDS_SUB_MENU_MIN)) { + gCourseRecordsSubMenuSelection -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp28->unk24 < 4.2) { - sp28->unk24 += 4.0; + if (sp28->paramf < 4.2) { + sp28->paramf += 4.0; } - sp28->unk8 = -1; + sp28->subState = -1; } - if ((btnAndStick & D_JPAD) && (D_8018EDF9 <= 0)) { - D_8018EDF9 += 1; + if ((btnAndStick & D_JPAD) && (gCourseRecordsSubMenuSelection < COURSE_RECORDS_SUB_MENU_MAX)) { + gCourseRecordsSubMenuSelection += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - if (sp28->unk24 < 4.2) { - sp28->unk24 += 4.0; + if (sp28->paramf < 4.2) { + sp28->paramf += 4.0; } - sp28->unk8 = 1; + sp28->subState = 1; } if (btnAndStick & B_BUTTON) { - D_8018EDEC = 0xB; + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; play_sound2(SOUND_MENU_GO_BACK); } else if (btnAndStick & A_BUTTON) { - if (D_8018EDF9 != 0) { + if (gCourseRecordsSubMenuSelection != COURSE_RECORDS_SUB_MENU_QUIT) { res = 0; switch (gCourseRecordsMenuSelection) { - case 1: { + case COURSE_RECORDS_MENU_ERASE_RECORDS: { func_800B4728(gTimeTrialDataCourseIndex); func_800B559C(gTimeTrialDataCourseIndex); play_sound2(SOUND_MENU_EXPLOSION); res = -1; break; } - case 2: { + case COURSE_RECORDS_MENU_ERASE_GHOST: { res = func_800B639C(gTimeTrialDataCourseIndex); if (res >= 0) { if (func_800B69BC(res) != 0) { - D_8018EDEC = 0x0D; + gSubMenuSelection = SUB_MENU_DATA_CANT_ERASE; play_sound2(SOUND_MENU_FILE_NOT_FOUND); } else { play_sound2(SOUND_MENU_EXPLOSION); - D_8018EDEC = 0x0B; + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; } } break; @@ -800,18 +823,18 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { } if (!(res + 1)) { - D_8018EDEC = 0xB; + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; } } else { play_sound2(SOUND_MENU_GO_BACK); - D_8018EDEC = 0xB; + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; } } break; } - case 0x0D: { + case SUB_MENU_DATA_CANT_ERASE: { if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) { - D_8018EDEC = 0xB; + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; } break; } @@ -822,87 +845,76 @@ void course_data_menu_act(struct Controller* controller, UNUSED u16 arg1) { /** * On input skip logo screen **/ -void logo_intro_menu_act(struct Controller* arg0, UNUSED u16 arg1) { - u16 anyInput = arg0->buttonPressed | arg0->stickPressed; +void logo_intro_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) { + u16 btnAndStick = (controller->buttonPressed | controller->stickPressed); -// Note: Choosing a course in the middle of a cup -// will contain no definition for player staging/lineup. -// #define SKIP_TO_RACE -#ifdef SKIP_TO_RACE - gGamestateNext = 4; // Enter race state - gCCSelection = CC_100; - gCupSelection = 1; - gCourseIndexInCup = 0; - gCurrentCourseId = 0; - gScreenModeSelection = SCREEN_MODE_1P; - gCharacterSelections[0] = 0; - gModeSelection = GRAND_PRIX; - gPlayerCount = 1; -#endif - - if ((func_800B4520() == 0) && (anyInput)) { - // Audio related + // If any button is pressed then fade audio out + if ((is_screen_being_faded() == 0) && (btnAndStick)) { + //! @todo Label audio funcs func_800CA388(0x3C); func_8009E1E4(); } } -void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { - u16 buttonAndStickPress; +/** + * Navigation of the controller pak table data + */ +void controller_pak_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) { + u16 btnAndStick; OSPfsState* osPfsState; s32 selectedTableRow; UNUSED s8 pad; - buttonAndStickPress = controller->buttonPressed | controller->stickPressed; - if (func_800B4520() == 0) { + btnAndStick = (controller->buttonPressed | controller->stickPressed); + if (is_screen_being_faded() == 0) { switch (gControllerPakMenuSelection) { case CONTROLLER_PAK_MENU_SELECT_RECORD: - if ((buttonAndStickPress & 0x9000) != 0) { + if ((btnAndStick & (A_BUTTON | START_BUTTON)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_TABLE_GAME_DATA; play_sound2(SOUND_MENU_SELECT); return; } - if ((buttonAndStickPress & 0x300) != 0) { + if ((btnAndStick & (L_JPAD | R_JPAD)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_END; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } break; case CONTROLLER_PAK_MENU_END: - if ((buttonAndStickPress & 0x9000) != 0) { + if ((btnAndStick & (A_BUTTON | START_BUTTON)) != 0) { play_sound2(SOUND_MENU_SELECT); func_8009E1C0(); gControllerPak1State = BAD; return; } - if ((buttonAndStickPress & 0x300) != 0) { + if ((btnAndStick & (L_JPAD | R_JPAD)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } break; case CONTROLLER_PAK_MENU_TABLE_GAME_DATA: - if ((buttonAndStickPress & 0x9000) != 0) { - selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1; + if ((btnAndStick & (A_BUTTON | START_BUTTON)) != 0) { + selectedTableRow = gControllerPakVisibleTableRows[gControllerPakSelectedTableRow + 2] - 1; if (pfsError[selectedTableRow] == 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_QUIT; play_sound2(SOUND_MENU_SELECT); return; } - } else if ((buttonAndStickPress & 0x4000) != 0) { - if (D_800E86D0[0] == 0) { + } else if ((btnAndStick & B_BUTTON) != 0) { + if (gControllerPakScrollDirection == CONTROLLER_PAK_SCROLL_DIR_NONE) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; play_sound2(SOUND_MENU_GO_BACK); return; } - } else if ((buttonAndStickPress & 0x800) != 0) { - if (D_800E86D0[0] == 0) { + } else if ((btnAndStick & U_JPAD) != 0) { + if (gControllerPakScrollDirection == CONTROLLER_PAK_SCROLL_DIR_NONE) { --gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow < 0) { gControllerPakSelectedTableRow = 0; - if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 1) { - D_800E86D0[0] = 2; + if (gControllerPakVisibleTableRows[gControllerPakSelectedTableRow + 2] != 1) { + gControllerPakScrollDirection = CONTROLLER_PAK_SCROLL_DIR_UP; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } @@ -911,12 +923,13 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { return; } } - } else if (((buttonAndStickPress & 0x400) != 0) && (D_800E86D0[0] == 0)) { + } else if (((btnAndStick & D_JPAD) != 0) && + (gControllerPakScrollDirection == CONTROLLER_PAK_SCROLL_DIR_NONE)) { ++gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow >= CONTROLLER_PAK_MENU_TABLE_GAME_DATA) { gControllerPakSelectedTableRow = CONTROLLER_PAK_MENU_QUIT; - if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 0x10) { - D_800E86D0[0] = 1; + if (gControllerPakVisibleTableRows[gControllerPakSelectedTableRow + 2] != 16) { + gControllerPakScrollDirection = CONTROLLER_PAK_SCROLL_DIR_DOWN; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } @@ -927,29 +940,29 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { } break; case CONTROLLER_PAK_MENU_QUIT: - if ((buttonAndStickPress & 0xD000) != 0) { + if ((btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_TABLE_GAME_DATA; play_sound2(SOUND_MENU_GO_BACK); return; } - if ((buttonAndStickPress & 0x300) != 0) { + if ((btnAndStick & (L_JPAD | R_JPAD)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE; play_sound2(SOUND_MENU_CURSOR_MOVE); return; } break; case CONTROLLER_PAK_MENU_ERASE: - if ((buttonAndStickPress & 0x9000) != 0) { + if ((btnAndStick & (A_BUTTON | START_BUTTON)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_GO_TO_ERASING; play_sound2(SOUND_MENU_SELECT); return; } - if ((buttonAndStickPress & 0x4000) != 0) { + if ((btnAndStick & B_BUTTON) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_TABLE_GAME_DATA; play_sound2(SOUND_MENU_GO_BACK); return; } - if ((buttonAndStickPress & 0x300) != 0) { + if ((btnAndStick & (L_JPAD | R_JPAD)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_QUIT; play_sound2(SOUND_MENU_CURSOR_MOVE); return; @@ -959,7 +972,7 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASING; return; case CONTROLLER_PAK_MENU_ERASING: - selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1; + selectedTableRow = gControllerPakVisibleTableRows[gControllerPakSelectedTableRow + 2] - 1; osPfsState = &pfsState[selectedTableRow]; switch (osPfsDeleteFile(&gControllerPak1FileHandle, osPfsState->company_code, osPfsState->game_code, @@ -975,7 +988,7 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { case PFS_ERR_NOPACK: gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK; return; - case PFS_ERR_NEW_PACK: /* switch 1 */ + case PFS_ERR_NEW_PACK: gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED; return; } @@ -983,7 +996,7 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { case CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED: case CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK: case CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED: - if ((buttonAndStickPress & 0x9000) != 0) { + if ((btnAndStick & (A_BUTTON | START_BUTTON)) != 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_TABLE_GAME_DATA; } break; @@ -991,22 +1004,24 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) { } } -void splash_menu_act(struct Controller* controller, u16 arg1) { +/** + * Navigation of the main splash start screen menu + * Also handles debug menu options + */ +void splash_menu_act(struct Controller* controller, u16 controllerIdx) { u16 btnAndStick; u16 i; - s32 sp28; - - sp28 = true; + s32 isDebug = true; btnAndStick = controller->buttonPressed | controller->stickPressed; - if (func_800B4520() == 0) { - if (arg1 == 0) { + if (is_screen_being_faded() == 0) { + if (controllerIdx == PLAYER_ONE) { gMenuDelayTimer += 1; } switch (gDebugMenuSelection) { case DEBUG_MENU_DISABLED: { - sp28 = false; - if ((gMenuDelayTimer >= 0x2E) && (btnAndStick & (A_BUTTON | START_BUTTON))) { + isDebug = false; + if ((gMenuDelayTimer >= 46) && (btnAndStick & (A_BUTTON | START_BUTTON))) { func_8009E1C0(); func_800CA330(0x19); play_sound2(SOUND_INTRO_ENTER_MENU); @@ -1062,15 +1077,15 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { break; } case DEBUG_MENU_SCREEN_MODE: { - if ((btnAndStick & R_JPAD) && (D_8018EDF1 < 4)) { - D_8018EDF1 += 1; + if ((btnAndStick & R_JPAD) && (gScreenModeListIndex < 4)) { + gScreenModeListIndex += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - gScreenModeSelection = D_800F2B50[D_8018EDF1]; + gScreenModeSelection = sScreenModePlayerTable[gScreenModeListIndex]; } - if ((btnAndStick & L_JPAD) && (D_8018EDF1 > 0)) { - D_8018EDF1 -= 1; + if ((btnAndStick & L_JPAD) && (gScreenModeListIndex > 0)) { + gScreenModeListIndex -= 1; play_sound2(SOUND_MENU_CURSOR_MOVE); - gScreenModeSelection = D_800F2B50[D_8018EDF1]; + gScreenModeSelection = sScreenModePlayerTable[gScreenModeListIndex]; } if (btnAndStick & U_JPAD) { gDebugMenuSelection = DEBUG_MENU_COURSE; @@ -1083,7 +1098,7 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { break; } case DEBUG_MENU_PLAYER: { - if ((btnAndStick & R_JPAD) && (*gCharacterSelections < 7)) { + if ((btnAndStick & R_JPAD) && (gCharacterSelections[0] < 7)) { gCharacterSelections[0] += 1; play_sound2(SOUND_MENU_CURSOR_MOVE); } @@ -1108,7 +1123,7 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { gSoundMode = SOUND_MONO; } play_sound2(SOUND_MENU_CURSOR_MOVE); - func_800B44BC(); + set_sound_mode(); gSaveData.main.saveInfo.soundMode = gSoundMode; write_save_data_grand_prix_points_and_sound_mode(); update_save_data_backup(); @@ -1119,7 +1134,7 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { gSoundMode = SOUND_HEADPHONES; } play_sound2(SOUND_MENU_CURSOR_MOVE); - func_800B44BC(); + set_sound_mode(); gSaveData.main.saveInfo.soundMode = gSoundMode; write_save_data_grand_prix_points_and_sound_mode(); } @@ -1170,13 +1185,13 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { break; } - gPlayerCountSelection1 = gPlayerCount = D_800F2B58[D_8018EDF1]; + gPlayerCountSelection1 = gPlayerCount = sScreenModePlayerCount[gScreenModeListIndex]; - if (sp28) { + if (isDebug) { if (btnAndStick & (A_BUTTON | START_BUTTON)) { func_8009E1C0(); func_800CA330(0x19); - gDebugMenuSelection = DEBUG_MENU_EXITED; + gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED; if (controller->button & CONT_L) { gDemoMode = DEMO_MODE_ACTIVE; @@ -1188,15 +1203,15 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { if (btnAndStick & A_BUTTON) { gDebugGotoScene = DEBUG_GOTO_ENDING; } else { - gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA; + gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA; } } play_sound2(SOUND_MENU_OK_CLICKED); } else if ((btnAndStick & B_BUTTON) && (controller->button & Z_TRIG)) { func_8009E1C0(); func_800CA330(0x19); - gDebugMenuSelection = DEBUG_MENU_EXITED; - gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_50; + gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED; + gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT; play_sound2(SOUND_MENU_OK_CLICKED); } else if (btnAndStick & CONT_R) { gDebugMenuSelection = DEBUG_MENU_DISABLED; @@ -1206,21 +1221,21 @@ void splash_menu_act(struct Controller* controller, u16 arg1) { } } -void func_800B28C8(void) { +void setup_game_mode_selected(void) { // For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will // be whether 'Begin' or 'Data' is selected. Not used for Battle. - s8 temp_v0 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + s8 subMenuMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; // Determine which game mode was selected based on the number of players and the row selected on the main menu - switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) { + switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) { case GRAND_PRIX: - gCCSelection = temp_v0; + gCCSelection = subMenuMode; gPlaceItemBoxes = 1; - gIsMirrorMode = (temp_v0 == CC_EXTRA) ? 1 : 0; + gIsMirrorMode = (subMenuMode == CC_EXTRA) ? 1 : 0; break; case VERSUS: - gCCSelection = temp_v0; + gCCSelection = subMenuMode; gPlaceItemBoxes = 1; - gIsMirrorMode = (temp_v0 == CC_EXTRA) ? 1 : 0; + gIsMirrorMode = (subMenuMode == CC_EXTRA) ? 1 : 0; break; case BATTLE: gPlaceItemBoxes = 1; @@ -1231,40 +1246,44 @@ void func_800B28C8(void) { gIsMirrorMode = 0; gPlaceItemBoxes = 0; - if ((temp_v0 && temp_v0) && temp_v0) {} + if ((subMenuMode && subMenuMode) && subMenuMode) {} break; } } +/** + * Navigation of the main game mode select screen + */ #ifdef NON_MATCHING -// nonmatching: regalloc; arg1 is not AND-ed back into $a1, reg chaos follows -void main_menu_act(struct Controller* controller, u16 arg1) { - u16 btnAndStick; // sp2E - s32 sp28; - bool sp24; - s32 newMode; // temp_v1_2? +// https://decomp.me/scratch/93qj8 +// nonmatching: regalloc; controllerIdx is not AND-ed back into $a1, reg chaos follows +void main_menu_act(struct Controller* controller, u16 controllerIdx) { + u16 btnAndStick; + s32 subMode; + bool cursorMoved; + s32 newMode; btnAndStick = controller->buttonPressed | controller->stickPressed; if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) { btnAndStick |= A_BUTTON; } - if (!func_800B4520()) { - switch (gMainMenuSelectionDepth) { - case BLANK_MAIN_MENU: { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + if (!is_screen_being_faded()) { + switch (gMainMenuSelection) { + case MAIN_MENU_NONE: { + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; break; } - case PLAYER_NUM_SELECTION: { + case MAIN_MENU_PLAYER_SELECT: { if ((btnAndStick & R_JPAD) && gPlayerCount < 4) { gPlayerCount += 1; - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } if ((btnAndStick & L_JPAD) && gPlayerCount >= 2) { gPlayerCount -= 1; - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } // L800B2B38 @@ -1285,190 +1304,189 @@ void main_menu_act(struct Controller* controller, u16 arg1) { if (btnAndStick & B_BUTTON) { func_8009E0F0(0x14); func_800CA330(0x19); - D_8018EDE0 = 1; + gMenuFadeType = MENU_FADE_TYPE_BACK; play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B2C00 - gMainMenuSelectionDepth = GAME_MODE_SELECTION; - func_800B44AC(); + gMainMenuSelection = MAIN_MENU_MODE_SELECT; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_SELECT); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & CONT_L) { // L800B2C58 - gMainMenuSelectionDepth = OPTIONS_SELECTION; + gMainMenuSelection = MAIN_MENU_OPTION; func_8009E280(); play_sound2(SOUND_MENU_OPTION); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & CONT_R) { - gMainMenuSelectionDepth = DATA_SELECTION; + gMainMenuSelection = MAIN_MENU_DATA; func_8009E258(); play_sound2(SOUND_MENU_DATA); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } break; } - case GAME_MODE_SELECTION: { + case MAIN_MENU_MODE_SELECT: { if (btnAndStick & D_JPAD) { - if (D_800E86AC[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) { - D_800E86AC[gPlayerCount - 1] += 1; - func_800B44AC(); + if (gGameModeMenuColumn[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) { + gGameModeMenuColumn[gPlayerCount - 1] += 1; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } } // L800B2D94 if (btnAndStick & U_JPAD) { - if (D_800E86AC[gPlayerCount - 1] > 0) { - D_800E86AC[gPlayerCount - 1] -= 1; - func_800B44AC(); + if (gGameModeMenuColumn[gPlayerCount - 1] > 0) { + gGameModeMenuColumn[gPlayerCount - 1] -= 1; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } } // L800B2DE0 if (btnAndStick & B_BUTTON) { - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; - func_800B44AC(); + gMainMenuSelection = MAIN_MENU_PLAYER_SELECT; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B2E3C - switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) { + switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) { case 0: - gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT; play_sound2(SOUND_MENU_GP); break; case 2: - gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT; play_sound2(SOUND_MENU_VERSUS); break; case 1: - gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT; play_sound2(SOUND_MENU_TIME_TRIALS); break; case 3: - gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; + gMainMenuSelection = MAIN_MENU_OK_SELECT; play_sound2(SOUND_MENU_BATTLE); break; default: - gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; + gMainMenuSelection = MAIN_MENU_OK_SELECT; break; } // L800B2F04 - func_800B44AC(); + reset_cycle_flash_menu(); gMenuTimingCounter = 0; - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } break; } - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: - case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: { - if (arg1 == 0) { + case MAIN_MENU_MODE_SUB_SELECT: + case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: { + if (controllerIdx == PLAYER_ONE) { gMenuTimingCounter++; if ((gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) { // L800B2FAC - if (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 0 || - gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] == 2) { + if (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 0 || + gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 2) { play_sound2(SOUND_MENU_SELECT_LEVEL); } } } // L800B3000 - sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; - if ((btnAndStick & U_JPAD) && (sp28 > 0)) { - D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] -= 1; - func_800B44AC(); + subMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; + if ((btnAndStick & U_JPAD) && (subMode > 0)) { + gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] -= 1; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } // L800B3068 if (btnAndStick & D_JPAD) { - sp24 = false; + cursorMoved = false; if (has_unlocked_extra_mode()) { - if (sp28 < gGameModePlayerColumnExtra[gPlayerCount + 4][D_800E86AC[gPlayerCount - 1] + 1]) { - sp24 = true; + if (subMode < sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) { + cursorMoved = true; } } else { - // L800B30D4 - if (sp28 < gGameModePlayerColumnDefault[gPlayerCount][D_800E86AC[gPlayerCount - 1] + 1]) { - sp24 = true; + if (subMode < sGameModePlayerColumnDefault[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) { + cursorMoved = true; } } // L800B3110 - if (sp24) { - D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]++; - func_800B44AC(); + if (cursorMoved) { + gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]++; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } } // L800B3150 - sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + subMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; if (btnAndStick & B_BUTTON) { - gMainMenuSelectionDepth = GAME_MODE_SELECTION; - func_800B44AC(); + gMainMenuSelection = MAIN_MENU_MODE_SELECT; + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B31DC - func_800B44AC(); - if (gPlayerCount == 1 && D_800E86AC[gPlayerCount - 1] == 1 && sp28 == 1) { + reset_cycle_flash_menu(); + if (gPlayerCount == 1 && gGameModeMenuColumn[gPlayerCount - 1] == 1 && subMode == 1) { // DATA func_8009E258(); play_sound2(SOUND_MENU_DATA); - } else { - gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; + } else { // BEGIN + gMainMenuSelection = MAIN_MENU_OK_SELECT; play_sound2(SOUND_MENU_SELECT); gMenuTimingCounter = 0; } - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else { // L800B3294 - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } break; } - case CONFIRM_OK_SELECTION: - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: { - if ((arg1 == 0) && (++gMenuTimingCounter == 60 || gMenuTimingCounter % 300 == 0)) { + case MAIN_MENU_OK_SELECT: + case MAIN_MENU_OK_SELECT_GO_BACK: { + if ((controllerIdx == PLAYER_ONE) && (++gMenuTimingCounter == 60 || gMenuTimingCounter % 300 == 0)) { play_sound2(SOUND_MENU_OK); } // L800B330C if (btnAndStick & B_BUTTON) { - switch (gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]) { + switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) { case 0: case 1: case 2: - gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT; break; case 3: default: - gMainMenuSelectionDepth = GAME_MODE_SELECTION; + gMainMenuSelection = MAIN_MENU_MODE_SELECT; break; } // L800B3384 - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_GO_BACK); gMenuTimingCounter = 0; - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B33D8 func_8009E1C0(); play_sound2(SOUND_MENU_OK_CLICKED); - func_800B28C8(); - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + setup_game_mode_selected(); + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } else { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; } break; } - case OPTIONS_SELECTION: - case DATA_SELECTION: { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + case MAIN_MENU_OPTION: + case MAIN_MENU_DATA: { + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; break; } default: { - newMode = gGameModePlayerSelection[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; + newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]; break; } } @@ -1479,7 +1497,10 @@ void main_menu_act(struct Controller* controller, u16 arg1) { GLOBAL_ASM("asm/non_matchings/menus/main_menu_act.s") #endif -// check if there is no currently selected and/or hovered character at grid position `gridId` +/** + * Check if there is no currently selected and/or + * hovered character at grid position `gridId` + */ bool is_character_spot_free(s32 gridId) { s32 i; for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { @@ -1490,14 +1511,18 @@ bool is_character_spot_free(s32 gridId) { return true; } -#ifdef NON_MATCHING -// grid positions are from right to left, then top to bottom -// nonmatching: the gCharacterGridSelections pointer is not promoted to $s0 -void player_select_menu_act(struct Controller* controller, u16 arg1) { +// Grid positions are from right to left, then top to bottom +// https://decomp.me/scratch/6R4jX +#if 1 +/** + * Navigation of the player select screen + * Grid positions are from right to left, then top to bottom + */ +void player_select_menu_act(struct Controller* controller, u16 controllerIdx) { s8* bar; s8 selected; s8 i; - s8 saved_selection; + s8 savedSelection; u16 btnAndStick; btnAndStick = (controller->buttonPressed) | (controller->stickPressed); @@ -1505,11 +1530,11 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { btnAndStick |= A_BUTTON; } - if (!func_800B4520()) { - switch (D_8018EDEE) { - case 1: { - saved_selection = gCharacterGridSelections[arg1]; - if (saved_selection == 0) { + if (!is_screen_being_faded()) { + switch (gPlayerSelectMenuSelection) { + case PLAYER_SELECT_MENU_MAIN: { + savedSelection = gCharacterGridSelections[controllerIdx]; + if (savedSelection == 0) { if (btnAndStick & B_BUTTON) { func_8009E208(); play_sound2(0x49008002); @@ -1518,8 +1543,8 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B3630 if (btnAndStick & B_BUTTON) { - if (D_8018EDE8[arg1]) { - D_8018EDE8[arg1] = false; + if (gCharacterGridIsSelected[controllerIdx]) { + gCharacterGridIsSelected[controllerIdx] = false; play_sound2(SOUND_MENU_GO_BACK); } else { func_8009E208(); @@ -1527,16 +1552,15 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } } // L800B3684 - if ((btnAndStick & A_BUTTON) && (D_8018EDE8[arg1] == 0)) { - D_8018EDE8[arg1] = true; - i = D_800F2BAC[gCharacterGridSelections[arg1] - 1]; - func_800C90F4(arg1, 0x2900800e + (i << 4)); + if ((btnAndStick & A_BUTTON) && (gCharacterGridIsSelected[controllerIdx] == 0)) { + gCharacterGridIsSelected[controllerIdx] = true; + i = sCharacterGridOrder[gCharacterGridSelections[controllerIdx] - 1]; + func_800C90F4(controllerIdx, 0x2900800e + (i << 4)); } // L800B36F4 selected = false; - for (i = 0; i < 4; i++) { // for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { - if ((gCharacterGridSelections[i] != 0) && - (D_8018EDE8[i] == 0)) { //(gCharacterGridSelections[i] && D_8018EDE8[i]) { + for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { + if ((gCharacterGridSelections[i] != 0) && (gCharacterGridIsSelected[i] == 0)) { selected = true; break; } @@ -1544,19 +1568,19 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { // L800B3738 if (!selected) { - D_8018EDEE = 2; - func_800B44AC(); + gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_OK; + reset_cycle_flash_menu(); gMenuTimingCounter = 0; } // L800B3768 - if (D_8018EDE8[arg1] == 0) { + if (gCharacterGridIsSelected[controllerIdx] == 0) { if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_DOWN)) { - if (saved_selection == 1 || saved_selection == 2 || saved_selection == 3) { + if (savedSelection == 1 || savedSelection == 2 || savedSelection == 3) { // L800B37B0 - saved_selection += 5; - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + savedSelection += 5; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); } } @@ -1564,10 +1588,10 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B37E4 if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_DOWN)) { - if (saved_selection == 2 || saved_selection == 3 || saved_selection == 4) { - saved_selection += 3; - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (savedSelection == 2 || savedSelection == 3 || savedSelection == 4) { + savedSelection += 3; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); } } @@ -1575,10 +1599,10 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B3844 if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_UP)) { - if (saved_selection == 5 || saved_selection == 6 || saved_selection == 7) { - saved_selection -= 3; - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (savedSelection == 5 || savedSelection == 6 || savedSelection == 7) { + savedSelection -= 3; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); } } @@ -1586,10 +1610,10 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B38A0 if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_UP)) { - if (saved_selection == 6 || saved_selection == 7 || saved_selection == 8) { - saved_selection -= 5; - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (savedSelection == 6 || savedSelection == 7 || savedSelection == 8) { + savedSelection -= 5; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); } } @@ -1597,49 +1621,49 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B38FC if (btnAndStick & CONT_RIGHT) { - if (saved_selection == 4 || saved_selection == 8) + if (savedSelection == 4 || savedSelection == 8) return; - saved_selection += 1; + savedSelection += 1; do { // L800B391C - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); // play_sound2(0x49008000); break; } - saved_selection += 1; - if ((saved_selection == 5) || (saved_selection == 9)) + savedSelection += 1; + if ((savedSelection == 5) || (savedSelection == 9)) return; - } while (saved_selection < 10); + } while (savedSelection < 10); return; } // L800B3978 if (btnAndStick & CONT_LEFT) { - if (saved_selection == 1 || saved_selection == 5) + if (savedSelection == 1 || savedSelection == 5) return; - saved_selection -= 1; + savedSelection -= 1; do { - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); break; } - saved_selection -= 1; - if ((saved_selection == 0) || (saved_selection == 4)) + savedSelection -= 1; + if ((savedSelection == 0) || (savedSelection == 4)) return; - } while (saved_selection >= 0); + } while (savedSelection >= 0); return; } // L800B39F4 - if ((btnAndStick & CONT_UP) && (saved_selection >= 5)) { - saved_selection = saved_selection - 4; + if ((btnAndStick & CONT_UP) && (savedSelection >= 5)) { + savedSelection = savedSelection - 4; } - if ((btnAndStick & CONT_DOWN) && (saved_selection < 5)) { - saved_selection = saved_selection + 4; + if ((btnAndStick & CONT_DOWN) && (savedSelection < 5)) { + savedSelection = savedSelection + 4; } // L800B3A30 - if (is_character_spot_free(saved_selection)) { - gCharacterGridSelections[arg1] = saved_selection; + if (is_character_spot_free(savedSelection)) { + gCharacterGridSelections[controllerIdx] = savedSelection; play_sound2(0x49008000); } } @@ -1647,7 +1671,7 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } case 2: case 3: - if (arg1 == 0) { + if (controllerIdx == 0) { gMenuTimingCounter++; if ((gMenuTimingCounter == 60) || ((gMenuTimingCounter % 300) == 0)) { // L800B3A94 @@ -1656,8 +1680,8 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { } // L800B3AA4 if (btnAndStick & B_BUTTON) { - D_8018EDEE = 1; - D_8018EDE8[arg1] = false; + gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_MAIN; + gCharacterGridIsSelected[controllerIdx] = false; play_sound2(SOUND_MENU_GO_BACK); break; } @@ -1671,8 +1695,8 @@ void player_select_menu_act(struct Controller* controller, u16 arg1) { break; } // L800B3B24 - if (gCharacterGridSelections[arg1] != 0) { - gCharacterSelections[arg1] = D_800F2BAC[gCharacterGridSelections[arg1] - 1]; + if (gCharacterGridSelections[controllerIdx] != 0) { + gCharacterSelections[controllerIdx] = sCharacterGridOrder[gCharacterGridSelections[controllerIdx] - 1]; } } // L800B3B44 @@ -1685,44 +1709,44 @@ u32 WorldNextCup(void); u32 WorldPreviousCup(void); u32 GetCupIndex(void); -// Handle navigating the course menu interface -void course_select_menu_act(struct Controller* arg0, u16 arg1) { - u16 buttonAndStickPress = (arg0->buttonPressed | arg0->stickPressed); +/** + * Navigation of the map select course menu screen + */ +void course_select_menu_act(struct Controller* controller, u16 controllerIdx) { + u16 btnAndStick = (controller->buttonPressed | controller->stickPressed); - if ((!gEnableDebugMode) && ((buttonAndStickPress & START_BUTTON) != 0)) { - buttonAndStickPress |= A_BUTTON; + if ((!gEnableDebugMode) && ((btnAndStick & START_BUTTON) != 0)) { + btnAndStick |= A_BUTTON; } - if (func_800B4520() == 0) { - switch (D_8018EDEC) { - case 1: - if ((buttonAndStickPress & R_JPAD) != 0) { - // if (GetCupIndex() < SPECIAL_CUP) { - D_8018EE0A = WorldNextCup(); + if (is_screen_being_faded() == 0) { + switch (gSubMenuSelection) { + case SUB_MENU_MAP_SELECT_CUP: + if ((btnAndStick & R_JPAD) != 0) { + sTempCupSelection = WorldNextCup(); //++gCupSelection; - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); - //} } - if (((buttonAndStickPress & L_JPAD) != 0)) { - D_8018EE0A = WorldPreviousCup(); + if (((btnAndStick & L_JPAD) != 0)) { + sTempCupSelection = WorldPreviousCup(); //--gCupSelection; - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } D_800DC540 = GetCupIndex(); gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup]; SetCourseFromCup(); - if ((buttonAndStickPress & B_BUTTON) != 0) { + if ((btnAndStick & B_BUTTON) != 0) { func_8009E208(); play_sound2(SOUND_MENU_GO_BACK); - } else if ((buttonAndStickPress & A_BUTTON) != 0) { + } else if ((btnAndStick & A_BUTTON) != 0) { if (gModeSelection != GRAND_PRIX) { - D_8018EDEC = 2; + gSubMenuSelection = SUB_MENU_MAP_SELECT_COURSE; play_sound2(SOUND_MENU_SELECT); } else { - D_8018EDEC = 3; + gSubMenuSelection = SUB_MENU_MAP_SELECT_OK; play_sound2(SOUND_MENU_SELECT); //! @todo SetCourse() to course one; SetCupCursorPosition(COURSE_ONE); @@ -1730,66 +1754,66 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { gCurrentCourseId = gCupCourseOrder[gCupSelection][COURSE_ONE]; gMenuTimingCounter = 0; } - func_800B44AC(); + reset_cycle_flash_menu(); } break; - case 2: - case 4: - if (((buttonAndStickPress & D_JPAD) != 0) && (GetCupCursorPosition() < GetCupSize())) { + case SUB_MENU_MAP_SELECT_COURSE: + case SUB_MENU_MAP_SELECT_BATTLE_COURSE: + if (((btnAndStick & D_JPAD) != 0) && (GetCupCursorPosition() < (GetCupSize() - 1))) { ++gCourseIndexInCup; SetCupCursorPosition(GetCupCursorPosition() + 1); - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } - if (((buttonAndStickPress & U_JPAD) != 0) && (GetCupCursorPosition() > COURSE_ONE)) { + if (((btnAndStick & U_JPAD) != 0) && (GetCupCursorPosition() > COURSE_ONE)) { --gCourseIndexInCup; SetCupCursorPosition(GetCupCursorPosition() - 1); - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_CURSOR_MOVE); } gCurrentCourseId = gCupCourseOrder[gCupSelection][gCourseIndexInCup]; SetCourseFromCup(); - if ((buttonAndStickPress & B_BUTTON) != 0) { - if (D_8018EDEC == 2) { - D_8018EDEC = 1; + if ((btnAndStick & B_BUTTON) != 0) { + if (gSubMenuSelection == SUB_MENU_MAP_SELECT_COURSE) { + gSubMenuSelection = SUB_MENU_MAP_SELECT_CUP; } else { func_8009E208(); } - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_GO_BACK); return; } - if ((buttonAndStickPress & A_BUTTON) != 0) { - D_8018EDEC = 3; + if ((btnAndStick & A_BUTTON) != 0) { + gSubMenuSelection = SUB_MENU_MAP_SELECT_OK; play_sound2(SOUND_MENU_SELECT); - func_800B44AC(); + reset_cycle_flash_menu(); gMenuTimingCounter = 0; } break; - case 3: - if ((arg1 == 0) && ((++gMenuTimingCounter == 0x3C) || ((gMenuTimingCounter % 300) == 0))) { + case SUB_MENU_MAP_SELECT_OK: + if ((controllerIdx == PLAYER_ONE) && ((++gMenuTimingCounter == 0x3C) || ((gMenuTimingCounter % 300) == 0))) { play_sound2(SOUND_MENU_OK); } - if ((buttonAndStickPress & B_BUTTON) != 0) { + if ((btnAndStick & B_BUTTON) != 0) { switch (gModeSelection) { case GRAND_PRIX: - D_8018EDEC = 1; + gSubMenuSelection = SUB_MENU_MAP_SELECT_CUP; break; case BATTLE: - D_8018EDEC = 4; + gSubMenuSelection = SUB_MENU_MAP_SELECT_BATTLE_COURSE; break; default: - D_8018EDEC = 2; + gSubMenuSelection = SUB_MENU_MAP_SELECT_COURSE; break; } - func_800B44AC(); + reset_cycle_flash_menu(); play_sound2(SOUND_MENU_GO_BACK); return; } - if ((buttonAndStickPress & A_BUTTON) != 0) { + if ((btnAndStick & A_BUTTON) != 0) { func_8009E1C0(); func_800CA330(0x19); play_sound2(SOUND_MENU_OK_CLICKED); @@ -1799,17 +1823,20 @@ void course_select_menu_act(struct Controller* arg0, u16 arg1) { } } -void func_800B3F74(s32 menuSelection) { +/** + * Loads menu states so they are preserved between menu changes + */ +void load_menu_states(s32 menuSelection) { s32 i; gDebugMenuSelection = CVarGetInteger("gEnableDebugMode", 0) + 1; gMenuTimingCounter = 0; gMenuDelayTimer = 0; - D_8018EE08 = 0; + gDemoUseController = 0; D_8015F890 = 0; D_8015F892 = 0; gDebugGotoScene = DEBUG_GOTO_RACING; - D_8018EDFB = 0; + gGhostPlayerInit = 0; D_8016556E = 0; D_80162DD4 = 1; D_80162DD8 = 1; @@ -1818,25 +1845,25 @@ void func_800B3F74(s32 menuSelection) { D_80162DCC = 0; switch (menuSelection) { - case 5: - D_8018EDEC = 21; + case OPTIONS_MENU: + gSubMenuSelection = SUB_MENU_OPTION_RETURN_GAME_SELECT; break; - case 6: - D_8018EDEC = 1; + case DATA_MENU: + gSubMenuSelection = SUB_MENU_DATA; break; - case 7: - D_8018EDEC = 11; + case COURSE_DATA_MENU: + gSubMenuSelection = SUB_MENU_DATA_OPTIONS; break; - case 8: + case LOGO_INTRO_MENU: func_800CA008(0, 0); break; - case 9: { + case CONTROLLER_PAK_MENU: { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; func_800CA008(0, 0); break; } case 0: - case 10: { + case START_MENU: { gIsMirrorMode = 0; gEnableDebugMode = CVarGetInteger("gEnableDebugMode", 0); CourseManager_SetCup(GetMushroomCup()); @@ -1849,17 +1876,17 @@ void func_800B3F74(s32 menuSelection) { if (gPlayerCount >= 5) { gPlayerCount = 4; } - D_8018EDF1 = D_800F2BE0[gPlayerCount - 1]; + gScreenModeListIndex = sScreenModeIdxFromPlayerMode[gPlayerCount - 1]; func_800CA008(0, 0); play_sequence(MUSIC_SEQ_TITLE_SCREEN); - D_8018EDFC = 0; + gCourseMapInit = 0; break; } case 1: - case 11: { + case MAIN_MENU: { gEnableDebugMode = CVarGetInteger("gEnableDebugMode", 0); gIsMirrorMode = 0; - D_8018EDFC = 0; + gCourseMapInit = 0; func_800B5F30(); func_8000F0E0(); @@ -1871,9 +1898,9 @@ void func_800B3F74(s32 menuSelection) { play_sequence(MUSIC_SEQ_MAIN_MENU); } - switch (D_8018EDE0) { - case 0: { - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + switch (gMenuFadeType) { + case MENU_FADE_TYPE_MAIN: { + gMainMenuSelection = MAIN_MENU_PLAYER_SELECT; play_sequence(MUSIC_SEQ_MAIN_MENU); gPlayerCount = 1; if (gScreenModeSelection >= NUM_SCREEN_MODES || gScreenModeSelection < 0) { @@ -1881,35 +1908,35 @@ void func_800B3F74(s32 menuSelection) { } break; } - case 1: { - gMainMenuSelectionDepth = CONFIRM_OK_SELECTION_FROM_BACK_OUT; + case MENU_FADE_TYPE_BACK: { + gMainMenuSelection = MAIN_MENU_OK_SELECT_GO_BACK; break; } - case 3: { + case MENU_FADE_TYPE_DATA: { // why... - switch (gMainMenuSelectionDepth) { + switch (gMainMenuSelection) { default: - gMainMenuSelectionDepth = TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT; + gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT_GO_BACK; break; - case OPTIONS_SELECTION: - case DATA_SELECTION: - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + case MAIN_MENU_OPTION: + case MAIN_MENU_DATA: + gMainMenuSelection = MAIN_MENU_PLAYER_SELECT; break; } break; } - case 4: { - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + case MENU_FADE_TYPE_OPTION: { + gMainMenuSelection = MAIN_MENU_PLAYER_SELECT; break; } } break; } case 2: - case 12: { - switch (D_8018EDE0) { - case 0: { - D_8018EDEE = 1; + case CHARACTER_SELECT_MENU: { + switch (gMenuFadeType) { + case MENU_FADE_TYPE_MAIN: { + gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_MAIN; if (gGamestate == 0) { for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { if (i < gPlayerCount) { @@ -1917,7 +1944,7 @@ void func_800B3F74(s32 menuSelection) { } else { gCharacterGridSelections[i] = 0; } - D_8018EDE8[i] = false; + gCharacterGridIsSelected[i] = false; gCharacterSelections[i] = i; } play_sound2(SOUND_MENU_SELECT_PLAYER); @@ -1927,19 +1954,19 @@ void func_800B3F74(s32 menuSelection) { gGamestate = 0; gGamestateNext = 0; play_sequence(MUSIC_SEQ_MAIN_MENU); - for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { - D_8018EDE8[i] = false; + for (i = 0; i < ARRAY_COUNT(gCharacterGridIsSelected); i++) { + gCharacterGridIsSelected[i] = false; } } break; } - case 1: { - D_8018EDEE = 3; - for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { + case MENU_FADE_TYPE_BACK: { + gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_OK_GO_BACK; + for (i = 0; i < ARRAY_COUNT(gCharacterGridIsSelected); i++) { if (gPlayerCount > i) { - D_8018EDE8[i] = true; + gCharacterGridIsSelected[i] = true; } else { - D_8018EDE8[i] = false; + gCharacterGridIsSelected[i] = false; } } break; @@ -1948,18 +1975,18 @@ void func_800B3F74(s32 menuSelection) { break; } case 3: - case 13: { + case COURSE_SELECT_MENU: { if (gModeSelection == BATTLE) { CourseManager_SetCup(GetBattleCup()); // gCupSelection = BATTLE_CUP; D_800DC540 = 4; - D_8018EDEC = 4; + gSubMenuSelection = SUB_MENU_MAP_SELECT_BATTLE_COURSE; } else { if (GetCup() == GetBattleCup()) { CourseManager_SetCup(GetMushroomCup()); // gCupSelection = MUSHROOM_CUP; } - D_8018EDEC = 1; + gSubMenuSelection = SUB_MENU_MAP_SELECT_CUP; } if (gGamestate != 0) { func_800CA008(0, 0); @@ -1969,7 +1996,7 @@ void func_800B3F74(s32 menuSelection) { play_sequence(MUSIC_SEQ_MAIN_MENU); } play_sound2(SOUND_MENU_SELECT_MAP); - D_8018EE0A = 0; + sTempCupSelection = 0; if (gModeSelection == GRAND_PRIX) { gCourseIndexInCup = 0; } @@ -1980,35 +2007,46 @@ void func_800B3F74(s32 menuSelection) { break; } } - func_800B44AC(); + reset_cycle_flash_menu(); } -void func_800B44AC(void) { +/** + * Resets when moving cursor option or after a fade + */ +void reset_cycle_flash_menu(void) { gCycleFlashMenu = 0x20; } -void func_800B44BC(void) { +/** + * Changes sound mode pack + */ +void set_sound_mode(void) { UNUSED u32 pad; union GameModePack pack; - pack = gSoundMenuPack; + pack = sSoundMenuPack; if ((gSoundMode == SOUND_STEREO) || (gSoundMode == SOUND_HEADPHONES) || (gSoundMode == SOUND_MONO)) { func_800C3448(pack.modes[gSoundMode] | 0xE0000000); } } -// Likely checks that the user is actually in the menus and not racing. -bool func_800B4520(void) { - +/** + * Checks is a fade render mode is active so menus can't be + * interacted while a fade transition is active + */ +bool is_screen_being_faded(void) { if ((D_8018E7AC[4] == 2) || (D_8018E7AC[4] == 3) || (D_8018E7AC[4] == 4) || (D_8018E7AC[4] == 7)) { return true; } return false; } -UNUSED void func_800B4560(s32 arg0, s32 arg1) { +/** + * Unused debug function, prints the character id for the player and both controller pak ghosts + */ +UNUSED void debug_print_ghost_kart_character_id(s32 arg0, s32 arg1) { struct_8018EE10_entry* pak1 = D_8018EE10; - struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) D_8018D9C0; + struct_8018EE10_entry* pak2 = (struct_8018EE10_entry*) gSomeDLBuffer; rmonPrintf("ghost_kart=%d,", D_80162DE0); rmonPrintf("pak1_ghost_kart=%d,", (pak1 + arg0)->characterId); diff --git a/src/menus.h b/src/menus.h index 6e3ef6d6b..1e82ec8d0 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 @@ -14,6 +14,185 @@ union GameModePack { s32 word; }; +/** + * @brief Options for gMenuFadeType + */ +enum MenuFadeTypes { + MENU_FADE_TYPE_MAIN, + MENU_FADE_TYPE_BACK, + MENU_FADE_TYPE_DEMO, + MENU_FADE_TYPE_DATA, + MENU_FADE_TYPE_OPTION, + MENU_FADE_TYPE_MAX +}; + +/** + * @brief Options for gSubMenuSelection + */ +enum SubMenuSelectionType { + SUB_MENU_NONE, + SUB_MENU_DATA, // 0x01, value repurposed in map select + SUB_MENU_MAP_SELECT_CUP = 0x01, + SUB_MENU_MAP_SELECT_COURSE, + SUB_MENU_MAP_SELECT_OK, + SUB_MENU_MAP_SELECT_BATTLE_COURSE, + SUB_MENU_DATA_OPTIONS = 0x0B, + SUB_MENU_DATA_ERASE_CONFIRM, + SUB_MENU_DATA_CANT_ERASE, + SUB_MENU_OPTION_MIN = 0x15, + SUB_MENU_OPTION_RETURN_GAME_SELECT = SUB_MENU_OPTION_MIN, + SUB_MENU_OPTION_SOUND_MODE, + SUB_MENU_OPTION_COPY_CONTROLLER_PAK, + SUB_MENU_OPTION_ERASE_ALL_DATA, + SUB_MENU_OPTION_MAX = SUB_MENU_OPTION_ERASE_ALL_DATA, // 0x18 + SUB_MENU_ERASE_MIN = 0x1E, + SUB_MENU_ERASE_QUIT = SUB_MENU_ERASE_MIN, + SUB_MENU_ERASE_ERASE, + SUB_MENU_ERASE_MAX = SUB_MENU_ERASE_ERASE, // 0x1F + SUB_MENU_SAVE_DATA_ERASED, // 0x20 + SUB_MENU_COPY_PAK_FROM_GHOST_MIN = 0x28, + SUB_MENU_COPY_PAK_FROM_GHOST1_1P = SUB_MENU_COPY_PAK_FROM_GHOST_MIN, + SUB_MENU_COPY_PAK_FROM_GHOST2_1P, + SUB_MENU_COPY_PAK_FROM_GHOST_MAX = SUB_MENU_COPY_PAK_FROM_GHOST2_1P, // 0x29 + SUB_MENU_COPY_PAK_ERROR_2P_MIN, // 0x2A + SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA = SUB_MENU_COPY_PAK_ERROR_2P_MIN, + SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA, + SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P, + SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P, + SUB_MENU_COPY_PAK_ERROR_2P_MAX = SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P, // 0x2D + SUB_MENU_COPY_PAK_TO_GHOST_MIN = 0x32, + SUB_MENU_COPY_PAK_TO_GHOST1_2P = SUB_MENU_COPY_PAK_TO_GHOST_MIN, + SUB_MENU_COPY_PAK_TO_GHOST2_2P, + SUB_MENU_COPY_PAK_TO_GHOST_MAX = SUB_MENU_COPY_PAK_TO_GHOST2_2P, // 0x33 + SUB_MENU_COPY_PAK_ERROR_1P_MIN, + SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P = SUB_MENU_COPY_PAK_ERROR_1P_MIN, // 0x34 + SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P, + SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P, + SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P, + SUB_MENU_COPY_PAK_ERROR_1P_MAX, + SUB_MENU_COPY_PAK_PROMPT_MIN = SUB_MENU_COPY_PAK_ERROR_1P_MAX, // 0x38 + SUB_MENU_COPY_PAK_PROMPT_QUIT = SUB_MENU_COPY_PAK_PROMPT_MIN, + SUB_MENU_COPY_PAK_PROMPT_COPY, + SUB_MENU_COPY_PAK_PROMPT_MAX = SUB_MENU_COPY_PAK_PROMPT_COPY, // 0x39 + SUB_MENU_COPY_PAK_ACTION_MIN, + SUB_MENU_COPY_PAK_START = SUB_MENU_COPY_PAK_ACTION_MIN, // 0x3A + SUB_MENU_COPY_PAK_COPYING, + SUB_MENU_COPY_PAK_COMPLETED, + SUB_MENU_COPY_PAK_ACTION_MAX = SUB_MENU_COPY_PAK_COMPLETED, // 0x3C + SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN = 0x41, + SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P = SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN, + SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P, + SUB_MENU_COPY_PAK_UNABLE_ERROR_MAX = SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P, + SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT = 0x46, + SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE +}; + +/** + * @brief Options for gMainMenuSelection + */ +enum MainMenuSelectionType { + MAIN_MENU_NONE, + MAIN_MENU_OPTION, + MAIN_MENU_DATA, + MAIN_MENU_PLAYER_SELECT, + MAIN_MENU_MODE_SELECT, // Mario GP - T. Trials - VS - Battle + MAIN_MENU_MODE_SUB_SELECT, // CC Selection and T.Trials options (Begin, Data) + MAIN_MENU_OK_SELECT, // OK option after selecting a submode + MAIN_MENU_OK_SELECT_GO_BACK, // OK option after going back from player select + MAIN_MENU_MODE_SUB_SELECT_GO_BACK // Used in T.Trials after going back to Data option from course data +}; + +/** + * @brief Options for gPlayerSelectMenuSelection + */ +enum PlayerSelectMenuSelectionTypes { + PLAYER_SELECT_MENU_NONE, + PLAYER_SELECT_MENU_MAIN, + PLAYER_SELECT_MENU_OK, // OK option after selecting characters + PLAYER_SELECT_MENU_OK_GO_BACK // OK option after going back from map select +}; + +/** + * @brief Options for gDebugMenuSelection + */ +enum DebugMenuSelectionTypes { + DEBUG_MENU_NONE, + DEBUG_MENU_DISABLED, + DEBUG_MENU_DEBUG_MODE, + DEBUG_MENU_COURSE, + DEBUG_MENU_SCREEN_MODE, + DEBUG_MENU_PLAYER, + DEBUG_MENU_SOUND_MODE, + DEBUG_MENU_GIVE_ALL_GOLD_CUP, + DEBUG_MENU_OPTION_SELECTED = 0x40 +}; + +/** + * @brief Options for gControllerPakMenuSelection + */ +enum ControllerPakMenuSelectionTypes { + CONTROLLER_PAK_MENU_NONE, + CONTROLLER_PAK_MENU_SELECT_RECORD, + CONTROLLER_PAK_MENU_END, + CONTROLLER_PAK_MENU_ERASE, + CONTROLLER_PAK_MENU_QUIT, + CONTROLLER_PAK_MENU_TABLE_GAME_DATA, + CONTROLLER_PAK_MENU_GO_TO_ERASING, + CONTROLLER_PAK_MENU_ERASING, + CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED, + CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK, + CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED +}; + +/** + * @brief Options for gCourseRecordsMenuSelection + */ +enum CourseRecordsMenuSelectionTypes { + COURSE_RECORDS_MENU_MIN, + COURSE_RECORDS_MENU_RETURN_MENU = COURSE_RECORDS_MENU_MIN, + COURSE_RECORDS_MENU_ERASE_RECORDS, + COURSE_RECORDS_MENU_ERASE_GHOST, + COURSE_RECORDS_MENU_MAX = COURSE_RECORDS_MENU_ERASE_GHOST +}; + +/** + * @brief Options for gCourseRecordsSubMenuSelection + */ +enum CourseRecordsSubMenuSelectionTypes { + COURSE_RECORDS_SUB_MENU_MIN, + COURSE_RECORDS_SUB_MENU_QUIT = COURSE_RECORDS_SUB_MENU_MIN, + COURSE_RECORDS_SUB_MENU_ERASE, + COURSE_RECORDS_SUB_MENU_MAX = COURSE_RECORDS_SUB_MENU_ERASE +}; + +/** + * @brief Options for gDebugGotoScene + */ +enum DebugGotoSceneTypes { + DEBUG_GOTO_RACING, + DEBUG_GOTO_ENDING, + DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT, + DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA +}; + +/** + * @brief Options for gFadeModeSelection + */ +enum FadeModeSelectionTypes { + FADE_MODE_NONE, + FADE_MODE_MAIN, + FADE_MODE_LOGO +}; + +/** + * @brief Options for gControllerPakScrollDirection + */ +enum ControllerPakScrollDirectionTypes { + CONTROLLER_PAK_SCROLL_DIR_NONE, + CONTROLLER_PAK_SCROLL_DIR_DOWN, + CONTROLLER_PAK_SCROLL_DIR_UP +}; + // This really, really shouldn't be in this header file, but I don't know where else to put it void rmonPrintf(const char*, ...); @@ -25,78 +204,77 @@ void course_data_menu_act(struct Controller*, u16); void logo_intro_menu_act(struct Controller*, u16); void controller_pak_menu_act(struct Controller*, u16); void splash_menu_act(struct Controller*, u16); -void func_800B28C8(void); +void setup_game_mode_selected(void); void main_menu_act(struct Controller*, u16); bool is_character_spot_free(s32); void player_select_menu_act(struct Controller* controller, u16 arg1); void course_select_menu_act(struct Controller*, u16); -void func_800B3F74(s32); -void func_800B44AC(void); -void func_800B44BC(void); -bool func_800B4520(void); +void load_menu_states(s32); +void reset_cycle_flash_menu(void); +void set_sound_mode(void); +bool is_screen_being_faded(void); /* data */ -extern s32 D_8018EDC0; -extern f32 D_8018EDC4; -extern f32 D_8018EDC8; -extern f32 D_8018EDCC; -extern f32 D_8018EDD0; -extern f32 D_8018EDD4; -extern f32 D_8018EDD8; -extern f32 D_8018EDDC; -extern s32 D_8018EDE0; +extern s32 gIntroModelZEye; +extern f32 gIntroModelScale; +extern f32 gIntroModelRotX; +extern f32 gIntroModelRotY; +extern f32 gIntroModelRotZ; +extern f32 gIntroModelPosX; +extern f32 gIntroModelPosY; +extern f32 gIntroModelPosZ; +extern s32 gMenuFadeType; extern s8 gCharacterGridSelections[]; -extern s8 D_8018EDE8[]; -extern s8 D_8018EDEC; -extern s8 gMainMenuSelectionDepth; -extern s8 D_8018EDEE; +extern s8 gCharacterGridIsSelected[]; +extern s8 gSubMenuSelection; +extern s8 gMainMenuSelection; +extern s8 gPlayerSelectMenuSelection; extern s8 gDebugMenuSelection; extern s8 gControllerPakMenuSelection; -extern s8 D_8018EDF1; +extern s8 gScreenModeListIndex; extern u8 gSoundMode; extern s8 gPlayerCount; -extern s8 D_8018EDF4; -extern s8 D_8018EDF5; -extern s8 D_8018EDF6; +extern s8 gVersusResultCursorSelection; +extern s8 gTimeTrialsResultCursorSelection; +extern s8 gBattleResultCursorSelection; extern s8 gTimeTrialDataCourseIndex; extern s8 gCourseRecordsMenuSelection; -extern s8 D_8018EDF9; +extern s8 gCourseRecordsSubMenuSelection; extern s8 gDebugGotoScene; -extern s8 D_8018EDFB; -extern s8 D_8018EDFC; +extern s8 gGhostPlayerInit; +extern s8 gCourseMapInit; extern s32 gMenuTimingCounter; extern s32 gMenuDelayTimer; -extern s8 D_8018EE08; +extern s8 gDemoUseController; extern s8 gCupSelection; -extern s8 D_8018EE0A; +extern s8 sTempCupSelection; extern s8 gCourseIndexInCup; -extern s8 D_8018EE0C; -extern struct_8018EE10_entry D_8018EE10[]; +extern s8 unref_D_8018EE0C; extern s32 gMenuSelection; // D_800E86A0 -extern s32 D_800E86A4; +extern s32 gFadeModeSelection; extern s8 gCharacterSelections[]; -extern s8 D_800E86AC[]; -extern s8 D_800E86B0[4][3]; +extern s8 gGameModeMenuColumn[]; +extern s8 gGameModeSubMenuColumn[4][3]; extern s8 gNextDemoId; extern s8 gControllerPakSelectedTableRow; -extern s8 D_800E86C4[]; -extern s8 D_800E86D0[]; -extern s8 unref_800E86E0[]; +extern s8 gControllerPakVisibleTableRows[]; +extern s8 gControllerPakScrollDirection; +extern s8 unref_D_800E86D4[]; extern u32 sVIGammaOffDitherOn; -extern const s8 D_800F2B50[5]; -extern const s8 D_800F2B58[5]; +extern const s8 sScreenModePlayerTable[5]; +extern const s8 sScreenModePlayerCount[5]; extern const s8 gPlayerModeSelection[]; -extern const s8 gGameModePlayerColumnDefault[][3]; -extern const s8 gGameModePlayerColumnExtra[][3]; +extern const s8 sGameModePlayerColumnDefault[][3]; +extern const s8 sGameModePlayerColumnExtra[][3]; extern const s32 gGameModePlayerSelection[][3]; -extern const s8 D_800F2BAC[8]; +extern const s8 sCharacterGridOrder[8]; extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP]; -extern const union GameModePack gSoundMenuPack; +extern const union GameModePack sSoundMenuPack; // end of menus.c variables diff --git a/src/networking/start_game.c b/src/networking/start_game.c index ab2cc4e28..4c0f3568b 100644 --- a/src/networking/start_game.c +++ b/src/networking/start_game.c @@ -6,7 +6,7 @@ #include "code_800029B0.h" #include "menus.h" #include "audio/external.h" -#include "code_80091750.h" +#include "menu_items.h" #include "port/Game.h" // PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_HUMAN @@ -129,7 +129,7 @@ void networking_start_session(const char* data) { gModeSelection = GRAND_PRIX; gPlayerCount = 1; // gCurrentCourseId = 8; - gDebugMenuSelection = DEBUG_MENU_EXITED; + gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED; func_8009E1C0(); func_800CA330(0x19); } diff --git a/src/racing/actors_extended.c b/src/racing/actors_extended.c index 0e11b2961..b25d5bf04 100644 --- a/src/racing/actors_extended.c +++ b/src/racing/actors_extended.c @@ -7,7 +7,7 @@ #include "memory.h" #include "waypoints.h" #include "code_80005FD0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "collision.h" #include "actors.h" #include "actors_extended.h" diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c index 655a8093b..a65ff4c85 100644 --- a/src/racing/race_logic.c +++ b/src/racing/race_logic.c @@ -11,7 +11,7 @@ #include "code_800029B0.h" #include "code_80057C60.h" #include "update_objects.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_80005FD0.h" #include "spawn_players.h" #include "audio/external.h" @@ -853,7 +853,7 @@ void func_8028FCBC(void) { s32 i; u32 phi_v0_4; - if (D_8018EE08) { + if (gDemoUseController) { func_8028FC34(); } switch (D_800DC510) { diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c index a5ab4f3bf..e81ef92b0 100644 --- a/src/racing/skybox_and_splitscreen.c +++ b/src/racing/skybox_and_splitscreen.c @@ -11,7 +11,7 @@ #include #include "render_player.h" #include "code_80057C60.h" -#include "code_80091750.h" +#include "menu_items.h" #include "actors.h" #include "render_courses.h" #include "math_util.h" @@ -131,7 +131,7 @@ void func_802A38B4(void) { gGamestate = 255; gIsInQuitToMenuTransition = 0; gQuitToMenuTransitionCounter = 0; - D_800E86A4 = 1; + gFadeModeSelection = 1; switch (gGotoMode) { case START_MENU_FROM_QUIT: diff --git a/src/render_objects.c b/src/render_objects.c index 0571da4ce..749e88fc2 100644 --- a/src/render_objects.c +++ b/src/render_objects.c @@ -26,7 +26,7 @@ #include "code_8006E9C0.h" #include "render_objects.h" #include "update_objects.h" -#include "code_80091750.h" +#include "menu_items.h" #include "collision.h" #include "main.h" #include "menus.h" @@ -1535,7 +1535,7 @@ void func_8004B72C(s32 primRed, s32 primGreen, s32 primBlue, s32 envRed, s32 env PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); } -void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) { +void render_texture_rectangle(s32 x, s32 y, s32 width, s32 height, s32 s, s32 w, s32 mode) { s32 xh = (((x + width) - 1) << 2); s32 yh = (((y + height) - 1) << 2); @@ -1545,17 +1545,19 @@ void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 s32 xh2 = (((x + width)) << 2); s32 yh2 = ((y + height) << 2); - if (arg6 == 0) { + // If no cycle mode is set, render texture rectangle in copy mode + if (mode == 0) { //! @todo Update to F3DEX. Uses OLD definition for gspTextureRectangle. - gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 4 << 10, + gSPTextureRectangle(gDisplayListHead++, xl, yl, xh, yh, G_TX_RENDERTILE, s << 5, (w << 5), 4 << 10, 1 << 10); return; } - gSPTextureRectangle(gDisplayListHead++, xl, yl, xh2, yh2, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 1 << 10, + // Render texture rectangle in default cycle mode (1 cycle or 2 cycle) + gSPTextureRectangle(gDisplayListHead++, xl, yl, xh2, yh2, G_TX_RENDERTILE, s << 5, (w << 5), 1 << 10, 1 << 10); } -void func_8004B7DC_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) { +void render_texture_rectangle_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) { s32 xh = (((x + width) - 1)); s32 yh = (((y + height) - 1) << 2); @@ -1604,8 +1606,9 @@ void func_8004B7DC_wide(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, // 1 << 10); } -void func_8004B950(s32 x, s32 y, s32 width, s32 height, s32 arg4) { - func_8004B7DC(x, y, width, height, 0, 0, arg4); +void render_texture_rectangle_wrap(s32 x, s32 y, s32 width, s32 height, s32 mode) { + // (0, 0) means texture coordinates will be rendered from the top left corner + render_texture_rectangle(x, y, width, height, 0, 0, mode); } // Positions item window, the Lap 1/2/3, TIME texture, and minimap on the screen. @@ -1629,7 +1632,7 @@ void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { var_v0 = -arg1; var_a1 = 0; } - func_8004B7DC(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4); + render_texture_rectangle(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4); } } @@ -1653,7 +1656,7 @@ void func_8004B97C_wide(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { var_v0 = -arg1; var_a1 = 0; } - func_8004B7DC_wide(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4); + render_texture_rectangle_wide(sp2C, var_a1, arg2 - var_v1, arg3 - var_v0, var_v1, var_v0, arg4); } } @@ -1677,7 +1680,7 @@ void func_8004BA08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { phi_v0 = -arg1; phi_a1 = 0; } - func_8004B7DC(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1 + arg2, phi_v0, arg4); + render_texture_rectangle(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1 + arg2, phi_v0, arg4); } } @@ -1708,7 +1711,7 @@ void func_8004BA98(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s sp30 = 0; phi_a3 = arg3 + arg1; } - func_8004B7DC_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6); + render_texture_rectangle_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6); } } @@ -1738,7 +1741,7 @@ void func_8004BA98_wide(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 ar sp30 = 0; phi_a3 = arg3 + arg1; } - func_8004B7DC_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6); + render_texture_rectangle_wide(sp34, sp30, sp2C, phi_a3, phi_v0, phi_v1, arg6); } } @@ -1793,7 +1796,7 @@ UNUSED void func_8004BD14(s32 x, s32 y, u32 width, u32 height, s32 alpha, u8* te gDPLoadMultiTile(gDisplayListHead++, texture2, 256, G_TX_RENDERTILE + 1, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height, 0, 0, width - 1, height - 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - func_8004B950(x, y, width, height, 2); + render_texture_rectangle_wrap(x, y, width, height, 2); gSPDisplayList(gDisplayListHead++, D_0D008120); } @@ -1879,56 +1882,52 @@ void func_8004C628(s32 arg0, s32 arg1, u32 arg2, u32 arg3, u8* texture) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -#ifdef NON_MATCHING -// https://decomp.me/scratch/TqXqn -// There's a weird fakematch concerning `athing`, don't know that to make of. Can't quite get it over the finish line -// though -void func_8004C6FC(s16 arg0, s16 arg1, u8* texture, u32 width, u32 arg4) { - s32 temp_v0_3; - s32 var_s3; - s32 var_s4; - s32 athing; - s32 temp_t3; - u32 temp_t8; - s32 heigth; - s32 var_s6; - u8* textureCopy; +// non-matching +void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32 height) { + s32 remainingSize; + s32 currX; + s32 currY; + u32 size; + s32 tileHeight; + s32 numTiles; + s32 numTilesDup; + + currX = x - (width / 2); + currY = y - (height / 2); - athing = arg0 - (width / 2); - var_s4 = arg1 - (arg4 / 2); - textureCopy = texture; gSPDisplayList(gDisplayListHead++, D_0D007EF8); gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - temp_t8 = width * arg4 * 4; - temp_t3 = temp_t8 / 4096; - if (temp_t8 % 4096) { - temp_t3++; + + size = width * height * 4; + numTiles = size / 4096; + if (size % 4096) { + numTiles++; } - heigth = arg4 / temp_t3; - var_s6 = temp_t3; - for (var_s3 = 0; var_s3 < var_s6; var_s3++) { - load_texture_tile_rgba32_nomirror(textureCopy, width, heigth); - func_8004B950(athing, var_s4, width, heigth, 1); - temp_v0_3 = temp_t8 - (width * heigth * 4); - textureCopy += (width * heigth * 4); - if (temp_v0_3 < 0) { - heigth = temp_t8 / width; + + tileHeight = height / numTiles; + + numTilesDup = numTiles; + for (size_t i = 0; i < numTilesDup; i++) { + load_texture_tile_rgba32_nomirror(texture, width, tileHeight); + render_texture_rectangle_wrap(currX, currY, width, tileHeight, 1); + + texture += (width * tileHeight * 4); + remainingSize = size - (width * tileHeight * 4); + if (remainingSize < 0) { + tileHeight = size / width; } else { - temp_t8 = temp_v0_3; + size -= (width * tileHeight * 4); } // Weird fakematch that is a HUGE improvement - athing += var_s4 * 0; - var_s4 += heigth; + currX += currY * 0; + currY += tileHeight; } gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -#else -GLOBAL_ASM("asm/non_matchings/render_objects/func_8004C6FC.s") -#endif -void func_8004C8D4(s16 arg0, s16 arg1) { - func_8004C6FC(arg0, arg1, D_8018D1E0, 0x100, 0x80); +void render_game_logo(s16 x, s16 y) { + render_texture_tile_rgba32_block(x, y, LOAD_ASSET(gTextureLogoMarioKart64), ResourceGetTexWidthByName(gTextureLogoMarioKart64), ResourceGetTexHeightByName(gTextureLogoMarioKart64)); } UNUSED void func_8004C91C(s32 arg0, s32 arg1, u8* texture, s32 arg3, s32 arg4, s32 arg5) { @@ -4242,7 +4241,7 @@ UNUSED void func_800573DC(void) { } void func_800573E4(s32 x, s32 y, s8 str) { - func_8004B7DC(x, y, 8, 8, (((str % 16) * 8) << 16) >> 16, (((unsigned short) (str / 16)) << 19) >> 16, 0); + render_texture_rectangle(x, y, 8, 8, (((str % 16) * 8) << 16) >> 16, (((unsigned short) (str / 16)) << 19) >> 16, 0); } void debug_wrap_text(s32* x, s32* y) { diff --git a/src/render_objects.h b/src/render_objects.h index 6474e8db2..61ec7d80b 100644 --- a/src/render_objects.h +++ b/src/render_objects.h @@ -206,12 +206,12 @@ void func_8004B5A8(s32, s32, s32, s32); void func_8004B614(s32, s32, s32, s32, s32, s32, s32); void func_8004B6C4(s32, s32, s32); void func_8004B72C(s32, s32, s32, s32, s32, s32, s32); -void func_8004B950(s32, s32, s32, s32, s32); +void render_texture_rectangle_wrap(s32, s32, s32, s32, s32); void func_8004BB34(void); void func_8004BB3C(s32, s32, s32, s32, f32); void func_8004BD14(s32, s32, u32, u32, s32, u8*, u8*); -void func_8004C6FC(s16, s16, u8*, u32, u32); +void render_texture_tile_rgba32_block(s16, s16, u8*, u32, u32); void func_8004C024(s16, s16, s16, u16, u16, u16, u16); void func_8004C148(s16, s16, s16, u16, u16, u16, u16); @@ -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); diff --git a/src/save.c b/src/save.c index 82d3ea2e5..9c5a7e698 100644 --- a/src/save.c +++ b/src/save.c @@ -5,7 +5,7 @@ #include "save.h" -#include "code_80091750.h" +#include "menu_items.h" #include "menus.h" #include "save_data.h" #include "staff_ghosts.h" @@ -19,6 +19,9 @@ // very fragile! #define EEPROM_ADDR(ptr) (((uintptr_t) (ptr) - (uintptr_t) (&gSaveData)) / 8) +/** BSS **/ +struct_8018EE10_entry D_8018EE10[2]; + /*** data ***/ u16 gCompanyCode = PFS_COMPANY_CODE('0', '1'); u32 gGameCode = PFS_GAME_CODE('N', 'K', 'T', 'J'); @@ -93,7 +96,7 @@ void reset_save_data_grand_prix_points_and_sound_mode(void) { } main->saveInfo.soundMode = SOUND_STEREO; gSoundMode = SOUND_STEREO; - func_800B44BC(); + set_sound_mode(); write_save_data_grand_prix_points_and_sound_mode(); } @@ -425,21 +428,21 @@ u8 func_800B5508(s32 cup, s32 ccGrandPrixPoints, s32 points_scored) { // Check if all 4 cups have gold cups scored // for a given CC mode -s32 func_800B5530(s32 cc_mode) { +s32 is_cc_mode_complete(s32 cc_mode) { if (gSaveData.main.saveInfo.grandPrixPoints[cc_mode] == 0xFF) { - return 1; + return true; } - return 0; + return false; } // Check if the 150CC mode has all 4 gold cups s32 has_unlocked_extra_mode(void) { - return func_800B5530(CC_150); + return is_cc_mode_complete(CC_150); } // Check if the Extra mode has all 4 gold cups s32 has_completed_extra_mode(void) { - return func_800B5530(CC_EXTRA); + return is_cc_mode_complete(CC_EXTRA); } void func_800B559C(s32 arg0) { @@ -911,7 +914,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) { writeStatus = osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, 0U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8*) D_800DC714); if (writeStatus == 0) { - temp_s3 = &((struct_8018EE10_entry*) D_8018D9C0)[arg0]; + temp_s3 = &((struct_8018EE10_entry*) gSomeDLBuffer)[arg0]; for (i = 0; i < 0x3C; i++) { if (temp_s3->unk_07[i] != func_800B60E8(i)) { temp_s3->ghostDataSaved = 0; @@ -942,14 +945,14 @@ void func_800B6798(void) { s32 temp_s0; u8* tmp; - tmp = (u8*) D_8018D9C0; + tmp = (u8*) gSomeDLBuffer; osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp); for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) { - // if (D_8018D9C0[temp_s0]->checksum != func_800B68F4(temp_s0)) { - // D_8018D9C0[temp_s0]->ghostDataSaved = 0; + // if (gSomeDLBuffer[temp_s0]->checksum != func_800B68F4(temp_s0)) { + // gSomeDLBuffer[temp_s0]->ghostDataSaved = 0; // } if (((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->checksum != func_800B68F4(temp_s0)) { ((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->ghostDataSaved = 0; @@ -974,7 +977,7 @@ u8 func_800B68F4(s32 arg0) { s32 i; checksum = 0; for (i = 0; i < 0x43; i++) { - u8* addr = &((u8*) D_8018D9C0)[arg0]; + u8* addr = &((u8*) gSomeDLBuffer)[arg0]; checksum += addr[i] * multiplier + i; } return checksum; diff --git a/src/save.h b/src/save.h index 090d16704..8983a9677 100644 --- a/src/save.h +++ b/src/save.h @@ -14,6 +14,7 @@ #define PFS_NO_ERROR 0 // controller pak no error return #define PFS_NO_PAK_INSERTED 1 // no pak pressent or wrong device inserted into the controller #define PFS_PAK_BAD_READ 2 // controller pak error while data transfer +#define PFS_PAK_CORRUPTED 3 // controller pak has courrupted or has weird data #define PFS_FILE_OVERFLOW 4 // too many files written to in the controller pak #define PFS_INVALID_DATA -1 // bad arguments, game note does not exist, osPfsInit was not called. // controller pak test functions @@ -54,7 +55,7 @@ void func_800B5404(s32, s32); u8 func_800B54C0(s32, s32); u8 func_800B54EC(s32, s32); u8 func_800B5508(s32, s32, s32); -s32 func_800B5530(s32); +s32 is_cc_mode_complete(s32); s32 has_unlocked_extra_mode(void); s32 has_completed_extra_mode(void); void func_800B559C(s32); @@ -87,6 +88,7 @@ s32 func_800B6A68(void); // these might not be in this file, but for now... extern u32* D_800DC714; +extern struct_8018EE10_entry D_8018EE10[]; extern u16 gCompanyCode; extern u32 gGameCode; // osPfs gamecode diff --git a/src/spawn_players.c b/src/spawn_players.c index c4d792637..20fdc9b67 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -23,7 +23,7 @@ #include "main.h" #include "menus.h" #include "render_player.h" -#include "code_80091750.h" +#include "menu_items.h" #include "effects.h" #include "decode.h" #include "port/Game.h" @@ -488,7 +488,7 @@ void func_80039DA4(void) { }; if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) || - (gDebugMenuSelection == DEBUG_MENU_EXITED)) { + (gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) { for (i = 0; i < NUM_PLAYERS; i++) { D_80165270[i] = sp2C[i]; } @@ -506,7 +506,7 @@ UNUSED s16 D_800E43A8 = 0; void spawn_players_gp_one_player(f32* arg0, f32* arg1, f32 arg2) { func_80039DA4(); if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) || - (gDebugMenuSelection == DEBUG_MENU_EXITED)) { + (gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) { s16 rand; s16 i; @@ -639,7 +639,7 @@ void spawn_players_versus_one_player(f32* arg0, f32* arg1, f32 arg2) { void spawn_players_gp_two_player(f32* arg0, f32* arg1, f32 arg2) { func_80039DA4(); - if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_EXITED)) { + if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) { s16 rand; s16 i; diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c index e04525e81..f8e7a69bb 100644 --- a/src/staff_ghosts.c +++ b/src/staff_ghosts.c @@ -11,7 +11,7 @@ #include "save.h" #include "staff_ghosts.h" #include "code_8006E9C0.h" -#include "code_80091750.h" +#include "menu_items.h" #include "code_80057C60.h" #include "kart_dma.h" #include "port/Game.h" diff --git a/src/textures.h b/src/textures.h index 7536c07c9..64a9774a6 100644 --- a/src/textures.h +++ b/src/textures.h @@ -13,218 +13,216 @@ * */ typedef struct { - /* 0x00 */ s16 type; - /* 0x02 */ s16 unused1; + /* 0x00 */ s32 type; /* 0x04 */ u64* textureData; // This should be interpreted as a segmented address /* 0x08 */ u16 width; /* 0x0A */ u16 height; /* 0x0C */ u16 dX; /* 0x0E */ u16 dY; /* 0x10 */ u16 size; // This size is NOT equal to width*height. Its likely the size of the compressed texture - /* 0x12 */ s16 unused2; -} MkTexture; // size = 0x14 +} MenuTexture; // size = 0x14 /** * @brief struct for an animation * */ typedef struct { - /* 0x00 */ MkTexture* mk64Texture; // This should be interpreted as a segmented address + /* 0x00 */ MenuTexture* mk64Texture; // This should be interpreted as a segmented address /* 0x04 */ s32 frame_length; } MkAnimation; // size = 0x8 -extern MkTexture D_02000000[2]; -extern MkTexture D_02000028[2]; -extern MkTexture D_02000050[2]; -extern MkTexture D_02000078[2]; -extern MkTexture D_020000A0[2]; -extern MkTexture D_020000C8[2]; -extern MkTexture D_020000F0[2]; -extern MkTexture D_02000118[2]; -extern MkTexture D_02000140[2]; -extern MkTexture D_02000168[2]; -extern MkTexture D_02000190[2]; -extern MkTexture D_020001B8[2]; -extern MkTexture D_020001E0[2]; -extern MkTexture D_02000208[2]; -extern MkTexture D_02000230[2]; -extern MkTexture D_02000258[2]; -extern MkTexture D_02000280[2]; -extern MkTexture D_020002A8[2]; -extern MkTexture D_020002D0[2]; -extern MkTexture D_020002F8[2]; -extern MkTexture D_02000320[2]; -extern MkTexture D_02000348[2]; -extern MkTexture D_02000370[2]; -extern MkTexture D_02000398[2]; -extern MkTexture D_020003C0[2]; -extern MkTexture D_020003E8[2]; -extern MkTexture D_02000410[2]; -extern MkTexture D_02000438[2]; -extern MkTexture D_02000460[2]; -extern MkTexture D_02000488[2]; -extern MkTexture D_020004B0[2]; -extern MkTexture D_020004D8[2]; -extern MkTexture D_02000500[2]; -extern MkTexture D_02000528[2]; -extern MkTexture D_02000550[2]; -extern MkTexture D_02000578[2]; -extern MkTexture D_020005A0[2]; -extern MkTexture D_020005C8[2]; -extern MkTexture D_020005F0[2]; -extern MkTexture D_02000618[2]; -extern MkTexture D_02000640[2]; -extern MkTexture D_02000668[2]; -extern MkTexture D_02000690[2]; -extern MkTexture D_020006B8[2]; -extern MkTexture D_020006E0[2]; -extern MkTexture D_02000708[2]; -extern MkTexture D_02000730[2]; -extern MkTexture D_02000758[2]; -extern MkTexture D_02000780[2]; -extern MkTexture D_020007A8[2]; -extern MkTexture D_020007D0[2]; -extern MkTexture D_020007F8[2]; -extern MkTexture D_02000820[2]; -extern MkTexture D_02000848[2]; -extern MkTexture D_02000870[2]; -extern MkTexture D_02000898[2]; -extern MkTexture D_020008C0[2]; -extern MkTexture D_020008E8[2]; -extern MkTexture D_02000910[2]; -extern MkTexture D_02000938[2]; -extern MkTexture D_02000960[2]; -extern MkTexture D_02000988[2]; -extern MkTexture D_020009B0[2]; -extern MkTexture D_020009D8[2]; -extern MkTexture D_02000A00[2]; -extern MkTexture D_02000A28[2]; -extern MkTexture D_02000A50[2]; -extern MkTexture D_02000A78[2]; -extern MkTexture D_02000AA0[2]; -extern MkTexture D_02000AC8[2]; -extern MkTexture D_02000AF0[2]; -extern MkTexture D_02000B18[2]; -extern MkTexture D_02000B40[2]; -extern MkTexture D_02000B68[2]; -extern MkTexture D_02000B90[2]; -extern MkTexture D_02000BB8[2]; -extern MkTexture D_02000BE0[2]; -extern MkTexture D_02000C08[2]; -extern MkTexture D_02000C30[2]; -extern MkTexture D_02000C58[2]; -extern MkTexture D_02000C80[2]; -extern MkTexture D_02000CA8[2]; -extern MkTexture D_02000CD0[2]; -extern MkTexture D_02000CF8[2]; -extern MkTexture D_02000D20[2]; -extern MkTexture D_02000D48[2]; -extern MkTexture D_02000D70[2]; -extern MkTexture D_02000D98[2]; -extern MkTexture D_02000DC0[2]; -extern MkTexture D_02000DE8[2]; -extern MkTexture D_02000E10[2]; -extern MkTexture D_02000E38[2]; -extern MkTexture D_02000E60[2]; -extern MkTexture D_02000E88[2]; -extern MkTexture D_02000EB0[2]; -extern MkTexture D_02000ED8[2]; -extern MkTexture D_02000F00[2]; -extern MkTexture D_02000F28[2]; -extern MkTexture D_02000F50[2]; -extern MkTexture D_02000F78[2]; -extern MkTexture D_02000FA0[2]; -extern MkTexture D_02000FC8[2]; -extern MkTexture D_02000FF0[2]; -extern MkTexture D_02001018[2]; -extern MkTexture D_02001040[2]; -extern MkTexture D_02001068[2]; -extern MkTexture D_02001090[2]; -extern MkTexture D_020010B8[2]; -extern MkTexture D_020010E0[2]; -extern MkTexture D_02001108[2]; -extern MkTexture D_02001130[2]; -extern MkTexture D_02001158[2]; -extern MkTexture D_02001180[2]; -extern MkTexture D_020011A8[2]; -extern MkTexture D_020011D0[2]; -extern MkTexture D_020011F8[2]; -extern MkTexture D_02001220[2]; -extern MkTexture D_02001248[2]; -extern MkTexture D_02001270[2]; -extern MkTexture D_02001298[2]; -extern MkTexture D_020012C0[2]; -extern MkTexture D_020012E8[2]; -extern MkTexture D_02001310[2]; -extern MkTexture D_02001338[2]; -extern MkTexture D_02001360[2]; -extern MkTexture D_02001388[2]; -extern MkTexture D_020013B0[2]; -extern MkTexture D_020013D8[2]; -extern MkTexture D_02001400[2]; -extern MkTexture D_02001428[2]; -extern MkTexture D_02001450[2]; -extern MkTexture D_02001478[2]; -extern MkTexture D_020014A0[2]; -extern MkTexture D_020014C8[6]; -extern MkTexture D_02001540[3]; -extern MkTexture D_0200157C[2]; -extern MkTexture D_020015A4[2]; -extern MkTexture D_020015CC[5]; -extern MkTexture D_02001630[2]; -extern MkTexture D_02001658[5]; -extern MkTexture D_020016BC[2]; -extern MkTexture D_020016E4[2]; -extern MkTexture D_0200170C[2]; -extern MkTexture D_02001734[2]; -extern MkTexture D_0200175C[2]; -extern MkTexture D_02001784[2]; -extern MkTexture D_020017AC[2]; -extern MkTexture D_020017D4[2]; -extern MkTexture D_020017FC[2]; -extern MkTexture D_02001824[2]; -extern MkTexture D_0200184C[2]; -extern MkTexture D_02001874[2]; -extern MkTexture D_0200189C[2]; -extern MkTexture D_020018C4[2]; -extern MkTexture D_020018EC[2]; -extern MkTexture D_02001914[2]; -extern MkTexture D_0200193C[2]; -extern MkTexture D_02001964[2]; +extern MenuTexture D_02000000[2]; +extern MenuTexture D_02000028[2]; +extern MenuTexture D_02000050[2]; +extern MenuTexture D_02000078[2]; +extern MenuTexture D_020000A0[2]; +extern MenuTexture D_020000C8[2]; +extern MenuTexture D_020000F0[2]; +extern MenuTexture D_02000118[2]; +extern MenuTexture D_02000140[2]; +extern MenuTexture D_02000168[2]; +extern MenuTexture D_02000190[2]; +extern MenuTexture D_020001B8[2]; +extern MenuTexture D_020001E0[2]; +extern MenuTexture D_02000208[2]; +extern MenuTexture D_02000230[2]; +extern MenuTexture D_02000258[2]; +extern MenuTexture D_02000280[2]; +extern MenuTexture D_020002A8[2]; +extern MenuTexture D_020002D0[2]; +extern MenuTexture D_020002F8[2]; +extern MenuTexture D_02000320[2]; +extern MenuTexture D_02000348[2]; +extern MenuTexture D_02000370[2]; +extern MenuTexture D_02000398[2]; +extern MenuTexture D_020003C0[2]; +extern MenuTexture D_020003E8[2]; +extern MenuTexture D_02000410[2]; +extern MenuTexture D_02000438[2]; +extern MenuTexture D_02000460[2]; +extern MenuTexture D_02000488[2]; +extern MenuTexture D_020004B0[2]; +extern MenuTexture D_020004D8[2]; +extern MenuTexture D_02000500[2]; +extern MenuTexture D_02000528[2]; +extern MenuTexture D_02000550[2]; +extern MenuTexture D_02000578[2]; +extern MenuTexture D_020005A0[2]; +extern MenuTexture D_020005C8[2]; +extern MenuTexture D_020005F0[2]; +extern MenuTexture D_02000618[2]; +extern MenuTexture D_02000640[2]; +extern MenuTexture D_02000668[2]; +extern MenuTexture D_02000690[2]; +extern MenuTexture D_020006B8[2]; +extern MenuTexture D_020006E0[2]; +extern MenuTexture D_02000708[2]; +extern MenuTexture D_02000730[2]; +extern MenuTexture D_02000758[2]; +extern MenuTexture D_02000780[2]; +extern MenuTexture D_020007A8[2]; +extern MenuTexture D_020007D0[2]; +extern MenuTexture D_020007F8[2]; +extern MenuTexture D_02000820[2]; +extern MenuTexture D_02000848[2]; +extern MenuTexture D_02000870[2]; +extern MenuTexture D_02000898[2]; +extern MenuTexture D_020008C0[2]; +extern MenuTexture D_020008E8[2]; +extern MenuTexture D_02000910[2]; +extern MenuTexture D_02000938[2]; +extern MenuTexture D_02000960[2]; +extern MenuTexture D_02000988[2]; +extern MenuTexture D_020009B0[2]; +extern MenuTexture D_020009D8[2]; +extern MenuTexture D_02000A00[2]; +extern MenuTexture D_02000A28[2]; +extern MenuTexture D_02000A50[2]; +extern MenuTexture D_02000A78[2]; +extern MenuTexture D_02000AA0[2]; +extern MenuTexture D_02000AC8[2]; +extern MenuTexture D_02000AF0[2]; +extern MenuTexture D_02000B18[2]; +extern MenuTexture D_02000B40[2]; +extern MenuTexture D_02000B68[2]; +extern MenuTexture D_02000B90[2]; +extern MenuTexture D_02000BB8[2]; +extern MenuTexture D_02000BE0[2]; +extern MenuTexture D_02000C08[2]; +extern MenuTexture D_02000C30[2]; +extern MenuTexture D_02000C58[2]; +extern MenuTexture D_02000C80[2]; +extern MenuTexture D_02000CA8[2]; +extern MenuTexture D_02000CD0[2]; +extern MenuTexture D_02000CF8[2]; +extern MenuTexture D_02000D20[2]; +extern MenuTexture D_02000D48[2]; +extern MenuTexture D_02000D70[2]; +extern MenuTexture D_02000D98[2]; +extern MenuTexture D_02000DC0[2]; +extern MenuTexture D_02000DE8[2]; +extern MenuTexture D_02000E10[2]; +extern MenuTexture D_02000E38[2]; +extern MenuTexture D_02000E60[2]; +extern MenuTexture D_02000E88[2]; +extern MenuTexture D_02000EB0[2]; +extern MenuTexture D_02000ED8[2]; +extern MenuTexture D_02000F00[2]; +extern MenuTexture D_02000F28[2]; +extern MenuTexture D_02000F50[2]; +extern MenuTexture D_02000F78[2]; +extern MenuTexture D_02000FA0[2]; +extern MenuTexture D_02000FC8[2]; +extern MenuTexture D_02000FF0[2]; +extern MenuTexture D_02001018[2]; +extern MenuTexture D_02001040[2]; +extern MenuTexture D_02001068[2]; +extern MenuTexture D_02001090[2]; +extern MenuTexture D_020010B8[2]; +extern MenuTexture D_020010E0[2]; +extern MenuTexture D_02001108[2]; +extern MenuTexture D_02001130[2]; +extern MenuTexture D_02001158[2]; +extern MenuTexture D_02001180[2]; +extern MenuTexture D_020011A8[2]; +extern MenuTexture D_020011D0[2]; +extern MenuTexture D_020011F8[2]; +extern MenuTexture D_02001220[2]; +extern MenuTexture D_02001248[2]; +extern MenuTexture D_02001270[2]; +extern MenuTexture D_02001298[2]; +extern MenuTexture D_020012C0[2]; +extern MenuTexture D_020012E8[2]; +extern MenuTexture D_02001310[2]; +extern MenuTexture D_02001338[2]; +extern MenuTexture D_02001360[2]; +extern MenuTexture D_02001388[2]; +extern MenuTexture D_020013B0[2]; +extern MenuTexture D_020013D8[2]; +extern MenuTexture D_02001400[2]; +extern MenuTexture D_02001428[2]; +extern MenuTexture D_02001450[2]; +extern MenuTexture D_02001478[2]; +extern MenuTexture D_020014A0[2]; +extern MenuTexture D_020014C8[6]; +extern MenuTexture D_02001540[3]; +extern MenuTexture D_0200157C[2]; +extern MenuTexture D_020015A4[2]; +extern MenuTexture D_020015CC[5]; +extern MenuTexture D_02001630[2]; +extern MenuTexture D_02001658[5]; +extern MenuTexture D_020016BC[2]; +extern MenuTexture D_020016E4[2]; +extern MenuTexture D_0200170C[2]; +extern MenuTexture D_02001734[2]; +extern MenuTexture D_0200175C[2]; +extern MenuTexture D_02001784[2]; +extern MenuTexture D_020017AC[2]; +extern MenuTexture D_020017D4[2]; +extern MenuTexture D_020017FC[2]; +extern MenuTexture D_02001824[2]; +extern MenuTexture D_0200184C[2]; +extern MenuTexture D_02001874[2]; +extern MenuTexture D_0200189C[2]; +extern MenuTexture D_020018C4[2]; +extern MenuTexture D_020018EC[2]; +extern MenuTexture D_02001914[2]; +extern MenuTexture D_0200193C[2]; +extern MenuTexture D_02001964[2]; extern MkAnimation D_0200198C[2]; extern MkAnimation D_0200199C[2]; extern MkAnimation D_020019AC[2]; extern MkAnimation D_020019BC[2]; extern MkAnimation D_020019CC[2]; extern MkAnimation D_020019DC[2]; -extern MkTexture D_020019EC[2]; -extern MkTexture D_02001A14[2]; -extern MkTexture D_02001A3C[2]; -extern MkTexture D_02001A64[2]; -extern MkTexture D_02001A8C[2]; -extern MkTexture D_02001AB4[2]; -extern MkTexture D_02001ADC[2]; -extern MkTexture D_02001B04[2]; -extern MkTexture D_02001B2C[2]; -extern MkTexture D_02001B54[2]; -extern MkTexture D_02001B7C[2]; -extern MkTexture D_02001BA4[2]; -extern MkTexture D_02001BCC[2]; -extern MkTexture D_02001BF4[2]; -extern MkTexture D_02001C1C[2]; -extern MkTexture D_02001C44[2]; -extern MkTexture D_02001C6C[2]; -extern MkTexture D_02001C94[2]; -extern MkTexture D_02001CBC[2]; -extern MkTexture D_02001CE4[2]; -extern MkTexture D_02001D0C[2]; -extern MkTexture D_02001D34[2]; -extern MkTexture D_02001D5C[2]; -extern MkTexture D_02001D84[2]; -extern MkTexture D_02001DAC[2]; -extern MkTexture D_02001DD4[2]; -extern MkTexture D_02001DFC[2]; -extern MkTexture D_02001E24[2]; +extern MenuTexture D_020019EC[2]; +extern MenuTexture D_02001A14[2]; +extern MenuTexture D_02001A3C[2]; +extern MenuTexture D_02001A64[2]; +extern MenuTexture D_02001A8C[2]; +extern MenuTexture D_02001AB4[2]; +extern MenuTexture D_02001ADC[2]; +extern MenuTexture D_02001B04[2]; +extern MenuTexture seg2_mario_raceway_preview_texture[2]; +extern MenuTexture D_02001B54[2]; +extern MenuTexture D_02001B7C[2]; +extern MenuTexture D_02001BA4[2]; +extern MenuTexture D_02001BCC[2]; +extern MenuTexture D_02001BF4[2]; +extern MenuTexture D_02001C1C[2]; +extern MenuTexture D_02001C44[2]; +extern MenuTexture D_02001C6C[2]; +extern MenuTexture D_02001C94[2]; +extern MenuTexture D_02001CBC[2]; +extern MenuTexture D_02001CE4[2]; +extern MenuTexture D_02001D0C[2]; +extern MenuTexture D_02001D34[2]; +extern MenuTexture D_02001D5C[2]; +extern MenuTexture D_02001D84[2]; +extern MenuTexture D_02001DAC[2]; +extern MenuTexture D_02001DD4[2]; +extern MenuTexture D_02001DFC[2]; +extern MenuTexture D_02001E24[2]; extern MkAnimation D_02001E4C[3]; extern MkAnimation D_02001E64[2]; extern MkAnimation D_02001E74[2]; @@ -246,453 +244,453 @@ extern MkAnimation D_02001F64[2]; extern MkAnimation D_02001F74[2]; extern MkAnimation D_02001F84[2]; extern MkAnimation D_02001F94[2]; -extern MkTexture D_02001FA4[2]; -extern MkTexture D_02001FCC[2]; -extern MkTexture D_02001FF4[2]; -extern MkTexture D_0200201C[2]; -extern MkTexture D_02002044[2]; -extern MkTexture D_0200206C[2]; -extern MkTexture D_02002094[2]; +extern MenuTexture D_02001FA4[2]; +extern MenuTexture D_02001FCC[2]; +extern MenuTexture D_02001FF4[2]; +extern MenuTexture D_0200201C[2]; +extern MenuTexture D_02002044[2]; +extern MenuTexture D_0200206C[2]; +extern MenuTexture D_02002094[2]; extern MkAnimation D_020020BC[2]; extern MkAnimation D_020020CC[2]; extern MkAnimation D_020020DC[2]; extern MkAnimation D_020020EC[2]; extern MkAnimation D_020020FC[2]; extern MkAnimation D_0200210C[2]; -extern MkTexture D_0200211C[2]; -extern MkTexture D_02002144[2]; -extern MkTexture D_0200216C[2]; -extern MkTexture D_02002194[2]; -extern MkTexture D_020021BC[2]; -extern MkTexture D_020021E4[2]; -extern MkTexture D_0200220C[2]; -extern MkTexture D_02002234[2]; -extern MkTexture D_0200225C[2]; -extern MkTexture D_02002284[2]; -extern MkTexture D_020022AC[2]; -extern MkTexture D_020022D4[2]; -extern MkTexture D_020022FC[2]; -extern MkTexture D_02002324[2]; -extern MkTexture D_0200234C[2]; -extern MkTexture D_02002374[2]; -extern MkTexture D_0200239C[2]; -extern MkTexture D_020023C4[2]; -extern MkTexture D_020023EC[2]; -extern MkTexture D_02002414[2]; -extern MkTexture D_0200243C[2]; -extern MkTexture D_02002464[2]; -extern MkTexture D_0200248C[2]; -extern MkTexture D_020024B4[2]; -extern MkTexture D_020024DC[2]; -extern MkTexture D_02002504[2]; -extern MkTexture D_0200252C[2]; -extern MkTexture D_02002554[2]; -extern MkTexture D_0200257C[2]; -extern MkTexture D_020025A4[2]; -extern MkTexture D_020025CC[2]; -extern MkTexture D_020025F4[2]; -extern MkTexture D_0200261C[2]; -extern MkTexture D_02002644[2]; -extern MkTexture D_0200266C[2]; -extern MkTexture D_02002694[2]; -extern MkTexture D_020026BC[2]; -extern MkTexture D_020026E4[2]; -extern MkTexture D_0200270C[2]; -extern MkTexture D_02002734[2]; -extern MkTexture D_0200275C[2]; -extern MkTexture D_02002784[2]; -extern MkTexture D_020027AC[2]; -extern MkTexture D_020027D4[2]; -extern MkTexture D_020027FC[2]; -extern MkTexture D_02002824[2]; -extern MkTexture D_0200284C[2]; -extern MkTexture D_02002874[2]; -extern MkTexture D_0200289C[2]; -extern MkTexture D_020028C4[2]; -extern MkTexture D_020028EC[2]; -extern MkTexture D_02002914[2]; -extern MkTexture D_0200293C[2]; -extern MkTexture D_02002964[2]; -extern MkTexture D_0200298C[2]; -extern MkTexture D_020029B4[2]; -extern MkTexture D_020029DC[2]; -extern MkTexture D_02002A04[2]; -extern MkTexture D_02002A2C[2]; -extern MkTexture D_02002A54[2]; -extern MkTexture D_02002A7C[2]; -extern MkTexture D_02002AA4[2]; -extern MkTexture D_02002ACC[2]; -extern MkTexture D_02002AF4[2]; -extern MkTexture D_02002B1C[2]; -extern MkTexture D_02002B44[2]; -extern MkTexture D_02002B6C[2]; -extern MkTexture D_02002B94[2]; -extern MkTexture D_02002BBC[2]; -extern MkTexture D_02002BE4[2]; -extern MkTexture D_02002C0C[2]; -extern MkTexture D_02002C34[2]; -extern MkTexture D_02002C5C[2]; -extern MkTexture D_02002C84[2]; -extern MkTexture D_02002CAC[2]; -extern MkTexture D_02002CD4[2]; -extern MkTexture D_02002CFC[2]; -extern MkTexture D_02002D24[2]; -extern MkTexture D_02002D4C[2]; -extern MkTexture D_02002D74[2]; -extern MkTexture D_02002D9C[2]; -extern MkTexture D_02002DC4[2]; -extern MkTexture D_02002DEC[2]; -extern MkTexture D_02002E14[2]; -extern MkTexture D_02002E3C[2]; -extern MkTexture D_02002E64[2]; -extern MkTexture D_02002E8C[2]; -extern MkTexture D_02002EB4[2]; -extern MkTexture D_02002EDC[2]; -extern MkTexture D_02002F04[2]; -extern MkTexture D_02002F2C[2]; -extern MkTexture D_02002F54[2]; -extern MkTexture D_02002F7C[2]; -extern MkTexture D_02002FA4[2]; -extern MkTexture D_02002FCC[2]; -extern MkTexture D_02002FF4[2]; -extern MkTexture D_0200301C[2]; -extern MkTexture D_02003044[2]; -extern MkTexture D_0200306C[2]; -extern MkTexture D_02003094[2]; -extern MkTexture D_020030BC[2]; -extern MkTexture D_020030E4[2]; -extern MkTexture D_0200310C[2]; -extern MkTexture D_02003134[2]; -extern MkTexture D_0200315C[2]; -extern MkTexture D_02003184[2]; -extern MkTexture D_020031AC[2]; -extern MkTexture D_020031D4[2]; -extern MkTexture D_020031FC[2]; -extern MkTexture D_02003224[2]; -extern MkTexture D_0200324C[2]; -extern MkTexture D_02003274[2]; -extern MkTexture D_0200329C[2]; -extern MkTexture D_020032C4[2]; -extern MkTexture D_020032EC[2]; -extern MkTexture D_02003314[2]; -extern MkTexture D_0200333C[2]; -extern MkTexture D_02003364[2]; -extern MkTexture D_0200338C[2]; -extern MkTexture D_020033B4[2]; -extern MkTexture D_020033DC[2]; -extern MkTexture D_02003404[2]; -extern MkTexture D_0200342C[2]; -extern MkTexture D_02003454[2]; -extern MkTexture D_0200347C[2]; -extern MkTexture D_020034A4[2]; -extern MkTexture D_020034CC[2]; -extern MkTexture D_020034F4[2]; -extern MkTexture D_0200351C[2]; -extern MkTexture D_02003544[2]; -extern MkTexture D_0200356C[2]; -extern MkTexture D_02003594[2]; -extern MkTexture D_020035BC[2]; -extern MkTexture D_020035E4[2]; -extern MkTexture D_0200360C[2]; -extern MkTexture D_02003634[2]; -extern MkTexture D_0200365C[2]; -extern MkTexture D_02003684[2]; -extern MkTexture D_020036AC[2]; -extern MkTexture D_020036D4[2]; -extern MkTexture D_020036FC[2]; -extern MkTexture D_02003724[2]; -extern MkTexture D_0200374C[2]; -extern MkTexture D_02003774[2]; -extern MkTexture D_0200379C[2]; -extern MkTexture D_020037C4[2]; -extern MkTexture D_020037EC[2]; -extern MkTexture D_02003814[2]; -extern MkTexture D_0200383C[2]; -extern MkTexture D_02003864[2]; -extern MkTexture D_0200388C[2]; -extern MkTexture D_020038B4[2]; -extern MkTexture D_020038DC[2]; -extern MkTexture D_02003904[2]; -extern MkTexture D_0200392C[2]; -extern MkTexture D_02003954[2]; -extern MkTexture D_0200397C[2]; -extern MkTexture D_020039A4[2]; -extern MkTexture D_020039CC[2]; -extern MkTexture D_020039F4[2]; -extern MkTexture D_02003A1C[2]; -extern MkTexture D_02003A44[2]; -extern MkTexture D_02003A6C[2]; -extern MkTexture D_02003A94[2]; -extern MkTexture D_02003ABC[2]; -extern MkTexture D_02003AE4[2]; -extern MkTexture D_02003B0C[2]; -extern MkTexture D_02003B34[2]; -extern MkTexture D_02003B5C[2]; -extern MkTexture D_02003B84[2]; -extern MkTexture D_02003BAC[2]; -extern MkTexture D_02003BD4[2]; -extern MkTexture D_02003BFC[2]; -extern MkTexture D_02003C24[2]; -extern MkTexture D_02003C4C[2]; -extern MkTexture D_02003C74[2]; -extern MkTexture D_02003C9C[2]; -extern MkTexture D_02003CC4[2]; -extern MkTexture D_02003CEC[2]; -extern MkTexture D_02003D14[2]; -extern MkTexture D_02003D3C[2]; -extern MkTexture D_02003D64[2]; -extern MkTexture D_02003D8C[2]; -extern MkTexture D_02003DB4[2]; -extern MkTexture D_02003DDC[2]; -extern MkTexture D_02003E04[2]; -extern MkTexture D_02003E2C[2]; -extern MkTexture D_02003E54[2]; -extern MkTexture D_02003E7C[2]; -extern MkTexture D_02003EA4[2]; -extern MkTexture D_02003ECC[2]; -extern MkTexture D_02003EF4[2]; -extern MkTexture D_02003F1C[2]; -extern MkTexture D_02003F44[2]; -extern MkTexture D_02003F6C[2]; -extern MkTexture D_02003F94[2]; -extern MkTexture D_02003FBC[2]; -extern MkTexture D_02003FE4[2]; -extern MkTexture D_0200400C[2]; -extern MkTexture D_02004034[2]; -extern MkTexture D_0200405C[2]; -extern MkTexture D_02004084[2]; -extern MkTexture D_020040AC[2]; -extern MkTexture D_020040D4[2]; -extern MkTexture D_020040FC[2]; -extern MkTexture D_02004124[2]; -extern MkTexture D_0200414C[2]; -extern MkTexture D_02004174[2]; -extern MkTexture D_0200419C[2]; -extern MkTexture D_020041C4[2]; -extern MkTexture D_020041EC[2]; -extern MkTexture D_02004214[2]; -extern MkTexture D_0200423C[2]; -extern MkTexture D_02004264[2]; -extern MkTexture D_0200428C[2]; -extern MkTexture D_020042B4[2]; -extern MkTexture D_020042DC[2]; -extern MkTexture D_02004304[2]; -extern MkTexture D_0200432C[2]; -extern MkTexture D_02004354[2]; -extern MkTexture D_0200437C[2]; -extern MkTexture D_020043A4[2]; -extern MkTexture D_020043CC[2]; -extern MkTexture D_020043F4[2]; -extern MkTexture D_0200441C[2]; -extern MkTexture D_02004444[2]; -extern MkTexture D_0200446C[2]; -extern MkTexture D_02004494[2]; -extern MkTexture D_020044BC[2]; -extern MkTexture D_020044E4[2]; -extern MkTexture D_0200450C[2]; -extern MkTexture D_02004534[2]; -extern MkTexture D_0200455C[2]; -extern MkTexture D_02004584[1]; -extern MkTexture D_02004598[2]; -extern MkTexture D_020045C0[2]; -extern MkTexture D_020045E8[2]; -extern MkTexture D_02004610[2]; -extern MkTexture D_02004638[2]; -extern MkTexture D_02004660[2]; -extern MkTexture D_02004688[4]; -extern MkTexture D_020046D8[5]; -extern MkTexture D_0200473C[4]; -extern MkTexture D_0200478C[4]; -extern MkTexture D_020047DC[2]; -extern MkTexture D_02004804[2]; -extern MkTexture D_0200482C[2]; -extern MkTexture D_02004854[2]; -extern MkTexture D_0200487C[2]; -extern MkTexture D_020048A4[2]; -extern MkTexture D_020048CC[2]; -extern MkTexture D_020048F4[2]; -extern MkTexture D_0200491C[2]; -extern MkTexture D_02004944[2]; -extern MkTexture D_0200496C[2]; -extern MkTexture D_02004994[2]; -extern MkTexture D_020049BC[2]; -extern MkTexture D_020049E4[2]; -extern MkTexture D_02004A0C[2]; -extern MkTexture D_02004A34[2]; -extern MkTexture D_02004A5C[3]; -extern MkTexture D_02004A98[3]; -extern MkTexture D_02004AD4[3]; -extern MkTexture D_02004B10[3]; -extern MkTexture D_02004B4C[2]; -extern MkTexture D_02004B74[2]; -extern MkTexture D_02004B9C[2]; -extern MkTexture D_02004BC4[2]; -extern MkTexture D_02004BEC[2]; -extern MkTexture D_02004C14[2]; -extern MkTexture D_02004C3C[2]; -extern MkTexture D_02004C64[2]; -extern MkTexture D_02004C8C[5]; -extern MkTexture D_02004CF0[5]; -extern MkTexture D_02004D54[5]; -extern MkTexture D_02004DB8[5]; -extern MkTexture D_02004E1C[5]; -extern MkTexture D_02004E80[2]; -extern MkTexture D_02004EA8[2]; -extern MkTexture D_02004ED0[2]; -extern MkTexture D_02004EF8[2]; -extern MkTexture D_02004F20[2]; -extern MkTexture D_02004F48[2]; -extern MkTexture D_02004F70[2]; -extern MkTexture D_02004F98[2]; -extern MkTexture D_02004FC0[2]; -extern MkTexture D_02004FE8[2]; -extern MkTexture D_02005010[2]; -extern MkTexture D_02005038[2]; -extern MkTexture D_02005060[2]; -extern MkTexture D_02005088[2]; -extern MkTexture D_020050B0[2]; -extern MkTexture D_020050D8[2]; -extern MkTexture D_02005100[2]; -extern MkTexture D_02005128[2]; -extern MkTexture D_02005150[2]; -extern MkTexture D_02005178[2]; -extern MkTexture D_020051A0[2]; -extern MkTexture D_020051C8[2]; -extern MkTexture D_020051F0[2]; -extern MkTexture D_02005218[2]; -extern MkTexture D_02005240[2]; -extern MkTexture D_02005268[2]; -extern MkTexture D_02005290[2]; -extern MkTexture D_020052B8[2]; -extern MkTexture D_020052E0[2]; -extern MkTexture D_02005308[2]; -extern MkTexture D_02005330[2]; -extern MkTexture D_02005358[2]; -extern MkTexture D_02005380[2]; -extern MkTexture D_020053A8[2]; -extern MkTexture D_020053D0[2]; -extern MkTexture D_020053F8[2]; -extern MkTexture D_02005420[2]; -extern MkTexture D_02005448[2]; -extern MkTexture D_02005470[2]; -extern MkTexture D_02005498[2]; -extern MkTexture D_020054C0[2]; -extern MkTexture D_020054E8[2]; -extern MkTexture D_02005510[2]; -extern MkTexture D_02005538[2]; -extern MkTexture D_02005560[2]; -extern MkTexture D_02005588[2]; -extern MkTexture D_020055B0[2]; -extern MkTexture D_020055D8[2]; -extern MkTexture D_02005600[2]; -extern MkTexture D_02005628[2]; -extern MkTexture D_02005650[2]; -extern MkTexture D_02005678[2]; -extern MkTexture D_020056A0[2]; -extern MkTexture D_020056C8[2]; -extern MkTexture D_020056F0[2]; -extern MkTexture D_02005718[2]; -extern MkTexture D_02005740[2]; -extern MkTexture D_02005768[2]; -extern MkTexture D_02005790[2]; -extern MkTexture D_020057B8[2]; -extern MkTexture D_020057E0[2]; -extern MkTexture D_02005808[2]; -extern MkTexture D_02005830[2]; -extern MkTexture D_02005858[2]; -extern MkTexture D_02005880[2]; -extern MkTexture D_020058A8[2]; -extern MkTexture D_020058D0[2]; -extern MkTexture D_020058F8[2]; -extern MkTexture D_02005920[2]; -extern MkTexture D_02005948[2]; -extern MkTexture D_02005970[2]; -extern MkTexture D_02005998[2]; -extern MkTexture D_020059C0[2]; -extern MkTexture D_020059E8[2]; -extern MkTexture D_02005A10[2]; -extern MkTexture D_02005A38[2]; -extern MkTexture D_02005A60[2]; -extern MkTexture D_02005A88[2]; -extern MkTexture D_02005AB0[2]; -extern MkTexture D_02005AD8[2]; -extern MkTexture D_02005B00[2]; -extern MkTexture D_02005B28[2]; -extern MkTexture D_02005B50[2]; -extern MkTexture D_02005B78[2]; -extern MkTexture D_02005BA0[2]; -extern MkTexture D_02005BC8[2]; -extern MkTexture D_02005BF0[2]; -extern MkTexture D_02005C18[2]; -extern MkTexture D_02005C40[2]; -extern MkTexture D_02005C68[2]; -extern MkTexture D_02005C90[2]; -extern MkTexture D_02005CB8[2]; -extern MkTexture D_02005CE0[2]; -extern MkTexture D_02005D08[2]; -extern MkTexture D_02005D30[2]; -extern MkTexture D_02005D58[2]; -extern MkTexture D_02005D80[2]; -extern MkTexture D_02005DA8[2]; -extern MkTexture D_02005DD0[2]; -extern MkTexture D_02005DF8[2]; -extern MkTexture D_02005E20[2]; -extern MkTexture D_02005E48[2]; -extern MkTexture D_02005E70[2]; -extern MkTexture D_02005E98[2]; -extern MkTexture D_02005EC0[2]; -extern MkTexture D_02005EE8[2]; -extern MkTexture D_02005F10[2]; -extern MkTexture D_02005F38[2]; -extern MkTexture D_02005F60[2]; -extern MkTexture D_02005F88[2]; -extern MkTexture D_02005FB0[2]; -extern MkTexture D_02005FD8[2]; -extern MkTexture D_02006000[2]; -extern MkTexture D_02006028[2]; -extern MkTexture D_02006050[2]; -extern MkTexture D_02006078[2]; -extern MkTexture D_020060A0[2]; -extern MkTexture D_020060C8[2]; -extern MkTexture D_020060F0[2]; -extern MkTexture D_02006118[2]; -extern MkTexture D_02006140[2]; -extern MkTexture D_02006168[2]; -extern MkTexture D_02006190[2]; -extern MkTexture D_020061B8[2]; -extern MkTexture D_020061E0[2]; -extern MkTexture D_02006208[2]; -extern MkTexture D_02006230[2]; -extern MkTexture D_02006258[2]; -extern MkTexture D_02006280[2]; -extern MkTexture D_020062A8[2]; -extern MkTexture D_020062D0[2]; -extern MkTexture D_020062F8[2]; -extern MkTexture D_02006320[2]; -extern MkTexture D_02006348[2]; -extern MkTexture D_02006370[2]; -extern MkTexture D_02006398[2]; -extern MkTexture D_020063C0[2]; -extern MkTexture D_020063E8[2]; -extern MkTexture D_02006410[2]; -extern MkTexture D_02006438[2]; -extern MkTexture D_02006460[2]; -extern MkTexture D_02006488[2]; -extern MkTexture D_020064B0[2]; -extern MkTexture D_020064D8[2]; -extern MkTexture D_02006500[2]; -extern MkTexture D_02006528[2]; -extern MkTexture D_02006550[2]; -extern MkTexture D_02006578[2]; -extern MkTexture D_020065A0[2]; -extern MkTexture D_020065C8[2]; -extern MkTexture D_020065F0[2]; -extern MkTexture D_02006618[2]; -extern MkTexture D_02006640[2]; -extern MkTexture D_02006668[2]; -extern MkTexture D_02006690[2]; -extern MkTexture D_020066B8[2]; -extern MkTexture D_020066E0[2]; +extern MenuTexture D_0200211C[2]; +extern MenuTexture D_02002144[2]; +extern MenuTexture D_0200216C[2]; +extern MenuTexture D_02002194[2]; +extern MenuTexture D_020021BC[2]; +extern MenuTexture D_020021E4[2]; +extern MenuTexture D_0200220C[2]; +extern MenuTexture D_02002234[2]; +extern MenuTexture D_0200225C[2]; +extern MenuTexture D_02002284[2]; +extern MenuTexture D_020022AC[2]; +extern MenuTexture D_020022D4[2]; +extern MenuTexture D_020022FC[2]; +extern MenuTexture D_02002324[2]; +extern MenuTexture D_0200234C[2]; +extern MenuTexture D_02002374[2]; +extern MenuTexture D_0200239C[2]; +extern MenuTexture D_020023C4[2]; +extern MenuTexture D_020023EC[2]; +extern MenuTexture D_02002414[2]; +extern MenuTexture D_0200243C[2]; +extern MenuTexture D_02002464[2]; +extern MenuTexture D_0200248C[2]; +extern MenuTexture D_020024B4[2]; +extern MenuTexture D_020024DC[2]; +extern MenuTexture D_02002504[2]; +extern MenuTexture D_0200252C[2]; +extern MenuTexture D_02002554[2]; +extern MenuTexture D_0200257C[2]; +extern MenuTexture D_020025A4[2]; +extern MenuTexture D_020025CC[2]; +extern MenuTexture D_020025F4[2]; +extern MenuTexture D_0200261C[2]; +extern MenuTexture D_02002644[2]; +extern MenuTexture D_0200266C[2]; +extern MenuTexture D_02002694[2]; +extern MenuTexture D_020026BC[2]; +extern MenuTexture D_020026E4[2]; +extern MenuTexture D_0200270C[2]; +extern MenuTexture D_02002734[2]; +extern MenuTexture D_0200275C[2]; +extern MenuTexture D_02002784[2]; +extern MenuTexture D_020027AC[2]; +extern MenuTexture D_020027D4[2]; +extern MenuTexture D_020027FC[2]; +extern MenuTexture D_02002824[2]; +extern MenuTexture D_0200284C[2]; +extern MenuTexture D_02002874[2]; +extern MenuTexture D_0200289C[2]; +extern MenuTexture D_020028C4[2]; +extern MenuTexture D_020028EC[2]; +extern MenuTexture D_02002914[2]; +extern MenuTexture D_0200293C[2]; +extern MenuTexture D_02002964[2]; +extern MenuTexture D_0200298C[2]; +extern MenuTexture D_020029B4[2]; +extern MenuTexture D_020029DC[2]; +extern MenuTexture D_02002A04[2]; +extern MenuTexture D_02002A2C[2]; +extern MenuTexture D_02002A54[2]; +extern MenuTexture D_02002A7C[2]; +extern MenuTexture D_02002AA4[2]; +extern MenuTexture D_02002ACC[2]; +extern MenuTexture D_02002AF4[2]; +extern MenuTexture D_02002B1C[2]; +extern MenuTexture D_02002B44[2]; +extern MenuTexture D_02002B6C[2]; +extern MenuTexture D_02002B94[2]; +extern MenuTexture D_02002BBC[2]; +extern MenuTexture D_02002BE4[2]; +extern MenuTexture D_02002C0C[2]; +extern MenuTexture D_02002C34[2]; +extern MenuTexture D_02002C5C[2]; +extern MenuTexture D_02002C84[2]; +extern MenuTexture D_02002CAC[2]; +extern MenuTexture D_02002CD4[2]; +extern MenuTexture D_02002CFC[2]; +extern MenuTexture D_02002D24[2]; +extern MenuTexture D_02002D4C[2]; +extern MenuTexture D_02002D74[2]; +extern MenuTexture D_02002D9C[2]; +extern MenuTexture D_02002DC4[2]; +extern MenuTexture D_02002DEC[2]; +extern MenuTexture D_02002E14[2]; +extern MenuTexture D_02002E3C[2]; +extern MenuTexture D_02002E64[2]; +extern MenuTexture D_02002E8C[2]; +extern MenuTexture D_02002EB4[2]; +extern MenuTexture D_02002EDC[2]; +extern MenuTexture D_02002F04[2]; +extern MenuTexture D_02002F2C[2]; +extern MenuTexture D_02002F54[2]; +extern MenuTexture D_02002F7C[2]; +extern MenuTexture D_02002FA4[2]; +extern MenuTexture D_02002FCC[2]; +extern MenuTexture D_02002FF4[2]; +extern MenuTexture D_0200301C[2]; +extern MenuTexture D_02003044[2]; +extern MenuTexture D_0200306C[2]; +extern MenuTexture D_02003094[2]; +extern MenuTexture D_020030BC[2]; +extern MenuTexture D_020030E4[2]; +extern MenuTexture D_0200310C[2]; +extern MenuTexture D_02003134[2]; +extern MenuTexture D_0200315C[2]; +extern MenuTexture D_02003184[2]; +extern MenuTexture D_020031AC[2]; +extern MenuTexture D_020031D4[2]; +extern MenuTexture D_020031FC[2]; +extern MenuTexture D_02003224[2]; +extern MenuTexture D_0200324C[2]; +extern MenuTexture D_02003274[2]; +extern MenuTexture D_0200329C[2]; +extern MenuTexture D_020032C4[2]; +extern MenuTexture D_020032EC[2]; +extern MenuTexture D_02003314[2]; +extern MenuTexture D_0200333C[2]; +extern MenuTexture D_02003364[2]; +extern MenuTexture D_0200338C[2]; +extern MenuTexture D_020033B4[2]; +extern MenuTexture D_020033DC[2]; +extern MenuTexture D_02003404[2]; +extern MenuTexture D_0200342C[2]; +extern MenuTexture D_02003454[2]; +extern MenuTexture D_0200347C[2]; +extern MenuTexture D_020034A4[2]; +extern MenuTexture D_020034CC[2]; +extern MenuTexture D_020034F4[2]; +extern MenuTexture D_0200351C[2]; +extern MenuTexture D_02003544[2]; +extern MenuTexture D_0200356C[2]; +extern MenuTexture D_02003594[2]; +extern MenuTexture D_020035BC[2]; +extern MenuTexture D_020035E4[2]; +extern MenuTexture D_0200360C[2]; +extern MenuTexture D_02003634[2]; +extern MenuTexture D_0200365C[2]; +extern MenuTexture D_02003684[2]; +extern MenuTexture D_020036AC[2]; +extern MenuTexture D_020036D4[2]; +extern MenuTexture D_020036FC[2]; +extern MenuTexture D_02003724[2]; +extern MenuTexture D_0200374C[2]; +extern MenuTexture D_02003774[2]; +extern MenuTexture D_0200379C[2]; +extern MenuTexture D_020037C4[2]; +extern MenuTexture D_020037EC[2]; +extern MenuTexture D_02003814[2]; +extern MenuTexture D_0200383C[2]; +extern MenuTexture D_02003864[2]; +extern MenuTexture D_0200388C[2]; +extern MenuTexture D_020038B4[2]; +extern MenuTexture D_020038DC[2]; +extern MenuTexture D_02003904[2]; +extern MenuTexture D_0200392C[2]; +extern MenuTexture D_02003954[2]; +extern MenuTexture D_0200397C[2]; +extern MenuTexture D_020039A4[2]; +extern MenuTexture D_020039CC[2]; +extern MenuTexture D_020039F4[2]; +extern MenuTexture D_02003A1C[2]; +extern MenuTexture D_02003A44[2]; +extern MenuTexture D_02003A6C[2]; +extern MenuTexture D_02003A94[2]; +extern MenuTexture D_02003ABC[2]; +extern MenuTexture D_02003AE4[2]; +extern MenuTexture D_02003B0C[2]; +extern MenuTexture D_02003B34[2]; +extern MenuTexture D_02003B5C[2]; +extern MenuTexture D_02003B84[2]; +extern MenuTexture D_02003BAC[2]; +extern MenuTexture D_02003BD4[2]; +extern MenuTexture D_02003BFC[2]; +extern MenuTexture D_02003C24[2]; +extern MenuTexture D_02003C4C[2]; +extern MenuTexture D_02003C74[2]; +extern MenuTexture D_02003C9C[2]; +extern MenuTexture D_02003CC4[2]; +extern MenuTexture D_02003CEC[2]; +extern MenuTexture D_02003D14[2]; +extern MenuTexture D_02003D3C[2]; +extern MenuTexture D_02003D64[2]; +extern MenuTexture D_02003D8C[2]; +extern MenuTexture D_02003DB4[2]; +extern MenuTexture D_02003DDC[2]; +extern MenuTexture D_02003E04[2]; +extern MenuTexture D_02003E2C[2]; +extern MenuTexture D_02003E54[2]; +extern MenuTexture D_02003E7C[2]; +extern MenuTexture D_02003EA4[2]; +extern MenuTexture D_02003ECC[2]; +extern MenuTexture D_02003EF4[2]; +extern MenuTexture D_02003F1C[2]; +extern MenuTexture D_02003F44[2]; +extern MenuTexture D_02003F6C[2]; +extern MenuTexture D_02003F94[2]; +extern MenuTexture D_02003FBC[2]; +extern MenuTexture D_02003FE4[2]; +extern MenuTexture D_0200400C[2]; +extern MenuTexture D_02004034[2]; +extern MenuTexture D_0200405C[2]; +extern MenuTexture D_02004084[2]; +extern MenuTexture D_020040AC[2]; +extern MenuTexture D_020040D4[2]; +extern MenuTexture D_020040FC[2]; +extern MenuTexture D_02004124[2]; +extern MenuTexture D_0200414C[2]; +extern MenuTexture D_02004174[2]; +extern MenuTexture D_0200419C[2]; +extern MenuTexture D_020041C4[2]; +extern MenuTexture D_020041EC[2]; +extern MenuTexture D_02004214[2]; +extern MenuTexture D_0200423C[2]; +extern MenuTexture D_02004264[2]; +extern MenuTexture D_0200428C[2]; +extern MenuTexture D_020042B4[2]; +extern MenuTexture D_020042DC[2]; +extern MenuTexture D_02004304[2]; +extern MenuTexture D_0200432C[2]; +extern MenuTexture D_02004354[2]; +extern MenuTexture D_0200437C[2]; +extern MenuTexture D_020043A4[2]; +extern MenuTexture D_020043CC[2]; +extern MenuTexture D_020043F4[2]; +extern MenuTexture D_0200441C[2]; +extern MenuTexture D_02004444[2]; +extern MenuTexture D_0200446C[2]; +extern MenuTexture D_02004494[2]; +extern MenuTexture D_020044BC[2]; +extern MenuTexture D_020044E4[2]; +extern MenuTexture D_0200450C[2]; +extern MenuTexture D_02004534[2]; +extern MenuTexture D_0200455C[2]; +extern MenuTexture D_02004584[1]; +extern MenuTexture seg2_blue_sky_background_texture[2]; +extern MenuTexture seg2_sunset_background_texture[2]; +extern MenuTexture seg2_copyright_1996_texture[2]; +extern MenuTexture seg2_push_start_button_texture[2]; +extern MenuTexture D_02004638[2]; +extern MenuTexture seg2_game_select_texture[2]; +extern MenuTexture seg2_menu_1p_column[4]; +extern MenuTexture seg2_menu_2p_column[5]; +extern MenuTexture seg2_menu_3p_column[4]; +extern MenuTexture seg2_menu_4p_column[4]; +extern MenuTexture D_020047DC[2]; +extern MenuTexture D_02004804[2]; +extern MenuTexture D_0200482C[2]; +extern MenuTexture D_02004854[2]; +extern MenuTexture D_0200487C[2]; +extern MenuTexture D_020048A4[2]; +extern MenuTexture D_020048CC[2]; +extern MenuTexture seg2_50_CC_texture[2]; +extern MenuTexture seg2_100_CC_texture[2]; +extern MenuTexture seg2_150_CC_texture[2]; +extern MenuTexture seg2_extra_CC_texture[2]; +extern MenuTexture seg2_menu_no_item_texture[2]; +extern MenuTexture D_020049BC[2]; +extern MenuTexture D_020049E4[2]; +extern MenuTexture D_02004A0C[2]; +extern MenuTexture seg2_data_texture[2]; +extern MenuTexture seg2_P1_border_texture[3]; +extern MenuTexture seg2_P2_border_texture[3]; +extern MenuTexture seg2_P3_border_texture[3]; +extern MenuTexture seg2_P4_border_texture[3]; +extern MenuTexture D_02004B4C[2]; +extern MenuTexture D_02004B74[2]; +extern MenuTexture seg2_menu_select_texture[2]; +extern MenuTexture seg2_mushroom_cup_texture[2]; +extern MenuTexture seg2_flower_cup_texture[2]; +extern MenuTexture seg2_star_cup_texture[2]; +extern MenuTexture seg2_special_cup_texture[2]; +extern MenuTexture seg2_mario_raceway_preview_small_texture[2]; +extern MenuTexture seg2_mushroom_cup_title_texture[5]; +extern MenuTexture seg2_flower_cup_title_texture[5]; +extern MenuTexture seg2_star_cup_title_texture[5]; +extern MenuTexture seg2_special_cup_title_texture[5]; +extern MenuTexture seg2_battle_title_texture[5]; +extern MenuTexture D_02004E80[2]; +extern MenuTexture seg2_mario_raceway_title_texture[2]; +extern MenuTexture seg2_choco_mountain_title_texture[2]; +extern MenuTexture D_02004EF8[2]; +extern MenuTexture D_02004F20[2]; +extern MenuTexture D_02004F48[2]; +extern MenuTexture D_02004F70[2]; +extern MenuTexture D_02004F98[2]; +extern MenuTexture D_02004FC0[2]; +extern MenuTexture D_02004FE8[2]; +extern MenuTexture D_02005010[2]; +extern MenuTexture D_02005038[2]; +extern MenuTexture D_02005060[2]; +extern MenuTexture D_02005088[2]; +extern MenuTexture D_020050B0[2]; +extern MenuTexture D_020050D8[2]; +extern MenuTexture D_02005100[2]; +extern MenuTexture D_02005128[2]; +extern MenuTexture D_02005150[2]; +extern MenuTexture D_02005178[2]; +extern MenuTexture D_020051A0[2]; +extern MenuTexture D_020051C8[2]; +extern MenuTexture D_020051F0[2]; +extern MenuTexture D_02005218[2]; +extern MenuTexture D_02005240[2]; +extern MenuTexture D_02005268[2]; +extern MenuTexture D_02005290[2]; +extern MenuTexture D_020052B8[2]; +extern MenuTexture D_020052E0[2]; +extern MenuTexture D_02005308[2]; +extern MenuTexture D_02005330[2]; +extern MenuTexture D_02005358[2]; +extern MenuTexture D_02005380[2]; +extern MenuTexture D_020053A8[2]; +extern MenuTexture D_020053D0[2]; +extern MenuTexture D_020053F8[2]; +extern MenuTexture D_02005420[2]; +extern MenuTexture D_02005448[2]; +extern MenuTexture D_02005470[2]; +extern MenuTexture D_02005498[2]; +extern MenuTexture D_020054C0[2]; +extern MenuTexture D_020054E8[2]; +extern MenuTexture D_02005510[2]; +extern MenuTexture D_02005538[2]; +extern MenuTexture D_02005560[2]; +extern MenuTexture D_02005588[2]; +extern MenuTexture D_020055B0[2]; +extern MenuTexture D_020055D8[2]; +extern MenuTexture D_02005600[2]; +extern MenuTexture D_02005628[2]; +extern MenuTexture D_02005650[2]; +extern MenuTexture D_02005678[2]; +extern MenuTexture D_020056A0[2]; +extern MenuTexture D_020056C8[2]; +extern MenuTexture D_020056F0[2]; +extern MenuTexture D_02005718[2]; +extern MenuTexture D_02005740[2]; +extern MenuTexture D_02005768[2]; +extern MenuTexture D_02005790[2]; +extern MenuTexture D_020057B8[2]; +extern MenuTexture D_020057E0[2]; +extern MenuTexture D_02005808[2]; +extern MenuTexture D_02005830[2]; +extern MenuTexture D_02005858[2]; +extern MenuTexture D_02005880[2]; +extern MenuTexture D_020058A8[2]; +extern MenuTexture D_020058D0[2]; +extern MenuTexture D_020058F8[2]; +extern MenuTexture D_02005920[2]; +extern MenuTexture D_02005948[2]; +extern MenuTexture D_02005970[2]; +extern MenuTexture D_02005998[2]; +extern MenuTexture D_020059C0[2]; +extern MenuTexture D_020059E8[2]; +extern MenuTexture D_02005A10[2]; +extern MenuTexture D_02005A38[2]; +extern MenuTexture D_02005A60[2]; +extern MenuTexture D_02005A88[2]; +extern MenuTexture D_02005AB0[2]; +extern MenuTexture D_02005AD8[2]; +extern MenuTexture D_02005B00[2]; +extern MenuTexture D_02005B28[2]; +extern MenuTexture D_02005B50[2]; +extern MenuTexture D_02005B78[2]; +extern MenuTexture D_02005BA0[2]; +extern MenuTexture D_02005BC8[2]; +extern MenuTexture D_02005BF0[2]; +extern MenuTexture D_02005C18[2]; +extern MenuTexture D_02005C40[2]; +extern MenuTexture D_02005C68[2]; +extern MenuTexture D_02005C90[2]; +extern MenuTexture D_02005CB8[2]; +extern MenuTexture D_02005CE0[2]; +extern MenuTexture D_02005D08[2]; +extern MenuTexture D_02005D30[2]; +extern MenuTexture D_02005D58[2]; +extern MenuTexture D_02005D80[2]; +extern MenuTexture D_02005DA8[2]; +extern MenuTexture D_02005DD0[2]; +extern MenuTexture D_02005DF8[2]; +extern MenuTexture D_02005E20[2]; +extern MenuTexture D_02005E48[2]; +extern MenuTexture D_02005E70[2]; +extern MenuTexture D_02005E98[2]; +extern MenuTexture D_02005EC0[2]; +extern MenuTexture D_02005EE8[2]; +extern MenuTexture D_02005F10[2]; +extern MenuTexture D_02005F38[2]; +extern MenuTexture D_02005F60[2]; +extern MenuTexture D_02005F88[2]; +extern MenuTexture D_02005FB0[2]; +extern MenuTexture D_02005FD8[2]; +extern MenuTexture D_02006000[2]; +extern MenuTexture D_02006028[2]; +extern MenuTexture D_02006050[2]; +extern MenuTexture D_02006078[2]; +extern MenuTexture D_020060A0[2]; +extern MenuTexture D_020060C8[2]; +extern MenuTexture D_020060F0[2]; +extern MenuTexture D_02006118[2]; +extern MenuTexture D_02006140[2]; +extern MenuTexture D_02006168[2]; +extern MenuTexture D_02006190[2]; +extern MenuTexture D_020061B8[2]; +extern MenuTexture D_020061E0[2]; +extern MenuTexture D_02006208[2]; +extern MenuTexture D_02006230[2]; +extern MenuTexture D_02006258[2]; +extern MenuTexture D_02006280[2]; +extern MenuTexture D_020062A8[2]; +extern MenuTexture D_020062D0[2]; +extern MenuTexture D_020062F8[2]; +extern MenuTexture D_02006320[2]; +extern MenuTexture D_02006348[2]; +extern MenuTexture D_02006370[2]; +extern MenuTexture D_02006398[2]; +extern MenuTexture D_020063C0[2]; +extern MenuTexture D_020063E8[2]; +extern MenuTexture D_02006410[2]; +extern MenuTexture D_02006438[2]; +extern MenuTexture D_02006460[2]; +extern MenuTexture D_02006488[2]; +extern MenuTexture D_020064B0[2]; +extern MenuTexture D_020064D8[2]; +extern MenuTexture D_02006500[2]; +extern MenuTexture D_02006528[2]; +extern MenuTexture D_02006550[2]; +extern MenuTexture D_02006578[2]; +extern MenuTexture D_020065A0[2]; +extern MenuTexture D_020065C8[2]; +extern MenuTexture D_020065F0[2]; +extern MenuTexture D_02006618[2]; +extern MenuTexture D_02006640[2]; +extern MenuTexture D_02006668[2]; +extern MenuTexture D_02006690[2]; +extern MenuTexture D_020066B8[2]; +extern MenuTexture D_020066E0[2]; extern MkAnimation D_02006708[2]; extern MkAnimation D_02006718[12]; extern MkAnimation D_02006778[2]; diff --git a/src/update_objects.c b/src/update_objects.c index e806d43d2..463d81484 100644 --- a/src/update_objects.c +++ b/src/update_objects.c @@ -26,7 +26,7 @@ #include "collision.h" #include "effects.h" #include "code_80091440.h" -#include "code_80091750.h" +#include "menu_items.h" #include "podium_ceremony_actors.h" #include "courses/all_course_data.h" #include