X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=e9bd5ddafb579833420f042c1310960e14c79377;hb=e57078603232563176d90bb543ce2bc3a15b889e;hp=18fe8f12b44f4b4a272d54e9fd1607de748eb848;hpb=6435b79b71c4033de78ab3e611ee63f6a2147874;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 18fe8f12..e9bd5dda 100644 --- a/src/screens.c +++ b/src/screens.c @@ -106,8 +106,14 @@ static void drawCursorExt(int xpos, int ypos, int color, int graphic) ypos += MENU_SCREEN_START_YPOS; +#if 1 + DrawBackground(mSX + xpos * TILEX, mSY + ypos * TILEY, TILEX, TILEY); + DrawGraphicThruMaskExt(drawto, mSX + xpos * TILEX, mSY + ypos * TILEY, + graphic, 0); +#else DrawBackground(SX + xpos * 32, SY + ypos * 32, TILEX, TILEY); DrawGraphicThruMask(xpos, ypos, graphic, 0); +#endif } static void initCursor(int ypos, int graphic) @@ -141,10 +147,10 @@ static void PlaySound_Menu_Continue(int sound) void DrawHeadline() { - int font1_xsize = getFontWidth(FONT_TITLE_1); - int font2_xsize = getFontWidth(FONT_TITLE_2); - int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING) * font1_xsize) / 2; - int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_xsize) / 2; + int font1_width = getFontWidth(FONT_TITLE_1); + int font2_width = getFontWidth(FONT_TITLE_2); + int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING) * font1_width) / 2; + int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_width) / 2; DrawText(x1, SY + 8, PROGRAM_TITLE_STRING, FONT_TITLE_1); DrawText(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2); @@ -178,7 +184,9 @@ void DrawMainMenu() { static LevelDirTree *leveldir_last_valid = NULL; char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:"); - int name_width = getFontWidth(FONT_MENU_1) * strlen("Name:"); + int font_width = getFontWidth(FONT_MENU_1); + int name_width = font_width * strlen("Name:"); + int level_width = font_width * strlen("Level:"); int i; #if 0 @@ -240,39 +248,39 @@ void DrawMainMenu() DrawHeadline(); - DrawText(mSX + 32, mSY + 2*32, name_text, FONT_MENU_1); - DrawText(mSX + 32 + name_width, mSY + 2*32, setup.player_name, FONT_INPUT); - DrawText(mSX + 32, mSY + 3*32, "Level:", FONT_MENU_1); - DrawText(mSX + 11 * 32, mSY + 3*32, int2str(level_nr,3), FONT_VALUE_1); - DrawText(mSX + 32, mSY + 4*32, "Hall Of Fame", FONT_MENU_1); - DrawText(mSX + 32, mSY + 5*32, "Level Creator", FONT_MENU_1); - DrawText(mSY + 32, mSY + 6*32, "Info Screen", FONT_MENU_1); - DrawText(mSX + 32, mSY + 7*32, "Start Game", FONT_MENU_1); - DrawText(mSX + 32, mSY + 8*32, "Setup", FONT_MENU_1); - DrawText(mSX + 32, mSY + 9*32, "Quit", FONT_MENU_1); + DrawText(mSX + 32, mSY + 2*32, name_text, FONT_MENU_1); + DrawText(mSX + 32, mSY + 3*32, "Level:", FONT_MENU_1); + DrawText(mSX + 32, mSY + 4*32, "Hall Of Fame", FONT_MENU_1); + DrawText(mSX + 32, mSY + 5*32, "Level Creator", FONT_MENU_1); + DrawText(mSY + 32, mSY + 6*32, "Info Screen", FONT_MENU_1); + DrawText(mSX + 32, mSY + 7*32, "Start Game", FONT_MENU_1); + DrawText(mSX + 32, mSY + 8*32, "Setup", FONT_MENU_1); + DrawText(mSX + 32, mSY + 9*32, "Quit", 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); DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS, TRUE); - DrawTextF(7*32 + 6, 3*32 + 9, FONT_TEXT_3, "%d-%d", - leveldir_current->first_level, - leveldir_current->last_level); + DrawTextF(mSX + 32 + level_width - 2, mSY + 3*32 + 1, FONT_TEXT_3, "%d-%d", + leveldir_current->first_level, leveldir_current->last_level); + /* if (leveldir_current->readonly) + */ { - DrawTextF(15*32 + 6, 3*32 + 9 - 7, FONT_TEXT_3, "READ"); - DrawTextF(15*32 + 6, 3*32 + 9 + 7, FONT_TEXT_3, "ONLY"); + DrawTextF(mSX + level_width + 9*32 - 2, + mSY + 3*32 + 1 - 7, FONT_TEXT_3, "READ"); + DrawTextF(mSX + level_width + 9*32 - 2, + mSY + 3*32 + 1 + 7, FONT_TEXT_3, "ONLY"); } for(i=0; i<8; i++) initCursor(i, (i == 1 || i == 6 ? IMG_MENU_BUTTON_RIGHT :IMG_MENU_BUTTON)); -#if 0 - DrawGraphic(10, 3, IMG_MENU_BUTTON_LEFT, 0); - DrawGraphic(14, 3, IMG_MENU_BUTTON_RIGHT, 0); -#else - drawCursorXY(10, 1, IMG_MENU_BUTTON_LEFT); - drawCursorXY(14, 1, IMG_MENU_BUTTON_RIGHT); -#endif + 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); @@ -630,11 +638,7 @@ static int helpscreen_action[] = IMG_WALL_CRUMBLED, -1, HA_NEXT, - IMG_INFO_FONT_EM_1, 160, - IMG_INFO_FONT_EM_2, 160, - IMG_INFO_FONT_EM_3, 160, - IMG_INFO_FONT_EM_4, 160, - IMG_INFO_FONT_EM_5, 40, HA_NEXT, + IMG_FONT_GAME_INFO, -1, HA_NEXT, IMG_EMERALD, -1, HA_NEXT, @@ -705,9 +709,11 @@ static int helpscreen_action[] = IMG_EXPLOSION, 16, IMG_EMPTY_SPACE, 20, HA_NEXT, - EL_DYNABOMB_INCREASE_NUMBER, -1, HA_NEXT, + IMG_DYNABOMB_INCREASE_NUMBER, -1, HA_NEXT, + + IMG_DYNABOMB_INCREASE_SIZE, -1, HA_NEXT, - EL_DYNABOMB_INCREASE_SIZE, -1, HA_NEXT, + IMG_DYNABOMB_INCREASE_POWER, -1, HA_NEXT, IMG_SPACESHIP_RIGHT, 16, IMG_SPACESHIP_UP, 16, @@ -837,6 +843,7 @@ static char *helpscreen_eltext[][2] = {"Dyna Bomb: Explodes in 4 directions","with variable explosion size"}, {"Dyna Bomb: Increases the number of", "dyna bombs available at a time"}, {"Dyna Bomb: Increases the size of", "explosion of dyna bombs"}, + {"Dyna Bomb: Increases the power of", "explosion of dyna bombs"}, {"Spaceship: Moves at the left side", "of walls; don't touch it!"}, {"Bug: Moves at the right side", "of walls; don't touch it!"}, {"Butterfly: Moves at the right side", "of walls; don't touch it!"}, @@ -1234,7 +1241,7 @@ void HandleHelpScreen(int button) void HandleTypeName(int newxpos, Key key) { static int xpos = 0, ypos = 2; - int font_width = getFontWidth(FONT_INPUT_ACTIVE); + int font_width = getFontWidth(FONT_INPUT_1_ACTIVE); int name_width = getFontWidth(FONT_MENU_1) * strlen("Name:"); int startx = mSX + 32 + name_width; int starty = mSY + ypos * 32; @@ -1243,8 +1250,8 @@ void HandleTypeName(int newxpos, Key key) { xpos = newxpos; - DrawText(startx, starty, setup.player_name, FONT_INPUT_ACTIVE); - DrawText(startx + xpos * font_width, starty, "_", FONT_INPUT_ACTIVE); + DrawText(startx, starty, setup.player_name, FONT_INPUT_1_ACTIVE); + DrawText(startx + xpos * font_width, starty, "_", FONT_INPUT_1_ACTIVE); return; } @@ -1264,20 +1271,20 @@ void HandleTypeName(int newxpos, Key key) setup.player_name[xpos + 1] = 0; xpos++; - DrawText(startx, starty, setup.player_name, FONT_INPUT_ACTIVE); - DrawText(startx + xpos * font_width, starty, "_", FONT_INPUT_ACTIVE); + DrawText(startx, starty, setup.player_name, FONT_INPUT_1_ACTIVE); + DrawText(startx + xpos * font_width, starty, "_", FONT_INPUT_1_ACTIVE); } else if ((key == KSYM_Delete || key == KSYM_BackSpace) && xpos > 0) { xpos--; setup.player_name[xpos] = 0; - DrawText(startx + xpos * font_width, starty, "_ ", FONT_INPUT_ACTIVE); + DrawText(startx + xpos * font_width, starty, "_ ", FONT_INPUT_1_ACTIVE); } else if (key == KSYM_Return && xpos > 0) { - DrawText(startx, starty, setup.player_name, FONT_INPUT); - DrawText(startx + xpos * font_width, starty, " ", FONT_INPUT_ACTIVE); + DrawText(startx, starty, setup.player_name, FONT_INPUT_1); + DrawText(startx + xpos * font_width, starty, " ", FONT_INPUT_1_ACTIVE); SaveSetup(); game_status = MAINMENU; @@ -2002,7 +2009,7 @@ static void drawSetupValue(int pos) if (setup_info[pos].type & TYPE_QUERY) { value_string = ""; - font_nr = FONT_INPUT_ACTIVE; + font_nr = FONT_INPUT_1_ACTIVE; } } else if (setup_info[pos].type & TYPE_STRING) @@ -2304,8 +2311,13 @@ static void drawPlayerSetupInputInfo(int player_nr) custom_key = setup.input[player_nr].key; - DrawText(mSX+11*32, mSY+2*32, int2str(player_nr + 1, 1), FONT_INPUT_ACTIVE); + DrawText(mSX+11*32, mSY+2*32, int2str(player_nr +1, 1), FONT_INPUT_1_ACTIVE); +#if 1 + DrawGraphicThruMaskExt(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, + PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0); +#else DrawGraphicThruMask(8, 2, PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0); +#endif if (setup.input[player_nr].use_joystick) { @@ -2499,9 +2511,9 @@ void CustomizeKeyboard(int player_nr) step_nr = 0; DrawText(mSX, mSY + (2+2*step_nr)*32, - customize_step[step_nr].text, FONT_INPUT_ACTIVE); + customize_step[step_nr].text, FONT_INPUT_1_ACTIVE); DrawText(mSX, mSY + (2+2*step_nr+1)*32, - "Key:", FONT_INPUT_ACTIVE); + "Key:", FONT_INPUT_1_ACTIVE); DrawText(mSX + 4*32, mSY + (2+2*step_nr+1)*32, getKeyNameFromKey(*customize_step[step_nr].key), FONT_VALUE_OLD); @@ -2564,9 +2576,9 @@ void CustomizeKeyboard(int player_nr) /* query next key binding */ DrawText(mSX, mSY+(2+2*step_nr)*32, - customize_step[step_nr].text, FONT_INPUT_ACTIVE); + customize_step[step_nr].text, FONT_INPUT_1_ACTIVE); DrawText(mSX, mSY+(2+2*step_nr+1)*32, - "Key:", FONT_INPUT_ACTIVE); + "Key:", FONT_INPUT_1_ACTIVE); DrawText(mSX + 4*32, mSY+(2+2*step_nr+1)*32, getKeyNameFromKey(*customize_step[step_nr].key), FONT_VALUE_OLD);