rocksndiamonds.git
2 months agoadded pushable/movable properties for BD bubble (bladder) master-next-major-release 4.4.0.0-test-3
Holger Schemel [Fri, 5 Jul 2024 06:47:44 +0000 (08:47 +0200)]
added pushable/movable properties for BD bubble (bladder)

2 months agorenamed bladder (spender) to (trapped) bubble in BD engine
Holger Schemel [Thu, 4 Jul 2024 19:43:23 +0000 (21:43 +0200)]
renamed bladder (spender) to (trapped) bubble in BD engine

2 months agochanged element group names for BD style walls with key
Holger Schemel [Thu, 4 Jul 2024 18:54:44 +0000 (20:54 +0200)]
changed element group names for BD style walls with key

2 months agochanged descriptions for BD style diamond keys and trapped keys
Holger Schemel [Thu, 4 Jul 2024 18:54:08 +0000 (20:54 +0200)]
changed descriptions for BD style diamond keys and trapped keys

2 months agochanged descriptions for BD style pot and gravity switch
Holger Schemel [Wed, 3 Jul 2024 08:55:40 +0000 (10:55 +0200)]
changed descriptions for BD style pot and gravity switch

2 months agominor code formatting change
Holger Schemel [Wed, 3 Jul 2024 08:43:24 +0000 (10:43 +0200)]
minor code formatting change

2 months agoadded support for zero delay for gravitation switch in BD engine
Holger Schemel [Wed, 3 Jul 2024 08:39:21 +0000 (10:39 +0200)]
added support for zero delay for gravitation switch in BD engine

2 months agofixed BD elements at wrap-around cave position killing player instantly
Holger Schemel [Tue, 2 Jul 2024 22:05:05 +0000 (00:05 +0200)]
fixed BD elements at wrap-around cave position killing player instantly

2 months agofixed buggy smooth movement speed in BD engine after wrapping around
Holger Schemel [Tue, 2 Jul 2024 15:15:23 +0000 (17:15 +0200)]
fixed buggy smooth movement speed in BD engine after wrapping around

2 months agoadded BD file format specific hacks (like diagonal movement)
Holger Schemel [Mon, 1 Jul 2024 20:18:34 +0000 (22:18 +0200)]
added BD file format specific hacks (like diagonal movement)

2 months agofixed bug causing BD engine hanging in wrap-around scrolling edge case
Holger Schemel [Mon, 1 Jul 2024 08:17:37 +0000 (10:17 +0200)]
fixed bug causing BD engine hanging in wrap-around scrolling edge case

2 months agoadded reading (more) scanned BD elements from BDCFF files
Holger Schemel [Sun, 30 Jun 2024 15:01:59 +0000 (17:01 +0200)]
added reading (more) scanned BD elements from BDCFF files

2 months agoadded mapping (scanned) BD run-time elements to normal BD elements
Holger Schemel [Sun, 30 Jun 2024 14:40:19 +0000 (16:40 +0200)]
added mapping (scanned) BD run-time elements to normal BD elements

2 months agoadded some safety checks to string functions
Holger Schemel [Sun, 30 Jun 2024 14:39:18 +0000 (16:39 +0200)]
added some safety checks to string functions

2 months agoadded BD graphics definitions for chasing rock
Holger Schemel [Sun, 30 Jun 2024 13:11:01 +0000 (15:11 +0200)]
added BD graphics definitions for chasing rock

2 months agoadded BD graphics definitions for cracking nut
Holger Schemel [Sun, 30 Jun 2024 13:06:59 +0000 (15:06 +0200)]
added BD graphics definitions for cracking nut

2 months agoadded BD graphics for chasing rock and cracking nut
Holger Schemel [Sun, 30 Jun 2024 13:05:34 +0000 (15:05 +0200)]
added BD graphics for chasing rock and cracking nut

2 months agofixed various edge cases for smooth movement animation for BD engine
Holger Schemel [Sun, 30 Jun 2024 11:58:27 +0000 (13:58 +0200)]
fixed various edge cases for smooth movement animation for BD engine

The recent complete rewrite of smooth movement animations for the BD
engine still had a number of bugs and edge cases not correctly handled
(or handled at all). These problems have been fixed now, using separate
variables for game elements in the playfield array and drawing elements
that differ from the "real" game elements, to be able to correctly use
game element properties for those game elements that have "looks like"
definitions to use completely different game elements (with different
element properties) just for drawing (like the expandable wall).

2 months agofixed status bits that overlapped with element numbers in BD engine
Holger Schemel [Sun, 30 Jun 2024 11:48:29 +0000 (13:48 +0200)]
fixed status bits that overlapped with element numbers in BD engine

2 months agoadded element properties for BD engine for elements that can move
Holger Schemel [Sun, 30 Jun 2024 11:46:05 +0000 (13:46 +0200)]
added element properties for BD engine for elements that can move

2 months agoadded element properties for BD engine for elements that can dig
Holger Schemel [Sun, 30 Jun 2024 11:42:15 +0000 (13:42 +0200)]
added element properties for BD engine for elements that can dig

2 months agoadded element properties for BD engine for elements that can grow
Holger Schemel [Fri, 28 Jun 2024 10:10:24 +0000 (12:10 +0200)]
added element properties for BD engine for elements that can grow

2 months agofixed direction arrays
Holger Schemel [Fri, 28 Jun 2024 10:06:47 +0000 (12:06 +0200)]
fixed direction arrays

2 months agoadded support for smooth movement on conveyor belts in BD engine
Holger Schemel [Wed, 26 Jun 2024 16:21:10 +0000 (18:21 +0200)]
added support for smooth movement on conveyor belts in BD engine

2 months agofixed speed of conveyor belt animation for BD engine
Holger Schemel [Wed, 26 Jun 2024 16:18:00 +0000 (18:18 +0200)]
fixed speed of conveyor belt animation for BD engine

2 months agofixed broken scrollbar in hall of fame after playing with small graphics
Holger Schemel [Wed, 26 Jun 2024 09:41:26 +0000 (11:41 +0200)]
fixed broken scrollbar in hall of fame after playing with small graphics

2 months agofixed use of element / drawing buffer
Holger Schemel [Mon, 24 Jun 2024 22:31:32 +0000 (00:31 +0200)]
fixed use of element / drawing buffer

2 months agoadded playfield element buffer for drawing game graphics for BD engine
Holger Schemel [Mon, 24 Jun 2024 22:28:09 +0000 (00:28 +0200)]
added playfield element buffer for drawing game graphics for BD engine

2 months agorenamed variables
Holger Schemel [Mon, 24 Jun 2024 15:55:32 +0000 (17:55 +0200)]
renamed variables

This renames misleading variable names in the BD game engine for two
buffers that do not contain actual playfield elements, but mapped
elements only used for (re)drawing the playfield element graphics.

2 months agochanged default for configurable graphics for BD style expandable wall
Holger Schemel [Mon, 24 Jun 2024 15:35:05 +0000 (17:35 +0200)]
changed default for configurable graphics for BD style expandable wall

2 months agoversion number set to 4.4.0.0-test-3
Holger Schemel [Mon, 24 Jun 2024 15:33:55 +0000 (17:33 +0200)]
version number set to 4.4.0.0-test-3

2 months agocleanup of unnecessarily convoluted function call 4.4.0.0-test-2
Holger Schemel [Tue, 18 Jun 2024 21:40:05 +0000 (23:40 +0200)]
cleanup of unnecessarily convoluted function call

2 months agoadded checking for help anim/text files in different locations
Holger Schemel [Tue, 18 Jun 2024 20:08:39 +0000 (22:08 +0200)]
added checking for help anim/text files in different locations

Instead of only checking for help anim/text files in the current level
set directory, these files are now also checked for

- in the configured graphics set directory
- in the path from the current to the topmost level set directory

This adds some flexibility and optimization for adding help anim/text
files for large level collections that all use the same help files.

2 months agomoved code to check for file in level directories to separate function
Holger Schemel [Tue, 18 Jun 2024 20:02:41 +0000 (22:02 +0200)]
moved code to check for file in level directories to separate function

2 months agoadded empty space graphics definitions for use in help anim/text files
Holger Schemel [Tue, 18 Jun 2024 19:52:20 +0000 (21:52 +0200)]
added empty space graphics definitions for use in help anim/text files

2 months agofixed compiler warning
Holger Schemel [Mon, 17 Jun 2024 06:32:19 +0000 (08:32 +0200)]
fixed compiler warning

2 months agoimproved smooth movement animation for BD engine (complete rewrite)
Holger Schemel [Sun, 16 Jun 2024 08:28:12 +0000 (10:28 +0200)]
improved smooth movement animation for BD engine (complete rewrite)

This is a complete rewrite of the smooth movement animation code for
the BD game and graphics engine. The previous code was a mess, and
still did not cover all cases (like game elements leaving a tile while
another game element is entering the same tile in the same cycle).

The new code only redraws a single playfield tile (without also trying
to redraw the corresponding adjacent tile related to element movement)
by drawing the tile background, the part of the element leaving that
tile and the part of the element entering that tile (without redrawing
the neighboring tile where the movement starts or stops, which is now
redrawn completely independently, allowing for correctly handling all
special cases in a much more clean way).

2 months agoimproved smooth movement animation for classic BD scheduling types
Holger Schemel [Tue, 11 Jun 2024 21:39:28 +0000 (23:39 +0200)]
improved smooth movement animation for classic BD scheduling types

Using the BD game engine with classic scheduling types like "BD1" may
result in alternating numbers of frames per iteration cycle due to
dynamic game speed calculations (like alternating between 7 and 8
frames per iteration), so always using the last maximum number of
cycle frames (to adjust to dynamically changing game speed) results in
always using the wrong number of frames per iteration cycle, causing
less smooth movement animations (due to little stops or jumps for each
iteration cycle movement animation).

Storing the last maximum number of cycle frames for even and odd
cycles separately can improve this by using the "right" number of
cycle frames even if they are alternating between two values.

2 months agoadded single step support for BD engine
Holger Schemel [Tue, 11 Jun 2024 21:09:43 +0000 (23:09 +0200)]
added single step support for BD engine

2 months agoadded snapshot support for BD engine
Holger Schemel [Mon, 10 Jun 2024 17:45:26 +0000 (19:45 +0200)]
added snapshot support for BD engine

3 months agofixed bugs with wrong newline handling in envelopes (game and editor)
Holger Schemel [Tue, 4 Jun 2024 21:13:07 +0000 (23:13 +0200)]
fixed bugs with wrong newline handling in envelopes (game and editor)

This is the second (and hopefully final) attempt to fix a bug that was
already thought to be fixed with commit e567cb7f (which only fixed the
bug partially, and introduced new problems).

See the detailed description in function "LoadLevel_FixEnvelopes()"
for more details on the problem and the solution.

3 months agoimproved converting BD game engine elements for R'n'D game engine
Holger Schemel [Sun, 26 May 2024 00:31:12 +0000 (02:31 +0200)]
improved converting BD game engine elements for R'n'D game engine

3 months agoadded using masked drawing for player on walkable tiles in BD engine
Holger Schemel [Sat, 25 May 2024 23:49:22 +0000 (01:49 +0200)]
added using masked drawing for player on walkable tiles in BD engine

3 months agofixed graphical bug when snap-pushing with smooth movement in BD engine
Holger Schemel [Sat, 25 May 2024 23:08:13 +0000 (01:08 +0200)]
fixed graphical bug when snap-pushing with smooth movement in BD engine

3 months agofixed player entering pot when using smooth movement
Holger Schemel [Sat, 25 May 2024 20:17:19 +0000 (22:17 +0200)]
fixed player entering pot when using smooth movement

3 months agoadded checking availability of level specific colors in level editor
Holger Schemel [Sat, 25 May 2024 17:23:35 +0000 (19:23 +0200)]
added checking availability of level specific colors in level editor

3 months agochanged default game cycle delay value for BD engine
Holger Schemel [Sat, 25 May 2024 16:37:41 +0000 (18:37 +0200)]
changed default game cycle delay value for BD engine

3 months agoadded precedence of game keys over speed/debug keys when playing
Holger Schemel [Sat, 25 May 2024 10:26:59 +0000 (12:26 +0200)]
added precedence of game keys over speed/debug keys when playing

3 months agominor code formatting changes
Holger Schemel [Sat, 25 May 2024 10:03:50 +0000 (12:03 +0200)]
minor code formatting changes

3 months agoadded setup option for fast game start from level editor
Holger Schemel [Sat, 25 May 2024 10:02:34 +0000 (12:02 +0200)]
added setup option for fast game start from level editor

3 months agochanged some texts in setup menu that were too long
Holger Schemel [Sat, 25 May 2024 09:35:04 +0000 (11:35 +0200)]
changed some texts in setup menu that were too long

3 months agochanged logic and defaults for falling element sounds in BD engine
Holger Schemel [Sat, 25 May 2024 09:32:12 +0000 (11:32 +0200)]
changed logic and defaults for falling element sounds in BD engine

3 months agoversion number set to 4.4.0.0-test-2
Holger Schemel [Fri, 24 May 2024 14:38:11 +0000 (16:38 +0200)]
version number set to 4.4.0.0-test-2

3 months agoadded support for opening level set zip files in Android version
Holger Schemel [Fri, 24 May 2024 14:35:49 +0000 (16:35 +0200)]
added support for opening level set zip files in Android version

3 months agoadded command line option to drop file into program window
Holger Schemel [Wed, 22 May 2024 16:47:55 +0000 (18:47 +0200)]
added command line option to drop file into program window

3 months agominor code cleanup
Holger Schemel [Sat, 11 May 2024 12:05:47 +0000 (14:05 +0200)]
minor code cleanup

3 months agofixed cave flashing on open outbox for non-black cave background color
Holger Schemel [Sat, 11 May 2024 11:47:14 +0000 (13:47 +0200)]
fixed cave flashing on open outbox for non-black cave background color

3 months agofixed score time for BD engine
Holger Schemel [Sat, 11 May 2024 11:24:18 +0000 (13:24 +0200)]
fixed score time for BD engine

3 months agorenamed variables
Holger Schemel [Sat, 11 May 2024 10:55:00 +0000 (12:55 +0200)]
renamed variables

3 months agofixed undefined element reference in default graphics configuration
Holger Schemel [Sat, 11 May 2024 08:55:24 +0000 (10:55 +0200)]
fixed undefined element reference in default graphics configuration

3 months agoremoved showing level in cave names for BDCFF cave sets without levels
Holger Schemel [Sat, 11 May 2024 08:31:02 +0000 (10:31 +0200)]
removed showing level in cave names for BDCFF cave sets without levels

3 months agoadded UTF-8 support for cave names in BDCFF files
Holger Schemel [Sat, 11 May 2024 08:27:43 +0000 (10:27 +0200)]
added UTF-8 support for cave names in BDCFF files

4 months agoadded support for BD game engine to Makefile for Android 4.4.0.0-test-1
Holger Schemel [Wed, 8 May 2024 23:13:50 +0000 (01:13 +0200)]
added support for BD game engine to Makefile for Android

4 months agofixed some more compiler warnings
Holger Schemel [Wed, 8 May 2024 22:58:14 +0000 (00:58 +0200)]
fixed some more compiler warnings

4 months agofixed compiler warning
Holger Schemel [Wed, 8 May 2024 22:15:25 +0000 (00:15 +0200)]
fixed compiler warning

4 months agofixed wrong sound position in BD engine
Holger Schemel [Wed, 8 May 2024 22:14:49 +0000 (00:14 +0200)]
fixed wrong sound position in BD engine

4 months agoversion number set to 4.4.0.0-test-1
Holger Schemel [Wed, 8 May 2024 19:49:45 +0000 (21:49 +0200)]
version number set to 4.4.0.0-test-1

4 months agoadded fast uncovering of native BD games when started from editor
Holger Schemel [Tue, 7 May 2024 23:05:17 +0000 (01:05 +0200)]
added fast uncovering of native BD games when started from editor

4 months agoadded functions to check if native BD cave or caveset has levels
Holger Schemel [Tue, 7 May 2024 21:58:11 +0000 (23:58 +0200)]
added functions to check if native BD cave or caveset has levels

4 months agochanged naming of "ECS/AGA" graphics setup to more generic "old/new"
Holger Schemel [Sun, 5 May 2024 23:35:34 +0000 (01:35 +0200)]
changed naming of "ECS/AGA" graphics setup to more generic "old/new"

4 months agoadded new graphics for BD engine amoeba elements
Holger Schemel [Sun, 5 May 2024 23:25:13 +0000 (01:25 +0200)]
added new graphics for BD engine amoeba elements

4 months agochanged order of BD style graphics and sounds (no functional change)
Holger Schemel [Sun, 5 May 2024 22:56:41 +0000 (00:56 +0200)]
changed order of BD style graphics and sounds (no functional change)

4 months agofixed default graphics for growing or exploding BD engine elements
Holger Schemel [Sun, 5 May 2024 22:47:29 +0000 (00:47 +0200)]
fixed default graphics for growing or exploding BD engine elements

4 months agochanged prefix for native BD engine game element description files
Holger Schemel [Sun, 5 May 2024 22:29:24 +0000 (00:29 +0200)]
changed prefix for native BD engine game element description files

4 months agoadded credits for the native BD engine
Holger Schemel [Sun, 5 May 2024 21:54:28 +0000 (23:54 +0200)]
added credits for the native BD engine

4 months agofixed handling enter key just before asking to play again
Holger Schemel [Sun, 5 May 2024 18:57:41 +0000 (20:57 +0200)]
fixed handling enter key just before asking to play again

4 months agoadded handling player running into enemy from top or left in BD engine
Holger Schemel [Sun, 5 May 2024 18:52:06 +0000 (20:52 +0200)]
added handling player running into enemy from top or left in BD engine

4 months agoadded property for growing BD engine game elements
Holger Schemel [Sun, 5 May 2024 18:44:19 +0000 (20:44 +0200)]
added property for growing BD engine game elements

4 months agofixed two small bugs for BD amoeba properties in editor
Holger Schemel [Tue, 30 Apr 2024 23:49:27 +0000 (01:49 +0200)]
fixed two small bugs for BD amoeba properties in editor

4 months agochanged some default settings for native BD engine
Holger Schemel [Tue, 30 Apr 2024 23:32:50 +0000 (01:32 +0200)]
changed some default settings for native BD engine

4 months agofixed default explosion definition for native BD engine
Holger Schemel [Tue, 30 Apr 2024 23:27:44 +0000 (01:27 +0200)]
fixed default explosion definition for native BD engine

4 months agoadded command line option to dump level set info
Holger Schemel [Tue, 30 Apr 2024 22:46:20 +0000 (00:46 +0200)]
added command line option to dump level set info

4 months agomoved code to separate function
Holger Schemel [Tue, 30 Apr 2024 22:40:42 +0000 (00:40 +0200)]
moved code to separate function

4 months agoadded some safety checks
Holger Schemel [Tue, 30 Apr 2024 20:32:43 +0000 (22:32 +0200)]
added some safety checks

4 months agoremoved function (used only once)
Holger Schemel [Tue, 30 Apr 2024 20:27:00 +0000 (22:27 +0200)]
removed function (used only once)

4 months agofixed compiler warning
Holger Schemel [Tue, 30 Apr 2024 19:58:15 +0000 (21:58 +0200)]
fixed compiler warning

4 months agochanged prefix for all game elements only used by the native BD engine
Holger Schemel [Mon, 29 Apr 2024 21:31:25 +0000 (23:31 +0200)]
changed prefix for all game elements only used by the native BD engine

While the last commit added all native BD style game elements that
were shared with the R'n'D game engine before, this change renames
all game elements only supported by the native BD game engine by
changing their prefix from "bd_" to "bdx_" (so the remaining game
elements left with prefix "bd_" are those only supported by the
R'n'D game engine).

This way, game elements for the native BD game engine are finally
named consistently (to be able to easily distinguish BD style game
elements used by the R'n'D engine from those exclusively used by the
native BD engine). The ugly "_native" suffixes could be removed with
this change.

4 months agoadded all BD engine elements shared with R'n'D engine as native elements
Holger Schemel [Mon, 22 Apr 2024 16:47:32 +0000 (18:47 +0200)]
added all BD engine elements shared with R'n'D engine as native elements

There were a number of game elements covered by the native BD engine
that already existed in the R'n'D engine for a long time. So far,
these BD style game elements were "shared" between both game engines,
which had some implications and unwanted ambiguities (like defining
explosion animations which are played with different duration in both
game engines, resulting in graphical glitches, or differences in
game element properties which also requires different descriptions in
the level editor, which would simply be impossible with "shared" game
elements).

The following game elements had to be duplicated for the BD engine:

- bd_wall         -> bd_wall_native
- bd_rock         -> bd_rock_native
- bd_diamond      -> bd_diamond_native
- bd_magic_wall   -> bd_magic_wall_native
- bd_butterfly    -> bd_butterfly_1
- bd_firefly      -> bd_firefly_1
- bd_amoeba       -> bd_amoeba_1

This change does not make game element token names for artwork config
files nicer, but makes sure that there are no unwanted side effects as
described between both game engines anymore.

4 months agofixed scaling wrong images when using "clone_from" graphics parameter
Holger Schemel [Sun, 28 Apr 2024 00:34:22 +0000 (02:34 +0200)]
fixed scaling wrong images when using "clone_from" graphics parameter

When cloning graphic definitions using the ".clone_from" parameter in
custom graphics configurations, only the graphic parameters are cloned
(including bitmap pointers), but the position of the image file of the
cloned graphic does not change. This may lead to the wrong image being
scaled if the ".scale_up_factor" parameter is used to scale the cloned
graphic (which may cause further unintended side effects if the scaled
image was also used by other graphics definitions which do not intend
to scale this image).

This bug occurred when the game was started with the original Boulder
Dash graphics (used by a native Boulder Dash level set), followed by
selecting a level set which uses the classic default R'n'D graphics,
leading to broken (scaled up and truncated) fonts in the main menu.

4 months agoremoved function (directly using function code instead)
Holger Schemel [Sat, 27 Apr 2024 12:02:32 +0000 (14:02 +0200)]
removed function (directly using function code instead)

4 months agoremoved redundant code
Holger Schemel [Sat, 27 Apr 2024 11:55:16 +0000 (13:55 +0200)]
removed redundant code

4 months agofixed playfield graphics for BD runtime elements in level editor
Holger Schemel [Sat, 27 Apr 2024 11:52:38 +0000 (13:52 +0200)]
fixed playfield graphics for BD runtime elements in level editor

4 months agomoved workaround for BD runtime elements in editor to separate function
Holger Schemel [Sat, 27 Apr 2024 11:49:01 +0000 (13:49 +0200)]
moved workaround for BD runtime elements in editor to separate function

4 months agofixed element graphic on properties page in level editor
Holger Schemel [Sat, 27 Apr 2024 11:42:59 +0000 (13:42 +0200)]
fixed element graphic on properties page in level editor

4 months agoadded definitions and macro for BD engine runtime elements
Holger Schemel [Sat, 27 Apr 2024 11:39:32 +0000 (13:39 +0200)]
added definitions and macro for BD engine runtime elements

4 months agorenamed function
Holger Schemel [Fri, 26 Apr 2024 14:57:14 +0000 (16:57 +0200)]
renamed function

4 months agoadded missing code for new 3-state setup option type
Holger Schemel [Fri, 26 Apr 2024 14:55:26 +0000 (16:55 +0200)]
added missing code for new 3-state setup option type

4 months agorenamed preprocessor constants
Holger Schemel [Fri, 26 Apr 2024 14:39:14 +0000 (16:39 +0200)]
renamed preprocessor constants

4 months agoadded separate 3-state type values for "true" and "false" states
Holger Schemel [Fri, 26 Apr 2024 14:19:13 +0000 (16:19 +0200)]
added separate 3-state type values for "true" and "false" states

4 months agoadded new, 3-state setup option to allow skipping levels (yes/no/ask)
Holger Schemel [Fri, 26 Apr 2024 13:46:28 +0000 (15:46 +0200)]
added new, 3-state setup option to allow skipping levels (yes/no/ask)

This new setup option replaces the two previous setup options "Force
Solving Levels: yes/no" and "Allow Skipping Levels: yes/no" with a new
option "Allow Skipping Levels: yes/no/ask". This should simplify the
three (useful) combinations of the two previous setup options, as
follows:

- "Force Solving Levels: yes" and "Allow Skipping Levels: yes"
  => "Allow Skipping Levels: ask"

- "Force Solving Levels: yes" and "Allow Skipping Levels: no"
  => "Allow Skipping Levels: no"

- "Force Solving Levels: no" (and "Allow Skipping Levels: yes/no")
  => "Allow Skipping Levels: yes"

This hopefully makes configuring if (and how) unsolved levels may be
skipped or not easier to understand.