diff --git a/asm/non_matchings/menu/func_8008B358.s b/asm/non_matchings/menu/func_8008B358.s index d8c809e9..377f2de8 100644 --- a/asm/non_matchings/menu/func_8008B358.s +++ b/asm/non_matchings/menu/func_8008B358.s @@ -14,9 +14,9 @@ glabel func_8008B358 /* 08BF88 8008B388 3C138012 */ lui $s3, %hi(D_801263C0) # $s3, 0x8012 /* 08BF8C 8008B38C 3C14800E */ lui $s4, %hi(gNumberOfActivePlayers) # $s4, 0x800e /* 08BF90 8008B390 3C158012 */ lui $s5, %hi(D_801267D8) # $s5, 0x8012 -/* 08BF94 8008B394 3C178012 */ lui $s7, %hi(D_801263CC) # $s7, 0x8012 +/* 08BF94 8008B394 3C178012 */ lui $s7, %hi(gCurrCharacterSelectData) # $s7, 0x8012 /* 08BF98 8008B398 AFBF003C */ sw $ra, 0x3c($sp) -/* 08BF9C 8008B39C 26F763CC */ addiu $s7, %lo(D_801263CC) # addiu $s7, $s7, 0x63cc +/* 08BF9C 8008B39C 26F763CC */ addiu $s7, %lo(gCurrCharacterSelectData) # addiu $s7, $s7, 0x63cc /* 08BFA0 8008B3A0 26B567D8 */ addiu $s5, %lo(D_801267D8) # addiu $s5, $s5, 0x67d8 /* 08BFA4 8008B3A4 2694F4BC */ addiu $s4, %lo(gNumberOfActivePlayers) # addiu $s4, $s4, -0xb44 /* 08BFA8 8008B3A8 267363C0 */ addiu $s3, %lo(D_801263C0) # addiu $s3, $s3, 0x63c0 diff --git a/asm/non_matchings/menu/func_8008B4C8.s b/asm/non_matchings/menu/func_8008B4C8.s index 6a0d7ab5..d9a766a7 100644 --- a/asm/non_matchings/menu/func_8008B4C8.s +++ b/asm/non_matchings/menu/func_8008B4C8.s @@ -71,8 +71,8 @@ glabel func_8008B4C8 /* 08C1C8 8008B5C8 3C188012 */ lui $t8, %hi(gPlayersCharacterArray) # $t8, 0x8012 /* 08C1CC 8008B5CC 0311C021 */ addu $t8, $t8, $s1 /* 08C1D0 8008B5D0 831863E8 */ lb $t8, %lo(gPlayersCharacterArray)($t8) -/* 08C1D4 8008B5D4 3C1E8012 */ lui $fp, %hi(D_801263CC) # $fp, 0x8012 -/* 08C1D8 8008B5D8 27DE63CC */ addiu $fp, %lo(D_801263CC) # addiu $fp, $fp, 0x63cc +/* 08C1D4 8008B5D4 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 +/* 08C1D8 8008B5D8 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc /* 08C1DC 8008B5DC 0018C8C0 */ sll $t9, $t8, 3 /* 08C1E0 8008B5E0 8FCF0000 */ lw $t7, ($fp) /* 08C1E4 8008B5E4 0338C823 */ subu $t9, $t9, $t8 @@ -109,14 +109,14 @@ glabel func_8008B4C8 /* 08C258 8008B658 8FBF003C */ lw $ra, 0x3c($sp) .L8008B65C: /* 08C25C 8008B65C 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012 -/* 08C260 8008B660 3C1E8012 */ lui $fp, %hi(D_801263CC) # $fp, 0x8012 +/* 08C260 8008B660 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 /* 08C264 8008B664 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012 /* 08C268 8008B668 3C158012 */ lui $s5, %hi(D_801263DC) # $s5, 0x8012 /* 08C26C 8008B66C 3C13800E */ lui $s3, %hi(gNumberOfReadyPlayers) # $s3, 0x800e /* 08C270 8008B670 2673F480 */ addiu $s3, %lo(gNumberOfReadyPlayers) # addiu $s3, $s3, -0xb80 /* 08C274 8008B674 26B563DC */ addiu $s5, %lo(D_801263DC) # addiu $s5, $s5, 0x63dc /* 08C278 8008B678 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808 -/* 08C27C 8008B67C 27DE63CC */ addiu $fp, %lo(D_801263CC) # addiu $fp, $fp, 0x63cc +/* 08C27C 8008B67C 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc /* 08C280 8008B680 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4 /* 08C284 8008B684 24160004 */ li $s6, 4 .L8008B688: diff --git a/asm/non_matchings/menu/func_8008B758.s b/asm/non_matchings/menu/func_8008B758.s index db744034..eff5aabb 100644 --- a/asm/non_matchings/menu/func_8008B758.s +++ b/asm/non_matchings/menu/func_8008B758.s @@ -10,11 +10,11 @@ glabel func_8008B758 /* 08C378 8008B778 3C108012 */ lui $s0, %hi(D_801263C0) # $s0, 0x8012 /* 08C37C 8008B77C 3C168012 */ lui $s6, %hi(gPlayersCharacterArray) # $s6, 0x8012 /* 08C380 8008B780 3C17800E */ lui $s7, %hi(gNumberOfReadyPlayers) # $s7, 0x800e -/* 08C384 8008B784 3C1E8012 */ lui $fp, %hi(D_801263CC) # $fp, 0x8012 +/* 08C384 8008B784 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 /* 08C388 8008B788 AFBF0044 */ sw $ra, 0x44($sp) /* 08C38C 8008B78C AFB20028 */ sw $s2, 0x28($sp) /* 08C390 8008B790 AFB10024 */ sw $s1, 0x24($sp) -/* 08C394 8008B794 27DE63CC */ addiu $fp, %lo(D_801263CC) # addiu $fp, $fp, 0x63cc +/* 08C394 8008B794 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc /* 08C398 8008B798 26F7F480 */ addiu $s7, %lo(gNumberOfReadyPlayers) # addiu $s7, $s7, -0xb80 /* 08C39C 8008B79C 26D663E8 */ addiu $s6, %lo(gPlayersCharacterArray) # addiu $s6, $s6, 0x63e8 /* 08C3A0 8008B7A0 261063C0 */ addiu $s0, %lo(D_801263C0) # addiu $s0, $s0, 0x63c0 diff --git a/asm/non_matchings/menu/func_8008F00C.s b/asm/non_matchings/menu/func_8008F00C.s index 22975968..c8229757 100644 --- a/asm/non_matchings/menu/func_8008F00C.s +++ b/asm/non_matchings/menu/func_8008F00C.s @@ -99,11 +99,11 @@ glabel func_8008F00C /* 08FD7C 8008F17C 3C01800E */ lui $at, %hi(gRaceSelectionHoverOpt) # $at, 0x800e /* 08FD80 8008F180 AC2E0504 */ sw $t6, %lo(gRaceSelectionHoverOpt)($at) /* 08FD84 8008F184 8C4F008C */ lw $t7, 0x8c($v0) -/* 08FD88 8008F188 3C01800E */ lui $at, %hi(gRaceSelectioPlaneOptHighlight) # $at, 0x800e -/* 08FD8C 8008F18C AC2F0514 */ sw $t7, %lo(gRaceSelectioPlaneOptHighlight)($at) +/* 08FD88 8008F188 3C01800E */ lui $at, %hi(gRaceSelectionPlaneOptHighlight) # $at, 0x800e +/* 08FD8C 8008F18C AC2F0514 */ sw $t7, %lo(gRaceSelectionPlaneOptHighlight)($at) /* 08FD90 8008F190 8C580088 */ lw $t8, 0x88($v0) -/* 08FD94 8008F194 3C01800E */ lui $at, %hi(gRaceSelectioPlaneOpt) # $at, 0x800e -/* 08FD98 8008F198 AC380524 */ sw $t8, %lo(gRaceSelectioPlaneOpt)($at) +/* 08FD94 8008F194 3C01800E */ lui $at, %hi(gRaceSelectionPlaneOpt) # $at, 0x800e +/* 08FD98 8008F198 AC380524 */ sw $t8, %lo(gRaceSelectionPlaneOpt)($at) /* 08FD9C 8008F19C 8C5900A0 */ lw $t9, 0xa0($v0) /* 08FDA0 8008F1A0 3C01800E */ lui $at, %hi(gRaceSelectionTTOnOptHighlight) # $at, 0x800e /* 08FDA4 8008F1A4 AC390534 */ sw $t9, %lo(gRaceSelectionTTOnOptHighlight)($at) @@ -117,26 +117,26 @@ glabel func_8008F00C /* 08FDC4 8008F1C4 3C01800E */ lui $at, %hi(gRaceSelectionTTOffOpt) # $at, 0x800e /* 08FDC8 8008F1C8 AC2A0564 */ sw $t2, %lo(gRaceSelectionTTOffOpt)($at) /* 08FDCC 8008F1CC 8C4B00B0 */ lw $t3, 0xb0($v0) -/* 08FDD0 8008F1D0 3C01800E */ lui $at, %hi(D_800E0574) # $at, 0x800e -/* 08FDD4 8008F1D4 AC2B0574 */ sw $t3, %lo(D_800E0574)($at) +/* 08FDD0 8008F1D0 3C01800E */ lui $at, %hi(gRaceSelectionPlayer1Texture) # $at, 0x800e +/* 08FDD4 8008F1D4 AC2B0574 */ sw $t3, %lo(gRaceSelectionPlayer1Texture)($at) /* 08FDD8 8008F1D8 8C4C00B4 */ lw $t4, 0xb4($v0) -/* 08FDDC 8008F1DC 3C01800E */ lui $at, %hi(D_800E0584) # $at, 0x800e -/* 08FDE0 8008F1E0 AC2C0584 */ sw $t4, %lo(D_800E0584)($at) +/* 08FDDC 8008F1DC 3C01800E */ lui $at, %hi(gRaceSelectionPlayer2Texture) # $at, 0x800e +/* 08FDE0 8008F1E0 AC2C0584 */ sw $t4, %lo(gRaceSelectionPlayer2Texture)($at) /* 08FDE4 8008F1E4 8C4D00B8 */ lw $t5, 0xb8($v0) -/* 08FDE8 8008F1E8 3C01800E */ lui $at, %hi(D_800E0594) # $at, 0x800e -/* 08FDEC 8008F1EC AC2D0594 */ sw $t5, %lo(D_800E0594)($at) +/* 08FDE8 8008F1E8 3C01800E */ lui $at, %hi(gRaceSelectionPlayer3Texture) # $at, 0x800e +/* 08FDEC 8008F1EC AC2D0594 */ sw $t5, %lo(gRaceSelectionPlayer3Texture)($at) /* 08FDF0 8008F1F0 8C4E00BC */ lw $t6, 0xbc($v0) -/* 08FDF4 8008F1F4 3C01800E */ lui $at, %hi(D_800E05A4) # $at, 0x800e -/* 08FDF8 8008F1F8 AC2E05A4 */ sw $t6, %lo(D_800E05A4)($at) +/* 08FDF4 8008F1F4 3C01800E */ lui $at, %hi(gRaceSelectionPlayer4Texture) # $at, 0x800e +/* 08FDF8 8008F1F8 AC2E05A4 */ sw $t6, %lo(gRaceSelectionPlayer4Texture)($at) /* 08FDFC 8008F1FC 8C4F00C0 */ lw $t7, 0xc0($v0) -/* 08FE00 8008F200 3C01800E */ lui $at, %hi(D_800E05B4) # $at, 0x800e -/* 08FE04 8008F204 AC2F05B4 */ sw $t7, %lo(D_800E05B4)($at) +/* 08FE00 8008F200 3C01800E */ lui $at, %hi(gRaceSelectionVehicleTitleTexture) # $at, 0x800e +/* 08FE04 8008F204 AC2F05B4 */ sw $t7, %lo(gRaceSelectionVehicleTitleTexture)($at) /* 08FE08 8008F208 8C5800C4 */ lw $t8, 0xc4($v0) -/* 08FE0C 8008F20C 3C01800E */ lui $at, %hi(D_800E05C4) # $at, 0x800e -/* 08FE10 8008F210 AC3805C4 */ sw $t8, %lo(D_800E05C4)($at) +/* 08FE0C 8008F20C 3C01800E */ lui $at, %hi(gRaceSelectionTTTitleTexture) # $at, 0x800e +/* 08FE10 8008F210 AC3805C4 */ sw $t8, %lo(gRaceSelectionTTTitleTexture)($at) /* 08FE14 8008F214 8C590178 */ lw $t9, 0x178($v0) -/* 08FE18 8008F218 3C01800E */ lui $at, %hi(D_800E0614) # $at, 0x800e -/* 08FE1C 8008F21C AC390614 */ sw $t9, %lo(D_800E0614)($at) +/* 08FE18 8008F218 3C01800E */ lui $at, %hi(gRaceSelectionTTTexture) # $at, 0x800e +/* 08FE1C 8008F21C AC390614 */ sw $t9, %lo(gRaceSelectionTTTexture)($at) .L8008F220: /* 08FE20 8008F220 8FBF0014 */ lw $ra, 0x14($sp) .L8008F224: diff --git a/asm/non_matchings/menu/func_80092E94.s b/asm/non_matchings/menu/func_80092E94.s index 47c64043..67daf6a5 100644 --- a/asm/non_matchings/menu/func_80092E94.s +++ b/asm/non_matchings/menu/func_80092E94.s @@ -107,14 +107,14 @@ glabel func_80092E94 /* 093C34 80093034 3C0A800E */ lui $t2, %hi(sMenuGuiOpacity) # $t2, 0x800e /* 093C38 80093038 8D4AF764 */ lw $t2, %lo(sMenuGuiOpacity)($t2) /* 093C3C 8009303C 8FA70060 */ lw $a3, 0x60($sp) -/* 093C40 80093040 3C05800E */ lui $a1, %hi(D_800E0614) # $a1, 0x800e +/* 093C40 80093040 3C05800E */ lui $a1, %hi(gRaceSelectionTTTexture) # $a1, 0x800e /* 093C44 80093044 241900FF */ li $t9, 255 /* 093C48 80093048 240800FF */ li $t0, 255 /* 093C4C 8009304C 240900FF */ li $t1, 255 /* 093C50 80093050 AFA90018 */ sw $t1, 0x18($sp) /* 093C54 80093054 AFA80014 */ sw $t0, 0x14($sp) /* 093C58 80093058 AFB90010 */ sw $t9, 0x10($sp) -/* 093C5C 8009305C 24A50614 */ addiu $a1, %lo(D_800E0614) # addiu $a1, $a1, 0x614 +/* 093C5C 8009305C 24A50614 */ addiu $a1, %lo(gRaceSelectionTTTexture) # addiu $a1, $a1, 0x614 /* 093C60 80093060 02402025 */ move $a0, $s2 /* 093C64 80093064 240600CC */ li $a2, 204 /* 093C68 80093068 AFAA001C */ sw $t2, 0x1c($sp) @@ -275,7 +275,7 @@ glabel func_80092E94 /* 093EC8 800932C8 0C0316D6 */ jal render_dialogue_box /* 093ECC 800932CC 24070007 */ li $a3, 7 /* 093ED0 800932D0 8FA70060 */ lw $a3, 0x60($sp) -/* 093ED4 800932D4 3C05800E */ lui $a1, %hi(D_800E05B4) # $a1, 0x800e +/* 093ED4 800932D4 3C05800E */ lui $a1, %hi(gRaceSelectionVehicleTitleTexture) # $a1, 0x800e /* 093ED8 800932D8 240C00FF */ li $t4, 255 /* 093EDC 800932DC 240800FF */ li $t0, 255 /* 093EE0 800932E0 240D00FF */ li $t5, 255 @@ -284,7 +284,7 @@ glabel func_80092E94 /* 093EEC 800932EC AFAD0018 */ sw $t5, 0x18($sp) /* 093EF0 800932F0 AFA80014 */ sw $t0, 0x14($sp) /* 093EF4 800932F4 AFAC0010 */ sw $t4, 0x10($sp) -/* 093EF8 800932F8 24A505B4 */ addiu $a1, %lo(D_800E05B4) # addiu $a1, $a1, 0x5b4 +/* 093EF8 800932F8 24A505B4 */ addiu $a1, %lo(gRaceSelectionVehicleTitleTexture) # addiu $a1, $a1, 0x5b4 /* 093EFC 800932FC 02402025 */ move $a0, $s2 /* 093F00 80093300 24060088 */ li $a2, 136 /* 093F04 80093304 0C01E2AE */ jal render_textured_rectangle diff --git a/asm/non_matchings/menu/randomise_ai_racer_slots.s b/asm/non_matchings/menu/randomise_ai_racer_slots.s index 2a486db6..a5578893 100644 --- a/asm/non_matchings/menu/randomise_ai_racer_slots.s +++ b/asm/non_matchings/menu/randomise_ai_racer_slots.s @@ -53,8 +53,8 @@ glabel randomise_ai_racer_slots /* 08C7F0 8008BBF0 10200042 */ beqz $at, .L8008BCFC /* 08C7F4 8008BBF4 02009025 */ move $s2, $s0 /* 08C7F8 8008BBF8 271863F0 */ addiu $t8, %lo(gCharacterIdSlots) # addiu $t8, $t8, 0x63f0 -/* 08C7FC 8008BBFC 3C148012 */ lui $s4, %hi(D_801263CC) # $s4, 0x8012 -/* 08C800 8008BC00 269463CC */ addiu $s4, %lo(D_801263CC) # addiu $s4, $s4, 0x63cc +/* 08C7FC 8008BBFC 3C148012 */ lui $s4, %hi(gCurrCharacterSelectData) # $s4, 0x8012 +/* 08C800 8008BC00 269463CC */ addiu $s4, %lo(gCurrCharacterSelectData) # addiu $s4, $s4, 0x63cc /* 08C804 8008BC04 02189821 */ addu $s3, $s0, $t8 /* 08C808 8008BC08 2415000E */ li $s5, 14 .L8008BC0C: diff --git a/asm/non_matchings/menu/render_track_select_setup_ui.s b/asm/non_matchings/menu/render_track_select_setup_ui.s index 7660a3bf..85d79e85 100644 --- a/asm/non_matchings/menu/render_track_select_setup_ui.s +++ b/asm/non_matchings/menu/render_track_select_setup_ui.s @@ -467,14 +467,14 @@ glabel render_track_select_setup_ui /* 09220C 8009160C 8FA70080 */ lw $a3, 0x80($sp) /* 092210 80091610 8FCA0000 */ lw $t2, ($fp) /* 092214 80091614 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092218 80091618 3C05800E */ lui $a1, %hi(D_800E05B4) # $a1, 0x800e +/* 092218 80091618 3C05800E */ lui $a1, %hi(gRaceSelectionVehicleTitleTexture) # $a1, 0x800e /* 09221C 8009161C 241900FF */ li $t9, 255 /* 092220 80091620 240900FF */ li $t1, 255 /* 092224 80091624 240800FF */ li $t0, 255 /* 092228 80091628 AFA80018 */ sw $t0, 0x18($sp) /* 09222C 8009162C AFA90014 */ sw $t1, 0x14($sp) /* 092230 80091630 AFB90010 */ sw $t9, 0x10($sp) -/* 092234 80091634 24A505B4 */ addiu $a1, %lo(D_800E05B4) # addiu $a1, $a1, 0x5b4 +/* 092234 80091634 24A505B4 */ addiu $a1, %lo(gRaceSelectionVehicleTitleTexture) # addiu $a1, $a1, 0x5b4 /* 092238 80091638 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 /* 09223C 8009163C 24060088 */ li $a2, 136 /* 092240 80091640 24E70072 */ addiu $a3, $a3, 0x72 @@ -485,14 +485,14 @@ glabel render_track_select_setup_ui .L80091654: /* 092254 80091654 8FA70080 */ lw $a3, 0x80($sp) /* 092258 80091658 8FD80000 */ lw $t8, ($fp) -/* 09225C 8009165C 3C05800E */ lui $a1, %hi(D_800E05C4) # $a1, 0x800e +/* 09225C 8009165C 3C05800E */ lui $a1, %hi(gRaceSelectionTTTitleTexture) # $a1, 0x800e /* 092260 80091660 240B00FF */ li $t3, 255 /* 092264 80091664 240C00FF */ li $t4, 255 /* 092268 80091668 240D00FF */ li $t5, 255 /* 09226C 8009166C AFAD0018 */ sw $t5, 0x18($sp) /* 092270 80091670 AFAC0014 */ sw $t4, 0x14($sp) /* 092274 80091674 AFAB0010 */ sw $t3, 0x10($sp) -/* 092278 80091678 24A505C4 */ addiu $a1, %lo(D_800E05C4) # addiu $a1, $a1, 0x5c4 +/* 092278 80091678 24A505C4 */ addiu $a1, %lo(gRaceSelectionTTTitleTexture) # addiu $a1, $a1, 0x5c4 /* 09227C 8009167C 24060088 */ li $a2, 136 /* 092280 80091680 0000A825 */ move $s5, $zero /* 092284 80091684 24E70072 */ addiu $a3, $a3, 0x72 @@ -1164,14 +1164,14 @@ glabel render_track_select_setup_ui /* 092C44 80092044 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 /* 092C48 80092048 8FA70080 */ lw $a3, 0x80($sp) /* 092C4C 8009204C 8FCF0000 */ lw $t7, ($fp) -/* 092C50 80092050 3C05800E */ lui $a1, %hi(D_800E0614) # $a1, 0x800e +/* 092C50 80092050 3C05800E */ lui $a1, %hi(gRaceSelectionTTTexture) # $a1, 0x800e /* 092C54 80092054 241800FF */ li $t8, 255 /* 092C58 80092058 240D00FF */ li $t5, 255 /* 092C5C 8009205C 240C00FF */ li $t4, 255 /* 092C60 80092060 AFAC0018 */ sw $t4, 0x18($sp) /* 092C64 80092064 AFAD0014 */ sw $t5, 0x14($sp) /* 092C68 80092068 AFB80010 */ sw $t8, 0x10($sp) -/* 092C6C 8009206C 24A50614 */ addiu $a1, %lo(D_800E0614) # addiu $a1, $a1, 0x614 +/* 092C6C 8009206C 24A50614 */ addiu $a1, %lo(gRaceSelectionTTTexture) # addiu $a1, $a1, 0x614 /* 092C70 80092070 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 /* 092C74 80092074 240600CC */ li $a2, 204 /* 092C78 80092078 24E7007A */ addiu $a3, $a3, 0x7a diff --git a/src/menu.c b/src/menu.c index 054cf9fd..39e76fcd 100644 --- a/src/menu.c +++ b/src/menu.c @@ -53,7 +53,7 @@ unk801263C0 D_801263C0; s32 gIgnorePlayerInput; UNUSED s32 sUnused_801263C8; // Set to 0 in menu_init, and never again. -unk801263CC (*D_801263CC)[8]; //Some sort of character list? Cares if T.T. and Drumstick are unlocked +CharacterSelectData (*gCurrCharacterSelectData)[8]; //Some sort of character list? Cares if T.T. and Drumstick are unlocked s32 D_801263D0; s8 gActivePlayersArray[4]; @@ -555,61 +555,92 @@ s16 D_800DFDC8[2] = { -1, 0 }; s16 D_800DFDCC[2] = { -1, 0 }; // Not sure what this is -// Used for D_801263CC when Neither T.T. Nor Drumstick are unlocked -// unk801263CC -s32 D_800DFDD0[28] = { - 0xFFFF04FF, 0xFFFFFFFF, 0x010203FF, 0x0000FFFF, - 0x05FF00FF, 0xFFFF0203, 0xFFFF0009, 0xFFFF06FF, - 0x0100FFFF, 0x03FFFFFF, 0x0001FFFF, 0x07FF0201, - 0x00FFFFFF, 0xFFFF0005, 0x00FFFFFF, 0xFFFFFFFF, - 0x050607FF, 0x000301FF, 0xFFFF04FF, 0xFFFF0607, - 0xFFFF0002, 0x02FFFFFF, 0x0504FFFF, 0x07FFFFFF, - 0x000703FF, 0xFFFF0605, 0x04FFFFFF, 0xFFFF0004, +// Used for gCurrCharacterSelectData when Neither T.T. Nor Drumstick are unlocked +// CharacterSelectData + +#define NONE 0xFF +#define KRUNCH 0 +#define DIDDY 1 +#define BUMPER 2 +#define BANJO 3 +#define CONKER 4 +#define TIPTUP 5 +#define PIPSY 6 +#define TIMBER 7 +#define DRUMSTICK 8 +#define TICTOC 8 // Will later be redefined as 9. + +/** + * Diddy Kong Racing's character select menu refers to these arrays below to know how + * to handle some certain things. This includes which direction selects which index, which voice ID + * they use, and which audio voices the BGM uses. It has a different table for each possible combination + * of which characters are available to select. This system is far from conventional. + * Unfortunately, because each entry is explicitly 14 bytes, it means a struct would not match, because + * a struct would align itself to 16 bytes, creating an extra 2 bytes of padding inbetween. + * + * The layout shows which character is in each cardinal direction. Presumably so it knows + * where to place extra cursors when a new player joins. + * Frankly, this is a comically overcomplicated method. +*/ + +// Default character select screen with the initial 8 characters. +/*Name Up Down Left Right Inputs Voice ID*/ +u8 gCharacterSelectBytesDefault[] = { +/*Krunch*/ NONE, NONE, CONKER, NONE, NONE, NONE, NONE, NONE, DIDDY, BUMPER, BANJO, NONE, 0x00, 0x00, +/*Diddy*/ NONE, NONE, TIPTUP, NONE, KRUNCH, NONE, NONE, NONE, BUMPER, BANJO, NONE, NONE, 0x00, 0x09, +/*Bumper*/ NONE, NONE, PIPSY, NONE, DIDDY, KRUNCH, NONE, NONE, BANJO, NONE, NONE, NONE, 0x00, 0x01, +/*Banjo*/ NONE, NONE, TIMBER, NONE, BUMPER, DIDDY, KRUNCH, NONE, NONE, NONE, NONE, NONE, 0x00, 0x05, +/*Conker*/ KRUNCH, NONE, NONE, NONE, NONE, NONE, NONE, NONE, TIPTUP, PIPSY, TIMBER, NONE, 0x00, 0x03, +/*Tiptup*/ DIDDY, NONE, NONE, NONE, CONKER, NONE, NONE, NONE, PIPSY, TIMBER, NONE, NONE, 0x00, 0x02, +/*Pipsy*/ BUMPER, NONE, NONE, NONE, TIPTUP, CONKER, NONE, NONE, TIMBER, NONE, NONE, NONE, 0x00, 0x07, +/*Timber*/ BANJO, NONE, NONE, NONE, PIPSY, TIPTUP, CONKER, NONE, NONE, NONE, NONE, NONE, 0x00, 0x04, }; -// Not sure what this is -// Used for D_801263CC when only Drumstick is unlocked -// unk801263CC -s32 D_800DFE40[32] = { - 0xFFFF04FF, 0xFFFFFFFF, 0x01080203, 0x0000FFFF, - 0x040500FF, 0xFFFF0802, 0x03FF0009, 0xFFFF0607, - 0x080100FF, 0x03FFFFFF, 0x0001FFFF, 0x07FF0208, - 0x0100FFFF, 0xFFFF0005, 0x0001FFFF, 0xFFFFFFFF, - 0x050607FF, 0x00030108, 0xFFFF04FF, 0xFFFF0607, - 0xFFFF0002, 0x0802FFFF, 0x0504FFFF, 0x07FFFFFF, - 0x00070203, 0xFFFF0605, 0x04FFFFFF, 0xFFFF0004, - 0xFFFF0506, 0x0100FFFF, 0x0203FFFF, 0x00060000, +// Drumstick is unlocked, but T.T is not. +/*Name Up Down Left Right Voice ID*/ +u8 gCharacterSelectBytesDrumStick[] = { +/*Krunch*/ NONE, NONE, CONKER, NONE, NONE, NONE, NONE, NONE, DIDDY, DRUMSTICK, BUMPER, BANJO, 0x00, 0x00, +/*Diddy*/ NONE, NONE, CONKER, TIPTUP, KRUNCH, NONE, NONE, NONE, DRUMSTICK, BUMPER, BANJO, NONE, 0x00, 0x09, +/*Bumper*/ NONE, NONE, PIPSY, TIMBER, DRUMSTICK, DIDDY, KRUNCH, NONE, BANJO, NONE, NONE, NONE, 0x00, 0x01, +/*Banjo*/ NONE, NONE, TIMBER, NONE, BUMPER, DRUMSTICK, DIDDY, KRUNCH, NONE, NONE, NONE, NONE, 0x00, 0x05, +/*Conker*/ KRUNCH, DIDDY, NONE, NONE, NONE, NONE, NONE, NONE, TIPTUP, PIPSY, TIMBER, NONE, 0x00, 0x03, +/*Tiptup*/ DIDDY, DRUMSTICK, NONE, NONE, CONKER, NONE, NONE, NONE, PIPSY, TIMBER, NONE, NONE, 0x00, 0x02, +/*Pipsy*/ DRUMSTICK, BUMPER, NONE, NONE, TIPTUP, CONKER, NONE, NONE, TIMBER, NONE, NONE, NONE, 0x00, 0x07, +/*Timber*/ BUMPER, BANJO, NONE, NONE, PIPSY, TIPTUP, CONKER, NONE, NONE, NONE, NONE, NONE, 0x00, 0x04, +/*Drumstick*/ NONE, NONE, TIPTUP, PIPSY, DIDDY, KRUNCH, NONE, NONE, BUMPER, BANJO, NONE, NONE, 0x00, 0x06, }; -// Not sure what this is -// Used for D_801263CC when only T.T. is unlocked -// unk801263CC -s32 D_800DFEC0[32] = { - 0xFFFF04FF, 0xFFFFFFFF, 0x010203FF, 0x0000FFFF, - 0x050800FF, 0xFFFF0203, 0xFFFF0009, 0xFFFF0806, - 0x0100FFFF, 0x03FFFFFF, 0x0001FFFF, 0x06070201, - 0x00FFFFFF, 0xFFFF0005, 0x00FFFFFF, 0xFFFFFFFF, - 0x05080607, 0x00030001, 0xFFFF04FF, 0xFFFF0806, - 0x07FF0002, 0x0203FFFF, 0x080504FF, 0x07FFFFFF, - 0x000703FF, 0xFFFF0608, 0x0504FFFF, 0xFFFF0004, - 0x0102FFFF, 0x0504FFFF, 0x0607FFFF, 0x00080000, +// Under the unlikely chance you have T.T unlocked, but not Drumstick. +/*Name Up Down Left Right Voice ID*/ +u8 gCharacterSelectBytesTT[] = { +/*Krunch*/ NONE, NONE, CONKER, NONE, NONE, NONE, NONE, NONE, DIDDY, BUMPER, BANJO, NONE, 0x00, 0x00, +/*Diddy*/ NONE, NONE, TIPTUP, TICTOC, KRUNCH, NONE, NONE, NONE, BUMPER, BANJO, NONE, NONE, 0x00, 0x09, +/*Bumper*/ NONE, NONE, TICTOC, PIPSY, DIDDY, KRUNCH, NONE, NONE, BANJO, NONE, NONE, NONE, 0x00, 0x01, +/*Banjo*/ NONE, NONE, PIPSY, TIMBER, BUMPER, DIDDY, KRUNCH, NONE, NONE, NONE, NONE, NONE, 0x00, 0x05, +/*Conker*/ KRUNCH, NONE, NONE, NONE, NONE, NONE, NONE, NONE, TIPTUP, TICTOC, PIPSY, TIMBER, 0x00, 0x03, +/*Tiptup*/ KRUNCH, DIDDY, NONE, NONE, CONKER, NONE, NONE, NONE, TICTOC, PIPSY, TIMBER, NONE, 0x00, 0x02, +/*Pipsy*/ BUMPER, BANJO, NONE, NONE, TICTOC, TIPTUP, CONKER, NONE, TIMBER, NONE, NONE, NONE, 0x00, 0x07, +/*Timber*/ BANJO, NONE, NONE, NONE, PIPSY, TICTOC, TIPTUP, CONKER, NONE, NONE, NONE, NONE, 0x00, 0x04, +/*T.T*/ DIDDY, BUMPER, NONE, NONE, TIPTUP, CONKER, NONE, NONE, PIPSY, TIMBER, NONE, NONE, 0x00, 0x08, }; -// Not sure what this is -// Used for D_801263CC when both T.T. and Drumstick are unlocked -// unk801263CC -s32 D_800DFF40[36] = { - 0xFFFF04FF, 0xFFFFFFFF, 0x01080203, 0x0000FFFF, - 0x05FF00FF, 0xFFFF0802, 0x03FF0009, 0xFFFF06FF, - 0x080100FF, 0x03FFFFFF, 0x0001FFFF, 0x07FF0208, - 0x0100FFFF, 0xFFFF0005, 0x00FFFFFF, 0xFFFFFFFF, - 0x05090607, 0x000301FF, 0xFFFF04FF, 0xFFFF0906, - 0x07FF0002, 0x02FFFFFF, 0x090504FF, 0x07FFFFFF, - 0x000703FF, 0xFFFF0609, 0x0504FFFF, 0xFFFF0004, - 0xFFFF09FF, 0x0100FFFF, 0x0203FFFF, 0x000608FF, - 0x05FF0504, 0xFFFF0607, 0xFFFF0008, 0x00000000, +#define TICTOC 9 +// With everyone unlocked. +/*Name Up Down Left Right Voice ID*/ +u8 gCharacterSelectBytesComplete[] = { +/*Krunch*/ NONE, NONE, CONKER, NONE, NONE, NONE, NONE, NONE, DIDDY, DRUMSTICK, BUMPER, BANJO, 0x00, 0x00, +/*Diddy*/ NONE, NONE, TIPTUP, NONE, KRUNCH, NONE, NONE, NONE, DRUMSTICK, BUMPER, BANJO, NONE, 0x00, 0x09, +/*Bumper*/ NONE, NONE, PIPSY, NONE, DRUMSTICK, DIDDY, KRUNCH, NONE, BANJO, NONE, NONE, NONE, 0x00, 0x01, +/*Banjo*/ NONE, NONE, TIMBER, NONE, BUMPER, DRUMSTICK, DIDDY, KRUNCH, NONE, NONE, NONE, NONE, 0x00, 0x05, +/*Conker*/ KRUNCH, NONE, NONE, NONE, NONE, NONE, NONE, NONE, TIPTUP, TICTOC, PIPSY, TIMBER, 0x00, 0x03, +/*Tiptup*/ DIDDY, NONE, NONE, NONE, CONKER, NONE, NONE, NONE, TICTOC, PIPSY, TIMBER, NONE, 0x00, 0x02, +/*Pipsy*/ BUMPER, NONE, NONE, NONE, TICTOC, TIPTUP, CONKER, NONE, TIMBER, NONE, NONE, NONE, 0x00, 0x07, +/*Timber*/ BANJO, NONE, NONE, NONE, PIPSY, TICTOC, TIPTUP, CONKER, NONE, NONE, NONE, NONE, 0x00, 0x04, +/*Drumstick*/ NONE, NONE, TICTOC, NONE, DIDDY, KRUNCH, NONE, NONE, BUMPER, BANJO, NONE, NONE, 0x00, 0x06, +/*T.T*/ DRUMSTICK, NONE, TIPTUP, NONE, TIPTUP, CONKER, NONE, NONE, PIPSY, TIMBER, NONE, NONE, 0x00, 0x08, }; +s32 D_800DFFCC = 0; // Likely unused. s32 D_800DFFD0 = 0; s32 D_800DFFD4 = -1; @@ -705,27 +736,28 @@ DrawTexture gRaceSelectionCarOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } DrawTexture gRaceSelectionCarOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionHoverOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionHoverOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture gRaceSelectioPlaneOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture gRaceSelectioPlaneOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlaneOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlaneOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionTTOnOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionTTOffOptHighlight[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionTTOnOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; DrawTexture gRaceSelectionTTOffOpt[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E0574[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E0584[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E0594[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E05A4[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E05B4[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; -DrawTexture D_800E05C4[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlayer1Texture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlayer2Texture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlayer3Texture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionPlayer4Texture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionVehicleTitleTexture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionTTTitleTexture[2] = { { NULL, 0, 0 }, { NULL, 0, 0 } }; // These are probably structs s32 D_800E05D4[8] = { 0, 0xFFD0, 0, 0xFFF0, 0, 0x10, 0, 0 }; s32 D_800E05F4[8] = { 0, 0xFFD0, 0, 0xFFF0, 0, 0x10, 0, 0 }; -DrawTexture D_800E0614[2] = { { NULL, -16, -16 }, { NULL, 0, 0 } }; +DrawTexture gRaceSelectionTTTexture[2] = { { NULL, -16, -16 }, { NULL, 0, 0 } }; DrawTexture *gRaceSelectionImages[9] = { - gRaceSelectionCarTex, gRaceSelectionCarOptHighlight, gRaceSelectionCarOpt, gRaceSelectionHoverTex, gRaceSelectionHoverOptHighlight, gRaceSelectionHoverOpt, gRaceSelectionPlaneTex, gRaceSelectioPlaneOptHighlight, gRaceSelectioPlaneOpt + gRaceSelectionCarTex, gRaceSelectionCarOptHighlight, gRaceSelectionCarOpt, gRaceSelectionHoverTex, gRaceSelectionHoverOptHighlight, gRaceSelectionHoverOpt, gRaceSelectionPlaneTex, gRaceSelectionPlaneOptHighlight, gRaceSelectionPlaneOpt + }; DrawTexture *D_800E0648[6] = { @@ -733,7 +765,7 @@ DrawTexture *D_800E0648[6] = { }; DrawTexture *D_800E0660[6] = { - D_800E0574, D_800E0584, D_800E0594, D_800E05A4, D_800E05B4, D_800E05C4 + gRaceSelectionPlayer1Texture, gRaceSelectionPlayer2Texture, gRaceSelectionPlayer3Texture, gRaceSelectionPlayer4Texture, gRaceSelectionVehicleTitleTexture, gRaceSelectionTTTitleTexture }; DrawTexture *gMenuSelectionArrows[4] = { @@ -4347,14 +4379,14 @@ void menu_character_select_init(void) { initialise_player_ids(); if (is_drumstick_unlocked()) { if (is_tt_unlocked()) { - D_801263CC = &D_800DFF40; + gCurrCharacterSelectData = &gCharacterSelectBytesComplete; } else { - D_801263CC = &D_800DFE40; + gCurrCharacterSelectData = &gCharacterSelectBytesDrumStick; } } else if (is_tt_unlocked()) { - D_801263CC = &D_800DFEC0; + gCurrCharacterSelectData = &gCharacterSelectBytesTT; } else { - D_801263CC = &D_800DFDD0; + gCurrCharacterSelectData = &gCharacterSelectBytesDefault; } for (i = 0; i < 4; i++) { D_801263DC[i] = 0; @@ -4366,7 +4398,7 @@ void menu_character_select_init(void) { for (i = 0; (i < 4) && (!breakTheLoop); i++) { if (gActivePlayersArray[i] != 0) { breakTheLoop = TRUE; - D_801263C0.unk0 = (*D_801263CC)[gPlayersCharacterArray[i]].unkC; + D_801263C0.unk0 = (*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID; D_801263C0.unk2 = 0x7F; D_801263C0.unk1 = 1; } @@ -4454,7 +4486,7 @@ void randomise_ai_racer_slots(s32 arg0) { i = arg0; while (i < 8) { s1 = FALSE; // Check for duplicate racer id. - gCharacterIdSlots[i] = (*D_801263CC)[get_random_number_from_range(0, numCharacters)].unkC; + gCharacterIdSlots[i] = (*gCurrCharacterSelectData)[get_random_number_from_range(0, numCharacters)].voiceID; for (j = 0; j < i; j++) { if (gCharacterIdSlots[i] == gCharacterIdSlots[j]) { s1 = TRUE; // Duplicate found! @@ -4512,7 +4544,7 @@ s32 menu_character_select_loop(s32 updateRate) { phi_a0 = 0; for (j = 0; j < 4; j++) { if (gActivePlayersArray[j]) { - gCharacterIdSlots[phi_a0] = (*D_801263CC)[gPlayersCharacterArray[j]].unkC; + gCharacterIdSlots[phi_a0] = (*gCurrCharacterSelectData)[gPlayersCharacterArray[j]].voiceID; phi_a0++; } } @@ -5701,9 +5733,9 @@ void render_track_select_setup_ui(s32 updateRate) { set_current_dialogue_box_coords(7, 134, sp80 + 112, 186, sp80 + 137); render_dialogue_box(&sMenuCurrDisplayList, 0, 0, 7); if (D_801263E0 <= 0) { - render_textured_rectangle(&sMenuCurrDisplayList, &D_800E05B4, 136, sp80 + 114, 255, 0xFF, 255, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionVehicleTitleTexture, 136, sp80 + 114, 255, 0xFF, 255, sMenuGuiOpacity); } else { - render_textured_rectangle(&sMenuCurrDisplayList, &D_800E05C4, 136, sp80 + 114, 255, 255, 255, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionTTTitleTexture, 136, sp80 + 114, 255, 255, 255, sMenuGuiOpacity); for (i = 0; i < 2; i++) { s32 yTemp = 0x97 + sp80 + (i * 0x18); if (i == D_800E0414) { @@ -5862,7 +5894,7 @@ void render_track_select_setup_ui(s32 updateRate) { } if ((gNumberOfActivePlayers == 1) && (D_801263E0 >= 0) && (func_80092BE0(gTrackIdForPreview) >= 0)) { // Render small T.T. icon. - render_textured_rectangle(&sMenuCurrDisplayList, &D_800E0614, 0xCC, 0x7A, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionTTTexture, 0xCC, 0x7A, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); func_8007B3D0(&sMenuCurrDisplayList); } if (D_801269C8 != 5) { @@ -5950,10 +5982,11 @@ void menu_5_init(void) { gRaceSelectionCarOpt[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_CAR]; gRaceSelectionHoverOptHighlight[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_HOVERCRAFT_HIGHLIGHT]; gRaceSelectionHoverOpt[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_HOVERCRAFT]; - gRaceSelectioPlaneOptHighlight[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_PLANE_HIGHLIGHT]; - gRaceSelectioPlaneOpt[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_PLANE]; - D_800E05B4[0].texture = D_80126550[TEXTURE_UNK_30]; - D_800E0614[0].texture = D_80126550[TEXTURE_UNK_5E]; + gRaceSelectionPlaneOptHighlight[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_PLANE_HIGHLIGHT]; + gRaceSelectionPlaneOpt[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_SELECT_PLANE]; + gRaceSelectionVehicleTitleTexture[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_TITLE]; + gRaceSelectionTTTexture[0].texture = D_80126550[TEXTURE_ICON_TT_HEAD]; + func_800C01D8(&sMenuTransitionFadeOut); D_801263BC = 0; gMenuDelay = 0; diff --git a/src/menu.h b/src/menu.h index 13f64244..671fed6d 100644 --- a/src/menu.h +++ b/src/menu.h @@ -188,10 +188,13 @@ typedef struct ButtonTextElement { } ButtonTextElement; /* Size: 0xE bytes. */ -typedef struct unk801263CC { - u8 pad0[0xC]; - s16 unkC; -} unk801263CC; +typedef struct CharacterSelectData { + u8 upInput[2]; + u8 downInput[2]; + u8 rightInput[4]; + u8 LeftInput[4]; + s16 voiceID; +} CharacterSelectData; /* Size: 0x0C Bytes */ typedef struct SavefileInfo { @@ -377,18 +380,6 @@ extern u8 D_800DFDB4[10][2]; extern s16 D_800DFDC8[2]; extern s16 D_800DFDCC[2]; -// Not sure what this is -extern s32 D_800DFDD0[28]; - -// Not sure what this is -extern s32 D_800DFE40[32]; - -// Not sure what this is -extern s32 D_800DFEC0[32]; - -// Not sure what this is -extern s32 D_800DFF40[36]; - extern s32 D_800DFFD0; extern s32 D_800DFFD4; @@ -424,24 +415,24 @@ extern DrawTexture gRaceSelectionCarOptHighlight[2]; extern DrawTexture gRaceSelectionCarOpt[2]; extern DrawTexture gRaceSelectionHoverOptHighlight[2]; extern DrawTexture gRaceSelectionHoverOpt[2]; -extern DrawTexture gRaceSelectioPlaneOptHighlight[2]; -extern DrawTexture gRaceSelectioPlaneOpt[2]; +extern DrawTexture gRaceSelectionPlaneOptHighlight[2]; +extern DrawTexture gRaceSelectionPlaneOpt[2]; extern DrawTexture gRaceSelectionTTOnOptHighlight[2]; extern DrawTexture gRaceSelectionTTOffOptHighlight[2]; extern DrawTexture gRaceSelectionTTOnOpt[2]; extern DrawTexture gRaceSelectionTTOffOpt[2]; -extern DrawTexture D_800E0574[2]; -extern DrawTexture D_800E0584[2]; -extern DrawTexture D_800E0594[2]; -extern DrawTexture D_800E05A4[2]; -extern DrawTexture D_800E05B4[2]; -extern DrawTexture D_800E05C4[2]; +extern DrawTexture gRaceSelectionPlayer1Texture[2]; +extern DrawTexture gRaceSelectionPlayer2Texture[2]; +extern DrawTexture gRaceSelectionPlayer3Texture[2]; +extern DrawTexture gRaceSelectionPlayer4Texture[2]; +extern DrawTexture gRaceSelectionVehicleTitleTexture[2]; +extern DrawTexture gRaceSelectionTTTitleTexture[2]; // These are probably structs extern s32 D_800E05D4[8]; extern s32 D_800E05F4[8]; -extern DrawTexture D_800E0614[2]; +extern DrawTexture gRaceSelectionTTTexture[2]; extern DrawTexture *gRaceSelectionImages[9]; @@ -903,16 +894,16 @@ typedef enum MenuTextures { /* 0x0B */ TEXTURE_UNK_0B, /* 0x0C */ TEXTURE_UNK_0C, /* 0x0D */ TEXTURE_UNK_0D, -/* 0x0E */ TEXTURE_UNK_0E, -/* 0x0F */ TEXTURE_UNK_0F, -/* 0x10 */ TEXTURE_UNK_10, -/* 0x11 */ TEXTURE_UNK_11, -/* 0x12 */ TEXTURE_UNK_12, -/* 0x13 */ TEXTURE_UNK_13, -/* 0x14 */ TEXTURE_UNK_14, -/* 0x15 */ TEXTURE_UNK_15, -/* 0x16 */ TEXTURE_UNK_16, -/* 0x17 */ TEXTURE_UNK_17, +/* 0x0E */ TEXTURE_BACKGROUND_DINO_DOMAIN_TOP, +/* 0x0F */ TEXTURE_BACKGROUND_DINO_DOMAIN_BOTTOM, +/* 0x10 */ TEXTURE_BACKGROUND_SHERBERT_ISLAND_TOP, +/* 0x11 */ TEXTURE_BACKGROUND_SHERBERT_ISLAND_BOTTOM, +/* 0x12 */ TEXTURE_BACKGROUND_SNOWFLAKE_MOUNTAIN_TOP, +/* 0x13 */ TEXTURE_BACKGROUND_SNOWFLAKE_MOUNTAIN_BOTTOM, +/* 0x14 */ TEXTURE_BACKGROUND_DRAGON_FOREST_TOP, +/* 0x15 */ TEXTURE_BACKGROUND_DRAGON_FOREST_BOTTOM, +/* 0x16 */ TEXTURE_BACKGROUND_FUTURE_FUN_LAND_TOP, +/* 0x17 */ TEXTURE_BACKGROUND_FUTURE_FUN_LAND_BOTTOM, /* 0x18 */ TEXTURE_ICON_VEHICLE_CAR_TOP, /* 0x19 */ TEXTURE_ICON_VEHICLE_CAR_BOTTOM, /* 0x1A */ TEXTURE_ICON_VEHICLE_HOVERCRAFT_TOP, @@ -925,20 +916,20 @@ typedef enum MenuTextures { /* 0x21 */ TEXTURE_ICON_VEHICLE_SELECT_HOVERCRAFT_HIGHLIGHT, /* 0x22 */ TEXTURE_ICON_VEHICLE_SELECT_PLANE, /* 0x23 */ TEXTURE_ICON_VEHICLE_SELECT_PLANE_HIGHLIGHT, -/* 0x24 */ TEXTURE_UNK_24, -/* 0x25 */ TEXTURE_UNK_25, -/* 0x26 */ TEXTURE_UNK_26, -/* 0x27 */ TEXTURE_UNK_27, -/* 0x28 */ TEXTURE_UNK_28, -/* 0x29 */ TEXTURE_UNK_29, -/* 0x2A */ TEXTURE_UNK_2A, -/* 0x2B */ TEXTURE_UNK_2B, -/* 0x2C */ TEXTURE_UNK_2C, -/* 0x2D */ TEXTURE_UNK_2D, -/* 0x2E */ TEXTURE_UNK_2E, -/* 0x2F */ TEXTURE_UNK_2F, -/* 0x30 */ TEXTURE_UNK_30, -/* 0x31 */ TEXTURE_UNK_31, +/* 0x24 */ TEXTURE_ICON_TIMETRIAL_ON_TOP, +/* 0x25 */ TEXTURE_ICON_TIMETRIAL_ON_BOTTOM, +/* 0x26 */ TEXTURE_ICON_TIMETRIAL_OFF_TOP, +/* 0x27 */ TEXTURE_ICON_TIMETRIAL_OFF_BOTTOM, +/* 0x28 */ TEXTURE_ICON_TIMETRIAL_OPT_ON, +/* 0x29 */ TEXTURE_ICON_TIMETRIAL_OPT_OFF, +/* 0x2A */ TEXTURE_ICON_TIMETRIAL_OPT_ON_HIGHLIGHT, +/* 0x2B */ TEXTURE_ICON_TIMETRIAL_OPT_OFF_HIGHLIGHT, +/* 0x2C */ TEXTURE_ICON_PLAYER_1, +/* 0x2D */ TEXTURE_ICON_PLAYER_2, +/* 0x2E */ TEXTURE_ICON_PLAYER_3, +/* 0x2F */ TEXTURE_ICON_PLAYER_4, +/* 0x30 */ TEXTURE_ICON_VEHICLE_TITLE, +/* 0x31 */ TEXTURE_ICON_TT_TITLE, /* 0x32 */ TEXTURE_ICON_PORTRAIT_KRUNCH, /* 0x33 */ TEXTURE_ICON_PORTRAIT_DIDDY, /* 0x34 */ TEXTURE_ICON_PORTRAIT_DRUMSTICK, @@ -983,7 +974,7 @@ typedef enum MenuTextures { /* 0x5B */ TEXTURE_UNK_5B, /* 0x5C */ TEXTURE_UNK_5C, /* 0x5D */ TEXTURE_UNK_5D, -/* 0x5E */ TEXTURE_UNK_5E, +/* 0x5E */ TEXTURE_ICON_TT_HEAD, /* 0x5F */ TEXTURE_UNK_5F, /* 0x60 */ TEXTURE_UNK_60, /* 0x61 */ TEXTURE_UNK_61,