aboutsummaryrefslogtreecommitdiff
path: root/undead.c (follow)
Commit message (Collapse)AuthorAge
* In Undead, mark clues as errors in a few more situations.Jonas Kölker2015-10-21
| | | | | | | | | - Mark a clue as an error if too many monsters are seen, even if some squares are empty. - Mark a clue as an error if too few monsters are seen, taking into account how many more sightings are possible given the number of empty squares and how many times each of them are visited.
* Solo, Undead: support 'm' to fill in all pencils.Simon Tatham2015-07-13
| | | | | | | | | | Keen, Towers and Unequal (and Group) already have this feature in common: pressing m while no square is selected, causes a full set of pencil marks to be filled in for every square without a real number/ letter/whatever in it. Solo and Undead share the basic UI principles (left-click to select a square then type a thing to go in it, vs right-click to select a square then type things to pencil-mark in it), but did not have that same feature. Now they do.
* Fix redrawing of Undead 'done' clues after a resize.Simon Tatham2015-07-05
| | | | | | | | | | | | The is_hint_stale() function has the side effect of copying a path hint's new colour-relevant information into the game_drawstate, where draw_path_hint will then use it. But it returns TRUE early in some situations, notably !ds->started, which can happen after the actual game start if the window is resized and a fresh drawstate is created. This patch, thanks to Chris Boyle, fixes it by eliminating the early returns from is_hint_stale - the return value is unchanged, but now the side effects happen reliably.
* Undead: you can now mark clues as doneKevin Lyles2015-05-26
|
* Reworked draw_path_hintKevin Lyles2015-05-26
|
* Factored out a portion of game_redrawKevin Lyles2015-05-26
|
* Position the monster counts more sensibly.Simon Tatham2014-01-07
| | | | | | | | | | | | | | Now they're centred within the spare grid cell at the top of the playing area, rather than being too far down so that the bottoms of the monster drawings collide with the background of the path clues at large magnification. Also, while I'm here, I've simplified the code that draws the monster counts, by moving duplicated parts out of the branches of the 'if'. (In fact, almost all of this patch is cleanup; the only substantive change is the one that changes dy from TILESIZE/2 to TILESIZE/4.) [originally from svn r10108]
* Giant const patch of doom: add a 'const' to every parameter in everySimon Tatham2013-04-13
| | | | | | | | | | | | | | puzzle backend function which ought to have it, and propagate those consts through to per-puzzle subroutines as needed. I've recently had to do that to a few specific parameters which were being misused by particular puzzles (r9657, r9830), which suggests that it's probably a good idea to do the whole lot pre-emptively before the next such problem shows up. [originally from svn r9832] [r9657 == 3b250baa02a7332510685948bf17576c397b8ceb] [r9830 == 0b93de904a98f119b1a95d3a53029f1ed4bfb9b3]
* Add 'const' to the game_params arguments in validate_desc andSimon Tatham2013-04-12
| | | | | | | | | | | | new_desc. Oddities in the 'make test' output brought to my attention that a few puzzles have been modifying their input game_params for various reasons; they shouldn't do that, because that's the game_params held permanently by the midend and it will affect subsequent game generations if they modify it. So now those arguments are const, and all the games which previously modified their game_params now take a copy and modify that instead. [originally from svn r9830]
* Apply some optimisation to Undead's get_unique() function, which wasSimon Tatham2013-04-12
| | | | | | | | | | | | | | | | | | not only enumerating all possible arrangements of monsters along a sight-line in O(3^n) time, but also allocated memory for them all and then does a quadratic-time loop over that list to find arrangements with a unique visibility count from both ends. Spotted by the new 'make test', which observed that 7x7dn#517035041807425 took 45 seconds to generate. This revised version still does the initial O(3^n) enumeration, which can probably be got rid of as well with a bit more thought, but it now doesn't allocate nearly so much memory and it spots uniques efficiently. The above random seed now generates the same game ID in less than a second, which drops this puzzle off the 'make test' hit list of things most obviously needing speedup. [originally from svn r9826]
* Undead was not ever actually draw_update()ing to the edges of itsSimon Tatham2013-03-31
| | | | | | | | | | rectangle, which showed up on the Javascript front end since the JS canvas doesn't start out defaulting to COL_BACKGROUND. Fixed it to draw_update to the edge of its area, and while I'm at it, narrowed the border (since this proves we didn't really need that much space anyway). [originally from svn r9795]
* Fix entering pencil marks from the keyboard; the cursor is no longer removedJacob Nevins2013-03-10
| | | | | | (this brings Undead into line with Solo, etc). [originally from svn r9769]
* Make indentation consistent. (Somehow I forgot to do this before ISimon Tatham2012-09-10
| | | | | | originally committed the puzzle, as I usually do.) [originally from svn r9660]
* Oops, forgot to initialise changed_ascii on all paths in r9657.Simon Tatham2012-09-09
| | | | | [originally from svn r9658] [r9657 == 3b250baa02a7332510685948bf17576c397b8ceb]
* New rule: interpret_move() is passed a pointer to the game_drawstateSimon Tatham2012-09-09
| | | | | | | | | | | | | | | | basically just so that it can divide mouse coordinates by the tile size, but is definitely not expected to _write_ to it, and it hadn't previously occurred to me that anyone might try. Therefore, interpret_move() now gets a pointer to a _const_ game_drawstate instead of a writable one. All existing puzzles cope fine with this API change (as long as the new const qualifier is also added to a couple of subfunctions to which interpret_move delegates work), except for the just-committed Undead, which somehow had ds->ascii and ui->ascii the wrong way round but is otherwise unproblematic. [originally from svn r9657]
* New puzzle! Contributed by Steffen Bauer, an implementation ofSimon Tatham2012-09-08
'Haunted Mirror Maze', a game involving placing ghosts, zombies and vampires in a grid so that the right numbers of them are visible along sight-lines reflected through multiple mirrors. [originally from svn r9652]