From James Harvey (via a period of collaborative polishing), a patch
[sgt/puzzles] / lightup.c
index 75a6219..5b97b2b 100644 (file)
--- a/lightup.c
+++ b/lightup.c
@@ -2066,7 +2066,7 @@ static void tile_redraw(drawing *dr, game_drawstate *ds, game_state *state,
         draw_rect(dr, dx, dy, TILE_SIZE, TILE_SIZE, COL_BLACK);
         if (ds_flags & DF_NUMBERED) {
             int ccol = (ds_flags & DF_NUMBERWRONG) ? COL_ERROR : COL_LIGHT;
-            char str[10];
+            char str[32];
 
             /* We know that this won't change over the course of the game
              * so it's OK to ignore this when calculating whether or not
@@ -2160,6 +2160,11 @@ static float game_flash_length(game_state *oldstate, game_state *newstate,
     return 0.0F;
 }
 
+static int game_is_solved(game_state *state)
+{
+    return state->completed;
+}
+
 static int game_timing_state(game_state *state, game_ui *ui)
 {
     return TRUE;
@@ -2214,7 +2219,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
            if (ds_flags & DF_BLACK) {
                draw_rect(dr, dx, dy, TILE_SIZE, TILE_SIZE, ink);
                if (ds_flags & DF_NUMBERED) {
-                   char str[10];
+                   char str[32];
                    sprintf(str, "%d", GRID(state, lights, x, y));
                    draw_text(dr, dx + TILE_SIZE/2, dy + TILE_SIZE/2,
                              FONT_VARIABLE, TILE_SIZE*3/5,
@@ -2262,6 +2267,7 @@ const struct game thegame = {
     game_redraw,
     game_anim_length,
     game_flash_length,
+    game_is_solved,
     TRUE, FALSE, game_print_size, game_print,
     FALSE,                            /* wants_statusbar */
     FALSE, game_timing_state,