File: CHANGES

package info (click to toggle)
mah-jong 1.10-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 2,532 kB
  • ctags: 2,291
  • sloc: ansic: 27,820; perl: 393; makefile: 297; sh: 122
file content (339 lines) | stat: -rw-r--r-- 15,065 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
1.10 2009-06-28
  Substantial enhancements. Bug fixes. Port to GTK+2.
  Protocol: 1101 adds NumRounds game option.
  Code: a few functions added to player and game modules. Makefile options
    tidied, and code for Windows with and without msys added.
  Server: fix couple of bugs, one causing crash. Handle NumRounds option.
    Add --id-order-seats option. End game at end of hand, instead of start
    of next.
  Graphical client: port to GTK+2. Allow customization via gtkrc files.
    Fix long-standing bug in display of tiles (positioning of left and
    right players' hands). Provide player status info to right of rack,
    when the wall is shown. Handle game ending at end of last hand.
    Allow user to arrange tiles in hand (SortTiles display option).
    Fix an old and silly bug (causing only subtle UI misbehaviour).
    Remove wrong size setting of scoring information window.
    Arrange for players to be seated in order of specification when
    starting local game (if not random).
    Handle interrupted system calls on windows gtk2.
  Player: document the strategy options (partly, at least).

1.9 2008-08-22
  Bug fixes and enhancements.
  Protocol: 1100 adds authorization messages, and a redirection message.
  Code: new function to build quoted strings for shell; various tidies
    of warnings. Minor change to Windows makefile. Add index() for Windows.
  Server: handle basic authorization. Add --hand-history option.
  Graphical client: handle basic authorization. Fix bug: failure if
  robot player names included spaces and quotes etc.

1.8 2007-05-22
  Bug fixes and enhancements.
  Protocol: 1072 adds ShowOnWashout option.
  Code: a few minor fixes and tweaks; in particular, change order
    of automatic declarations to do pairs before chows.
  Server: add option to reveal tiles on washout.
  Graphical client: amalgamate a couple of buttons in dialogues for
    more intuitive presentation.
  Player: rehashed somewhat, with various parameters redistributed into
    a bunch of magic numbers, with values chosen by experiment. Should
    play a somewhat tougher game.

1.7 2006-01-22
  Bug fixes and enhancements.
  Code: much diagnostic and logging code added. More socket code.
    Buffer overflow exposures fixed (Len Budney). Add Reconnect command.
    Fix very old bug in Kong Upon Kong checking (didn't account for
    closed kongs).
  Server: fix bug in sending options to players when resuming a game.
    Allow clients to refetch game state by Reconnect.
  Graphical client: add crash reporting via Internet. Fix bug in UI after
    a kong is robbed. Windows binary: build with modern libraries and tool
    chain - seems to fix the mysterious crashes.

1.6.3 2004-05-09
  Bug fixes.
  Code: the fix for thirteen wonders in 1.6.1 needed fixing.

1.6.2 2004-04-16
  Bug fixes.
  Code: use (v)snprintf in Windows code, since it does exist, rather than
    faking it with inadequate substitute.

1.6.1 2004-04-10
  Bug fixes.
  Server: segfaulted when players connected with null names.
  Code: the thirteen wonders checking function was not checking correctly.

1.6 2003-10-07
  Bug fixes and security fixes.
  Protocol: use of backslash escaping has been tidied up. Arguably this
      is only a bug fix, but protocol version has been bumped to 1060 anyway.
  Graphical client: when auto-declaration of specials was on, players did
      not get the chance to declare kongs in their dealt hands - fixed.
  Server: receiving duplicate "NoClaim"s while waiting for a Chow claim 
      to complete could result in the chow claim being ignored - fixed this.
  Code: backslash escaping tidied up, and infinite loop bug removed.
    Several potential buffer overrun exploits closed (thanks to 
      Nicolas Boullis for these).

1.5.6 2003-06-04
  Bug fixes and minor enhancements.
  Graphical client: add option to select table colour. Minor wording
      changes. Code tidies.
  Server: Change meaning of DiscarderDoubles to match Singaporean
      play (as originally intended). Bug fix in loading games from file.
  Code: fix bug in handling of kong robbing (konging flag wasn't cleared,
      causing crash in next hand).

1.5.5 2003-04-11
  Bug fixes.
  Graphical client: fix bug in automatic declaration of winning hands
      when having Thirteen Orphans.
    Extend auto-declaration so that it claims the discard as well.
  Server: hands with Thirteen Orphans were being given Imperial Jade as well.

1.5.4 2003-04-10
  Bugfixes.
  Graphical client: fix bug in interaction between sticky open dialog
      fields and the  --connect  command-line option.
    Change the location for xmj.ini under Windows: it is now
      in HOMEPATH, current (if writable), or root (in that order).
      Also, look for old xmj.ini in all locations if not found
      in the expected location.
    Fix bug in Message processing causing crashes.
  Code: changed spec of get_homedir().

1.5.3 2003-04-05
  Bugfix, minor enhancement.
  Graphical client: add display option to choose text font.
  Code: fix bug in handling of "last 4 tiles" cannon (again).

1.5.2 2003-04-01
  Bugfixes, minor enhancement.
  Protocol: version now 1050, as we now accept Chow AnyPos
      while MahJonging.
  Graphical client: add a checkbox to keep focus in message window.
    Fix handling of chows when MahJonging so that erroneous chows
      don't cause deadlock.
  Server: don't allow reconnects while terminating a game.
  Code: make protocol text expansion accept null source. (Prevents
      errors in handling empty CMsgMessages.)
    Add hacks to allow "server" to be stdin/stdout.
    Change handling of chows to allow an AnyPos chow declaration
      when claiming the discard for Mah-Jong.

1.5.1 2003-03-16
  Bugfixes.
  Server: fix bugs in handling of disconnecting players before game starts.
  Code: in protocol decoding, work round bug in Microsoft implementation
      of scanf.

1.5  2003-03-15
  Feature enhancements, bugfixes.
  Rules/protocol: protocol can now remove players from a game (1036).
    Added TimeoutGrace game option and LocalTimeouts player option (1036).
    Added LoadState command (1038).
    Added LosersSettle, EastDoubles, DiscDoubles game options (1040).
    Protocol version now 1040.
  Server: handle new game options.
    Add --no-manager option to stop players changing game options.
    Add --end-on-disconnect option to end the game gracefully when
      a player disconnects, and --disconnect-penalties to specify
      penalties for this.
    Allow clients to handle timeouts locally.
    Handle dynamic loading of game state in response to LoadState.
  Graphical client: re-arrange new game and connection menu and panels.
    Several bugfixes.
    Add display options: suppress popups, include info and message windows
      in main window.
    Make some fields sticky in dialogs.
    Add options to declare specials and sets automatically.
    New window to display warnings from internal code.
    Add font selection for main font.
    Add display size to the preferences panel.
    Handle timeouts locally if allowed.
    Include small tile set in distribution.
    Use "Display" instead of "XmjOption" in rc file.
  Code: bugfix to cannon handling.
    Fix bug in treatment of scoring options, avoid overflow.
    Some changes to spec of internal functions.
    Prevent players discarding when they should draw a tile.
    New functions for warnings.

1.4.1  2002-08-09
  Minor bugfix.
  Server: set timeout option correctly when resuming game.
  Code: fix bug in handling of cannons in last four tiles.

1.4  2002-03-30
  Feature enhancement.
  Rules/protocol: add option to implement Millington's rules on kongs.
    Protocol version now 1034.
  Server: implement scoring with Millington's rules on kongs.
      Warning: server is not perfectly backward compatible, as annexed and
      claimed kongs are now distinguished in scoring information, regardless
      of the appropriate option setting. However, earlier clients using my
      code will not be worried by this. 
  Graphical client: handle display of Millington's kong variations.
  Code: handle Millington's kongs. (Changes to several modules.)

1.3.2  2002-02-04
  Minor bugfix.
  Graphical client: fix small bug in handling of numerical option fields.

1.3.1  2002-01-08
  Minor bugfixes and invisible enhancements.
  Graphical client: fix bug in option parsing.
    Change tiletip positions; when tiletips always on, have the selected
      tile's tip always visible.
    Move tiletips, claim popups, and animation into the main window
      (except under Windows, where animation is still done by popups).
    Fix bug in uniconification of auxiliary windows.
  Code: introduced the vlazy_fixed widget, another variation on 
      the gtk_fixed, for use with "popups".

1.3  2002-01-02
  Feature enhancements and bugfixes.
  Rules/protocol: added options for fully and partially concealed hand scores.
    Added (deprecated) option to allow losers to score pure and concealed
      doubles.
    All Honours and All Terminals now also get the All Majors score.
    Protocol version now 1032.
  Server: prints OK: socket  on startup (or FAILED: if it fails); used
      by xmj.
    Some minor code tidies.
  Graphical client: on new game panel, allow specification of robot names.
    Include preferences for default robot names.
    Add keyboard accelerators for selecting tiles and all menus.
    Be more intelligent about starting server.
    Don't animate tiles if the main window is unmapped or obscured.
    Add option to iconify all subsidiary windows along with main.
    Various small fixes.
  Player: add --name option.

1.2.3  2001-09-06
  Bugfix.
  Gui: fix stupid bug introduced in last release causing
    crash after about five hands.

1.2.2  2001-09-04
  Feature enhancements.
  Graphical client: add Tileset and Tileset search path options.
    Allow display option changes to take immediate effect.

1.2.1  2001-08-16
  Bugfix release.
  Server: fixed rare but major bug in dead wall handling.
    Fixed minor scoring bug (filling the only place).

1.2    2001-08-06
  Feature enhancement.
  Rules/protocol: added file name field to SaveState cmsg.
    Added Comment cmsg.
    Added Wall cmsg.
    Protocol version now 1030.
  Server: handle new options.
    Add --load-game and --save-on-exit options.
    Implemented game saving and restoring.
  Graphical client: added Save and Resume commands.
    Changed some menu and menu option names.
  Code: some tidying in addition to new features.

1.1    2001-05-18
  Major feature enhancements.
  Rules/protocol: added a "nat" (unsigned in) game option type.
    Added game options:
    Limits on score, and no-limit games.
    Seven Pair hands.
    Flowers/Seasons optional.
    Scores for own Flower etc. changeable.
    Dead Wall may be per Millington, per everybody else, or not used.
    Base score for Mah Jong changeable.
    Protocol version now 1020.
  Server: handle new game options. Make DeadWall16 unset by default.
    Added --wallfile option (testing only).
    Added --option-file option.
    Make first human to connect be the game manager.
  Graphical client: added an Options menu, giving access to:
      display options: dialog position, animation, tiletips, wall showing.
      game option preferences: options applied to all games.
      current game options: control over currently connected game.
    Uses an rc file to store preferences.
    Added tiletips facility.
    When not showing wall, say how many live tiles left.
    Handle new game options, such as no flowers.
    Eliminated flickering problem when the wall is shown.
    Suggests donation after ten full games.
  Player: complete re-write of strategy engine. Now plays much more
      strongly in offensive play. Still has only rudimentary defence.
    New strategy control options, but still undocumented. Probably
      stable enough to document: next release, perhaps.
    Handles the new game options (though never tries to get seven pairs).
  Code: in addition to all the code required for new features, there
      has been a large amount of tidying up. Still not enough...

1.0.4  2001-04-05
  Bugfix etc:
  Server: bug in scoring: was only giving 2 pts for fishing a major
      pair (despite saying 4 in the messsage!).
  Graphical client: default to a smaller size on 800x600 displays.
    Add an icon to the Windows version.      

1.0.3  2001-02-25
  Bugfix release.
  Graphical client: the --dialogs-below option has been broken since
      the pre-release (and nobody's noticed). Now fixed.

1.0.2  2001-02-10
  Bugfix release.
  Server: error in handling kongs declared while declaring specials:
      it wasn't drawing a replacement tile for the player.
    Also failing to handle properly the (vanishingly unlikely)
      case of such a kong being robbed.
    In addition, the Heaven's/Earth's Blessing hands were being
      incorrectly detected, and would not be granted if a kong had
      been declared before start of play.
    Added a delay that may help with a Windows problem, when the
      client crashes at end of game.
    Added a --seed option for the random number generator.
  Graphical client: now copes correctly with robbing a kong declared
      before start of play.

1.0.1  2001-01-28
  Bugfix patch:
  Server: rare but fatal and annoying bug fixed: when a player makes
      a dangerous discard and has no choice but to do so, the server
      would abort. Fixed by making the appropriate macro in
      game.h return a bool; also made encode_cmsg more liberal
      about what it accepts, to prevent further such bugs.

1.0  2001-01-22
  First full release. Changes since the pre-release:
  Rules: the rules now match the rest of the world in that konging
      and declaring flowers is allowed only after drawing from the wall.
      The protocol version has been incremented to 1010 to mark this change.
      (The old rule will still apply if playing with old clients.)
    Robbing a closed kong to complete Thirteen Unique Wonders is now
      implemented.
    The default score for bouquets has been cut back to one double.
    One or two outright bugs fixed (handling of Thirteen Wonders failed).
  Server: several bugs fixed (in ptic, letting off cannons was buggy).
    --exit-on-disconnect option added.
    --no-special-scores option added.
    --randomseats option changed to --random-seats.
  Player: several bugs fixed, and many (not very successful) attempts
      to improve the tactics.
  Graphical client: many bug fixes.
    Added "About" window.
    Added "New Game..." entry to "Connect" menu, to start a game
      with a local server and clients.
    The scoring window is now popped up at the end of scoring, rather
      than the beginning.
    A message is displayed while waiting for a suspended game to restart.
  Code: lots of restructuring, not least to accommodate Windows.
    Stopped using imake, just use a GNU Makefile instead.

1.0beta-pre1 2000-12-07
  Pre-release of first public source release.