aboutsummaryrefslogtreecommitdiff
path: root/grid.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2020-04-12 14:37:47 +0100
committerSimon Tatham <anakin@pobox.com>2020-04-12 14:37:47 +0100
commit2a0e91bc76738e36e89abd4dcae5f13bc063d210 (patch)
treee95c69ee9d476a1d4bb49694eff7963363c0115f /grid.c
parent97a0dc0fee0b9e7d1cd488309e03a19e942d1a57 (diff)
downloadpuzzles-2a0e91bc76738e36e89abd4dcae5f13bc063d210.zip
puzzles-2a0e91bc76738e36e89abd4dcae5f13bc063d210.tar.gz
puzzles-2a0e91bc76738e36e89abd4dcae5f13bc063d210.tar.bz2
puzzles-2a0e91bc76738e36e89abd4dcae5f13bc063d210.tar.xz
grid.c: fix size miscalculation in Floret tiling.
A Floret grid of height h usually alternates columns of h hexagonal florets with columns of h-1. An exception is when h=1, in which case alternating columns of 1 and 0 florets would leave the grid disconnected. So in that situation all columns have 1 floret in them, and the starting y-coordinate oscillates to make the grid tile sensibly. However, that special case wasn't taken account of when calculating the grid height. As a result the anomalous extra florets in the height-1 tiling fell off the bottom of the puzzle window.
Diffstat (limited to 'grid.c')
-rw-r--r--grid.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/grid.c b/grid.c
index 89bde18..5ea3743 100644
--- a/grid.c
+++ b/grid.c
@@ -2378,6 +2378,8 @@ static void grid_size_floret(int width, int height,
*tilesize = FLORET_TILESIZE;
*xextent = (6*px+3*qx)/2 * (width-1) + 4*qx + 2*px;
*yextent = (5*qy-4*py) * (height-1) + 4*qy + 2*ry;
+ if (height == 1)
+ *yextent += (5*qy-4*py)/2;
}
static grid *grid_new_floret(int width, int height, const char *desc)