Streamline `slantsolver' a bit (avoid showing advanced working on
Document hard mode in Slant, and also fix an obvious memory
Introduce an environment variable setting (SLANT_SWAP_BUTTONS=yes)
A bunch of new reasoning techniques in the Slant solver, leading to
Cleanups to completion flashes: all four of these games used to
New puzzle: `Light Up', by James H.
Environment-based configuration wasn't sensibly usable in games with
Patch from James H: tinker with the presets on SLOW_SYSTEMs.
Bug fix from James H: solve_game() was returning error messages in
I am COMPLETELY GORMLESS. The Solo grid generator, when eliminating
Cleanups from James H: a few missing statics, a precautionary cast
Slant uses the same generation strategy as Solo, despite not having
Bah! There's _always_ one. Display glitch corrected.
New puzzle: `Slant', picked from the Japanese-language section of
Various cleanups and clarifications to devel.but; some from Richard
New end-game approach to Black Box. Instead of revealing the ball
One more fix from Ben H. Also switched round the arena colour
Various fixes and cleanups suggested by Ben Hutchings:
Ben Hutchings reports that gcc 4 gives an optimiser warning because
Patches from Ben Hutchings to fix failures of sscanf error checking.
Tweak a paragraph after discussion with Simon.
Shiny new developer documentation to replace the old sketchy HACKING
The very core of cross() is capable of suffering integer overflow on
Another diagnostic mode for Untangle: if compiled with
(GTK only so far) Allow the argument passed to a game binary to be
Solve animation (currently only in Untangle) was failing to set
The `Solve' operation now rotates and/or reflects the solution grid
James H profiled the new Same Game grid generator and discovered it
Until now, Same Game has been the only puzzle in this collection
I've been meaning to do this for ages: all the Makefiles now give
The Untangle completion flash was weedy and anaemic; beef it up a
Some attempt to explain Dominosa for those unfamiliar with dominos. (Not sure
Another fix from Chris: Guess's allow-blanks mode wasn't allowing
Fix to Chris's patch in r6106 (also from Chris).
Switch Untangle to using `long' rather than `int' in its internal
Quite a few instances of the Cardinal Error of Ctype were turned up
Two tiny cleanup patches from James H.
Get rid of the malloc in shuffle(), by defining a subfunction
Patch from Chris Emerson: rather than dynamically calling
Black Box: fix "reveal" button location, explain what's meant by the
Use \q{} and \by in Black Box docs.
I keep forgetting to do things when adding a new puzzle, so here's a
Bah, there's always one: failed to `svn add' blackbox.c itself!
Another game from James H: `Black Box'.
Cleanups and memory leak fixes from James H.
Sanity-checking patch from Phil Bordelon: since Solo can't cope with
New puzzle: `Untangle', cloned (with the addition of random grid
Improve speed of grid generation: I've found something simple I can
Add Dominosa printout support.
Introduce a `shuffle' utility function.
game_timing_state() now has access to the game_ui. This means that
Change of policy on game_changed_state(). Originally, it was called
Subtle UI change to Mines. Although I mostly find the unified left-
Alter the `Octagon' board preset so that instead of presenting you
Missing quit on error was leading to an assertion failure on some
Move various printf()s after declarations.
Unify the two solvers in Solo. nsolve has now had recursion
Refactoring from James H: the highlight and lowlight colour setup
Revert the code that assumed that incoming parameters used a random generation
Add a `full' parameter to validate_params(), analogous to the one in
Enhancements to mkfiles.pl and Recipe to arrange for the auxiliary
It's been a new year for a while now.
revert supposed typo -- I have no brain
Add HACKING to main doc build.
Add a completion flash when you get down to a single peg.
Refactored the game_size() interface, which was getting really
James Harvey points out a missing ifdef.
Clarify that diagonal moves are not permitted in Pegs.
There's always one. Forgot to add Pegs to `make install'.
Peg Solitaire implementation, complete with a random board
Document keyboard controls for Flip
Fix bounds checking for Flip cursor control.
James H's patch for a keyboard-controlled cursor in Flip.
Allow game backends to use even special keystrokes such as N and Q;
draw_polygon() and draw_circle() have always had a portability
James Harvey points out that entering an invalid game ID can affect
Prevent drags from being started outside the playing area, which was
Preset names retrieved from the environment must be dupstr()ed. How
Load and Save are now supported on all three desktop platforms, and
General robustness patch from James Harvey:
Attempting to begin a drag from (i.e. just click on) the hint pegs
Add a cast whose absence was causing a (-Werror-exacerbated) compile
Validation of random-state-type game descriptions was broken. This
When serialising this game, it's probably better to keep the
Make peg removal accessible from the keyboard.
New {en,de}code_ui functions should be static. Oops.
Actually implemented the serialise/deserialise functions in
More serialisation changes: the game_aux_info structure has now been
Move a rogue declaration to the top of its block.
Another function pair required for serialisation; these ones save
Annoying special cases for Mines.