Status:
It works well, but there are still a few details to improve/fix
More details about the changes:
- New dependency on Arabica and Libxml2 to parse the XML
- Loading the old format is still supported for this release, but won't be supported anymore in the next one
- Games are now only saved in the new format
- In training mode, the player is now created externally, like in the other modes
- Avoid using GameIO (the one from game/) whenever possible
- Do not use a FILE* argument anymore when loading a game
- Throw and catch exceptions correctly when a game cannot be loaded or saved
- The non-regression tests now use a new method to print the game history
- Improved the error message when the dictionary cannot be loaded at startup
- Updated the french translation
- Made some Game fields private
- Added more constness
- New (optional) dependency on the libconfig library, to save/load configuration files.
- On Unix, the location of the configuration file respects the XDG Base Directory Specification.
- The contrib system automatically fetches and builds libconfig for Windows cross-compilation
- Fixed make distcheck
- Embed the program icon into the executable on Windows: the icon is not visible in Windows explorer
- Fixed gettext configuration on Windows. The translations now appear, but the accents still don't display correctly.
- Fixed a few translation issues
- Display the Eliot icon
- Improved printing
- Allow changing the level of computer players
- Generate automatically a default name for players
- Translate Qt's own strings (only works on Linux at the moment)
- New regexp parser using Boost.Spirit. Lex and yacc are now gone.
The main advantage of this new parser, apart from being purely C++,
is that it can handle wide characters.
Currently, the new parser does the same as the previous one, but the
code is not yet ready to use regular expressions with non-ASCII
dictionaries.
- the multiplayer modes are more or less playable
- the training mode is not playable at all
- the current layout is still experimental
- many dialogs and options are missing
- tested on Linux only
There are still hundreds of things to do...
There are too many change to list properly, here is an overview of the main changes:
- the dictionary is now in C++
- the dictionary has a new format, where it is possible to specify the letters,
their points, their frequency, ... It is backwards compatible.
- Eliot now supports non-ASCII characters everywhere
- i18n of the compdic, listdic, regexpmain binaries
- i18n of the wxWidgets interface (now in english by default)
- add AC_HELP_STRING formatting
- add --enable-profile flag, must be used to ensure that search performance
does not degrade over time
- debug is disabled by default
- switch to wxwidgets 2.6
m4/wxwin.m4 : update to wxwidgets 2.6 m4 macro
This simplifies the code in many places, and allows inheritance of the
game mode classes (Training, Duplicate and FreeGame).
- A Tile is no more an unsigned char, but a class: it should help supporting
i18n of the game. The Dic library still uses unsigned chars though.
- Improved the configure script, to enable/disable the compilation of some
interfaces.
- Added a ncurses interface, much nicer than the text one. The game mode and
the number of players are currently hardcoded, it is not possible to change
them interactively (yet).
- Repaired the save/load functions.
NOTE: The wxWindows interface compiles, but is completely broken. I'm afraid it
needs a full rewrite (to support the various game modes in particular).