aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Minor const fix.Simon Tatham2006-12-24
| | | | [originally from svn r7013]
* HTML Help support for Puzzles, with the same kind of automaticSimon Tatham2006-12-24
| | | | | | fallback behaviour as PuTTY's support. [originally from svn r7009]
* Ability to build a .CHM for Puzzles. I haven't yet arranged for itSimon Tatham2006-12-23
| | | | | | to be used by the Windows binaries; that's the next step. [originally from svn r7006]
* Small printing fix from Gary Wong. Shows up when printing withSimon Tatham2006-12-21
| | | | | | | solutions: the rightmost and lowermost lines of the grid never get solution lines drawn on them. [originally from svn r7003]
* Fix a couple of rounding errors in Inertia's gem-drawing code whichSimon Tatham2006-11-24
| | | | | | | didn't happen to show up at the default resolution but made the gem slightly skewed at larger sizes. [originally from svn r6919]
* Optionally label the colours in Guess with letters of the alphabet.Simon Tatham2006-11-23
| | | | | | | | | | Labels are toggled on and off by pressing L (just like Map). Might help colour-blind users, and might also make it easier to describe game positions to other people because `abbc' has fewer syllables than `red, yellow, yellow, green', and hugely fewer letters if you're typing it. [originally from svn r6916]
* Patch I've had lurking around for over a year and not remembered toSimon Tatham2006-11-20
| | | | | | | | | | | | | commit: arrange that midend_set_timer(), hence game_timing_state(), is called when the game_ui is changed. This allows timed games to work by obscuring the initial layout until an initial click causes it to be revealed, without requiring that they store that reveal operation as a move in the undo chain. Not that any games actually do this, but it's clearly a sensible thing to want to do: since game_timing_state() _receives_ a game_ui as a parameter, obviously it should be consulted when the game_ui changes. [originally from svn r6914]
* James H's Palm-compatibility updates to the latest Loopy changes,Simon Tatham2006-11-01
| | | | | | | working around bugs in the Palm compiler and removing Palm- incompatible diagnostics such as fprintf. [originally from svn r6889]
* Mike's changes to dsf.c alter the internal storage format of dsfSimon Tatham2006-11-01
| | | | | | | | | structures, meaning that ad-hoc initialisation now doesn't work. Hence, this checkin converts all ad-hoc dsf initialisations into calls to dsf_init() or snew_dsf(). At least, I _hope_ I've caught all of them. [originally from svn r6888]
* Minimal (i.e., lame) update to Loopy documentation to match reality -- it'sJacob Nevins2006-10-29
| | | | | | | been wrong since r6299. [originally from svn r6884] [r6299 == c389f623f66fe5296f7ef5c66d88884607b82cff]
* I'm sick and tired of having unfinished puzzle code lying around onSimon Tatham2006-10-29
| | | | | | | | | | | | | several different systems in strange directories. So I'm creating an `unfinished' directory within source control, and centralising all my half-finished, half-baked or otherwise half-arsed puzzle implementations into it. Herewith Sokoban (playable but rubbish generation), Pearl (Masyu - rubbish generation and nothing else), Path (Number Link - rubbish generation and nothing else) and NumGame (the Countdown numbers game - currently just a solver and not even a generator yet). [originally from svn r6883]
* r6880 accidentally backed out r6780. That's what I get for acceptingSimon Tatham2006-10-29
| | | | | | | | | source files from Mike rather than patches, and not adequately checking the result... [originally from svn r6882] [r6780 == f05c25347d66821d928668a7e87dffbf3ffed027] [r6880 == b9547673c6462bf73e642328300479df6df71d7b]
* Mike Pinna has done some major reworking of the Loopy solver, givingSimon Tatham2006-10-28
| | | | | | rise to a new Hard difficulty level. [originally from svn r6880]
* Couple of minor errors.Simon Tatham2006-10-17
| | | | [originally from svn r6872]
* Forgot to put the new .R files into makedist.sh. Oops!Simon Tatham2006-09-06
| | | | [originally from svn r6849]
* Jesse W points out that I forgot to update the OS X front end inSimon Tatham2006-08-25
| | | | | | | | | r6420, so both drawing.c _and_ the front end were prepending the time to the front of the Mines status bar, leading to a double timestamp. [originally from svn r6796] [r6420 == 240b6cab8ce8729b7270a0411ab39038814058f1]
* Always something. Mention `svn add'ing the .R file in the new-puzzleSimon Tatham2006-08-05
| | | | | | | checklist, and mention the now-not-version-controlled list.c in svn:ignore. [originally from svn r6782]
* I'm sick of repeatedly adding and removing local changes to RecipeSimon Tatham2006-08-05
| | | | | | | | | | | | | | | | | | | | | | when testing a new game, so here's a new architecture for the Recipe file. mkfiles.pl now supports several new features: - an `!include' directive, which accepts wildcards - += to append to an existing object group definition - the ability to divert output to an arbitrary file. So now each puzzle has a `.R' file containing a fragment of Recipe code describing that puzzle, and the central Recipe does `!include *.R' to construct the Makefiles. That way, I can keep as many experimental half-finished puzzles lying around my working directory as I like, and I won't have to keep reverting Recipe when I check in any other changes. As part of this change, list.c is no longer a version-controlled file; it's now constructed by mkfiles.pl, so that it too can take advantage of this mechanism. [originally from svn r6781]
* Extra utility function.Simon Tatham2006-08-05
| | | | [originally from svn r6780]
* Random docs cleanups I've collected together.Simon Tatham2006-07-07
| | | | [originally from svn r6749]
* Since r6711, puzzles built with Gtk 1.2 would take double actions when a menuJacob Nevins2006-06-26
| | | | | | | | | | accelerator key (N/U/R/Q) was pressed -- once for the menu accelerator, and once more in key_event(). This workaround, while unlovely, should at least not break in future (since the things it relies on are unlikely to change). [originally from svn r6745] [r6711 == 077aa510c78f3273bd0d4ca4f1ca14780822ebf9]
* Trivial patch from Ben Hutchings to support resizable windows underSimon Tatham2006-05-20
| | | | | | | GTK. All the infrastructure in the midend and beyond was already there; it was just a matter of enabling it! [originally from svn r6712]
* Ben Hutchings's patch to add display of key accelerators in the GameSimon Tatham2006-05-20
| | | | | | menu. [originally from svn r6711]
* Patch from Ben Hutchings to prevent an ugly special case inSimon Tatham2006-05-20
| | | | | | | &splitline in which a line is `split' into a line ending in a backslash followed by a completely blank line. [originally from svn r6710]
* Cleanup patch from Ben Hutchings, fixing some odd-looking rangeSimon Tatham2006-05-20
| | | | | | | | checks. He thinks they were harmless (due to being followed by other range checks in RIGHTOF_DOT and friends) but it clearly can't hurt to fix them anyway. [originally from svn r6709]
* Patch from Ben Hutchings to prevent memory leakage during Loopy gameSimon Tatham2006-05-20
| | | | | | generation. [originally from svn r6708]
* Tidy up comments.Simon Tatham2006-03-12
| | | | [originally from svn r6601]
* Introduce a new deductive mode in Slant's Hard level, which is theSimon Tatham2006-03-06
| | | | | | | | | | | | | | | | | generalisation of the previous deduction involving two 3s or two 1s either adjacent or separated by a row of contiguous 2s. I always said that was an ugly loop and really ought to arise naturally as a special case of something more believable, and here it is. The practical upshot is that Hard mode has just become slightly harder: some grids generated by the new Slant will be unsolvable by the old one's solver. I don't think it's become _excessively_ more hard; I think I'm happy with the new difficulty level. (In particular, I don't think the new level is sufficiently harder than the old to make it worth preserving the old one as Medium or anything like that.) [originally from svn r6591]
* "Hold" function in Guess was completely broken.Jacob Nevins2006-03-03
| | | | | | | | Fix it, add holds to the undo history (by analogy with Net), and save the current holds in saved games. Also fix a couple of unrelated minor issues with string encoding. [originally from svn r6590]
* I've been pondering whether to do this for months: turn the ratherSimon Tatham2006-03-02
| | | | | | | | | | washed-out yellow and green in Guess into their full-brightness pure forms. This makes them hard to see against some backgrounds, so I'm also surrounding all coloured pegs with black outlines. Looks a little cartoony, but I think it's an overall improvement on the previous look. [originally from svn r6589]
* Mines's error signalling is highly asymmetric: if you erroneouslySimon Tatham2006-02-20
| | | | | | | | | | | | | believe a square to be empty, you find out instantly and lethally, but if you erroneously believe a square to be full you can occasionally (when it doesn't cause a complementary square to be assumed empty) not notice until you find at the very end of the game that you're one mine heavy. To help with this, here's an error highlighting patch: any number square surrounded by an excess of flags will now light up red. This should be an unintrusive change, because it will never happen unless you make a mistake. [originally from svn r6580]
* Small docs patch from Phil Bordelon adding more history of Sudoku.Simon Tatham2006-02-19
| | | | [originally from svn r6575]
* Patch from Phil Bordelon to improve Bridges' appearance by adjustingSimon Tatham2006-02-19
| | | | | | the font size. [originally from svn r6573]
* Tal Kelrich spotted that hitting `Solve' on a configuration which isSimon Tatham2006-02-07
| | | | | | | | | laser-indistinguishable from the right solution _but_ has a number of balls outside the acceptable range does not report an error. His example was the game ID w8h8m5M5:1e3e6e80fa3e16265ccef7ca , omitting the rightmost ball in the second row. [originally from svn r6542]
* It's a new year.Jacob Nevins2006-01-08
| | | | | [originally from svn r6513] [this svn revision also touched halibut,putty,putty-website]
* Revert a change in an assertion made in r6299. It was right theSimon Tatham2006-01-05
| | | | | | | first time, and now has a comment explaining why! [originally from svn r6511] [r6299 == c389f623f66fe5296f7ef5c66d88884607b82cff]
* Add some random index terms. ("Sudoku" wasn't in the index!)Jacob Nevins2005-12-27
| | | | [originally from svn r6509]
* Laurent Thioudellet reports that gcc4's ultra-cautious data flowSimon Tatham2005-12-26
| | | | | | | | | | | | | | | | | | warnings require two more variables to be explicitly initialised. In fact these variables are reliably initialised by a subfunction; gcc3 was happy to assume I knew what I was doing when it couldn't prove they were definitely used uninitialised, whereas gcc4 apparently takes the view that the onus is on me to allow it to prove they _aren't_. I regard this as a step backwards, since the effect will be to make explicit initialisation commonplace in cases where the initialiser value is chosen arbitrarily and never expected to be used, at which point (a) it will be less clear which initialisers have genuine purpose and which are compiler-placating fluff, and (b) valgrind's run-time uninitialised-data tracking will become less useful. Still, the effect doesn't seem great as yet, so here's the gcc4-placating checkin. [originally from svn r6508]
* I've just noticed a bug in the Inertia solver: if you call it on anSimon Tatham2005-12-26
| | | | | | | already-solved grid (i.e. no gems), it will still attempt to show you a move you can make. Eliminate that special case. [originally from svn r6507]
* Correct w/h mixup in grid edge checks.Simon Tatham2005-11-10
| | | | [originally from svn r6452]
* Document Unix command-line options.Jacob Nevins2005-10-22
| | | | [originally from svn r6423]
* Fix segfault in Tents' printing.Jacob Nevins2005-10-22
| | | | [originally from svn r6422]
* Work around a couple of minor display issues with max bridges set to 4:Jacob Nevins2005-10-22
| | | | | | | | | | | | | - the highlighting for a set of 4 lines spilled outside the tile, so would leave white residue if undone; - the endpoints of sets of 4 lines were not completely overprinted by the circle of an island (at least on Windows), which was untidy. Fixed by reducing the gap width for groups of lines which wouldn't otherwise fit in a tile (only). [originally from svn r6421]
* Cleanup: relieve frontends of the duty to callSimon Tatham2005-10-22
| | | | | | | | | | | | | midend_rewrite_statusbar() and check the result against the last string returned. This is now done centrally in drawing.c, and the front end status bar function need only do what it says on the tin. While I'm modifying the prototype of drawing_init(), I've also renamed it drawing_new() for the same reason as random_new() (it _allocates_ a drawing object, rather than just initialising one passed in). [originally from svn r6420]
* Cleanup: remove the `just_used_solve' field from a number of gamesSimon Tatham2005-10-22
| | | | | | | | | | | | | | | which didn't actually need it. It was originally introduced in Fifteen to suppress animation on Solve moves, but midend.c now does that centrally unless the game specifically instructs it otherwise. Therefore, just_used_solve is obsolete in all games which previously used it. (Mines was even worse: it scrupulously maintained the correctness of the field but never used it!) Untangle is exempt from this cleanup: its `just_solved' field is used to change the _length_ of the animation on Solve moves, not to suppress it entirely, and so it has to stay. [originally from svn r6419]
* Forgot to update devel.but in r6417.Simon Tatham2005-10-22
| | | | | [originally from svn r6418] [r6417 == eb2013efc0a6201d0e46de65c1a905b676d13d01]
* Cleanup: it was absolutely stupid for game_wants_statusbar() to be aSimon Tatham2005-10-22
| | | | | | | | | function, since it took no parameters by which to vary its decision, and in any case it's hard to imagine a game which only _conditionally_ wants a status bar. Changed it into a boolean data field in the backend structure. [originally from svn r6417]
* Cleanup: remove the game_state parameter to game_colours(). No gameSimon Tatham2005-10-22
| | | | | | | | | | | | was actually using it, and also it wasn't being called again for different game states or different game parameters, so it would have been a mistake to depend on anything in that game state. Games are now expected to commit in advance to a single fixed list of all the colours they will ever need, which was the case in practice already and simplifies any later port to a colour-poor platform. Also this change has removed a lot of unnecessary faff from midend_colours(). [originally from svn r6416]
* Noticed recently that bitcount16() isn't 16-bit clean due to signedSimon Tatham2005-10-22
| | | | | | | | | | shift right. It doesn't actually matter in the current code since the input word only ever uses the bottom 9 bits, but if I ever extended Mines to work in a triangular grid then all 16 bits might be required. Fix this now, while I'm cleaning things up, so that it won't bite me unexpectedly in future. [originally from svn r6415]
* Cleanup: the `mouse_priorities' field in the back end has been aSimon Tatham2005-10-22
| | | | | | | more general-purpose flags word for some time now. Rename it to `flags'. [originally from svn r6414]