aboutsummaryrefslogtreecommitdiff
path: root/map.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-09-03 18:32:58 +0000
committerSimon Tatham <anakin@pobox.com>2005-09-03 18:32:58 +0000
commit41b9855da9e3eca71f9759dccdd04c2d714d9cc6 (patch)
tree09430816964b38e80593a557b34d0f2d422f4cc7 /map.c
parentd7c12b3122a2550209228675fe765e05d29c70a9 (diff)
downloadpuzzles-41b9855da9e3eca71f9759dccdd04c2d714d9cc6.zip
puzzles-41b9855da9e3eca71f9759dccdd04c2d714d9cc6.tar.gz
puzzles-41b9855da9e3eca71f9759dccdd04c2d714d9cc6.tar.bz2
puzzles-41b9855da9e3eca71f9759dccdd04c2d714d9cc6.tar.xz
Patches from James H. The usual stuff (memory leak fixes and 16-bit
cleanliness), plus he's enlarged the pencil-mark circles from TILESIZE/8 to TILESIZE/7. Makes no difference at all (thanks to integer division) when TILESIZE is the default of 20, but presumably helps at some other tile sizes. Fine by me. [originally from svn r6265]
Diffstat (limited to 'map.c')
-rw-r--r--map.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/map.c b/map.c
index 6ed9e14..e850d01 100644
--- a/map.c
+++ b/map.c
@@ -2169,6 +2169,7 @@ static void free_game(game_state *state)
sfree(state->map->regiony);
sfree(state->map);
}
+ sfree(state->pencil);
sfree(state->colouring);
sfree(state);
}
@@ -2606,11 +2607,11 @@ static void draw_error(drawing *dr, game_drawstate *ds, int x, int y)
static void draw_square(drawing *dr, game_drawstate *ds,
game_params *params, struct map *map,
- int x, int y, int v)
+ int x, int y, unsigned long v)
{
int w = params->w, h = params->h, wh = w*h;
- int tv, bv, xo, yo, errs, pencil, i, j, oldj;
- int show_numbers;
+ int tv, bv, xo, yo, i, j, oldj;
+ unsigned long errs, pencil, show_numbers;
errs = v & ERR_MASK;
v &= ~ERR_MASK;
@@ -2679,7 +2680,7 @@ static void draw_square(drawing *dr, game_drawstate *ds,
draw_circle(dr, COORD(x) + (xo+1)*TILESIZE/5,
COORD(y) + (yo+1)*TILESIZE/5,
- TILESIZE/8, COL_0 + c, COL_0 + c);
+ TILESIZE/7, COL_0 + c, COL_0 + c);
}
/*
@@ -2781,7 +2782,7 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
for (x = 0; x < w; x++) {
int tv = state->colouring[state->map->map[TE * wh + y*w+x]];
int bv = state->colouring[state->map->map[BE * wh + y*w+x]];
- int v;
+ unsigned long v;
if (tv < 0)
tv = FOUR;
@@ -2864,7 +2865,7 @@ static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
*/
for (y = 0; y < h; y++)
for (x = 0; x < w; x++) {
- int v = ds->todraw[y*w+x];
+ unsigned long v = ds->todraw[y*w+x];
if (ds->drawn[y*w+x] != v) {
draw_square(dr, ds, &state->p, state->map, x, y, v);
ds->drawn[y*w+x] = v;