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