You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
score menu finished now i think
This commit is contained in:
@@ -1568,7 +1568,7 @@ const struct Utf8CharLUTEntry main_hud_utf8_2byte_lut[] = {
|
||||
{0x00CB, 12, TEXT_DIACRITIC_UMLAUT_UPPERCASE, texture_hud_char_E}, // Ë
|
||||
{0x00CF, 12, TEXT_DIACRITIC_UMLAUT_UPPERCASE, texture_hud_char_I}, // Ï
|
||||
{0x00D6, 12, TEXT_DIACRITIC_UMLAUT_UPPERCASE, texture_hud_char_O}, // Ö
|
||||
{0x00D7, 14, 0, texture_hud_char_multiply}, // ×
|
||||
{0x00D7, 15, 0, texture_hud_char_multiply}, // ×
|
||||
{0x00DC, 12, TEXT_DIACRITIC_UMLAUT_UPPERCASE, texture_hud_char_U}, // Ü
|
||||
};
|
||||
|
||||
|
||||
@@ -1520,22 +1520,15 @@ ALIGNED8 static const Texture texture_menu_font_char_ampersand[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef VERSION_EU
|
||||
// 0x0700B840
|
||||
ALIGNED8 static const Texture texture_menu_font_char_umlaut[] = {
|
||||
#include "levels/menu/main_menu_seg7_eu.0B840.ia8.inc.c"
|
||||
};
|
||||
|
||||
// 0x0700B880
|
||||
ALIGNED8 static const Texture texture_menu_font_char_cedilla_mayus[] = {
|
||||
#include "levels/menu/main_menu_seg7_eu.0B880.ia8.inc.c"
|
||||
ALIGNED8 static const Texture texture_menu_font_char_cedilla[] = {
|
||||
#include "levels/menu/main_menu_seg7_cedilla.ia8.inc.c"
|
||||
};
|
||||
|
||||
// 0x0700B8C0
|
||||
ALIGNED8 static const Texture texture_menu_font_char_colon[] = {
|
||||
#include "levels/menu/main_menu_seg7_eu.0B8C0.ia8.inc.c"
|
||||
#include "levels/menu/main_menu_seg7_colon.ia8.inc.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
const struct AsciiCharLUTEntry menu_font_lut[] = {
|
||||
{NULL, 4}, // 32 " "
|
||||
@@ -1564,7 +1557,7 @@ const struct AsciiCharLUTEntry menu_font_lut[] = {
|
||||
{texture_menu_font_char_7, 7}, // 55 "7"
|
||||
{texture_menu_font_char_8, 7}, // 56 "8"
|
||||
{texture_menu_font_char_9, 7}, // 57 "9"
|
||||
{NULL, 0}, // 58 ":" (Unimplemented)
|
||||
{texture_menu_font_char_colon, 4}, // 58 ":"
|
||||
{NULL, 0}, // 59 ";" (Unimplemented)
|
||||
{NULL, 0}, // 60 "<" (Unimplemented)
|
||||
{NULL, 0}, // 61 "=" (Unimplemented)
|
||||
@@ -1629,14 +1622,15 @@ const struct AsciiCharLUTEntry menu_font_lut[] = {
|
||||
{texture_menu_font_char_X, 7}, // 120 "x"
|
||||
{texture_menu_font_char_Y, 6}, // 121 "y"
|
||||
{texture_menu_font_char_Z, 6}, // 122 "z"
|
||||
{NULL, 0}, // 123 "{" (Unimplemented)
|
||||
{texture_menu_font_char_mface1, 8}, // 123 "{" (First half of Mario face)
|
||||
{NULL, 0}, // 124 "|" (Unimplemented)
|
||||
{NULL, 0}, // 125 "}" (Unimplemented)
|
||||
{texture_menu_font_char_mface2, 8}, // 125 "}" (Second half of Mario face)
|
||||
{NULL, 0}, // 126 "~" (Unimplemented)
|
||||
};
|
||||
|
||||
const struct Utf8CharLUTEntry menu_font_utf8_2byte_lut[] = {
|
||||
{0x00D7, 6, 0, texture_menu_font_char_multiply}, // ×
|
||||
{0x00E7, 5, 0, texture_menu_font_char_cedilla}, // ç
|
||||
};
|
||||
|
||||
const struct Utf8CharLUTEntry menu_font_utf8_3byte_lut[] = {
|
||||
@@ -1660,6 +1654,8 @@ const struct Utf8LUT menu_font_utf8_lut = {
|
||||
&menu_font_utf8_missing_char,
|
||||
};
|
||||
|
||||
//texture_menu_font_char_umlaut
|
||||
|
||||
// Menu small font print table
|
||||
// 0x0700CD08
|
||||
// const Texture *const menu_font_lut[] = {
|
||||
|
||||
BIN
levels/menu/main_menu_seg7_cedilla.ia8.png
Normal file
BIN
levels/menu/main_menu_seg7_cedilla.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 104 B |
BIN
levels/menu/main_menu_seg7_colon.ia8.png
Normal file
BIN
levels/menu/main_menu_seg7_colon.ia8.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 B |
@@ -1198,6 +1198,15 @@ void print_menu_cursor(void) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes a number 0-3 and a string containing %s, and formats the string to contain the corresponding file letter A-D
|
||||
*/
|
||||
void string_insert_file_letter(char *dst, char *src, u8 index) {
|
||||
char *fileLetter = "A";
|
||||
fileLetter[0] = 'A' + index;
|
||||
sprintf(dst, src, fileLetter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints a hud string depending of the hud table list defined with text fade properties.
|
||||
*/
|
||||
@@ -1409,9 +1418,9 @@ void score_menu_display_message(s8 messageID) {
|
||||
}
|
||||
}
|
||||
|
||||
#define LEFT_X 62
|
||||
#define MIDDLE_X 160
|
||||
#define RIGHT_X 258
|
||||
#define SUBMENU_LEFT_BUTTON_X 62
|
||||
#define SUBMENU_MIDDLE_BUTTON_X 160
|
||||
#define SUBMENU_RIGHT_BUTTON_X 258
|
||||
|
||||
#define FADEOUT_TIMER 20
|
||||
|
||||
@@ -1463,9 +1472,9 @@ void print_score_menu_strings(void) {
|
||||
// Print menu names
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
|
||||
print_generic_string_centered(LEFT_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(MIDDLE_X, 35, LANGUAGE_ARRAY(textCopyFileButton));
|
||||
print_generic_string_centered(RIGHT_X, 35, LANGUAGE_ARRAY(textEraseFileButton));
|
||||
print_generic_string_centered(SUBMENU_LEFT_BUTTON_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(SUBMENU_MIDDLE_BUTTON_X, 35, LANGUAGE_ARRAY(textCopyFileButton));
|
||||
print_generic_string_centered(SUBMENU_RIGHT_BUTTON_X, 35, LANGUAGE_ARRAY(textEraseFileButton));
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
|
||||
|
||||
// Print file names
|
||||
@@ -1607,9 +1616,9 @@ void print_copy_menu_strings(void) {
|
||||
// Print menu names
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
|
||||
print_generic_string_centered(LEFT_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(MIDDLE_X, 35, LANGUAGE_ARRAY(textViewScore));
|
||||
print_generic_string_centered(RIGHT_X, 35, LANGUAGE_ARRAY(textEraseFileButton));
|
||||
print_generic_string_centered(SUBMENU_LEFT_BUTTON_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(SUBMENU_MIDDLE_BUTTON_X, 35, LANGUAGE_ARRAY(textViewScore));
|
||||
print_generic_string_centered(SUBMENU_RIGHT_BUTTON_X, 35, LANGUAGE_ARRAY(textEraseFileButton));
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
|
||||
// Print file names
|
||||
gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin);
|
||||
@@ -1724,7 +1733,6 @@ char *textMarioXJustErased = LANGUAGE_TEXT(
|
||||
*/
|
||||
void erase_menu_display_message(s8 messageID) {
|
||||
char str[50];
|
||||
char *fileLetter = "A";
|
||||
switch (messageID) {
|
||||
case ERASE_MSG_MAIN_TEXT:
|
||||
print_hud_lut_string_fade_centered(SCREEN_WIDTH/2, 35, LANGUAGE_ARRAY(textEraseFile));
|
||||
@@ -1737,8 +1745,7 @@ void erase_menu_display_message(s8 messageID) {
|
||||
print_generic_string_fade_centered(SCREEN_WIDTH/2, 190, LANGUAGE_ARRAY(textNoSavedDataExists));
|
||||
break;
|
||||
case ERASE_MSG_MARIO_ERASED:
|
||||
fileLetter[0] = 'A' + sSelectedFileIndex;
|
||||
sprintf(str, LANGUAGE_ARRAY(textMarioXJustErased), fileLetter);
|
||||
string_insert_file_letter(str, LANGUAGE_ARRAY(textMarioXJustErased), sSelectedFileIndex);
|
||||
print_generic_string_fade_centered(SCREEN_WIDTH/2, 190, str);
|
||||
break;
|
||||
case ERASE_MSG_SAVE_EXISTS: // unused
|
||||
@@ -1813,9 +1820,9 @@ void print_erase_menu_strings(void) {
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_begin);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
|
||||
|
||||
print_generic_string_centered(LEFT_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(MIDDLE_X, 35, LANGUAGE_ARRAY(textViewScore));
|
||||
print_generic_string_centered(RIGHT_X, 35, LANGUAGE_ARRAY(textCopyFileButton));
|
||||
print_generic_string_centered(SUBMENU_LEFT_BUTTON_X, 35, LANGUAGE_ARRAY(textReturn));
|
||||
print_generic_string_centered(SUBMENU_MIDDLE_BUTTON_X, 35, LANGUAGE_ARRAY(textViewScore));
|
||||
print_generic_string_centered(SUBMENU_RIGHT_BUTTON_X, 35, LANGUAGE_ARRAY(textCopyFileButton));
|
||||
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
|
||||
|
||||
// Print file names
|
||||
@@ -1905,28 +1912,32 @@ void print_sound_mode_menu_strings(void) {
|
||||
void print_score_file_castle_secret_stars(s8 fileIndex, s16 x, s16 y) {
|
||||
char secretStarsText[20];
|
||||
// Print number of castle secret stars
|
||||
sprintf(secretStarsText, "★×%d", save_file_get_total_star_count(fileIndex,
|
||||
sprintf(secretStarsText, "★× %d", save_file_get_total_star_count(fileIndex,
|
||||
COURSE_NUM_TO_INDEX(COURSE_BONUS_STAGES),
|
||||
COURSE_NUM_TO_INDEX(COURSE_MAX)));
|
||||
print_menu_generic_string(x, y, secretStarsText);
|
||||
}
|
||||
|
||||
char textMarioFace[] = LANGUAGE_TEXT(
|
||||
"{}%s",
|
||||
"{}%s",
|
||||
"{}%s",
|
||||
"マリオ%s");
|
||||
|
||||
/**
|
||||
* Prints course coins collected in a score menu save file.
|
||||
*/
|
||||
void print_score_file_course_coin_score(s8 fileIndex, s16 courseIndex, s16 x, s16 y) {
|
||||
char coinScoreText[20];
|
||||
char str[20];
|
||||
u8 stars = save_file_get_star_flags(fileIndex, courseIndex);
|
||||
char fileNames[][10] = {"----", "☺A", "☺B", "☺C", "☺D"};
|
||||
// come back to when doing JP
|
||||
//char fileNamesJP[][10] = {"----", "マリオA", "マリオB", "マリオC", "マリオD"};
|
||||
|
||||
// MYSCORE
|
||||
if (sScoreFileCoinScoreMode == 0) {
|
||||
// Print "[coin] x"
|
||||
print_menu_generic_string(x + 25, y, "✪×");
|
||||
// Print coin score
|
||||
sprintf(coinScoreText, "%d", save_file_get_course_coin_score(fileIndex, courseIndex));
|
||||
print_menu_generic_string(x + 41, y, coinScoreText);
|
||||
sprintf(str, "%d", save_file_get_course_coin_score(fileIndex, courseIndex));
|
||||
print_menu_generic_string(x + 41, y, str);
|
||||
// If collected, print 100 coin star
|
||||
if (stars & STAR_FLAG_ACT_100_COINS) {
|
||||
print_menu_generic_string(x + 70, y, "★");
|
||||
@@ -1934,14 +1945,20 @@ void print_score_file_course_coin_score(s8 fileIndex, s16 courseIndex, s16 x, s1
|
||||
}
|
||||
// HISCORE
|
||||
else {
|
||||
u16 coinScoreFile;
|
||||
// Print "[coin] x"
|
||||
print_menu_generic_string(x + 18, y, "✪×");
|
||||
// Print coin highscore
|
||||
sprintf(coinScoreText, "%d", (u16) save_file_get_max_coin_score(courseIndex) & 0xFFFF);
|
||||
print_menu_generic_string(x + 34, y, coinScoreText);
|
||||
sprintf(str, "%d", (u16) save_file_get_max_coin_score(courseIndex) & 0xFFFF);
|
||||
print_menu_generic_string(x + 34, y, str);
|
||||
// Print coin highscore file
|
||||
print_menu_generic_string(x + 60, y,
|
||||
fileNames[(save_file_get_max_coin_score(courseIndex) >> 16) & 0xFFFF]);
|
||||
coinScoreFile = (save_file_get_max_coin_score(courseIndex) >> 16) & 0xFFFF;
|
||||
if (coinScoreFile == 0) {
|
||||
print_menu_generic_string(x + 60, y, "----");
|
||||
} else {
|
||||
string_insert_file_letter(str, LANGUAGE_ARRAY(textMarioFace), coinScoreFile - 1);
|
||||
print_menu_generic_string(x + 60, y, str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1969,20 +1986,11 @@ void print_score_file_star_score(s8 fileIndex, s16 courseIndex, s16 x, s16 y) {
|
||||
print_menu_generic_string(x, y, starScoreText);
|
||||
}
|
||||
|
||||
#define MARIO_X 25
|
||||
#define FILE_LETTER_X 95
|
||||
#define LEVEL_NUM_PAD 3
|
||||
#define SECRET_STARS_PAD 6
|
||||
#define LEVEL_NAME_X 23
|
||||
#define STAR_SCORE_X 171
|
||||
#define MYSCORE_X 238
|
||||
#define HISCORE_X 231
|
||||
|
||||
char *textMario = LANGUAGE_TEXT(
|
||||
"MARIO",
|
||||
"MARIO",
|
||||
"MARIO",
|
||||
"マリオ");
|
||||
char *textMarioX = LANGUAGE_TEXT(
|
||||
"MARIO %s",
|
||||
"MARIO %s",
|
||||
"MARIO %s",
|
||||
"マリオ%s");
|
||||
|
||||
char *textHiScore = LANGUAGE_TEXT(
|
||||
"HI SCORE",
|
||||
@@ -2001,16 +2009,14 @@ char *textMyScore = LANGUAGE_TEXT(
|
||||
*/
|
||||
void print_save_file_scores(s8 fileIndex) {
|
||||
u32 i;
|
||||
char textFileLetter[2] = "A";
|
||||
char str[20];
|
||||
void **levelNameTable = segmented_to_virtual(languageTable[gInGameLanguage][1]);
|
||||
|
||||
textFileLetter[0] = fileIndex + 'A'; // get letter of file selected
|
||||
|
||||
// Print file name at top
|
||||
gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin);
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
|
||||
print_hud_lut_string(MARIO_X, 15, textMario);
|
||||
print_hud_lut_string(FILE_LETTER_X, 15, textFileLetter);
|
||||
string_insert_file_letter(str, LANGUAGE_ARRAY(textMarioX), fileIndex);
|
||||
print_hud_lut_string(25, 15, str);
|
||||
|
||||
// Print save file star count at top
|
||||
print_save_file_star_count(fileIndex, 124, 15);
|
||||
@@ -2020,22 +2026,21 @@ void print_save_file_scores(s8 fileIndex) {
|
||||
gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha);
|
||||
|
||||
for ((i = 0); (i < COURSE_STAGES_MAX); (i++)) {
|
||||
print_menu_generic_string((LEVEL_NAME_X + ((i < 9) * LEVEL_NUM_PAD)), (23 + (12 * (i + 1))), segmented_to_virtual(levelNameTable[i]));
|
||||
print_score_file_star_score( fileIndex, i, STAR_SCORE_X, (23 + (12 * (i + 1))));
|
||||
print_score_file_course_coin_score( fileIndex, i, 213, (23 + (12 * (i + 1))));
|
||||
print_menu_generic_string((23 + ((i < 9) * 3)), (23 + (12 * (i + 1))), segmented_to_virtual(levelNameTable[i]));
|
||||
print_score_file_star_score( fileIndex, i, 171, (23 + (12 * (i + 1))));
|
||||
print_score_file_course_coin_score(fileIndex, i, 213, (23 + (12 * (i + 1))));
|
||||
}
|
||||
|
||||
// Print castle secret stars text
|
||||
print_menu_generic_string(LEVEL_NAME_X + SECRET_STARS_PAD, 23 + 12 * 16,
|
||||
segmented_to_virtual(levelNameTable[25]));
|
||||
print_menu_generic_string(29, 215, segmented_to_virtual(levelNameTable[25]));
|
||||
// Print castle secret stars score
|
||||
print_score_file_castle_secret_stars(fileIndex, STAR_SCORE_X, 23 + 12 * 16);
|
||||
print_score_file_castle_secret_stars(fileIndex, 171, 215);
|
||||
|
||||
// Print current coin score mode
|
||||
if (sScoreFileCoinScoreMode == 0) {
|
||||
print_menu_generic_string(MYSCORE_X, 24, LANGUAGE_ARRAY(textMyScore));
|
||||
print_menu_generic_string(238, 24, LANGUAGE_ARRAY(textMyScore));
|
||||
} else {
|
||||
print_menu_generic_string(HISCORE_X, 24, LANGUAGE_ARRAY(textHiScore));
|
||||
print_menu_generic_string(231, 24, LANGUAGE_ARRAY(textHiScore));
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_end);
|
||||
|
||||
Reference in New Issue
Block a user