#define COORD(x) ( (x) * TILESIZE + BORDER )
#define FROMCOORD(x) ( ((x) - BORDER + TILESIZE) / TILESIZE - 1 )
-static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
+static char *interpret_move(game_state *state, game_ui *ui, const game_drawstate *ds,
int x, int y, int button)
{
int w = state->p.w, h = state->p.h /*, wh = w*h */;
return 0.0F;
}
-static int game_is_solved(game_state *state)
+static int game_status(game_state *state)
{
/*
- * If the player has died, we don't list the game as solved,
- * because they're more likely to undo and carry on than to give
- * up and start a new game.
+ * We never report the game as lost, on the grounds that if the
+ * player has died they're quite likely to want to undo and carry
+ * on.
*/
- return !state->gems;
+ return state->gems == 0 ? +1 : 0;
}
static int game_timing_state(game_state *state, game_ui *ui)
game_redraw,
game_anim_length,
game_flash_length,
- game_is_solved,
+ game_status,
FALSE, FALSE, game_print_size, game_print,
TRUE, /* wants_statusbar */
FALSE, game_timing_state,