rocksndiamonds.git
3 years agoremoved duplicate code
Holger Schemel [Thu, 17 Dec 2020 12:26:06 +0000 (13:26 +0100)]
removed duplicate code

3 years agoadded setup option to show dynamite and keys in game panel for EM artwork
Holger Schemel [Wed, 16 Dec 2020 00:51:07 +0000 (01:51 +0100)]
added setup option to show dynamite and keys in game panel for EM artwork

3 years agoadded default (empty) "class" to game panel definitions
Holger Schemel [Wed, 16 Dec 2020 00:34:33 +0000 (01:34 +0100)]
added default (empty) "class" to game panel definitions

3 years agoadded trying to show as many keys as possible in the default game panel
Holger Schemel [Tue, 15 Dec 2020 23:44:14 +0000 (00:44 +0100)]
added trying to show as many keys as possible in the default game panel

3 years agofixed entering single step pause mode before processing first EM game cycle
Holger Schemel [Mon, 21 Dec 2020 22:50:28 +0000 (23:50 +0100)]
fixed entering single step pause mode before processing first EM game cycle

3 years agofixed delaying immediate events after game status has changed
Holger Schemel [Mon, 21 Dec 2020 22:47:24 +0000 (23:47 +0100)]
fixed delaying immediate events after game status has changed

3 years agofixed wrong variable type
Holger Schemel [Mon, 21 Dec 2020 22:12:14 +0000 (23:12 +0100)]
fixed wrong variable type

3 years agofixed bug with not closing game panel after envelope request for restart
Holger Schemel [Wed, 16 Dec 2020 18:08:26 +0000 (19:08 +0100)]
fixed bug with not closing game panel after envelope request for restart

3 years agofixed bug with using wrong draw buffer after request if game has ended
Holger Schemel [Wed, 16 Dec 2020 11:01:50 +0000 (12:01 +0100)]
fixed bug with using wrong draw buffer after request if game has ended

3 years agoversion number set to 4.2.1.1
Holger Schemel [Tue, 15 Dec 2020 11:54:07 +0000 (12:54 +0100)]
version number set to 4.2.1.1

3 years agoversion number set to 4.2.1.0 4.2.1.0
Holger Schemel [Mon, 14 Dec 2020 01:10:00 +0000 (02:10 +0100)]
version number set to 4.2.1.0

3 years agoincreased maximum number of players/teams
Holger Schemel [Mon, 14 Dec 2020 00:56:38 +0000 (01:56 +0100)]
increased maximum number of players/teams

3 years agomerged player name and team tree types
Holger Schemel [Mon, 14 Dec 2020 00:53:32 +0000 (01:53 +0100)]
merged player name and team tree types

3 years agoremoved redundant code for selecting font color for player name
Holger Schemel [Wed, 28 Oct 2020 00:00:03 +0000 (01:00 +0100)]
removed redundant code for selecting font color for player name

3 years agoremoved redundant use of font constants for "choose tree" menu screens
Holger Schemel [Tue, 27 Oct 2020 23:50:12 +0000 (00:50 +0100)]
removed redundant use of font constants for "choose tree" menu screens

3 years agofixed redrawing previous player name when aborting typing player name
Holger Schemel [Tue, 27 Oct 2020 23:26:10 +0000 (00:26 +0100)]
fixed redrawing previous player name when aborting typing player name

3 years agofixed text positions and fonts when typing player name
Holger Schemel [Tue, 27 Oct 2020 23:22:48 +0000 (00:22 +0100)]
fixed text positions and fonts when typing player name

3 years agoadded request to create empty level set for newly created users
Holger Schemel [Sat, 24 Oct 2020 23:46:23 +0000 (01:46 +0200)]
added request to create empty level set for newly created users

3 years agoremoved unneeded request confirmations
Holger Schemel [Sat, 24 Oct 2020 22:19:22 +0000 (00:19 +0200)]
removed unneeded request confirmations

3 years agoadded request to use current setup values for newly created users
Holger Schemel [Sat, 24 Oct 2020 22:10:21 +0000 (00:10 +0200)]
added request to use current setup values for newly created users

3 years agomoved function call to redraw player name before opening request dialogs
Holger Schemel [Sat, 24 Oct 2020 21:51:16 +0000 (23:51 +0200)]
moved function call to redraw player name before opening request dialogs

3 years agoadded asking to reset/remove user when clearing user name
Holger Schemel [Fri, 23 Oct 2020 22:53:45 +0000 (00:53 +0200)]
added asking to reset/remove user when clearing user name

When completely clearing a user name (in the main menu or on the name
selection screen, depending on the mutliple user setup setting), ask
to reset setup values for this user. This will cause the "setup.conf"
file to be deleted, and the name to be set back to "no name" (or the
default login name if that user is the first user in the user list).

When manually setting the name to "no name", ask to completely remove
that user from the game. This will cause the user directory (contains
settings, tapes etc.) to be renamed with a "renamed" suffix (together
with a timestamp), so it is not recognized by the program anymore, but
can still be copied back manually. This will only be done if the user
is not the first user in the user list.

3 years agomoved code to set changed player name to separate function
Holger Schemel [Wed, 21 Oct 2020 00:36:00 +0000 (02:36 +0200)]
moved code to set changed player name to separate function

3 years agochanged checking for typing on name selection screen
Holger Schemel [Wed, 21 Oct 2020 00:27:49 +0000 (02:27 +0200)]
changed checking for typing on name selection screen

3 years agoadded functions to get timestamp strings
Holger Schemel [Wed, 21 Oct 2020 00:25:21 +0000 (02:25 +0200)]
added functions to get timestamp strings

3 years agofixed default player names on name selection screen
Holger Schemel [Tue, 20 Oct 2020 23:14:02 +0000 (01:14 +0200)]
fixed default player names on name selection screen

3 years agoadded function to get default player name
Holger Schemel [Tue, 20 Oct 2020 22:37:43 +0000 (00:37 +0200)]
added function to get default player name

3 years agorenamed and moved function to sanitize player name
Holger Schemel [Tue, 20 Oct 2020 22:34:16 +0000 (00:34 +0200)]
renamed and moved function to sanitize player name

3 years agorenamed function
Holger Schemel [Tue, 20 Oct 2020 22:04:50 +0000 (00:04 +0200)]
renamed function

3 years agofixed bug with not updating list of user names when typing name
Holger Schemel [Tue, 20 Oct 2020 21:55:36 +0000 (23:55 +0200)]
fixed bug with not updating list of user names when typing name

This bug occurs when setup option "multiple users" is disabled and
the player name is changed in the main menu -- when done, enabling
multiple users in the setup menu and entering the name selection
screen shows that the current player name that was just changed is
not updated in the list of user names shown on the name selection
screen.

3 years agomoved variable from local to file scope
Holger Schemel [Tue, 20 Oct 2020 21:48:15 +0000 (23:48 +0200)]
moved variable from local to file scope

3 years agoadded correction when typing name on main menu screen
Holger Schemel [Tue, 20 Oct 2020 18:11:31 +0000 (20:11 +0200)]
added correction when typing name on main menu screen

3 years agominor code improvement
Holger Schemel [Mon, 19 Oct 2020 21:30:19 +0000 (23:30 +0200)]
minor code improvement

3 years agorenamed variables
Holger Schemel [Mon, 19 Oct 2020 21:26:15 +0000 (23:26 +0200)]
renamed variables

3 years agominor code change when initializing typing player name
Holger Schemel [Mon, 19 Oct 2020 21:23:29 +0000 (23:23 +0200)]
minor code change when initializing typing player name

3 years agomoved code to draw typing player name to separate function
Holger Schemel [Mon, 19 Oct 2020 21:21:10 +0000 (23:21 +0200)]
moved code to draw typing player name to separate function

3 years agochanged font used for player name after typing
Holger Schemel [Mon, 19 Oct 2020 21:13:41 +0000 (23:13 +0200)]
changed font used for player name after typing

3 years agochanged setting font for player name after typing
Holger Schemel [Mon, 19 Oct 2020 21:10:58 +0000 (23:10 +0200)]
changed setting font for player name after typing

3 years agominor code improvement
Holger Schemel [Mon, 19 Oct 2020 21:05:45 +0000 (23:05 +0200)]
minor code improvement

3 years agoadded variable to improve readability
Holger Schemel [Mon, 19 Oct 2020 19:27:19 +0000 (21:27 +0200)]
added variable to improve readability

3 years agofixed game mode for name selection screen
Holger Schemel [Mon, 19 Oct 2020 19:12:51 +0000 (21:12 +0200)]
fixed game mode for name selection screen

3 years agoadded check if typed player name has not changed
Holger Schemel [Mon, 19 Oct 2020 17:46:19 +0000 (19:46 +0200)]
added check if typed player name has not changed

3 years agoadded (and enabled) support for user name selection screen
Holger Schemel [Mon, 19 Oct 2020 00:19:11 +0000 (02:19 +0200)]
added (and enabled) support for user name selection screen

3 years agoadded more support for user name selection screen (not used yet)
Holger Schemel [Sun, 18 Oct 2020 23:31:38 +0000 (01:31 +0200)]
added more support for user name selection screen (not used yet)

3 years agochanged mapping gadgets when drawing screen to choose from tree
Holger Schemel [Sun, 18 Oct 2020 23:18:46 +0000 (01:18 +0200)]
changed mapping gadgets when drawing screen to choose from tree

This change allows for checking existence and position of scroll bar
when drawing screen to choose item from tree structure.

3 years agorenamed function
Holger Schemel [Sun, 18 Oct 2020 23:14:49 +0000 (01:14 +0200)]
renamed function

3 years agochanged default player name to "no name" for all but the first user
Holger Schemel [Sun, 18 Oct 2020 23:12:01 +0000 (01:12 +0200)]
changed default player name to "no name" for all but the first user

3 years agofixed bug with unnecessarily reloading custom artwork on ECS/AGA change
Holger Schemel [Sun, 18 Oct 2020 22:54:09 +0000 (00:54 +0200)]
fixed bug with unnecessarily reloading custom artwork on ECS/AGA change

This bug occurs when changing the setup option for ECS/AGA preference
when there exists a level set with both ECS and AGA graphics sets in
the available tree of level sets, and results in (visually) attempting
to reload the current graphics even if the currently active level set
does not have any such graphics variants.

This fix prevents such unnecessary attempts to reload custom graphics,
and adds a better check for changed graphics (also needed if graphics
change from ECS to AGA variant) that really compares the previous with
the current graphics (which may result in the need to reload graphics).

3 years agorenamed variable
Holger Schemel [Sun, 18 Oct 2020 22:51:14 +0000 (00:51 +0200)]
renamed variable

3 years agominor whitespace change
Holger Schemel [Sun, 18 Oct 2020 22:46:20 +0000 (00:46 +0200)]
minor whitespace change

3 years agochanged code to type name to support different last screens
Holger Schemel [Sun, 18 Oct 2020 12:49:06 +0000 (14:49 +0200)]
changed code to type name to support different last screens

3 years agoprepared code to type player name for upcoming multiple names
Holger Schemel [Sun, 18 Oct 2020 12:44:32 +0000 (14:44 +0200)]
prepared code to type player name for upcoming multiple names

3 years agochanged variable handling when typing name in main menu
Holger Schemel [Sun, 18 Oct 2020 12:21:58 +0000 (14:21 +0200)]
changed variable handling when typing name in main menu

Instead of immediately modifying setup player name when typing (and
restoring it when aborting by pressing Escape key), use internal
string buffer instead and only update setup player name after typing
name was successfully finished.

3 years agoremoved redundant code
Holger Schemel [Sun, 18 Oct 2020 11:29:04 +0000 (13:29 +0200)]
removed redundant code

3 years agorenamed some variables
Holger Schemel [Sun, 18 Oct 2020 11:25:32 +0000 (13:25 +0200)]
renamed some variables

3 years agoadded basic support for user name selection screen (not used yet)
Holger Schemel [Sun, 18 Oct 2020 00:52:13 +0000 (02:52 +0200)]
added basic support for user name selection screen (not used yet)

3 years agoadded support for loading list of all user names
Holger Schemel [Sun, 18 Oct 2020 00:29:54 +0000 (02:29 +0200)]
added support for loading list of all user names

3 years agoadded support for loading and saving number of currently active user
Holger Schemel [Sun, 18 Oct 2020 00:16:29 +0000 (02:16 +0200)]
added support for loading and saving number of currently active user

3 years agoadded support for multiple user game data directories
Holger Schemel [Sat, 17 Oct 2020 23:54:32 +0000 (01:54 +0200)]
added support for multiple user game data directories

This change adds support for game data directories for multiple users,
to store individual user configuration files (like setup data and last
played level sets and levels) and individual user content files (like
personal tape files, but not personal level sets and scores, which are
still stored to be accessible by all users).

Special treatment is done for the game data files of the first user,
which are still stored in the main game data directory like before,
so there are no changes in file and directory paths for the "default
user", regardless if multiple user support is enabled or disabled.

3 years agoadded user structure for upcoming multiple user support
Holger Schemel [Sat, 17 Oct 2020 23:25:04 +0000 (01:25 +0200)]
added user structure for upcoming multiple user support

3 years agoadded setup option for upcoming new name selection screen
Holger Schemel [Sat, 17 Oct 2020 23:12:38 +0000 (01:12 +0200)]
added setup option for upcoming new name selection screen

3 years agoadded definitions for upcoming new name selection screen
Holger Schemel [Wed, 30 Sep 2020 21:45:42 +0000 (23:45 +0200)]
added definitions for upcoming new name selection screen

3 years agoremoved unnecessary braces in "return" statements
Holger Schemel [Sat, 17 Oct 2020 16:04:10 +0000 (18:04 +0200)]
removed unnecessary braces in "return" statements

3 years agoadded missing free() for local string variable
Holger Schemel [Sat, 17 Oct 2020 16:01:23 +0000 (18:01 +0200)]
added missing free() for local string variable

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()

3 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".)