rocksndiamonds.git
6 years agofixed re-opening request door after stopping network game
Holger Schemel [Wed, 6 Jun 2018 06:28:10 +0000 (08:28 +0200)]
fixed re-opening request door after stopping network game

6 years agomoved setting preferred network player from game start to setup menu
Holger Schemel [Tue, 5 Jun 2018 22:32:37 +0000 (00:32 +0200)]
moved setting preferred network player from game start to setup menu

When running the game in network game mode (via setup menu option or
command line option), do not ask for the preferred network player on
each start of the game, but use the player that can be configured in
the setup menu now.

6 years agoadded setup option to enable network multi-player games
Holger Schemel [Fri, 1 Jun 2018 17:03:58 +0000 (19:03 +0200)]
added setup option to enable network multi-player games

This is a work-in-progress change: The new setup option to enable
network mode just sets the same flag as using the command-line option
"--network" (without specifying a hostname or a port).

For local network games, and if UDP broadcasting works as it should
to auto-detect a local network server that is already running, this is
already sufficient to play network multi-player games.

What's still missing is a way to explicitly specify a network server
to also be able to play network games with hosts outside of the local
network (or if UDP broadcasting does not work correctly).

6 years agoadded UDP broadcast to auto-detect network server in local network
Holger Schemel [Fri, 1 Jun 2018 16:06:38 +0000 (18:06 +0200)]
added UDP broadcast to auto-detect network server in local network

6 years agoadded some missing error handling and more detailed error messages
Holger Schemel [Thu, 31 May 2018 11:26:51 +0000 (13:26 +0200)]
added some missing error handling and more detailed error messages

6 years agocode cleanup (handling of network socket activity)
Holger Schemel [Thu, 31 May 2018 11:15:57 +0000 (13:15 +0200)]
code cleanup (handling of network socket activity)

6 years agoadded handling SIGINT (Ctrl-C) to exit standalone network server
Holger Schemel [Thu, 31 May 2018 11:04:13 +0000 (13:04 +0200)]
added handling SIGINT (Ctrl-C) to exit standalone network server

6 years agoadded (optional) main menu buttons to insert or play solution tape
Holger Schemel [Wed, 13 Jun 2018 22:57:40 +0000 (00:57 +0200)]
added (optional) main menu buttons to insert or play solution tape

There is a difference to the already existing tape buttons to insert
or play a solution tape in that the main menu buttons are only drawn
if the current level really has a solution tape, while the tape buttons
are always drawn, regardless if the level has a solution tape or not.

6 years agoadded the "return" and "escape" key to be simulated by global animations
Holger Schemel [Tue, 12 Jun 2018 20:25:52 +0000 (22:25 +0200)]
added the "return" and "escape" key to be simulated by global animations

6 years agoadded event actions (by simulating keyboard input) for global animations
Holger Schemel [Tue, 12 Jun 2018 20:03:51 +0000 (22:03 +0200)]
added event actions (by simulating keyboard input) for global animations

This change adds more event actions to the "anim_event_action" option
for clickable global animations, this time adding simulated keyboard
input by specifying a key symbol for the key to be simulated.

For example, you can now use:

global.anim_1.part_1.MAIN.anim_event:            click
global.anim_1.part_1.MAIN.anim_event_action:     XK_Return

When clicking this global animation (on the main menu screen), the
currently selected/highlighted menu item will be chosen/executed.

To get the key symbol/name for the key to be simulated, just choose
the desired key as a keyboard shortcut in the setup menu (temporarily
only) and look at the resulting entry in the file "setup.conf" in the
game's configuration and personal data directory.

6 years agofixed compiler warning due to missing function declaration
Holger Schemel [Mon, 11 Jun 2018 20:02:30 +0000 (22:02 +0200)]
fixed compiler warning due to missing function declaration

6 years agoadded being able to generally set global animations to passthrough clicks
Holger Schemel [Mon, 11 Jun 2018 19:48:30 +0000 (21:48 +0200)]
added being able to generally set global animations to passthrough clicks

Before, the "passthrough_clicks" option was limited to allow mouse
clicks on global animations to be passed through to the mouse sensitive
screen controls, but not to other global animations.

Now, stacked global animations can all receive mouse clicks if those
global animations overlapping them are set to "passthrough_clicks".

6 years agoadded "multiple_actions" option for clickable global animations
Holger Schemel [Mon, 11 Jun 2018 19:10:05 +0000 (21:10 +0200)]
added "multiple_actions" option for clickable global animations

This change adds a new option for the "graphicsinfo.conf" file to be
able to explicitly allow multiple event actions for clickable global
animations, which is deactivated by default to prevent unwanted side
effects. This would make it possible to trigger two actions that make
sense when executed at the same time, like triggering the "play" and
"pause" buttons of the tape recorder together, for example.)

The new option works like this (with "global.anim_1.part_1.MAIN" also
being defined):

global.anim_2.part_1.MAIN.anim_event:            click:anim_1.part_1
global.anim_2.part_1.MAIN.anim_event_action:     some.action
global.anim_2.part_1.MAIN.style:                 multiple_actions

global.anim_3.part_1.MAIN.anim_event:            click:anim_1.part_1
global.anim_3.part_1.MAIN.anim_event_action:     another.action

When clicking the first global animation (on the main menu screen),
there might be two or more other global animation which are triggered
by clicking the first animation and which each execute their own event
action when triggered. (The style "multiple_actions" must be defined
for all animations that should *not* stop the chain of event actions
to be executed, so it's easiest to just define it for all animations
that should execute their event actions together when triggered.)

This option can be combined with "passthrough_clicks".

6 years agoadded ignoring gadgets if click already caused animation event action
Holger Schemel [Mon, 11 Jun 2018 18:11:51 +0000 (20:11 +0200)]
added ignoring gadgets if click already caused animation event action

Before, even though executing more than one event action triggered by
clickable global animations was already prevented, further processing
of mouse clicks by gadgets at the same position was still performed if
the global animation style was set to "passthrough_clicks", which could
lead to more than one gadgets being triggered at the same time by a
single click on a clickable global animation, with potentially unwanted
side effects.

Now, mouse clicks that already triggered an event action (which could
be a gadget) are not processed by the standard gadget handling anymore.

6 years agofixed order of handling mouse clicks on gadgets and on global animations
Holger Schemel [Mon, 11 Jun 2018 18:03:07 +0000 (20:03 +0200)]
fixed order of handling mouse clicks on gadgets and on global animations

Before, gadgets were checked for clicks before global animations, which
caused clickable global animations to not be clicked if a gadget at the
same position was successfully clicked (because mouse events are forced
to be off-screen afterwards).

Now, clickable global animations are checked for mouse clicks before
gadgets, and they either consume the mouse click (so a gadget at the
same position will not receive the mouse click anymore), or they are
set to "passthrough_clicks" style (so a gadget at the same position
will still receive the mouse click).

6 years agofixed potential bug with default step size when increasing/decreasing level
Holger Schemel [Mon, 11 Jun 2018 17:33:59 +0000 (19:33 +0200)]
fixed potential bug with default step size when increasing/decreasing level

6 years agoadded event actions (active screen elements) for global animations
Holger Schemel [Sun, 10 Jun 2018 21:21:00 +0000 (23:21 +0200)]
added event actions (active screen elements) for global animations

This change adds more event actions to the "anim_event_action" option
for clickable global animations, this time adding active screen elements
(currently limited to a selection of screen elements in the main menu).

For example, you can now use:

global.anim_1.part_1.MAIN.anim_event:            click
global.anim_1.part_1.MAIN.anim_event_action:     menu.button_game

When clicking this global animation (on the main menu screen), the
game will be started (by triggering the "start game" menu button).

To dump a list of all available event actions for global animations,
blindly type the "cheat mode" style shortcut ":dump-event-actions" or
":dea" in the main menu.

6 years agofixed handling passthrough option for clickable global animations
Holger Schemel [Sun, 10 Jun 2018 13:52:16 +0000 (15:52 +0200)]
fixed handling passthrough option for clickable global animations

6 years agofixed ignoring clicks on global animations after executing event actions
Holger Schemel [Sun, 10 Jun 2018 13:26:36 +0000 (15:26 +0200)]
fixed ignoring clicks on global animations after executing event actions

6 years agoimproved function to dump identifiers for all gadgets on current screen
Holger Schemel [Sun, 10 Jun 2018 12:01:50 +0000 (14:01 +0200)]
improved function to dump identifiers for all gadgets on current screen

6 years agoadded "passthrough" option for clickable global animations
Holger Schemel [Fri, 8 Jun 2018 22:23:48 +0000 (00:23 +0200)]
added "passthrough" option for clickable global animations

This change adds a new option for the "graphicsinfo.conf" file for
defining a "passthrough" option for global animations that causes
clicks on clickable global animations not to be consumed, but to
be passed-through to the underlying screen controls (or other global
animations under the clicked global animation). The new option works
like this:

global.anim_1.part_1.MAIN.anim_event:            click
global.anim_1.part_1.MAIN.style:                 passthrough_clicks

The second option is the new one (the first one already existed).
When clicking this global animation (on the main menu screen), the
click will passed-through to the main menu screen to be further
processed by screen controls like gadgets or menu buttons.

6 years agoadded event actions (by triggering gadgets) for global animations
Holger Schemel [Fri, 8 Jun 2018 22:01:48 +0000 (00:01 +0200)]
added event actions (by triggering gadgets) for global animations

This change adds a new option for the "graphicsinfo.conf" file for
defining clickable global animations that trigger other actions
(currently limited to triggering active gadget buttons on the same
screen as the global animations). The new option works like this:

global.anim_1.part_1.MAIN.anim_event:            click
global.anim_1.part_1.MAIN.anim_event_action:     tape.button.record

The second option is the new one (the first one already existed).
When clicking this global animation (on the main menu screen), the
game will be started (by triggering the "record" button on the tape
recorder, which effectively starts playing the current level).

6 years agoadded key shortcut to dump identifiers for all gadgets on current screen
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

6 years agofixed state of inactive parts of global animations
Holger Schemel [Fri, 8 Jun 2018 21:27:20 +0000 (23:27 +0200)]
fixed state of inactive parts of global animations

6 years agocode cleanup
Holger Schemel [Fri, 8 Jun 2018 21:22:32 +0000 (23:22 +0200)]
code cleanup

6 years agoadded event action parameter for global animations (no functionality yet)
Holger Schemel [Fri, 8 Jun 2018 21:13:53 +0000 (23:13 +0200)]
added event action parameter for global animations (no functionality yet)

6 years agoadded storing image identifier in internal gadget structure
Holger Schemel [Fri, 8 Jun 2018 21:03:37 +0000 (23:03 +0200)]
added storing image identifier in internal gadget structure

6 years agofixed not updating audio buttons if shown on tape and changed in setup menu
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

6 years agoremoved SDL 2.0 key symbols (using preprocessor) when compiling for SDL 1.2
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

6 years agofixed bug causing crash when trying to draw undefined optional graphics
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.

6 years agoimproved code to handle special game controller buttons
Holger Schemel [Tue, 12 Jun 2018 18:23:32 +0000 (20:23 +0200)]
improved code to handle special game controller buttons

6 years agofixed bug with wrong order of checking global animations for click events
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

6 years agoadded (optional) menu buttons to select level number and first/last level
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

6 years agoadded (optional) tape buttons to insert or play solution tape
Holger Schemel [Mon, 11 Jun 2018 22:05:11 +0000 (00:05 +0200)]
added (optional) tape buttons to insert or play solution tape

6 years agoadded option to draw pressed virtual buttons highlighted
Holger Schemel [Sat, 12 May 2018 10:18:51 +0000 (12:18 +0200)]
added option to draw pressed virtual buttons highlighted

6 years agoadded option to draw virtual buttons outlined
Holger Schemel [Sat, 12 May 2018 09:40:59 +0000 (11:40 +0200)]
added option to draw virtual buttons outlined

6 years agocode cleanup
Holger Schemel [Sat, 12 May 2018 09:20:12 +0000 (11:20 +0200)]
code cleanup

6 years agofixed small bug in preprocessor macro
Holger Schemel [Sat, 12 May 2018 09:12:31 +0000 (11:12 +0200)]
fixed small bug in preprocessor macro

6 years agoadded updating virtual buttons setup screen depending on screen orientation
Holger Schemel [Sat, 12 May 2018 00:21:18 +0000 (02:21 +0200)]
added updating virtual buttons setup screen depending on screen orientation

6 years agoadded configurability of grid size for virtual buttons
Holger Schemel [Fri, 11 May 2018 17:20:44 +0000 (19:20 +0200)]
added configurability of grid size for virtual buttons

6 years agofixed default values for move/drop distances for wipe gestures
Holger Schemel [Fri, 11 May 2018 16:43:45 +0000 (18:43 +0200)]
fixed default values for move/drop distances for wipe gestures

6 years agoadded configurability of transparency for virtual buttons
Holger Schemel [Fri, 11 May 2018 15:18:32 +0000 (17:18 +0200)]
added configurability of transparency for virtual buttons

6 years agofixed bug with not updating screen during request door post delay
Holger Schemel [Fri, 11 May 2018 10:32:05 +0000 (12:32 +0200)]
fixed bug with not updating screen during request door post delay

6 years agoremoved explicit check for Android for displaying virtual buttons
Holger Schemel [Fri, 11 May 2018 10:02:59 +0000 (12:02 +0200)]
removed explicit check for Android for displaying virtual buttons

6 years agoadded loading/saving virtual button configuration from/to setup file
Holger Schemel [Thu, 10 May 2018 23:36:05 +0000 (01:36 +0200)]
added loading/saving virtual button configuration from/to setup file

6 years agomoved virtual buttons definitions to setup data structures
Holger Schemel [Thu, 10 May 2018 23:30:30 +0000 (01:30 +0200)]
moved virtual buttons definitions to setup data structures

6 years agoadded empty borders between different virtual buttons
Holger Schemel [Wed, 9 May 2018 20:26:49 +0000 (22:26 +0200)]
added empty borders between different virtual buttons

6 years agoadded using configurable virtual buttons while playing
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.

6 years agoadded support for updating grid buttons after the screen was rotated
Holger Schemel [Wed, 9 May 2018 19:36:39 +0000 (21:36 +0200)]
added support for updating grid buttons after the screen was rotated

6 years agoadded separate grid buttons for landscape and portrait screen orientation
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.

6 years agoadded grid buttons to virtual buttons setup screen
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).

6 years agofixed event handling on (not yet functional) virtual buttons setup screen
Holger Schemel [Tue, 8 May 2018 17:22:13 +0000 (19:22 +0200)]
fixed event handling on (not yet functional) virtual buttons setup screen

6 years agoadded grid to (not yet functional) setup screen to configure virtual buttons
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

6 years agoadded (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

6 years agoadded correcting positions for envelope request buttons, if needed
Holger Schemel [Sun, 3 Jun 2018 20:47:35 +0000 (22:47 +0200)]
added correcting positions for envelope request buttons, if needed

6 years agoremoved support for off-screen positions for request dialog buttons
Holger Schemel [Sun, 3 Jun 2018 20:40:05 +0000 (22:40 +0200)]
removed support for off-screen positions for request dialog buttons

6 years agofixed network games, part 4: added debug output for player mapping
Holger Schemel [Fri, 18 May 2018 12:49:21 +0000 (14:49 +0200)]
fixed network games, part 4: added debug output for player mapping

6 years agofixed network games, part 3: enabled mapping input to reassigned players
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.

6 years agofixed network games, part 2: set player focus after setting local player
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.

6 years agofixed network games, part 1: separate locally and network connected players
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).

6 years agofixed potential bug with alpha blending when using virtual buttons
Holger Schemel [Thu, 26 Apr 2018 17:12:26 +0000 (19:12 +0200)]
fixed potential bug with alpha blending when using virtual buttons

6 years agofixed bug with alpha blending when configuring game controllers
Holger Schemel [Mon, 23 Apr 2018 18:39:52 +0000 (20:39 +0200)]
fixed bug with alpha blending when configuring game controllers

6 years agofixed bug causing access to negative array index
Holger Schemel [Sat, 21 Apr 2018 22:19:27 +0000 (00:19 +0200)]
fixed bug causing access to negative array index

6 years agofixed variable type
Holger Schemel [Sat, 21 Apr 2018 22:15:34 +0000 (00:15 +0200)]
fixed variable type

6 years agoadded hiding selection list style setup options marked with '.hide'
Holger Schemel [Sat, 21 Apr 2018 00:08:54 +0000 (02:08 +0200)]
added hiding selection list style setup options marked with '.hide'

6 years agoadded recognizing "y/Y" and "n/N" keys to answer request dialog
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

6 years agochanged variable name
Holger Schemel [Fri, 20 Apr 2018 22:26:33 +0000 (00:26 +0200)]
changed variable name

6 years agoadded adjusting input setup menu according to configured screen size
Holger Schemel [Fri, 20 Apr 2018 22:22:46 +0000 (00:22 +0200)]
added adjusting input setup menu according to configured screen size

6 years agoadded using narrow fonts for input setup if screen width is less than default
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

6 years agoadded font definition for narrow variant of existing font
Holger Schemel [Fri, 20 Apr 2018 18:18:39 +0000 (20:18 +0200)]
added font definition for narrow variant of existing font

6 years agoadded using variable for screen positions in input setup menu
Holger Schemel [Fri, 20 Apr 2018 18:09:10 +0000 (20:09 +0200)]
added using variable for screen positions in input setup menu

6 years agoadded using some variables for font identifiers instead of constants
Holger Schemel [Fri, 20 Apr 2018 18:04:35 +0000 (20:04 +0200)]
added using some variables for font identifiers instead of constants

6 years agofixed centered screen position for keyboard/joystick configuration
Holger Schemel [Thu, 19 Apr 2018 23:10:25 +0000 (01:10 +0200)]
fixed centered screen position for keyboard/joystick configuration

6 years agofixed changing key bindings if customization aborted by "Escape" key
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.

6 years agochanged keyboard customization to be similar to joystick configuration
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.

6 years agochanged starting music for MM game engine after charging laser
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).

6 years agoadded saving static variables to engine snapshots for SP game engine
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.

6 years agoadded check to prevent crash when drawing sprites for undefined graphics
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.

6 years agochanged internal program versioning naming conventions
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).

6 years agoversion number set to 4.1.0.1
Holger Schemel [Thu, 12 Apr 2018 19:50:20 +0000 (21:50 +0200)]
version number set to 4.1.0.1

6 years agofixed tile selection cursor position for levels smaller than the playfield 4.1.0.0
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.

6 years agofixed always redrawing global border when redrawing playfield area
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.

6 years agoversion number set to 4.1.0.0
Holger Schemel [Fri, 6 Apr 2018 13:18:39 +0000 (15:18 +0200)]
version number set to 4.1.0.0

6 years agoadded always redrawing global border when redrawing playfield area
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).

6 years agoadded support for non-button touch pads for MM game engine
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.

6 years agoadded support for compiling non-default Windows icons into the executable
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.

6 years agofixed some level editor element descriptions
Holger Schemel [Sun, 25 Mar 2018 23:13:29 +0000 (01:13 +0200)]
fixed some level editor element descriptions

6 years agoadded using options for left/right/top/bottom spacing on some info screens
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

6 years agoadded options for left/right/top/bottom spacing for the 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

6 years agoreplaced some info screen positions with already defined symbolic names
Holger Schemel [Sun, 25 Mar 2018 00:17:37 +0000 (01:17 +0100)]
replaced some info screen positions with already defined symbolic names

6 years agofixed bug when creating static mappings of elements to graphics
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).

6 years agoadded centering levels that are smaller than the playfield (MM engine)
Holger Schemel [Fri, 23 Mar 2018 22:19:59 +0000 (23:19 +0100)]
added centering levels that are smaller than the playfield (MM engine)

6 years agofixed incorrect sizes of some arrays in menu info structure
Holger Schemel [Wed, 21 Mar 2018 20:28:08 +0000 (21:28 +0100)]
fixed incorrect sizes of some arrays in menu info structure

6 years agofixed compiling MM engine code with MinGW environment
Holger Schemel [Mon, 19 Mar 2018 21:49:22 +0000 (22:49 +0100)]
fixed compiling MM engine code with MinGW environment

6 years agofixed name of element 'beamer' to 'teleporter'
Holger Schemel [Sun, 18 Mar 2018 12:31:57 +0000 (13:31 +0100)]
fixed name of element 'beamer' to 'teleporter'

6 years agofixed name of element 'polarisator' to 'polarizer'
Holger Schemel [Sun, 18 Mar 2018 12:04:26 +0000 (13:04 +0100)]
fixed name of element 'polarisator' to 'polarizer'

6 years agofixed bug with deriving game data directory from default 'setup.conf'
Holger Schemel [Wed, 14 Mar 2018 18:41:20 +0000 (19:41 +0100)]
fixed bug with deriving game data directory from default 'setup.conf'

6 years agoremoved shortly visible video display when starting game from level editor
Holger Schemel [Sat, 10 Mar 2018 20:49:40 +0000 (21:49 +0100)]
removed shortly visible video display when starting game from level editor

6 years agoremoved short black screen when starting test 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

6 years agoadded message 'level solved' after solving a level
Holger Schemel [Sat, 10 Mar 2018 20:06:10 +0000 (21:06 +0100)]
added message 'level solved' after solving a level