rocksndiamonds.git
2 years 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

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

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

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

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

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

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

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

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

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

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

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

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

3 years 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 years agore-added using level number sub-directories when saving score tapes
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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years agochanged some platform strings
Holger Schemel [Wed, 29 Sep 2021 18:42:10 +0000 (20:42 +0200)]
changed some platform strings

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 years agoadded using command line level identifier/nr for single tape tests/uploads
Holger Schemel [Thu, 16 Sep 2021 14:56:20 +0000 (16:56 +0200)]
added using command line level identifier/nr for single tape tests/uploads

3 years agoadded command line options for level identifier/nr for tape tests/uploads
Holger Schemel [Thu, 16 Sep 2021 14:49:42 +0000 (16:49 +0200)]
added command line options for level identifier/nr for tape tests/uploads

3 years agochanged using command line player name only for tape tests/uploads
Holger Schemel [Thu, 16 Sep 2021 14:47:29 +0000 (16:47 +0200)]
changed using command line player name only for tape tests/uploads

3 years agoadded saving tape without INFO chunk to temporary file before uploading
Holger Schemel [Tue, 14 Sep 2021 22:25:31 +0000 (00:25 +0200)]
added saving tape without INFO chunk to temporary file before uploading

3 years agocode cleanup
Holger Schemel [Sun, 12 Sep 2021 23:10:40 +0000 (01:10 +0200)]
code cleanup

3 years agoadded checking for missing INFO chunk when loading tape by filename only
Holger Schemel [Sun, 12 Sep 2021 23:09:13 +0000 (01:09 +0200)]
added checking for missing INFO chunk when loading tape by filename only

3 years agoadded saving incorrect solution tape to temporary file before uploading
Holger Schemel [Sun, 12 Sep 2021 22:56:26 +0000 (00:56 +0200)]
added saving incorrect solution tape to temporary file before uploading

3 years agoadded definitions for using test score server
Holger Schemel [Sun, 12 Sep 2021 11:27:07 +0000 (13:27 +0200)]
added definitions for using test score server

3 years agoadded sending timestamp of batch tape uploads to score server
Holger Schemel [Sun, 12 Sep 2021 11:13:45 +0000 (13:13 +0200)]
added sending timestamp of batch tape uploads to score server

3 years agomoved code for hiding tapes upload to setup menu function
Holger Schemel [Tue, 7 Sep 2021 08:40:28 +0000 (10:40 +0200)]
moved code for hiding tapes upload to setup menu function

3 years agorenamed setup option for using score server
Holger Schemel [Mon, 6 Sep 2021 22:22:21 +0000 (00:22 +0200)]
renamed setup option for using score server

3 years agoadded setup file option to toggle setup menu option to upload all tapes
Holger Schemel [Mon, 6 Sep 2021 22:03:19 +0000 (00:03 +0200)]
added setup file option to toggle setup menu option to upload all tapes

3 years agoadded setup menu option to upload all tapes to score server
Holger Schemel [Mon, 6 Sep 2021 21:21:24 +0000 (23:21 +0200)]
added setup menu option to upload all tapes to score server

3 years agochanged interface for functions to auto-play tapes to return played tapes
Holger Schemel [Sun, 5 Sep 2021 22:20:48 +0000 (00:20 +0200)]
changed interface for functions to auto-play tapes to return played tapes

3 years agoadded asking for and uploading tapes to score server (only once)
Holger Schemel [Sun, 5 Sep 2021 22:16:46 +0000 (00:16 +0200)]
added asking for and uploading tapes to score server (only once)

3 years agochanged interface for functions to auto-play tapes
Holger Schemel [Sun, 5 Sep 2021 22:07:52 +0000 (00:07 +0200)]
changed interface for functions to auto-play tapes

3 years agoadded setup option to ask for uploading tapes to score server
Holger Schemel [Sun, 5 Sep 2021 21:45:40 +0000 (23:45 +0200)]
added setup option to ask for uploading tapes to score server

3 years agochanged function from static to public
Holger Schemel [Sun, 5 Sep 2021 21:42:22 +0000 (23:42 +0200)]
changed function from static to public

3 years agoimproved debug output for level or artwork tree info dump
Holger Schemel [Sun, 5 Sep 2021 19:15:00 +0000 (21:15 +0200)]
improved debug output for level or artwork tree info dump

3 years agoimproved drawing initial header and item text to screen
Holger Schemel [Sun, 5 Sep 2021 19:14:07 +0000 (21:14 +0200)]
improved drawing initial header and item text to screen

3 years agoimproved code for drawing init text to screen
Holger Schemel [Sun, 5 Sep 2021 18:54:49 +0000 (20:54 +0200)]
improved code for drawing init text to screen

3 years agoadded support to auto-play/test/etc. all existing tapes
Holger Schemel [Sat, 4 Sep 2021 11:53:11 +0000 (13:53 +0200)]
added support to auto-play/test/etc. all existing tapes

3 years agominor code change
Holger Schemel [Sat, 4 Sep 2021 11:43:41 +0000 (13:43 +0200)]
minor code change

3 years agomoved code to initialize level set when auto playing tapes
Holger Schemel [Sat, 4 Sep 2021 11:28:48 +0000 (13:28 +0200)]
moved code to initialize level set when auto playing tapes

3 years agomoved code for tape replay header and summary to separate functions
Holger Schemel [Sat, 4 Sep 2021 10:16:56 +0000 (12:16 +0200)]
moved code for tape replay header and summary to separate functions

3 years agomoved variables for auto playing tapes to separate structure
Holger Schemel [Sat, 4 Sep 2021 10:13:09 +0000 (12:13 +0200)]
moved variables for auto playing tapes to separate structure

3 years agofixed wrong variable type
Holger Schemel [Sat, 4 Sep 2021 08:10:06 +0000 (10:10 +0200)]
fixed wrong variable type

3 years agocode cleanup
Holger Schemel [Fri, 3 Sep 2021 13:45:14 +0000 (15:45 +0200)]
code cleanup

3 years agoadded function to get next valid tree node
Holger Schemel [Fri, 3 Sep 2021 13:40:34 +0000 (15:40 +0200)]
added function to get next valid tree node

3 years agofixed tree node navigation bug (when stepping up empty sub-trees)
Holger Schemel [Fri, 3 Sep 2021 13:22:48 +0000 (15:22 +0200)]
fixed tree node navigation bug (when stepping up empty sub-trees)

3 years agoimproved comments
Holger Schemel [Fri, 3 Sep 2021 13:17:19 +0000 (15:17 +0200)]
improved comments

3 years agoremoved unnecessary "else if" structure
Holger Schemel [Fri, 3 Sep 2021 13:13:58 +0000 (15:13 +0200)]
removed unnecessary "else if" structure

3 years agoadded leaf node count to level/artwork tree info dump
Holger Schemel [Fri, 3 Sep 2021 12:55:32 +0000 (14:55 +0200)]
added leaf node count to level/artwork tree info dump

3 years agoadded saving non-standard solution tape to temporary file before uploading
Holger Schemel [Mon, 23 Aug 2021 10:25:57 +0000 (12:25 +0200)]
added saving non-standard solution tape to temporary file before uploading

3 years agoadded function to get temporary tape filename
Holger Schemel [Mon, 23 Aug 2021 10:16:58 +0000 (12:16 +0200)]
added function to get temporary tape filename

3 years agomoved getting different solution tape filenames to separate functions
Holger Schemel [Mon, 23 Aug 2021 10:14:24 +0000 (12:14 +0200)]
moved getting different solution tape filenames to separate functions

3 years agoadded requiring player name when uploading solution tapes via command line
Holger Schemel [Mon, 23 Aug 2021 08:31:34 +0000 (10:31 +0200)]
added requiring player name when uploading solution tapes via command line

3 years agoadded command line option for anonymous player name for score uploads
Holger Schemel [Sat, 21 Aug 2021 08:49:53 +0000 (10:49 +0200)]
added command line option for anonymous player name for score uploads

3 years agoadded always using game version in requests to score server
Holger Schemel [Fri, 20 Aug 2021 14:26:15 +0000 (16:26 +0200)]
added always using game version in requests to score server

3 years agoadded renaming player also on score server
Holger Schemel [Mon, 16 Aug 2021 21:39:56 +0000 (23:39 +0200)]
added renaming player also on score server