rocksndiamonds.git
13 months agochanged sound effect "game.losing" to be undefined by default 4.3.5.2
Holger Schemel [Sun, 12 Mar 2023 20:40:48 +0000 (21:40 +0100)]
changed sound effect "game.losing" to be undefined by default

This sound effect (evil laughter after the player has died) was not
played anymore due to a bug (fixed with commit ca4a7685) for about
twenty years and is deactivated by default now as it was not used in
a lot of custom level sets anymore.

13 months agoadded game over messages for Deflektor style levels in MM game engine
Holger Schemel [Sun, 12 Mar 2023 20:18:03 +0000 (21:18 +0100)]
added game over messages for Deflektor style levels in MM game engine

13 months agomoved handling game over condition from MM game engine to main engine
Holger Schemel [Sun, 12 Mar 2023 14:55:49 +0000 (15:55 +0100)]
moved handling game over condition from MM game engine to main engine

13 months agomoved code to create restart message to separate function
Holger Schemel [Sun, 12 Mar 2023 14:52:50 +0000 (15:52 +0100)]
moved code to create restart message to separate function

13 months agoadded variable to store if level uses McDuffin in MM game engine
Holger Schemel [Sun, 12 Mar 2023 14:23:27 +0000 (15:23 +0100)]
added variable to store if level uses McDuffin in MM game engine

13 months agoadded sound loop debug output (deactivated)
Holger Schemel [Sun, 12 Mar 2023 13:00:54 +0000 (14:00 +0100)]
added sound loop debug output (deactivated)

13 months agofixed loop mode for some sound effects
Holger Schemel [Sun, 12 Mar 2023 12:58:13 +0000 (13:58 +0100)]
fixed loop mode for some sound effects

13 months agofixed closing doors simultaneously when aborting restart from level editor
Holger Schemel [Sun, 12 Mar 2023 12:55:14 +0000 (13:55 +0100)]
fixed closing doors simultaneously when aborting restart from level editor

13 months agoadded short delay before playing "game.losing" sound effect
Holger Schemel [Sun, 12 Mar 2023 12:38:54 +0000 (13:38 +0100)]
added short delay before playing "game.losing" sound effect

13 months agoadded playing "game.losing" sound effect for all game engines
Holger Schemel [Sun, 12 Mar 2023 12:31:30 +0000 (13:31 +0100)]
added playing "game.losing" sound effect for all game engines

13 months agofixed bug with playing two global game sounds as game element sounds
Holger Schemel [Sun, 12 Mar 2023 12:17:40 +0000 (13:17 +0100)]
fixed bug with playing two global game sounds as game element sounds

The two game sounds "game.losing" and "game.sokoban_solving" were
played as playfield position related, game element specific sounds
before (which especially caused problems with "game.losing" being
defined as a loop sound, but which was stopped after a very short
time, because loop sounds have to be regularly re-initiated to keep
playing, which was not the case here).

As a result, the sound effect "game.losing" (an evil laughter after
the player has died) could effectively not be heard anymore after a
game was lost for many years.

13 months agofixed bug with scaled down background bitmaps
Holger Schemel [Sat, 11 Mar 2023 11:23:41 +0000 (12:23 +0100)]
fixed bug with scaled down background bitmaps

This change makes sure to always use the original sized bitmaps for
backgrounds, instead of the "standard size" bitmap size, which can
indeed be scaled down if the same image file was used not only for
a background bitmap, but also for a game element, but with a tile
size larger than 32x32 (which results in the image being scaled down
to also get a 32x32 tile size). When using the same image for
background graphics, the unmodified original bitmap size must be used
instead of the "normalized" or "standard" (scaled down) bitmap size.

13 months agoadded dirty workaround to erase text if input gadget font has draw offset
Holger Schemel [Wed, 8 Mar 2023 20:39:56 +0000 (21:39 +0100)]
added dirty workaround to erase text if input gadget font has draw offset

13 months agoremoved disabling music if no unconfigured music found
Holger Schemel [Wed, 8 Mar 2023 20:13:46 +0000 (21:13 +0100)]
removed disabling music if no unconfigured music found

13 months agoadded initializing pointer
Holger Schemel [Wed, 8 Mar 2023 20:12:58 +0000 (21:12 +0100)]
added initializing pointer

13 months agoadded checking pointer
Holger Schemel [Wed, 8 Mar 2023 19:56:54 +0000 (20:56 +0100)]
added checking pointer

13 months agofixed reading music from directory if music configured for all levels
Holger Schemel [Mon, 6 Mar 2023 23:10:11 +0000 (00:10 +0100)]
fixed reading music from directory if music configured for all levels

When collecting music files that may have music info available for the
music info screen, do not add music files from music directory if game
music is configured for all levels of a level set.

This fixes a bug with showing music info for music files that is never
played in the game, which happens if there is no "unconfigured" music
in a custom music directory (because all contained music is configured
in the custom music configuration), so the program falls back to the
default music directory (which contains unconfigured music files which
can be played as in-game music, but which is never used in this case).

13 months agofixed returning from function with incomplete list pointers
Holger Schemel [Mon, 6 Mar 2023 23:04:23 +0000 (00:04 +0100)]
fixed returning from function with incomplete list pointers

13 months agofixed bug with wind not working in R'n'D levels using EM engine
Holger Schemel [Sat, 4 Mar 2023 11:27:26 +0000 (12:27 +0100)]
fixed bug with wind not working in R'n'D levels using EM engine

13 months agoincreased number of level sets in the "last played" menu to 100
Holger Schemel [Wed, 1 Mar 2023 17:08:22 +0000 (18:08 +0100)]
increased number of level sets in the "last played" menu to 100

13 months agoadded storing if last level set was selected from "last played" menu
Holger Schemel [Wed, 1 Mar 2023 15:55:42 +0000 (16:55 +0100)]
added storing if last level set was selected from "last played" menu

13 months agoadded functions to check/force using "last played level sets" sub-menu
Holger Schemel [Wed, 1 Mar 2023 14:34:28 +0000 (15:34 +0100)]
added functions to check/force using "last played level sets" sub-menu

13 months agofixed redrawing element corners left and right from laser in MM engine
Holger Schemel [Tue, 28 Feb 2023 19:12:46 +0000 (20:12 +0100)]
fixed redrawing element corners left and right from laser in MM engine

13 months agofixed redrawing redefined graphics for steel or wooden grid in MM engine
Holger Schemel [Tue, 28 Feb 2023 19:09:51 +0000 (20:09 +0100)]
fixed redrawing redefined graphics for steel or wooden grid in MM engine

14 months agofixed bug with rotating elements twice in editor with pressed Shift key
Holger Schemel [Fri, 24 Feb 2023 20:22:57 +0000 (21:22 +0100)]
fixed bug with rotating elements twice in editor with pressed Shift key

14 months agofixed rotating MM game elements in editor with pressed Shift key
Holger Schemel [Fri, 24 Feb 2023 19:51:53 +0000 (20:51 +0100)]
fixed rotating MM game elements in editor with pressed Shift key

When holding the Shift key pressed, MM style rotatable game elements
can be rotated on the playfield (instead of drawing with the element
selected for this mouse button). However, if the drawing element is
an MM style wall, this element is placed on the playfield instead of
rotating the existing element on the playfield.

This usually happened when editing a level using the MM game engine
and trying to rotate an existing element to the right using the right
mouse button, as the default drawing element for the right mouse
button is the wooden MM style wall.

This change fixes this problem, so all three mouse button can now
be used to rotate elements on the playfield, regardless of current
drawing element.

14 months agofixed asking to play again on player input after tape with game over
Holger Schemel [Fri, 24 Feb 2023 19:22:29 +0000 (20:22 +0100)]
fixed asking to play again on player input after tape with game over

14 months agofixed asking to play again in case of tape replaying in MM engine
Holger Schemel [Fri, 24 Feb 2023 19:19:14 +0000 (20:19 +0100)]
fixed asking to play again in case of tape replaying in MM engine

14 months agoreplaced expressions using preprocessor definitions
Holger Schemel [Fri, 24 Feb 2023 17:32:09 +0000 (18:32 +0100)]
replaced expressions using preprocessor definitions

14 months agoimproved handling laser on two diagonally adjacent elements even more
Holger Schemel [Fri, 24 Feb 2023 17:10:22 +0000 (18:10 +0100)]
improved handling laser on two diagonally adjacent elements even more

This also correctly handles the case of the laser hitting the inner
corner of two diagonally adjacent game elements with a third game
element behind these two elements (in the direction of the laser).

It also makes sure that no "inner corners" of diagonally adjacent
mini tiles (MM wall tiles) are handled, which are not interesting
here (as they are always the same type of wall), but only diagonal
corners between full tile positions.

This change also makes sure that randomly selecting which element to
handle is only done if really necessary (to not break existing tapes
by additional calls to the random number generator).

14 months agoimproved handling laser on two diagonally adjacent elements in MM engine
Holger Schemel [Fri, 24 Feb 2023 00:08:56 +0000 (01:08 +0100)]
improved handling laser on two diagonally adjacent elements in MM engine

14 months agoadded option to explode gray ball instead of melting for MM engine
Holger Schemel [Thu, 23 Feb 2023 18:06:59 +0000 (19:06 +0100)]
added option to explode gray ball instead of melting for MM engine

14 months agochanged code for more generic explosion for MM engine
Holger Schemel [Thu, 23 Feb 2023 18:01:21 +0000 (19:01 +0100)]
changed code for more generic explosion for MM engine

14 months agochanged text in editor for gray ball element
Holger Schemel [Thu, 23 Feb 2023 17:21:52 +0000 (18:21 +0100)]
changed text in editor for gray ball element

14 months agoadded resetting animation frame for active game elements in MM engine
Holger Schemel [Thu, 23 Feb 2023 16:15:36 +0000 (17:15 +0100)]
added resetting animation frame for active game elements in MM engine

14 months agorenamed functions
Holger Schemel [Thu, 23 Feb 2023 15:47:35 +0000 (16:47 +0100)]
renamed functions

14 months agorenamed preprocessor constants for wall elements in MM engine
Holger Schemel [Thu, 23 Feb 2023 15:18:10 +0000 (16:18 +0100)]
renamed preprocessor constants for wall elements in MM engine

14 months agoremoved unused code
Holger Schemel [Thu, 23 Feb 2023 12:57:21 +0000 (13:57 +0100)]
removed unused code

14 months agoadded declaring static functions as static
Holger Schemel [Thu, 23 Feb 2023 12:36:55 +0000 (13:36 +0100)]
added declaring static functions as static

14 months agoremoved unused code
Holger Schemel [Thu, 23 Feb 2023 12:31:14 +0000 (13:31 +0100)]
removed unused code

14 months agorenamed function for game element in MM engine
Holger Schemel [Thu, 23 Feb 2023 11:59:36 +0000 (12:59 +0100)]
renamed function for game element in MM engine

14 months agorenamed preprocessor constant for game element in MM engine
Holger Schemel [Thu, 23 Feb 2023 11:58:05 +0000 (12:58 +0100)]
renamed preprocessor constant for game element in MM engine

14 months agoadded active animation for gray ball in MM engine
Holger Schemel [Thu, 23 Feb 2023 11:52:30 +0000 (12:52 +0100)]
added active animation for gray ball in MM engine

14 months agomoved code to separate function
Holger Schemel [Wed, 22 Feb 2023 18:05:19 +0000 (19:05 +0100)]
moved code to separate function

14 months agofixed using wall tiles as gray ball content elements in MM engine
Holger Schemel [Wed, 22 Feb 2023 17:51:19 +0000 (18:51 +0100)]
fixed using wall tiles as gray ball content elements in MM engine

14 months agoversion number set to 4.3.5.2
Holger Schemel [Mon, 20 Feb 2023 21:49:58 +0000 (22:49 +0100)]
version number set to 4.3.5.2

14 months agofixed bug that could cause an endless loop (freeze) in the MM engine 4.3.5.1
Holger Schemel [Sun, 19 Feb 2023 00:30:03 +0000 (01:30 +0100)]
fixed bug that could cause an endless loop (freeze) in the MM engine

This is a workaround for a regression bug of commit f8aec447 (that
fixed overloading the laser due to duplicated tiles in damage list).

The problem that could cause an endless loop already existed before
the above commit, but without that commit, scanning the laser was
stopped by the damage list completely filling up, stopping the loop.
The above commit prevents adding the same tile again and again to the
damage list, therefore not stopping the endless loop anymore.

This commit should prevent the endless loop from happening at all.

The problem (and how to reproduce it) was described by Eizzoux in the
following post in the R'n'D web forum:
https://www.artsoft.org/forum/viewtopic.php?p=18214

14 months agoadded unmapping (invisible) scrollbar gadgets on info sub-screens
Holger Schemel [Sat, 18 Feb 2023 16:55:08 +0000 (17:55 +0100)]
added unmapping (invisible) scrollbar gadgets on info sub-screens

Scrollbars and scrollbar up and down buttons were always invisible on
info sub-screens, but could be made visible by blindly clicking on
them if the game window was customized to a small enough height that
the main info screen had a scrollbar and scroll buttons (which were
then not removed again on the info sub-screens, which generally never
have scrollbars and scroll buttons).

14 months agoadded initializing gray ball content elements in MM engine
Holger Schemel [Sat, 18 Feb 2023 16:18:10 +0000 (17:18 +0100)]
added initializing gray ball content elements in MM engine

14 months agoimproved forced restart of global animations when restarting game
Holger Schemel [Sat, 18 Feb 2023 15:53:25 +0000 (16:53 +0100)]
improved forced restart of global animations when restarting game

14 months agoadded forced restart of global animations when restarting game
Holger Schemel [Sat, 18 Feb 2023 12:00:49 +0000 (13:00 +0100)]
added forced restart of global animations when restarting game

14 months agoadded function to force restarting global animations
Holger Schemel [Sat, 18 Feb 2023 11:59:15 +0000 (12:59 +0100)]
added function to force restarting global animations

14 months agoadded support for clickable stacked global animations
Holger Schemel [Sat, 18 Feb 2023 09:42:00 +0000 (10:42 +0100)]
added support for clickable stacked global animations

14 months agofixed unneccessarily complex code
Holger Schemel [Sat, 18 Feb 2023 09:15:56 +0000 (10:15 +0100)]
fixed unneccessarily complex code

14 months agofixed explosion graphics for bomb and McDuffin for MM engine
Holger Schemel [Sat, 18 Feb 2023 09:07:43 +0000 (10:07 +0100)]
fixed explosion graphics for bomb and McDuffin for MM engine

14 months agoadded option to rotate newly created gray ball content for MM engine
Holger Schemel [Fri, 17 Feb 2023 20:15:00 +0000 (21:15 +0100)]
added option to rotate newly created gray ball content for MM engine

14 months agofixed drawing laser when opening gray balls in MM engine
Holger Schemel [Fri, 17 Feb 2023 19:50:55 +0000 (20:50 +0100)]
fixed drawing laser when opening gray balls in MM engine

14 months agofixed bug with gray ball creating wrong game elements in MM engine
Holger Schemel [Fri, 17 Feb 2023 19:33:12 +0000 (20:33 +0100)]
fixed bug with gray ball creating wrong game elements in MM engine

14 months agominor whitespace change
Holger Schemel [Fri, 17 Feb 2023 19:26:39 +0000 (20:26 +0100)]
minor whitespace change

14 months agoadded cropping text area gadgets that do not fit to the current viewport
Holger Schemel [Fri, 17 Feb 2023 19:22:41 +0000 (20:22 +0100)]
added cropping text area gadgets that do not fit to the current viewport

14 months agoadded variables for gadget values when drawing text area gadgets
Holger Schemel [Fri, 17 Feb 2023 19:14:34 +0000 (20:14 +0100)]
added variables for gadget values when drawing text area gadgets

14 months agoadded functions for setting and getting screen borders for gadgets
Holger Schemel [Fri, 17 Feb 2023 19:02:53 +0000 (20:02 +0100)]
added functions for setting and getting screen borders for gadgets

14 months agofixed redraw bug with closed text envelope in MM engine
Holger Schemel [Fri, 17 Feb 2023 19:01:58 +0000 (20:01 +0100)]
fixed redraw bug with closed text envelope in MM engine

14 months agoversion number set to 4.3.5.1
Holger Schemel [Fri, 17 Feb 2023 19:01:35 +0000 (20:01 +0100)]
version number set to 4.3.5.1

14 months agoversion number set to 4.3.5.0 4.3.5.0
Holger Schemel [Tue, 14 Feb 2023 20:24:05 +0000 (21:24 +0100)]
version number set to 4.3.5.0

14 months agoswapped active/pressed logic for level set info button graphics
Holger Schemel [Tue, 14 Feb 2023 20:19:37 +0000 (21:19 +0100)]
swapped active/pressed logic for level set info button graphics

14 months agoupdated title text and border graphic to show current year
Holger Schemel [Mon, 13 Feb 2023 22:55:49 +0000 (23:55 +0100)]
updated title text and border graphic to show current year

14 months agoadded setup file options for debug mode
Holger Schemel [Sat, 11 Feb 2023 11:32:57 +0000 (12:32 +0100)]
added setup file options for debug mode

14 months agoadded preprocessor constant for undefined string parameter
Holger Schemel [Sat, 11 Feb 2023 11:15:34 +0000 (12:15 +0100)]
added preprocessor constant for undefined string parameter

14 months agomoved code to different function where it belongs to
Holger Schemel [Wed, 8 Feb 2023 22:19:09 +0000 (23:19 +0100)]
moved code to different function where it belongs to

14 months agoadded support for stacked global animations
Holger Schemel [Wed, 8 Feb 2023 21:49:12 +0000 (22:49 +0100)]
added support for stacked global animations

This extension of global animations adds "stacked animations" that are
created by "stacking" the same global animation multiple times, either
horizontally, vertically, or both, with additional options to use some
empty space between two adjacent stacked animations, as follows:

global.anim_X.stacked_xfactor: <x-factor>
global.anim_X.stacked_yfactor: <y-factor>
global.anim_X.stacked_xoffset: <x-offset>
global.anim_X.stacked_yoffset: <y-offset>

This would stack global animation X <x-factor> times horizontally and
<y-factor> times vertically, while adding empty space between stacked
animations of <x-offset> pixels horizontally and <y-offset> vertically.

14 months agomoved code to separate function
Holger Schemel [Wed, 8 Feb 2023 19:53:07 +0000 (20:53 +0100)]
moved code to separate function

14 months agorenamed program log file to use program basename
Holger Schemel [Wed, 8 Feb 2023 12:47:15 +0000 (13:47 +0100)]
renamed program log file to use program basename

14 months agochanged logging to write to one single log file
Holger Schemel [Wed, 8 Feb 2023 12:27:30 +0000 (13:27 +0100)]
changed logging to write to one single log file

14 months agorenamed variable
Holger Schemel [Wed, 8 Feb 2023 12:06:38 +0000 (13:06 +0100)]
renamed variable

14 months agoadded internal variable for program basename
Holger Schemel [Wed, 8 Feb 2023 12:04:58 +0000 (13:04 +0100)]
added internal variable for program basename

14 months agoremoved unused variable
Holger Schemel [Wed, 8 Feb 2023 12:00:22 +0000 (13:00 +0100)]
removed unused variable

14 months agorenamed variable
Holger Schemel [Wed, 8 Feb 2023 11:55:23 +0000 (12:55 +0100)]
renamed variable

14 months agoremoved deriving Unix user data directory from program config file
Holger Schemel [Wed, 8 Feb 2023 11:54:28 +0000 (12:54 +0100)]
removed deriving Unix user data directory from program config file

14 months agoadded graphic definition for activated state for level set info button
Holger Schemel [Tue, 7 Feb 2023 23:52:27 +0000 (00:52 +0100)]
added graphic definition for activated state for level set info button

14 months agoadded support for new check button for screen menu buttons
Holger Schemel [Tue, 7 Feb 2023 23:45:27 +0000 (00:45 +0100)]
added support for new check button for screen menu buttons

14 months agoadded check button gadget that toggles only after releasing
Holger Schemel [Tue, 7 Feb 2023 23:37:19 +0000 (00:37 +0100)]
added check button gadget that toggles only after releasing

14 months agoadded debug output showing which font token is used for which screen text
Holger Schemel [Tue, 7 Feb 2023 14:07:35 +0000 (15:07 +0100)]
added debug output showing which font token is used for which screen text

14 months agoadded looking for game music directory by checking directory files
Holger Schemel [Sun, 5 Feb 2023 17:55:51 +0000 (18:55 +0100)]
added looking for game music directory by checking directory files

Before, the first matching music directory was used -- regardless of
its contents. This means that it may indeed contain game music files
(that are not configured for any other purpose), or that it is a level
specific music directory that only contains some additional music
configured for a certain purpose, but no game music files, in which
case no game music files were found and used at all (as the general
custom music directory with all the game music would not be used in
this case).

This change adds looking for the first matching music directory that
really contains game music (not configured for other purposes).

14 months agofixed bug with not scaling images despite using option ".scale_up_factor"
Holger Schemel [Sun, 5 Feb 2023 10:58:31 +0000 (11:58 +0100)]
fixed bug with not scaling images despite using option ".scale_up_factor"

14 months agoadded description file for envelope elements for MM engine
Holger Schemel [Wed, 1 Feb 2023 21:56:00 +0000 (22:56 +0100)]
added description file for envelope elements for MM engine

14 months agoadded support for x/y/width/height parameters for border/background images
Holger Schemel [Tue, 31 Jan 2023 23:42:10 +0000 (00:42 +0100)]
added support for x/y/width/height parameters for border/background images

14 months agoadded support for ".draw_masked" when using title screen with background
Holger Schemel [Tue, 31 Jan 2023 19:06:32 +0000 (20:06 +0100)]
added support for ".draw_masked" when using title screen with background

14 months agoadded support for text envelope elements to the MM engine
Holger Schemel [Sun, 29 Jan 2023 13:55:18 +0000 (14:55 +0100)]
added support for text envelope elements to the MM engine

14 months agofixed overloading laser due to duplicated tiles in damage list in MM engine
Holger Schemel [Sat, 28 Jan 2023 13:29:08 +0000 (14:29 +0100)]
fixed overloading laser due to duplicated tiles in damage list in MM engine

Repeatedly adding tiles to the damage list that have already been
added before for the same laser edge can cause filling up the list
very quickly, causing the laser to overload as a result.

14 months agofixed bugs with missing re-initializations of delay counters in MM engine
Holger Schemel [Sat, 28 Jan 2023 13:19:07 +0000 (14:19 +0100)]
fixed bugs with missing re-initializations of delay counters in MM engine

14 months agoadded pausing tape after replaying not only for warp mode (again)
Holger Schemel [Sat, 28 Jan 2023 12:41:35 +0000 (13:41 +0100)]
added pausing tape after replaying not only for warp mode (again)

This adds the previously reverted change of commit 31df2f98 again,
but should fix the problems that it caused when unpausing the tape
after replaying until the end of the tape and entering pause mode.

14 months agofixed pausing tape after replaying
Holger Schemel [Sat, 28 Jan 2023 12:23:49 +0000 (13:23 +0100)]
fixed pausing tape after replaying

This fixes a problem with automatically pausing tape at the end of a
tape without "auto-record after replay" being activated, which leads
to a pause mode that cannot be left besides pressing "stop tape".

This change reverts commit 31df2f98.

14 months agoremoved workaround for playing some older tapes for MM engine
Holger Schemel [Sat, 28 Jan 2023 10:27:01 +0000 (11:27 +0100)]
removed workaround for playing some older tapes for MM engine

This removes a workaround that added compatibility code for replaying
old tapes which used the game engine's random number generator for
drawing game elements, which generally should not happen.

This affects the tapes for levels 033 and 048 of "classic_mindbender",
which have been re-recorded with the above change.

This change reverts commit 8b514628.

15 months agofixed regression bug with growing steel wall turning into normal wall
Holger Schemel [Mon, 23 Jan 2023 22:39:09 +0000 (23:39 +0100)]
fixed regression bug with growing steel wall turning into normal wall

This fixes a very nasty bug in commit 4b754efd that caused growing
steel wall turning into normal wall instead of steel wall (which is
not immediately visible as growing wall animations use steel wall).

15 months agofixed bug with re-scanning laser when rotating teleporter in MM engine
Holger Schemel [Sun, 22 Jan 2023 23:27:36 +0000 (00:27 +0100)]
fixed bug with re-scanning laser when rotating teleporter in MM engine

The "fix" in commit 1b2237c9 fixed some old problems with handling
teleporter elements, but caused new problems with overheating which
should not happen.

This change seems to fix both cases.

15 months agofixed playing older tapes for MM engine
Holger Schemel [Sun, 22 Jan 2023 10:40:28 +0000 (11:40 +0100)]
fixed playing older tapes for MM engine

15 months agoimproved performance of game actions loop in MM engine
Holger Schemel [Sat, 21 Jan 2023 12:32:29 +0000 (13:32 +0100)]
improved performance of game actions loop in MM engine

15 months agofixed crash bug when running in headless mode
Holger Schemel [Thu, 19 Jan 2023 08:08:22 +0000 (09:08 +0100)]
fixed crash bug when running in headless mode

15 months agofixed bug with leaving steel grid after passing it in an irregular way
Holger Schemel [Wed, 18 Jan 2023 18:00:33 +0000 (19:00 +0100)]
fixed bug with leaving steel grid after passing it in an irregular way

When using DF style reflecting steel walls together with MM style
fixed steel grid, it is possible to point the laser towards the grid
in a non 90° angle and still passing through it (with the laser beam
being reflected inside the grid until it leaves the grid on the other
side). However, this did not work when passing the steel grid from
bottom to top (upwards) into an "empty space" element.

This change fixes handling this special case.