Noticed recently that bitcount16() isn't 16-bit clean due to signed
[sgt/puzzles] / map.c
diff --git a/map.c b/map.c
index e850d01..5943683 100644 (file)
--- a/map.c
+++ b/map.c
@@ -1868,7 +1868,7 @@ static game_state *new_game(midend *me, game_params *params, char *desc)
      * outlines by the judicious use of diagonally divided squares.
      */
     {
-        random_state *rs = random_init(desc, strlen(desc));
+        random_state *rs = random_new(desc, strlen(desc));
         int *squares = snewn(wh, int);
         int done_something;
 
@@ -2240,7 +2240,15 @@ static char *game_text_format(game_state *state)
 }
 
 struct game_ui {
-    int drag_colour;                   /* -1 means no drag active */
+    /*
+     * drag_colour:
+     * 
+     *  - -2 means no drag currently active.
+     *  - >=0 means we're dragging a solid colour.
+     *         - -1 means we're dragging a blank space, and drag_pencil
+     *           might or might not add some pencil-mark stipples to that.
+     */
+    int drag_colour;
     int drag_pencil;
     int dragx, dragy;
     int show_numbers;
@@ -2505,8 +2513,7 @@ static void game_set_size(drawing *dr, game_drawstate *ds,
 {
     ds->tilesize = tilesize;
 
-    if (ds->bl)
-        blitter_free(dr, ds->bl);
+    assert(!ds->bl);                   /* set_size is never called twice */
     ds->bl = blitter_new(dr, TILESIZE+3, TILESIZE+3);
 }
 
@@ -2949,6 +2956,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
 
     /* Ick: fake up `ds->tilesize' for macro expansion purposes */
     struct { int tilesize; } ads, *ds = &ads;
+    /* We can't call game_set_size() here because we don't want a blitter */
     ads.tilesize = tilesize;
 
     ink = print_mono_colour(dr, 0);
@@ -3115,7 +3123,7 @@ const struct game thegame = {
     TRUE, TRUE, game_print_size, game_print,
     game_wants_statusbar,
     FALSE, game_timing_state,
-    0,                                /* mouse_priorities */
+    0,                                /* flags */
 };
 
 #ifdef STANDALONE_SOLVER