From d7bd2e39f66f09f4d8e37c779ec220b433141adc Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 31 Jul 2007 17:04:20 +0000 Subject: [PATCH] Experimental UI tweak enabled by a hacky environment variable: suppress the display of `this square can't be a light' blobs in a lit square, on the grounds that we already know _lit_ squares can't be lights. This makes the solved game look cleaner (I've always thought the detritus of blobs on some but not all non-light squares looked messy), but on the other hand it's slightly jarring during play. So I'm checking it in, but as a configurable option which is off by default. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7656 cda61777-01e9-0310-a592-d414129be87e --- lightup.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lightup.c b/lightup.c index 14c6974..4f4f569 100644 --- a/lightup.c +++ b/lightup.c @@ -2077,10 +2077,19 @@ static void tile_redraw(drawing *dr, game_drawstate *ds, game_state *state, int lcol = (ds_flags & DF_OVERLAP) ? COL_ERROR : COL_LIGHT; draw_circle(dr, dx + TILE_SIZE/2, dy + TILE_SIZE/2, TILE_RADIUS, lcol, COL_BLACK); - } else if (ds_flags & DF_IMPOSSIBLE) { - int rlen = TILE_SIZE / 4; - draw_rect(dr, dx + TILE_SIZE/2 - rlen/2, dy + TILE_SIZE/2 - rlen/2, - rlen, rlen, COL_BLACK); + } else if ((ds_flags & DF_IMPOSSIBLE)) { + static int draw_blobs_when_lit = -1; + if (draw_blobs_when_lit < 0) { + char *env = getenv("LIGHTUP_LIT_BLOBS"); + draw_blobs_when_lit = (!env || (env[0] == 'y' || + env[0] == 'Y')); + } + if (!(ds_flags & DF_LIT) || draw_blobs_when_lit) { + int rlen = TILE_SIZE / 4; + draw_rect(dr, dx + TILE_SIZE/2 - rlen/2, + dy + TILE_SIZE/2 - rlen/2, + rlen, rlen, COL_BLACK); + } } } -- 2.11.0