X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=46d9abac9ea7aef6cb5d048c3f3f94ce86a1812f;hb=d93d679ebb98f8466d0d0a8231356da1e6d2d62b;hp=0fd3aa62eb6a319d7523357ce0419e4b2d0f455f;hpb=dc76e42346b67941a3e3300974c39fc169cda2f3;p=rocksndiamonds.git diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 0fd3aa62..46d9abac 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; @@ -3052,44 +3052,45 @@ static void DrawTouchInputOverlay_ShowGridButtons(int alpha) { for (y = 0; y < grid_ysize; y++) { + int grid_button = overlay.grid_button[x][y]; + int alpha_draw = alpha; + + if (grid_button == CHAR_GRID_BUTTON_NONE) + continue; + + if (grid_button == overlay.grid_button_highlight) + alpha_draw = alpha_highlight; + + SDL_SetRenderDrawColor(sdl_renderer, 255, 255, 255, alpha_draw); + 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]) + if (x == 0 || overlay.grid_button[x - 1][y] != grid_button) { rect.x += 2; rect.w -= 2; } - if (x == grid_xsize - 1 || - overlay.grid_button[x + 1][y] != overlay.grid_button[x][y]) + if (x == grid_xsize - 1 || overlay.grid_button[x + 1][y] != grid_button) { rect.w -= 2; } - if (y == 0 || - overlay.grid_button[x][y - 1] != overlay.grid_button[x][y]) + if (y == 0 || overlay.grid_button[x][y - 1] != grid_button) { rect.y += 2; rect.h -= 2; } - if (y == grid_ysize - 1 || - overlay.grid_button[x][y + 1] != overlay.grid_button[x][y]) + if (y == grid_ysize - 1 || overlay.grid_button[x][y + 1] != grid_button) { rect.h -= 2; } - if (overlay.grid_button[x][y] == overlay.grid_button_highlight) - SDL_SetRenderDrawColor(sdl_renderer, 255, 255, 255, alpha_highlight); - else - SDL_SetRenderDrawColor(sdl_renderer, 255, 255, 255, alpha); - - if (overlay.grid_button[x][y] != CHAR_GRID_BUTTON_NONE) - SDL_RenderFillRect(sdl_renderer, &rect); + SDL_RenderFillRect(sdl_renderer, &rect); } } @@ -3103,10 +3104,10 @@ static void DrawTouchInputOverlay() static boolean deactivated = TRUE; static boolean show_grid = 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)