rocksndiamonds.git
4 years agoadded forcing pointer-style global animations to stay inside window area
Holger Schemel [Mon, 22 Apr 2019 11:08:40 +0000 (13:08 +0200)]
added forcing pointer-style global animations to stay inside window area

4 years agoadded pumping events when waiting for screen redraw
Holger Schemel [Mon, 22 Apr 2019 10:47:58 +0000 (12:47 +0200)]
added pumping events when waiting for screen redraw

This is required for executing event filter to update mouse position
during actions without event handling (like fading screens).

4 years agofixed handling global animation click events
Holger Schemel [Mon, 22 Apr 2019 08:41:25 +0000 (10:41 +0200)]
fixed handling global animation click events

When handling global animation click events, it may happen that more
than one click event occurs within the same game frame (especially
when doing a click by tapping on a touch pad or screen, which may lead
to a "press" and "release" event within the same game frame).

Before, only the first click event was correctly handled (as the event
was not directly handled, but stored and processed later in the screen
redraw phase, when global animations are handled), while all following
events (that occurred within the same game frame) are usually lost if
they should be processed for the next part of the animation (which is
not active before the first event was processed).

Example: Global animation for a button that will be shown as "pressed"
after handling a "click" event and that will be shown as "unpressed"
again after handling a "release" event. If the "click" and "release"
events occur within the same game frame, the global animation still is
in the "unpressed" animation part when the "release" event is handled,
so it will be ignored and the button will stay in the "pressed" state.

To fix this buggy behavior, click (and release) events are now handled
immediately after they occur (instead of processing them in the screen
redraw phase), which results in changing the animation's active part
directly after the event occured, so the next event can be processed
by the next part of the animation.

4 years agofixed handling "Escape" key on high score screen
Holger Schemel [Sat, 20 Apr 2019 08:55:13 +0000 (10:55 +0200)]
fixed handling "Escape" key on high score screen

Before, pressing the "Escape" key on the high score screen after
solving a level when using the game setting "auto-play next level"
started playing the next level.

Now, only "positive" input actions (like pressing "Space" or "Enter"
or pressing a joystick button) start playing the next level, while a
"negative" input action like pressing the "Escape" key always returns
to the main menu even with this game setting activated.

4 years agofixed function to always return a string copy (and never a string constant)
Holger Schemel [Thu, 18 Apr 2019 23:04:35 +0000 (01:04 +0200)]
fixed function to always return a string copy (and never a string constant)

5 years agofixed some memory allocations to prevent valgrind warnings
Holger Schemel [Wed, 17 Apr 2019 20:18:23 +0000 (22:18 +0200)]
fixed some memory allocations to prevent valgrind warnings

5 years agofixed some memory allocations to prevent valgrind warnings
Holger Schemel [Wed, 17 Apr 2019 20:02:18 +0000 (22:02 +0200)]
fixed some memory allocations to prevent valgrind warnings

5 years agoadded function to update the mouse position when changing window size
Holger Schemel [Thu, 4 Apr 2019 22:00:53 +0000 (00:00 +0200)]
added function to update the mouse position when changing window size

5 years agoadded SDL event filter to track mouse position from mouse motion events
Holger Schemel [Thu, 4 Apr 2019 21:15:20 +0000 (23:15 +0200)]
added SDL event filter to track mouse position from mouse motion events

This (re-)adds a mouse motion event filter to update the current mouse
position for "pointer" class global animations, even if no events were
handled before, which improves smoothness of mouse pointer movement.

5 years agoimproved global animation class "pointer" for animation at mouse position
Holger Schemel [Wed, 3 Apr 2019 17:22:26 +0000 (19:22 +0200)]
improved global animation class "pointer" for animation at mouse position

When using this animation class, the "real" mouse pointer is made
invisible now.

5 years agoadded global animation actions executed after init/anim/post delay
Holger Schemel [Sat, 23 Mar 2019 21:58:54 +0000 (22:58 +0100)]
added global animation actions executed after init/anim/post delay

This change adds the following new options for global animations:

* .init_delay_action
* .anim_delay_action
* .post_delay_action

They can be set to the same values as ".init_event_action" and
".anim_event_action" (buttons, gadgets and key actions).

5 years agorenamed variable
Holger Schemel [Sat, 23 Mar 2019 21:18:10 +0000 (22:18 +0100)]
renamed variable

5 years agofixed bug with not recognizing ".init_event_action" for global animations
Holger Schemel [Sat, 23 Mar 2019 21:16:37 +0000 (22:16 +0100)]
fixed bug with not recognizing ".init_event_action" for global animations

5 years agofixed initializing post delay counter when starting global animation
Holger Schemel [Thu, 21 Mar 2019 23:30:15 +0000 (00:30 +0100)]
fixed initializing post delay counter when starting global animation

5 years agofixed inconsistent global animation state after event actions
Holger Schemel [Thu, 21 Mar 2019 23:05:57 +0000 (00:05 +0100)]
fixed inconsistent global animation state after event actions

When executing event actions for global animations, these actions may
cause a screen change, which itself may change the state of global
animations (especially stopping animations that were running on the
previous screen).

When executing event actions directly from the functions that handle
global animations, these functions may continue changing the state of
the global animation that caused the event action, even though this
animation was already stopped due to a screen change, which may cause
this animation to be set back to "active" ("running") state, so that
it continues being displayed on the new screen, even though it was
never defined for it.

This problem was fixed by executing all event actions independently
from the animation handling functions, by inserting new user events
into the program's standard event queue, to handle animation event
actions in a separate, independent step after all animations were
handled.

5 years agofixed handling global animation key event actions multiple times
Holger Schemel [Thu, 21 Mar 2019 22:36:36 +0000 (23:36 +0100)]
fixed handling global animation key event actions multiple times

When checking key events for triggering global animations, all keys
that are not handled as "click" events for the "any" animation event
were effectively treated like a "released button" event, which did
not have an effect if no mouse button was pressed at the same time.

However, when clicking on "clickable" global animations (those that
have a "click" animation event defined) with key event actions (that
will cause a simulated key press and release event), any key press
event that is not recognized as a "click" event will again be treated
like a "released button" event, causing the "button is pressed" state
in "HandleGlobalAnimClicks()" to be changed to "not pressed anymore",
so the still pressed mouse button will cause another "press event" in
"HandleGlobalAnimClicks()" right away, which will result in multiple
key events instead of one single key event. This may cause unexpected
and unwanted behaviour when handling global animation events.

This problem is fixed by only handling those key events for global
animations that will be handled as "click" events.

5 years agoadded generic support for handling user events
Holger Schemel [Thu, 21 Mar 2019 08:17:57 +0000 (09:17 +0100)]
added generic support for handling user events

5 years agocleanup of obsolete client message event from SDL 1.2
Holger Schemel [Wed, 20 Mar 2019 21:00:34 +0000 (22:00 +0100)]
cleanup of obsolete client message event from SDL 1.2

This event is only used for the "quit" event in SDL 2.0 now.

5 years agoremoved obsolete window events from SDL 1.2
Holger Schemel [Wed, 20 Mar 2019 20:50:38 +0000 (21:50 +0100)]
removed obsolete window events from SDL 1.2

These obsolete window events were used for SDL 1.2 support (which was
removed some time ago) and are not needed anymore. All corresponding
window events are handled by SDL_WINDOWEVENT in SDL 2.0 now.

5 years agofixed handling global animation key actions when mouse button is pressed
Holger Schemel [Wed, 20 Mar 2019 18:18:54 +0000 (19:18 +0100)]
fixed handling global animation key actions when mouse button is pressed

When handling key actions for global animations (like pressing "Enter"
or "Escape") which are translated into global animation click events,
they were ignored if a "real" mouse button is already held pressed at
the same time. This can especially happen with animation event actions
that simulate key press events when clicking on global animations, so
the key actions were ignored if the mouse button was held down for too
long.

This change forces key actions of global animations to be handled even
if a mouse button was pressed at the same time.

5 years agoadded global animation class "pointer" for animation at mouse position
Holger Schemel [Mon, 18 Mar 2019 22:57:46 +0000 (23:57 +0100)]
added global animation class "pointer" for animation at mouse position

The animation's x and y position values are used to set the animation
position relative to the mouse pointer position when using this class.

5 years agoadded fields to graphics info structure to store current mouse position
Holger Schemel [Mon, 18 Mar 2019 22:53:08 +0000 (23:53 +0100)]
added fields to graphics info structure to store current mouse position

5 years agoadded global animation event 'unclick:any' to handle mouse release events
Holger Schemel [Sun, 17 Mar 2019 19:20:51 +0000 (20:20 +0100)]
added global animation event 'unclick:any' to handle mouse release events

5 years agofixed wrong position of global animations in 'door_2' in level editor
Holger Schemel [Sat, 16 Mar 2019 20:50:49 +0000 (21:50 +0100)]
fixed wrong position of global animations in 'door_2' in level editor

5 years agominor code formatting changes
Holger Schemel [Sat, 16 Mar 2019 10:05:05 +0000 (11:05 +0100)]
minor code formatting changes

5 years agofixed handling key event actions by global animations in level editor
Holger Schemel [Sat, 16 Mar 2019 10:01:19 +0000 (11:01 +0100)]
fixed handling key event actions by global animations in level editor

5 years agoadded some more debug output for triggered global animations
Holger Schemel [Thu, 14 Mar 2019 07:35:00 +0000 (08:35 +0100)]
added some more debug output for triggered global animations

5 years agoadded several new event types that can trigger global animations
Holger Schemel [Thu, 14 Mar 2019 01:15:36 +0000 (02:15 +0100)]
added several new event types that can trigger global animations

This change adds the following new global animations event types,
which can be used like the already existing "click:anim_X.part_Y":

* init:anim_X.part_Y  - triggers when animation is initialized
* start:anim_X.part_Y - triggers when animation is started
* end:anim_X.part_Y   - triggers when animation ends
* post:anim_X.part_Y  - triggers when animation post delay ends

The second part ".part_Y" is optional; if missing, events for every
animation part will trigger the animation for which this event is
defined.

The "init" event will trigger even if the animation is not yet
displayed, but starts waiting for its "init_delay" or "init_event",
while the "start" event will trigger when the first frame of the
animation is displayed.

The "end" event will trigger when the last frame of the animation is
displayed (either because the animation has stopped due to a click
event, due to the "anim_delay" being finished or because the animation
has completely moved off the screen), while the "post" event will
trigger when the "post_delay" is completely finished.

5 years agoadded some debug output for triggered global animations (deactivated)
Holger Schemel [Thu, 14 Mar 2019 01:01:49 +0000 (02:01 +0100)]
added some debug output for triggered global animations (deactivated)

5 years agoadded support for more event types that can trigger global animations
Holger Schemel [Thu, 14 Mar 2019 00:55:36 +0000 (01:55 +0100)]
added support for more event types that can trigger global animations

5 years agomoved checking if click triggered other animations to separate function
Holger Schemel [Thu, 14 Mar 2019 00:38:49 +0000 (01:38 +0100)]
moved checking if click triggered other animations to separate function

5 years agoadded support for more event types for global animations (yet to be added)
Holger Schemel [Wed, 13 Mar 2019 19:25:02 +0000 (20:25 +0100)]
added support for more event types for global animations (yet to be added)

5 years agoadded support for handling multiple event definitions for global animations
Holger Schemel [Tue, 12 Mar 2019 22:08:53 +0000 (23:08 +0100)]
added support for handling multiple event definitions for global animations

5 years agocleanup of (boolean) animation event state handling
Holger Schemel [Tue, 12 Mar 2019 21:14:13 +0000 (22:14 +0100)]
cleanup of (boolean) animation event state handling

5 years agoadded support for storing multiple event definitions for global animations
Holger Schemel [Tue, 12 Mar 2019 20:22:02 +0000 (21:22 +0100)]
added support for storing multiple event definitions for global animations

5 years agomoved functions to parse GIC parameters from 'libgame' to main source tree
Holger Schemel [Tue, 12 Mar 2019 07:24:18 +0000 (08:24 +0100)]
moved functions to parse GIC parameters from 'libgame' to main source tree

5 years agofixed a few element token names (previously set to 'char_unused')
Holger Schemel [Thu, 7 Mar 2019 07:30:00 +0000 (08:30 +0100)]
fixed a few element token names (previously set to 'char_unused')

5 years agofixed editor graphic of element "steel_char_space" (now visually different)
Holger Schemel [Wed, 6 Mar 2019 19:22:34 +0000 (20:22 +0100)]
fixed editor graphic of element "steel_char_space" (now visually different)

5 years agochanged some level editor graphic definitions to use in-game graphics
Holger Schemel [Tue, 5 Mar 2019 23:12:21 +0000 (00:12 +0100)]
changed some level editor graphic definitions to use in-game graphics

The old definitions still came from a time where downscaled graphics
did not use interpolation and therefore did not look well with those
graphics also used in-game.

5 years agofixed creating level sketch images for DF/MM elements and for SQL statements
Holger Schemel [Tue, 5 Mar 2019 22:53:12 +0000 (23:53 +0100)]
fixed creating level sketch images for DF/MM elements and for SQL statements

5 years agoadded cycling through all zoom tilesizes in editor when using touch device
Holger Schemel [Sun, 3 Mar 2019 17:08:35 +0000 (18:08 +0100)]
added cycling through all zoom tilesizes in editor when using touch device

5 years agoadded detecting use of touch device for user input on current platform
Holger Schemel [Sun, 3 Mar 2019 17:06:40 +0000 (18:06 +0100)]
added detecting use of touch device for user input on current platform

5 years agofixed graphical bugs caused by commit f77bbb8f and 1b4dc759
Holger Schemel [Wed, 27 Feb 2019 21:35:32 +0000 (22:35 +0100)]
fixed graphical bugs caused by commit f77bbb8f and 1b4dc759

Each of these two commits exactly do the reverse of the other commit,
both still resulting in graphical bugs (that the corresponding other
commit fixes).

This change should fix both problems, resulting in (a) playfield not
flashing black when game started from level editor and (b) different
global borders when playing from level editor being correctly drawn.

5 years agofixed level editor copy/paste using Ctrl-c/v for custom/group/DF elements
Holger Schemel [Wed, 27 Feb 2019 21:02:12 +0000 (22:02 +0100)]
fixed level editor copy/paste using Ctrl-c/v for custom/group/DF elements

Before, all custom/group elements were mapped to first custom/group
element when copying them to the clipboard (as this was fine for level
sketches, which do not use any custom artwork anyway), but of course
this breaks copying level playfields in the level editor.

This bug was fixed (which will require updating/extending the level
sketch images for the R'n'D web forum).

Besides this, level sketches from level playfields that contain game
elements with a higher element number than 999 are changed to use a
format of always four digits for all game elements (which will also
require updating/extending the level sketch images for the forum).

Last but not least, while level sketches with four-digit element
number were already created, they were not parsed correctly when
reading them back from the clipboard, which was fixed, too.

5 years agoversion number set to 4.1.2.1
Holger Schemel [Mon, 25 Feb 2019 20:46:54 +0000 (21:46 +0100)]
version number set to 4.1.2.1

5 years agofixed level sketch copy/paste via clipboard on Windows (using CR+LF)
Holger Schemel [Mon, 25 Feb 2019 20:40:52 +0000 (21:40 +0100)]
fixed level sketch copy/paste via clipboard on Windows (using CR+LF)

Before, level sketch copy/paste using Ctrl-c/v in level editor did not
work on Windows, where lines of text in the clipboard are terminated
with CR+LF (carriage return and line feed) instead of simple newlines.

This fixes this bug, and makes parsing level sketches from clipboard
a little bit more robust regarding empty lines and garbage text.

5 years agofixed using (manually changed) invalid values for editor zoom tile size
Holger Schemel [Thu, 21 Feb 2019 07:24:04 +0000 (08:24 +0100)]
fixed using (manually changed) invalid values for editor zoom tile size

5 years agoadded more detailed messages for drag-and-drop actions
Holger Schemel [Thu, 21 Feb 2019 00:48:54 +0000 (01:48 +0100)]
added more detailed messages for drag-and-drop actions

5 years agofixed drag-and-drop support for SDL older than version 2.0.5
Holger Schemel [Wed, 20 Feb 2019 23:59:11 +0000 (00:59 +0100)]
fixed drag-and-drop support for SDL older than version 2.0.5

5 years agofixed creating graphics without video device 4.1.2.0
Holger Schemel [Mon, 18 Feb 2019 19:47:41 +0000 (20:47 +0100)]
fixed creating graphics without video device

5 years 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)

5 years 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

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

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

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

5 years 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

5 years 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

5 years 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

5 years 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.

5 years 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

5 years 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 years 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".

5 years 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

5 years 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

5 years 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

5 years 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

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

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

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

5 years 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

5 years 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

5 years 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)

5 years 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'

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

5 years 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)

5 years 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.

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

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

5 years 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

5 years 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

5 years 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.

5 years 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

5 years 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).

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

5 years 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

5 years 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.

5 years 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

5 years 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.

5 years 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

5 years 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

5 years 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.).

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

5 years 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.

5 years 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.)

5 years 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

5 years 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

5 years 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 years agofixed memory leak
Holger Schemel [Tue, 15 Jan 2019 21:49:00 +0000 (22:49 +0100)]
fixed memory leak

5 years 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 years 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