Holger Schemel [Fri, 8 Jun 2018 21:35:07 +0000 (23:35 +0200)]
added key shortcut to dump identifiers for all gadgets on current screen
Holger Schemel [Fri, 8 Jun 2018 21:27:20 +0000 (23:27 +0200)]
fixed state of inactive parts of global animations
Holger Schemel [Fri, 8 Jun 2018 21:22:32 +0000 (23:22 +0200)]
code cleanup
Holger Schemel [Fri, 8 Jun 2018 21:13:53 +0000 (23:13 +0200)]
added event action parameter for global animations (no functionality yet)
Holger Schemel [Fri, 8 Jun 2018 21:03:37 +0000 (23:03 +0200)]
added storing image identifier in internal gadget structure
Holger Schemel [Sun, 17 Jun 2018 21:58:02 +0000 (23:58 +0200)]
fixed not updating audio buttons if shown on tape and changed in setup menu
Holger Schemel [Thu, 14 Jun 2018 17:53:30 +0000 (19:53 +0200)]
removed SDL 2.0 key symbols (using preprocessor) when compiling for SDL 1.2
Holger Schemel [Wed, 13 Jun 2018 19:21:49 +0000 (21:21 +0200)]
fixed bug causing crash when trying to draw undefined optional graphics
Before, the program crashed (segmentation fault) if optional graphics
(like "menu.button_level_number", which are defined to be off-screen
by default) are defined to a valid screen position (by setting the
corresponding screen position values like "main.button.level_number.x/y"
to positions on the screen), but no image was defined to be used for
that graphic.
This bug was fixed by using fallback graphics when attempting to draw
those undefined optional graphics.
Holger Schemel [Tue, 12 Jun 2018 18:23:32 +0000 (20:23 +0200)]
improved code to handle special game controller buttons
Holger Schemel [Tue, 12 Jun 2018 17:39:48 +0000 (19:39 +0200)]
fixed bug with wrong order of checking global animations for click events
Holger Schemel [Tue, 12 Jun 2018 00:10:22 +0000 (02:10 +0200)]
added (optional) menu buttons to select level number and first/last level
Holger Schemel [Mon, 11 Jun 2018 22:05:11 +0000 (00:05 +0200)]
added (optional) tape buttons to insert or play solution tape
Holger Schemel [Sat, 12 May 2018 10:18:51 +0000 (12:18 +0200)]
added option to draw pressed virtual buttons highlighted
Holger Schemel [Sat, 12 May 2018 09:40:59 +0000 (11:40 +0200)]
added option to draw virtual buttons outlined
Holger Schemel [Sat, 12 May 2018 09:20:12 +0000 (11:20 +0200)]
code cleanup
Holger Schemel [Sat, 12 May 2018 09:12:31 +0000 (11:12 +0200)]
fixed small bug in preprocessor macro
Holger Schemel [Sat, 12 May 2018 00:21:18 +0000 (02:21 +0200)]
added updating virtual buttons setup screen depending on screen orientation
Holger Schemel [Fri, 11 May 2018 17:20:44 +0000 (19:20 +0200)]
added configurability of grid size for virtual buttons
Holger Schemel [Fri, 11 May 2018 16:43:45 +0000 (18:43 +0200)]
fixed default values for move/drop distances for wipe gestures
Holger Schemel [Fri, 11 May 2018 15:18:32 +0000 (17:18 +0200)]
added configurability of transparency for virtual buttons
Holger Schemel [Fri, 11 May 2018 10:32:05 +0000 (12:32 +0200)]
fixed bug with not updating screen during request door post delay
Holger Schemel [Fri, 11 May 2018 10:02:59 +0000 (12:02 +0200)]
removed explicit check for Android for displaying virtual buttons
Holger Schemel [Thu, 10 May 2018 23:36:05 +0000 (01:36 +0200)]
added loading/saving virtual button configuration from/to setup file
Holger Schemel [Thu, 10 May 2018 23:30:30 +0000 (01:30 +0200)]
moved virtual buttons definitions to setup data structures
Holger Schemel [Wed, 9 May 2018 20:26:49 +0000 (22:26 +0200)]
added empty borders between different virtual buttons
Holger Schemel [Wed, 9 May 2018 19:51:23 +0000 (21:51 +0200)]
added using configurable virtual buttons while playing
Note: Virtual buttons can be configured (for both screen orientations)
and are also used when playing the game now, but are not saved yet.
Holger Schemel [Wed, 9 May 2018 19:36:39 +0000 (21:36 +0200)]
added support for updating grid buttons after the screen was rotated
Holger Schemel [Wed, 9 May 2018 19:24:04 +0000 (21:24 +0200)]
added separate grid buttons for landscape and portrait screen orientation
Separate grid buttons can be configured for landscape and portrait screen
orientation. The correct grid buttons are currently only selected at the
start of the program, but not after the screen was rotated.
Holger Schemel [Tue, 8 May 2018 17:33:15 +0000 (19:33 +0200)]
added grid buttons to virtual buttons setup screen
This change defines a grid of virtual buttons that can be configured on
the virtual buttons setup screen for all four directions and two buttons
(but is not used or shown anywhere else yet).
Holger Schemel [Tue, 8 May 2018 17:22:13 +0000 (19:22 +0200)]
fixed event handling on (not yet functional) virtual buttons setup screen
Holger Schemel [Thu, 26 Apr 2018 23:56:05 +0000 (01:56 +0200)]
added grid to (not yet functional) setup screen to configure virtual buttons
Holger Schemel [Sat, 21 Apr 2018 22:11:58 +0000 (00:11 +0200)]
added (not yet functional) setup screen to configure virtual buttons
Holger Schemel [Sun, 3 Jun 2018 20:47:35 +0000 (22:47 +0200)]
added correcting positions for envelope request buttons, if needed
Holger Schemel [Sun, 3 Jun 2018 20:40:05 +0000 (22:40 +0200)]
removed support for off-screen positions for request dialog buttons
Holger Schemel [Fri, 18 May 2018 12:49:21 +0000 (14:49 +0200)]
fixed network games, part 4: added debug output for player mapping
Holger Schemel [Fri, 18 May 2018 08:39:00 +0000 (10:39 +0200)]
fixed network games, part 3: enabled mapping input to reassigned players
Before this change, player input from connected network players was
only allowed for active players. However, the old code did not take
into account that players may have been reassigned to other players
in the level playfield, so their input actions have to be mapped to
that different player.
This change accepts input actions for all players, and later maps
them to the finally assigned player in the game.
Holger Schemel [Fri, 18 May 2018 08:04:37 +0000 (10:04 +0200)]
fixed network games, part 2: set player focus after setting local player
There was also a bug with setting the focussed player to the local
player where the local player potentially changed afterwards (if the
player for network games was assigned to any player in the playfield
different from the player that was selected for network games by the
user on program start).
To fix this, the code to set the focussed player for network games was
moved to a point after setting the local player.
Holger Schemel [Fri, 18 May 2018 06:55:32 +0000 (08:55 +0200)]
fixed network games, part 1: separate locally and network connected players
Network games were largely broken since (at least) version 3.2.4
(although they still worked for the most common cases, but only for the
first game after starting the program). They will be fixed in several
separate steps.
This first part separates storing if a team-mode player was connected
locally or over the network (and then sets the previously used general
flag if a certain player is "connected" or not, regardless of being
connected locally or remotely).
Holger Schemel [Thu, 26 Apr 2018 17:12:26 +0000 (19:12 +0200)]
fixed potential bug with alpha blending when using virtual buttons
Holger Schemel [Mon, 23 Apr 2018 18:39:52 +0000 (20:39 +0200)]
fixed bug with alpha blending when configuring game controllers
Holger Schemel [Sat, 21 Apr 2018 22:19:27 +0000 (00:19 +0200)]
fixed bug causing access to negative array index
Holger Schemel [Sat, 21 Apr 2018 22:15:34 +0000 (00:15 +0200)]
fixed variable type
Holger Schemel [Sat, 21 Apr 2018 00:08:54 +0000 (02:08 +0200)]
added hiding selection list style setup options marked with '.hide'
Holger Schemel [Fri, 20 Apr 2018 22:34:53 +0000 (00:34 +0200)]
added recognizing "y/Y" and "n/N" keys to answer request dialog
Holger Schemel [Fri, 20 Apr 2018 22:26:33 +0000 (00:26 +0200)]
changed variable name
Holger Schemel [Fri, 20 Apr 2018 22:22:46 +0000 (00:22 +0200)]
added adjusting input setup menu according to configured screen size
Holger Schemel [Fri, 20 Apr 2018 19:47:40 +0000 (21:47 +0200)]
added using narrow fonts for input setup if screen width is less than default
Holger Schemel [Fri, 20 Apr 2018 18:18:39 +0000 (20:18 +0200)]
added font definition for narrow variant of existing font
Holger Schemel [Fri, 20 Apr 2018 18:09:10 +0000 (20:09 +0200)]
added using variable for screen positions in input setup menu
Holger Schemel [Fri, 20 Apr 2018 18:04:35 +0000 (20:04 +0200)]
added using some variables for font identifiers instead of constants
Holger Schemel [Thu, 19 Apr 2018 23:10:25 +0000 (01:10 +0200)]
fixed centered screen position for keyboard/joystick configuration
Holger Schemel [Thu, 19 Apr 2018 18:37:32 +0000 (20:37 +0200)]
fixed changing key bindings if customization aborted by "Escape" key
Before, partially changed key bindings were kept even if keyboard
customization was aborted by pressing the "Escape" key during the
process. Now, the old key bindings are restored in this case.
Holger Schemel [Thu, 19 Apr 2018 18:22:14 +0000 (20:22 +0200)]
changed keyboard customization to be similar to joystick configuration
Before, the user was asked to press the "Return" key after keyboard
customization was finished. Now, keyboard customization automatically
ends after configuring the last key, and a message is displayed that
is similar to the message displayed after joystick configuration.
Holger Schemel [Tue, 17 Apr 2018 18:37:33 +0000 (20:37 +0200)]
changed starting music for MM game engine after charging laser
Before, music was started immediately after opening the game panel
door, and therefore before starting the initial "rotating mirrors
and charging laser" sequence when playing levels using the Mirror
Magic game engine.
Now, music starts after that initialization sequence is finished
(just like it was done in Mirror Magic 2.0.2).
Holger Schemel [Tue, 17 Apr 2018 17:58:38 +0000 (19:58 +0200)]
added saving static variables to engine snapshots for SP game engine
There were a number of static variables holding game engine values
that were forgotten to be saved in game engine snapshots for the
Supaplex game engine.
Storing and restoring these engine values was added by this fix.
Holger Schemel [Tue, 17 Apr 2018 17:49:13 +0000 (19:49 +0200)]
added check to prevent crash when drawing sprites for undefined graphics
Due to a bug (that will be fixed with the following commit) it may
be possible that game elements are drawn for undefined graphics ID,
resulting in a crash.
A check was added to prevent drawing sprites for undefined graphics.
Holger Schemel [Thu, 12 Apr 2018 20:23:40 +0000 (22:23 +0200)]
changed internal program versioning naming conventions
Before, program version numbers consisting of four parts were named
"MAJOR.MINOR.PATCH.BUILD" internally. From now on, this will be named
"SUPER.MAJOR.MINOR.PATCH" instead, because this better reflects how
the four parts of the version numbers are really used nowadays.
For the Mirror Magic game engine, "MAJOR.MINOR.PATCH" is still used
internally, as there is no fourth part for the version number, so the
names of these version number parts currently do not match the parts of
the internal R'n'D version numbers with the same name, but parts 1, 2
and 3 (which would be "SUPER.MAJOR.MINOR" in R'n'D version numbers).
Holger Schemel [Thu, 12 Apr 2018 19:50:20 +0000 (21:50 +0200)]
version number set to 4.1.0.1
Holger Schemel [Tue, 10 Apr 2018 19:44:08 +0000 (21:44 +0200)]
fixed tile selection cursor position for levels smaller than the playfield
For centered levels that are smaller than the playfield (MM engine),
the tile selection cursor position was not shifted like the level,
but was still inside the top/left aligned grid as if the level was
not centered.
This fix also centers the tile selection cursor position accordingly.
Holger Schemel [Mon, 9 Apr 2018 22:42:50 +0000 (00:42 +0200)]
fixed always redrawing global border when redrawing playfield area
When in the level editor, the "special editor door" area was not redrawn
correctly when redrawing the global border, but was instead always
redrawn with the "normal" border (without special treatment for the
larger editor door area).
This workaround fixes redrawing the global border inside the level editor.
Holger Schemel [Fri, 6 Apr 2018 13:18:39 +0000 (15:18 +0200)]
version number set to 4.1.0.0
Holger Schemel [Thu, 5 Apr 2018 22:45:20 +0000 (00:45 +0200)]
added always redrawing global border when redrawing playfield area
Before, the global border was only redrawn if its graphics had changed
or if any of the viewport areas (playfield or doors) had changed their
position or size.
Now, it is always redrawn if the playfield area is cleared (to redraw
its content). This has the advantage that accidentally damaged global
border areas (caused by buggy graphics definitions from custom artwork
sets) are redrawn much earlier than before (where it could require
loading a different level set with different graphics to "repair" the
damaged global border).
Holger Schemel [Mon, 2 Apr 2018 10:33:11 +0000 (12:33 +0200)]
added support for non-button touch pads for MM game engine
There are some systems with touch pads (like Mac notebooks) which do not
have separate left/right buttons, which are required for controlling the
Mirror Magic game engine (which usually works best with left/right mouse
buttons).
This change adds support for recognizing touch clicks on the left and
right half of the touch pad as left and right button clicks to rotate
mirrors and other rotatable game elements in the MM game engine to the
left or to the right.
Holger Schemel [Mon, 2 Apr 2018 10:19:00 +0000 (12:19 +0200)]
added support for compiling non-default Windows icons into the executable
If the environment variable "EDITION" is defined, it is used to search at
a non-default location for icons to be compiled into the R'n'D executable
when building the game for the Windows platform.
Holger Schemel [Sun, 25 Mar 2018 23:13:29 +0000 (01:13 +0200)]
fixed some level editor element descriptions
Holger Schemel [Sun, 25 Mar 2018 11:07:20 +0000 (13:07 +0200)]
added using options for left/right/top/bottom spacing on some info screens
Holger Schemel [Sun, 25 Mar 2018 11:03:21 +0000 (13:03 +0200)]
added options for left/right/top/bottom spacing for the info screens
Holger Schemel [Sun, 25 Mar 2018 00:17:37 +0000 (01:17 +0100)]
replaced some info screen positions with already defined symbolic names
Holger Schemel [Sat, 24 Mar 2018 22:14:03 +0000 (23:14 +0100)]
fixed bug when creating static mappings of elements to graphics
This bug showed up with wrong mapping for "mm_pacman.eating.right" (as
defined in "src/conf_gfx.c") in auto-conf file "src/conf_e2g.c" being
{
EL_MM_PACMAN, ACTION_EATING, -1, FALSE,
IMG_MM_PACMAN_EATING_RIGHT
},
where it should correctly be
{
EL_MM_PACMAN, ACTION_EATING, MV_BIT_RIGHT, FALSE,
IMG_MM_PACMAN_EATING_RIGHT
},
instead. This problem was fixed by always using the calculated direction
(which can still be "-1" if no direction is specified).
Holger Schemel [Fri, 23 Mar 2018 22:19:59 +0000 (23:19 +0100)]
added centering levels that are smaller than the playfield (MM engine)
Holger Schemel [Wed, 21 Mar 2018 20:28:08 +0000 (21:28 +0100)]
fixed incorrect sizes of some arrays in menu info structure
Holger Schemel [Mon, 19 Mar 2018 21:49:22 +0000 (22:49 +0100)]
fixed compiling MM engine code with MinGW environment
Holger Schemel [Sun, 18 Mar 2018 12:31:57 +0000 (13:31 +0100)]
fixed name of element 'beamer' to 'teleporter'
Holger Schemel [Sun, 18 Mar 2018 12:04:26 +0000 (13:04 +0100)]
fixed name of element 'polarisator' to 'polarizer'
Holger Schemel [Wed, 14 Mar 2018 18:41:20 +0000 (19:41 +0100)]
fixed bug with deriving game data directory from default 'setup.conf'
Holger Schemel [Sat, 10 Mar 2018 20:49:40 +0000 (21:49 +0100)]
removed shortly visible video display when starting game from level editor
Holger Schemel [Sat, 10 Mar 2018 20:40:11 +0000 (21:40 +0100)]
removed short black screen when starting test game from level editor
Holger Schemel [Sat, 10 Mar 2018 20:06:10 +0000 (21:06 +0100)]
added message 'level solved' after solving a level
Holger Schemel [Sat, 10 Mar 2018 19:32:44 +0000 (20:32 +0100)]
replaced duplicated code with equivalent function call
Holger Schemel [Sat, 10 Mar 2018 19:18:07 +0000 (20:18 +0100)]
added asking for restart after game was lost (MM game engine only)
Holger Schemel [Sat, 10 Mar 2018 19:11:33 +0000 (20:11 +0100)]
fixed displaying title strings from config files in info screen headline
Holger Schemel [Sat, 10 Mar 2018 19:10:08 +0000 (20:10 +0100)]
moved getting title strings from config files to separate functions
Holger Schemel [Wed, 31 Jan 2018 21:01:11 +0000 (22:01 +0100)]
fixed bug with always drawing level playfield in editor after test playing
- even if the last edit mode was "level info", "element properties" etc.
- this bug was introduced by the commit with the following message:
"added editor door 1 animation if viewport is unchanged and contains toolbox"
(no commit ID given here due to frequent use of "git rebase")
Holger Schemel [Thu, 21 Dec 2017 17:37:10 +0000 (18:37 +0100)]
fixed saving snapshots (step, move and collect mode) to MM game engine
Holger Schemel [Tue, 19 Dec 2017 21:02:18 +0000 (22:02 +0100)]
fixed bug in (still largely broken) single-step mode when using joystick
Holger Schemel [Tue, 19 Dec 2017 20:55:07 +0000 (21:55 +0100)]
added single-step mode (well, sort of) to MM game engine
Holger Schemel [Fri, 15 Dec 2017 08:15:13 +0000 (09:15 +0100)]
fixed updating tile selection cursor position when using mouse in MM games
Holger Schemel [Fri, 15 Dec 2017 08:13:12 +0000 (09:13 +0100)]
fixed showing/hiding mouse cursor in playfield when playing MM style games
Holger Schemel [Fri, 15 Dec 2017 07:29:27 +0000 (08:29 +0100)]
improved smoothness of moving tile selection cursor
Holger Schemel [Fri, 15 Dec 2017 07:19:27 +0000 (08:19 +0100)]
fixed moving tile selection cursor
Holger Schemel [Fri, 15 Dec 2017 07:13:22 +0000 (08:13 +0100)]
fixed bug with keyboard/joystick events unpausing MM style games
Holger Schemel [Wed, 13 Dec 2017 07:55:26 +0000 (08:55 +0100)]
fixed bug with ending solved MM level without scores when using keyboard
Holger Schemel [Wed, 13 Dec 2017 07:39:30 +0000 (08:39 +0100)]
added tile selection cursor for playing MM levels with keyboard or joystick
Holger Schemel [Tue, 12 Dec 2017 21:18:01 +0000 (22:18 +0100)]
added delaying joystick actions also on the high scores screen
Holger Schemel [Mon, 4 Dec 2017 00:13:37 +0000 (01:13 +0100)]
completed touch controls (follow finger) for MM game engine on Android
Holger Schemel [Sun, 3 Dec 2017 11:35:49 +0000 (12:35 +0100)]
added touch controls (follow finger) for MM game engine on Android
Holger Schemel [Fri, 1 Dec 2017 21:26:29 +0000 (22:26 +0100)]
moved code for separate touch controls to separate functions (cleanup)
Holger Schemel [Fri, 1 Dec 2017 20:46:31 +0000 (21:46 +0100)]
cleanup of gadget handling for Android/non-Android platforms
Holger Schemel [Tue, 28 Nov 2017 20:40:14 +0000 (21:40 +0100)]
added touch controls (wipe gestures) for MM game engine on Android
Holger Schemel [Tue, 28 Nov 2017 08:50:26 +0000 (09:50 +0100)]
added option 'off' for touch controls (for non-Android platforms)