rocksndiamonds.git
17 months agofixed sending button press/release events to animation event handling
Holger Schemel [Tue, 13 Jun 2023 21:22:10 +0000 (23:22 +0200)]
fixed sending button press/release events to animation event handling

17 months agoadded variables to prevent repeating expression
Holger Schemel [Mon, 12 Jun 2023 18:31:05 +0000 (20:31 +0200)]
added variables to prevent repeating expression

17 months agochanged global animation events to use more practical bit range
Holger Schemel [Mon, 12 Jun 2023 17:53:52 +0000 (19:53 +0200)]
changed global animation events to use more practical bit range

17 months agoreordered some preprocessor definitions
Holger Schemel [Mon, 12 Jun 2023 16:59:42 +0000 (18:59 +0200)]
reordered some preprocessor definitions

17 months agofixed broken animation of CE that can not change, but has CE delay action
Holger Schemel [Sat, 10 Jun 2023 09:51:21 +0000 (11:51 +0200)]
fixed broken animation of CE that can not change, but has CE delay action

This fixes a bug that occurred if a custom element with an animation
has a CE action defined to be triggered after a delay, but without a
CE change, in which cause there was no animation displayed at all.

17 months agofixed bugs when using music sets without unconfigured game music
Holger Schemel [Thu, 8 Jun 2023 00:12:12 +0000 (02:12 +0200)]
fixed bugs when using music sets without unconfigured game music

Without this fix, playing a level set with an "empty" music set (that
has no in-game music, like it is the case for all Emerald Mine Club
level sets, for example) caused the game to fall back to the classic
(default) game music set, even though using an "empty" music set was
by intention in such cases.

17 months agofixed crash bug on info screen if music set has no unconfigured music
Holger Schemel [Thu, 8 Jun 2023 00:09:24 +0000 (02:09 +0200)]
fixed crash bug on info screen if music set has no unconfigured music

17 months agofixed drawing (maybe redefined) empty space around MM style level in editor
Holger Schemel [Tue, 6 Jun 2023 21:00:38 +0000 (23:00 +0200)]
fixed drawing (maybe redefined) empty space around MM style level in editor

17 months agoadded options "played_header" and "played" to music file info
Holger Schemel [Thu, 1 Jun 2023 21:22:37 +0000 (23:22 +0200)]
added options "played_header" and "played" to music file info

If option "played" is specified in the music file info, it overrides
a potentially detected level number to be displayed for this option.

The option "played_header" can be used to replace the text "played in"
with a different header text.

17 months agoadded highlighting single MM wall tiles in editor when pressing Alt key
Holger Schemel [Wed, 24 May 2023 15:04:06 +0000 (17:04 +0200)]
added highlighting single MM wall tiles in editor when pressing Alt key

17 months agoadded highlighting similar elements in editor when pressing Alt+Shift keys
Holger Schemel [Wed, 24 May 2023 14:25:24 +0000 (16:25 +0200)]
added highlighting similar elements in editor when pressing Alt+Shift keys

17 months agoversion number set to 4.3.7.0
Holger Schemel [Wed, 24 May 2023 14:24:05 +0000 (16:24 +0200)]
version number set to 4.3.7.0

18 months agoversion number set to 4.3.6.0 4.3.6.0
Holger Schemel [Sun, 21 May 2023 13:49:46 +0000 (15:49 +0200)]
version number set to 4.3.6.0

18 months agofixed bug with triggering "entered by player" event when pushing element
Holger Schemel [Sat, 20 May 2023 23:22:10 +0000 (01:22 +0200)]
fixed bug with triggering "entered by player" event when pushing element

18 months agoadded following diagonal side of a slope corner for MM engine
Holger Schemel [Fri, 19 May 2023 14:05:08 +0000 (16:05 +0200)]
added following diagonal side of a slope corner for MM engine

18 months agomoved variables to higher position in scope
Holger Schemel [Fri, 19 May 2023 13:45:19 +0000 (15:45 +0200)]
moved variables to higher position in scope

18 months agofixed bug with wrong laser position for slope element check in MM engine
Holger Schemel [Fri, 19 May 2023 13:43:17 +0000 (15:43 +0200)]
fixed bug with wrong laser position for slope element check in MM engine

18 months agofixed bug with wrong check offset for slope elements in MM engine
Holger Schemel [Fri, 19 May 2023 13:41:51 +0000 (15:41 +0200)]
fixed bug with wrong check offset for slope elements in MM engine

18 months agomoved checking element mask to separate function in MM engine
Holger Schemel [Fri, 19 May 2023 13:31:45 +0000 (15:31 +0200)]
moved checking element mask to separate function in MM engine

18 months agofixed bugs with wrong X/Y access in element mask in MM engine
Holger Schemel [Fri, 19 May 2023 13:27:29 +0000 (15:27 +0200)]
fixed bugs with wrong X/Y access in element mask in MM engine

18 months agomoved code for handling wall side of slope for MM engine
Holger Schemel [Fri, 19 May 2023 10:37:12 +0000 (12:37 +0200)]
moved code for handling wall side of slope for MM engine

18 months agoimproved reflecting laser by slope in corners in MM engine
Holger Schemel [Fri, 19 May 2023 10:19:01 +0000 (12:19 +0200)]
improved reflecting laser by slope in corners in MM engine

18 months agofixed small graphical bug with laser overloaded by slope in MM engine
Holger Schemel [Fri, 19 May 2023 10:16:37 +0000 (12:16 +0200)]
fixed small graphical bug with laser overloaded by slope in MM engine

18 months agofixed hitting some edge on the way to opposing diagonal side of slope
Holger Schemel [Wed, 17 May 2023 14:26:39 +0000 (16:26 +0200)]
fixed hitting some edge on the way to opposing diagonal side of slope

18 months agofixed advancing laser position on slopes from non-center position
Holger Schemel [Wed, 17 May 2023 14:13:40 +0000 (16:13 +0200)]
fixed advancing laser position on slopes from non-center position

18 months agofixed bug when checking if end of slope is blocked by other element
Holger Schemel [Wed, 17 May 2023 10:45:40 +0000 (12:45 +0200)]
fixed bug when checking if end of slope is blocked by other element

18 months agomoved code to count bits to separate function
Holger Schemel [Wed, 17 May 2023 10:29:18 +0000 (12:29 +0200)]
moved code to count bits to separate function

18 months agoadded stopping game startup actions on Escape key when using MM engine
Holger Schemel [Wed, 17 May 2023 09:25:43 +0000 (11:25 +0200)]
added stopping game startup actions on Escape key when using MM engine

18 months agofixed debug code for fast game startup when using MM engine
Holger Schemel [Wed, 17 May 2023 09:11:52 +0000 (11:11 +0200)]
fixed debug code for fast game startup when using MM engine

18 months agoadded new steel slope game element for MM game engine
Holger Schemel [Sat, 6 May 2023 12:34:58 +0000 (14:34 +0200)]
added new steel slope game element for MM game engine

18 months agofixed bug with macro for laser angle for MM engine
Holger Schemel [Sat, 22 Apr 2023 15:23:08 +0000 (17:23 +0200)]
fixed bug with macro for laser angle for MM engine

18 months agofixed getting level position after laser hits something in MM engine
Holger Schemel [Sat, 22 Apr 2023 13:25:32 +0000 (15:25 +0200)]
fixed getting level position after laser hits something in MM engine

18 months agoimproved flipping and rotating tiles in brushes in level editor
Holger Schemel [Tue, 16 May 2023 18:09:54 +0000 (20:09 +0200)]
improved flipping and rotating tiles in brushes in level editor

18 months agoadded flipping and rotating tiles in brushes in level editor
Holger Schemel [Sun, 14 May 2023 22:04:43 +0000 (00:04 +0200)]
added flipping and rotating tiles in brushes in level editor

18 months agofixed drawing mouse pointer global animation above MM engine tile cursor
Holger Schemel [Sun, 14 May 2023 15:42:20 +0000 (17:42 +0200)]
fixed drawing mouse pointer global animation above MM engine tile cursor

18 months agofixed preprocessor macros to detect MM and DF game elements
Holger Schemel [Fri, 12 May 2023 10:51:48 +0000 (12:51 +0200)]
fixed preprocessor macros to detect MM and DF game elements

18 months agoadded flipping and rotating brushes in level editor
Holger Schemel [Thu, 11 May 2023 19:08:51 +0000 (21:08 +0200)]
added flipping and rotating brushes in level editor

18 months agofixed centering text from files (like credits) using different font width
Holger Schemel [Sat, 6 May 2023 22:15:31 +0000 (00:15 +0200)]
fixed centering text from files (like credits) using different font width

19 months agoadded functions to get level position from laser position for MM engine
Holger Schemel [Sat, 22 Apr 2023 13:08:33 +0000 (15:08 +0200)]
added functions to get level position from laser position for MM engine

19 months agofixed editor element descriptions for fixed mirror elements of MM engine
Holger Schemel [Sat, 22 Apr 2023 12:25:20 +0000 (14:25 +0200)]
fixed editor element descriptions for fixed mirror elements of MM engine

19 months agoadded description for Deflektor style fixed mirror game elements
Holger Schemel [Fri, 21 Apr 2023 21:55:13 +0000 (23:55 +0200)]
added description for Deflektor style fixed mirror game elements

This should have been part of commit 7b347435.

19 months agofixed showing level music file info in correct level order
Holger Schemel [Wed, 12 Apr 2023 13:29:01 +0000 (15:29 +0200)]
fixed showing level music file info in correct level order

19 months agoadded reading unconfigured music files from already existing list
Holger Schemel [Wed, 12 Apr 2023 12:36:58 +0000 (14:36 +0200)]
added reading unconfigured music files from already existing list

Before, the list of unconfigured music files was read from the music
directory (in function "LoadMusicInfo()" in "src/files.c") instead
of using the already existing list from the sound sub-system (read
exactly the same way in function "LoadCustomMusic_NoConf()" in
"src/libgame/sound.c"). Now, the code just uses this existing list.

19 months agoadded playing the first unconfigured music file in the first level
Holger Schemel [Wed, 12 Apr 2023 12:01:48 +0000 (14:01 +0200)]
added playing the first unconfigured music file in the first level

Before, the (unconfigured) music file to be played in the first level
of a level set depended on the number of the first level (with the
result that the first music file was played in level 000, the second
music file was played in level 001 and so on, which probably was not
the intended behaviour when the level set started with level 001).

Now the first music file in the list of unconfigured music files is
played in the first level of a level set, regardless of the number of
that level (which is either 000 or 001 for most level sets).

19 months agoadded sorting unconfigured music files by filename
Holger Schemel [Wed, 12 Apr 2023 11:57:20 +0000 (13:57 +0200)]
added sorting unconfigured music files by filename

Before, unconfigured music files were played in the order they were
stored in the file system (that is, in unpredictable order). This
change adds sorting them by filename.

19 months agoadded showing configured level on music info screen
Holger Schemel [Wed, 12 Apr 2023 11:54:25 +0000 (13:54 +0200)]
added showing configured level on music info screen

19 months agofixed bug with checking music only for current instead of all levels
Holger Schemel [Wed, 12 Apr 2023 11:46:58 +0000 (13:46 +0200)]
fixed bug with checking music only for current instead of all levels

19 months agoadded Deflektor style fixed mirror game elements to MM engine
Holger Schemel [Tue, 11 Apr 2023 14:19:34 +0000 (16:19 +0200)]
added Deflektor style fixed mirror game elements to MM engine

19 months agoimproved scanning laser outside level, but inside visible playfield area
Holger Schemel [Mon, 10 Apr 2023 11:31:55 +0000 (13:31 +0200)]
improved scanning laser outside level, but inside visible playfield area

This change adds checking that not only the current, but also the next
step of the laser beam is still inside the visible playfield area.

This is a correction of commit dea6197b.

19 months agofixed regression bug with bad playfield offset
Holger Schemel [Mon, 10 Apr 2023 11:20:16 +0000 (13:20 +0200)]
fixed regression bug with bad playfield offset

This reverts commit a35cd127.

The bug introduced by the above commit was caused by a wrong comment
indicating that a certain offset was related to the playfield border,
which was wrong. In fact, this offset is related to the width of the
laser beam (to store the middle position of the tile the laser beam
touches, to be able to draw a variable-width laser beam later with a
size that is relative to the middle of the tile).

As the laser beam currently has a width of 4 pixels, this value has
to be set to 2 here.

19 months agoadded supporting reference elements for custom element explosion content
Holger Schemel [Sat, 8 Apr 2023 11:24:34 +0000 (13:24 +0200)]
added supporting reference elements for custom element explosion content

19 months agofixed bug with using already assigned byte position when saving level
Holger Schemel [Fri, 7 Apr 2023 18:07:18 +0000 (20:07 +0200)]
fixed bug with using already assigned byte position when saving level

19 months agofixed bug with laser passing between two diagonally placed DF polarizers
Holger Schemel [Fri, 7 Apr 2023 17:12:56 +0000 (19:12 +0200)]
fixed bug with laser passing between two diagonally placed DF polarizers

This reverts commit f00dbcf8.

The behaviour "fixed" in the above commit as being a bug is in fact
the correct and intended behaviour, as Deflektor style polarizors are
to be treated as solid, tile-filling blocks, not as tiles with a
little bit free space around them, as suggested by the graphics (and
as it is the case with the Mirror Magic variant of these tiles).

19 months agofixed scanning laser outside level, but inside visible playfield area
Holger Schemel [Fri, 7 Apr 2023 10:53:26 +0000 (12:53 +0200)]
fixed scanning laser outside level, but inside visible playfield area

19 months agoreplaced variables
Holger Schemel [Fri, 7 Apr 2023 10:49:13 +0000 (12:49 +0200)]
replaced variables

19 months agoremoved hardcoding playfield viewport border
Holger Schemel [Fri, 7 Apr 2023 10:47:25 +0000 (12:47 +0200)]
removed hardcoding playfield viewport border

19 months agoremoved variables
Holger Schemel [Fri, 7 Apr 2023 10:39:24 +0000 (12:39 +0200)]
removed variables

19 months agoremoved hardcoding playfield viewport border
Holger Schemel [Fri, 7 Apr 2023 10:36:08 +0000 (12:36 +0200)]
removed hardcoding playfield viewport border

19 months agofixed bug with laser not passing between two diagonally placed DF polarizers
Holger Schemel [Fri, 7 Apr 2023 08:27:54 +0000 (10:27 +0200)]
fixed bug with laser not passing between two diagonally placed DF polarizers

19 months agoadded redrawing laser when auto-rotating mirrors in MM engine
Holger Schemel [Fri, 7 Apr 2023 08:23:43 +0000 (10:23 +0200)]
added redrawing laser when auto-rotating mirrors in MM engine

19 months agochanged element names of Deflektor style polarizers in level editor
Holger Schemel [Fri, 7 Apr 2023 08:17:45 +0000 (10:17 +0200)]
changed element names of Deflektor style polarizers in level editor

19 months agoversion number set to 4.3.5.5
Holger Schemel [Mon, 3 Apr 2023 14:00:55 +0000 (16:00 +0200)]
version number set to 4.3.5.5

19 months agoadded deployment as release target dependency to top level Makefile 4.3.5.4
Holger Schemel [Mon, 3 Apr 2023 10:27:48 +0000 (12:27 +0200)]
added deployment as release target dependency to top level Makefile

19 months agofixed moving tile cursor off the visible playfield area in MM engine
Holger Schemel [Mon, 3 Apr 2023 09:09:04 +0000 (11:09 +0200)]
fixed moving tile cursor off the visible playfield area in MM engine

19 months agocode cleanup (no functional change)
Holger Schemel [Mon, 3 Apr 2023 09:06:02 +0000 (11:06 +0200)]
code cleanup (no functional change)

19 months agofixed nasty bug that caused empty screen on game elements info screen
Holger Schemel [Mon, 3 Apr 2023 08:34:27 +0000 (10:34 +0200)]
fixed nasty bug that caused empty screen on game elements info screen

No, this was not meant to be an April Fools' Day joke.

19 months agofixed showing program title headers and footers on loading screen
Holger Schemel [Sun, 2 Apr 2023 18:24:51 +0000 (20:24 +0200)]
fixed showing program title headers and footers on loading screen

This got lost when adding support for background image for loading
screen in commit b1734380.

19 months agoversion number set to 4.3.5.4
Holger Schemel [Sun, 2 Apr 2023 17:51:42 +0000 (19:51 +0200)]
version number set to 4.3.5.4

19 months agofixed custom element change page gadget events in level editor 4.3.5.3
Holger Schemel [Sat, 1 Apr 2023 10:50:02 +0000 (12:50 +0200)]
fixed custom element change page gadget events in level editor

19 months agorenamed misleading texts, constants, variables and function names
Holger Schemel [Sat, 1 Apr 2023 10:33:33 +0000 (12:33 +0200)]
renamed misleading texts, constants, variables and function names

19 months agofixed toolbox gadgets on properties page after test game in level editor
Holger Schemel [Sat, 1 Apr 2023 10:10:13 +0000 (12:10 +0200)]
fixed toolbox gadgets on properties page after test game in level editor

19 months agomoved code to separate function
Holger Schemel [Sat, 1 Apr 2023 10:07:33 +0000 (12:07 +0200)]
moved code to separate function

19 months agofixed showing special toolbox buttons for empty space elements in editor
Holger Schemel [Sat, 1 Apr 2023 08:22:56 +0000 (10:22 +0200)]
fixed showing special toolbox buttons for empty space elements in editor

19 months agocode cleanup
Holger Schemel [Sat, 1 Apr 2023 00:39:00 +0000 (02:39 +0200)]
code cleanup

19 months agoadded support for levels larger than visible playfield in MM engine
Holger Schemel [Sat, 1 Apr 2023 00:38:04 +0000 (02:38 +0200)]
added support for levels larger than visible playfield in MM engine

19 months agowhite space changes
Holger Schemel [Sat, 1 Apr 2023 00:27:59 +0000 (02:27 +0200)]
white space changes

19 months agoremoved duplicated code
Holger Schemel [Fri, 31 Mar 2023 18:32:55 +0000 (20:32 +0200)]
removed duplicated code

19 months agofixed graphical bugs with off-screen playfield movement in MM engine
Holger Schemel [Fri, 31 Mar 2023 18:17:13 +0000 (20:17 +0200)]
fixed graphical bugs with off-screen playfield movement in MM engine

This changes handles graphical bugs that may occur if the playfield of
levels played with the MM game engine are larger than the visible part
of the playfield. (This is not supported with MM style levels, but may
occur when using custom artwork with smaller playfield viewport than
intended by the level designer.)

The problem could be seen with levels where pacman game elements leave
and re-enter the visible part of the playfield.

19 months agofixed handling laser when clicking on one of several McDuffins in MM engine
Holger Schemel [Fri, 31 Mar 2023 14:09:18 +0000 (16:09 +0200)]
fixed handling laser when clicking on one of several McDuffins in MM engine

19 months agoadded removing existing McDuffin when drawing new one in level editor
Holger Schemel [Fri, 31 Mar 2023 14:04:48 +0000 (16:04 +0200)]
added removing existing McDuffin when drawing new one in level editor

19 months agofixed several bugs with shared playfield bitmap in MM game engine
Holger Schemel [Thu, 30 Mar 2023 19:36:06 +0000 (21:36 +0200)]
fixed several bugs with shared playfield bitmap in MM game engine

This fixes several bugs that resulted from using the normal background
bitmap for the Mirror Magic game engine (which was possible because
this game engine does not support scrolling levels and therefore only
uses the visible playfield viewport).

The main bugs fixed by this change are preventing MM engine levels
that are larger than the visible playfield area drawing over the
border area, and some problems with envelope style requests (like
restoring an outdated copy of the backbuffer after an envelope
request was answered after a game was lost).

While fixing these visible bugs, this change also brings a cleanup of
the MM engine code, which used three different bitmap pointers before
(that all pointed to the same backbuffer bitmap).

19 months agoadded respecting user-configured screen orientation locking on Android
Holger Schemel [Wed, 29 Mar 2023 06:02:33 +0000 (08:02 +0200)]
added respecting user-configured screen orientation locking on Android

On Android, locking the screen orientation to portrait or landscape
as configured by the user of the device was completely ignored so far.

This change adds respecting this device setting by using the setting
"fullUser" for the app's screen orientation activity (always use user
defined screen orientation) instead of the previously used setting
"fullSensor" (always use sensor-based rotation, regardless of any
user-configured locking of screen rotation).

The corresponding entry in the Android Manifest file was added only to
document this changed behaviour, even though it is in fact ignored, as
this activity setting is finally hard-coded in the Java activity code,
where it was changed to use the new behaviour.

19 months agoadded support for tile size for game elements info screen
Holger Schemel [Mon, 27 Mar 2023 07:48:35 +0000 (09:48 +0200)]
added support for tile size for game elements info screen

This adds support for the following two graphics configuration options
to customize the element tile size and the space between element
graphic and element description on the game elements info screen:

* menu.tile_size.INFO[ELEMENTS]      - tile size of element graphics
* menu.middle_spacing.INFO[ELEMENTS] - space between element and text

Supported tile sizes are game tile size as defined by "game.tile_size"
and the usual standard tile sizes 32, 16, 8 and 4 pixels.

19 months agoremoved unused definitions for menu list entry size
Holger Schemel [Mon, 27 Mar 2023 07:39:49 +0000 (09:39 +0200)]
removed unused definitions for menu list entry size

19 months agoadded support for menu list entry size for game elements info screen
Holger Schemel [Sun, 26 Mar 2023 14:41:24 +0000 (16:41 +0200)]
added support for menu list entry size for game elements info screen

This commit adds support for using the following three graphics
configuration options to customize the available size (height),
spacing between lines of text and spacing between list entries
for the list of game element graphics and descriptions on the
game elements info screen:

* menu.list_entry_size.INFO[ELEMENTS] - available height for text
* menu.line_spacing.INFO[ELEMENTS]    - space between lines of text
* menu.extra_spacing.INFO[ELEMENTS]   - space between list entries

19 months agoadded variable to cleanup code
Holger Schemel [Sun, 26 Mar 2023 14:20:21 +0000 (16:20 +0200)]
added variable to cleanup code

19 months agoadded definitions for menu list entry size (not used yet)
Holger Schemel [Sun, 26 Mar 2023 14:02:16 +0000 (16:02 +0200)]
added definitions for menu list entry size (not used yet)

19 months agoadded functions to enable and disable drawing text
Holger Schemel [Sun, 26 Mar 2023 13:46:25 +0000 (15:46 +0200)]
added functions to enable and disable drawing text

19 months agofixed crumbling graphics bug when player explodes after digging sand
Holger Schemel [Sat, 25 Mar 2023 08:54:24 +0000 (09:54 +0100)]
fixed crumbling graphics bug when player explodes after digging sand

19 months agofixed bug with short delay in crumbling border elements around explosion
Holger Schemel [Fri, 24 Mar 2023 09:59:46 +0000 (10:59 +0100)]
fixed bug with short delay in crumbling border elements around explosion

20 months agofixed playfield redraw bug when closing envelope after asking to play again
Holger Schemel [Thu, 23 Mar 2023 19:42:55 +0000 (20:42 +0100)]
fixed playfield redraw bug when closing envelope after asking to play again

20 months agofixed MM wall tiles in dynamic element list in level editor
Holger Schemel [Thu, 23 Mar 2023 11:53:08 +0000 (12:53 +0100)]
fixed MM wall tiles in dynamic element list in level editor

20 months agofixed sort order for empty elements in dynamic element list in level editor
Holger Schemel [Thu, 23 Mar 2023 11:43:03 +0000 (12:43 +0100)]
fixed sort order for empty elements in dynamic element list in level editor

20 months agoadded count of MM wall tiles to element properties page in level editor
Holger Schemel [Thu, 23 Mar 2023 11:32:04 +0000 (12:32 +0100)]
added count of MM wall tiles to element properties page in level editor

20 months agominor code cleanup
Holger Schemel [Thu, 23 Mar 2023 11:16:51 +0000 (12:16 +0100)]
minor code cleanup

20 months agoadded count of similar elements to element properties page in level editor
Holger Schemel [Thu, 23 Mar 2023 08:00:50 +0000 (09:00 +0100)]
added count of similar elements to element properties page in level editor

20 months agomoved getting restart message to request function
Holger Schemel [Wed, 22 Mar 2023 18:22:22 +0000 (19:22 +0100)]
moved getting restart message to request function

20 months agomoved function to other code location (no functional change)
Holger Schemel [Wed, 22 Mar 2023 18:21:25 +0000 (19:21 +0100)]
moved function to other code location (no functional change)

20 months agochanged function to static
Holger Schemel [Wed, 22 Mar 2023 18:17:46 +0000 (19:17 +0100)]
changed function to static

20 months agoremoved variable that was not required
Holger Schemel [Wed, 22 Mar 2023 18:13:54 +0000 (19:13 +0100)]
removed variable that was not required