chiark / gitweb /
Fix redundant redrawing in Pegs. Apparently it has always redrawn
authorSimon Tatham <anakin@pobox.com>
Sat, 7 Apr 2012 22:19:18 +0000 (22:19 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 7 Apr 2012 22:19:18 +0000 (22:19 +0000)
every single peg and hole on the board, every time it did any kind of
redraw at all, because I forgot to update the array in the drawstate
indicating the last-drawn state of each position. And nobody's noticed
until now!

[originally from svn r9447]

pegs.c

diff --git a/pegs.c b/pegs.c
index 4daa55f23a53615c7db1025308d68e9eba1a540f..d77860cf07aa0072c8e2bf0dca7ce3a6ff69482e 100644 (file)
--- a/pegs.c
+++ b/pegs.c
@@ -1237,6 +1237,7 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
                 (bgcolour != ds->bgcolour || /* always redraw when flashing */
                  v != ds->grid[y*w+x])) {
                draw_tile(dr, ds, COORD(x), COORD(y), v, bgcolour);
+                ds->grid[y*w+x] = v;
            }
        }