Release 1.04 ------------ - Makefile adjustments: ensure bogus stuff left in `levels' directory doesn't get hit by `make install', and ensure it doesn't get hit by tarball generator either. The `CVS' directory, for example. - Introduced loading and saving of move sequences. You can press `w' during the game to save the sequence of moves that have got you to that point; pressing `m' during the game lets you load a sequence of moves, and then goes into `movie mode' in which you can step back and forth through the process of playing those moves, and finally hit `q' to enact the whole lot and return to normal playing mode. Hence players can swap their best or weirdest solutions to a particular level. - Everyone's favourite interface change: you can now hit `r' to restore a saved position on the `you have died' screen just as you can within the game, so you don't have to go back round via the main menu. - The levels contained a couple of pieces resting on thin air, which the original designer hadn't noticed. I've now introduced run-time validation of level files for errors such as this, and fixed the problems (in levels 2 and 8). This should also make designing new levels a more precise science... - Added the new `~' character. This shows up as a space during gameplay, but it's an `outdoor' space which you're never supposed to be able to get to. This means that walls next to a `~' sign act like boundary walls and are indestructible even to bombs. The idea is that you can design levels with non-rectangular outlines by filling in the space between the exterior walls and the level boundary with solid blocks of `~'. It also means you can put unreachable courtyards inside a level as well. - Added `=' and `!', the Enigma equivalents of XOR's dots and waves respectively (they act as walls in one direction but can be eaten if you approach them from the perpendicular direction). - Added `O', of which you can have at most one in a level and it acts as a secondary player starting point (again as in XOR). Press `x' during the game to swap the `@' and the `O'. If the `@' gets killed while an `O' is present, control will revert to the `O' and you can continue play. You only have to get one of yourself to the exit. - Added `#', the teleporter piece used in XOR. There must be either 0 or 2 of these on a level; walking into one brings you out to the right of the other, or above it if the right is occupied, then left, then below. - Added per-level mode flags to make the XOR levels playable in Enigma: `flimsy-bombs' (bombs blow up when hit by other bombs as well as arrows) and `relative-priority' (which of two eligible pieces falls into a vacated space first depends on the direction of the piece which just left that space). Release 1.03 ------------ - Ensure save files are written with perms 0600 (only the saving user can read or write them, despite setgid on the enigma binary), and ensure progress files are written 0640 (the games group can read them, so enigma can build a Hall of Fame when I implement that). - Disallow periods and slashes in level set names, to confine Enigma to reading and writing files _only_ in its designated level and save directories. Might just have been a security hole, although I can't immediately see a way. Release 1.02 ------------ - We no longer repeat the game-completed screen when the user recompletes a level after having completed the game. - Error handling improved so we don't segfault on trying to restore a nonexistent save, and also so we don't segfault if we can't find our level set. - Fixed various bugs in the level-titles list box on the main menu, which don't show up in the standard level set but might if people start designing longer ones. Release 1.01 ------------ - configure script now chooses more sensibly between curses and ncurses, and also checks whether *curses.h defines attr_t. Now able to compile on Solaris/gcc. - Renamed config.h to settings.h to stop it being blown away by make distclean. - Added CHANGELOG. Release 1.0 ----------- - Initial release.