-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
3133 lines (2446 loc) · 123 KB
/
ChangeLog
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
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2015-06-21
* extended automatic tape playing modes:
- "autotest" to automatically test tapes (this was "autoplay" before)
- "autoplay" to automatically play tapes (visibly)
- "autoffwd" to automatically play tapes (visibly, with maximum speed)
2015-06-16
* fixed and enhanced screen fading and background/border handling
2015-05-31
* added setup option to enable/disable (now optional) snapshot buttons
2015-04-22
* added lag prevention to door/request/envelope animations
2015-04-15
* added option "program_icon_file" to run-time "special edition" support
2015-04-14
* added run-time "special edition" support;
this change is especially targeted to the "R'n'D jue" special edition
of R'n'D, which changed some defaults at compile-time in previous
versions, like:
- using a different default artwork set (with fallback artwork for
classic artwork not existing in the special edition),
- using a different default level set,
- using a different program name and user data directory,
- starting with different default setup values and
- using custom artwork even at a very early stage of startup
(like initial fonts and initial loading/busy animation);
these changes can now all be accomplished at run-time by using a new
program-specific configuration file in the same location and with the
same name as the game binary (minus a potential binary file extension
".exe", plus a configuration file extension ".conf", so a binary file
"rnd_jue.exe" would be complemented by a new file "rnd_jue.conf" in
the same directory);
this config file can contain all options found in "setup.conf" plus
the following new, internal "special edition" default settings:
- program_title (like "R'n'D jue")
- program_author (like "Juergen Bonhagen")
- program_email (like "jue@artsoft.org")
- program_website (like "http://jue.artsoft.org/")
- program_copyright (like "(c) 2015 by jue")
- program_company (like "A game by jue")
- default_graphics_set (like "jue0")
- default_sounds_set (like "jue0")
- default_music_set (like "jue0")
- fallback_graphics_file (like "fallback.png")
- fallback_sounds_file (like "fallback.wav")
- fallback_music_file (like "fallback.wav")
- default_level_series (like "jue_start")
- choose_from_top_leveldir ("true" or "false")
where the "default" artwork set definitions are used to specify new
default artwork that replaces the "classic" artwork sets, while the
"fallback" settings specify artwork files used for all artwork files
that would exist in the classic artwork sets, but are not defined or
cannot be found in the new default artwork set; the program title is
used for things like window title, title screens and user data folder
name, and the entry point for choosing a level set can be changed
from the current level set location to the topmost level tree node
2015-04-07
* added sound definitions for pressing and releasing main menu buttons
2015-03-31
* fixed slow tape quick-loading due to unneeded tape area update
2015-03-30
* replaced stop/play buttons in game panel with save/load buttons
2015-03-24
* added step-based engine snapshots to undo/redo single steps in game
2015-03-19
* fixed (swapped) editor zoom directions for '-' and '+' (keypad) keys
2015-03-18
* added dynamically configurable graphics and layout of editor gadgets
2015-03-11
* fixed (swapped) editor zoom directions for left and right mouse button
2015-03-10
* added main menu backlink to level set selection screen
2015-03-07
* added support for gadget-like pressable menu buttons on main screen
2015-03-02
* added classic graphics, sounds and music to git repository
* added classic level sets to git repository
* added element description files to git repository
* changed mouse cursor on title screens not being always invisible
* added manually edited non-preset audio volume values to select list
(if sound, loops or music volume was manually edited in "setup.conf")
2015-02-27
* fixed using "background.TOOLBOX", which was simply ignored before
2015-02-23
* added key pad '-', '+' and '0' keys to zoom function in level editor
* changed editor key shortcut for undo/redo to 'u' and 'Shift-u'
* fixed using 'PageUp' and 'PageDown' keys for element list in editor
2015-02-21
* added 1%, 2% and 5% to volume controls for sound and music settings
2015-02-14
* fixed bug with editor border element not adjusted after resizing level
* changed unused playfield from "default" to "empty" after loading level
* increased number of undo/redo steps in level editor from 10 to 64
2015-02-13
* added zoom functionality for playfield drawing area to level editor
(use left, right and middle mouse buttons on new "zoom" toolbox button
or use keys '-', '+' and '0' to zoom out, in or reset to default size)
2015-02-11
* fixed bug not updating game panel values in visible warp forward mode
2015-02-10
* changed position of CE/GE use/save template gadgets to be visually
separated from other CE/GE gadgets (to prevent accidental use)
* fixed bug in editor when using undo after rotating level repeatedly
* added 'redo' functionality to editor (by pressing 'undo' with right
mouse button or by using key shortcut "Shift-R")
2015-02-04
* added configurability of editor control buttons (toolbox buttons)
2015-02-03
* finished configurability of tape date and time display positions
* fixed bug with game buttons in tape area not properly redrawn
* fixed small graphical bug with default tape time display position
* added optionally configurable game frame counter to tape display
2015-02-02
* fixed configurability of editor element palette (for columns != 4)
2015-01-29
* improved configurability of tape date and time display positions
* added configurability of element properties button in editor
* added build dependency for auto-conf files
2015-01-27
* added looking for editor element descriptions in level set directory
(for example, in file "<my-level-folder>/docs/elements/custom_1.txt")
2015-01-25
* moved "element properties" button in editor from toolbox to palette
* added "zoom level tile size" button in editor to toolbox (currently
no function behind it; will be used to zoom level editor playfield)
* added key shortcuts '1' to '3' to view properties of drawing elements
* fixed gadget display bug in editor (door 1 area) after test playing
* fixed bugs when changing drawing area gadgets (like group elements)
2015-01-19
* re-enabled editor palette element options in setup configuration file
2014-12-13
* fixed loading custom PCX image files with default artwork file names
(like "RocksDoor.pcx") which are not redefined in artwork config file
(this is a special fix for Zelda 2 and probably some other existing
level sets which use new graphics which are not defined in the file
"graphicsinfo.conf", but use a file name of one of default graphics
(like "RocksScreen.pcx"); this did not work anymore for PCX files
since the default graphics files have been changed to PNG files, so
different file names are checked now (like "RocksScreen.png"), so if
the PNG files cannot be found, the old PCX files are also checked)
2014-12-03
* added some more graphics customization options for the level editor:
- editor.button.prev_level (position)
- editor.button.next_level (position)
- editor.input.level_number (position)
- editor.palette.tile_size (tile size for palette elements)
- editor.palette.element_left.tile_size (draw element tile size)
- editor.palette.element_middle.tile_size (draw element tile size)
- editor.palette.element_right.tile_size (draw element tile size)
- editor.input.gfx.level_number (current level number input field)
2014-11-22
* fixed menu display bugs caused by drawing outside menu area (again)
2014-11-19
* fixed broken door animations when switching between custom graphics
2014-11-06
* fixed layout for "level set info" to support custom playfield size
* fixed changing from title to info screen with custom playfield size
2014-11-02
* fixed bug with not updating default bitmap pointer for scaled images
* fixed redraw/fade bugs when redefining the playfield size or position
2014-10-27
* fixed some smaller issues with loading custom artwork
2014-10-22
* added warnings when using undefined element and graphic names in
custom artwork definitions (like ".crumbled_like" or ".clone_from")
* added setting default filenames for all cloned graphics in static
graphics configuration on startup (to be able to fall back later)
2014-10-20
* fixed using buttons on main screen with size other than 32x32 pixels
* fixed some initialization bugs for scrollbars and main screen buttons
* fixed bug when drawing non-element graphics (without separate in-game
graphic/bitmap defined) while non-standard game tile size is defined
2014-10-17
* removed some remaining unused X11 stuff
* fixed bug with potentially suppressed exit error message on startup
2014-10-16
* fixed bug not loading tape when selecting level from level selection
screen (thanks to filbo for finding this bug and supplying a patch)
2014-10-15
* fixed menu display bugs (drawing outside menu area with draw offset)
* fixed menu key navigation bugs (when using smaller menu list size)
2014-10-14
* added support for animated door parts during opening/closing movement
2014-10-13
* added automatic detection of normal/steel character elements in level
editor when drawing text (depending on currently selected element)
2014-10-13
* eliminated historical ISO-8859-1 characters from source code files
(but still using them internally for special character encodings)
* changed output of special character for level sketch brushes to UTF-8
2014-10-08
* added handling of unselectable selectbox options and option headlines
2014-10-07
* fixed bug when changing between graphic sets with different tile size
* cleanup of handling the various graphic sizes for different purposes
(like 32x32, 16x16 etc.); this change was needed for the bugfix above
2014-10-02
* added virtual keyboard on Android port when entering player name
2014-10-01
* fixed "quick menu doors" and sounds for door and envelope requests
2014-09-29
* fixed display bugs with certain custom menu definitions regarding the
hall of fame (high scores) and setup screens that require scrolling
(these display bugs showed up with custom menu graphics of R'n'D jue)
2014-09-28
* fixed bug with animation frames per line with non-standard tile size
(relevant for example for 64x64 sized frames continued on next row)
2014-09-22
* removed checking of file identifier tokens for configuration files
2014-09-19
* fixed bug where player actions were only mapped in team mode
(this broke four tapes in automatic game engine unit test where
old levels contained a non-yellow player, like rnd_abby_king, 011)
2014-09-15
* removed large parts of the preprocessor hell of old and unused code
2014-09-14
* updated source file headers (mainly author contact information)
2014-09-11
* added key shortcuts for window scaling and toggling fullscreen mode:
- Ctrl-'+', Ctrl-'-' and Ctrl-'0' for up/downscaling and normal size
- "F11" key for toggling fullscreen mode (in addition to Alt-Enter)
2014-09-10
* fixed some drawing bugs when scaling graphics due to "game.tile_size"
* added some performance improvements when handling SDL surface scaling
2014-09-04
* added custom graphics property "game.tile_size" to define in-game tile
size (this defines the tile size actually displayed on the playfield);
tile graphics will either be scaled to the defined game tile size or
have to be specified with the same image size (using ".tile_size")
2014-09-01
* added custom graphics property ".tile_size" to define tile image size
for game element graphics (like "custom_1.tile_size"); non-standard
sized images will then be scaled accordingly to standard tile size
2014-08-30
* fixed music still being played in Android version when in background
2014-08-30
* added Android "menu" button to be treated as "yes" requester button
(while the Android "back" button was already treated as "no" button)
2014-08-28
* added command line options "--version" / "-V" to show program version
(also shows SDL library versions when prefixed with "--debug" option)
2014-08-27
* error file set to unbuffered to prevent truncation in case of crashes
2014-08-19
* fixed bug causing wrong screen updates while playing (whole screen
update from backbuffer instead of playfield buffer if REDRAW_ALL set)
* fixed nasty (typo) bug in native EM engine causing broken player
graphics when using different (redefined) playfield size
2014-08-18
* fixed bug causing EM/EMC graphics sets containing original 16x16 tiles
to be displayed incorrectly (with broken scaling) when switching
between small and normal game graphics (thanks a lot to filbo for
analyzing and describing how to exactly reproduce this bug)
2014-05-15
* removed MS-DOS support
* removed native X11 support (X11 now only supported via SDL/SDL2)
2014-05-14
* cleanup of functions RedrawPlayfield() and BlitScreenToBitmap()
2014-05-13
* fixed level redraw after quick-loading tape with small tile graphics
2014-03-03
* added compatibility code for existing request door animation settings
2014-03-01
* added ultra-generic, ultra-flexible request door animation handling
2014-02-18
* fixed major bugs in handling single-player and multi-player tapes
(for details, see http://www.artsoft.org/forum/viewtopic.php?t=2086)
2014-02-13
* fixed various problems with playfield and requester/tape/editor doors
defined to be at non-standard screen positions in artwork config file
2014-01-28
* added envelope style requester dialog (alternative to door requester)
2014-01-27
* fixed problems with window scaling and updating related setup value
* added setup option to select anti-aliasing quality of scaled windows
2014-01-17
* improved speed of displaying progress when loading levels and artwork
* changed fullscreen and window scaling changes in setup menu to have
immediate effect (instead of being effective after leaving setup menu)
2014-01-15
* fixed toons stopping on continuous touch events on Mac OS X
2014-01-14
* fixed bug when displaying game envelope with even sized playfield
* added graphic configuration options for request (dialog) buttons
2014-01-13
* fixed some redraw bugs with window scaling under Mac OS X
2014-01-10
* fixed problems with window scaling and updating related setup value
2014-01-07
* fixed problems related to fullscreen switching and window scaling
2014-01-06
* fixed inconsistent custom artwork constants numbering in src/main.h,
src/screen.c and src/conf_gfx.c (this really should be cleaned up)
(this bug caused custom artwork definition to set wrong variable)
2014-01-05
* fixed using fullscreen mode on Android instead of pseudo-window mode
* fixed keeping desktop fullscreen mode when changing viewport size
2014-01-04
* fixed remaining text input problems for non-ASCII keys with modifier
* added window scaling options to graphics setup menu
2014-01-03
* fixed key code problems with certain keys for SDL2
(keypad keys not being in numerical order; number of function keys)
* fixed text input problems for text characters using modifier keys
2014-01-02
* fixed fullscreen option for SDL2 (using only desktop fullscreen now)
2013-12-28
* fixed graphical bugs when using renderer/texture based graphics
2013-12-23
* fixed playing certain sounds (menu navigation sound and counting
score sound after solving a level) when "normal sounds" are disabled
2013-12-16
* continued porting Rocks'n'Diamonds to Android (levels now playable)
2013-12-12
* added SDL2 renderer/texture based graphics frame handling to allow for
"desktop" style fullscreen mode and scaling of game screen/window
2013-12-11
* removed limitation of artwork files to selected file types (this means
that every file type supported by SDL_image and SDL_mixer can be used)
* changed default graphics from PCX to PNG (needed for Android version
to prevent painfully slow image loading, although not compressing PCX
files in the assets directory of the APK package might also work fine)
* fixed bug with SDL_BlitSurface creating garbage when source and target
surface are the same (this bug also existed in versions of SDL 1.2.x)
2013-12-07
* started porting Rocks'n'Diamonds to Android (already shows main menu)
2013-12-03
* ported Rocks'n'Diamonds to SDL2 (first simple version that works)
2013-12-01
* version number set to 3.3.1.3
2013-11-24
* version 3.3.1.2 released
2013-11-20
* improved error handling: display error message on screen (not only in
the error file or on the console), and display path of the error file
2013-11-13
* fixed problem with R'n'D restarting with same level set that may have
caused a problem (and therefore failing again and again); after an
error, the last level set is now deactivated in file "levelsetup.conf"
to restart with default level set (which should work without error)
2013-11-07
* fixed determining main game data directory on Mac OS X "Mavericks"
2013-11-04
* version number set to 3.3.1.2
2013-11-04
* version 3.3.1.1 released
2013-11-03
* added scripts directory to distribution package to enable building
element definitions after editing artwork config source code files
2013-10-26
* added volume controls for sounds, loops and music to sound setup
2013-10-24
* version number set to 3.3.1.1
2013-10-23
* version 3.3.1.0 released
2013-10-21
* version number set to 3.3.1.0
2012-10-13
* fixed display of level time switching from ascending to descending
when making use of the "time orb bug" (see element setting in editor)
(see level 053 of set "rnd_equinox_tetrachloride_ii" for an example)
* fixed graphics performance problems (especially on Mac OS X) by using
whole-playfield redraw on SDL target, while still using the previous
single-tile redraw method on X11 target (using redraw tiles threshold)
2011-10-07
* fixed code (esp. random/tape handling) when compiled on 64-bit systems
(by replacing all "long" types by "int" types)
2010-11-19
* fixed nasty bug (affecting crumbled graphics) after adding new special
graphics suffix ".TAPE" (and messing some things up in src/main.c)
2010-08-04
* fixed wrong argument order in DrawTextBuffer() in gadgets.c
(this caused fonts in envelope config in level editor being invisible)
2010-07-19
* fixed some problems with half tile size and even tile sized playfields
2010-07-12
* added level selection screen (when clicking on main menu level number)
* added level tracing (played, solved) for use in level selection screen
(to display already played or solved levels in different font color)
2010-06-24
* added alternative game mode for playing with half size playfield tiles
* fixed another memory violation bug in the native Supaplex game engine
(this potential memory bug was also in the original Megaplex code, but
apparently only occured under rare conditions triggered by using the
additional added preceding playfield memory area to make a few strange
levels using dirty off-playfield tricks (bugs) like "12s033.sp" also
solvable (this all worked fine in the classic DOS version, of course))
2010-06-23
* added graphics performance optimization to native Supaplex game engine
* fixed bug with accidentally removing preceding buffer in SP engine
* moved some editor graphics from "RocksDoor.pcx" to "RocksMore.pcx"
(to prevent compatibility mapping of these newer graphics to older
(custom) versions of "RocksDoor.pcx" which did not contain them yet)
2010-06-18
* added separately configurable game panel background to graphics config
* fixed displaying Supaplex time (now based on 35 fps instead of 50 fps)
2010-06-16
* added tape panel graphics and screen positions to graphics config
2010-06-15
* added compatibility stuff for redefined "global.door" (which affects
all parts of that image that have their own graphics definition now)
2010-06-14
* added sound button graphics to graphics config
2010-06-13
* added tape button graphics and screen positions to graphics config
2010-06-09
* improved single step mode in R'n'D, EM and SP engines
2010-06-08
* version number set to 3.3.0.2
2010-06-08
* version 3.3.0.1 released
2010-06-08
* added configurable key shortcuts for snap+direction player actions
(probably most useful for recording tool-assisted speedrun (TAS)
tapes using the single-step mode of the tape recorder)
2010-05-28
* version number set to 3.3.0.1
2010-05-25
* version 3.3.0.0 released
2010-05-22
* fixed missing memory allocation in SP engine when saving engine data
for non-SP game engine snapshots (which also stores SP engine part)
2010-05-21
* fixed problem with scrolling in native EM engine in multi-user mode
(this bug was just introduced with the experimental viewport stuff)
* fixed animation of splashing acid in EM engine with classic artwork
* fixed animation of cracking nut in EM engine with classic artwork
* fixed (implemented) single step mode in native EM and SP engines
* fixed "latest_engine" flag in classic levels (moved to single sets)
* updated SDL library DLLs for Windows to the latest release versions
(this fixed some mysterious crashes of the game on Windows systems)
* replaced EM and SP set in classic level set with native level files
* finally added a newly written "CREDITS" file to the game package
* removed sampled music loops from classic music set
2010-04-20
* changed native Emerald Mine engine to support different viewport sizes
2010-04-19
* changed native Supaplex engine to support different viewport sizes
2010-04-07
* added initial, experimental support for different viewport properties
(with "viewports" being menu/playfield area and doors; currently the
size of the menu/playfield area and door positions can be redefined)
2010-04-02
* added initial, experimental support for different window sizes
2010-03-27
* added support for native Sokoban solution files in pure 'udlrUDLR'
format with extension ".sln" instead of ".tape" for solution tapes
2010-03-26
* added image config suffix ".class" to be able to define classes of
crumbled elements which are then separated against each others when
drawing crumbled borders (class names can freely be defined)
(Example: "sand.CRUMBLED.class: sand" and "emc_grass.CRUMBLED.class:
emc_grass" results in sand and emc_grass being crumbled separately,
even if directly adjacent on the playfield.)
* added image config suffix ".style" to use two new features for
crumbled graphics:
- "accurate_borders": try to draw correctly crumbled corners (which
means that a row of crumbled elements does not have two crumbled
corners for each element in the row, but only at the "real" corners
at the start and the end of the row of elements)
- "inner_corners": also draw inner corners in concave constructions
of several crumbled elements -- this is currently a big kludge: the
number of frames for crumbled graphic must be "2", with the first
frame as usual (crumbled graphic), while the second frame contains
the graphic with inner (crumbled) corners for the crumbled graphic
(These two features are mainly intended for bevelled walls, not for
diggable elements like sand; "inner_corners" only works reliably for
static walls, not for in-game dynamically changing walls using CEs.)
2010-03-16
* finished code cleanup of native Supaplex game engine
2010-03-14
* started code cleanup of native Supaplex game engine
2010-03-13
* integrated playing sound effects into native Supaplex game engine
2010-03-10
* added configurable key shortcuts for the tape recorder buttons
2010-03-09
* added (hidden) function to save native Supaplex levels with tape as
native *.sp file containing level with demo (saved with a file name
similar to native R'n'D levels, but with ".sp" extension instead of
".level"); to use this functionality, enter ":save-native-level" or
":snl" from the main menu with the native Supaplex level loaded and
the appropriate tape loaded to the tape recorder
* fixed potential crash bug caused by illegal array access in engine
snapshot loading and saving code
* changed setting permissions of score files to be world-writable if
the program is not installed and running setgid to allow the program
to modify existing score files when run as a different user (which
allows cheating, of course, as the score files are not protected
against modification in this case)
* added (commented out) suggestions for RO_GAME_DIR and RW_GAME_DIR to
the top level Makefile for Debian / Ubuntu installations
* added saving read-only levels from editor into personal level set
(thanks to Bela Lubkin for the above four patches)
2010-03-03
* added updating of game values on the panel to Supaplex game engine
2010-02-23
* finished integrating R'n'D graphics engine into Supaplex game engine
(although some animations do not support full customizability yet)
2010-02-22
* done integrating R'n'D graphics engine into file "Infotron.c"
* done integrating R'n'D graphics engine into file "OrangeDisk.c"
2010-02-19
* integrated engine snapshot functionality into Supaplex game engine
2010-02-16
* fixed bug in native Supaplex engine that broke several demo solutions
* fixed bug with re-initializing already existing elements in function
RelocatePlayer() in src/game.c (causing problems with Sokoban fields
counted a second time, making the currently playing level unsolvable)
* done integrating R'n'D graphics engine into file "SnikSnaks.c"
* done integrating R'n'D graphics engine into file "Electrons.c"
* done integrating R'n'D graphics engine into file "Zonk.c"
2010-02-14
* done integrating R'n'D graphics engine into file "Murphy.c"
* done integrating R'n'D graphics engine into file "BugsTerminals.c"
2010-02-07
* started integrating R'n'D graphics engine into Supaplex game engine
2010-02-02
* added small kludge that allows transparent pushing animation over
non-black background (by using "game.use_masked_pushing: true")
* added editor flag to Sokoban field/object elements to automatically
finish solved Sokoban style levels (even if they contain non-Sokoban
elements, which prevents auto-enabling this feature for such levels)
2010-01-10
* added new element "from_level_template" which is replaced by element
from level template at same playfield position when loaded (currently
not accessible from level editor, but only used for special Sokoban
level conversion when using "special_flags: load_xsb_to_ces")
* added special behaviour for "special_flags: load_xsb_to_ces": global
settings of individual level files are overwritten by template level
(except playfield size, level name, level author and template flag)
2010-01-07
* added handling of gravity ports when converting Supaplex style R'n'D
levels to native Supaplex levels for playing with Supaplex engine
2010-01-06
* fixed bug in Supaplex engine regarding initial screen scroll position
2009-12-17
* fixed EMC style pushing animations in the R'n'D graphics engine (when
using ".2nd_movement_tile" for animations having start and end tile)
* for this to work (look) properly for two-tile pushing animations with
non-black (i.e. opaque) background, the pushing graphics drawing order
was changed to first draw the pushed element, then the player (maybe
this should be controlled by an ".anim_mode" flag yet to be added)
* two-tile animations for moving or pushing should have 7 frames for
normal speed, 15 frames for half speed etc. to display correct frames
* two-tile animations are also displayed correctly with different speed
settings for the player (for pushing animations) or moving elements
2009-12-16
* added searching for template level (file "template.level") not only
inside the level set directory, but also in above level directories;
this makes is possible to use the same single template level file
(placed in a level group directory) for many level sub-directories
2009-12-10
* fixed bug with steel exit being destructible during opening phase
* added token "special_flags" to "levelinfo.conf" (currently with the
only recognized value "load_xsb_to_ces", doing the same as the flag
"-Dload_xsb_to_ces" on the command line, but as a permanent flag for
converting all elements in native (XSB) Sokoban level files to CEs)
2009-12-08
* fixed some problems with Supaplex engine when compiling for Windows
2009-12-05
* added special mode to convert elements of Sokoban XSB levels to CEs
by adding "-Dload_xsb_to_ces" to the command line starting the game
(also adding a dependency to a template level file "template.level")
2009-12-01
* added reading native Sokoban levels and level packages (XSB files)
2009-11-25
* fixed bugs in (auto)scrolling behaviour when passing ports or when
wrapping around the playfield through "holes" in the playfield border
2009-11-24
* changed internal playfield bitmap handling from playfield sized bitmap
to screen sized bitmap (visible scrolling area), therefore speeding up
graphics operations (by eliminating bitmap updates in invisible areas)
and removing playfield size limitations due to increasing bitmap size
for larger playfield sizes (while the new implementation always uses
a fixed playfield bitmap size for arbitrary internal playfield sizes)
2009-11-12
* fixed bug with single step mode (there were some cases where the game
did not automatically return to pause mode, e.g. when trying to push
things that cannot be pushed or when trying to run against a wall)
2009-11-01
* added support for loading Supaplex levels in MPX level file format
2009-10-31
* fixed SP engine to set "game over" not before lead out counter done
2009-10-30
* fixed (potential) compile error when using GCC option "-std=gnu99"
(thanks to Tom "spot" Callaway)
2009-10-28
* fixed array allocation in native Supaplex engine to correctly handle
preceding scratch buffers (needed because of missing border checking)
* fixed playfield initialization to correctly add raw header bytes as
subsequent scratch buffer (needed because of missing border checking)
2009-10-24
* most important parts of native Supaplex engine integration working:
- native Supaplex levels can be played in native Supaplex engine
- native Supaplex level/demo files ("*.sp" files) can be re-played
- all 111 classic original Supaplex levels automatically solvable
- native Supaplex engine can be selected and used from level editor
- logic of re-playing Supaplex demos migrated to R'n'D tape logic
2009-09-25
* fixed another translation problem from VisualBasic to C (where "int"
should be "short") causing unsolvable demos with bugs and terminals
("bugs" being related to the Supaplex "buggy base" element here ;-) )
2009-09-23
* fixed bug when reading Supaplex single level files (preventing loader
from seeking to level position like in Supaplex level package files)
2009-08-01
* first classic Supaplex level running and solved by solution/demo tape
2009-06-20
* started with integration of native Supaplex engine, using source code
of Megaplex from Frank Schindler, based on original Supaplex engine
2009-06-16
* version number set to 3.2.6.2
2009-06-15
* version 3.2.6.1 released
2009-05-31
* fixed bug with element_info[e].gfx_element not being initialized in
early game stage, causing native graphics in EMC level sets to be
mapped completely to EL_EMPTY (causing a blank screen when playing)
(this only happened when starting the program with an EMC set with
native graphics, but not when switching to such a set at runtime)
2009-03-30
* deactivated blit-to-same-surface workaround again (see 2009-03-24)
and using self-compiled, patched SDL.dll that solves this problem
(interim solution until release of SDL 1.2.14 that should fix this)
2009-03-26
* extended backwards compatibility mode to allow already fixed bug with
change actions (see "2008-02-05") for existing levels (especially the
Zelda and Zelda II levels and other cool stuff by Alan Bond like FMV)
2009-03-24
* reactivated workaround to prevent program crashes due to blitting to
the same SDL surface that apparently only occurs on Windows systems
(this is no final solution; this problem needs further investigation)
2008-11-05
* version number set to 3.2.6.1
2008-11-04
* version 3.2.6.0 released
2008-10-11
* fixed behaviour of player option "no centering when relocating" which
was incorrect when disabled and relocation target inside visible area
and "no scrolling when relocating" enabled at the same time
2008-10-06
* fixed problems with re-mapping players on playfield to input devices:
previously, players found on the level playfield were changed to the
players connected to input devices (for example, player 3 in the level
was changed to player 1 (using artwork of player 3, to be able to use
a player with a different color)); this had the disadvantage that CE
conditions using player elements did not work (because the players in
the level definition are different to those effectively used in-game);
the new system uses the same player elements as defined in the level
playfield and re-maps the input devices of connected players to the
corresponding player elements when playing the level (in the above
example, player 3 now really exists in the game and is moved using the
events from input device 1); level tapes still store the events from
input devices 1 to 4, which are then re-mapped to players accordingly
when re-playing the tape (just as it is done when playing the level)
2008-09-29
* fixed bug with player relocation while the player switches an element
2008-09-24
* fixed bug with EM/DC style exit and EM/DC style steel exit which was
not walkable (and did not let the player enter) when in process of
opening, but not fully open yet (which can cause the player not being
able to enter the exit in EM/DC style levels in time)
2008-08-02
* fixed some bugs regarding the new level/CE random seed reset options
2008-07-14
* moved "level settings" and "editor settings" to two tabbed screens in
level editor to gain space for additional level property settings
* added level setting to start a level with always the same random seed
* added CE action "set random seed" to re-initialize random seed in game
(this is the only CE action that gets executed before the CE changes,
which is needed to use the newly set random seed during the CE change)
2008-06-16
* fixed redraw problem of special editor door when playing from editor
2008-06-16
* fixed initialization of gfx_element for level sketch image creation
2008-06-15
* added switch for EM style dynamite "[ ] explodes with chain reaction"
(with default set to "on" for existing levels, but "off" for all new
levels), as EM style dynamite does not chain-explode in original EM
2008-02-05
* added optional initial inventory for players (pre-collected elements)
* added change page actions "set player inventory" and "set CE artwork"
* added recognition of "player" parameter on change pages when player
actions are defined, but no trigger player in corresponding condition
(this resulted in actions that only affected the first player before)
* fixed bug with change actions being executed for newly created custom
elements resulting from custom element changes, when the intention was
only to check for change actions for the previous custom element
2008-02-03
* changed design and size of element drawing area in level editor
* added "element used as action parameter" to element change actions
2008-01-27
* added possibility to reanimate player immediately after his death
(for example, by "change to <player> when explosion of <player>")
2008-01-25
* fixed bug with "gray" white door not being uncovered by magnifier
* added score for collecting (any) key to the white key config page
2008-01-22
* added condition "deadly when <getting hit by>" for custom elements
that behaves a bit like the existing "deadly when <colliding with>",
but with the following differences:
- it only kills players or friends when it was moving before it hits
- it does not kill players or friends that try to run into it
2008-01-21
* fixed the following change conditions where a player element is used
as the "element that is triggering the custom element change":
- touching <element>
- hitting <element>
- explosion of <element>
- move of <element>
(the last two conditions already worked partially, but only for the
first player, and not for the "Murphy" player when using "move of")
2008-01-20
* fixed crash bug caused by accessing invalid element (with value -1)
in UpdateGameControlValues()
* fixed graphical bug when using two-tile movement animations with EMC
game engine without explicitly using native EMC graphics engine
2007-10-31
* fixed bug in new "can dig" feature (see below) so that an unsuccessful
try to push something (due to push delay) does not cause a dig action
2007-10-29
* fixed bug with reference elements used as trigger elements on custom
element change pages not being recognized
* fixed bug with reference elements not being removed from the playfield
* added engine functionality that allows custom elements that "can dig"
other elements not only to do so when moving by themselves, but also
when being pushed by the player (therefore adding the functionality to
push one element over another element, replacing it with the new one)
2007-10-23
* added command line function to write level sketch images to directory
2007-10-20
* merged override and auto-override options into new override options
with a new data type than can take the values "no", "yes" and "auto"
2007-10-18
* fixed growing steel wall to also leave behind steel wall instead of
normal, destructible wall
* fixed handling of rocks falling through stacks of quicksand with
different speed (before, the rocks just got stuck in the quicksand)
2007-10-09
* fixed nasty bug with auto-override and normal override not working on
program startup (especially when current level set has custom artwork)
2007-10-05
* version 3.2.5 released as special edition "R'n'D jue"
2007-10-05
* fixed X11 crash bug when blitting masked title screens over background
2007-10-04
* changed build system to support special editions (like "R'n'D jue")
* added (hardcoded) loading graphics for "R'n'D jue" special edition
* fixed X11 crash bug when scaling images with width/height less than 32
2007-09-27
* added "background.PLAYING" (only visible as two-pixel border in game)
* added default level set for first start of special R'n'D version
* changed door animations for editor always behaving like "quick doors"
2007-09-26
* added new custom artwork setup option "auto-override non-CE sets" for
automatic artwork override that is only used for level sets without
custom element artwork (as it does not make much sense to override
any artwork that redefines custom element artwork for sets using CEs)
* fixed default artwork for "special" R'n'D versions always using the
"classic" artwork as the base if base artwork is not explicitly
defined in "levelinfo.conf", regardless of different default artwork
used by the special R'n'D version -- this is needed because any such
custom artwork is designed using the "classic" artwork definitions as
the base (including menu definitions and screen positions etc., which
would otherwise be taken from the different special default artwork)
2007-09-17
* fixed drawing of animated "quicksand.filling" and "quicksand.emptying"
for both EMC and R'n'D graphics engine (heavy workarounds needed due
to massively broken handling of quicksand in R'n'D game engine)
* fixed off-limits access to array in DrawLevelFieldCrumbledSandExt()
* fixed crash bug (hopefully) when scrolling with cursor keys in editor
2007-09-16
* fixed small bug in toon drawing (introduced when fixing the crash bug)
2007-09-15
* added graphics definition "game.panel.highscore" to display the
current levels current high score in the game panel
2007-09-13
* version number set to 3.2.5
2007-09-13
* version 3.2.4 released
2007-09-13
* fixed crash bug in toon drawing functions for large step offset values
2007-09-12
* fixed some problems with displaying game panel when quick-loading tape
2007-09-07
* fixed (experimental only) redrawing of every tile per frame (even if
unneeded) for the extended (R'n'D based) EMC graphics engine
* added optimization to only calculate element count for panel display
if really needed (that is, if element count values defined on panel)
* fixed problem with special editor door redraw when entering main menu
2007-09-03
* fixed bug with displaying background for title messages on info screen