chiark / gitweb /
Undead was not ever actually draw_update()ing to the edges of its
authorSimon Tatham <anakin@pobox.com>
Sun, 31 Mar 2013 18:25:25 +0000 (18:25 +0000)
committerSimon Tatham <anakin@pobox.com>
Sun, 31 Mar 2013 18:25:25 +0000 (18:25 +0000)
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]

undead.c

index 1e0bbc41a1c2ce8f1298e787bd0563259aeed2fa..4cc4a124ad91ce63ef7530e9bae7c6a32255a246 100644 (file)
--- a/undead.c
+++ b/undead.c
@@ -1644,7 +1644,7 @@ struct game_drawstate {
 };
 
 #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 game_state *execute_move(game_state *state, char *move) {
 
 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 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
                 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;