rocksndiamonds.git
4 days agoupdated title text and border graphic to show current year master 4.3.1.0
Holger Schemel [Sat, 22 Jan 2022 17:21:01 +0000 (18:21 +0100)]
updated title text and border graphic to show current year

4 days agoadded range check for checking sound and music loops
Holger Schemel [Wed, 29 Dec 2021 14:57:38 +0000 (15:57 +0100)]
added range check for checking sound and music loops

This fixes a bug when playing music on the music info screen that is
not configured in "musicinfo.conf", therefore getting a negative ID,
which caused an illegal array access when checking for music loop.

(The added range check takes into account that the default loop mode
for sounds is "false", but is "true" for music, if not specified.)

4 days agochanged using macros for checking sound and music loops
Holger Schemel [Wed, 29 Dec 2021 14:50:53 +0000 (15:50 +0100)]
changed using macros for checking sound and music loops

4 days agofixed using player name from command line when uploading solution tapes
Holger Schemel [Tue, 14 Dec 2021 22:05:57 +0000 (23:05 +0100)]
fixed using player name from command line when uploading solution tapes

4 days agoadded counting mouse clicks on mouse click CEs when using step counter
Holger Schemel [Sat, 11 Dec 2021 11:35:17 +0000 (12:35 +0100)]
added counting mouse clicks on mouse click CEs when using step counter

4 days agomoved code for incrementing level time step counter to separate function
Holger Schemel [Sat, 11 Dec 2021 11:25:01 +0000 (12:25 +0100)]
moved code for incrementing level time step counter to separate function

4 days agoadded restoring initial value for game element transparency
Holger Schemel [Sat, 27 Nov 2021 23:53:52 +0000 (00:53 +0100)]
added restoring initial value for game element transparency

4 days agofixed android cloning additional empty space elements
Holger Schemel [Fri, 26 Nov 2021 23:13:56 +0000 (00:13 +0100)]
fixed android cloning additional empty space elements

4 days agoadded support for graphic animations of empty space elements
Holger Schemel [Fri, 26 Nov 2021 23:11:11 +0000 (00:11 +0100)]
added support for graphic animations of empty space elements

4 days agoadded transparency for game elements over empty space elements
Holger Schemel [Fri, 26 Nov 2021 23:04:49 +0000 (00:04 +0100)]
added transparency for game elements over empty space elements

4 days agoadded basic support for additional empty space elements in game engine
Holger Schemel [Fri, 26 Nov 2021 23:03:17 +0000 (00:03 +0100)]
added basic support for additional empty space elements in game engine

4 days agochanged android not cloning additional empty space elements
Holger Schemel [Fri, 26 Nov 2021 15:48:39 +0000 (16:48 +0100)]
changed android not cloning additional empty space elements

4 days agoadded element property "walkable over" for all empty space elements
Holger Schemel [Fri, 26 Nov 2021 15:42:12 +0000 (16:42 +0100)]
added element property "walkable over" for all empty space elements

4 days agoadded editing empty space element settings in level editor
Holger Schemel [Fri, 26 Nov 2021 15:35:49 +0000 (16:35 +0100)]
added editing empty space element settings in level editor

4 days agoadded code for loading and saving empty space element settings
Holger Schemel [Fri, 26 Nov 2021 15:22:12 +0000 (16:22 +0100)]
added code for loading and saving empty space element settings

4 days agoadded some preprocessor macros for empty space elements
Holger Schemel [Fri, 26 Nov 2021 15:19:23 +0000 (16:19 +0100)]
added some preprocessor macros for empty space elements

4 days agoadded element property for all (run-time) empty space elements
Holger Schemel [Fri, 26 Nov 2021 15:12:22 +0000 (16:12 +0100)]
added element property for all (run-time) empty space elements

4 days agofixed comment
Holger Schemel [Fri, 26 Nov 2021 15:01:50 +0000 (16:01 +0100)]
fixed comment

4 days agoadded additional empty space elements to level editor
Holger Schemel [Fri, 26 Nov 2021 12:27:51 +0000 (13:27 +0100)]
added additional empty space elements to level editor

4 days agoadded additional empty space elements (not used yet)
Holger Schemel [Fri, 26 Nov 2021 12:06:07 +0000 (13:06 +0100)]
added additional empty space elements (not used yet)

4 days agochanged "random" default graphics animations to "random_static"
Holger Schemel [Wed, 24 Nov 2021 13:59:55 +0000 (14:59 +0100)]
changed "random" default graphics animations to "random_static"

4 days agofixed bug with undefined behaviour when shifting left by 32 or more
Holger Schemel [Sun, 21 Nov 2021 23:13:01 +0000 (00:13 +0100)]
fixed bug with undefined behaviour when shifting left by 32 or more

The C99 standard says that the result of shifting a number by the
width in bits (or more) of the operand is undefined. For intel
processors, the shift count is masked to five bits (masked with 31),
so trying to left shift a 32-bit value for 32 bits or more does not
result in zero, as it might be expected (at least not on intel CPUs).

4 days agoremoved "create CE image" command from "usage" output
Holger Schemel [Sun, 21 Nov 2021 10:30:47 +0000 (11:30 +0100)]
removed "create CE image" command from "usage" output

4 days agoimproved function to get integer from string
Holger Schemel [Sun, 21 Nov 2021 10:23:50 +0000 (11:23 +0100)]
improved function to get integer from string

4 days agoadded graphics animation mode "random_static" (unchanged for each tile)
Holger Schemel [Fri, 19 Nov 2021 10:26:43 +0000 (11:26 +0100)]
added graphics animation mode "random_static" (unchanged for each tile)

4 days agofixed updating tiled graphics only when needed
Holger Schemel [Fri, 19 Nov 2021 09:34:23 +0000 (10:34 +0100)]
fixed updating tiled graphics only when needed

4 days agoadded support for tiled level border graphics
Holger Schemel [Fri, 19 Nov 2021 08:55:52 +0000 (09:55 +0100)]
added support for tiled level border graphics

4 days agoadded graphics animation mode "tiled" for tiled graphics on elements
Holger Schemel [Thu, 18 Nov 2021 22:16:32 +0000 (23:16 +0100)]
added graphics animation mode "tiled" for tiled graphics on elements

4 days agoadded wrapper function for graphic animation frame at level position
Holger Schemel [Wed, 17 Nov 2021 19:57:01 +0000 (20:57 +0100)]
added wrapper function for graphic animation frame at level position

4 days agoadded showing mouse cursor for levels with mouse click custom elements
Holger Schemel [Fri, 15 Oct 2021 11:28:11 +0000 (13:28 +0200)]
added showing mouse cursor for levels with mouse click custom elements

4 days agoadded check for custom elements being "next to" player or element
Holger Schemel [Tue, 21 Sep 2021 21:06:34 +0000 (23:06 +0200)]
added check for custom elements being "next to" player or element

Custom elements are usually only checked for change events at a certain
point in time (for example, when a moving element hits another element).

This is also true for the already existing check "touching", which can
only trigger a custom element change at the exact moment something
happens, like a finished movement action or the change of another
element, at which time a check is performed if that action results in
an element touching the player or another element.

In contrast, the new change condition "next to" can cause an element
change at any time, independently of movements or changes of other
elements, as it permanently checks the static state of adjacent game
elements (or an element and the player). This can be used, for example,
to test for a non-moving, non-changing custom element being next to
another element. (This even works after starting a level, when it is
not possible without tricks (like changing a custom element to itself)
to check if two elements are next to each others.)

4 days agoversion number set to 4.3.1.0
Holger Schemel [Sat, 22 Jan 2022 16:57:40 +0000 (17:57 +0100)]
version number set to 4.3.1.0

2 weeks agoadded upgrading player UUID on score server for old UUID versions 4.3.0.3
Holger Schemel [Fri, 7 Jan 2022 00:54:50 +0000 (01:54 +0100)]
added upgrading player UUID on score server for old UUID versions

2 weeks agochanged using improved pseudo-random number generator for UUID generation
Holger Schemel [Thu, 6 Jan 2022 20:01:47 +0000 (21:01 +0100)]
changed using improved pseudo-random number generator for UUID generation

2 weeks agoremoved (inactive) call to UUID generation tests
Holger Schemel [Thu, 6 Jan 2022 19:59:19 +0000 (20:59 +0100)]
removed (inactive) call to UUID generation tests

2 weeks agoadded functions for testing UUID generation
Holger Schemel [Wed, 5 Jan 2022 17:08:44 +0000 (18:08 +0100)]
added functions for testing UUID generation

3 weeks agoadded abstraction for function for generating UUID
Holger Schemel [Wed, 5 Jan 2022 17:07:24 +0000 (18:07 +0100)]
added abstraction for function for generating UUID

3 weeks agochanged function name
Holger Schemel [Wed, 5 Jan 2022 17:04:14 +0000 (18:04 +0100)]
changed function name

3 weeks agoadded support for improved pseudo-random number generator
Holger Schemel [Wed, 5 Jan 2022 17:00:50 +0000 (18:00 +0100)]
added support for improved pseudo-random number generator

3 weeks agoadded improved pseudo-random number generator
Holger Schemel [Wed, 5 Jan 2022 11:42:33 +0000 (12:42 +0100)]
added improved pseudo-random number generator

6 weeks agoversion number set to 4.3.0.3
Holger Schemel [Sat, 11 Dec 2021 09:29:28 +0000 (10:29 +0100)]
version number set to 4.3.0.3

8 weeks agofixed receiving responses from score server 4.3.0.2
Holger Schemel [Wed, 1 Dec 2021 11:21:12 +0000 (12:21 +0100)]
fixed receiving responses from score server

This commit fixes problems with receiving (slightly) larger responses
from the score server, causing high score lists with many entries to
be cut off after a few dozen entries.

This bug was caused by misleading documentation of SDL_net function
"SDLNet_TCP_Recv()", which claims to "wait until the full requested
length is sent", which unfortunately is not correct. Instead, data
sent from the server has to be polled until everything is completely
transmitted (using the "Content-Length" field in the HTTP header).

2 months agoversion number set to 4.3.0.2
Holger Schemel [Wed, 17 Nov 2021 18:36:59 +0000 (19:36 +0100)]
version number set to 4.3.0.2

2 months agoimproved handling of failed tape uploads to score server 4.3.0.1
Holger Schemel [Thu, 11 Nov 2021 17:10:57 +0000 (18:10 +0100)]
improved handling of failed tape uploads to score server

When initially mass-uploading personal tapes, a single failed upload
caused the whole process to be restarted from scratch, ignoring all
tapes that were already uploaded. This improvement marks completely
uploaded tape directories to be able to skip them after failures and
repeated upload attempts. (In addition, non-existing tape directories
are skipped right away, without checking for each single tape file.)

Another improvement remembers if tapes were not uploaded (either
because the score server was disabled, or because uploading the tape
failed). If this happens, the game adds an entry to upload tapes to
the setup menu, and asks for uploading missing tapes on next start.

2 months agoversion number set to 4.3.0.1
Holger Schemel [Sat, 6 Nov 2021 10:11:31 +0000 (11:11 +0100)]
version number set to 4.3.0.1

2 months agochanged only saving server setup after uploading all tapes from setup menu 4.3.0.0
Holger Schemel [Tue, 2 Nov 2021 07:07:21 +0000 (08:07 +0100)]
changed only saving server setup after uploading all tapes from setup menu

2 months agofixed speedup for missing tapes when auto-playing/testing/uploading
Holger Schemel [Mon, 1 Nov 2021 09:08:21 +0000 (10:08 +0100)]
fixed speedup for missing tapes when auto-playing/testing/uploading

The tape check to speed up automatic tape playing/testing/uploading
for missing tapes (by skipping loading the level) was buggy, because
non-standard solution tapes (like Supaplex tapes that are part of the
level file) were also wrongly detected as "missing" (and therefore
skipped).

This problem was fixed by only checking for missing private tapes, but
not doing the check if handling solution tapes or explicitly specified
tape files.

This fixes commits e11fa67d and b4d5ee2c.

2 months agoadded asking before uploading scores and tapes for the first time
Holger Schemel [Sun, 31 Oct 2021 00:17:08 +0000 (02:17 +0200)]
added asking before uploading scores and tapes for the first time

2 months agocode cleanup
Holger Schemel [Sun, 31 Oct 2021 00:05:43 +0000 (02:05 +0200)]
code cleanup

2 months agochanged only saving server setup when checking for uploading all tapes
Holger Schemel [Sun, 31 Oct 2021 00:00:00 +0000 (02:00 +0200)]
changed only saving server setup when checking for uploading all tapes

2 months agoadded waiting for active API threads on program exit
Holger Schemel [Sat, 30 Oct 2021 18:17:18 +0000 (20:17 +0200)]
added waiting for active API threads on program exit

2 months agoadded counting active API threads
Holger Schemel [Sat, 30 Oct 2021 18:16:15 +0000 (20:16 +0200)]
added counting active API threads

2 months agofixed out-of-bounds bug when score was not added to high score list
Holger Schemel [Sat, 30 Oct 2021 12:16:43 +0000 (14:16 +0200)]
fixed out-of-bounds bug when score was not added to high score list

If the score is not added to the local high score list for a solved
level (because the high score table is completely full, and the new
score is not better than the lowest score entry in the list), there
was an out-of-bounds bug caused (by accessing the score array at
position "-1", which was not correctly handled as "no score entry").

This uncaught error condition could have caused various misbehavior
(inclusing crashes) of the game. This change fixes this bug.

2 months agoadded sending flag for using step counter to score server
Holger Schemel [Fri, 29 Oct 2021 13:52:47 +0000 (15:52 +0200)]
added sending flag for using step counter to score server

2 months agofixed lock-up when auto-testing tape which causes loop in game engine
Holger Schemel [Thu, 28 Oct 2021 14:39:54 +0000 (16:39 +0200)]
fixed lock-up when auto-testing tape which causes loop in game engine

It is possible to create endless loops in the game engine by using
recursive custom element properties. These endless loops are detected
and the user is notified by a request dialog about this problem to be
able to stop the running game. When auto-testing tapes on the command
line, answering a graphical request dialog is not possible, which
causes the program to hang.

This fix stops replaying the tape in this case (and skips the request
dialog), so auto-testing tapes can continue (with an unsolvable tape).

3 months agore-added using level number sub-directories when saving score tapes master-next-major-release
Holger Schemel [Mon, 25 Oct 2021 06:22:11 +0000 (08:22 +0200)]
re-added using level number sub-directories when saving score tapes

This reverts commit 94045da2.

3 months agoextended setup option to also offer showing server scores only
Holger Schemel [Sun, 24 Oct 2021 09:50:35 +0000 (11:50 +0200)]
extended setup option to also offer showing server scores only

3 months agoadded check to suppress error message if no scores found on score server
Holger Schemel [Sun, 24 Oct 2021 10:40:12 +0000 (12:40 +0200)]
added check to suppress error message if no scores found on score server

3 months agoadded sending level set name when getting scores from server
Holger Schemel [Sun, 24 Oct 2021 10:29:02 +0000 (12:29 +0200)]
added sending level set name when getting scores from server

3 months agofixed leaking open sockets when doing HTTP requests
Holger Schemel [Mon, 18 Oct 2021 23:09:20 +0000 (01:09 +0200)]
fixed leaking open sockets when doing HTTP requests

This commit fixes a very stupid bug in commit 98062496.

3 months agoadded sending flag for locally saved tape to score server
Holger Schemel [Sat, 16 Oct 2021 14:03:44 +0000 (16:03 +0200)]
added sending flag for locally saved tape to score server

3 months agoremoved using level number sub-directories when saving score tapes
Holger Schemel [Sat, 16 Oct 2021 17:10:04 +0000 (19:10 +0200)]
removed using level number sub-directories when saving score tapes

3 months agofixed linker flags when building for Emscripten platform
Holger Schemel [Thu, 14 Oct 2021 11:00:58 +0000 (13:00 +0200)]
fixed linker flags when building for Emscripten platform

3 months agoimproved asking for and uploading tapes to score server
Holger Schemel [Wed, 13 Oct 2021 09:51:02 +0000 (11:51 +0200)]
improved asking for and uploading tapes to score server

3 months agoadded asking for and uploading tapes to score server after changing user
Holger Schemel [Wed, 13 Oct 2021 09:32:49 +0000 (11:32 +0200)]
added asking for and uploading tapes to score server after changing user

3 months agoimproved error handling when uploading tapes to server
Holger Schemel [Tue, 12 Oct 2021 09:12:59 +0000 (11:12 +0200)]
improved error handling when uploading tapes to server

3 months agofixed endless loop if stopping tape while auto-playing
Holger Schemel [Fri, 8 Oct 2021 09:56:19 +0000 (11:56 +0200)]
fixed endless loop if stopping tape while auto-playing

3 months agoadded extreme speedup in case of missing tapes when auto-testing
Holger Schemel [Tue, 5 Oct 2021 16:06:15 +0000 (18:06 +0200)]
added extreme speedup in case of missing tapes when auto-testing

This uses the same tape check to speed things up in case of missing
tapes that was already used for uploading tapes in commit e11fa67d.

3 months agoadded printing tape date when dumping tape
Holger Schemel [Tue, 5 Oct 2021 14:00:06 +0000 (16:00 +0200)]
added printing tape date when dumping tape

3 months agofixed drawing initial header and item text to screen
Holger Schemel [Sat, 2 Oct 2021 12:41:52 +0000 (14:41 +0200)]
fixed drawing initial header and item text to screen

This commit partially reverts and fixes commit 6c9f59b4, removing a
speed bottleneck introduced by that commit, while keeping the fix from
that commit that should prevent not displaying the first of a series
of items displayed together with a header text.

3 months agoswapped condition logic to improve code readability
Holger Schemel [Wed, 29 Sep 2021 22:54:25 +0000 (00:54 +0200)]
swapped condition logic to improve code readability

3 months agofixed bug with using same player UUID for new player with same setup values
Holger Schemel [Wed, 29 Sep 2021 22:47:41 +0000 (00:47 +0200)]
fixed bug with using same player UUID for new player with same setup values

3 months agomoved new score server setup values to separate setup file
Holger Schemel [Wed, 29 Sep 2021 22:35:51 +0000 (00:35 +0200)]
moved new score server setup values to separate setup file

This change prevents wiping out the player UUID when using the setup
file with an older game version that would remove all new setup file
entries when saving setup values. This would especially destroy the
player UUID, which could then not be recovered to its previous value
(while all other new setup values could easily be set back again).

Using a new, different setup file for the player UUID (and all other
new score server setup values) solves this problem.

3 months agoadded wrapper function for loading and saving all setup files
Holger Schemel [Wed, 29 Sep 2021 21:50:31 +0000 (23:50 +0200)]
added wrapper function for loading and saving all setup files

3 months agochanged some platform strings
Holger Schemel [Wed, 29 Sep 2021 18:42:10 +0000 (20:42 +0200)]
changed some platform strings

3 months agofixed error handling when doing HTTP requests
Holger Schemel [Wed, 29 Sep 2021 18:13:49 +0000 (20:13 +0200)]
fixed error handling when doing HTTP requests

4 months agoadded fallback site to script to download SDL libraries
Holger Schemel [Sat, 25 Sep 2021 10:38:13 +0000 (12:38 +0200)]
added fallback site to script to download SDL libraries

4 months agoadded message when attempting to quit game on Emscripten platform
Holger Schemel [Sat, 25 Sep 2021 00:31:58 +0000 (02:31 +0200)]
added message when attempting to quit game on Emscripten platform

4 months agominor formatting change
Holger Schemel [Sat, 25 Sep 2021 00:31:02 +0000 (02:31 +0200)]
minor formatting change

4 months agoadded score server request handling for Emscripten platform
Holger Schemel [Sat, 25 Sep 2021 00:30:10 +0000 (02:30 +0200)]
added score server request handling for Emscripten platform

4 months agomoved code for HTTP request handling to separate functions
Holger Schemel [Sat, 25 Sep 2021 00:26:15 +0000 (02:26 +0200)]
moved code for HTTP request handling to separate functions

4 months agorenamed functions
Holger Schemel [Sat, 25 Sep 2021 00:08:38 +0000 (02:08 +0200)]
renamed functions

4 months agomerged API functions
Holger Schemel [Fri, 24 Sep 2021 23:45:30 +0000 (01:45 +0200)]
merged API functions

4 months agochanged API code to use thread data pointer instead of variables
Holger Schemel [Fri, 24 Sep 2021 23:42:33 +0000 (01:42 +0200)]
changed API code to use thread data pointer instead of variables

4 months agomoved creating and freeing API thread data to separate functions
Holger Schemel [Fri, 24 Sep 2021 14:25:27 +0000 (16:25 +0200)]
moved creating and freeing API thread data to separate functions

4 months agomoved API thread data structure definitions
Holger Schemel [Fri, 24 Sep 2021 14:15:56 +0000 (16:15 +0200)]
moved API thread data structure definitions

4 months agorenamed API related functions to match API names
Holger Schemel [Fri, 24 Sep 2021 14:13:43 +0000 (16:13 +0200)]
renamed API related functions to match API names

4 months agoadded function to create HTTP response object from buffer
Holger Schemel [Fri, 24 Sep 2021 14:08:47 +0000 (16:08 +0200)]
added function to create HTTP response object from buffer

4 months agoimproved robustness of client/server encoding functions
Holger Schemel [Fri, 24 Sep 2021 14:07:20 +0000 (16:07 +0200)]
improved robustness of client/server encoding functions

4 months agofixed threads for Emscripten
Holger Schemel [Thu, 23 Sep 2021 07:48:59 +0000 (09:48 +0200)]
fixed threads for Emscripten

4 months agofixed Makefile for Android
Holger Schemel [Wed, 22 Sep 2021 21:43:28 +0000 (23:43 +0200)]
fixed Makefile for Android

4 months agofixed potential buffer overflow bug
Holger Schemel [Wed, 22 Sep 2021 19:35:12 +0000 (21:35 +0200)]
fixed potential buffer overflow bug

4 months agoadded sending platform to score server
Holger Schemel [Wed, 22 Sep 2021 12:47:21 +0000 (14:47 +0200)]
added sending platform to score server

4 months agoadded restoring level number when interactively uploading tapes to server
Holger Schemel [Mon, 20 Sep 2021 21:15:00 +0000 (23:15 +0200)]
added restoring level number when interactively uploading tapes to server

4 months agoadded printing summary after uploading tapes to server
Holger Schemel [Mon, 20 Sep 2021 19:19:51 +0000 (21:19 +0200)]
added printing summary after uploading tapes to server

4 months agoadded restoring last level set when interactively uploading tapes to server
Holger Schemel [Mon, 20 Sep 2021 18:47:20 +0000 (20:47 +0200)]
added restoring last level set when interactively uploading tapes to server

4 months agochanged path and Makefile targets for engine test script
Holger Schemel [Mon, 20 Sep 2021 18:34:19 +0000 (20:34 +0200)]
changed path and Makefile targets for engine test script

4 months agoadded extreme speedup when uploading all existing private tapes
Holger Schemel [Mon, 20 Sep 2021 18:27:22 +0000 (20:27 +0200)]
added extreme speedup when uploading all existing private tapes

4 months agoversion number set to 4.3.0.0
Holger Schemel [Sun, 19 Sep 2021 11:28:33 +0000 (13:28 +0200)]
version number set to 4.3.0.0

4 months agoremoved writing tape file for upload if INFO chunk is missing or wrong
Holger Schemel [Thu, 16 Sep 2021 14:58:41 +0000 (16:58 +0200)]
removed writing tape file for upload if INFO chunk is missing or wrong