rocksndiamonds.git
23 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

23 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years agoremoved unused functions
Holger Schemel [Sat, 5 Nov 2022 17:58:52 +0000 (18:58 +0100)]
removed unused functions

2 years 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 years 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 years agoreplaced icon file
Holger Schemel [Sat, 5 Nov 2022 14:58:03 +0000 (15:58 +0100)]
replaced icon file

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

2 years 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 years agocode cleanup
Holger Schemel [Wed, 2 Nov 2022 14:20:07 +0000 (15:20 +0100)]
code cleanup

2 years 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 years 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

2 years 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).

2 years 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".

2 years 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".

2 years 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".

2 years 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".

2 years 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".

2 years 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".

2 years 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).

2 years 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).

2 years 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).

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

2 years 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).

2 years 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".

2 years 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).

2 years 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).

2 years 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).

2 years 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".

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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).

2 years 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).

2 years 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).

2 years 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.

2 years 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).

2 years 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!

2 years 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.

2 years 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

2 years 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

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

2 years 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

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

2 years 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

2 years 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)

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

2 years 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

2 years 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

2 years 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!

2 years agofixed crash bug when accessing invalid change page for broken level files
Holger Schemel [Sat, 27 Aug 2022 08:54:07 +0000 (10:54 +0200)]
fixed crash bug when accessing invalid change page for broken level files

Thanks to Quipyowert for finding and fixing this bug!

2 years agofixed compiling with SDL versions before 2.0.14 without SDL_OpenURL()
Holger Schemel [Mon, 22 Aug 2022 18:34:50 +0000 (20:34 +0200)]
fixed compiling with SDL versions before 2.0.14 without SDL_OpenURL()

2 years agoadded alpha channel for anti-aliasing to element collecting image
Holger Schemel [Sat, 6 Aug 2022 09:08:45 +0000 (11:08 +0200)]
added alpha channel for anti-aliasing to element collecting image

2 years agochanged function to write element collecting image to create PNG file
Holger Schemel [Sat, 6 Aug 2022 08:42:44 +0000 (10:42 +0200)]
changed function to write element collecting image to create PNG file

2 years agoadded asking for uploading remaining tapes when enabling score server
Holger Schemel [Tue, 26 Jul 2022 22:48:07 +0000 (00:48 +0200)]
added asking for uploading remaining tapes when enabling score server

2 years agofixed bug with uploading tapes when score server is disabled
Holger Schemel [Tue, 26 Jul 2022 22:32:27 +0000 (00:32 +0200)]
fixed bug with uploading tapes when score server is disabled

2 years agofixed bug with resetting level set handicap when using "last played" menu
Holger Schemel [Tue, 26 Jul 2022 18:50:34 +0000 (20:50 +0200)]
fixed bug with resetting level set handicap when using "last played" menu

2 years agoadded overwriting local with server score entries to add missing fields
Holger Schemel [Mon, 25 Jul 2022 17:24:54 +0000 (19:24 +0200)]
added overwriting local with server score entries to add missing fields

2 years agofixed bug when using different normal and deadly shield time
Holger Schemel [Mon, 25 Jul 2022 17:22:01 +0000 (19:22 +0200)]
fixed bug when using different normal and deadly shield time

2 years agofixed crash bug caused by custom loading screen support
Holger Schemel [Fri, 22 Jul 2022 11:28:19 +0000 (13:28 +0200)]
fixed crash bug caused by custom loading screen support

2 years agoadded using globally predefined X/Y arrays
Holger Schemel [Thu, 21 Jul 2022 15:22:03 +0000 (17:22 +0200)]
added using globally predefined X/Y arrays

2 years agoimproved checking array (using modulo instead of duplicated values)
Holger Schemel [Thu, 21 Jul 2022 14:47:02 +0000 (16:47 +0200)]
improved checking array (using modulo instead of duplicated values)

2 years agoadded delay counter data type and adjusted related functions
Holger Schemel [Thu, 21 Jul 2022 13:51:43 +0000 (15:51 +0200)]
added delay counter data type and adjusted related functions

2 years agoadded level info config option to disable time limit for all levels
Holger Schemel [Sat, 25 Jun 2022 08:46:52 +0000 (10:46 +0200)]
added level info config option to disable time limit for all levels

While it was already possible to disable the time limit in the setup
menu to play a level without any time limit, the resulting tapes only
replay successfully if the time limit is still disabled, of course.
Obviously, this is not the case on the central high score server.

However, the level sets in the "R'n'D jue 2022" games collection are
all designed to be played without time limit, and the time limit is
disabled in the default setup options of all games. This currently
has the following two disadvantages:

1. The resulting tapes fail on the high score server, which has time
   limit always enabled.
2. If the user of "R'n'D jur 2022" games enables the time limit in the
   setup menu, the levels cannot be solved anymore.

This patch adds a new time limit option to the level info config file,
which makes it possible to flag whole level sets as "to be played with
time limit disabled", regardless of what the individual user's setting
for "time limit" was set to.

This patch makes it possible to fix case (1) above by adding the new
level info config option to all affected levels on the high score
server, but would require a program update to also fix case (2) on the
client side.

2 years agoadded separate game variable to check for time limit setup option
Holger Schemel [Fri, 24 Jun 2022 14:48:04 +0000 (16:48 +0200)]
added separate game variable to check for time limit setup option

2 years agorenamed variable
Holger Schemel [Fri, 24 Jun 2022 14:36:26 +0000 (16:36 +0200)]
renamed variable

2 years agofixed synchronization problem when configuring keyboard
Holger Schemel [Wed, 22 Jun 2022 21:29:05 +0000 (23:29 +0200)]
fixed synchronization problem when configuring keyboard

This is a somewhat similar bug like that in the previous commit, but
in this case only one event was processed for each screen update,
causing many events (like those produced from analog sticks that are
moved while the keyboard is about to be configured) to be processed
one after the other, each with a full video frame delay in between.

The fix works just like that used when configuring game controllers.

2 years agofixed synchronization problem when configuring game controller
Holger Schemel [Wed, 22 Jun 2022 13:17:19 +0000 (15:17 +0200)]
fixed synchronization problem when configuring game controller

This fixes a bug that can happen due to bad initialization of a delay
counter (to limit the maximum time spent on handling events), causing
it to reach the maximum delay while the screen refresh is also waiting
for the video delay. Resetting the counter right after screen update
fixes this potential problem.

2 years agoversion number set to 4.3.2.3
Holger Schemel [Thu, 16 Jun 2022 19:19:27 +0000 (21:19 +0200)]
version number set to 4.3.2.3

2 years agoadded using setup option for displaying overlay touch buttons 4.3.2.2
Holger Schemel [Wed, 15 Jun 2022 06:41:52 +0000 (08:41 +0200)]
added using setup option for displaying overlay touch buttons

2 years agoadded setup option for overlay touch buttons (not used yet)
Holger Schemel [Wed, 15 Jun 2022 06:39:57 +0000 (08:39 +0200)]
added setup option for overlay touch buttons (not used yet)

2 years agoadded not using touch buttons if touch controls are disabled
Holger Schemel [Tue, 14 Jun 2022 23:40:06 +0000 (01:40 +0200)]
added not using touch buttons if touch controls are disabled

2 years agofixed bug with short reactivation of overlay buttons while closing door
Holger Schemel [Tue, 14 Jun 2022 22:34:53 +0000 (00:34 +0200)]
fixed bug with short reactivation of overlay buttons while closing door

2 years agoadded printing envelope text when dumping level in debug mode
Holger Schemel [Sun, 12 Jun 2022 17:39:20 +0000 (19:39 +0200)]
added printing envelope text when dumping level in debug mode

2 years agoadded support for "Home" and "End" keys to text gadgets
Holger Schemel [Sun, 12 Jun 2022 16:02:05 +0000 (18:02 +0200)]
added support for "Home" and "End" keys to text gadgets

2 years agoadded support for fallback text file for element description files
Holger Schemel [Sun, 12 Jun 2022 13:30:28 +0000 (15:30 +0200)]
added support for fallback text file for element description files

2 years agofixed warning when not finding any valid level sets in level directory
Holger Schemel [Sat, 11 Jun 2022 12:36:01 +0000 (14:36 +0200)]
fixed warning when not finding any valid level sets in level directory

2 years agofixed not creating user level set
Holger Schemel [Sat, 11 Jun 2022 12:16:44 +0000 (14:16 +0200)]
fixed not creating user level set

2 years agochanged creating directories with private permissions only
Holger Schemel [Sat, 11 Jun 2022 12:14:16 +0000 (14:14 +0200)]
changed creating directories with private permissions only

2 years agochanged log level for using fallback artwork from "warning" to "debug"
Holger Schemel [Sat, 11 Jun 2022 12:04:54 +0000 (14:04 +0200)]
changed log level for using fallback artwork from "warning" to "debug"

2 years agofixed bug with broken text area content when editing envelope text
Holger Schemel [Sat, 11 Jun 2022 10:32:42 +0000 (12:32 +0200)]
fixed bug with broken text area content when editing envelope text

2 years agocleanup of CSS for Emscripten platform
Holger Schemel [Sat, 11 Jun 2022 08:34:30 +0000 (10:34 +0200)]
cleanup of CSS for Emscripten platform

2 years agoadded CSS to fill browser window for Emscripten platform
Holger Schemel [Fri, 10 Jun 2022 11:32:24 +0000 (13:32 +0200)]
added CSS to fill browser window for Emscripten platform

2 years agoremoved some setup options for Emscripten platform
Holger Schemel [Fri, 10 Jun 2022 10:56:27 +0000 (12:56 +0200)]
removed some setup options for Emscripten platform

2 years agoremoved larger default screen size for Emscripten platform
Holger Schemel [Fri, 10 Jun 2022 10:50:17 +0000 (12:50 +0200)]
removed larger default screen size for Emscripten platform

2 years agochanged some platform-related preprocessor definition names
Holger Schemel [Fri, 10 Jun 2022 10:31:16 +0000 (12:31 +0200)]
changed some platform-related preprocessor definition names

2 years agominor code cleanup
Holger Schemel [Fri, 10 Jun 2022 09:32:12 +0000 (11:32 +0200)]
minor code cleanup

2 years agoimproved element descriptions for magic walls
Holger Schemel [Mon, 6 Jun 2022 19:34:10 +0000 (21:34 +0200)]
improved element descriptions for magic walls

2 years agoadded larger default screen size for Emscripten platform
Holger Schemel [Thu, 26 May 2022 22:28:40 +0000 (00:28 +0200)]
added larger default screen size for Emscripten platform