int w, h, n;
int *tiles;
int completed;
- int just_used_solve; /* used to suppress undo animation */
int used_solve; /* used to suppress completion flash */
int movecount, movetarget;
int last_movement_sense;
state->completed = state->movecount = 0;
state->movetarget = params->movetarget;
- state->used_solve = state->just_used_solve = FALSE;
+ state->used_solve = FALSE;
state->last_movement_sense = 0;
return state;
ret->movecount = state->movecount;
ret->movetarget = state->movetarget;
ret->used_solve = state->used_solve;
- ret->just_used_solve = state->just_used_solve;
ret->last_movement_sense = state->last_movement_sense;
return ret;
return dupstr("S");
}
+static int game_can_format_as_text_now(game_params *params)
+{
+ return TRUE;
+}
+
static char *game_text_format(game_state *state)
{
char *ret, *p, buf[80];
*/
for (i = 0; i < ret->n; i++)
ret->tiles[i] = i+1;
- ret->used_solve = ret->just_used_solve = TRUE;
+ ret->used_solve = TRUE;
ret->completed = ret->movecount = 1;
return ret;
return NULL;
ret = dup_game(from);
- ret->just_used_solve = FALSE; /* zero this in a hurry */
do {
tx = (cx - dx + from->w) % from->w;
static float game_anim_length(game_state *oldstate,
game_state *newstate, int dir, game_ui *ui)
{
- if ((dir > 0 && newstate->just_used_solve) ||
- (dir < 0 && oldstate->just_used_solve))
- return 0.0F;
- else
- return ANIM_TIME;
+ return ANIM_TIME;
}
static float game_flash_length(game_state *oldstate,
#endif
const struct game thegame = {
- "Sixteen", "games.sixteen",
+ "Sixteen", "games.sixteen", "sixteen",
default_params,
game_fetch_preset,
decode_params,
dup_game,
free_game,
TRUE, solve_game,
- TRUE, game_text_format,
+ TRUE, game_can_format_as_text_now, game_text_format,
new_ui,
free_ui,
encode_ui,