shithub: puzzles

Download patch

ref: b77d727eb4a822d3ee70b6c5e0949e76e6def5ea
parent: c9f05ca3c0abf3b25b1a00caca72630ba6eb017e
author: Simon Tatham <anakin@pobox.com>
date: Tue May 17 07:47:33 EDT 2005

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]

--- a/gtk.c
+++ b/gtk.c
@@ -1131,9 +1131,24 @@
         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,