Alter piece images in Spartan Chess The Captain of Spartain Chess is now represented by the new Tower piece, so that the Crowned Rook pictogram can be (and is) used for the General, for better uniformity with other variants.
Regularize Chu-Shogi piece assignment The pieces in Chu Shogi have been reassigned to other internal codes, so that juggling of images in variant cu is no longer needed. This became possible by the flexible assignment of promotion partners. It makes it easier to use Chu Shogi as parent variant without having to worry about a non-stadard meaning of the -pieceToCharTable. The built-in move generator had to be changed to work for the new assignment.
Fix confinement of Advisor in Xiangqi Ever since the move-generator rewrite the Advisor could leave the Palace! Now it can only move in XQ as a normal Ferz when on the board axis, and everywhere els it can only move to the axis one square from the edge. This does not generalize in a natural way to larger boards or larger Palaces.
Fix one-click moving with engine-define and wild-card pieces In the disambiguation routine wild-card pieces were still treated as special even when explicit moves were defined for them. In addition, Disambiguate would try native XBoard piece motion for resolving ambiguous moves, which is sensible for parsing SAN (which might be saved by an old version of XBoard), but wrecks one-click moving.
Silence Clang warnings The assignment of the variant number to appData.variant was a real bug. The signedness of EP_STATUS looked like one, but seemed to work in practice.
Fix disambiguation for one-click moving The test in the DisambiguateCallback to ignore duplicate moves (as sometimes generated by Betza descriptions) was only testing for the same from square. This is good enugh if the to-square is always given (as in SAN), so that moves with different to-square would always be rejected anyway. But to determine if a piece has only a single move we disambiguate with unknown to-square. So all moves but the first of a piece would be ignored, making it always pass the only-move test. We now test both from- and to-square, and only ignore moves that have both of these equal to that of an already matching move.
Remove debug printf
Add -men option for changing piece moves A volatile string option -men allows the user to change the moves of the pieces from the command line similar to what the VariantMen tag does from a PGN file. Using the New Variant dialog resets the option.
Fix built-in Lion move The 3-leg patch had uncovered a latent bug in the built-in move generation for Lions/Falcons/Eagles, which would qualify moves as FirstLeg even when the kill-square was already set.
Implement XBetza iso modifier An 'i' modifier on a continuation leg will force it to be of equal length (measured in steps) as the latest sliding leg (i.e. of maximum length != 1) before it. This is useful for defining rifle captures of sliding pieces. On initial legs it still means the move is for virgin pieces only.
Fix dressed-letter IDs in VariantMen PGN Tag Due to sign extension the ID suffxes would never be printed.
Implement triple capture Moves can now have two locust squares (and promote even when they are locust captures). This applies to move entry (but only through click- click; buttonless dragging does not yet work), as well as sending or receiving from engine, and generating and parsing SAN.
Merge branch 'v4.8.x'
updated copyright for 2016
Fix printing of 'x' in position diagram The times where 'x' was used as PieceToChar result for an empty square are long behind us; 'x' now is a valid piece ID.
Fix using VariantMen PGN tag for both colors Black pieces were not recognized as the same as white pieces.
Process VariantMen PGN tag On loading a PGN game the VariantMen tag is now parsed, and the move definitions are assigned to the mentioned pieces. This only works when the pieceToCharTable is defined in advance!
Let VarianMen PGN tag work with dressed letters The internal 'character' codes > 127 are now printed as letter + suffix.
Fix printing of piece ID in illegal SAN moves Illegal SAN moves did not add ' or ! suffixes to the piece ID, and printed shogi-promoted pieces as a '+' without ID.
Change the piece order again The internal piece encoding is now altered such that the uninteresting ones (promoted Shogi pieces and symmetry partners) are all at the end, just before King. These now start with the PromoBishop. A slash in the pieceToChar string skips to this new 'promoted series', so that strings can be made 'future proof' (for when new pieces are added before it). The promoted Chu pieces all get new book keys by this, but as it is unlikely that they occurin opening lines, this was considered acceptable. The +L, +T in Chu are now represented by Pegasus and Gnu rather than Knight and Chancellor, but the latter two are defined as fall-backs to remain compatible with old Chu themes. The +N, +L, +S replacements in Shogi are now also taken from amongst the regular pieces, rather than extra images stored beyond King.