From: Simon Tatham Date: Tue, 17 May 2005 11:47:33 +0000 (+0000) Subject: Just for Gareth: a means of overriding individual game colour X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=b77d727eb4a822d3ee70b6c5e0949e76e6def5ea;p=sgt-puzzles.git Just for Gareth: a means of overriding individual game colour settings using environment variables. GTK frontend only, because this is an unsupported (and unprincipled) hack. [originally from svn r5792] --- diff --git a/gtk.c b/gtk.c index 5d78f4e..24b2cca 100644 --- a/gtk.c +++ b/gtk.c @@ -1131,9 +1131,24 @@ static frontend *new_window(char *game_id, char **error) fe->ncolours = ncolours; fe->colours = snewn(ncolours, GdkColor); for (i = 0; i < ncolours; i++) { - fe->colours[i].red = colours[i*3] * 0xFFFF; - fe->colours[i].green = colours[i*3+1] * 0xFFFF; - fe->colours[i].blue = colours[i*3+2] * 0xFFFF; + /* + * Just for Gareth: if you dislike any of the standard + * colours, here's your chance to configure them in a + * really hacky way. + */ + char buf[80], *e; + unsigned int r, g, b; + sprintf(buf, "PUZZLE_COLOUR_%d", i); + if ((e = getenv(buf)) != NULL && + sscanf(e, "%2x%2x%2x", &r, &g, &b) == 3) { + fe->colours[i].red = r * 0x101; + fe->colours[i].green = g * 0x101; + fe->colours[i].blue = b * 0x101; + } else { + fe->colours[i].red = colours[i*3] * 0xFFFF; + fe->colours[i].green = colours[i*3+1] * 0xFFFF; + fe->colours[i].blue = colours[i*3+2] * 0xFFFF; + } } success = snewn(ncolours, gboolean); gdk_colormap_alloc_colors(fe->colmap, fe->colours, ncolours,