X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=df5b32425fe870d6c0d9547b19bafdc5b5e1bdcd;hb=bb8d97ed1a8c0a01d87d85aaccbe3dbf1ed2adab;hp=d1d14a825bc525c7e35fae31c03f0b3fb9267d6b;hpb=969000b44b047ef2d77619bd3882a3f09eb1787d;p=rocksndiamonds.git diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index d1d14a82..df5b3242 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -3014,10 +3014,10 @@ static void DrawTouchInputOverlay_ShowGrid(int alpha) static void DrawTouchInputOverlay_ShowGridButtons(int alpha) { - static int alpha_max = SDL_ALPHA_OPAQUE / 2; - static int alpha_step = 5; static int alpha_direction = 0; static int alpha_highlight = 0; + int alpha_max = ALPHA_FROM_TRANSPARENCY(setup.touch.transparency); + int alpha_step = ALPHA_FADING_STEPSIZE(alpha_max); SDL_Rect rect; int grid_xsize = overlay.grid_xsize; int grid_ysize = overlay.grid_ysize; @@ -3050,14 +3050,39 @@ static void DrawTouchInputOverlay_ShowGridButtons(int alpha) for (x = 0; x < grid_xsize; x++) { - rect.x = (x + 0) * video.screen_width / grid_xsize; - rect.w = (x + 1) * video.screen_width / grid_xsize - rect.x; - for (y = 0; y < grid_ysize; y++) { + rect.x = (x + 0) * video.screen_width / grid_xsize; rect.y = (y + 0) * video.screen_height / grid_ysize; + rect.w = (x + 1) * video.screen_width / grid_xsize - rect.x; rect.h = (y + 1) * video.screen_height / grid_ysize - rect.y; + if (x == 0 || + overlay.grid_button[x - 1][y] != overlay.grid_button[x][y]) + { + rect.x += 2; + rect.w -= 2; + } + + if (x == grid_xsize - 1 || + overlay.grid_button[x + 1][y] != overlay.grid_button[x][y]) + { + rect.w -= 2; + } + + if (y == 0 || + overlay.grid_button[x][y - 1] != overlay.grid_button[x][y]) + { + rect.y += 2; + rect.h -= 2; + } + + if (y == grid_ysize - 1 || + overlay.grid_button[x][y + 1] != overlay.grid_button[x][y]) + { + rect.h -= 2; + } + if (overlay.grid_button[x][y] == overlay.grid_button_highlight) SDL_SetRenderDrawColor(sdl_renderer, 255, 255, 255, alpha_highlight); else @@ -3077,12 +3102,11 @@ static void DrawTouchInputOverlay() static boolean initialized = FALSE; static boolean deactivated = TRUE; static boolean show_grid = FALSE; - static boolean show_grid_buttons = FALSE; static int width = 0, height = 0; - static int alpha_max = SDL_ALPHA_OPAQUE / 2; - static int alpha_step = 5; static int alpha_last = -1; static int alpha = 0; + int alpha_max = ALPHA_FROM_TRANSPARENCY(setup.touch.transparency); + int alpha_step = ALPHA_FADING_STEPSIZE(alpha_max); boolean active = (overlay.enabled && overlay.active); if (!active && deactivated) @@ -3108,19 +3132,15 @@ static void DrawTouchInputOverlay() else if (deactivated) show_grid = FALSE; - if (overlay.show_grid_buttons) - show_grid_buttons = TRUE; - else if (deactivated) - show_grid_buttons = FALSE; - if (show_grid) DrawTouchInputOverlay_ShowGrid(alpha); - if (show_grid_buttons) - DrawTouchInputOverlay_ShowGridButtons(alpha); + DrawTouchInputOverlay_ShowGridButtons(alpha); - if (show_grid || show_grid_buttons) - return; + return; + + + // !!! VIRTUAL BUTTONS FROM IMAGE FILE NOT USED ANYMORE !!! if (!initialized) {