11.16 2020-05-26
2  Bug fixes/minor features.
3  Protocol: bumped to 1111 to indicate server now sending DoesntClaim to
4    all players
5  Graphical client: add option (Display AlertMahjong) to warn player when
6    a mah-jong is (probably) possible. Add option (Display ShowThinking) to
7    display three dots by players who have yet to claim or pass.
8  Server: fix yet more still remaining bugs in reconnection when players
9    reconnect by name. When a player NoClaims, inform all players, not just
10    that player (to allow ShowThinking).
11  Code: various tidies. Changes for cross-compilation. New release type
12    (win32-i686 - cross-compiled, gtk2 only).
13
141.15 2019-06-06
15  Bug fixes/minor features.
16  Graphical client: add option (Display RotateLabels) to control rotation
17    of player info text on board. Increase the visibility of the selected
18    tile (by giving it a magenta border). Fix minor bug in checking claims
19    at end of game.
20
211.14 2014-01-06
22  Bug fixes/minor features.
23  Server: fix still remaining bugs in game saving at end of round.
24  Graphical client: add file chooser in open dialog for resuming.
25    Add scoring history window. Update About. Highlight player whose
26    turn it is. Grey out scoring dialog to avoid confusion at end of game.
27    Various minor bug fixes.
28  Code: avoid printf abuse (Göran Uddeborg).
29
301.13 2013-08-28
31  Bug fixes.
32  Server: fix major bug in (presumably unused) feature: game saving and
33    resumption was broken for saves at the end of a hand.
34  Graphical client: popup scoring window on washout even if iconified.
35  Code: add math libraries to gui client for recent linuxen, where it's
36    not included by other library configs.
37
381.12.1 2012-05-04
39  Bug fix.
40  Code: for a while, system files had been wrongly included in the
41    dependencies in the Makefile.
42
431.12 2012-02-03
44  Bug fixes/minor features.
45  Code: fairly extensive changes to make it 64-bit clean. Includes one change
46    to function types.
47  Server: bug fix for --id-order-seats option.
48  Graphical client: use a default Unix socket if no name given; save the
49    robot player options between sessions.
50
511.11 2011-08-29
52  Bug fixes.
53  Protocol: 1110 corrects konging rule: a just-claimed pung can now be
54    converted to a kong, rather than having to wait till next draw.
55  Code: game module implements above.
56  Graphical client: game status was not always being updated; make
57    iconification of subsidiary windows work properly; fix non-appearance
58    of "About xmj" window.
59
601.10 2009-06-28
61  Substantial enhancements. Bug fixes. Port to GTK+2.
62  Protocol: 1101 adds NumRounds game option.
63  Code: a few functions added to player and game modules. Makefile options
64    tidied, and code for Windows with and without msys added.
65  Server: fix couple of bugs, one causing crash. Handle NumRounds option.
66    Add --id-order-seats option. End game at end of hand, instead of start
67    of next.
68  Graphical client: port to GTK+2. Allow customization via gtkrc files.
69    Fix long-standing bug in display of tiles (positioning of left and
70    right players' hands). Provide player status info to right of rack,
71    when the wall is shown. Handle game ending at end of last hand.
72    Allow user to arrange tiles in hand (SortTiles display option).
73    Fix an old and silly bug (causing only subtle UI misbehaviour).
74    Remove wrong size setting of scoring information window.
75    Arrange for players to be seated in order of specification when
76    starting local game (if not random).
77    Handle interrupted system calls on windows gtk2.
78  Player: document the strategy options (partly, at least).
79
801.9 2008-08-22
81  Bug fixes and enhancements.
82  Protocol: 1100 adds authorization messages, and a redirection message.
83  Code: new function to build quoted strings for shell; various tidies
84    of warnings. Minor change to Windows makefile. Add index() for Windows.
85  Server: handle basic authorization. Add --hand-history option.
86  Graphical client: handle basic authorization. Fix bug: failure if
87  robot player names included spaces and quotes etc.
88
891.8 2007-05-22
90  Bug fixes and enhancements.
91  Protocol: 1072 adds ShowOnWashout option.
92  Code: a few minor fixes and tweaks; in particular, change order
93    of automatic declarations to do pairs before chows.
94  Server: add option to reveal tiles on washout.
95  Graphical client: amalgamate a couple of buttons in dialogues for
96    more intuitive presentation.
97  Player: rehashed somewhat, with various parameters redistributed into
98    a bunch of magic numbers, with values chosen by experiment. Should
99    play a somewhat tougher game.
100
1011.7 2006-01-22
102  Bug fixes and enhancements.
103  Code: much diagnostic and logging code added. More socket code.
104    Buffer overflow exposures fixed (Len Budney). Add Reconnect command.
105    Fix very old bug in Kong Upon Kong checking (didn't account for
106    closed kongs).
107  Server: fix bug in sending options to players when resuming a game.
108    Allow clients to refetch game state by Reconnect.
109  Graphical client: add crash reporting via Internet. Fix bug in UI after
110    a kong is robbed. Windows binary: build with modern libraries and tool
111    chain - seems to fix the mysterious crashes.
112
1131.6.3 2004-05-09
114  Bug fixes.
115  Code: the fix for thirteen wonders in 1.6.1 needed fixing.
116
1171.6.2 2004-04-16
118  Bug fixes.
119  Code: use (v)snprintf in Windows code, since it does exist, rather than
120    faking it with inadequate substitute.
121
1221.6.1 2004-04-10
123  Bug fixes.
124  Server: segfaulted when players connected with null names.
125  Code: the thirteen wonders checking function was not checking correctly.
126
1271.6 2003-10-07
128  Bug fixes and security fixes.
129  Protocol: use of backslash escaping has been tidied up. Arguably this
130      is only a bug fix, but protocol version has been bumped to 1060 anyway.
131  Graphical client: when auto-declaration of specials was on, players did
132      not get the chance to declare kongs in their dealt hands - fixed.
133  Server: receiving duplicate "NoClaim"s while waiting for a Chow claim
134      to complete could result in the chow claim being ignored - fixed this.
135  Code: backslash escaping tidied up, and infinite loop bug removed.
136    Several potential buffer overrun exploits closed (thanks to
137      Nicolas Boullis for these).
138
1391.5.6 2003-06-04
140  Bug fixes and minor enhancements.
141  Graphical client: add option to select table colour. Minor wording
142      changes. Code tidies.
143  Server: Change meaning of DiscarderDoubles to match Singaporean
144      play (as originally intended). Bug fix in loading games from file.
145  Code: fix bug in handling of kong robbing (konging flag wasn't cleared,
146      causing crash in next hand).
147
1481.5.5 2003-04-11
149  Bug fixes.
150  Graphical client: fix bug in automatic declaration of winning hands
151      when having Thirteen Orphans.
152    Extend auto-declaration so that it claims the discard as well.
153  Server: hands with Thirteen Orphans were being given Imperial Jade as well.
154
1551.5.4 2003-04-10
156  Bugfixes.
157  Graphical client: fix bug in interaction between sticky open dialog
158      fields and the  --connect  command-line option.
159    Change the location for xmj.ini under Windows: it is now
160      in HOMEPATH, current (if writable), or root (in that order).
161      Also, look for old xmj.ini in all locations if not found
162      in the expected location.
163    Fix bug in Message processing causing crashes.
164  Code: changed spec of get_homedir().
165
1661.5.3 2003-04-05
167  Bugfix, minor enhancement.
168  Graphical client: add display option to choose text font.
169  Code: fix bug in handling of "last 4 tiles" cannon (again).
170
1711.5.2 2003-04-01
172  Bugfixes, minor enhancement.
173  Protocol: version now 1050, as we now accept Chow AnyPos
174      while MahJonging.
175  Graphical client: add a checkbox to keep focus in message window.
176    Fix handling of chows when MahJonging so that erroneous chows
177      don't cause deadlock.
178  Server: don't allow reconnects while terminating a game.
179  Code: make protocol text expansion accept null source. (Prevents
180      errors in handling empty CMsgMessages.)
181    Add hacks to allow "server" to be stdin/stdout.
182    Change handling of chows to allow an AnyPos chow declaration
183      when claiming the discard for Mah-Jong.
184
1851.5.1 2003-03-16
186  Bugfixes.
187  Server: fix bugs in handling of disconnecting players before game starts.
188  Code: in protocol decoding, work round bug in Microsoft implementation
189      of scanf.
190
1911.5  2003-03-15
192  Feature enhancements, bugfixes.
193  Rules/protocol: protocol can now remove players from a game (1036).
194    Added TimeoutGrace game option and LocalTimeouts player option (1036).
195    Added LoadState command (1038).
196    Added LosersSettle, EastDoubles, DiscDoubles game options (1040).
197    Protocol version now 1040.
198  Server: handle new game options.
199    Add --no-manager option to stop players changing game options.
200    Add --end-on-disconnect option to end the game gracefully when
201      a player disconnects, and --disconnect-penalties to specify
202      penalties for this.
203    Allow clients to handle timeouts locally.
204    Handle dynamic loading of game state in response to LoadState.
205  Graphical client: re-arrange new game and connection menu and panels.
206    Several bugfixes.
207    Add display options: suppress popups, include info and message windows
208      in main window.
209    Make some fields sticky in dialogs.
210    Add options to declare specials and sets automatically.
211    New window to display warnings from internal code.
212    Add font selection for main font.
213    Add display size to the preferences panel.
214    Handle timeouts locally if allowed.
215    Include small tile set in distribution.
216    Use "Display" instead of "XmjOption" in rc file.
217  Code: bugfix to cannon handling.
218    Fix bug in treatment of scoring options, avoid overflow.
219    Some changes to spec of internal functions.
220    Prevent players discarding when they should draw a tile.
221    New functions for warnings.
222
2231.4.1  2002-08-09
224  Minor bugfix.
225  Server: set timeout option correctly when resuming game.
226  Code: fix bug in handling of cannons in last four tiles.
227
2281.4  2002-03-30
229  Feature enhancement.
230  Rules/protocol: add option to implement Millington's rules on kongs.
231    Protocol version now 1034.
232  Server: implement scoring with Millington's rules on kongs.
233      Warning: server is not perfectly backward compatible, as annexed and
234      claimed kongs are now distinguished in scoring information, regardless
235      of the appropriate option setting. However, earlier clients using my
236      code will not be worried by this.
237  Graphical client: handle display of Millington's kong variations.
238  Code: handle Millington's kongs. (Changes to several modules.)
239
2401.3.2  2002-02-04
241  Minor bugfix.
242  Graphical client: fix small bug in handling of numerical option fields.
243
2441.3.1  2002-01-08
245  Minor bugfixes and invisible enhancements.
246  Graphical client: fix bug in option parsing.
247    Change tiletip positions; when tiletips always on, have the selected
248      tile's tip always visible.
249    Move tiletips, claim popups, and animation into the main window
250      (except under Windows, where animation is still done by popups).
251    Fix bug in uniconification of auxiliary windows.
252  Code: introduced the vlazy_fixed widget, another variation on
253      the gtk_fixed, for use with "popups".
254
2551.3  2002-01-02
256  Feature enhancements and bugfixes.
257  Rules/protocol: added options for fully and partially concealed hand scores.
258    Added (deprecated) option to allow losers to score pure and concealed
259      doubles.
260    All Honours and All Terminals now also get the All Majors score.
261    Protocol version now 1032.
262  Server: prints OK: socket  on startup (or FAILED: if it fails); used
263      by xmj.
264    Some minor code tidies.
265  Graphical client: on new game panel, allow specification of robot names.
266    Include preferences for default robot names.
267    Add keyboard accelerators for selecting tiles and all menus.
268    Be more intelligent about starting server.
269    Don't animate tiles if the main window is unmapped or obscured.
270    Add option to iconify all subsidiary windows along with main.
271    Various small fixes.
272  Player: add --name option.
273
2741.2.3  2001-09-06
275  Bugfix.
276  Gui: fix stupid bug introduced in last release causing
277    crash after about five hands.
278
2791.2.2  2001-09-04
280  Feature enhancements.
281  Graphical client: add Tileset and Tileset search path options.
282    Allow display option changes to take immediate effect.
283
2841.2.1  2001-08-16
285  Bugfix release.
286  Server: fixed rare but major bug in dead wall handling.
287    Fixed minor scoring bug (filling the only place).
288
2891.2    2001-08-06
290  Feature enhancement.
291  Rules/protocol: added file name field to SaveState cmsg.
292    Added Comment cmsg.
293    Added Wall cmsg.
294    Protocol version now 1030.
295  Server: handle new options.
296    Add --load-game and --save-on-exit options.
297    Implemented game saving and restoring.
298  Graphical client: added Save and Resume commands.
299    Changed some menu and menu option names.
300  Code: some tidying in addition to new features.
301
3021.1    2001-05-18
303  Major feature enhancements.
304  Rules/protocol: added a "nat" (unsigned in) game option type.
305    Added game options:
306    Limits on score, and no-limit games.
307    Seven Pair hands.
308    Flowers/Seasons optional.
309    Scores for own Flower etc. changeable.
310    Dead Wall may be per Millington, per everybody else, or not used.
311    Base score for Mah Jong changeable.
312    Protocol version now 1020.
313  Server: handle new game options. Make DeadWall16 unset by default.
314    Added --wallfile option (testing only).
315    Added --option-file option.
316    Make first human to connect be the game manager.
317  Graphical client: added an Options menu, giving access to:
318      display options: dialog position, animation, tiletips, wall showing.
319      game option preferences: options applied to all games.
320      current game options: control over currently connected game.
321    Uses an rc file to store preferences.
322    Added tiletips facility.
323    When not showing wall, say how many live tiles left.
324    Handle new game options, such as no flowers.
325    Eliminated flickering problem when the wall is shown.
326    Suggests donation after ten full games.
327  Player: complete re-write of strategy engine. Now plays much more
328      strongly in offensive play. Still has only rudimentary defence.
329    New strategy control options, but still undocumented. Probably
330      stable enough to document: next release, perhaps.
331    Handles the new game options (though never tries to get seven pairs).
332  Code: in addition to all the code required for new features, there
333      has been a large amount of tidying up. Still not enough...
334
3351.0.4  2001-04-05
336  Bugfix etc:
337  Server: bug in scoring: was only giving 2 pts for fishing a major
338      pair (despite saying 4 in the messsage!).
339  Graphical client: default to a smaller size on 800x600 displays.
340    Add an icon to the Windows version.
341
3421.0.3  2001-02-25
343  Bugfix release.
344  Graphical client: the --dialogs-below option has been broken since
345      the pre-release (and nobody's noticed). Now fixed.
346
3471.0.2  2001-02-10
348  Bugfix release.
349  Server: error in handling kongs declared while declaring specials:
350      it wasn't drawing a replacement tile for the player.
351    Also failing to handle properly the (vanishingly unlikely)
352      case of such a kong being robbed.
353    In addition, the Heaven's/Earth's Blessing hands were being
354      incorrectly detected, and would not be granted if a kong had
355      been declared before start of play.
356    Added a delay that may help with a Windows problem, when the
357      client crashes at end of game.
358    Added a --seed option for the random number generator.
359  Graphical client: now copes correctly with robbing a kong declared
360      before start of play.
361
3621.0.1  2001-01-28
363  Bugfix patch:
364  Server: rare but fatal and annoying bug fixed: when a player makes
365      a dangerous discard and has no choice but to do so, the server
366      would abort. Fixed by making the appropriate macro in
367      game.h return a bool; also made encode_cmsg more liberal
368      about what it accepts, to prevent further such bugs.
369
3701.0  2001-01-22
371  First full release. Changes since the pre-release:
372  Rules: the rules now match the rest of the world in that konging
373      and declaring flowers is allowed only after drawing from the wall.
374      The protocol version has been incremented to 1010 to mark this change.
375      (The old rule will still apply if playing with old clients.)
376    Robbing a closed kong to complete Thirteen Unique Wonders is now
377      implemented.
378    The default score for bouquets has been cut back to one double.
379    One or two outright bugs fixed (handling of Thirteen Wonders failed).
380  Server: several bugs fixed (in ptic, letting off cannons was buggy).
381    --exit-on-disconnect option added.
382    --no-special-scores option added.
383    --randomseats option changed to --random-seats.
384  Player: several bugs fixed, and many (not very successful) attempts
385      to improve the tactics.
386  Graphical client: many bug fixes.
387    Added "About" window.
388    Added "New Game..." entry to "Connect" menu, to start a game
389      with a local server and clients.
390    The scoring window is now popped up at the end of scoring, rather
391      than the beginning.
392    A message is displayed while waiting for a suspended game to restart.
393  Code: lots of restructuring, not least to accommodate Windows.
394    Stopped using imake, just use a GNU Makefile instead.
395
3961.0beta-pre1 2000-12-07
397  Pre-release of first public source release.
398
399