X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=a20d5c2494b6a3783883fd17c4cf9f1943e4a290;hb=1e422c29292f0583391b0ce9e9c872b38f035ac0;hp=db347cdaa88e55ca0c28a2ce531b74fb2e7ef08c;hpb=e51177796149f37de339bda83558c3c49758be93;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index db347cda..a20d5c24 100644 --- a/src/screens.c +++ b/src/screens.c @@ -50,20 +50,21 @@ #define SETUP_MODE_SHORTCUTS_2 9 #define SETUP_MODE_SHORTCUTS_3 10 #define SETUP_MODE_SHORTCUTS_4 11 +#define SETUP_MODE_SHORTCUTS_5 12 /* sub-screens on the setup screen (generic) */ -#define SETUP_MODE_CHOOSE_ARTWORK 12 -#define SETUP_MODE_CHOOSE_OTHER 13 +#define SETUP_MODE_CHOOSE_ARTWORK 13 +#define SETUP_MODE_CHOOSE_OTHER 14 /* sub-screens on the setup screen (specific) */ -#define SETUP_MODE_CHOOSE_GAME_SPEED 14 -#define SETUP_MODE_CHOOSE_SCREEN_MODE 15 -#define SETUP_MODE_CHOOSE_SCROLL_DELAY 16 -#define SETUP_MODE_CHOOSE_GRAPHICS 17 -#define SETUP_MODE_CHOOSE_SOUNDS 18 -#define SETUP_MODE_CHOOSE_MUSIC 19 +#define SETUP_MODE_CHOOSE_GAME_SPEED 15 +#define SETUP_MODE_CHOOSE_SCREEN_MODE 16 +#define SETUP_MODE_CHOOSE_SCROLL_DELAY 17 +#define SETUP_MODE_CHOOSE_GRAPHICS 18 +#define SETUP_MODE_CHOOSE_SOUNDS 19 +#define SETUP_MODE_CHOOSE_MUSIC 20 -#define MAX_SETUP_MODES 20 +#define MAX_SETUP_MODES 21 /* for input setup functions */ #define SETUPINPUT_SCREEN_POS_START 0 @@ -235,7 +236,7 @@ static struct INFO_MODE_MAIN) #define DRAW_MODE_SETUP(i) ((i) >= SETUP_MODE_MAIN && \ - (i) <= SETUP_MODE_SHORTCUTS_4 ? (i) : \ + (i) <= SETUP_MODE_SHORTCUTS_5 ? (i) : \ (i) >= SETUP_MODE_CHOOSE_GRAPHICS && \ (i) <= SETUP_MODE_CHOOSE_MUSIC ? \ SETUP_MODE_CHOOSE_ARTWORK : \ @@ -944,7 +945,7 @@ static void DrawCursorAndText_Main_Ext(int nr, boolean active_text, int y = mSY + pos->y; DrawBackgroundForGraphic(x, y, pos->width, pos->height, button_graphic); - DrawGraphicThruMaskExt(drawto, x, y, button_graphic, 0); + DrawFixedGraphicThruMaskExt(drawto, x, y, button_graphic, 0); } if (visibleTextPos(pos_text) && text != NULL) @@ -1045,7 +1046,7 @@ static void drawCursorExt(int xpos, int ypos, boolean active, int graphic) graphic = BUTTON_ACTIVE(graphic); DrawBackgroundForGraphic(x, y, TILEX, TILEY, graphic); - DrawGraphicThruMaskExt(drawto, x, y, graphic, 0); + DrawFixedGraphicThruMaskExt(drawto, x, y, graphic, 0); } static void initCursor(int ypos, int graphic) @@ -2196,8 +2197,8 @@ void DrawInfoScreen_HelpAnim(int start, int max_anims, boolean init) ClearRectangleOnBackground(drawto, xstart, ystart2 + (i - start) * ystep, TILEX, TILEY); - DrawGraphicAnimationExt(drawto, xstart, ystart2 + (i - start) * ystep, - graphic, sync_frame, USE_MASKING); + DrawFixedGraphicAnimationExt(drawto, xstart, ystart2 + (i - start) * ystep, + graphic, sync_frame, USE_MASKING); if (init) DrawInfoScreen_HelpText(element, action, direction, i - start); @@ -4135,6 +4136,13 @@ static void execSetupShortcuts4() DrawSetupScreen(); } +static void execSetupShortcuts5() +{ + setup_mode = SETUP_MODE_SHORTCUTS_5; + + DrawSetupScreen(); +} + static void execExitSetup() { game_status = GAME_MODE_MAIN; @@ -4304,10 +4312,11 @@ static struct TokenInfo setup_info_input[] = static struct TokenInfo setup_info_shortcuts[] = { - { TYPE_ENTER_MENU, execSetupShortcuts1, "Various Keys" }, - { TYPE_ENTER_MENU, execSetupShortcuts2, "Player Focus" }, - { TYPE_ENTER_MENU, execSetupShortcuts3, "Tape Buttons" }, - { TYPE_ENTER_MENU, execSetupShortcuts4, "Sound & Music" }, + { TYPE_ENTER_MENU, execSetupShortcuts1, "Various Keys" }, + { TYPE_ENTER_MENU, execSetupShortcuts2, "Player Focus" }, + { TYPE_ENTER_MENU, execSetupShortcuts3, "Tape Buttons" }, + { TYPE_ENTER_MENU, execSetupShortcuts4, "Sound & Music" }, + { TYPE_ENTER_MENU, execSetupShortcuts5, "TAS Snap Keys" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupMain, "Back" }, @@ -4351,15 +4360,17 @@ static struct TokenInfo setup_info_shortcuts_2[] = static struct TokenInfo setup_info_shortcuts_3[] = { - { TYPE_KEYTEXT, NULL, "Tape Eject:", }, + { TYPE_KEYTEXT, NULL, "Eject Tape:", }, { TYPE_KEY, &setup.shortcut.tape_eject, "" }, - { TYPE_KEYTEXT, NULL, "Tape Stop:", }, + { TYPE_KEYTEXT, NULL, "Warp / Single Step:", }, + { TYPE_KEY, &setup.shortcut.tape_extra, "" }, + { TYPE_KEYTEXT, NULL, "Stop Tape:", }, { TYPE_KEY, &setup.shortcut.tape_stop, "" }, - { TYPE_KEYTEXT, NULL, "Tape Pause:", }, + { TYPE_KEYTEXT, NULL, "Pause / Unpause Tape:",}, { TYPE_KEY, &setup.shortcut.tape_pause, "" }, - { TYPE_KEYTEXT, NULL, "Tape Record:", }, + { TYPE_KEYTEXT, NULL, "Record Tape:", }, { TYPE_KEY, &setup.shortcut.tape_record, "" }, - { TYPE_KEYTEXT, NULL, "Tape Play:", }, + { TYPE_KEYTEXT, NULL, "Play Tape:", }, { TYPE_KEY, &setup.shortcut.tape_play, "" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" }, @@ -4369,11 +4380,11 @@ static struct TokenInfo setup_info_shortcuts_3[] = static struct TokenInfo setup_info_shortcuts_4[] = { - { TYPE_KEYTEXT, NULL, "Sound Effects (Normal):", }, + { TYPE_KEYTEXT, NULL, "Toggle Sound Effects (Normal):", }, { TYPE_KEY, &setup.shortcut.sound_simple, "" }, - { TYPE_KEYTEXT, NULL, "Sound Effects (Looping):", }, + { TYPE_KEYTEXT, NULL, "Toggle Sound Effects (Looping):", }, { TYPE_KEY, &setup.shortcut.sound_loops, "" }, - { TYPE_KEYTEXT, NULL, "Music:", }, + { TYPE_KEYTEXT, NULL, "Toggle Music:", }, { TYPE_KEY, &setup.shortcut.sound_music, "" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" }, @@ -4381,6 +4392,22 @@ static struct TokenInfo setup_info_shortcuts_4[] = { 0, NULL, NULL } }; +static struct TokenInfo setup_info_shortcuts_5[] = +{ + { TYPE_KEYTEXT, NULL, "Snap Left:", }, + { TYPE_KEY, &setup.shortcut.snap_left, "" }, + { TYPE_KEYTEXT, NULL, "Snap Right:", }, + { TYPE_KEY, &setup.shortcut.snap_right, "" }, + { TYPE_KEYTEXT, NULL, "Snap Up:", }, + { TYPE_KEY, &setup.shortcut.snap_up, "" }, + { TYPE_KEYTEXT, NULL, "Snap Down:", }, + { TYPE_KEY, &setup.shortcut.snap_down, "" }, + { TYPE_EMPTY, NULL, "" }, + { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" }, + + { 0, NULL, NULL } +}; + static Key getSetupKey() { Key key = KSYM_UNDEFINED; @@ -4684,6 +4711,11 @@ static void DrawSetupScreen_Generic() setup_info = setup_info_shortcuts_4; title_string = "Setup Shortcuts"; } + else if (setup_mode == SETUP_MODE_SHORTCUTS_5) + { + setup_info = setup_info_shortcuts_5; + title_string = "Setup Shortcuts"; + } DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, title_string); @@ -4981,8 +5013,8 @@ static void drawPlayerSetupInputInfo(int player_nr, boolean active) ClearRectangleOnBackground(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, TILEX, TILEY); - DrawGraphicThruMaskExt(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, - PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0); + DrawFixedGraphicThruMaskExt(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY, + PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0); if (setup.input[player_nr].use_joystick) { @@ -5338,7 +5370,7 @@ static boolean CalibrateJoystickMain(int player_nr) { for (x = 0; x < 3; x++) { - DrawGraphic(xpos + x - 1, ypos + y - 1, IMG_MENU_CALIBRATE_BLUE, 0); + DrawFixedGraphic(xpos + x - 1, ypos + y - 1, IMG_MENU_CALIBRATE_BLUE, 0); check[x][y] = FALSE; } } @@ -5362,7 +5394,7 @@ static boolean CalibrateJoystickMain(int player_nr) new_joystick_xmiddle = joy_x; new_joystick_ymiddle = joy_y; - DrawGraphic(xpos + last_x, ypos + last_y, IMG_MENU_CALIBRATE_RED, 0); + DrawFixedGraphic(xpos + last_x, ypos + last_y, IMG_MENU_CALIBRATE_RED, 0); FadeIn(REDRAW_FIELD); @@ -5434,8 +5466,10 @@ static boolean CalibrateJoystickMain(int player_nr) if (x != last_x || y != last_y) { - DrawGraphic(xpos + last_x, ypos + last_y, IMG_MENU_CALIBRATE_YELLOW, 0); - DrawGraphic(xpos + x, ypos + y, IMG_MENU_CALIBRATE_RED, 0); + DrawFixedGraphic(xpos + last_x, ypos + last_y, + IMG_MENU_CALIBRATE_YELLOW, 0); + DrawFixedGraphic(xpos + x, ypos + y, + IMG_MENU_CALIBRATE_RED, 0); last_x = x; last_y = y;