rocksndiamonds.git
3 years agoimproved code to type player name in main menu
Holger Schemel [Sat, 17 Oct 2020 15:57:44 +0000 (17:57 +0200)]
improved code to type player name in main menu

3 years agoimproved code to set or change current artwork
Holger Schemel [Sat, 17 Oct 2020 15:46:15 +0000 (17:46 +0200)]
improved code to set or change current artwork

3 years agofixed bug with tile selection cursor for MM game engine
Holger Schemel [Sun, 13 Dec 2020 23:40:32 +0000 (00:40 +0100)]
fixed bug with tile selection cursor for MM game engine

3 years agoadded using setup values for tile selection cursor for MM game engine
Holger Schemel [Sun, 13 Dec 2020 20:22:19 +0000 (21:22 +0100)]
added using setup values for tile selection cursor for MM game engine

3 years agoadded setup values for tile selection cursor for MM game engine
Holger Schemel [Sun, 13 Dec 2020 20:10:05 +0000 (21:10 +0100)]
added setup values for tile selection cursor for MM game engine

3 years agoadded function to remove entry from hash
Holger Schemel [Sun, 13 Dec 2020 19:49:46 +0000 (20:49 +0100)]
added function to remove entry from hash

3 years agomoved initializing hash
Holger Schemel [Sun, 13 Dec 2020 19:46:08 +0000 (20:46 +0100)]
moved initializing hash

3 years agofixed setup option position when using narrow font
Holger Schemel [Sun, 13 Dec 2020 11:59:47 +0000 (12:59 +0100)]
fixed setup option position when using narrow font

3 years agoimproved tile selection cursor for MM game engine
Holger Schemel [Fri, 11 Dec 2020 00:54:19 +0000 (01:54 +0100)]
improved tile selection cursor for MM game engine

3 years agoadded previously static function to header file
Holger Schemel [Fri, 11 Dec 2020 00:20:23 +0000 (01:20 +0100)]
added previously static function to header file

3 years agomoved function to different source file
Holger Schemel [Wed, 9 Dec 2020 22:37:16 +0000 (23:37 +0100)]
moved function to different source file

3 years agoadded highlighting of drawing element in editor when pressing "Alt" key
Holger Schemel [Fri, 30 Oct 2020 14:26:57 +0000 (15:26 +0100)]
added highlighting of drawing element in editor when pressing "Alt" key

3 years agoversion number set to 4.2.0.6
Holger Schemel [Wed, 9 Dec 2020 19:04:14 +0000 (20:04 +0100)]
version number set to 4.2.0.6

3 years agofixed time of some game elements when reading native DC2 levels 4.2.0.5
Holger Schemel [Fri, 4 Dec 2020 20:58:19 +0000 (21:58 +0100)]
fixed time of some game elements when reading native DC2 levels

3 years agofixed score of some game elements when reading native DC2 levels
Holger Schemel [Fri, 4 Dec 2020 20:51:57 +0000 (21:51 +0100)]
fixed score of some game elements when reading native DC2 levels

3 years agofixed mapping of some game elements when reading native DC2 levels
Holger Schemel [Fri, 4 Dec 2020 20:43:14 +0000 (21:43 +0100)]
fixed mapping of some game elements when reading native DC2 levels

3 years agofixed compiling on OS/2 (ArcaOS, in fact)
Holger Schemel [Fri, 4 Dec 2020 19:59:10 +0000 (20:59 +0100)]
fixed compiling on OS/2 (ArcaOS, in fact)

3 years agofixed activating robot wheel at wrap-around position for EM engine
Holger Schemel [Tue, 1 Dec 2020 20:22:41 +0000 (21:22 +0100)]
fixed activating robot wheel at wrap-around position for EM engine

3 years agofixed wrap-around with entering EM style door (gate) for EM engine
Holger Schemel [Tue, 1 Dec 2020 20:18:01 +0000 (21:18 +0100)]
fixed wrap-around with entering EM style door (gate) for EM engine

3 years agoadded "index.html" file for Emscripten support
Holger Schemel [Thu, 26 Nov 2020 23:19:35 +0000 (00:19 +0100)]
added "index.html" file for Emscripten support

3 years agoadded Emscripten support for running R'n'D in a web browser
Holger Schemel [Thu, 26 Nov 2020 22:33:56 +0000 (23:33 +0100)]
added Emscripten support for running R'n'D in a web browser

3 years agoremoved unused definition
Holger Schemel [Thu, 26 Nov 2020 22:08:35 +0000 (23:08 +0100)]
removed unused definition

3 years agominor Makefile changes
Holger Schemel [Thu, 26 Nov 2020 17:04:15 +0000 (18:04 +0100)]
minor Makefile changes

3 years agoadded fix to Makefile to execute "sdl2-config" only once
Holger Schemel [Thu, 26 Nov 2020 16:58:48 +0000 (17:58 +0100)]
added fix to Makefile to execute "sdl2-config" only once

3 years agoadded abstractions for using getpwuid()
Holger Schemel [Thu, 26 Nov 2020 16:46:02 +0000 (17:46 +0100)]
added abstractions for using getpwuid()

4 years agoremoved unused array
Holger Schemel [Tue, 24 Nov 2020 22:08:34 +0000 (23:08 +0100)]
removed unused array

4 years agofixed compiler warning with GCC 9
Holger Schemel [Wed, 18 Nov 2020 18:21:18 +0000 (19:21 +0100)]
fixed compiler warning with GCC 9

4 years agofixed handling of player at fake acid for EM engine
Holger Schemel [Sat, 14 Nov 2020 00:20:47 +0000 (01:20 +0100)]
fixed handling of player at fake acid for EM engine

4 years agoversion number set to 4.2.0.5
Holger Schemel [Wed, 11 Nov 2020 23:02:08 +0000 (00:02 +0100)]
version number set to 4.2.0.5

4 years agofixed graphical bugs if digging or collecting caused player relocation 4.2.0.4
Holger Schemel [Fri, 6 Nov 2020 14:35:02 +0000 (15:35 +0100)]
fixed graphical bugs if digging or collecting caused player relocation

If digging or collecting (but not snapping!) certain tiles or elements
causes the player to be relocated ("teleported"), the corresponding
digging or collecting animation for this element will not be continued
anymore (because the player does not move towards this tile anymore).

To fix this problem, the digged or collected tile will be treated like
being snapped (using a temporary run-time element) for this edge case.
(The resulting engine behaviour is slightly different to the previous
behaviour, but should not break too many levels as this case should be
rather uncommon.)

4 years agoincreased the maximum tape length for playing extreme levels
Holger Schemel [Sat, 31 Oct 2020 22:53:17 +0000 (23:53 +0100)]
increased the maximum tape length for playing extreme levels

Playing Alan Bond's famous "Zelda 2" one-level set requires a tape
playing time of several hours, which may exceed the previous maximum
tape length.

4 years agofixed bug with not setting grid size and buttons after screen changes
Holger Schemel [Sat, 31 Oct 2020 22:50:46 +0000 (23:50 +0100)]
fixed bug with not setting grid size and buttons after screen changes

4 years agomoved setting overlay grid size and buttons to separate function
Holger Schemel [Sat, 31 Oct 2020 22:49:58 +0000 (23:49 +0100)]
moved setting overlay grid size and buttons to separate function

4 years agochanged handling "conf" and "properties" buttons in level editor
Holger Schemel [Thu, 29 Oct 2020 07:53:35 +0000 (08:53 +0100)]
changed handling "conf" and "properties" buttons in level editor

When clicking "conf" and "properties" buttons in the level editor when
the previous screen is not the playfield screen, it can be confusing
how to return to the playfield screen (by clicking both buttons in the
"right" order). To make things easier, both buttons now return to the
playfield screen if the user is already on the corresponding screen.

4 years agoremoved unused function
Holger Schemel [Sun, 25 Oct 2020 19:17:27 +0000 (20:17 +0100)]
removed unused function

4 years agofixed bug with copying color key if surfaces have different format
Holger Schemel [Sun, 25 Oct 2020 18:53:25 +0000 (19:53 +0100)]
fixed bug with copying color key if surfaces have different format

This bug occurs when getting the color key of a surface and setting it
as the color key of another surface that has a surface format that
differs from that of the first surface.

This bug occurs in conjunction with the workaround for the color key
bug in SDL 2.0.12 which prevents transparency in graphics files with
color palette. (See commit 6b6c9eb2 for that workaround.)

Especially, this bug combination occurs on the high score screen of
Alan Bond's "Snake Bite" level set, which then only shows a headline
on a black screen. (This screen uses a trick to show each line on the
screen in a different color by using a background with different
colors and an inverted font with transparent characters and opaque
black surroundings, so missing transparency leads to "black text on
black background".)

4 years agochanged function to check if a surface has a color key
Holger Schemel [Sun, 25 Oct 2020 18:33:16 +0000 (19:33 +0100)]
changed function to check if a surface has a color key

4 years agoimproved inserting level sketch from clipboard to level editor
Holger Schemel [Sat, 24 Oct 2020 00:50:36 +0000 (02:50 +0200)]
improved inserting level sketch from clipboard to level editor

When pasting a level sketch to the level editor that has been copied
from the R'n'D forum, obsolete (historic) game elements will be mapped
to their current counterparts (just like it is done when loading an
old R'n'D level file). In addition, the corresponding game engine is
auto-detected (if possible) and set accordingly.

4 years agofixed bug with clicked text area gadgets marking level as changed
Holger Schemel [Thu, 22 Oct 2020 16:37:29 +0000 (18:37 +0200)]
fixed bug with clicked text area gadgets marking level as changed

This bugs happens when clicking into a text area gadgets, then
deactivating it again by clicking somewhere else. This marks the level
as changed, even though nothing was changed at all.

4 years agofixed bug with text area gadgets when pressing "Escape" key
Holger Schemel [Thu, 22 Oct 2020 16:31:50 +0000 (18:31 +0200)]
fixed bug with text area gadgets when pressing "Escape" key

This bugs happens when leaving a text area gadget by pressing the
"Escape" key. While this is allowed and does not cause the previous
text area content to be restored (as text area gadgets cannot be
left using the "Enter" key, and as there may be huge amount of text
being entered), the corresponding callback function is not called, so
the entered text is lost as soon as the gadget gets unmapped.

4 years agofixed bug with text input gadgets when pressing "Escape" key
Holger Schemel [Thu, 22 Oct 2020 16:25:15 +0000 (18:25 +0200)]
fixed bug with text input gadgets when pressing "Escape" key

This bugs happens when incrementing or decrementing a numeric text
input gadget by 5 or 10 (using middle or right mouse button) so that
it gets a value beyond the allowed range. Although this will be
corrected, the "last value" variable still has the bad value, which
gets restored when clicking that text input gadget and then leaving
it by pressing the "Escape" key.

4 years agore-added accidentally removed program icon
Holger Schemel [Mon, 12 Oct 2020 22:19:06 +0000 (00:19 +0200)]
re-added accidentally removed program icon

The program icon file was unintentionally removed with commit
679bbca8.

4 years agoversion number set to 4.2.0.4
Holger Schemel [Mon, 5 Oct 2020 20:49:05 +0000 (22:49 +0200)]
version number set to 4.2.0.4

4 years agoadded disabling overlay touch buttons when showing envelope 4.2.0.3
Holger Schemel [Sun, 4 Oct 2020 23:54:44 +0000 (01:54 +0200)]
added disabling overlay touch buttons when showing envelope

4 years agoadded check to prevent unnecessary SDL download for Android build
Holger Schemel [Sun, 4 Oct 2020 23:17:43 +0000 (01:17 +0200)]
added check to prevent unnecessary SDL download for Android build

4 years agoremoved unnecessary screen redraws when waiting for events to continue
Holger Schemel [Sun, 4 Oct 2020 23:12:51 +0000 (01:12 +0200)]
removed unnecessary screen redraws when waiting for events to continue

4 years agoadded waiting for press/release events when waiting for events to continue
Holger Schemel [Sun, 4 Oct 2020 23:10:05 +0000 (01:10 +0200)]
added waiting for press/release events when waiting for events to continue

4 years agoadded always clearing player action when waiting for events to continue
Holger Schemel [Sun, 4 Oct 2020 23:07:05 +0000 (01:07 +0200)]
added always clearing player action when waiting for events to continue

4 years agoadded clearing player action for non-game finger release events
Holger Schemel [Sun, 4 Oct 2020 22:59:34 +0000 (00:59 +0200)]
added clearing player action for non-game finger release events

4 years agoadded clearing virtual buttons when clearing player action
Holger Schemel [Sun, 4 Oct 2020 22:57:27 +0000 (00:57 +0200)]
added clearing virtual buttons when clearing player action

4 years agoadded clearing touch info when clearing player action
Holger Schemel [Sun, 4 Oct 2020 22:55:29 +0000 (00:55 +0200)]
added clearing touch info when clearing player action

4 years agomoved code for setting touch info for finger events to separate function
Holger Schemel [Sun, 4 Oct 2020 22:52:23 +0000 (00:52 +0200)]
moved code for setting touch info for finger events to separate function

4 years agoadded creating engine snapshots when using mouse click events
Holger Schemel [Sat, 3 Oct 2020 23:52:40 +0000 (01:52 +0200)]
added creating engine snapshots when using mouse click events

Before, when using mouse click events as CE change events, clicking on
a CE with mouse click event did not save a new game engine snapshot,
so undo/redo of CE mouse click events did not work.

With this change, undo/redo snapshots will also be created when using
mouse click events.

4 years agofixed single-step mode for mouse click events
Holger Schemel [Sat, 3 Oct 2020 22:56:42 +0000 (00:56 +0200)]
fixed single-step mode for mouse click events

Before, when using mouse click events as CE change events, pressing a
mouse button in the playfield when in single-step mode was immediately
followed by entering pause mode again.

With this change, pause mode is not entered as long as a mouse button
is pressed. (This already works similarly in the MM game engine.)

4 years agochanged compiling on Android to use optimization for release builds
Holger Schemel [Fri, 2 Oct 2020 13:09:57 +0000 (15:09 +0200)]
changed compiling on Android to use optimization for release builds

4 years agochanged gcc optimization level from "-O3" to "-O2" for releases
Holger Schemel [Fri, 2 Oct 2020 12:51:59 +0000 (14:51 +0200)]
changed gcc optimization level from "-O3" to "-O2" for releases

This change was done due to general recommendations and because of
some versions of gcc emitting lots of misleading warnings with "-O3"
related to pointers possibly being null in cases where they surely
cannot be null ("warning: argument 1 null where non-null expected"
for "strcmp(s1, s2)" in src/libgame/misc.c after explicitly checking
that s1 is not null), which makes it harder to recognize "real"
warnings when building the distribution packages.

4 years agofixed showing commit hash on version page of info screen for Android
Holger Schemel [Thu, 1 Oct 2020 22:37:24 +0000 (00:37 +0200)]
fixed showing commit hash on version page of info screen for Android

This is needed when building for Android and was missing in commit
438a173a.

4 years agofixed potential crash bug when loading custom artwork
Holger Schemel [Thu, 1 Oct 2020 19:04:15 +0000 (21:04 +0200)]
fixed potential crash bug when loading custom artwork

This patch fixes a memory corruption bug that potentially leads to
program crashes when loading custom artwork (or level sets with custom
artwork) by accessing a potentially invalid bitmap pointer (used for
the global border bitmap).

4 years agofixed single-step mode for wrap-around levels in EM engine
Holger Schemel [Tue, 29 Sep 2020 19:35:09 +0000 (21:35 +0200)]
fixed single-step mode for wrap-around levels in EM engine

This fixes a graphical bug when wrapping around in single-step mode by
drawing wrap-around animation before going to single step pause mode.

4 years agoadded full compatibility for wrap-around levels in EM engine
Holger Schemel [Fri, 25 Sep 2020 00:08:46 +0000 (02:08 +0200)]
added full compatibility for wrap-around levels in EM engine

The previous support for wrap-around levels in the EM game engine was
some sort of "idealized" implementation that lets the player wrap
around by moving horizontally on the same vertical level position
forever (which results in truely infinite wrap-around levels).

This may be nice and perfect, but has the disadvantage that the
original Emerald Mine Club engine did not work that way, making
existing EMC levels unplayable and/or unsolvable. (Examples are
level 80 of "Ruppelmine 3" or level 34 of "The Exception 2".)

Instead, the original game engine caused the player to step one
vertical position up or down when leaving the playfield at the left
or right border, which is required by the mentioned example levels.

This correction adds a flag that is set by default to use the original
behaviour.

4 years agofixed support for wrap-around levels in EM engine
Holger Schemel [Thu, 24 Sep 2020 23:59:21 +0000 (01:59 +0200)]
fixed support for wrap-around levels in EM engine

Fixed initializing wrap-around levels in the EM game engine; this was
done when loading the cave, but using a run-time flag, which is not
set until starting the game.

This is a regression bug of commit 04c0f302.

4 years agoadded showing commit hash on version page of info screen
Holger Schemel [Sat, 19 Sep 2020 01:05:28 +0000 (03:05 +0200)]
added showing commit hash on version page of info screen

4 years agoenabled init time debugging messages when compiled with debug code
Holger Schemel [Sat, 19 Sep 2020 00:07:36 +0000 (02:07 +0200)]
enabled init time debugging messages when compiled with debug code

4 years agoadded multi-part line debug logging functions
Holger Schemel [Fri, 18 Sep 2020 23:58:47 +0000 (01:58 +0200)]
added multi-part line debug logging functions

4 years agoremoved unused functions to set/get internal error messages
Holger Schemel [Fri, 18 Sep 2020 23:06:43 +0000 (01:06 +0200)]
removed unused functions to set/get internal error messages

4 years agochanged non-fatal error handling to use new error functions
Holger Schemel [Fri, 18 Sep 2020 23:00:23 +0000 (01:00 +0200)]
changed non-fatal error handling to use new error functions

4 years agochanged fatal error handling to use new error functions
Holger Schemel [Fri, 18 Sep 2020 22:18:07 +0000 (00:18 +0200)]
changed fatal error handling to use new error functions

4 years agomoved variables for network server thread to network structure
Holger Schemel [Fri, 18 Sep 2020 17:18:29 +0000 (19:18 +0200)]
moved variables for network server thread to network structure

4 years agorenamed function
Holger Schemel [Fri, 18 Sep 2020 16:34:07 +0000 (18:34 +0200)]
renamed function

4 years agochanged check for limiting debug output to substring match
Holger Schemel [Thu, 17 Sep 2020 18:30:14 +0000 (20:30 +0200)]
changed check for limiting debug output to substring match

4 years agomoved checks for debug mode to main logging function
Holger Schemel [Thu, 17 Sep 2020 18:10:16 +0000 (20:10 +0200)]
moved checks for debug mode to main logging function

4 years agochanged simple "printf()" debug output to new debug log function
Holger Schemel [Wed, 16 Sep 2020 22:53:03 +0000 (00:53 +0200)]
changed simple "printf()" debug output to new debug log function

4 years agochanged printing game tile information to console and log file
Holger Schemel [Wed, 16 Sep 2020 22:27:26 +0000 (00:27 +0200)]
changed printing game tile information to console and log file

4 years agochanged printing level editor brush data to console and log file
Holger Schemel [Wed, 16 Sep 2020 22:10:47 +0000 (00:10 +0200)]
changed printing level editor brush data to console and log file

4 years agofixed text event handling for newer SDL versions (again)
Holger Schemel [Wed, 16 Sep 2020 21:52:56 +0000 (23:52 +0200)]
fixed text event handling for newer SDL versions (again)

This fixes another regression of commit 5a53ae0c888ee049 and
35da46e4 that still causes incorrect key/text event handling.

The problem occurs when entering uppercase letters, which creates two
key events (pressed and released) with the lowercase letter (while
modifier state indicates that the Shift key is active), plus one text
event with the uppercase letter. The previous logic caused both cases
to be handled as a new key event, effectively handling that letter
twice (one time in lowercase, and another time in uppercase).

An additional check for text input style modifier keys prevents the
lowercase variant of the case described above not to be handled.

4 years agochanged simple "printf()" debug output to new debug log function
Holger Schemel [Wed, 16 Sep 2020 21:28:23 +0000 (23:28 +0200)]
changed simple "printf()" debug output to new debug log function

4 years agoremoved checking for debug mode when using debug logging
Holger Schemel [Wed, 16 Sep 2020 16:46:33 +0000 (18:46 +0200)]
removed checking for debug mode when using debug logging

4 years agofixed debug logging to omit output if debug mode disabled
Holger Schemel [Wed, 16 Sep 2020 16:45:34 +0000 (18:45 +0200)]
fixed debug logging to omit output if debug mode disabled

4 years agoadded setting Android log level for new logging functions
Holger Schemel [Wed, 16 Sep 2020 16:37:25 +0000 (18:37 +0200)]
added setting Android log level for new logging functions

4 years agochanged warnings and debug output to use new generic logging functions
Holger Schemel [Wed, 16 Sep 2020 16:32:57 +0000 (18:32 +0200)]
changed warnings and debug output to use new generic logging functions

4 years agoadded option to limit debug output to specific debug mode
Holger Schemel [Wed, 16 Sep 2020 14:33:22 +0000 (16:33 +0200)]
added option to limit debug output to specific debug mode

4 years agoadded generic logging functions (not used yet)
Holger Schemel [Wed, 16 Sep 2020 14:17:15 +0000 (16:17 +0200)]
added generic logging functions (not used yet)

4 years agofixed potentially invalid string pointers when parsing options
Holger Schemel [Wed, 16 Sep 2020 13:21:51 +0000 (15:21 +0200)]
fixed potentially invalid string pointers when parsing options

When using command line options like "--option=argument" instead of
"--option argument" (which is especially needed if arguments are
optional), this resulted in invalid string pointers before this fix.

4 years agofixed regression bug introduced by changes for "autofix" command
Holger Schemel [Tue, 15 Sep 2020 18:04:33 +0000 (20:04 +0200)]
fixed regression bug introduced by changes for "autofix" command

This fixes program crashes that may happen when using automatic tape
replay with visible feedback (like "autoplay", "autowarp" etc.).

This is a regression of commit e534f3cf.

4 years agoimproved startup speed by optimizing parsing of parameter values
Holger Schemel [Tue, 15 Sep 2020 09:07:46 +0000 (11:07 +0200)]
improved startup speed by optimizing parsing of parameter values

Commit bd5cd062 (that introduced event actions for global animations)
also added a nasty performance bottleneck due to complexity of parsing
event action parameters, which slowed down program startup phase quite
significantly. However, in most cases these parameters just stay at
their default values, so checking for that default value first results
in massively speeding up this part of the startup phase.

4 years agoadded ability to undo (restore) the previously recorded tape
Holger Schemel [Tue, 15 Sep 2020 06:40:14 +0000 (08:40 +0200)]
added ability to undo (restore) the previously recorded tape

When the in-memory tape is erased with more than a minimum length of
playing time (currently set to 20 seconds), an internal copy of the
tape is created to be able to restore it. Just type ":undo-tape" or
":ut" to undo (restore) the last tape.

If the in-memory tape to be erased is shorter than the minimum length,
an undo tape is created from it if it is longer than the currently
stored undo tape.

4 years agofixed key shortcut to start/end game (broken by regression)
Holger Schemel [Mon, 14 Sep 2020 19:42:59 +0000 (21:42 +0200)]
fixed key shortcut to start/end game (broken by regression)

This change fixes a regression of commit 888ee049 (and 35da46e4) that
causes problems when handling text input in situations unrelated to
the Android screen keyboard, like entering key shortcuts to start and
end a game on non-Android platforms.

This commit fixes a bug that results in restarting the game when the
player has died and the "space" key (or other configured key) was used
to return to the main menu (or level editor).

4 years agomoved code for fixing single-player tapes to separate function
Holger Schemel [Mon, 14 Sep 2020 15:16:00 +0000 (17:16 +0200)]
moved code for fixing single-player tapes to separate function

4 years agominor improvement of function to check for string suffix
Holger Schemel [Mon, 14 Sep 2020 15:00:45 +0000 (17:00 +0200)]
minor improvement of function to check for string suffix

4 years agoremoved duplicate function to check for string suffix
Holger Schemel [Mon, 14 Sep 2020 14:56:43 +0000 (16:56 +0200)]
removed duplicate function to check for string suffix

4 years agofixed output to logfile for "autofix" command
Holger Schemel [Mon, 14 Sep 2020 08:38:21 +0000 (10:38 +0200)]
fixed output to logfile for "autofix" command

Thanks to Bela Lubkin for this fix.

4 years agoadded command to automatically test tapes and try to fix if broken
Holger Schemel [Fri, 11 Sep 2020 17:17:57 +0000 (19:17 +0200)]
added command to automatically test tapes and try to fix if broken

This adds a new command "autofix" that can be used to test and try to
fix existing tapes (by setting a property bit in the tape header).

The only patch currently available is "em_random_bug" that sets the
property bit for using the 64-bit random value workaround in the EM
game engine (see commit 1006b2db for details).

This command is an improved variant for the command "patch tapes"
introduced with commit 7c1d6252.

Thanks to Bela Lubkin for convincing me that this command is in fact a
good idea! :-)

4 years agosmall change of console output when auto-playing tapes
Holger Schemel [Fri, 11 Sep 2020 13:13:10 +0000 (15:13 +0200)]
small change of console output when auto-playing tapes

4 years agorenamed function
Holger Schemel [Fri, 11 Sep 2020 13:07:52 +0000 (15:07 +0200)]
renamed function

4 years agorenamed playfield variable
Holger Schemel [Fri, 11 Sep 2020 10:43:52 +0000 (12:43 +0200)]
renamed playfield variable

4 years agorenamed some functions
Holger Schemel [Fri, 11 Sep 2020 09:42:31 +0000 (11:42 +0200)]
renamed some functions

4 years agoadded command to automatically patch tapes for the "EM random bug"
Holger Schemel [Thu, 10 Sep 2020 18:51:27 +0000 (20:51 +0200)]
added command to automatically patch tapes for the "EM random bug"

This adds a command line option that can be used to patch existing
tapes (by setting or unsetting property bits in the tape header).

The only patch mode currently available is "em_random_bug" that sets
the property bit for using the 64-bit random value workaround in the
EM game engine (see commit 1006b2db for details).

When using "help" for "MODE", all available patch modes will be shown.

4 years agosplit function to save tape
Holger Schemel [Thu, 10 Sep 2020 18:35:15 +0000 (20:35 +0200)]
split function to save tape

4 years agoadded handling 64-bit random value bug with old tapes in EM engine
Holger Schemel [Thu, 10 Sep 2020 18:19:20 +0000 (20:19 +0200)]
added handling 64-bit random value bug with old tapes in EM engine

See commits 61c3da0 (incomplete fix) and c92edfe9 (final fix) for
details about this problem that was introduced (by a partial fix) in
version 3.3.1.0 and finally fixed in version 4.0.1.2, which resulted
in many tapes recorded between these versions with the EM game engine
to be broken.

To fix these broken tapes, it is required to set a new property bit in
all existing tape files that are affected by this bug.

The functionality to automatically patch these tapes will be added as
a new command line option.

4 years agoadded support for tape property bits (not used yet)
Holger Schemel [Thu, 10 Sep 2020 18:09:55 +0000 (20:09 +0200)]
added support for tape property bits (not used yet)