shithub: puzzles

Download patch

ref: e37c2c0ad2811eadbf8e6f470cd719c5c21142fa
parent: 14ad9d832eb8970770a893a65caa095829d5b9b3
author: Simon Tatham <anakin@pobox.com>
date: Fri Jul 29 12:45:52 EDT 2005

One more fix from Ben H. Also switched round the arena colour
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]

--- a/blackbox.c
+++ b/blackbox.c
@@ -273,7 +273,7 @@
     /* 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)
             goto done;
     }
     ret = NULL;
@@ -994,8 +994,8 @@
     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);