rocksndiamonds.git
2 years agoadded additional score information from score server to score info page
Holger Schemel [Tue, 1 Mar 2022 17:07:11 +0000 (18:07 +0100)]
added additional score information from score server to score info page

2 years agoadded selecting score entry from the score info screen
Holger Schemel [Thu, 24 Feb 2022 01:07:28 +0000 (02:07 +0100)]
added selecting score entry from the score info screen

2 years agomoved code to draw content of score info screen to separate function
Holger Schemel [Thu, 24 Feb 2022 00:57:42 +0000 (01:57 +0100)]
moved code to draw content of score info screen to separate function

2 years agomoved code to get rank string for hall of fame to separate function
Holger Schemel [Thu, 24 Feb 2022 00:47:13 +0000 (01:47 +0100)]
moved code to get rank string for hall of fame to separate function

2 years agoadded player rank to score info screen
Holger Schemel [Thu, 24 Feb 2022 00:41:05 +0000 (01:41 +0100)]
added player rank to score info screen

2 years agorenamed variable
Holger Schemel [Thu, 24 Feb 2022 00:38:34 +0000 (01:38 +0100)]
renamed variable

2 years agofixed bug with not unmapping gadgets from previous screen on score info
Holger Schemel [Wed, 23 Feb 2022 23:39:22 +0000 (00:39 +0100)]
fixed bug with not unmapping gadgets from previous screen on score info

2 years agofixed bug with wrong level number in hall of fame after winning a game
Holger Schemel [Wed, 23 Feb 2022 23:32:33 +0000 (00:32 +0100)]
fixed bug with wrong level number in hall of fame after winning a game

2 years agofixed treating already handled click on gadget as "leave screen" event
Holger Schemel [Wed, 23 Feb 2022 23:23:59 +0000 (00:23 +0100)]
fixed treating already handled click on gadget as "leave screen" event

This bug occured when clicking on the "previous level" or "next level"
gadget on the high score screen, followed by an empty scores screen,
which itself treats any button click as a "leave screen" event, thus
handling that mouse click twice, which results in that empty scores
screen to be immediately left (although it should wait for *another*
button click here, of course). This fix makes sure that button clicks
on gadgets that were already handled are not immediately handled again.

2 years agoadded basic score info page
Holger Schemel [Wed, 23 Feb 2022 22:45:43 +0000 (23:45 +0100)]
added basic score info page

2 years agoadded support for new game mode for score info page (not used yet)
Holger Schemel [Wed, 23 Feb 2022 22:42:51 +0000 (23:42 +0100)]
added support for new game mode for score info page (not used yet)

2 years agomoved code to get time string for hall of fame to separate function
Holger Schemel [Wed, 23 Feb 2022 22:33:43 +0000 (23:33 +0100)]
moved code to get time string for hall of fame to separate function

2 years agoadded selecting level from the high score screen
Holger Schemel [Mon, 21 Feb 2022 23:15:44 +0000 (00:15 +0100)]
added selecting level from the high score screen

2 years agofixed case of empty scores list even after loading from server
Holger Schemel [Mon, 21 Feb 2022 23:12:50 +0000 (00:12 +0100)]
fixed case of empty scores list even after loading from server

2 years agoadded functions to redraw and unmap screen gadgets
Holger Schemel [Mon, 21 Feb 2022 22:57:01 +0000 (23:57 +0100)]
added functions to redraw and unmap screen gadgets

2 years agocleanup of function parameters
Holger Schemel [Sat, 19 Feb 2022 01:15:32 +0000 (02:15 +0100)]
cleanup of function parameters

2 years agochanged high score screen to show only non-empty score entries
Holger Schemel [Fri, 18 Feb 2022 23:35:55 +0000 (00:35 +0100)]
changed high score screen to show only non-empty score entries

For high score screens without any scores, a special page is displayed
instead of only showing a navigation link back to the main menu.

2 years agomerged code for reloading updated server scores
Holger Schemel [Fri, 18 Feb 2022 17:56:18 +0000 (18:56 +0100)]
merged code for reloading updated server scores

2 years agomoved drawing title of "choose tree" screen to separate function
Holger Schemel [Fri, 18 Feb 2022 17:42:14 +0000 (18:42 +0100)]
moved drawing title of "choose tree" screen to separate function

2 years agoprepared some functions for empty scores list
Holger Schemel [Fri, 18 Feb 2022 17:28:59 +0000 (18:28 +0100)]
prepared some functions for empty scores list

2 years agochanged using generic "choose tree" screen for "hall of fame" screen
Holger Schemel [Thu, 17 Feb 2022 17:34:15 +0000 (18:34 +0100)]
changed using generic "choose tree" screen for "hall of fame" screen

This change makes it possible to use the high scores screen on touch
screen devices (especially scrolling through the complete high score
list) by adding a scroll bar and a back link entry to the main menu.

2 years agoadded support for score entry tree type
Holger Schemel [Thu, 17 Feb 2022 16:40:58 +0000 (17:40 +0100)]
added support for score entry tree type

2 years agochanged using function to get font offset for drawing
Holger Schemel [Thu, 17 Feb 2022 16:36:47 +0000 (17:36 +0100)]
changed using function to get font offset for drawing

2 years agomoved code to get font for "choose tree" screen to separate function
Holger Schemel [Thu, 17 Feb 2022 16:27:39 +0000 (17:27 +0100)]
moved code to get font for "choose tree" screen to separate function

2 years agomoved code to draw "choose tree" screen to separate function
Holger Schemel [Tue, 15 Feb 2022 18:33:26 +0000 (19:33 +0100)]
moved code to draw "choose tree" screen to separate function

2 years agomoved fading and playing sounds and music for "choose tree" screens
Holger Schemel [Tue, 15 Feb 2022 17:24:18 +0000 (18:24 +0100)]
moved fading and playing sounds and music for "choose tree" screens

2 years agoadded function to add top tree node with back link
Holger Schemel [Tue, 15 Feb 2022 16:50:36 +0000 (17:50 +0100)]
added function to add top tree node with back link

2 years agoadded setup option to start game in pause mode
Holger Schemel [Sun, 13 Feb 2022 10:32:39 +0000 (11:32 +0100)]
added setup option to start game in pause mode

2 years agoadded support for MOD and MP3 music for Emscripten platform
Holger Schemel [Tue, 8 Feb 2022 09:18:30 +0000 (10:18 +0100)]
added support for MOD and MP3 music for Emscripten platform

2 years agofixed packaging data files for Emscripten platform
Holger Schemel [Tue, 8 Feb 2022 08:20:19 +0000 (09:20 +0100)]
fixed packaging data files for Emscripten platform

2 years agoupdated Manifest file for Android platform
Holger Schemel [Thu, 10 Feb 2022 20:05:31 +0000 (21:05 +0100)]
updated Manifest file for Android platform

2 years agoupdated Gradle files for Android platform
Holger Schemel [Thu, 10 Feb 2022 20:05:13 +0000 (21:05 +0100)]
updated Gradle files for Android platform

2 years agoupdated SDL Java files for Android platform
Holger Schemel [Thu, 10 Feb 2022 19:02:12 +0000 (20:02 +0100)]
updated SDL Java files for Android platform

2 years agoupdated SDL version to 2.0.20 for Android platform
Holger Schemel [Thu, 10 Feb 2022 16:34:43 +0000 (17:34 +0100)]
updated SDL version to 2.0.20 for Android platform

2 years agoadded key shortcuts to restart and replay/resume (before end) the game
Holger Schemel [Thu, 3 Feb 2022 19:26:39 +0000 (20:26 +0100)]
added key shortcuts to restart and replay/resume (before end) the game

2 years agoversion number set to 4.3.2.0
Holger Schemel [Thu, 3 Feb 2022 19:13:54 +0000 (20:13 +0100)]
version number set to 4.3.2.0

2 years agofixed HTTP buffer size
Holger Schemel [Thu, 10 Feb 2022 08:34:49 +0000 (09:34 +0100)]
fixed HTTP buffer size

2 years agoversion number set to 4.3.1.2
Holger Schemel [Thu, 10 Feb 2022 18:20:44 +0000 (19:20 +0100)]
version number set to 4.3.1.2

2 years agominor code cleanup 4.3.1.1
Holger Schemel [Tue, 8 Feb 2022 16:54:51 +0000 (17:54 +0100)]
minor code cleanup

2 years agofixed redraw problems if screen field is much larger than playfield
Holger Schemel [Tue, 8 Feb 2022 16:48:52 +0000 (17:48 +0100)]
fixed redraw problems if screen field is much larger than playfield

This change prevents accessing graphic frames outside of bitmaps due
to negative bitmap positions, which can be caused by custom artwork
using a screen size that is significantly larger than the playfield.

2 years agofixed crash bug caused by accessing invalid (off-playfield) array positions
Holger Schemel [Tue, 8 Feb 2022 16:05:47 +0000 (17:05 +0100)]
fixed crash bug caused by accessing invalid (off-playfield) array positions

This bug caused accessing array "GfxFrame[][]" out of bounds if level
position is not inside the playfield. (This is always the case when
invoked from "DrawScreenElementExt()" for level border elements.

2 years agofixed crash bug caused by accessing invalid (off-playfield) array positions
Holger Schemel [Tue, 8 Feb 2022 15:17:42 +0000 (16:17 +0100)]
fixed crash bug caused by accessing invalid (off-playfield) array positions

This bug caused accessing array "GfxElementEmpty[][]" out of bounds if
level position is not inside the playfield.

2 years agoremoved unused variable
Holger Schemel [Mon, 7 Feb 2022 18:19:41 +0000 (19:19 +0100)]
removed unused variable

2 years agoadded support for more than five digits for score on game panel
Holger Schemel [Sun, 6 Feb 2022 23:07:11 +0000 (00:07 +0100)]
added support for more than five digits for score on game panel

2 years agoadded support for fourth digit for inventory (dynamite) count on game panel
Holger Schemel [Sun, 6 Feb 2022 19:00:52 +0000 (20:00 +0100)]
added support for fourth digit for inventory (dynamite) count on game panel

2 years agoadded using server score if higher than (potentially truncated) local score
Holger Schemel [Sun, 6 Feb 2022 14:42:45 +0000 (15:42 +0100)]
added using server score if higher than (potentially truncated) local score

2 years agofixed truncating score to 16-bit value in score file
Holger Schemel [Sun, 6 Feb 2022 11:58:43 +0000 (12:58 +0100)]
fixed truncating score to 16-bit value in score file

2 years agofixed crash bug when player was killed by explosion
Holger Schemel [Sun, 6 Feb 2022 01:56:55 +0000 (02:56 +0100)]
fixed crash bug when player was killed by explosion

2 years agoremoved warning when compiling for Windows platform
Holger Schemel [Sun, 6 Feb 2022 00:42:59 +0000 (01:42 +0100)]
removed warning when compiling for Windows platform

2 years agofixed bug with tape length less than "pause before end" seconds
Holger Schemel [Fri, 4 Feb 2022 08:10:37 +0000 (09:10 +0100)]
fixed bug with tape length less than "pause before end" seconds

2 years agoversion number set to 4.3.1.1
Holger Schemel [Sun, 6 Feb 2022 01:55:14 +0000 (02:55 +0100)]
version number set to 4.3.1.1

2 years agoupdated title text and border graphic to show current year 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 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

2 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

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

2 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

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