shithub: puzzles

Download patch

ref: dd7c1c983c980edab8af7e626fdbea48e04ff852
parent: 6ee8a4d71e9f4187bf8fd2b47a966d245172d2cc
author: Simon Tatham <anakin@pobox.com>
date: Sun Sep 4 08:40:23 EDT 2005

Another global environment-variable override across all games. This
one is <game>_TILESIZE, adjusting the game's default size. I
anticipate that this will probably _mostly_ be useful for debugging.

[originally from svn r6269]

--- a/midend.c
+++ b/midend.c
@@ -80,7 +80,7 @@
 
     int pressed_mouse_button;
 
-    int tilesize, winwidth, winheight;
+    int preferred_tilesize, tilesize, winwidth, winheight;
 };
 
 #define ensure(me) do { \
@@ -130,6 +130,26 @@
     else
 	me->drawing = NULL;
 
+    me->preferred_tilesize = ourgame->preferred_tilesize;
+    {
+        /*
+         * Allow an environment-based override for the default tile
+         * size by defining a variable along the lines of
+         * `NET_TILESIZE=15'.
+         */
+
+	char buf[80], *e;
+	int j, k, ts;
+
+	sprintf(buf, "%s_TILESIZE", me->ourgame->name);
+	for (j = k = 0; buf[j]; j++)
+	    if (!isspace((unsigned char)buf[j]))
+		buf[k++] = toupper((unsigned char)buf[j]);
+	buf[k] = '\0';
+	if ((e = getenv(buf)) != NULL && sscanf(e, "%d", &ts) == 1 && ts > 0)
+	    me->preferred_tilesize = ts;
+    }
+
     sfree(randseed);
 
     return me;
@@ -210,7 +230,7 @@
 	    me->ourgame->compute_size(me->params, max, &rx, &ry);
 	} while (rx <= *x && ry <= *y);
     } else
-	max = me->ourgame->preferred_tilesize + 1;
+	max = me->preferred_tilesize + 1;
     min = 1;
 
     /*