1February 25, 2003: released 1.9.8
2  - win32 version now uses registry for configuration options
3  - um, yeah. Enough slacking; this release works.
4
5June 8, 2002: released 1.9.7
6  - game loop timing more precise -- now busy-waits if need be (but still
7    tries to sleep when possible). This will improve game speed on slower
8    systems.
9  - now sets initial username to that of logged-in user in win32, instead
10    of defaulting to "Nobody".
11  - username length can be whatever happens to fit the dialog (depends on
12    character width) instead of being limited to 12 regardless of size
13  - minor cleanup
14  - tweaking of theme sounds
15
16May 31, 2002: released 1.9.6
17  - decreased score factor in Easy mode. Don't be a wimp.
18  - changed sounds to 22050Hz -- this will allow better high-pitched effects
19  - changed default chunksize from 256 to 1024 -- this'll put alway the bad
20    sound-echo bug on some systems.
21  - minor memory leak cleanup in theme switching
22  - menu handler and dialog code cleanup
23  - right-clicking in options menu now cycles backwards, and right-clicking
24    on non-options menu items does nothing. scroll wheel cycles options
25  - arrow keys move around playing field
26  - keyboard now works in menu; other keyboard cleanup
27  - added a few new sounds
28  - beep (ouch, actually) on errors in high-score-name entry dialog
29
30May 27, 2002: released 1.9.5 (public beta)
31  - little bits of code cleanup
32  - slightly increase bonus for clearing more than 80 on higher levels to
33    help counteract the fact that having more penguins make that more and
34    more impossible
35
36May 26, 2002: released v1.9.4
37  - mouse cursor code cleanup
38  - made it so broken line sound doesn't play if that sound was last
39    started playing less than 30ms ago -- that way if two lines are broken
40    at once, the sound isn't double loud (but this still needs work --
41    proper behavior would be to play the sound with a slight delay)
42  - fixed race condition in readhiscore()/checkhiscore()/addhiscore() --
43    added file locking (thanks Enrico!)
44  - fixed memory leak in theme-sound-switching
45  - fixed draw bug in autopause mode
46  - no gameover if game is terminated/restarted before you've done anything
47  - added confirm dialog for changing difficulty level
48  - cleanup in dialog.c -- theme switching code now not quite so ugly
49    (redraw bug when both theme and difficulty were changed)
50  - added NSIS install script to generate Win32 installer. See:
51    <http://www.nullsoft.com/free/nsis/>. It's open source software, but as
52    far as I can tell there's no native Linux version yet. Luckily, runs
53    under Wine. If anyone knows of a port, let me know.
54  - mucking with some makefile stuff to make it easier to build on OS X or
55    BeOS. More to come on that front.
56
57May 23, 2002: released v1.9.3
58  - -b option for benchmark mode (will be disabled in stable releases).
59  - added command line options for themes
60  - added README.themes
61  - moved some of the stuff from the event loop in the main level function to
62    helper functions. It's still pretty ugly, but this tiny bit of cleanup
63    made it much easier to do the next thing on this list:
64  - added basic keyboard support:
65     * ESC to exit full-screen mode and to cancel menus.
66     * SPACE or X or . for toggle direction
67     * ENTER or Z or , for start lines
68  - made srandom use pid in addition to current time -- wouldn't want to
69    have the exact same game twice at once
70  - tweaked makefile for better cross-compiling and dist. package generation
71  - fixed fullscreen command-line option for case when config file doesn't
72    exist (and made the code better in the process)
73  - special "random" theme that actually causes theme to be chosen at random
74  - you can now define a "mirror" sprite to provide different images
75    depending on left/right direction
76  - BeOS compatibility stuff -- should be mostly un-broken now
77
78May 19, 2002: released v1.9.2
79  - added command-line options for sound, fullscreen mode, help, and version
80  - more themes!
81  - made 'gridhighlight' for themes, allowing pseudo-3d (button-style)
82    blocks
83  - full-screen mode now actually 640x480. This should make it work on
84    more platforms, and gives us a place to put a titlebar showing the
85    current level
86  - added erasepenguin routine -- fix some leaking surfaces
87  - improved text-handling routines -- scores in the transitions between
88    levels and at the end of the game are now centered properly, and the
89    highscore scroller at the beginning is done much more nicely
90
91
92May 16, 2002: released v1.9.1
93  - first cut at themes
94  - lack of object-oriented design forced me to create more global
95    variables. someday in the far future, this will become a C++ project.
96  - now can coexist with Winamp on win32 -- not sure if this is because
97    of fixes in SDL 1.2.4, or in the Winamp 2.80. It wasn't anything I did,
98    but hey, now you can listen to music while you play.
99  - linked against much smaller version of SDL_mixer DLL for win32 --
100    should cut the distribution archive in half or better.
101  - cleanup in the transition screen routines
102  - kludge around broken _snprintf in mingw32 -- cures potential overflow
103  - minor cleanup in the text routines
104
105
106August 30, 2001: released v1.9.0
107  - no significant changes; just starting new devel branch
108
109July 30, 2001: released v1.2.1
110  - fixed minor bug where highest-score line cut off letters that dip below
111    the baseline (gjpqy...). Thanks to Jonathan DePrizio for catching this.
112  - tiny little bugfixes, makefile cleanup
113  - switched to much more sensible linux-kernel-style numbering scheme.
114    (n.oddnumber.n for development releases, and n.evenumber.n for
115    stable "production" releases -- for example, 1.2.1 is a stable release,
116    so any excitement/surprises should come from the game, not from
117    bugs. 1.9.0 will be a devel release, and some features may not work
118    completely, or at all.)
119
120July 28, 2001: released v1.2
121  - added "score decay" timer, to discourage obsessive-compulsive types from
122    taking hours on one level. Sure, I want you to be obsessed with the
123    game, but have fun playing, not tediously waiting. :)
124  - added easy and hard difficulty settings
125  - added options for sound
126  - added option for auto pause (which makes the game stop when the window
127    loses focus -- note that it always pauses when minimized regardless of
128    this setting).
129  - now, when a line is stuck (against another line) for a long time,
130    the line completes instead of exploding. ("A long time" == approximately
131    5 seconds)
132  - merged in Enrico Tassi's win32 compatibility stuff -- win32 version
133    is now completely functional, except:
134  - added fullscreen option! (Unfortunately, still has problems in Win32,
135    so you'll have to edit the icebreaker.cfg manually if you want to enable
136    this feature on a MS Windows system. I'll get the problem figured out
137    for a future release.)
138  - fixed busy waits in dialog.c (thanks again to Enrico)
139  - code cleanup
140
141July 23, 2001: released v1.1
142  - added man page
143  - tiny change to error message when high score file can't be read
144
145July 18, 2001: released v1.09
146  - Gameplay change: changed behavior when a line hits another
147    partially-completed line -- now, instead of the line completing
148    successfully, it waits until the other completes or is destroyed.  In
149    the event that neither of those happens after a little while, new line
150    dies. (I've considered making it complete successfully in this case;
151    opinions, anyone?) This change makes the game much harder, in a good way.
152  - moved center of vertical cursor to proper location (oops)
153  - modified high score code to reread from disk, so that multiple players
154    on the same system don't cause confusion. A race condition still exists,
155    but it's much narrower. :) A future version will have proper locking.
156  - include fix for cmpscore bug thanks to Enrico Tassi
157
158October 5, 2000: released v1.0
159  - one-point-oh!
160
161October 3, 2000: released v0.995
162  - minor cosmetic fixes
163  - made 'make install' work; made it easier to redefine file locations
164  - made it so three-decimal-place version numbers work :)
165  - made level 100 loop forever instead of just ending the game there.
166    not that level 100 is any fun, really -- too many penguins!
167
168October 2, 2000: released v0.98
169  - first public release
170