Cleanups to completion flashes: all four of these games used to

redraw the whole window _every_ time game_redraw() was called during
a flash. Now they only redraw the whole window every time the
background colour actually changes. Thanks to James H for much of
the work.

[originally from svn r6166]
This commit is contained in:
Simon Tatham
2005-08-05 17:17:23 +00:00
parent 56e01e54fa
commit c321a88408
4 changed files with 66 additions and 40 deletions

View File

@ -1432,6 +1432,7 @@ static game_drawstate *game_new_drawstate(game_state *state)
ds->started = 0;
ds->tileinner = ds->tilegap = 0; /* not decided yet */
ds->tiles = snewn(state->n, int);
ds->bgcolour = -1;
for (i = 0; i < state->n; i++)
ds->tiles[i] = -1;
@ -1564,7 +1565,6 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
* no animation); when we do we might well want to be looking
* at the tile colours from oldstate, not state. */
if ((oldstate && COL(oldstate,x,y) != col) ||
(flashtime > 0.0) ||
(ds->bgcolour != bgcolour) ||
(tile != ds->tiles[i])) {
tile_redraw(fe, ds, x, y, dright, dbelow, tile, bgcolour);