Package: sgt-puzzles Version: 8605-2 Severity: wishlist Tags: patch Recently a change was made to slant that provides shading of filled squares. However I find that the resulting checkerboard pattern of filled and non-filled squares is distracting, preventing me from easily seeing the bigger structures and making it harder to determine a next move.
Therefore I would like to suggest to apply one of the two attached patches. The first and simplest one adds an environment variable to override the game default and disable shading of filled squares. The second is a bit more advanced and also allows runtime toggling of the shading by clicking the middle mouse button or pressing the S or F key. Arjan -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.27.21 (PREEMPT) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages sgt-puzzles depends on: ii libatk1.0-0 1.28.0-1 The ATK accessibility toolkit ii libc6 2.9-27 GNU C Library: Shared libraries ii libcairo2 1.8.8-2 The Cairo 2D vector graphics libra ii libfontconfig1 2.6.0-4 generic font configuration library ii libfreetype6 2.3.9-5 FreeType 2 font engine, shared lib ii libglib2.0-0 2.22.1-1 The GLib library of C routines ii libgtk2.0-0 2.18.2-1 The GTK+ graphical user interface ii libpango1.0-0 1.26.0-1 Layout and rendering of internatio Versions of packages sgt-puzzles recommends: ii epiphany-browser [www-br 2.28.0-4 Intuitive GNOME web browser ii iceweasel [www-browser] 3.5.2-1 lightweight web browser based on M ii links2 [www-browser] 2.2-1+b1 Web browser running in both graphi ii lynx-cur [www-browser] 2.8.8dev.1-1 Text-mode WWW Browser with NLS sup ii w3m [www-browser] 0.5.2-2.1 WWW browsable pager with excellent ii yelp 2.28.0+webkit-1 Help browser for GNOME sgt-puzzles suggests no packages. -- no debconf information
--- sgt-puzzles-8605.ORIG/slant.c 2009-10-09 04:45:36.000000000 +0200 +++ sgt-puzzles-8605.ENV/slant.c 2009-10-09 05:01:19.000000000 +0200 @@ -1884,13 +1884,19 @@ static void draw_tile(drawing *dr, game_ int chesscolour = (x ^ y) & 1; int fscol = chesscolour ? COL_SLANT2 : COL_SLANT1; int bscol = chesscolour ? COL_SLANT1 : COL_SLANT2; + static int shade_filled = -1; + + if (shade_filled < 0) { + char *env = getenv("SLANT_SHADE_FILLED"); + shade_filled = (!env || (env[0] == 'y' || env[0] == 'Y')); + } clip(dr, COORD(x), COORD(y), TILESIZE, TILESIZE); draw_rect(dr, COORD(x), COORD(y), TILESIZE, TILESIZE, (v & FLASH) ? COL_GRID : (v & CURSOR) ? COL_CURSOR : - (v & (BACKSLASH | FORWSLASH)) ? COL_LOWLIGHT : + (shade_filled && (v & (BACKSLASH | FORWSLASH))) ? COL_LOWLIGHT : COL_BACKGROUND); /*
--- sgt-puzzles-8605.ORIG/slant.c 2009-10-09 04:45:36.000000000 +0200 +++ sgt-puzzles-8605.TOGGLE/slant.c 2009-10-09 05:05:28.000000000 +0200 @@ -1597,12 +1597,15 @@ static char *game_text_format(game_state struct game_ui { int cur_x, cur_y, cur_visible; + int shade_filled; }; static game_ui *new_ui(game_state *state) { game_ui *ui = snew(game_ui); + char *env = getenv("SLANT_SHADE_FILLED"); ui->cur_x = ui->cur_y = ui->cur_visible = 0; + ui->shade_filled = (!env || (env[0] == 'y' || env[0] == 'Y')); return ui; } @@ -1657,6 +1660,7 @@ static void game_changed_state(game_ui * #define ERR_BL 0x00010000L #define ERR_BR 0x00020000L #define CURSOR 0x00040000L +#define SHADEFILL 0x00080000L struct game_drawstate { int tilesize; @@ -1702,6 +1706,10 @@ static char *interpret_move(game_state * y = FROMCOORD(y); if (x < 0 || y < 0 || x >= w || y >= h) return NULL; + } else if (button == MIDDLE_BUTTON || button == 'f' || button == 'F' || + button == 's' || button == 'S') { + ui->shade_filled = !ui->shade_filled; + return ""; } else if (IS_CURSOR_SELECT(button)) { if (!ui->cur_visible) { ui->cur_visible = 1; @@ -1890,7 +1898,7 @@ static void draw_tile(drawing *dr, game_ draw_rect(dr, COORD(x), COORD(y), TILESIZE, TILESIZE, (v & FLASH) ? COL_GRID : (v & CURSOR) ? COL_CURSOR : - (v & (BACKSLASH | FORWSLASH)) ? COL_LOWLIGHT : + (v & SHADEFILL) ? COL_LOWLIGHT : COL_BACKGROUND); /* @@ -2012,6 +2020,8 @@ static void game_redraw(drawing *dr, gam ds->todraw[(y+2)*(w+2)+(x+1)] |= T_R; ds->todraw[(y+1)*(w+2)+(x+2)] |= L_B; ds->todraw[(y+2)*(w+2)+(x+2)] |= C_TL; + if (ui->shade_filled) + ds->todraw[(y+1)*(w+2)+(x+1)] |= SHADEFILL; if (err) { ds->todraw[(y+1)*(w+2)+(x+1)] |= ERRSLASH | ERR_T_L | ERR_L_T | ERR_C_TL; @@ -2023,6 +2033,8 @@ static void game_redraw(drawing *dr, gam ds->todraw[(y+1)*(w+2)+(x+1)] |= FORWSLASH; ds->todraw[(y+1)*(w+2)+(x+2)] |= L_T | C_TL; ds->todraw[(y+2)*(w+2)+(x+1)] |= T_L | C_TL; + if (ui->shade_filled) + ds->todraw[(y+1)*(w+2)+(x+1)] |= SHADEFILL; if (err) { ds->todraw[(y+1)*(w+2)+(x+1)] |= ERRSLASH | ERR_L_B | ERR_T_R;