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.
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.
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.
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.
Holger Schemel [Mon, 18 Mar 2019 22:53:08 +0000 (23:53 +0100)]
added fields to graphics info structure to store current mouse position
Holger Schemel [Sun, 17 Mar 2019 19:20:51 +0000 (20:20 +0100)]
added global animation event 'unclick:any' to handle mouse release events
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
Holger Schemel [Sat, 16 Mar 2019 10:05:05 +0000 (11:05 +0100)]
minor code formatting changes
Holger Schemel [Sat, 16 Mar 2019 10:01:19 +0000 (11:01 +0100)]
fixed handling key event actions by global animations in level editor
Holger Schemel [Thu, 14 Mar 2019 07:35:00 +0000 (08:35 +0100)]
added some more debug output for triggered 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.
Holger Schemel [Thu, 14 Mar 2019 01:01:49 +0000 (02:01 +0100)]
added some debug output for triggered global animations (deactivated)
Holger Schemel [Thu, 14 Mar 2019 00:55:36 +0000 (01:55 +0100)]
added support for more event types that can trigger global animations
Holger Schemel [Thu, 14 Mar 2019 00:38:49 +0000 (01:38 +0100)]
moved checking if click triggered other animations to separate function
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)
Holger Schemel [Tue, 12 Mar 2019 22:08:53 +0000 (23:08 +0100)]
added support for handling multiple event definitions for global animations
Holger Schemel [Tue, 12 Mar 2019 21:14:13 +0000 (22:14 +0100)]
cleanup of (boolean) animation event state handling
Holger Schemel [Tue, 12 Mar 2019 20:22:02 +0000 (21:22 +0100)]
added support for storing multiple event definitions for global animations
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
Holger Schemel [Thu, 7 Mar 2019 07:30:00 +0000 (08:30 +0100)]
fixed a few element token names (previously set to 'char_unused')
Holger Schemel [Wed, 6 Mar 2019 19:22:34 +0000 (20:22 +0100)]
fixed editor graphic of element "steel_char_space" (now visually different)
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.
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
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
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
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.
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.
Holger Schemel [Mon, 25 Feb 2019 20:46:54 +0000 (21:46 +0100)]
version number set to 4.1.2.1
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.
Holger Schemel [Thu, 21 Feb 2019 07:24:04 +0000 (08:24 +0100)]
fixed using (manually changed) invalid values for editor zoom tile size
Holger Schemel [Thu, 21 Feb 2019 00:48:54 +0000 (01:48 +0100)]
added more detailed messages for drag-and-drop actions
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
Holger Schemel [Mon, 18 Feb 2019 19:47:41 +0000 (20:47 +0100)]
fixed creating graphics without video device
Holger Schemel [Mon, 18 Feb 2019 08:09:42 +0000 (09:09 +0100)]
fixed compiler warning (introduced with GCC 7.1)
Holger Schemel [Sun, 17 Feb 2019 23:12:14 +0000 (00:12 +0100)]
fixed bug causing access to negative array index
Holger Schemel [Sun, 17 Feb 2019 21:11:12 +0000 (22:11 +0100)]
fixed compiler warning
Holger Schemel [Sun, 17 Feb 2019 21:02:36 +0000 (22:02 +0100)]
minor code cleanup
Holger Schemel [Sun, 17 Feb 2019 21:01:13 +0000 (22:01 +0100)]
fixed compiler warning
Holger Schemel [Sun, 17 Feb 2019 20:38:44 +0000 (21:38 +0100)]
fixed compilation problems of minizip code on Linux
Holger Schemel [Sun, 17 Feb 2019 18:58:28 +0000 (19:58 +0100)]
version number set to 4.1.2.0
Holger Schemel [Sun, 17 Feb 2019 18:57:03 +0000 (19:57 +0100)]
updated title text and border graphic to show current year
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.
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
Holger Schemel [Sat, 16 Feb 2019 09:52:55 +0000 (10:52 +0100)]
fixed bug with envelopes only displayed for the first player
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".
Holger Schemel [Wed, 13 Feb 2019 00:24:38 +0000 (01:24 +0100)]
fixed bug with summarized input actions in network games
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
Holger Schemel [Tue, 12 Feb 2019 23:44:29 +0000 (00:44 +0100)]
fixed bug with screen relocation on even sized playfield screen
Holger Schemel [Tue, 12 Feb 2019 23:36:20 +0000 (00:36 +0100)]
prepared some tool functions for the following commit
Holger Schemel [Tue, 12 Feb 2019 08:42:23 +0000 (09:42 +0100)]
small code cleanup
Holger Schemel [Mon, 11 Feb 2019 19:46:41 +0000 (20:46 +0100)]
minor whitespace change
Holger Schemel [Mon, 11 Feb 2019 19:17:28 +0000 (20:17 +0100)]
minor whitespace change
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
Holger Schemel [Sun, 10 Feb 2019 20:01:01 +0000 (21:01 +0100)]
fixed bug with not undrawing virtual buttons when moving finger away
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)
Holger Schemel [Sat, 9 Feb 2019 00:45:47 +0000 (01:45 +0100)]
added hiding complete setup sub-menus marked with '.hide'
Holger Schemel [Sat, 9 Feb 2019 00:23:59 +0000 (01:23 +0100)]
cleanup of handling setup options
Holger Schemel [Thu, 7 Feb 2019 22:40:30 +0000 (23:40 +0100)]
fixed bug when snapping envelope (introduced by commit
931d95b5)
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.
Holger Schemel [Tue, 5 Feb 2019 20:57:02 +0000 (21:57 +0100)]
minor comments and whitespace changes
Holger Schemel [Tue, 5 Feb 2019 20:54:29 +0000 (21:54 +0100)]
removed unneeded screen redraw
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
Holger Schemel [Tue, 5 Feb 2019 07:19:53 +0000 (08:19 +0100)]
removed code and image for using virtual buttons from image file
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.
Holger Schemel [Mon, 4 Feb 2019 21:11:51 +0000 (22:11 +0100)]
improved some code with more compact variant of same functionality
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).
Holger Schemel [Mon, 4 Feb 2019 08:26:00 +0000 (09:26 +0100)]
renamed variable
Holger Schemel [Mon, 4 Feb 2019 08:25:14 +0000 (09:25 +0100)]
moved some code outside loop that does not change in loop
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.
Holger Schemel [Sat, 2 Feb 2019 17:15:48 +0000 (18:15 +0100)]
removed file that was committed into the repository by error
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.
Holger Schemel [Sat, 2 Feb 2019 10:47:20 +0000 (11:47 +0100)]
fixed output of debug key actions
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
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.).
Holger Schemel [Thu, 24 Jan 2019 18:30:35 +0000 (19:30 +0100)]
removed unused variable
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.
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.)
Holger Schemel [Tue, 22 Jan 2019 19:52:51 +0000 (20:52 +0100)]
improved handling and confirming dropped level set zip files 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
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.
Holger Schemel [Tue, 15 Jan 2019 21:49:00 +0000 (22:49 +0100)]
fixed memory leak
Holger Schemel [Tue, 15 Jan 2019 20:44:33 +0000 (21:44 +0100)]
re-added some removed (deactivated) code (to be evaluated again)
Holger Schemel [Tue, 15 Jan 2019 20:09:17 +0000 (21:09 +0100)]
removed warning from "ar" on newer systems
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
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
Holger Schemel [Sat, 12 Jan 2019 20:17:55 +0000 (21:17 +0100)]
added adding extracted level and artwork info from dropped zip files
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
Holger Schemel [Thu, 10 Jan 2019 19:03:25 +0000 (20:03 +0100)]
added experimental (cross-platform) 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
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
Holger Schemel [Wed, 9 Jan 2019 23:05:48 +0000 (00:05 +0100)]
added generic support for listing and extracting zip files (using minizip)
Holger Schemel [Mon, 7 Jan 2019 19:10:04 +0000 (20:10 +0100)]
added some more automatically generated files to be ignored by Git
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.
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).
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
Holger Schemel [Mon, 7 Jan 2019 10:00:16 +0000 (11:00 +0100)]
fixed editor option to automatically count gems needed
Holger Schemel [Sat, 5 Jan 2019 12:29:54 +0000 (13:29 +0100)]
fixed network games playing empty level files that use level template
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
Holger Schemel [Fri, 4 Jan 2019 17:03:14 +0000 (18:03 +0100)]
added using preferred network player also in single-player mode
Holger Schemel [Sat, 29 Dec 2018 01:00:51 +0000 (02:00 +0100)]
added stopping text input when pressing joystick button