X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/9a6d429a8372cc31fb1aa7de8e5f079a47ecf148..f335fd5185bf40dfcf147826299d04ba84cc083a:/filling.c diff --git a/filling.c b/filling.c index a797d09..6a0abe9 100644 --- a/filling.c +++ b/filling.c @@ -1097,11 +1097,10 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, case '\r': case '\n': case '\b': - case '\177': button = 0; break; default: - if (!isdigit(button)) return NULL; + if (button < '0' || button > '9') return NULL; button -= '0'; if (button > (w == 2 && h == 2? 3: max(w, h))) return NULL; } @@ -1500,7 +1499,7 @@ static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state, if (flashy || !shading) { /* clear all background flags */ - } else if (ui->sel && ui->sel[y*w+x]) { + } else if (ui && ui->sel && ui->sel[y*w+x]) { flags |= HIGH_BG; } else if (v) { int size = dsf_size(ds->dsf_scratch, y*w+x); @@ -1509,7 +1508,7 @@ static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state, else if (size > v) flags |= ERROR_BG; } - if (ui->cur_visible && x == ui->cur_x && y == ui->cur_y) + if (ui && ui->cur_visible && x == ui->cur_x && y == ui->cur_y) flags |= CURSOR_SQ; /* @@ -1618,6 +1617,11 @@ static float game_flash_length(game_state *oldstate, game_state *newstate, return 0.0F; } +static int game_status(game_state *state) +{ + return state->completed ? +1 : 0; +} + static int game_timing_state(game_state *state, game_ui *ui) { return TRUE; @@ -1716,6 +1720,7 @@ const struct game thegame = { game_redraw, game_anim_length, game_flash_length, + game_status, TRUE, FALSE, game_print_size, game_print, FALSE, /* wants_statusbar */ FALSE, game_timing_state,