rocksndiamonds.git
2 days agofixed creating graphics without video device master 4.1.2.0
Holger Schemel [Mon, 18 Feb 2019 19:47:41 +0000 (20:47 +0100)]
fixed creating graphics without video device

2 days agofixed compiler warning (introduced with GCC 7.1)
Holger Schemel [Mon, 18 Feb 2019 08:09:42 +0000 (09:09 +0100)]
fixed compiler warning (introduced with GCC 7.1)

2 days agofixed bug causing access to negative array index
Holger Schemel [Sun, 17 Feb 2019 23:12:14 +0000 (00:12 +0100)]
fixed bug causing access to negative array index

2 days agofixed compiler warning
Holger Schemel [Sun, 17 Feb 2019 21:11:12 +0000 (22:11 +0100)]
fixed compiler warning

2 days agominor code cleanup
Holger Schemel [Sun, 17 Feb 2019 21:02:36 +0000 (22:02 +0100)]
minor code cleanup

2 days agofixed compiler warning
Holger Schemel [Sun, 17 Feb 2019 21:01:13 +0000 (22:01 +0100)]
fixed compiler warning

2 days agofixed compilation problems of minizip code on Linux
Holger Schemel [Sun, 17 Feb 2019 20:38:44 +0000 (21:38 +0100)]
fixed compilation problems of minizip code on Linux

3 days agoversion number set to 4.1.2.0
Holger Schemel [Sun, 17 Feb 2019 18:58:28 +0000 (19:58 +0100)]
version number set to 4.1.2.0

3 days agoupdated title text and border graphic to show current year
Holger Schemel [Sun, 17 Feb 2019 18:57:03 +0000 (19:57 +0100)]
updated title text and border graphic to show current year

3 days agofixed removing same player in level editor when drawing new player
Holger Schemel [Sun, 17 Feb 2019 18:35:56 +0000 (19:35 +0100)]
fixed removing same player in level editor when drawing new player

Before this fix, this feature did not work with player 2, 3 and 4,
and it also did not work with "sokoban field with player" element.

4 days agofixed bug with using too large scroll delay value on smaller playfields
Holger Schemel [Sat, 16 Feb 2019 11:48:07 +0000 (12:48 +0100)]
fixed bug with using too large scroll delay value on smaller playfields

4 days agofixed bug with envelopes only displayed for the first player
Holger Schemel [Sat, 16 Feb 2019 09:52:55 +0000 (10:52 +0100)]
fixed bug with envelopes only displayed for the first player

5 days agofixed bug with ignoring defined size for some main menu buttons
Holger Schemel [Thu, 14 Feb 2019 21:28:28 +0000 (22:28 +0100)]
fixed bug with ignoring defined size for some main menu buttons

This is a regression bug caused by commit e17dc52b, which changed the
handling of main menu buttons for first level, last level and level
number from "simple screen buttons" to "real gadgets". Unfortunately,
it also caused ignoring their width and height, instead using the
"default button size" of 32x32 pixels for them, regardless of their
width and height defined to other values in file "graphicsinfo.conf".

7 days agofixed bug with summarized input actions in network games
Holger Schemel [Wed, 13 Feb 2019 00:24:38 +0000 (01:24 +0100)]
fixed bug with summarized input actions in network games

7 days agofixed bug with not mapping input actions to focussed player in team mode
Holger Schemel [Wed, 13 Feb 2019 00:02:09 +0000 (01:02 +0100)]
fixed bug with not mapping input actions to focussed player in team mode

7 days agofixed bug with screen relocation on even sized playfield screen
Holger Schemel [Tue, 12 Feb 2019 23:44:29 +0000 (00:44 +0100)]
fixed bug with screen relocation on even sized playfield screen

7 days agoprepared some tool functions for the following commit
Holger Schemel [Tue, 12 Feb 2019 23:36:20 +0000 (00:36 +0100)]
prepared some tool functions for the following commit

8 days agosmall code cleanup
Holger Schemel [Tue, 12 Feb 2019 08:42:23 +0000 (09:42 +0100)]
small code cleanup

9 days agominor whitespace change
Holger Schemel [Mon, 11 Feb 2019 19:46:41 +0000 (20:46 +0100)]
minor whitespace change

9 days agominor whitespace change
Holger Schemel [Mon, 11 Feb 2019 19:17:28 +0000 (20:17 +0100)]
minor whitespace change

9 days agofixed bug with even sized playfield screen and levels without border element
Holger Schemel [Mon, 11 Feb 2019 19:16:12 +0000 (20:16 +0100)]
fixed bug with even sized playfield screen and levels without border element

10 days agofixed bug with not undrawing virtual buttons when moving finger away
Holger Schemel [Sun, 10 Feb 2019 20:01:01 +0000 (21:01 +0100)]
fixed bug with not undrawing virtual buttons when moving finger away

10 days agosmall code cleanup (using same order of variables and references to them)
Holger Schemel [Sat, 9 Feb 2019 00:47:41 +0000 (01:47 +0100)]
small code cleanup (using same order of variables and references to them)

10 days agoadded hiding complete setup sub-menus marked with '.hide'
Holger Schemel [Sat, 9 Feb 2019 00:45:47 +0000 (01:45 +0100)]
added hiding complete setup sub-menus marked with '.hide'

10 days agocleanup of handling setup options
Holger Schemel [Sat, 9 Feb 2019 00:23:59 +0000 (01:23 +0100)]
cleanup of handling setup options

10 days agofixed bug when snapping envelope (introduced by commit 931d95b5)
Holger Schemel [Thu, 7 Feb 2019 22:40:30 +0000 (23:40 +0100)]
fixed bug when snapping envelope (introduced by commit 931d95b5)

10 days agochanged drawing preview/network players if only level preview redefined
Holger Schemel [Thu, 7 Feb 2019 18:34:46 +0000 (19:34 +0100)]
changed drawing preview/network players if only level preview redefined

Problem: Drawing preview players (for team mode levels) and network
players (when connected to network server) in the main menu was added
at a time where already quite some custom artwork was created, which
did not know of these artwork definitions, so redefining the level
preview area might conflict with those player graphics added later
(and therefore maybe not redefined by these custom artwork sets).

Solution: If the position of the level preview is redefined, but the
positions of the preview or network player graphics are not redefined,
just skip drawing these player graphics.

10 days agominor comments and whitespace changes
Holger Schemel [Tue, 5 Feb 2019 20:57:02 +0000 (21:57 +0100)]
minor comments and whitespace changes

10 days agoremoved unneeded screen redraw
Holger Schemel [Tue, 5 Feb 2019 20:54:29 +0000 (21:54 +0100)]
removed unneeded screen redraw

10 days agofixed bug with not redrawing level number in main menu changed by cursor
Holger Schemel [Tue, 5 Feb 2019 20:49:11 +0000 (21:49 +0100)]
fixed bug with not redrawing level number in main menu changed by cursor

10 days agoremoved code and image for using virtual buttons from image file
Holger Schemel [Tue, 5 Feb 2019 07:19:53 +0000 (08:19 +0100)]
removed code and image for using virtual buttons from image file

2 weeks agofixed potential crash bug for special versions without "classic" artwork
Holger Schemel [Mon, 4 Feb 2019 21:44:54 +0000 (22:44 +0100)]
fixed potential crash bug for special versions without "classic" artwork

This bug can happen when using the program binary within a special,
customized version of R'n'D like "R'n'D jue" that does not contain
the usual "classic" artwork (like the graphics set "gfx_classic").

The problem is solved by doing a fallback to the default artwork set
(as it can be defined using "default_graphics_set") if the "classic"
artwork set cannot be found.

2 weeks agoimproved some code with more compact variant of same functionality
Holger Schemel [Mon, 4 Feb 2019 21:11:51 +0000 (22:11 +0100)]
improved some code with more compact variant of same functionality

2 weeks agoadded options for alignment of selection lists on setup sub-screens
Holger Schemel [Mon, 4 Feb 2019 20:59:07 +0000 (21:59 +0100)]
added options for alignment of selection lists on setup sub-screens

This adds two new "graphicsinfo.conf" options that are a bit special:

- menu.list.SETUP[CHOOSE_OTHER].align
- menu.list.SETUP[CHOOSE_OTHER].valign

These new options can be used for horizontal and vertical alignment
of selection lists on setup sub-screens (which cannot be adjusted
individually like the other setup screens using "menu.draw_xoffset"
and "menu.draw_yoffset").

Values are as usual: "left", "center" and "right" for ".align" and
"top", "middle", "bottom" for ".valign" (with "left" and "top" being
the default values).

2 weeks agorenamed variable
Holger Schemel [Mon, 4 Feb 2019 08:26:00 +0000 (09:26 +0100)]
renamed variable

2 weeks agomoved some code outside loop that does not change in loop
Holger Schemel [Mon, 4 Feb 2019 08:25:14 +0000 (09:25 +0100)]
moved some code outside loop that does not change in loop

2 weeks agofixed bug with cutting text on setup screens without scrollbar
Holger Schemel [Mon, 4 Feb 2019 08:10:18 +0000 (09:10 +0100)]
fixed bug with cutting text on setup screens without scrollbar

When drawing selection lists on setup sub-screens, text was always cut
on the right side to prevent drawing text over a potential scrollbar,
even if the selection list is short enough that there is no scrollbar.

Now it is checked if the setup sub-screens has a scrollbar or not, and
the right edge where text has to be cut is calculated accordingly.

2 weeks agoremoved file that was committed into the repository by error
Holger Schemel [Sat, 2 Feb 2019 17:15:48 +0000 (18:15 +0100)]
removed file that was committed into the repository by error

2 weeks agofixed bug when using Shift+click (IntelliDraw) in editor using empty space
Holger Schemel [Sat, 2 Feb 2019 17:07:21 +0000 (18:07 +0100)]
fixed bug when using Shift+click (IntelliDraw) in editor using empty space

Using "empty space" as the drawing element in the level editor caused
"high resolution" (half tile size) drawing even if the element under
the cursor is not a "high resolution" (Mirror Magic style) element,
causing buggy drawing when using "IntelliDraw" (Shift+click) drawing.

2 weeks agofixed output of debug key actions
Holger Schemel [Sat, 2 Feb 2019 10:47:20 +0000 (11:47 +0100)]
fixed output of debug key actions

2 weeks agoremoved drag-and-drop support if compiled with SDL version older than 2.0.5
Holger Schemel [Sat, 2 Feb 2019 10:29:29 +0000 (11:29 +0100)]
removed drag-and-drop support if compiled with SDL version older than 2.0.5

3 weeks agofixed incorrect drawing of players which are moving next to each others
Holger Schemel [Sat, 26 Jan 2019 12:19:24 +0000 (13:19 +0100)]
fixed incorrect drawing of players which are moving next to each others

Before, players which were moving next to each others without a free
tile between them were drawn incorrectly (with (usually black)
background tile graphics partially drawn over one of the players).

This problem is now fixed by drawing all player tiles layer by layer
(first drawing the background tiles for all players, then drawing the
players, then drawing elements in front of the players etc.).

3 weeks agoremoved unused variable
Holger Schemel [Thu, 24 Jan 2019 18:30:35 +0000 (19:30 +0100)]
removed unused variable

3 weeks agofixed bug with player moving when releasing one of several pressed snap keys
Holger Schemel [Thu, 24 Jan 2019 18:26:01 +0000 (19:26 +0100)]
fixed bug with player moving when releasing one of several pressed snap keys

When using TAS snap keys, pressing more than one snap key at the same
time and then releasing one of them caused the player to move.

3 weeks agoimproved handling and displaying dropped level set zip files into window
Holger Schemel [Thu, 24 Jan 2019 00:11:17 +0000 (01:11 +0100)]
improved handling and displaying dropped level set zip files into window

This change added the possibility to drop and extract zip files into
the currently displayed level set sub-directory on the "choose level
set" screen.

After dropping and extracting zip files on the "choose level set" or
"choose custom artwork" screens, the newly added level or artwork set
is displayed and pre-selected in the list of level or artwork sets,
so it can easily be loaded. (When dropping and extracting zip files
with level sets on the main menu screen, the last added level set will
be automatically selected and loaded.)

4 weeks agoimproved handling and confirming dropped level set zip files into window
Holger Schemel [Tue, 22 Jan 2019 19:52:51 +0000 (20:52 +0100)]
improved handling and confirming dropped level set zip files into window

4 weeks agoadded selecting new level set if dropped as zip file into window
Holger Schemel [Tue, 22 Jan 2019 00:18:52 +0000 (01:18 +0100)]
added selecting new level set if dropped as zip file into window

4 weeks agofixed bug with incorrectly initializing snapping in single-step mode
Holger Schemel [Mon, 21 Jan 2019 20:38:18 +0000 (21:38 +0100)]
fixed bug with incorrectly initializing snapping in single-step mode

When in single-step mode, snapping a tile (by using either TAS snap
keys or by using snap+direction keys) is followed by immediately
returning to pause mode. While this is fine, it was also followed by
initializing snapping (just as if the keys for snapping have been
released, which is usually indeed the case when in single-step mode,
but may be followed by pressing keys for snapping again, so the game
engine gets pressed snap keys in two subsequent frames without any
frame with "no snapping" action in between). When replaying a tape
with such snap actions (as recorded while playing), there is only one
single snap action (lasting two frames) when replaying, while there
were two snap actions (both lasting one frame) when recording, which
may result in different behaviour when replaying a recorded game.
(This can easily be tested by snapping several falling gems while in
single-step mode.)

This bug was fixed by removing the incorrect initialization of
snapping when returning to pause mode in single-step mode.

5 weeks agofixed memory leak
Holger Schemel [Tue, 15 Jan 2019 21:49:00 +0000 (22:49 +0100)]
fixed memory leak

5 weeks agore-added some removed (deactivated) code (to be evaluated again)
Holger Schemel [Tue, 15 Jan 2019 20:44:33 +0000 (21:44 +0100)]
re-added some removed (deactivated) code (to be evaluated again)

5 weeks agoremoved warning from "ar" on newer systems
Holger Schemel [Tue, 15 Jan 2019 20:09:17 +0000 (21:09 +0100)]
removed warning from "ar" on newer systems

5 weeks agoremoved obsolete special functions to add new level or artwork set to tree
Holger Schemel [Sun, 13 Jan 2019 12:17:55 +0000 (13:17 +0100)]
removed obsolete special functions to add new level or artwork set to tree

5 weeks agoadded generic function to add new level or artwork set to tree
Holger Schemel [Sun, 13 Jan 2019 12:10:50 +0000 (13:10 +0100)]
added generic function to add new level or artwork set to tree

5 weeks agoadded adding extracted level and artwork info from dropped zip files
Holger Schemel [Sat, 12 Jan 2019 20:17:55 +0000 (21:17 +0100)]
added adding extracted level and artwork info from dropped zip files

5 weeks agoadded extracting level and artwork sets from zip files dropped into window
Holger Schemel [Thu, 10 Jan 2019 23:07:45 +0000 (00:07 +0100)]
added extracting level and artwork sets from zip files dropped into window

5 weeks agoadded experimental (cross-platform) drag and drop test code
Holger Schemel [Thu, 10 Jan 2019 19:03:25 +0000 (20:03 +0100)]
added experimental (cross-platform) drag and drop test code

5 weeks agoremoved experimental (Windows specific) drag and drop test code
Holger Schemel [Thu, 10 Jan 2019 18:59:36 +0000 (19:59 +0100)]
removed experimental (Windows specific) drag and drop test code

5 weeks agoadded extracting level and artwork sets from zip files at program start
Holger Schemel [Wed, 9 Jan 2019 23:25:54 +0000 (00:25 +0100)]
added extracting level and artwork sets from zip files at program start

5 weeks agoadded generic support for listing and extracting zip files (using minizip)
Holger Schemel [Wed, 9 Jan 2019 23:05:48 +0000 (00:05 +0100)]
added generic support for listing and extracting zip files (using minizip)

6 weeks agoadded some more automatically generated files to be ignored by Git
Holger Schemel [Mon, 7 Jan 2019 19:10:04 +0000 (20:10 +0100)]
added some more automatically generated files to be ignored by Git

6 weeks agofixed potential crash bug (accessing invalid memory)
Holger Schemel [Mon, 7 Jan 2019 15:42:30 +0000 (16:42 +0100)]
fixed potential crash bug (accessing invalid memory)

This change fixes a bug that occured when invoking the changed
function with a "graphic" parameter indicating undefined graphic,
which is defined as "-1" and caused an "array out of bounds" access.

To fix this bug, the function parameter is checked before used.

6 weeks agofixed potential crash bug (accessing already destroyed SDL renderer)
Holger Schemel [Mon, 7 Jan 2019 15:20:39 +0000 (16:20 +0100)]
fixed potential crash bug (accessing already destroyed SDL renderer)

This bug was caused by destroying textures after reinitializing the
window, which causes the SDL renderer to be destroyed and created
for the new window. Unfortunately, to destroy the old textures (which
were created using the previous renderer), the old renderer is used,
causing access to already free()'d memory.

To fix this bug, all textures are destroyed before the renderer is
destroyed (and re-created).

This bug caused regular crashes of the Windows version of the game
when switching between level sets that redefine the window size
(while no such crashes were observed with the Linux or Mac version).

6 weeks agofixed bug with not fading menu music on title screen when changing level set
Holger Schemel [Mon, 7 Jan 2019 12:28:03 +0000 (13:28 +0100)]
fixed bug with not fading menu music on title screen when changing level set

6 weeks agofixed editor option to automatically count gems needed
Holger Schemel [Mon, 7 Jan 2019 10:00:16 +0000 (11:00 +0100)]
fixed editor option to automatically count gems needed

6 weeks agofixed network games playing empty level files that use level template
Holger Schemel [Sat, 5 Jan 2019 12:29:54 +0000 (13:29 +0100)]
fixed network games playing empty level files that use level template

6 weeks agoadded quickly toggling team mode by clicking on main menu "name/team" text
Holger Schemel [Fri, 4 Jan 2019 17:55:48 +0000 (18:55 +0100)]
added quickly toggling team mode by clicking on main menu "name/team" text

6 weeks agoadded using preferred network player also in single-player mode
Holger Schemel [Fri, 4 Jan 2019 17:03:14 +0000 (18:03 +0100)]
added using preferred network player also in single-player mode

7 weeks agoadded stopping text input when pressing joystick button
Holger Schemel [Sat, 29 Dec 2018 01:00:51 +0000 (02:00 +0100)]
added stopping text input when pressing joystick button

7 weeks agofixed bug with not updating game panel on maximum overload in MM engine
Holger Schemel [Fri, 28 Dec 2018 19:42:39 +0000 (20:42 +0100)]
fixed bug with not updating game panel on maximum overload in MM engine

7 weeks agofixed not closing doors simultaneously after solving a level
Holger Schemel [Fri, 28 Dec 2018 15:11:19 +0000 (16:11 +0100)]
fixed not closing doors simultaneously after solving a level

7 weeks agofixed playfield flashing black when game started from level editor
Holger Schemel [Fri, 28 Dec 2018 14:57:59 +0000 (15:57 +0100)]
fixed playfield flashing black when game started from level editor

7 weeks agofixed graphical bug with drawing tape controls over closed door
Holger Schemel [Fri, 28 Dec 2018 14:38:49 +0000 (15:38 +0100)]
fixed graphical bug with drawing tape controls over closed door

This bug happened in two cases where the game was started with the
tape door closed: When starting the game from the "hall of fame"
screen, and when starting the game from the level editor. In these
cases, tape controls were drawn over the closed tape door right
before the door was opened.

7 weeks agofixed main menu buttons for first level, last level and level number
Holger Schemel [Fri, 28 Dec 2018 00:14:18 +0000 (01:14 +0100)]
fixed main menu buttons for first level, last level and level number

These three buttons were handled as "main menu screen buttons"
(like the buttons and text labels for the main menu functions),
but should instead be handled as "real gadgets" (just like the
buttons to select previous or next level, but instead triggering
when mouse button is released).

This change was needed to show the button graphics for the active
state of these three buttons when mouse button was held clicked on
them.

7 weeks agoremoved lists of setup token names that were not really needed at all
Holger Schemel [Thu, 27 Dec 2018 14:04:12 +0000 (15:04 +0100)]
removed lists of setup token names that were not really needed at all

7 weeks agofixed bug with not saving editor cascade settings for two element groups
Holger Schemel [Thu, 27 Dec 2018 13:24:27 +0000 (14:24 +0100)]
fixed bug with not saving editor cascade settings for two element groups

This bug was caused by adding two new element groups to the level
editor palette area (for Mirror Magic and Deflektor elements), but not
adding them to the list of cascade settings to be saved.

The real problem was that two lists were kept in "src/files.c" for the
settings, and only one was updated when adding the new cascade groups.

To prevent similar bugs in the future, one of the two lists was
removed, as those definitions were not used anyway in this case.

2 months agofixed graphical bug when digging (crumbled) sand next to other player
Holger Schemel [Tue, 18 Dec 2018 23:09:50 +0000 (00:09 +0100)]
fixed graphical bug when digging (crumbled) sand next to other player

2 months agofixed bug in handling debug keys when compiled without symbol DEBUG defined
Holger Schemel [Mon, 17 Dec 2018 20:51:53 +0000 (21:51 +0100)]
fixed bug in handling debug keys when compiled without symbol DEBUG defined

2 months agofixed bug with CE actions "show envelope" and "exit player" when moving
Holger Schemel [Mon, 17 Dec 2018 08:14:05 +0000 (09:14 +0100)]
fixed bug with CE actions "show envelope" and "exit player" when moving

When using the CE actions "show envelope" or "exit player" with the
condition "after explosion of player", those actions are not performed
if the player was moving at the time of explosion, as they are both
waiting for the player to reach the next tile (which will never happen
in this case).

The best solution is to only check for a "non-moving" tile position of
the player if the player is still active, which will fix the problem.

However, as the check for a "non-moving" tile position is used very
frequently, setting the tile position to "non-moving" for inactive
players was added.

2 months agoadded using gadgets that do not overlap with virtual buttons on Android
Holger Schemel [Tue, 11 Dec 2018 23:18:45 +0000 (00:18 +0100)]
added using gadgets that do not overlap with virtual buttons on Android

2 months agoadded toggling virtual buttons using 'menu' button on Android
Holger Schemel [Tue, 11 Dec 2018 22:53:07 +0000 (23:53 +0100)]
added toggling virtual buttons using 'menu' button on Android

2 months agochanged request dialog to disable virtual buttons instead of hiding them
Holger Schemel [Tue, 11 Dec 2018 22:48:50 +0000 (23:48 +0100)]
changed request dialog to disable virtual buttons instead of hiding them

2 months agofixed short reactivation of overlay buttons while closing door after game
Holger Schemel [Tue, 11 Dec 2018 20:58:24 +0000 (21:58 +0100)]
fixed short reactivation of overlay buttons while closing door after game

2 months agofixed compiler warning due to missing function prototype
Holger Schemel [Tue, 11 Dec 2018 20:35:11 +0000 (21:35 +0100)]
fixed compiler warning due to missing function prototype

2 months agochanged fading complete screen only if all viewports have changed
Holger Schemel [Mon, 3 Dec 2018 23:23:54 +0000 (00:23 +0100)]
changed fading complete screen only if all viewports have changed

(... or if the global border has changed, of course)

This change partially reverses the behaviour caused by commit 5c6c42f1
("fixed fading complete screen if playfield viewport has changed"),
which prevented partially fading screens that only partially changed.

The main intention of this change is to make it possible that the tape
recorder viewport, if unchanged, keeps being visible while fading the
remaining parts of the screen (especially with artwork sets without
global border graphics).

However, if *all* viewports changed, the whole window will be faded.

2 months agorenamed function
Holger Schemel [Mon, 3 Dec 2018 22:34:54 +0000 (23:34 +0100)]
renamed function

2 months agofixed bug with comparing wrong viewport variables
Holger Schemel [Mon, 3 Dec 2018 21:49:26 +0000 (22:49 +0100)]
fixed bug with comparing wrong viewport variables

2 months agofixed bug with not clearing editor doors if no background image defined
Holger Schemel [Sun, 2 Dec 2018 01:59:39 +0000 (02:59 +0100)]
fixed bug with not clearing editor doors if no background image defined

2 months agoadded support for dynamic window and playfield size
Holger Schemel [Sat, 1 Dec 2018 11:30:29 +0000 (12:30 +0100)]
added support for dynamic window and playfield size

This change added a few new and extended directives for the graphics
configuration done in "graphicsinfo.conf" files in artwork and level
sets.

For the window and playfield definitions, there are new properties
".min_width" / ".min_height" and also ".max_width" / ".max_height"
to define minimum and maximum window and playfield sizes. This is
useful to dynamically support different screen sizes which have a
different screen aspect ratio (like tablets with 4:3 or 16:9 sized
screens), always using the full screen size without black borders
that cannot be used for the game.

To be able to place the "doors" (game panel and tape recorder) also
dynamically aligned with the right or bottom screen border, margins
can be defined for the playfield to not use these areas, which can
then be used for the doors being aligned to the corresponding window
edges. That's what the new ".margin_left", ".margin_right",
".margin_top" and ".margin_bottom" directives are for, together with
".align" and ".valign" properties to align the playfield or the doors
horizontally ("left", "center" or "right") or vertically ("top",
"middle", or "bottom").

To make sure that the game playfield always uses complete tiles (or
half tiles, or any other size), there's also a new directive called
".align_size" to specify the alignment tile size for the playfield
(which is set to half a tile by default).

The last enhancement extends playfield border sizes to be defined
for each border individually, so instead of a unique ".border_size"
for all playfield borders, different border sizes can be specified
by using ".border_left", ".border_right", ".border_top" and
".border_bottom". If they are not set, they inherit their value from
".border_size" just like before. Using the value "-1" causes borders
to be calculated dynamically -- this only makes sense when using a
variable window size (by using ".min_width" and/or ".min_height") with
a fixed playfield size, so borders can also have variable size. This
is mainly useful for using a fixed (or limited, by ".max_width/height)
playfield size while still being able to display global animations on
the whole surrounding playfield border area.

2 months agoadded support for dynamically sized (and placed) editor palette
Holger Schemel [Sat, 1 Dec 2018 10:50:32 +0000 (11:50 +0100)]
added support for dynamically sized (and placed) editor palette

When using the value "-1" for columns or rows of the editor palette
(that is, values "editor.palette.cols" and "editor.palette.rows"),
these numbers are dynamically calculated according to the size of the
editor playfield area.

When setting "editor.palette.x" or "editor.palette.y" to "-1", also
the position of the editor palette is dynamically calculated (to be
centered within the playfield area).

(As these values for columns and rows are used at a very early stage
in the level editor to allocate memory for palette buttons, make sure
that no negative numbers are used here for memory calculations.)

2 months agofixed potential crash bug with empty (padding) element buttons in editor
Holger Schemel [Sat, 1 Dec 2018 10:41:54 +0000 (11:41 +0100)]
fixed potential crash bug with empty (padding) element buttons in editor

This fixes a bug that can cause a crash when accessing memory that was
already free()'ed again, because the variable that contains the amount
of allocated memory is not updated when memory allocation changes.

The bug is fixed by updating that variable when memory is allocated.

2 months agofixed nasty x/y typo bug
Holger Schemel [Mon, 26 Nov 2018 23:18:35 +0000 (00:18 +0100)]
fixed nasty x/y typo bug

2 months agoimproved loading menu graphics config settings (more generic solution)
Holger Schemel [Wed, 21 Nov 2018 22:57:54 +0000 (23:57 +0100)]
improved loading menu graphics config settings (more generic solution)

3 months agoreplaced preprocessor constants with enum values
Holger Schemel [Sat, 17 Nov 2018 01:16:33 +0000 (02:16 +0100)]
replaced preprocessor constants with enum values

3 months agoremoved some unused stuff from MM engine code
Holger Schemel [Sat, 17 Nov 2018 00:24:53 +0000 (01:24 +0100)]
removed some unused stuff from MM engine code

3 months agofixed handling debug keys to prevent handling keys twice
Holger Schemel [Fri, 16 Nov 2018 21:25:30 +0000 (22:25 +0100)]
fixed handling debug keys to prevent handling keys twice

This change has two effects:

- handle debug keys before handling all other defined keys
- if debug key was processed, do not handle this key again

3 months agoadded deactivating text (and selectbox) gadgets with "Escape" key
Holger Schemel [Fri, 16 Nov 2018 20:52:26 +0000 (21:52 +0100)]
added deactivating text (and selectbox) gadgets with "Escape" key

3 months agoremoved leaving screens with "Escape" key if gadgets are active
Holger Schemel [Fri, 16 Nov 2018 20:22:29 +0000 (21:22 +0100)]
removed leaving screens with "Escape" key if gadgets are active

3 months agoadded showing virtual keyboard for playfield text input in editor (Android)
Holger Schemel [Fri, 16 Nov 2018 07:53:57 +0000 (08:53 +0100)]
added showing virtual keyboard for playfield text input in editor (Android)

3 months agofixed bug with stopping editor text input before reaching the last line
Holger Schemel [Fri, 16 Nov 2018 07:50:26 +0000 (08:50 +0100)]
fixed bug with stopping editor text input before reaching the last line

3 months agofixed bug with asking to play again after game over when playing tape
Holger Schemel [Thu, 15 Nov 2018 00:41:09 +0000 (01:41 +0100)]
fixed bug with asking to play again after game over when playing tape