rocksndiamonds.git
3 months agorenamed image file for native Boulder Dash graphics
Holger Schemel [Sun, 11 Feb 2024 18:19:43 +0000 (19:19 +0100)]
renamed image file for native Boulder Dash graphics

3 months agoadded descriptions for the new Boulder Dash game elements
Holger Schemel [Sun, 11 Feb 2024 18:10:56 +0000 (19:10 +0100)]
added descriptions for the new Boulder Dash game elements

3 months agoversion number set to 4.4.0.0
Holger Schemel [Sun, 11 Feb 2024 14:22:08 +0000 (15:22 +0100)]
version number set to 4.4.0.0

3 months agochanged default audio replay sample rate to 44.1 kHz
Holger Schemel [Sun, 11 Feb 2024 14:05:35 +0000 (15:05 +0100)]
changed default audio replay sample rate to 44.1 kHz

3 months agoadded special level file flag to force using BD engine (experimental)
Holger Schemel [Sun, 11 Feb 2024 13:53:02 +0000 (14:53 +0100)]
added special level file flag to force using BD engine (experimental)

3 months agoadded setup options to skip (un)covering and hatching for BD engine
Holger Schemel [Sun, 11 Feb 2024 13:50:07 +0000 (14:50 +0100)]
added setup options to skip (un)covering and hatching for BD engine

3 months agoadded game engine support for playing native Boulder Dash levels
Holger Schemel [Sun, 11 Feb 2024 13:45:53 +0000 (14:45 +0100)]
added game engine support for playing native Boulder Dash levels

3 months agoadded screen redraw function for native BD engine
Holger Schemel [Sun, 11 Feb 2024 13:27:43 +0000 (14:27 +0100)]
added screen redraw function for native BD engine

3 months agoadded random number initialization function for native BD engine
Holger Schemel [Sun, 11 Feb 2024 13:26:39 +0000 (14:26 +0100)]
added random number initialization function for native BD engine

3 months agoadded code for replaying native Boulder Dash tapes
Holger Schemel [Sun, 11 Feb 2024 13:07:13 +0000 (14:07 +0100)]
added code for replaying native Boulder Dash tapes

3 months agoadded engine and graphics initialization functions for native BD engine
Holger Schemel [Sun, 11 Feb 2024 12:54:53 +0000 (13:54 +0100)]
added engine and graphics initialization functions for native BD engine

3 months agomoved functions (no functional change)
Holger Schemel [Sun, 11 Feb 2024 12:40:06 +0000 (13:40 +0100)]
moved functions (no functional change)

3 months agoadded code to load native Boulder Dash levels
Holger Schemel [Sun, 11 Feb 2024 12:28:21 +0000 (13:28 +0100)]
added code to load native Boulder Dash levels

3 months agoadded GDash source files prepared for game engine integration into R'n'D
Holger Schemel [Sun, 11 Feb 2024 11:37:35 +0000 (12:37 +0100)]
added GDash source files prepared for game engine integration into R'n'D

3 months agoadded missing and fixed wrong file headers
Holger Schemel [Sun, 11 Feb 2024 11:25:05 +0000 (12:25 +0100)]
added missing and fixed wrong file headers

3 months agowhite space changes
Holger Schemel [Sun, 11 Feb 2024 11:16:31 +0000 (12:16 +0100)]
white space changes

3 months agofixed editor element cascading button for native Boulder Dash game elements
Holger Schemel [Sun, 11 Feb 2024 11:13:46 +0000 (12:13 +0100)]
fixed editor element cascading button for native Boulder Dash game elements

3 months agoadded using native game panel values for Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 11:01:32 +0000 (12:01 +0100)]
added using native game panel values for Boulder Dash game engine

3 months agoadded GDash game definition for native Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 10:52:48 +0000 (11:52 +0100)]
added GDash game definition for native Boulder Dash game engine

3 months agoadded code to convert native Boulder Dash tapes
Holger Schemel [Sun, 11 Feb 2024 02:05:56 +0000 (03:05 +0100)]
added code to convert native Boulder Dash tapes

3 months agoadded code to convert native Boulder Dash levels
Holger Schemel [Sun, 11 Feb 2024 01:54:51 +0000 (02:54 +0100)]
added code to convert native Boulder Dash levels

3 months agoadded GDash cave definition for native Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 01:26:40 +0000 (02:26 +0100)]
added GDash cave definition for native Boulder Dash game engine

3 months agoadded library dependency to glib-2.0 (should be removed again)
Holger Schemel [Sun, 11 Feb 2024 01:24:22 +0000 (02:24 +0100)]
added library dependency to glib-2.0 (should be removed again)

3 months agoadded config parameters for native BD graphics/sound engine (not used yet)
Holger Schemel [Sun, 11 Feb 2024 00:56:19 +0000 (01:56 +0100)]
added config parameters for native BD graphics/sound engine (not used yet)

3 months agoadded some game control code for native BD engine (not used yet)
Holger Schemel [Sun, 11 Feb 2024 00:50:40 +0000 (01:50 +0100)]
added some game control code for native BD engine (not used yet)

3 months agoadded special timeout sounds (for all game engines)
Holger Schemel [Sun, 11 Feb 2024 00:41:25 +0000 (01:41 +0100)]
added special timeout sounds (for all game engines)

3 months agoadded support for native sounds of Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 00:30:11 +0000 (01:30 +0100)]
added support for native sounds of Boulder Dash game engine

3 months agoadded mapping for native game elements for Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 00:24:24 +0000 (01:24 +0100)]
added mapping for native game elements for Boulder Dash game engine

3 months agoadded GDash game elements and sounds for Boulder Dash game engine
Holger Schemel [Sun, 11 Feb 2024 00:03:33 +0000 (01:03 +0100)]
added GDash game elements and sounds for Boulder Dash game engine

3 months agorenamed source file
Holger Schemel [Sat, 10 Feb 2024 23:57:43 +0000 (00:57 +0100)]
renamed source file

3 months agoadded game panel values for native Boulder Dash game engine
Holger Schemel [Sat, 10 Feb 2024 23:52:29 +0000 (00:52 +0100)]
added game panel values for native Boulder Dash game engine

3 months agoadded game elements for native Boulder Dash game engine
Holger Schemel [Sat, 10 Feb 2024 23:37:54 +0000 (00:37 +0100)]
added game elements for native Boulder Dash game engine

3 months agoadded some comments
Holger Schemel [Sat, 10 Feb 2024 22:55:07 +0000 (23:55 +0100)]
added some comments

3 months agoadded function to check if a certain sound is playing (not used yet)
Holger Schemel [Sat, 10 Feb 2024 20:27:47 +0000 (21:27 +0100)]
added function to check if a certain sound is playing (not used yet)

3 months agoadded using callback function when sound channel is finished
Holger Schemel [Sat, 10 Feb 2024 20:25:18 +0000 (21:25 +0100)]
added using callback function when sound channel is finished

3 months agoadded separate time counter for tape time frames
Holger Schemel [Sat, 10 Feb 2024 20:16:05 +0000 (21:16 +0100)]
added separate time counter for tape time frames

3 months agowhite space changes
Holger Schemel [Sat, 10 Feb 2024 20:07:19 +0000 (21:07 +0100)]
white space changes

3 months agoadded support for sound configuration parameters (not used yet)
Holger Schemel [Sat, 10 Feb 2024 19:59:33 +0000 (20:59 +0100)]
added support for sound configuration parameters (not used yet)

3 months agochanged some descriptions of BD style game elements
Holger Schemel [Sat, 10 Feb 2024 19:39:01 +0000 (20:39 +0100)]
changed some descriptions of BD style game elements

3 months agoremoved unused/unneeded definitions
Holger Schemel [Sat, 10 Feb 2024 19:17:17 +0000 (20:17 +0100)]
removed unused/unneeded definitions

3 months agowhite space changes
Holger Schemel [Sat, 10 Feb 2024 19:14:02 +0000 (20:14 +0100)]
white space changes

3 months agorenamed variables
Holger Schemel [Sat, 10 Feb 2024 17:52:34 +0000 (18:52 +0100)]
renamed variables

3 months agomoved headers to game engine specific import files
Holger Schemel [Sat, 10 Feb 2024 17:43:54 +0000 (18:43 +0100)]
moved headers to game engine specific import files

3 months agorenamed game engine specific export files
Holger Schemel [Sat, 10 Feb 2024 17:13:37 +0000 (18:13 +0100)]
renamed game engine specific export files

3 months agoadded more support for native Boulder Dash game engine code
Holger Schemel [Sat, 23 Dec 2023 13:02:51 +0000 (14:02 +0100)]
added more support for native Boulder Dash game engine code

3 months agoadded basic support for native Boulder Dash game engine code
Holger Schemel [Fri, 15 Dec 2023 12:59:59 +0000 (13:59 +0100)]
added basic support for native Boulder Dash game engine code

3 months agoadded optional button to restart game (door, panel and touch variants) master 4.3.8.2
Holger Schemel [Sun, 18 Feb 2024 13:34:28 +0000 (14:34 +0100)]
added optional button to restart game (door, panel and touch variants)

3 months agofixed drawing pause button on closed door when restarting paused game
Holger Schemel [Sun, 18 Feb 2024 13:29:23 +0000 (14:29 +0100)]
fixed drawing pause button on closed door when restarting paused game

5 months agoupdated title text and border graphic to show current year
Holger Schemel [Sun, 7 Jan 2024 23:16:39 +0000 (00:16 +0100)]
updated title text and border graphic to show current year

5 months agofixed truncating internal game element descriptions in level editor
Holger Schemel [Sun, 7 Jan 2024 22:29:00 +0000 (23:29 +0100)]
fixed truncating internal game element descriptions in level editor

5 months agore-added explicitly setting draw order for pointer-style animations
Holger Schemel [Thu, 4 Jan 2024 13:36:48 +0000 (14:36 +0100)]
re-added explicitly setting draw order for pointer-style animations

Even though pointer-style animations are handled specially when being
drawn (on top of all other global animations), they are not handled
specially when being checked for clicks. Therefore, forcing a high
draw order for pointer-style animations is still required (as the draw
order is not only used for drawing, but also for the order of checking
animations for mouse clicks).

This reverts commit d1a0dcb3.

5 months agoversion number set to 4.3.8.2
Holger Schemel [Fri, 29 Dec 2023 09:41:29 +0000 (10:41 +0100)]
version number set to 4.3.8.2

5 months agoadded "const" to some string function parameters 4.3.8.1
Holger Schemel [Mon, 18 Dec 2023 11:35:17 +0000 (12:35 +0100)]
added "const" to some string function parameters

6 months agofixed bug with closing doors when exiting from level editor
Holger Schemel [Mon, 18 Dec 2023 10:41:35 +0000 (11:41 +0100)]
fixed bug with closing doors when exiting from level editor

6 months agochanged setup option to disable global animations to only affect toons
Holger Schemel [Wed, 13 Dec 2023 16:56:35 +0000 (17:56 +0100)]
changed setup option to disable global animations to only affect toons

All global animations can still be disabled in the setup config file,
but this should probably only be used for testing purposes, as global
animations are an integral part of certain custom level sets now.

6 months agofixed always drawing pointer-style global animations above everything else
Holger Schemel [Wed, 13 Dec 2023 16:15:08 +0000 (17:15 +0100)]
fixed always drawing pointer-style global animations above everything else

6 months agoreverted setting (and maybe inheriting) draw order for global animations
Holger Schemel [Wed, 13 Dec 2023 16:06:03 +0000 (17:06 +0100)]
reverted setting (and maybe inheriting) draw order for global animations

Although this feature seems to be quite useful (setting draw order for
main animations once, and let animation parts inherit the draw order
from the main animation if it is not defined for the animation part),
it would have to be implemented for all other attributes, too (like X
and Y position of the main animation and animation parts, for example),
so it seems to be better to not make an exception for this specific
attribute.

This reverts commit 895d5cb3.

6 months agofixed correctly using defined draw order of global animations
Holger Schemel [Tue, 12 Dec 2023 14:01:10 +0000 (15:01 +0100)]
fixed correctly using defined draw order of global animations

Before this change, there was only limited support for the attribute
".draw_order" for global animations, which did not work correctly if
the global animations had different game modes defined (like ".MAIN"),
as global animations were drawn in numerical game mode order, so draw
order was ignored between game modes and also between main animations.

With this change, global animations will really be drawn with their
defined draw order.

6 months agofixed setting (and maybe inheriting) draw order for global animations
Holger Schemel [Tue, 12 Dec 2023 13:21:04 +0000 (14:21 +0100)]
fixed setting (and maybe inheriting) draw order for global animations

6 months agoremoved explicitly setting draw order for pointer-style animations
Holger Schemel [Tue, 12 Dec 2023 13:12:40 +0000 (14:12 +0100)]
removed explicitly setting draw order for pointer-style animations

As pointer-style animations are handled specially anyway (always drawn
on top of all other global animations), setting the draw order is not
required anymore.

6 months agofixed bug caused by support for only eight global animations in the past
Holger Schemel [Tue, 12 Dec 2023 11:20:53 +0000 (12:20 +0100)]
fixed bug caused by support for only eight global animations in the past

6 months agoreverted order of processing game modes for global animations clicks
Holger Schemel [Tue, 12 Dec 2023 11:03:28 +0000 (12:03 +0100)]
reverted order of processing game modes for global animations clicks

The assumptions that led to the change that is reverted here were
simply wrong: When drawing global animations in a certain order,
checking for mouse clicks must be done in reverse order, to ensure
that the click is processed for the topmost global animation. This
includes processing game modes in reverse order (which are handled
in normal order when drawing global animations).

Processing clicks for a global animation based custom mouse pointer
should be handled separately anyway, to process it independently
from the game mode it was defined for.

This reverts commit e3411dc9.

6 months agoversion number set to 4.3.8.1
Holger Schemel [Tue, 12 Dec 2023 11:01:43 +0000 (12:01 +0100)]
version number set to 4.3.8.1

6 months agoversion number set to 4.3.8.0 4.3.8.0
Holger Schemel [Sat, 9 Dec 2023 18:47:48 +0000 (19:47 +0100)]
version number set to 4.3.8.0

6 months agofixed sorting global animation parts by draw order (which was confusing)
Holger Schemel [Sat, 9 Dec 2023 18:23:08 +0000 (19:23 +0100)]
fixed sorting global animation parts by draw order (which was confusing)

6 months agofixed "level_nr" style global animations on level selection screen
Holger Schemel [Sat, 9 Dec 2023 17:35:59 +0000 (18:35 +0100)]
fixed "level_nr" style global animations on level selection screen

6 months agochanged order of processing game modes for global animations clicks
Holger Schemel [Sat, 9 Dec 2023 16:52:11 +0000 (17:52 +0100)]
changed order of processing game modes for global animations clicks

The previous (reversed) order suggested that this had something to do
with draw order, which was not the case. Using the normal (numerical)
order also has the advantage of processing global animations without
a special game mode assigned to them (like ".PLAYING" or ".MAIN") to
be processed first, which is especially important to process pointer
style global animations (which are probably defined to be used on all
game screens in most cases) before all other global animations, which
is required to display an alternative pointer when the mouse button
is pressed (which is defined using ".style: passthrough_clicks" for
such cases).

6 months agochanged only handling pointer-style animations clicks in request dialogs
Holger Schemel [Sat, 9 Dec 2023 16:44:11 +0000 (17:44 +0100)]
changed only handling pointer-style animations clicks in request dialogs

As request dialogs are displayed above all other screen elements,
including global animations (except pointer-style global animations),
global animations should not be clickable while request dialogs are
active, with the exception of clickable pointer-style animations,
which is generally used to display a different pointer while the
mouse button is pressed.

6 months agofixed handling clickable pointer-style global animations in request dialogs
Holger Schemel [Sat, 9 Dec 2023 16:38:15 +0000 (17:38 +0100)]
fixed handling clickable pointer-style global animations in request dialogs

6 months agofixed creating additional click events from global animation events
Holger Schemel [Sat, 9 Dec 2023 16:26:19 +0000 (17:26 +0100)]
fixed creating additional click events from global animation events

When handling global animation events that trigger user events handled
as either key, gadget or screen events, prevent creating additional
key or button events to be handled by global animations again, as this
can confuse further button event processing, which may cause buttons
or menu items to be selected by accident.

6 months agoadded support for setting alpha value for envelope style request dialogs
Holger Schemel [Wed, 6 Dec 2023 19:59:28 +0000 (20:59 +0100)]
added support for setting alpha value for envelope style request dialogs

6 months agofixed resetting alpha value when preparing envelope request
Holger Schemel [Wed, 6 Dec 2023 19:56:57 +0000 (20:56 +0100)]
fixed resetting alpha value when preparing envelope request

6 months agomoved code to separate function
Holger Schemel [Wed, 6 Dec 2023 19:54:59 +0000 (20:54 +0100)]
moved code to separate function

6 months agoadded forcing user to restart program after adding level collection
Holger Schemel [Tue, 5 Dec 2023 18:05:08 +0000 (19:05 +0100)]
added forcing user to restart program after adding level collection

When adding a level group or an artwork group by dropping a zip file
into the program window, show a request dialog that the program has to
be restarted to activate the new content.

Unfortunately, this is currently required to rebuild the internal
level and artwork set structures (and should be improved to be rebuild
them on-the-fly without a program restart).

Before, the program was just stopped with a user-unfriendly message
reporting a fatal error.

6 months agoadded fallback to narrow font on word length for envelope request dialogs
Holger Schemel [Tue, 5 Dec 2023 17:14:33 +0000 (18:14 +0100)]
added fallback to narrow font on word length for envelope request dialogs

6 months agomoved code to separate function
Holger Schemel [Tue, 5 Dec 2023 17:11:10 +0000 (18:11 +0100)]
moved code to separate function

6 months agoadded dynamically calculating text properties for door request dialogs
Holger Schemel [Mon, 4 Dec 2023 20:32:25 +0000 (21:32 +0100)]
added dynamically calculating text properties for door request dialogs

6 months agofixed tile cursor drawing position
Holger Schemel [Mon, 4 Dec 2023 07:13:32 +0000 (08:13 +0100)]
fixed tile cursor drawing position

6 months agominor code cleanup
Holger Schemel [Sun, 3 Dec 2023 17:38:25 +0000 (18:38 +0100)]
minor code cleanup

6 months agofixed function signature
Holger Schemel [Sun, 3 Dec 2023 17:29:25 +0000 (18:29 +0100)]
fixed function signature

6 months agomoved code to separate function
Holger Schemel [Sat, 2 Dec 2023 13:32:47 +0000 (14:32 +0100)]
moved code to separate function

6 months agominor code cleanup
Holger Schemel [Sat, 2 Dec 2023 13:19:55 +0000 (14:19 +0100)]
minor code cleanup

6 months agoremoved unused code
Holger Schemel [Sat, 2 Dec 2023 13:13:05 +0000 (14:13 +0100)]
removed unused code

6 months agoremoved code for condition that is always true
Holger Schemel [Sat, 2 Dec 2023 12:53:51 +0000 (13:53 +0100)]
removed code for condition that is always true

6 months agomoved function call (no functional change)
Holger Schemel [Sat, 2 Dec 2023 12:11:55 +0000 (13:11 +0100)]
moved function call (no functional change)

6 months agoremoved uncommented code
Holger Schemel [Sat, 2 Dec 2023 12:06:00 +0000 (13:06 +0100)]
removed uncommented code

6 months agomoved duplicate code to separate functions
Holger Schemel [Sat, 2 Dec 2023 12:03:07 +0000 (13:03 +0100)]
moved duplicate code to separate functions

6 months agomoved function call for getting door state to variable declaration
Holger Schemel [Sat, 2 Dec 2023 11:58:31 +0000 (12:58 +0100)]
moved function call for getting door state to variable declaration

6 months agorenamed variable
Holger Schemel [Sat, 2 Dec 2023 11:27:32 +0000 (12:27 +0100)]
renamed variable

6 months agoadded showing game actions after game end when request door opens/closes
Holger Schemel [Sat, 2 Dec 2023 11:20:26 +0000 (12:20 +0100)]
added showing game actions after game end when request door opens/closes

6 months agoadded showing game actions after game end when request envelope opens/closes
Holger Schemel [Sat, 2 Dec 2023 10:42:24 +0000 (11:42 +0100)]
added showing game actions after game end when request envelope opens/closes

6 months agoremoved duplicate variable to check if request dialog is active
Holger Schemel [Sat, 2 Dec 2023 10:32:22 +0000 (11:32 +0100)]
removed duplicate variable to check if request dialog is active

6 months agoswapped temporary bitmaps used for request dialog (no functional change)
Holger Schemel [Thu, 30 Nov 2023 23:50:20 +0000 (00:50 +0100)]
swapped temporary bitmaps used for request dialog (no functional change)

6 months agosignificant cleanup of envelope style request dialog handling
Holger Schemel [Thu, 30 Nov 2023 23:21:47 +0000 (00:21 +0100)]
significant cleanup of envelope style request dialog handling

After this change, the request dialog is not drawn to the back buffer
of the screen anymore, but to a temporary bitmap buffer (with the
request buttons directly being updated there after button events),
which is now only drawn during the final composition of the screen.

Therefore, the back buffer is not touched anymore when handling the
request dialog, and also does not have to be restored afterwards.

6 months agofixed invisible envelope request if request background is masked
Holger Schemel [Thu, 30 Nov 2023 22:26:52 +0000 (23:26 +0100)]
fixed invisible envelope request if request background is masked

When using "global.use_envelope_request: true" (to use envelope style
request dialogs instead of door style request dialogs) together with
"background.request.draw_masked: true" (to use a partially transparent
background image for the request dialog), no request dialog is drawn
at all (so the request dialog has to be answered blindly). This change
fixes this problem.

There are a few graphical bugs left (if the request dialog opens after
a game was lost, asking to play again) which still have to be fixed.

6 months agoadded wrapper function to copy SDL surfaces
Holger Schemel [Tue, 28 Nov 2023 15:30:41 +0000 (16:30 +0100)]
added wrapper function to copy SDL surfaces

6 months agoadded random push delay for rocks, nuts and bombs to EM game engine
Holger Schemel [Fri, 24 Nov 2023 16:25:50 +0000 (17:25 +0100)]
added random push delay for rocks, nuts and bombs to EM game engine

Just like in the original Emerald Mine game, there is now a random
delay when trying to push a rock, a nut or a bomb. While the chance
for rocks being successfully pushed at first attempt will be around
50 %, the chance for nuts will be a bit lower than that for rocks,
and the chance for bombs will be a bit lower than that for nuts,
with a roughly similar overall delay as in the original game.

6 months agofixed bug with loading artwork if only one special artwork set exists
Holger Schemel [Thu, 23 Nov 2023 23:21:38 +0000 (00:21 +0100)]
fixed bug with loading artwork if only one special artwork set exists

R'n'D supports using additional special artwork, like "ECS" and "AGA"
graphics sets or "default" and "lowpass" sound sets, which can be
selected from the game engines setup menu. This works fine if both
artwork sets are defined (and also if no special artwork is defined).

However, it did not work correctly if only one special artwork set was
defined, in addition to the "standard" artwork set, like this:

graphics_set:                   gfx_bond_mine_01
graphics_set.aga:               gfx_bond_mine_01.aga

In this case, it was not possible to use the "standard" graphics set,
but only the "AGA" graphics set (because the "standard" graphics set
was internally overridden by the "AGA" graphics set when selecting to
use "AGA" graphics in the game engines setup menu, and selecting to
use "ECS" graphics later could not recover this). (This bug could be
seen in level set "emc_bond_mine_01" when starting the game with "AGA"
graphics preferred in the setup menu, which resulted in not being able
to select the "standard" graphics by setting graphics preference to
"ECS" in the game engines setup menu.)

This is fixed now (by internally setting the "ECS" artwork set, which
is not explicitly defined, to the "standard" artwork before internally
overriding it with either the "ECS" or "AGA" graphics set).

This bug was caused by commit 4bc6719c.

6 months agomoved code to separate function
Holger Schemel [Thu, 23 Nov 2023 23:16:48 +0000 (00:16 +0100)]
moved code to separate function

6 months agofixed warning when encountering obsolete graphics configuration option
Holger Schemel [Mon, 20 Nov 2023 12:58:58 +0000 (13:58 +0100)]
fixed warning when encountering obsolete graphics configuration option