X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=7952e8b8b1d4ef286dff3603d0b3bae03301341e;hb=8a0ac1d204ca31a92875d378138e3ec4889ef37c;hp=d3a0552923b5241810bd9c936b568ad3f89023d6;hpb=4bb90da7a98b741b4576099be6b89d324c8a80de;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index d3a05529..7952e8b8 100644 --- a/src/screens.c +++ b/src/screens.c @@ -201,13 +201,8 @@ static void PlayMenuMusic() void DrawHeadline() { - int text1_width = getTextWidth(PROGRAM_TITLE_STRING, FONT_TITLE_1); - int text2_width = getTextWidth(PROGRAM_COPYRIGHT_STRING, FONT_TITLE_2); - int x1 = SX + (SXSIZE - text1_width) / 2; - int x2 = SX + (SXSIZE - text2_width) / 2; - - DrawText(x1, SY + 8, PROGRAM_TITLE_STRING, FONT_TITLE_1); - DrawText(x2, SY + 46, PROGRAM_COPYRIGHT_STRING, FONT_TITLE_2); + DrawTextSCentered(8, FONT_TITLE_1, PROGRAM_TITLE_STRING); + DrawTextSCentered(46, FONT_TITLE_2, PROGRAM_COPYRIGHT_STRING); } static void ToggleFullscreenIfNeeded() @@ -238,8 +233,7 @@ void DrawMainMenu() { static LevelDirTree *leveldir_last_valid = NULL; char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:"); - int name_width = getTextWidth("Name:", FONT_MENU_1); - int level_width = getTextWidth("Level:", FONT_MENU_1); + int name_width, level_width; int i; UnmapAllGadgets(); @@ -306,6 +300,10 @@ void DrawMainMenu() DrawText(mSX + 32, mSY + 8*32, "Setup", FONT_MENU_1); DrawText(mSX + 32, mSY + 9*32, "Quit", FONT_MENU_1); + /* calculated after (possible) reload of custom artwork */ + name_width = getTextWidth(name_text, FONT_MENU_1); + level_width = getTextWidth("Level:", FONT_MENU_1); + DrawText(mSX + 32 + name_width, mSY + 2*32, setup.player_name, FONT_INPUT_1); DrawText(mSX + level_width + 5 * 32, mSY + 3*32, int2str(level_nr,3), FONT_VALUE_1); @@ -330,7 +328,7 @@ void DrawMainMenu() drawCursorXY(level_width/32 + 4, 1, IMG_MENU_BUTTON_LEFT); drawCursorXY(level_width/32 + 8, 1, IMG_MENU_BUTTON_RIGHT); - DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment", FONT_TITLE_2); + DrawTextSCentered(326, FONT_TITLE_2, "A Game by Artsoft Entertainment"); FadeToFront(); InitAnimation(); @@ -961,7 +959,7 @@ void DrawInfoScreen_Music() void HandleInfoScreen_Music(int button) { static struct MusicFileInfo *list = NULL; - int ystart = 150, ystep = 30; + int ystart = 150, dy = 30; int ybottom = SYSIZE - 20; int button_released = !button; @@ -994,6 +992,12 @@ void HandleInfoScreen_Music(int button) if (button_released || button == MB_MENU_INITIALIZE) { + int y = 0; + + if (button != MB_MENU_INITIALIZE) + if (list != NULL) + list = list->next; + if (list == NULL) { info_mode = INFO_MODE_MAIN; @@ -1007,22 +1011,68 @@ void HandleInfoScreen_Music(int button) ClearWindow(); DrawHeadline(); - DrawTextSCentered(100, FONT_TEXT_1, "The Game Background Music:"); + if (list->is_sound) + { + int sound = list->music; - DrawTextSCentered(ystart + 0 * ystep, FONT_TEXT_2, "Excerpt from"); - DrawTextFCentered(ystart + 1 * ystep, FONT_TEXT_3, "\"%s\"", list->title); - DrawTextSCentered(ystart + 2 * ystep, FONT_TEXT_2, "by"); - DrawTextFCentered(ystart + 3 * ystep, FONT_TEXT_3, "%s", list->artist); - DrawTextSCentered(ystart + 4 * ystep, FONT_TEXT_2, "from the album"); - DrawTextFCentered(ystart + 5 * ystep, FONT_TEXT_3, "\"%s\"", list->album); + if (sound_info[sound].loop) + PlaySoundLoop(sound); + else + PlaySound(sound); - DrawTextSCentered(ybottom, FONT_TEXT_4, - "Press any key or button for next page"); + DrawTextSCentered(100, FONT_TEXT_1, "The Game Background Sounds:"); + } + else + { + PlayMusic(list->music); + + DrawTextSCentered(100, FONT_TEXT_1, "The Game Background Music:"); + } + + if (strcmp(list->title, UNKNOWN_NAME) != 0) + { + if (strcmp(list->title_header, UNKNOWN_NAME) != 0) + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, list->title_header); + + DrawTextFCentered(ystart + y++ * dy, FONT_TEXT_3, "\"%s\"", list->title); + } + + if (strcmp(list->artist, UNKNOWN_NAME) != 0) + { + if (strcmp(list->artist_header, UNKNOWN_NAME) != 0) + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, list->artist_header); + else + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, "by"); + + DrawTextFCentered(ystart + y++ * dy, FONT_TEXT_3, "%s", list->artist); + } + + if (strcmp(list->album, UNKNOWN_NAME) != 0) + { + if (strcmp(list->album_header, UNKNOWN_NAME) != 0) + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, list->album_header); + else + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, "from the album"); - PlayMusic(list->music); + DrawTextFCentered(ystart + y++ * dy, FONT_TEXT_3, "\"%s\"", list->album); + } - list = list->next; + if (strcmp(list->year, UNKNOWN_NAME) != 0) + { + if (strcmp(list->year_header, UNKNOWN_NAME) != 0) + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, list->year_header); + else + DrawTextSCentered(ystart + y++ * dy, FONT_TEXT_2, "from the year"); + + DrawTextFCentered(ystart + y++ * dy, FONT_TEXT_3, "%s", list->year); + } + + DrawTextSCentered(ybottom, FONT_TEXT_4, + "Press any key or button for next page"); } + + if (list != NULL && list->is_sound && sound_info[list->music].loop) + PlaySoundLoop(list->music); } void DrawInfoScreen_Credits()