diff options
| author | Simon Tatham <anakin@pobox.com> | 2005-09-23 12:50:51 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2005-09-23 12:50:51 +0000 |
| commit | 8a8474a31191804890c2fed03173832f0d81d81e (patch) | |
| tree | 353fdda26cc8cfe8d52efed00cd9ab1d9b3f53a4 | |
| parent | 733e3c6bc741cd1322b00545f600a548fac32563 (diff) | |
| download | puzzles-8a8474a31191804890c2fed03173832f0d81d81e.zip puzzles-8a8474a31191804890c2fed03173832f0d81d81e.tar.gz puzzles-8a8474a31191804890c2fed03173832f0d81d81e.tar.bz2 puzzles-8a8474a31191804890c2fed03173832f0d81d81e.tar.xz | |
Use game_set_size() to set up the temporary drawstate in
game_print(), wherever feasible. This fixes a specific bug in Loopy
(James H's new field ds->linewidth wasn't being set up, leading to
corrupted print output), but I've made the change in all affected
files because it also seems like a generally good idea to encourage
it for future games, to prevent other problems of this type.
There is one slight snag, which is that Map _can't_ do this because
its game_set_size() also initialises a blitter. I could fix this by
abstracting the common parts of Map's game_set_size() out into a
subfunction called by game_set_size() and also called directly by
game_print(); alternatively, I could introduce a means of
determining whether a `drawing *' was for screen or printing use.
Not sure which yet.
[originally from svn r6340]
| -rw-r--r-- | dominosa.c | 2 | ||||
| -rw-r--r-- | lightup.c | 3 | ||||
| -rw-r--r-- | loopy.c | 3 | ||||
| -rw-r--r-- | map.c | 1 | ||||
| -rw-r--r-- | net.c | 2 | ||||
| -rw-r--r-- | pattern.c | 2 | ||||
| -rw-r--r-- | rect.c | 2 | ||||
| -rw-r--r-- | slant.c | 2 | ||||
| -rw-r--r-- | solo.c | 2 |
9 files changed, 10 insertions, 9 deletions
@@ -1711,7 +1711,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); c = print_mono_colour(dr, 1); assert(c == COL_BACKGROUND); c = print_mono_colour(dr, 0); assert(c == COL_TEXT); @@ -2175,8 +2175,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; - ds->crad = 3*(tilesize-1)/8; + game_set_size(dr, ds, NULL, tilesize); /* * Border. @@ -2668,7 +2668,8 @@ static void game_print(drawing *dr, game_state *state, int tilesize) int ink = print_mono_colour(dr, 0); int x, y; game_drawstate ads, *ds = &ads; - ds->tilesize = tilesize; + + game_set_size(dr, ds, NULL, tilesize); /* * Dots. I'll deliberately make the dots a bit wider than the @@ -2956,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); @@ -2773,7 +2773,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); /* * Border. @@ -1199,7 +1199,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); /* * Border. @@ -2791,7 +2791,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); /* * Border. @@ -2001,7 +2001,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); /* * Border. @@ -3009,7 +3009,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize) /* Ick: fake up `ds->tilesize' for macro expansion purposes */ game_drawstate ads, *ds = &ads; - ads.tilesize = tilesize; + game_set_size(dr, ds, NULL, tilesize); /* * Border. |