mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00

Every call to draw_cell() was drawing a region including the whole border of the cell, so that the calls overlapped. So if the cursor moved left or up, then a COL_CURSOR outline would be drawn around the new cell, and then a COL_GRID outline would be drawn around the old cell, overwriting part of the cursor border. I've fixed this in the rigorous way, by making draw_cell() calls cover disjoint areas of the puzzle canvas, and using clip() to enforce that. So now the single DRAWFLAG_CURSOR is replaced by a system of four flags, indicating that the cell being drawn is the actual cursor position, or the cell below it (hence containing the cursor's bottom border), or to its right (needing the left border), or below _and_ to the right (you still need the single pixel at the cursor's bottom right corner!). Also, to ensure the cursor edges are drawn even on the bottom or right grid boundaries, draw_cell() is called for a set of virtual cells beyond the actual grid bounds, with additional flags telling it not to draw an actual puzzle cell there, just the relevant pieces of border.
This is the README accompanying the source code to Simon Tatham's puzzle collection. The collection's web site is at <https://www.chiark.greenend.org.uk/~sgtatham/puzzles/>. The puzzle collection is built using CMake <https://cmake.org/>. To compile in the simplest way (on any of Linux, Windows or Mac), run these commands in the source directory: cmake . cmake --build . The manual is provided in Windows Help format for the Windows build; in text format for anyone who needs it; and in HTML for the Mac OS X application and for the web site. It is generated from a Halibut source file (puzzles.but), which is the preferred form for modification. To generate the manual in other formats, rebuild it, or learn about Halibut, visit the Halibut website at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
Description
Languages
C
93.3%
JavaScript
1.4%
Objective-C
1.1%
CMake
1.1%
HTML
0.8%
Other
2.2%