struct game_ui {
puzzle_size r, c; /* cursor position */
unsigned int cursor_show: 1;
- unsigned int cheated: 1;
};
static game_ui *new_ui(game_state *state)
{
struct game_ui *ui = snew(game_ui);
ui->r = ui->c = 0;
- ui->cursor_show = ui->cheated = FALSE;
+ ui->cursor_show = FALSE;
return ui;
}
static char *encode_ui(game_ui *ui)
{
- return dupstr(ui->cheated ? "1" : "0");
+ return NULL;
}
static void decode_ui(game_ui *ui, char *encoding)
{
- ui->cheated = (*encoding == '1');
}
typedef struct drawcell {
ret = nfmtstr(40, "%c,%d,%d",
buf->colour == M_BLACK ? 'B' : 'W',
buf->square.r, buf->square.c);
- ui->cheated = TRUE; /* you are being naughty ;-) */
+ /* We used to set a flag here in the game_ui indicating
+ * that the player had used the hint function. I (SGT)
+ * retired it, on grounds of consistency with other games
+ * (most of these games will still flash to indicate
+ * completion if you solved and undid it, so why not if
+ * you got a hint?) and because the flash is as much about
+ * checking you got it all right than about congratulating
+ * you on a job well done. */
}
sfree(buf);
return ret;
static void game_changed_state(game_ui *ui, game_state *oldstate,
game_state *newstate)
{
- if (newstate->has_cheated) ui->cheated = TRUE;
}
static float game_anim_length(game_state *oldstate, game_state *newstate,
static float game_flash_length(game_state *from, game_state *to,
int dir, game_ui *ui)
{
- if (!from->was_solved && to->was_solved && !ui->cheated)
+ if (!from->was_solved && to->was_solved && !to->has_cheated)
return FLASH_TIME;
return 0.0F;
}
-static int game_is_solved(game_state *state)
+static int game_status(game_state *state)
{
- return state->was_solved;
+ return state->was_solved ? +1 : 0;
}
/* ----------------------------------------------------------------------
game_redraw,
game_anim_length,
game_flash_length,
- game_is_solved,
+ game_status,
TRUE, FALSE, game_print_size, game_print,
FALSE, /* wants_statusbar */
FALSE, game_timing_state,