X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/94cfbe9dd4c59b36f41b7ef85b6da9d20274e23d..6361649b9748711b8fbeccae3e713518ab254cad:/lightup.c diff --git a/lightup.c b/lightup.c index a4e983d..20e9cec 100644 --- a/lightup.c +++ b/lightup.c @@ -727,6 +727,7 @@ static void place_lights(game_state *state, random_state *rs) debug_state(state); assert(!"place_lights failed to resolve overlapping lights!"); } + sfree(numindices); } /* Fills in all black squares with numbers of adjacent lights. */ @@ -1868,11 +1869,19 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, if (flags & F_BLACK) return nullret; if (action == FLIP_LIGHT) { +#ifdef STYLUS_BASED + if (flags & F_IMPOSSIBLE || flags & F_LIGHT) c = 'I'; else c = 'L'; +#else if (flags & F_IMPOSSIBLE) return nullret; c = 'L'; +#endif } else { +#ifdef STYLUS_BASED + if (flags & F_IMPOSSIBLE || flags & F_LIGHT) c = 'L'; else c = 'I'; +#else if (flags & F_LIGHT) return nullret; c = 'I'; +#endif } sprintf(buf, "%c%d,%d", (int)c, cx, cy); break; @@ -2057,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 @@ -2205,7 +2214,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,