]> git.draconx.ca Git - rrace.git/blobdiff - src/x11.c
Fix bitmap generation in goal overlay feature.
[rrace.git] / src / x11.c
index 0326db95049afc12827bcf656e95053a982a5353..b4b0a2cd2db82c1a0c96addd291d362841e5e216 100644 (file)
--- a/src/x11.c
+++ b/src/x11.c
@@ -281,18 +281,15 @@ void x11_redraw_game(struct app_state *state, uint_fast32_t mask)
        unsigned sz = state->game_tile_sz;
        int i;
 
-       if (state->flags & FLAG_VIEW_GOAL_ON_GAME) {
-               for (i = 0; i < 3; i++) {
-                       buf[i] = state->board.goal[i];
-                       buf[i] = (gp[i] & ~GOAL_MASK) | (buf[i] << GOAL_SHIFT);
-               }
-               gp = buf;
-       }
+       if (state->flags & FLAG_VIEW_GOAL_ON_GAME)
+               gp = game_overlay_goal(&state->board, buf);
 
        /* Optimize the game end case where the outer frame is cleared */
-       if (((gp[0] | gp[1] | gp[2]) & ~GOAL_MASK) == 0) {
-               clear_border(display, game, sz);
-               mask &= GOAL_MASK;
+       if (mask & GAME_MASK & ~GOAL_MASK) {
+               if (((gp[0] | gp[1] | gp[2]) & ~GOAL_MASK) == 0) {
+                       clear_border(display, game, sz);
+                       mask &= GOAL_MASK;
+               }
        }
 
        for (i = 0; i < 25; i++) {