#include <assert.h>
#include <ctype.h>
-#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
{
const int i = w*ui->y + ui->x;
char buf[64];
- sprintf(buf, "%d_%d", i, button);
ui->x = ui->y = -1;
- return dupstr(buf);
+ if (state->board[i] == button) {
+ return ""; /* no change - just update ui */
+ } else {
+ sprintf(buf, "%d_%d", i, button);
+ return dupstr(buf);
+ }
}
}
new_state->cheated = TRUE;
} else {
char *endptr;
- const int i = strtol(move, &endptr, errno = 0);
+ const int i = strtol(move, &endptr, 0);
int value;
- if (errno == ERANGE) return NULL;
if (endptr == move) return NULL;
if (*endptr != '_') return NULL;
move = endptr + 1;
assert(ds);
/*
+ * Clip to the grid square.
+ */
+ clip(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ TILE_SIZE, TILE_SIZE);
+
+ /*
* Clear the square.
*/
draw_rect(dr,
- BORDER + x*TILE_SIZE + 1,
- BORDER + y*TILE_SIZE + 1,
- TILE_SIZE - 1,
- TILE_SIZE - 1,
+ BORDER + x*TILE_SIZE,
+ BORDER + y*TILE_SIZE,
+ TILE_SIZE,
+ TILE_SIZE,
(flags & CURSOR_BG ? COL_HIGHLIGHT :
flags & ERROR_BG ? COL_ERROR :
flags & CORRECT_BG ? COL_CORRECT : COL_BACKGROUND));
/*
+ * Draw the grid lines.
+ */
+ draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ BORDER + (x+1)*TILE_SIZE, BORDER + y*TILE_SIZE, COL_GRID);
+ draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
+ BORDER + x*TILE_SIZE, BORDER + (y+1)*TILE_SIZE, COL_GRID);
+
+ /*
* Draw the number.
*/
if (n) {
BORDER_WIDTH,
BORDER_WIDTH,
COL_GRID);
-
+
+ unclip(dr);
+
draw_update(dr,
- BORDER + x*TILE_SIZE - 1,
- BORDER + y*TILE_SIZE - 1,
- TILE_SIZE + 3,
- TILE_SIZE + 3);
+ BORDER + x*TILE_SIZE,
+ BORDER + y*TILE_SIZE,
+ TILE_SIZE,
+ TILE_SIZE);
}
static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state,
/*
* Draw grid.
*/
+ print_line_width(dr, TILE_SIZE / 64);
draw_grid(dr, ds, state, NULL, FALSE, borders, FALSE);
/*
TRUE, FALSE, game_print_size, game_print,
FALSE, /* wants_statusbar */
FALSE, game_timing_state,
- 0, /* flags */
+ REQUIRE_NUMPAD, /* flags */
};
#ifdef STANDALONE_SOLVER /* solver? hah! */