- 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 (x == 0 || overlay.grid_button[x - 1][y] != grid_button)
+ {
+ rect.x += border_size;
+ rect.w -= border_size;
+
+ outline_border |= MV_LEFT;
+ }
+
+ if (x == grid_xsize - 1 || overlay.grid_button[x + 1][y] != grid_button)
+ {
+ rect.w -= border_size;
+
+ outline_border |= MV_RIGHT;
+ }
+
+ if (y == 0 || overlay.grid_button[x][y - 1] != grid_button)
+ {
+ rect.y += border_size;
+ rect.h -= border_size;
+
+ outline_border |= MV_UP;
+ }
+
+ if (y == grid_ysize - 1 || overlay.grid_button[x][y + 1] != grid_button)
+ {
+ rect.h -= border_size;
+
+ outline_border |= MV_DOWN;
+ }
+
+ if (draw_outlined)
+ {
+ int rect_x = rect.x +
+ (outline_border & MV_LEFT ? border_size : 0);
+ int rect_w = rect.w -
+ (outline_border & MV_LEFT ? border_size : 0) -
+ (outline_border & MV_RIGHT ? border_size : 0);
+
+ if (outline_border & MV_LEFT)
+ RenderFillRectangle(rect.x, rect.y, border_size, rect.h);
+
+ if (outline_border & MV_RIGHT)
+ RenderFillRectangle(rect.x + rect.w - border_size, rect.y,
+ border_size, rect.h);