selection in the redraw function, so that locked squares are no
longer displayed once the game is at an end. (It looked untidy and
disorienting for lighter-coloured locked squares to suddenly become
darker when the box was opened. You can still flip back and forth to
your previous game state using undo/redo if you want to compare the
results against your lock pattern.)
[originally from svn r6150]
/* check each ball will fit on that grid */
for (i = 0; i < nballs; i++) {
int x = bmp[(i+1)*2 + 0], y = bmp[(i+1)*2 + 1];
/* check each ball will fit on that grid */
for (i = 0; i < nballs; i++) {
int x = bmp[(i+1)*2 + 0], y = bmp[(i+1)*2 + 1];
- if (x < 0 || y < 0 || x > params->w || y > params->h)
+ if (x < 0 || y < 0 || x >= params->w || y >= params->h)
if (gs_tile != ds_tile || gs->reveal != ds->reveal || force) {
int bcol, bg;
if (gs_tile != ds_tile || gs->reveal != ds->reveal || force) {
int bcol, bg;
- bg = (gs_tile & BALL_LOCK) ? COL_LOCK :
- gs->reveal ? COL_BACKGROUND : COL_COVER;
+ bg = (gs->reveal ? COL_BACKGROUND :
+ (gs_tile & BALL_LOCK) ? COL_LOCK : COL_COVER);
draw_rect(fe, dx, dy, TILE_SIZE, TILE_SIZE, bg);
draw_rect_outline(fe, dx, dy, TILE_SIZE, TILE_SIZE, COL_GRID);
draw_rect(fe, dx, dy, TILE_SIZE, TILE_SIZE, bg);
draw_rect_outline(fe, dx, dy, TILE_SIZE, TILE_SIZE, COL_GRID);