rocksndiamonds.git
6 weeks agoversion number set to 4.3.4.0 master 4.3.4.0
Holger Schemel [Sun, 18 Dec 2022 10:50:21 +0000 (11:50 +0100)]
version number set to 4.3.4.0

6 weeks agofixed text length calculation bug
Holger Schemel [Sun, 18 Dec 2022 10:47:56 +0000 (11:47 +0100)]
fixed text length calculation bug

6 weeks agoadded third tutorial level set "ncrtorial" by ncrecc
Holger Schemel [Sun, 18 Dec 2022 10:37:53 +0000 (11:37 +0100)]
added third tutorial level set "ncrtorial" by ncrecc

6 weeks agoadded support for separate sound and music for info sub-screens
Holger Schemel [Sat, 17 Dec 2022 12:47:59 +0000 (13:47 +0100)]
added support for separate sound and music for info sub-screens

6 weeks agoremoved unused code (list of score entries is never empty)
Holger Schemel [Sat, 17 Dec 2022 09:42:04 +0000 (10:42 +0100)]
removed unused code (list of score entries is never empty)

6 weeks agoremoved sub-headline on score info screen
Holger Schemel [Sat, 17 Dec 2022 09:08:00 +0000 (10:08 +0100)]
removed sub-headline on score info screen

6 weeks agoadded special screen position for button to show level set info for "jue0"
Holger Schemel [Fri, 16 Dec 2022 17:56:39 +0000 (18:56 +0100)]
added special screen position for button to show level set info for "jue0"

6 weeks agoadded limiting default number of game elements on info screen
Holger Schemel [Fri, 16 Dec 2022 17:55:12 +0000 (18:55 +0100)]
added limiting default number of game elements on info screen

6 weeks agochanged title on info screen again
Holger Schemel [Fri, 16 Dec 2022 12:05:32 +0000 (13:05 +0100)]
changed title on info screen again

6 weeks agoremoved unused constant
Holger Schemel [Fri, 16 Dec 2022 11:59:00 +0000 (12:59 +0100)]
removed unused constant

6 weeks agoremoved sub-headlines on info screens (text is now part of main headline)
Holger Schemel [Thu, 15 Dec 2022 07:42:42 +0000 (08:42 +0100)]
removed sub-headlines on info screens (text is now part of main headline)

6 weeks agoadded new, topic-related headlines for info screens
Holger Schemel [Thu, 15 Dec 2022 07:36:01 +0000 (08:36 +0100)]
added new, topic-related headlines for info screens

6 weeks agoadded string constants for info screen menu and title texts
Holger Schemel [Thu, 15 Dec 2022 06:58:41 +0000 (07:58 +0100)]
added string constants for info screen menu and title texts

6 weeks agochanged "README" file for Niko Böhm's Tutorial level set
Holger Schemel [Thu, 15 Dec 2022 06:45:43 +0000 (07:45 +0100)]
changed "README" file for Niko Böhm's Tutorial level set

This changes the old ISO-8859-1 encoding to UTF-8 and adds using text
in different fonts and colors. The original "README" file is stored as
"README.orig" for reference, and a new, alternative version is stored
as "README.txt", which is not used by the game, but shows alternative
formatting possibilities using Markdown-style line breaks (using two
spaces at the end of lines) and pure text content without font usage.

6 weeks agosmall formatting change in program info
Holger Schemel [Wed, 14 Dec 2022 23:00:10 +0000 (00:00 +0100)]
small formatting change in program info

6 weeks agoadded forced line break support to auto-wrapped text output
Holger Schemel [Wed, 14 Dec 2022 22:53:21 +0000 (23:53 +0100)]
added forced line break support to auto-wrapped text output

To add a line break to auto-wrapped text output (like level set info
text files), use two spaces at the end of a line (like it is used in
Markdown formatted text).

6 weeks agofixed bug with incorrectly handled "click anywhere" style button events
Holger Schemel [Wed, 14 Dec 2022 11:27:33 +0000 (12:27 +0100)]
fixed bug with incorrectly handled "click anywhere" style button events

6 weeks agoadded special screen position for button to show level set info for "BD2K3"
Holger Schemel [Wed, 14 Dec 2022 11:19:39 +0000 (12:19 +0100)]
added special screen position for button to show level set info for "BD2K3"

6 weeks agoadded dynamic default screen position for button to show level set info
Holger Schemel [Wed, 14 Dec 2022 11:18:47 +0000 (12:18 +0100)]
added dynamic default screen position for button to show level set info

6 weeks agoadded optional main menu button to directly show level set info
Holger Schemel [Wed, 14 Dec 2022 10:54:37 +0000 (11:54 +0100)]
added optional main menu button to directly show level set info

This is a special button for the main menu that will only be displayed
if files with level set information exist (like a "README" file in the
current level set directory).

The button will currently only be displayed if a valid screen position
is defined for it in the currently active graphics configuration.

6 weeks agofixed several problems when displaying info sub-screens from main menu
Holger Schemel [Wed, 14 Dec 2022 10:43:55 +0000 (11:43 +0100)]
fixed several problems when displaying info sub-screens from main menu

7 weeks agofixed navigation text when displaying info sub-screens from main menu
Holger Schemel [Mon, 12 Dec 2022 19:40:46 +0000 (20:40 +0100)]
fixed navigation text when displaying info sub-screens from main menu

7 weeks agoadded constant text value
Holger Schemel [Mon, 12 Dec 2022 19:36:06 +0000 (20:36 +0100)]
added constant text value

7 weeks agominor code cleanup
Holger Schemel [Mon, 12 Dec 2022 19:33:43 +0000 (20:33 +0100)]
minor code cleanup

7 weeks agoadded returning directly to main menu from info sub-screens if needed
Holger Schemel [Mon, 12 Dec 2022 19:31:59 +0000 (20:31 +0100)]
added returning directly to main menu from info sub-screens if needed

7 weeks agoadded level info config option to invoke info screens from main menu
Holger Schemel [Sun, 11 Dec 2022 13:49:25 +0000 (14:49 +0100)]
added level info config option to invoke info screens from main menu

This is a special config option to allow level sets (like the Mirror
Magic level set "classic_mindbender") to directly invoke info screens
from the main menu (which is used for "classic_mindbender" to display
the included title story on the "level set info" screens by clicking
on a global animation that looks like a book that can be opened).

7 weeks agoimproved some editor graphics
Holger Schemel [Sun, 11 Dec 2022 01:14:42 +0000 (02:14 +0100)]
improved some editor graphics

7 weeks agoversion number set to 4.3.3.1
Holger Schemel [Sun, 11 Dec 2022 01:14:12 +0000 (02:14 +0100)]
version number set to 4.3.3.1

7 weeks agoversion number set to 4.3.3.0 4.3.3.0
Holger Schemel [Sat, 10 Dec 2022 12:13:35 +0000 (13:13 +0100)]
version number set to 4.3.3.0

7 weeks agofixed bug with advancing tape counter if no input events have been recorded
Holger Schemel [Wed, 7 Dec 2022 18:40:30 +0000 (19:40 +0100)]
fixed bug with advancing tape counter if no input events have been recorded

7 weeks agofixed bug with not marking tape as changed after adding action or delay
Holger Schemel [Mon, 5 Dec 2022 22:46:17 +0000 (23:46 +0100)]
fixed bug with not marking tape as changed after adding action or delay

8 weeks agoremoved condition that is always true
Holger Schemel [Mon, 5 Dec 2022 21:50:33 +0000 (22:50 +0100)]
removed condition that is always true

8 weeks agomerged two conditions when attempting to quick-save tape
Holger Schemel [Mon, 5 Dec 2022 21:45:43 +0000 (22:45 +0100)]
merged two conditions when attempting to quick-save tape

8 weeks agoadded shortcuts to invoke info screens from main menu (disabled by default)
Holger Schemel [Sat, 3 Dec 2022 12:37:27 +0000 (13:37 +0100)]
added shortcuts to invoke info screens from main menu (disabled by default)

2 months agorenamed "kettles" to "cauldrons"
Holger Schemel [Mon, 28 Nov 2022 22:02:36 +0000 (23:02 +0100)]
renamed "kettles" to "cauldrons"

2 months agofixed wording of some request texts
Holger Schemel [Sat, 26 Nov 2022 10:30:12 +0000 (11:30 +0100)]
fixed wording of some request texts

2 months agofixed trying to quick-save tape when playing game without recording
Holger Schemel [Sat, 26 Nov 2022 10:27:30 +0000 (11:27 +0100)]
fixed trying to quick-save tape when playing game without recording

2 months agoadded setup option to continue recording after replaying tape
Holger Schemel [Sat, 26 Nov 2022 10:09:29 +0000 (11:09 +0100)]
added setup option to continue recording after replaying tape

2 months agoadded pausing tape after replaying not only for warp mode
Holger Schemel [Fri, 25 Nov 2022 20:12:28 +0000 (21:12 +0100)]
added pausing tape after replaying not only for warp mode

2 months agoadded drawing sparkles when laser hits mirrors for MM engine
Holger Schemel [Fri, 25 Nov 2022 19:40:08 +0000 (20:40 +0100)]
added drawing sparkles when laser hits mirrors for MM engine

2 months agoadded frame parameter to graphics drawing function for MM engine
Holger Schemel [Fri, 25 Nov 2022 19:30:16 +0000 (20:30 +0100)]
added frame parameter to graphics drawing function for MM engine

2 months agomerged functions for handling credits, program and level set info screens
Holger Schemel [Thu, 17 Nov 2022 22:27:11 +0000 (23:27 +0100)]
merged functions for handling credits, program and level set info screens

2 months agoadded support for multiple pages (files) for level set info
Holger Schemel [Thu, 17 Nov 2022 18:51:07 +0000 (19:51 +0100)]
added support for multiple pages (files) for level set info

2 months agoshortened copyright sub-title in main menu
Holger Schemel [Thu, 17 Nov 2022 16:52:06 +0000 (17:52 +0100)]
shortened copyright sub-title in main menu

2 months agoadded new config file options to hide shortcuts sub-menus
Holger Schemel [Wed, 16 Nov 2022 22:49:42 +0000 (23:49 +0100)]
added new config file options to hide shortcuts sub-menus

2 months agoadded missing config file option to hide network server hostname
Holger Schemel [Wed, 16 Nov 2022 22:45:54 +0000 (23:45 +0100)]
added missing config file option to hide network server hostname

2 months agoadded missing config file option to hide game engines setup menu
Holger Schemel [Wed, 16 Nov 2022 20:03:33 +0000 (21:03 +0100)]
added missing config file option to hide game engines setup menu

2 months agoimproved some sound and music samples
Holger Schemel [Wed, 16 Nov 2022 19:32:20 +0000 (20:32 +0100)]
improved some sound and music samples

2 months agochanged credits file from ISO 8859-1 (Latin-1) to UTF-8 encoding
Holger Schemel [Sun, 13 Nov 2022 22:09:16 +0000 (23:09 +0100)]
changed credits file from ISO 8859-1 (Latin-1) to UTF-8 encoding

2 months agoadded Thomas Andrae and Majid Katzer to credits
Holger Schemel [Sun, 13 Nov 2022 22:04:45 +0000 (23:04 +0100)]
added Thomas Andrae and Majid Katzer to credits

2 months agofixed drawing text from file that contains DOS style CR/LF line endings
Holger Schemel [Sun, 13 Nov 2022 22:03:14 +0000 (23:03 +0100)]
fixed drawing text from file that contains DOS style CR/LF line endings

2 months agoreplaced all icons to be created by packaging script with empty files
Holger Schemel [Tue, 8 Nov 2022 22:30:43 +0000 (23:30 +0100)]
replaced all icons to be created by packaging script with empty files

2 months agoremoved unused functions
Holger Schemel [Sat, 5 Nov 2022 17:58:52 +0000 (18:58 +0100)]
removed unused functions

2 months agoadded project files for Windows platform
Holger Schemel [Sat, 5 Nov 2022 16:16:05 +0000 (17:16 +0100)]
added project files for Windows platform

2 months agoadded project files for Mac platform
Holger Schemel [Sat, 5 Nov 2022 16:08:48 +0000 (17:08 +0100)]
added project files for Mac platform

2 months agoreplaced icon file
Holger Schemel [Sat, 5 Nov 2022 14:58:03 +0000 (15:58 +0100)]
replaced icon file

2 months agorenamed icon file
Holger Schemel [Sat, 5 Nov 2022 14:55:00 +0000 (15:55 +0100)]
renamed icon file

2 months agoadded support for compiling on OS/2
Holger Schemel [Fri, 4 Nov 2022 22:24:23 +0000 (23:24 +0100)]
added support for compiling on OS/2

2 months agocode cleanup
Holger Schemel [Wed, 2 Nov 2022 14:20:07 +0000 (15:20 +0100)]
code cleanup

2 months agoadded support for custom graphics for many elements of MM game engine
Holger Schemel [Wed, 2 Nov 2022 14:17:37 +0000 (15:17 +0100)]
added support for custom graphics for many elements of MM game engine

2 months agoadded functions to advance game and tile frame counter for MM engine
Holger Schemel [Wed, 2 Nov 2022 14:12:38 +0000 (15:12 +0100)]
added functions to advance game and tile frame counter for MM engine

3 months agoadded new animation mode ".global_anim_sync" for game element graphics
Holger Schemel [Wed, 26 Oct 2022 22:50:24 +0000 (00:50 +0200)]
added new animation mode ".global_anim_sync" for game element graphics

While the existing animation mode ".global_sync" is used to sync game
animations with the frame counter of the game just played, the new
mode ".global_anim_sync" can be used to sync with the global animation
frame counter, which makes it possible to sync with global animations
that are always running during program execution (that is, in the menu
and while playing a game, without interruption).

3 months agoremoved unused function parameters
Holger Schemel [Sat, 22 Oct 2022 10:57:27 +0000 (12:57 +0200)]
removed unused function parameters

This issue was found by using GCC with option "-Wextra".

3 months agoremoved unused function parameters
Holger Schemel [Sat, 22 Oct 2022 10:26:28 +0000 (12:26 +0200)]
removed unused function parameters

This issue was found by using GCC with option "-Wextra".

3 months agoremoved unused function parameters
Holger Schemel [Sat, 22 Oct 2022 10:09:19 +0000 (12:09 +0200)]
removed unused function parameters

This issue was found by using GCC with option "-Wextra".

3 months agoremoved compiler warning
Holger Schemel [Sat, 22 Oct 2022 09:58:48 +0000 (11:58 +0200)]
removed compiler warning

This issue was found by using GCC with option "-Wextra".

3 months agoremoved unused function parameter
Holger Schemel [Fri, 21 Oct 2022 13:48:40 +0000 (15:48 +0200)]
removed unused function parameter

This issue was found by using GCC with option "-Wextra".

3 months agoremoved unused function parameters
Holger Schemel [Fri, 21 Oct 2022 13:37:10 +0000 (15:37 +0200)]
removed unused function parameters

This issue was found by using GCC with option "-Wextra".

3 months agoremoved unused functions
Holger Schemel [Fri, 21 Oct 2022 13:28:16 +0000 (15:28 +0200)]
removed unused functions

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved shadowing of outer variable by local variable
Holger Schemel [Thu, 20 Oct 2022 18:13:07 +0000 (20:13 +0200)]
removed shadowing of outer variable by local variable

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoreduced scope of some variables
Holger Schemel [Thu, 20 Oct 2022 18:05:59 +0000 (20:05 +0200)]
reduced scope of some variables

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved redundant and unused code
Holger Schemel [Thu, 20 Oct 2022 18:00:39 +0000 (20:00 +0200)]
removed redundant and unused code

3 months agoreduced scope of some variables
Holger Schemel [Thu, 20 Oct 2022 17:48:34 +0000 (19:48 +0200)]
reduced scope of some variables

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agofixed accessing array out of bounds
Holger Schemel [Thu, 20 Oct 2022 16:40:57 +0000 (18:40 +0200)]
fixed accessing array out of bounds

This issue was found by using Clang with option "-fsanitize=undefined".

3 months agoreduced scope of some variables
Holger Schemel [Thu, 20 Oct 2022 16:25:22 +0000 (18:25 +0200)]
reduced scope of some variables

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved redundant initialization
Holger Schemel [Thu, 20 Oct 2022 16:17:48 +0000 (18:17 +0200)]
removed redundant initialization

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved redundant conditions
Holger Schemel [Thu, 20 Oct 2022 16:04:41 +0000 (18:04 +0200)]
removed redundant conditions

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agofixed undefined signed integer overflow for expression "1 << 31"
Holger Schemel [Thu, 20 Oct 2022 15:35:49 +0000 (17:35 +0200)]
fixed undefined signed integer overflow for expression "1 << 31"

This issue was found by Cppcheck (static C/C++ code analysis tool)
and by using Clang with option "-fsanitize=undefined".

3 months agoadded optional sanitizer flags when using Clang
Holger Schemel [Thu, 20 Oct 2022 14:36:53 +0000 (16:36 +0200)]
added optional sanitizer flags when using Clang

3 months agomoved compiler flags for analyzing to CFLAGS / LDFLAGS
Holger Schemel [Thu, 20 Oct 2022 14:35:24 +0000 (16:35 +0200)]
moved compiler flags for analyzing to CFLAGS / LDFLAGS

3 months agochanged name of compilation flag to be more generic
Holger Schemel [Thu, 20 Oct 2022 14:11:01 +0000 (16:11 +0200)]
changed name of compilation flag to be more generic

3 months agofixed compiler warnings with GCC 11
Holger Schemel [Thu, 20 Oct 2022 13:34:33 +0000 (13:34 +0000)]
fixed compiler warnings with GCC 11

3 months agoadded explicit operator precedence (stylistic only)
Holger Schemel [Sun, 16 Oct 2022 10:57:51 +0000 (12:57 +0200)]
added explicit operator precedence (stylistic only)

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved shadowing of outer variable by local variable
Holger Schemel [Sun, 16 Oct 2022 10:52:22 +0000 (12:52 +0200)]
removed shadowing of outer variable by local variable

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoremoved declaration of non-existing data object
Holger Schemel [Sun, 16 Oct 2022 10:39:57 +0000 (12:39 +0200)]
removed declaration of non-existing data object

This issue was found by Cppcheck (static C/C++ code analysis tool).

3 months agoadded dirty workaround to open program window on specified display master-next-patch-release
Holger Schemel [Thu, 13 Oct 2022 18:43:14 +0000 (20:43 +0200)]
added dirty workaround to open program window on specified display

As SDL function "SDL_GetNumVideoDisplays()" seems to be broken on some
systems (tested with older Linux systems and SDL 2.0.0 and 2.0.6, but
also current macOS with SDL 2.0.20), do not use it for now to check if
the specified display number is valid.

3 months agochanged using same (little endian) pixel format everywhere
Holger Schemel [Thu, 13 Oct 2022 18:35:38 +0000 (20:35 +0200)]
changed using same (little endian) pixel format everywhere

This change also has the effect that the code compiles using versions
of the SDL library older than 2.0.5 (which introduced the pixel format
alias name used before).

4 months agoadded rule to Makefile to ensure reproducible builds
Holger Schemel [Wed, 28 Sep 2022 15:40:44 +0000 (17:40 +0200)]
added rule to Makefile to ensure reproducible builds

Declare build dependency to ensure consistent make execution order.
See https://reproducible-builds.org/ for why this is good.

Without this patch, parallelism would make a difference in
the produced config.o

This patch was done while working on reproducible builds for openSUSE.

Thanks to Bernhard M. Wiedemann for this patch!

4 months agochanged resizing window instead of recreating it on window size changes
Holger Schemel [Wed, 7 Sep 2022 19:06:37 +0000 (21:06 +0200)]
changed resizing window instead of recreating it on window size changes

This has the advantage that the window stays at its screen position
instead of always being newly created in the middle of the screen.

4 months agoadded some missing window events to debug output
Holger Schemel [Wed, 7 Sep 2022 18:49:13 +0000 (20:49 +0200)]
added some missing window events to debug output

4 months agoadded command line option to select display to open program window
Holger Schemel [Wed, 7 Sep 2022 15:07:33 +0000 (17:07 +0200)]
added command line option to select display to open program window

4 months agofixed program usage text
Holger Schemel [Wed, 7 Sep 2022 14:00:22 +0000 (16:00 +0200)]
fixed program usage text

4 months agofixed using delay counter for Android
Holger Schemel [Sat, 3 Sep 2022 15:25:56 +0000 (17:25 +0200)]
fixed using delay counter for Android

4 months agofixed compiler warning
Holger Schemel [Sat, 3 Sep 2022 10:20:52 +0000 (12:20 +0200)]
fixed compiler warning

4 months agoadded flag to tape files to explicitly mark solution tapes
Holger Schemel [Sat, 3 Sep 2022 07:21:27 +0000 (09:21 +0200)]
added flag to tape files to explicitly mark solution tapes

5 months agomerged functions for checking growing walls (normal and steel)
Holger Schemel [Sat, 27 Aug 2022 10:57:58 +0000 (12:57 +0200)]
merged functions for checking growing walls (normal and steel)

5 months agocode cleanup
Holger Schemel [Sat, 27 Aug 2022 10:17:08 +0000 (12:17 +0200)]
code cleanup

5 months agoadded ignoring remaining level chunks after chunks with wrong size
Holger Schemel [Sat, 27 Aug 2022 09:02:14 +0000 (11:02 +0200)]
added ignoring remaining level chunks after chunks with wrong size

5 months agoadded ignoring remaining level chunks after chunks with errors
Holger Schemel [Sat, 27 Aug 2022 09:01:50 +0000 (11:01 +0200)]
added ignoring remaining level chunks after chunks with errors

5 months agofixed crash bug when accessing invalid group data for broken level files
Holger Schemel [Sat, 27 Aug 2022 08:55:09 +0000 (10:55 +0200)]
fixed crash bug when accessing invalid group data for broken level files

Thanks to Quipyowert for finding and fixing this bug!