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