Holger Schemel [Wed, 4 Sep 2024 22:19:41 +0000 (00:19 +0200)]
improved output for failed tapes of automated tape tests
Failed tapes in automated tape tests (like "autotest <level set>") are
now separated into the following three cases:
- "BROKEN" for newer tapes with "solution tape flag" set
- "UNSOLVABLE" for newer tapes with "solution tape flag" NOT set
- "FAILED" for older tapes that do not have a "solution tape flag"
That way, it is easier to see if a failed tape is broken or unsolvable
"by design" (or too old to tell).
Holger Schemel [Tue, 3 Sep 2024 20:00:44 +0000 (22:00 +0200)]
changed code for handling replicators and conveyor belts in BD engine
This change should not break any tapes.
Holger Schemel [Tue, 3 Sep 2024 19:40:26 +0000 (21:40 +0200)]
added comments
Holger Schemel [Tue, 3 Sep 2024 19:28:26 +0000 (21:28 +0200)]
removed code which has no effect anymore
Holger Schemel [Mon, 2 Sep 2024 23:54:30 +0000 (01:54 +0200)]
changed how the native BD game engine handles scanned game elements
After scanning (processing) game elements on the playfield using the
native BD game engine, game elements are marked as "scanned" to
prevent processing them again (for example, newly created elements in
the next row that are just about to be scanned). Previously, elements
were marked by setting a "scanned" bit. Now, elements are marked by
using special "scanned" variants for the already processed element.
There is another change that breaks old cave replays (BD style tapes):
When checking game element properties, the old engine always checked
the non-scanned elements, while the new engine checks the element just
as it is (that is, either scanned or non-scanned), which causes some
game elements (like the amoeba) to behave slightly differently.
This is handled by a special flag to choose the old or new behaviour,
which is currently still set to use the old behaviour.
Holger Schemel [Mon, 2 Sep 2024 22:27:18 +0000 (00:27 +0200)]
added functions to check if a BD engine element has a certain property
Holger Schemel [Sun, 1 Sep 2024 15:33:43 +0000 (17:33 +0200)]
added missing default case in switch statement
Holger Schemel [Sat, 31 Aug 2024 19:21:48 +0000 (21:21 +0200)]
changed using non-scanned elements when reading C64 cave files
Holger Schemel [Sat, 31 Aug 2024 19:19:26 +0000 (21:19 +0200)]
changed using non-scanned effect elements when reading BDCFF files
Holger Schemel [Sat, 31 Aug 2024 19:03:24 +0000 (21:03 +0200)]
fixed bug with restarting game after playing unsuccessful tape
When losing a game, pressing "space" or "enter" key before being asked
to play again restarts the game. When replaying a tape, a new game was
started instead of returning to the main menu. This commit fixes this
bug.
Holger Schemel [Wed, 28 Aug 2024 22:11:05 +0000 (00:11 +0200)]
cleanup of BD engine game elements palette in editor
Holger Schemel [Wed, 28 Aug 2024 21:06:14 +0000 (23:06 +0200)]
added game element palette section for scanned BD elements in editor
Holger Schemel [Tue, 27 Aug 2024 21:56:03 +0000 (23:56 +0200)]
added using special editor graphics for scanned BD elements
If additional editor graphics are defined for certain BD elements,
also use these graphics for scanned BD elements in the level editor
(which always use the graphics of their non-scanned counterparts).
Holger Schemel [Tue, 27 Aug 2024 21:29:33 +0000 (23:29 +0200)]
added support for scanned BD elements in editor (but not in game yet)
This change still converts all scanned BD elements to their unscanned
counterparts when playing a game using the BD engine, but now supports
handling of scanned elements in the level editior.
Holger Schemel [Tue, 27 Aug 2024 21:24:09 +0000 (23:24 +0200)]
added using non-scanned element graphics for scanned BD elements
Holger Schemel [Tue, 27 Aug 2024 21:16:45 +0000 (23:16 +0200)]
added exported function to get non-scanned BD element (not used yet)
Holger Schemel [Tue, 27 Aug 2024 21:12:51 +0000 (23:12 +0200)]
added mapping of scanned BD elements to R'n'D elements (not used yet)
Holger Schemel [Tue, 27 Aug 2024 20:58:32 +0000 (22:58 +0200)]
added R'n'D element definitions for scanned BD elements (not used yet)
Holger Schemel [Mon, 26 Aug 2024 19:53:42 +0000 (21:53 +0200)]
fixed smooth animations for snapping in BD engine for non-black space
Holger Schemel [Thu, 22 Aug 2024 22:01:39 +0000 (00:01 +0200)]
fixed bugs with enabling/disabling sound/music in setup menu
Holger Schemel [Thu, 22 Aug 2024 21:22:32 +0000 (23:22 +0200)]
fixed bug with fading music after disabling in setup menu
Holger Schemel [Thu, 22 Aug 2024 21:16:19 +0000 (23:16 +0200)]
fixed bugs with starting/stopping sound/music in main menu
Holger Schemel [Thu, 22 Aug 2024 18:23:54 +0000 (20:23 +0200)]
moved code in BD engine (should not change engine functionality)
Holger Schemel [Thu, 22 Aug 2024 18:12:14 +0000 (20:12 +0200)]
added more support for reading scanned BD elements from cave files
Holger Schemel [Thu, 22 Aug 2024 17:50:55 +0000 (19:50 +0200)]
removed unneeded variable
Holger Schemel [Thu, 22 Aug 2024 17:42:54 +0000 (19:42 +0200)]
changed to more generic approach to use only unscanned BD elements
While the previous approach only worked when reading caves from BDCFF
files, the new solution works for all cave file formats, as it changes
the internal cave structure after loading.
Holger Schemel [Thu, 22 Aug 2024 17:33:36 +0000 (19:33 +0200)]
added function to set all elements in BD cave to unscanned (not used yet)
Holger Schemel [Thu, 22 Aug 2024 17:28:28 +0000 (19:28 +0200)]
added functions for scanned/non-scanned BD elements (not used yet)
Holger Schemel [Sun, 18 Aug 2024 11:25:56 +0000 (13:25 +0200)]
added separate buffer for playfield (un)covering in BD engine
Holger Schemel [Sat, 17 Aug 2024 23:38:04 +0000 (01:38 +0200)]
code formatting changes
Holger Schemel [Sat, 17 Aug 2024 17:13:44 +0000 (19:13 +0200)]
added support for BDCFF token "AddBackward"
Holger Schemel [Thu, 15 Aug 2024 22:36:39 +0000 (00:36 +0200)]
added mapping of normal to runtime BD elements (not used yet)
Holger Schemel [Thu, 15 Aug 2024 22:26:08 +0000 (00:26 +0200)]
improved reading BD runtime elements from BDCFF files
Holger Schemel [Thu, 15 Aug 2024 22:06:48 +0000 (00:06 +0200)]
minor change of BD element properties array check
Holger Schemel [Thu, 15 Aug 2024 21:57:47 +0000 (23:57 +0200)]
fixed some BD element descriptions
Holger Schemel [Thu, 15 Aug 2024 18:51:21 +0000 (20:51 +0200)]
removed support for unused BDCFF tokens
Holger Schemel [Thu, 15 Aug 2024 18:27:45 +0000 (20:27 +0200)]
changed order of checks and initialization of cave structures
This change ensures that the element properties array is checked for
consistency (in function "gd_cave_db_init()") before its values are
used (in function "gd_cave_init()").
Holger Schemel [Wed, 14 Aug 2024 19:32:50 +0000 (21:32 +0200)]
added field to BD element properties (not used yet)
Holger Schemel [Mon, 12 Aug 2024 16:51:17 +0000 (18:51 +0200)]
renamed variables
Holger Schemel [Sun, 11 Aug 2024 13:35:49 +0000 (15:35 +0200)]
changed internal element name in BD engine
Holger Schemel [Sat, 10 Aug 2024 13:26:41 +0000 (15:26 +0200)]
renamed types and variables
Holger Schemel [Sat, 10 Aug 2024 12:13:00 +0000 (14:13 +0200)]
code formatting changes
Holger Schemel [Sat, 10 Aug 2024 10:58:45 +0000 (12:58 +0200)]
fixed clipping BD engine intermission levels in editor
Holger Schemel [Fri, 5 Jul 2024 06:47:44 +0000 (08:47 +0200)]
added pushable/movable properties for BD bubble (bladder)
Holger Schemel [Thu, 4 Jul 2024 19:43:23 +0000 (21:43 +0200)]
renamed bladder (spender) to (trapped) bubble in BD engine
Holger Schemel [Thu, 4 Jul 2024 18:54:44 +0000 (20:54 +0200)]
changed element group names for BD style walls with key
Holger Schemel [Thu, 4 Jul 2024 18:54:08 +0000 (20:54 +0200)]
changed descriptions for BD style diamond keys and trapped keys
Holger Schemel [Wed, 3 Jul 2024 08:55:40 +0000 (10:55 +0200)]
changed descriptions for BD style pot and gravity switch
Holger Schemel [Wed, 3 Jul 2024 08:43:24 +0000 (10:43 +0200)]
minor code formatting change
Holger Schemel [Wed, 3 Jul 2024 08:39:21 +0000 (10:39 +0200)]
added support for zero delay for gravitation switch in BD engine
Holger Schemel [Tue, 2 Jul 2024 22:05:05 +0000 (00:05 +0200)]
fixed BD elements at wrap-around cave position killing player instantly
Holger Schemel [Tue, 2 Jul 2024 15:15:23 +0000 (17:15 +0200)]
fixed buggy smooth movement speed in BD engine after wrapping around
Holger Schemel [Mon, 1 Jul 2024 20:18:34 +0000 (22:18 +0200)]
added BD file format specific hacks (like diagonal movement)
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
Holger Schemel [Sun, 30 Jun 2024 15:01:59 +0000 (17:01 +0200)]
added reading (more) scanned BD elements from BDCFF files
Holger Schemel [Sun, 30 Jun 2024 14:40:19 +0000 (16:40 +0200)]
added mapping (scanned) BD run-time elements to normal BD elements
Holger Schemel [Sun, 30 Jun 2024 14:39:18 +0000 (16:39 +0200)]
added some safety checks to string functions
Holger Schemel [Sun, 30 Jun 2024 13:11:01 +0000 (15:11 +0200)]
added BD graphics definitions for chasing rock
Holger Schemel [Sun, 30 Jun 2024 13:06:59 +0000 (15:06 +0200)]
added BD graphics definitions for cracking nut
Holger Schemel [Sun, 30 Jun 2024 13:05:34 +0000 (15:05 +0200)]
added BD graphics for chasing rock and cracking nut
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).
Holger Schemel [Sun, 30 Jun 2024 11:48:29 +0000 (13:48 +0200)]
fixed status bits that overlapped with element numbers in BD engine
Holger Schemel [Sun, 30 Jun 2024 11:46:05 +0000 (13:46 +0200)]
added element properties for BD engine for elements that can move
Holger Schemel [Sun, 30 Jun 2024 11:42:15 +0000 (13:42 +0200)]
added element properties for BD engine for elements that can dig
Holger Schemel [Fri, 28 Jun 2024 10:10:24 +0000 (12:10 +0200)]
added element properties for BD engine for elements that can grow
Holger Schemel [Fri, 28 Jun 2024 10:06:47 +0000 (12:06 +0200)]
fixed direction arrays
Holger Schemel [Wed, 26 Jun 2024 16:21:10 +0000 (18:21 +0200)]
added support for smooth movement on conveyor belts in BD engine
Holger Schemel [Wed, 26 Jun 2024 16:18:00 +0000 (18:18 +0200)]
fixed speed of conveyor belt animation for BD engine
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
Holger Schemel [Mon, 24 Jun 2024 22:31:32 +0000 (00:31 +0200)]
fixed use of element / drawing buffer
Holger Schemel [Mon, 24 Jun 2024 22:28:09 +0000 (00:28 +0200)]
added playfield element buffer for drawing game graphics for BD engine
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.
Holger Schemel [Mon, 24 Jun 2024 15:35:05 +0000 (17:35 +0200)]
changed default for configurable graphics for BD style expandable wall
Holger Schemel [Mon, 24 Jun 2024 15:33:55 +0000 (17:33 +0200)]
version number set to 4.4.0.0-test-3
Holger Schemel [Tue, 18 Jun 2024 21:40:05 +0000 (23:40 +0200)]
cleanup of unnecessarily convoluted function call
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.
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
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
Holger Schemel [Mon, 17 Jun 2024 06:32:19 +0000 (08:32 +0200)]
fixed compiler warning
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).
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.
Holger Schemel [Tue, 11 Jun 2024 21:09:43 +0000 (23:09 +0200)]
added single step support for BD engine
Holger Schemel [Mon, 10 Jun 2024 17:45:26 +0000 (19:45 +0200)]
added snapshot support for BD engine
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.
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
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
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
Holger Schemel [Sat, 25 May 2024 20:17:19 +0000 (22:17 +0200)]
fixed player entering pot when using smooth movement
Holger Schemel [Sat, 25 May 2024 17:23:35 +0000 (19:23 +0200)]
added checking availability of level specific colors in level editor
Holger Schemel [Sat, 25 May 2024 16:37:41 +0000 (18:37 +0200)]
changed default game cycle delay value for BD engine
Holger Schemel [Sat, 25 May 2024 10:26:59 +0000 (12:26 +0200)]
added precedence of game keys over speed/debug keys when playing
Holger Schemel [Sat, 25 May 2024 10:03:50 +0000 (12:03 +0200)]
minor code formatting changes
Holger Schemel [Sat, 25 May 2024 10:02:34 +0000 (12:02 +0200)]
added setup option for fast game start from level editor
Holger Schemel [Sat, 25 May 2024 09:35:04 +0000 (11:35 +0200)]
changed some texts in setup menu that were too long
Holger Schemel [Sat, 25 May 2024 09:32:12 +0000 (11:32 +0200)]
changed logic and defaults for falling element sounds in BD engine
Holger Schemel [Fri, 24 May 2024 14:38:11 +0000 (16:38 +0200)]
version number set to 4.4.0.0-test-2
Holger Schemel [Fri, 24 May 2024 14:35:49 +0000 (16:35 +0200)]
added support for opening level set zip files in Android version
Holger Schemel [Wed, 22 May 2024 16:47:55 +0000 (18:47 +0200)]
added command line option to drop file into program window
Holger Schemel [Sat, 11 May 2024 12:05:47 +0000 (14:05 +0200)]
minor code cleanup
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