rnd-20030913-1-src
[rocksndiamonds.git] / ChangeLog
1 2003-09-13
2         * Version number set to 3.0.5.
3
4 2003-09-13
5         * Version 3.0.4 released.
6
7 2003-09-12      src/tools.c
8         * fixed bug in custom definition of crumbled element graphics
9
10 2003-09-11      src/files.c
11         * fixed bug in multiple config pages code that caused crashes
12
13 2003-09-08
14         * Version number set to 3.0.4.
15
16 2003-09-08
17         * Version 3.0.3 released.
18
19 2003-09-07
20         * added music to Supaplex classic level set
21
22 2003-09-07      src/libgame/misc.c
23         * added support for loading various music formats through SDL_mixer
24
25 2003-09-06      (various source files)
26         * fixed several nasty bugs that may have caused crashes on some systems
27         * added envelope content which gets displayed when collecting envelope
28         * added multiple change event pages for custom elements
29
30 2003-08-24      src/game.c
31         * fixed problem with player animation when snapping and moving
32
33 2003-08-23      src/screens.c, src/cartoons.c, src/libgame/toons.c
34         * fixed problem with flickering when drawing toon animations
35
36 2003-08-23      src/libgame/sdl.c
37         * fixed problem with setting mouse cursor in SDL version in fullscreen
38
39 2003-08-23      src/game.c
40         * fixed bug (missing array boundary check) which could crash the game
41
42 2003-08-23
43         * Version number set to 3.0.3.
44
45 2003-08-22
46         * Version 3.0.2 released.
47
48 2003-08-21      src/game.c
49         * fixed bug with creating inaccessible elements at player position
50
51 2003-08-20      src/init.c
52         * fixed bug with not finding current level artwork directory
53
54 2003-08-20      src/files.c
55         * fixed bug with choosing wrong engine version when playing tapes
56         * fixed bug with messing up custom element properties in 3.0.0 levels
57
58 2003-08-18
59         * Version number set to 3.0.2.
60
61 2003-08-18
62         * Version 3.0.1 released.
63
64 2003-08-17      (no source files affected)
65         * changed all "classic" PCX image files with 16 colors or less to
66           256 color (8 bit) storage format, because the Allegro game library
67           cannot handle PCX files with less than 256 colors (contributed
68           graphics are not affected and might look wrong in the DOS version)
69
70 2003-08-16      src/init.c
71         * fixed bug which (for example) crashed the level editor when defining
72           "dynamite.EDITOR:  [NONE]", because graphics may not be undefined
73           (only set to default) -- invalid graphics now set to default graphic
74
75 2003-08-16      src/init.c
76         * fixed graphical bug of player digging/collecting/snapping element
77           when no corresponding graphic/animation is defined for this action,
78           resulting in player being drawn as EL_EMPTY (which should only be
79           done to elements being collected, but not to the player)
80
81 2003-08-16      src/game.c
82         * fixed small graphical bug of player not totally moving into exit
83
84 2003-08-16      src/libgame/setup.c
85         * fixed bug with wrong MS-DOS 8.3 filename conversion
86
87 2003-08-16      src/tools.c
88         * fixed bug with invisible mouse cursor when pressing ESC while playing
89
90 2003-08-16      (various source files)
91         * added another 128 custom elements (disabled in editor by default)
92
93 2003-08-16      src/editor.c
94         * fixed NULL string bug causing Solaris to crash in sprintf()
95
96 2003-08-16      src/screen.c
97         * fixed drawing over scrollbar on level selection with custom fonts
98
99 2003-08-15      src/game.c
100         * cleanup of simple sounds / loop sounds / music settings
101
102 2003-08-08      (various source files)
103         * added custom element property for dropping collected elements
104
105 2003-08-08      src/conf_gfx.c
106         * fixed bug with missing graphic for active red disk bomb
107
108 2003-08-07      src/files.c, src/editor.c src/game.c, src/main.h
109         * Extended variable "level.gravity" to "level.initial_gravity" and
110           "game.current_gravity" to prevent level setting from being changed
111           by playing the level (keeping the runtime value after playing).
112
113         * Fixed graphics bug when digging element that has 'crumbled' graphic
114           definition, but not 'diggable' graphic definition.
115
116 2003-08-06
117         * Version number set to 3.0.1.
118
119 2003-08-05
120         * Version 3.0.0 released.
121
122 2003-08-05
123         * various bug fixes; among others:
124           - fixed bug with pushing spring over empty space
125           - fixed bug with leaving tube while placing dynamite
126           - fixed bug with explosion of smashed penguins
127           - allow Murphy player graphic in levels with non-Supaplex elements
128
129 2003-04-07
130         * Various changes.
131         * I have forgotten to document changes for some time.
132
133 2002-12-31
134         * Pre-Release Version 2.2.0rc1 released.
135
136 2002-08-25
137         * Version number set to 2.1.2.
138
139 2002-08-13
140         * Version 2.1.1 released.
141
142 2002-08-10
143         * Version number set to 2.1.1.
144
145 2002-08-05
146         * Version 2.1.0 released.
147         
148 2002-05-19
149         * Version number set to 2.1.0.
150
151 2002-04-03 to 2002-05-19        (various source files)
152         * graphics, sounds and music now fully configurable
153         * bug fixed that prevented walking through tubes when gravity on
154
155 2002-04-02      src/events.c, src/editor.c
156         * Make Escape key less aggressive when playing or when editing level.
157           This can be configured as an option in the setup menu. (Default is
158           "less aggressive" which means "ask user if something can be lost"
159           when pressing the Escape key.)
160
161 2002-04-02      src/screen.c
162         * Added "graphics setup" screen.
163
164 2002-04-01      src/screen.c
165         * Changed "choose level" setup screen stuff to be more generic (to
166           make it easier to add more "choose from generic tree" setup screens).
167
168 2002-04-01      src/config.c, src/timestamp.h
169         * Added source files "src/config.[ch]" and "src/timestamp.h" (which
170           automatically gets created by "src/Makefile" and contains an actual
171           compile-time timestamp to identify development versions of the game).
172
173 2002-03-31      src/tape.c, src/events.c
174         * Added quick game/tape save/load functions to tape stuff which can be
175           invoked by a keyboard shortcut. Default: "F1" saves game/tape, "F2"
176           loads previously recorded tape and directly goes into recording mode
177           from the end of the tape (therefore appending to the tape).
178
179 2002-03-31      src/tape.c
180         * Added "index mark" function to tape recorder. When playing or
181           recording, "eject" button changes to "index" button. Setting index
182           mark is not yet implemented, but pressing index button when playing
183           allows very quick advancing to end of tape (when normal playing),
184           very fast forward mode (when playing with normal fast forward) or
185           very fast reaching of "pause before end of tape" (when playing with
186           "pause before end" playing mode).
187
188 2002-03-30      src/cartoons.c
189         * Moved some stuff from cartoons.c to the new "src/libgame/toons.c".
190
191 2002-03-29      src/screen.c
192         * Changed setup screen stuff to be more generic (to make it easier
193           to add more setup screens).
194
195 2002-03-23      src/main.c, src/main.h
196         * Various changes due to the introduction of the new libgame files
197           "setup.c" and "joystick.c".
198
199 2002-03-23      src/files.c
200         * Generic parts of "src/files.c" (mainly setup and level directory
201           stuff) moved to new libgame file "src/libgame/setup.c".
202
203 2002-03-23      src/joystick.c
204         * File "src/joystick.c" moved to libgame source tree, with
205           correspondig changes.
206
207 2002-03-22      src/screens.c
208         * "HandleChooseLevel()": Another bug in level series navigation fixed.
209           (Wrong level series information displayed when entering main group.)
210
211 2002-03-22      src/editor.c
212         * Slight change to support new gadget event "GD_EVENT_INFO_LEAVING".
213
214 2002-03-22      src/editor.c
215         * Changed behaviour of "Escape" key in level editor to be more
216           intuitive: When in "Element Properties" or "Level Info" mode,
217           return to "Drawing Mode" instead of leaving the level editor.
218
219 2002-03-21      src/game.c, src/editor.c, src/files.c
220         * 2.0.1 introduced the corrected "Emerald Mine" style behaviour of
221           gems (emeralds, diamonds, ...) slipping down from normal wall,
222           steel wall and growing wall (as in E.M.C. style levels). Although
223           the behaviour of contributed and private levels wasn't changed (due
224           to the use of "level.game_version"; see previous entry), editing
225           those levels will (of course) change the behaviour accordingly.
226
227           This change seems a bit too hard after thinking about it, because
228           the EM style behaviour is not the "expected" behaviour (gems would
229           normally only slip down from "rounded" walls). Therefore this was
230           now changed to an element property for gem style elements, with the
231           default setting "off" (which means: no special EM style behaviour).
232           To fix older converted levels, this flag is set to "on" for pre-2.0
233           levels that are neither contributed nor private levels.
234
235 2002-03-20      src/files.h
236         * Corrected settings for "level.game_version" depending of level type.
237           (Contributed and private levels always get played with game engine
238           version they were created with, while converted levels always get
239           played with the most recent version of the game engine, to let new
240           corrections of the emulation behaviour take effect.)
241
242 2002-03-20      src/main.h
243         * Added "#include <time.h>". This seems to be needed by "tape.c" for
244           compiling the SDL version on some systems.
245           Thanks to the several people who pointed this out.
246
247 2002-03-19
248         * Version number set to 2.0.2.
249
250 2002-03-19
251         * Version 2.0.1 released.
252
253 2002-03-18      src/screens.c
254         * "HandleChooseLevel()": Small bug in level series navigation fixed.
255
256 2002-03-18      src/files.c [src/libgame/misc.c]
257         * Moved some common functions from src/files.c to src/libgame/misc.c.
258
259 2002-03-18      src/files.c [src/libgame/misc.c]
260         * Changed permissions for new directories and saved files (especially
261           score files) according to suggestions of Debian users and mantainers.
262           Thanks to Drew Parsons <dparsons@emerall.com> for the patch.
263
264 2002-03-17      src/files.c
265         * Changed "{Load|Save}{Level|Tape}()" to IFF style file format:
266           Replaced "cookie" header string ("ROCKSNDIAMONDS_...\n") with
267           real IFF style header "RND1....XXXX" (where "XXXX" is "CAVE"
268           for levels and "TAPE" for tapes). Old "cookie" style format is
269           still supported for reading. New level and tape files are written
270           in new format.
271
272         * New IFF chunk "VERS" contains version numbers for file and game
273           (where "game version" is the version of the program that wrote the
274           file, and "file version" is a version number to distinguish files
275           with different format, for example after adding new features).
276
277 2002-03-15      src/screen.c
278         * "DrawHallOfFame()": "FadeSounds()" when entering the hall of fame.
279           (Before, you heard a mixture of the in-game music and the
280           hall-of-fame music.)
281
282 2002-03-14      src/events.c
283         * Function "DumpTape()" (files.c) now available by pressing 't' from
284           main menu (when in DEBUG mode).
285
286 2002-03-14      src/game.c
287         * "GameWon()": When game was won playing a tape, now there is no delay
288           raising the score and no corresponding sound is played.
289
290 2002-03-14      src/files.c
291         * Changed "LoadTape()" for real chunk support and also adjusted
292           "SaveTape()" accordingly.
293
294 2002-03-14      src/game.c, src/tape.c, src/files.c
295         * Important changes to tape format: The old tape format stored all
296           actions with a real effect with a corresponding delay between the
297           stored actions. This had some major disadvantages (for example,
298           push delays had to be ignored, pressing a button for some seconds
299           mutated to several single button presses because of the non-action
300           delays between two action frames etc.). The new tape format just
301           stupidly records all device actions and replays them later. I really
302           don't know why I haven't solved it that way before?! Old-style tapes
303           (with tape file version less than 2.0) get converted to the new
304           format on-the-fly when loading and can therefore still be played;
305           only some minor parts of the old-style tape handling code was needed.
306           (A perfect conversion is not possible, because there is information
307           missing about the device actions between two action frames.)
308
309 2002-03-14      src/files.c
310         * New function "DumpTape()" to dump the contents of the current tape
311           in a human readable format.
312
313 2002-03-14      src/game.c
314         * Small tape bug fixed: When automatically advancing to next level
315           after a game was won, the tape from the previous level still was
316           loaded as a tape for the new level.
317
318 2002-03-14      src/tape.c
319         * Small graphical bug fixed: When pressing ""Record" or "Play" on
320           tape, cartoons did not get completely removed because
321           StopAnimation() was not called.
322
323 2002-03-13      src/files.c
324         * Changed "LoadLevel()" and "SaveLevel()" to add new chunk "CNT2".
325           Fixed bug of "CONT" and "BODY" (chunk size was set to 8-bit element
326           size even when using 16-bit elements). Added new chunk "CNT2" for
327           16-bit amoeba content (previously written in 8-bit field in "HEAD"
328           chunk even when content was 16-bit element). "CNT2" should now be
329           able to store content for arbitrary elements (up to eight blocks of
330           3 x 3 element arrays). All "CNT2" elements will always be stored as
331           16-bit elements. "CONT" (with 8/16-bit elements) now obsolete.
332
333 2002-03-13      src/files.c
334         * Changed "LoadLevel()" for real chunk support.
335
336 2002-03-12      src/game.c
337         * Fixed problem (introduced after 2.0.0 release) with penguins
338           not getting killed by enemies
339
340 2002-02-24      src/game.c, src/main.h
341         * Added "player->is_moving"; now "player->last_move_dir" does
342           not contain any information if the player is just moving at
343           the moment or not.
344           Before, "player->last_move_dir" was misused for this purpose
345           for  the robot stuff (robots don't kill players when they are
346           moving). But setting "player->last_move_dir" to MV_NO_MOVING
347           broke tapes when walking through pipes!
348           ("IS_MOVING()" uses "MovPos[][]", but this fails when it is 0
349           in a continuous movement. This fact is ignored for friends and
350           enemies, though.)