shithub: puzzles

Download patch

ref: 3fc5a644a72e747b1f88125b38b2f178a9bc7ed3
parent: 52d4dae0a9a997b01d6410b42d1e1c503f039bc1
author: Simon Tatham <anakin@pobox.com>
date: Sun Mar 31 14:25:25 EDT 2013

Undead was not ever actually draw_update()ing to the edges of its
rectangle, which showed up on the Javascript front end since the JS
canvas doesn't start out defaulting to COL_BACKGROUND. Fixed it to
draw_update to the edge of its area, and while I'm at it, narrowed the
border (since this proves we didn't really need that much space
anyway).

[originally from svn r9795]

--- a/undead.c
+++ b/undead.c
@@ -1644,7 +1644,7 @@
 };
 
 #define TILESIZE (ds->tilesize)
-#define BORDER (TILESIZE/2)
+#define BORDER (TILESIZE/4)
 
 static char *interpret_move(game_state *state, game_ui *ui,
                             const game_drawstate *ds, int x, int y, int button)
@@ -1974,8 +1974,12 @@
 
 static void game_compute_size(game_params *params, int tilesize,
                               int *x, int *y) {
-    *x = tilesize + (2 + params->w) * tilesize;
-    *y = tilesize + (3 + params->h) * tilesize;
+    /* Ick: fake up `ds->tilesize' for macro expansion purposes */
+    struct { int tilesize; } ads, *ds = &ads;
+    ads.tilesize = tilesize;
+
+    *x = 2*BORDER+(params->w+2)*TILESIZE;
+    *y = 2*BORDER+(params->h+3)*TILESIZE;
     return;
 }
 
@@ -2410,8 +2414,8 @@
                 draw_rect(dr, BORDER+(ds->tilesize*(i+1))+1,
                           BORDER+(ds->tilesize*(j+2))+1, ds->tilesize-1,
                           ds->tilesize-1, COL_BACKGROUND);
-        draw_update(dr,BORDER+TILESIZE-1,BORDER+2*TILESIZE-1,
-                    (ds->w)*TILESIZE+3, (ds->h)*TILESIZE+3);
+        draw_update(dr, 0, 0, 2*BORDER+(ds->w+2)*TILESIZE,
+                    2*BORDER+(ds->h+3)*TILESIZE);
     }
 
     hchanged = FALSE;