rocksndiamonds.git
3 years agochanged function interface
Holger Schemel [Tue, 18 Feb 2020 17:02:33 +0000 (18:02 +0100)]
changed function interface

3 years agochanged frame counter for EM engine counting upward instead of downward
Holger Schemel [Tue, 18 Feb 2020 15:37:17 +0000 (16:37 +0100)]
changed frame counter for EM engine counting upward instead of downward

3 years agomoved calling EM engine logic to corresponding source file
Holger Schemel [Tue, 18 Feb 2020 15:02:09 +0000 (16:02 +0100)]
moved calling EM engine logic to corresponding source file

3 years agoremoved empty function
Holger Schemel [Tue, 18 Feb 2020 14:59:54 +0000 (15:59 +0100)]
removed empty function

3 years agochanged handling of chain explosions in EM engine
Holger Schemel [Tue, 18 Feb 2020 14:24:47 +0000 (15:24 +0100)]
changed handling of chain explosions in EM engine

So far, chain explosions in the native EM game engine were not handled
like in the original Kingsoft or EMC player on the Amiga, which can be
tested with a burning dynamite surrounded by eight bugs, which explode
to only one diamond (and lots of emeralds) instead of four diamonds.

This was changed now (while keeping the old behaviour for old tapes).

3 years agominor change to handle explosion sound for EM engine
Holger Schemel [Tue, 18 Feb 2020 12:22:33 +0000 (13:22 +0100)]
minor change to handle explosion sound for EM engine

3 years agochanged name of game element in EM engine
Holger Schemel [Tue, 18 Feb 2020 10:56:16 +0000 (11:56 +0100)]
changed name of game element in EM engine

3 years agominor comments changes
Holger Schemel [Mon, 17 Feb 2020 09:15:42 +0000 (10:15 +0100)]
minor comments changes

3 years agocleanup of some source files and functions for EM engine
Holger Schemel [Sun, 16 Feb 2020 20:58:41 +0000 (21:58 +0100)]
cleanup of some source files and functions for EM engine

3 years agorenamed variable
Holger Schemel [Sun, 16 Feb 2020 20:21:48 +0000 (21:21 +0100)]
renamed variable

3 years agomoved global random variable for EM engine to game structure
Holger Schemel [Sun, 16 Feb 2020 20:20:32 +0000 (21:20 +0100)]
moved global random variable for EM engine to game structure

3 years agochanged order of some game elements in EM engine
Holger Schemel [Sun, 16 Feb 2020 18:50:50 +0000 (19:50 +0100)]
changed order of some game elements in EM engine

3 years agominor comments changes
Holger Schemel [Sat, 15 Feb 2020 21:01:47 +0000 (22:01 +0100)]
minor comments changes

3 years agoadded internal explosion objects in EM engine
Holger Schemel [Sat, 15 Feb 2020 20:53:01 +0000 (21:53 +0100)]
added internal explosion objects in EM engine

3 years agochanged handling of pushed objects in EM engine
Holger Schemel [Sat, 15 Feb 2020 17:37:00 +0000 (18:37 +0100)]
changed handling of pushed objects in EM engine

3 years agoadded pushed objects going into acid (with compile time option)
Holger Schemel [Sat, 15 Feb 2020 16:57:08 +0000 (17:57 +0100)]
added pushed objects going into acid (with compile time option)

3 years agocleanup of code for loading native EM levels
Holger Schemel [Fri, 14 Feb 2020 21:54:49 +0000 (22:54 +0100)]
cleanup of code for loading native EM levels

3 years agorenamed field in level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 20:07:18 +0000 (21:07 +0100)]
renamed field in level structure for EM engine

3 years agofixed initialization of level structure values for EM engine
Holger Schemel [Thu, 13 Feb 2020 19:50:41 +0000 (20:50 +0100)]
fixed initialization of level structure values for EM engine

3 years agochanged order of some level structure values for EM engine
Holger Schemel [Thu, 13 Feb 2020 19:48:27 +0000 (20:48 +0100)]
changed order of some level structure values for EM engine

3 years agorenamed some fields in level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 17:41:22 +0000 (18:41 +0100)]
renamed some fields in level structure for EM engine

3 years agoadded separate initial and runtime level structure definitions for EM engine
Holger Schemel [Thu, 13 Feb 2020 17:22:08 +0000 (18:22 +0100)]
added separate initial and runtime level structure definitions for EM engine

3 years agocompleted setting runtime from initial level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 17:12:19 +0000 (18:12 +0100)]
completed setting runtime from initial level structure for EM engine

3 years agochanged setting runtime from initial level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 17:07:37 +0000 (18:07 +0100)]
changed setting runtime from initial level structure for EM engine

3 years agoadded using separate level structures (initial and runtime) for EM engine
Holger Schemel [Thu, 13 Feb 2020 01:24:37 +0000 (02:24 +0100)]
added using separate level structures (initial and runtime) for EM engine

3 years agomoved initial cave data to level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 01:04:22 +0000 (02:04 +0100)]
moved initial cave data to level structure for EM engine

3 years agochanged order of some level structure values for EM engine
Holger Schemel [Thu, 13 Feb 2020 00:54:10 +0000 (01:54 +0100)]
changed order of some level structure values for EM engine

3 years agorenamed level pointer in level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 00:48:30 +0000 (01:48 +0100)]
renamed level pointer in level structure for EM engine

3 years agomoved initial player position to level structure for EM engine
Holger Schemel [Thu, 13 Feb 2020 00:27:05 +0000 (01:27 +0100)]
moved initial player position to level structure for EM engine

3 years agoremoved runtime values from level structure for EM and SP engine
Holger Schemel [Thu, 13 Feb 2020 00:12:28 +0000 (01:12 +0100)]
removed runtime values from level structure for EM and SP engine

3 years agomoved setting android clone data back to previous function
Holger Schemel [Wed, 12 Feb 2020 22:17:55 +0000 (23:17 +0100)]
moved setting android clone data back to previous function

This commit effectively revokes commit ccae7930.

(The old behaviour is needed when splitting the EM level structure
into static level data and runtime game data, because levels converted
from R'n'D to EM allow for more android clone elements than the
original EM engine would handle, so the android clone data array must
be part of the upcoming level data structure.)

3 years agomoved change of "grass" to "dirt" for pre-V5 EM levels to filter table
Holger Schemel [Mon, 10 Feb 2020 22:10:50 +0000 (23:10 +0100)]
moved change of "grass" to "dirt" for pre-V5 EM levels to filter table

3 years agochanged order of cave parameter initializations in EM engine
Holger Schemel [Mon, 10 Feb 2020 00:38:51 +0000 (01:38 +0100)]
changed order of cave parameter initializations in EM engine

3 years agoadded macros to get and put 16 bit big endian values
Holger Schemel [Mon, 10 Feb 2020 00:15:47 +0000 (01:15 +0100)]
added macros to get and put 16 bit big endian values

3 years agochanged some numbers from hexadecimal to decimal
Holger Schemel [Sun, 9 Feb 2020 22:52:56 +0000 (23:52 +0100)]
changed some numbers from hexadecimal to decimal

3 years agomoved setting android clone data to different function
Holger Schemel [Sun, 9 Feb 2020 13:03:35 +0000 (14:03 +0100)]
moved setting android clone data to different function

3 years agomoved function to different source file
Holger Schemel [Sun, 9 Feb 2020 12:56:45 +0000 (13:56 +0100)]
moved function to different source file

3 years agomoved cave handling code for EM engine to new source file
Holger Schemel [Sun, 9 Feb 2020 10:49:29 +0000 (11:49 +0100)]
moved cave handling code for EM engine to new source file

3 years agoadded missing handling of bumper element in EM engine
Holger Schemel [Thu, 6 Feb 2020 18:27:04 +0000 (19:27 +0100)]
added missing handling of bumper element in EM engine

3 years agochanged some EM engine game element names
Holger Schemel [Thu, 6 Feb 2020 18:16:22 +0000 (19:16 +0100)]
changed some EM engine game element names

3 years agochanged order of switch cases in EM engine source file
Holger Schemel [Thu, 6 Feb 2020 17:55:48 +0000 (18:55 +0100)]
changed order of switch cases in EM engine source file

3 years agochanged order of switch cases in EM engine source file
Holger Schemel [Wed, 5 Feb 2020 19:56:25 +0000 (20:56 +0100)]
changed order of switch cases in EM engine source file

3 years agoadded using some more game element tables in EM engine
Holger Schemel [Wed, 5 Feb 2020 17:52:42 +0000 (18:52 +0100)]
added using some more game element tables in EM engine

3 years agomoved game element tables to game logic source file
Holger Schemel [Wed, 5 Feb 2020 08:59:30 +0000 (09:59 +0100)]
moved game element tables to game logic source file

3 years agorenamed functions
Holger Schemel [Tue, 4 Feb 2020 23:22:54 +0000 (00:22 +0100)]
renamed functions

3 years agoremoved unused declarations
Holger Schemel [Tue, 4 Feb 2020 23:19:32 +0000 (00:19 +0100)]
removed unused declarations

3 years agomoved global variables for graphic info to graphics code
Holger Schemel [Tue, 4 Feb 2020 23:12:34 +0000 (00:12 +0100)]
moved global variables for graphic info to graphics code

3 years agocleanup of EM engine initialization
Holger Schemel [Tue, 4 Feb 2020 23:04:14 +0000 (00:04 +0100)]
cleanup of EM engine initialization

3 years agoremoved unused graphics initializations from EM engine
Holger Schemel [Tue, 4 Feb 2020 22:36:48 +0000 (23:36 +0100)]
removed unused graphics initializations from EM engine

3 years agoremoved unused bitmaps from EM engine
Holger Schemel [Tue, 4 Feb 2020 22:22:48 +0000 (23:22 +0100)]
removed unused bitmaps from EM engine

3 years agoremoved test/debug code for EM graphics engine
Holger Schemel [Tue, 4 Feb 2020 22:09:11 +0000 (23:09 +0100)]
removed test/debug code for EM graphics engine

This commit removes the testing and debugging capabilities for the
native Emerald Mine graphics engine (that can, but does not have to
be used with the native Emerald Mine game engine). The main purpose
of this test code was to check if the R'n'D "graphicsinfo.conf" style
graphics definitions, when used with the native Emerald Mine engine,
map exactly to this engine's hard-coded graphics definitions, to be
able to flexibly use R'n'D style graphics definitions also for the
native Emerald Mine game engine.

To test a given "graphicsinfo.conf" file against the internal graphics
definitions of the native Emerald Mine engine, its definitions have to
match an "objects" and "players" graphics file which is hard-coded in
the R'n'D graphics configuration file "conf_gfx.c" using the tokens
"emc_object" and "emc_sprite". (To prevent the game from using them in
non-debugging context, it normally refers to existing default artwork
instead of the test graphics files mentioned above.)

When testing or debugging, set these file names to "emc_objects.png"
and "emc_players.png" and enable upscaling to double size (assuming
the tiles in the test artwork have their original 16x16 pixel size).
Also set "DEBUG_EM_GFX" to "TRUE" in "src/tools.c". Then recompile.

When starting, the program performs the test, outputs all graphics
definitions that differ from the hard-coded internal definitions and
exits. To perform the test against the correct artwork, select the
artwork to test against before running the test. Usually the test is
executed using the graphics set "gfx_classic_emc.aga" from the Emerald
Mine Club level package, which uses the original artwork that is also
used by the game "Emerald Mine for X11".

(To perform the test described above, use a version of the code prior
to this commit.)

3 years agochanged some EM engine game element names
Holger Schemel [Tue, 4 Feb 2020 18:31:44 +0000 (19:31 +0100)]
changed some EM engine game element names

3 years agoremoved pre-processor directive for newly added EM engine elements
Holger Schemel [Tue, 4 Feb 2020 18:19:12 +0000 (19:19 +0100)]
removed pre-processor directive for newly added EM engine elements

3 years agofixed handling of fake acid for EM engine
Holger Schemel [Mon, 3 Feb 2020 22:43:15 +0000 (23:43 +0100)]
fixed handling of fake acid for EM engine

3 years agoadded fast player relocation for level wrap-around in EM engine
Holger Schemel [Sun, 2 Feb 2020 23:37:43 +0000 (00:37 +0100)]
added fast player relocation for level wrap-around in EM engine

3 years agochanged function from public to static
Holger Schemel [Sun, 2 Feb 2020 22:38:03 +0000 (23:38 +0100)]
changed function from public to static

3 years agoremoved unused function
Holger Schemel [Sun, 2 Feb 2020 22:33:45 +0000 (23:33 +0100)]
removed unused function

3 years agoremoved needless delay when relocating the player
Holger Schemel [Sun, 2 Feb 2020 20:40:13 +0000 (21:40 +0100)]
removed needless delay when relocating the player

3 years agoadded support for EM wrap-around levels also to level editor
Holger Schemel [Sun, 2 Feb 2020 19:53:37 +0000 (20:53 +0100)]
added support for EM wrap-around levels also to level editor

Previously, when running a level created with the R'n'D level editor
that uses the EM game engine, that level was forced to have a border
of indestructible game elements, which made it impossible to create
wrap-around levels to be played with the EM engine. This limitation
was removed, so no additional steel wall will ever be added around a
level.

3 years agoadded support for wrap-around levels in EM engine
Holger Schemel [Sun, 2 Feb 2020 16:18:35 +0000 (17:18 +0100)]
added support for wrap-around levels in EM engine

3 years agoadded limiting amoeba handling in EM engine to the playfield area
Holger Schemel [Sun, 2 Feb 2020 15:43:24 +0000 (16:43 +0100)]
added limiting amoeba handling in EM engine to the playfield area

This does not make a difference now, but will do when support for
wrap-around levels is added (which will result in accessing tiles
of the regular playfield via linked playfield buffer columns that
will redirect off-playfield access to the opposite side of the
playfield).

3 years agofixed using cave buffer offsets in EM engine graphics
Holger Schemel [Wed, 29 Jan 2020 22:06:34 +0000 (23:06 +0100)]
fixed using cave buffer offsets in EM engine graphics

3 years agoadded using cave buffer offsets in EM level conversion and game logic
Holger Schemel [Wed, 29 Jan 2020 21:54:12 +0000 (22:54 +0100)]
added using cave buffer offsets in EM level conversion and game logic

3 years agoadded cave buffer offsets to level structure in EM engine
Holger Schemel [Wed, 29 Jan 2020 21:46:46 +0000 (22:46 +0100)]
added cave buffer offsets to level structure in EM engine

3 years agosplit function
Holger Schemel [Wed, 29 Jan 2020 21:34:11 +0000 (22:34 +0100)]
split function

3 years agoincreased cave buffer offset (and adjusted graphics and amoeba logic)
Holger Schemel [Wed, 29 Jan 2020 18:50:51 +0000 (19:50 +0100)]
increased cave buffer offset (and adjusted graphics and amoeba logic)

3 years agochanged storing native EM cave without internal border elements
Holger Schemel [Wed, 29 Jan 2020 16:36:28 +0000 (17:36 +0100)]
changed storing native EM cave without internal border elements

The internal representaion of a native Emerald Mine cave (level) does
not contain surrounding internal game engine elements anymore now
(which are only needed for game engine logic when playing the level).

The stored player positions were adjusted accordingly.

3 years agoadded separate playfield and buffer sizes for EM engine caves
Holger Schemel [Wed, 29 Jan 2020 16:01:42 +0000 (17:01 +0100)]
added separate playfield and buffer sizes for EM engine caves

The cave playfield size (or just cave size) is the size of the visible
playfield (potentially containing an additional steelwall border, if
the level was converted from R'n'D format and does not contain a
steelwall border).

The cave buffer size is the size of the internal cave buffer (which
also contains surrounding internal game engine elements) that is used
by the EM game engine logic.

Currently the native cave structure has the same size as the internal
cave buffer; this should be changed.

3 years agocleanup of EM engine cave size definition names
Holger Schemel [Wed, 29 Jan 2020 14:33:51 +0000 (15:33 +0100)]
cleanup of EM engine cave size definition names

3 years agomoved cave arrays and pointers for EM engine to level structure
Holger Schemel [Tue, 28 Jan 2020 23:51:33 +0000 (00:51 +0100)]
moved cave arrays and pointers for EM engine to level structure

3 years agowhitespace changes
Holger Schemel [Mon, 27 Jan 2020 20:41:50 +0000 (21:41 +0100)]
whitespace changes

3 years agoadded using cave pointers to handle game logic in EM engine
Holger Schemel [Mon, 27 Jan 2020 20:35:39 +0000 (21:35 +0100)]
added using cave pointers to handle game logic in EM engine

3 years agochanged order of cave tile changes in EM engine
Holger Schemel [Thu, 23 Jan 2020 22:55:59 +0000 (23:55 +0100)]
changed order of cave tile changes in EM engine

3 years agomoved code for explosions in EM engine to separate functions
Holger Schemel [Thu, 23 Jan 2020 22:36:21 +0000 (23:36 +0100)]
moved code for explosions in EM engine to separate functions

3 years agochanged order of switch cases in EM engine source file
Holger Schemel [Thu, 23 Jan 2020 18:14:20 +0000 (19:14 +0100)]
changed order of switch cases in EM engine source file

3 years agomoved some switch statements in EM engine to separate functions
Holger Schemel [Thu, 23 Jan 2020 17:32:30 +0000 (18:32 +0100)]
moved some switch statements in EM engine to separate functions

3 years agomoved game logic for EM engine to single source file
Holger Schemel [Thu, 23 Jan 2020 07:52:09 +0000 (08:52 +0100)]
moved game logic for EM engine to single source file

3 years agochanged order of functions in EM engine source file
Holger Schemel [Thu, 23 Jan 2020 07:13:15 +0000 (08:13 +0100)]
changed order of functions in EM engine source file

3 years agomoved switch statement for handling EM engine tiles to separate function
Holger Schemel [Wed, 22 Jan 2020 23:17:00 +0000 (00:17 +0100)]
moved switch statement for handling EM engine tiles to separate function

3 years agoswapped x and y dimensions in EM engine cave arrays
Holger Schemel [Wed, 22 Jan 2020 23:08:55 +0000 (00:08 +0100)]
swapped x and y dimensions in EM engine cave arrays

3 years agoimproved readability of some condition checks in EM engine
Holger Schemel [Wed, 22 Jan 2020 17:04:51 +0000 (18:04 +0100)]
improved readability of some condition checks in EM engine

3 years agoimproved readability of random number macro in EM engine
Holger Schemel [Wed, 22 Jan 2020 16:49:06 +0000 (17:49 +0100)]
improved readability of random number macro in EM engine

3 years agofixed some pre-processor defines in EM engine source file
Holger Schemel [Wed, 22 Jan 2020 12:46:31 +0000 (13:46 +0100)]
fixed some pre-processor defines in EM engine source file

3 years agochanged order of switch cases in EM engine source file
Holger Schemel [Wed, 22 Jan 2020 12:36:57 +0000 (13:36 +0100)]
changed order of switch cases in EM engine source file

3 years agochanged code formatting in EM engine source file
Holger Schemel [Wed, 22 Jan 2020 12:24:20 +0000 (13:24 +0100)]
changed code formatting in EM engine source file

3 years agochanged order of functions in EM engine source file
Holger Schemel [Wed, 22 Jan 2020 11:51:56 +0000 (12:51 +0100)]
changed order of functions in EM engine source file

3 years agomoved element handling code for EM engine to separate functions
Holger Schemel [Tue, 21 Jan 2020 23:40:12 +0000 (00:40 +0100)]
moved element handling code for EM engine to separate functions

3 years agoadded "pause" element to game elements in EM engine
Holger Schemel [Sun, 19 Jan 2020 15:41:00 +0000 (16:41 +0100)]
added "pause" element to game elements in EM engine

3 years agochanged order of game elements in EM engine (no functional change)
Holger Schemel [Sun, 19 Jan 2020 15:30:12 +0000 (16:30 +0100)]
changed order of game elements in EM engine (no functional change)

3 years agoremoved options to prevent initial rolling objects in native EM levels
Holger Schemel [Sun, 19 Jan 2020 13:02:51 +0000 (14:02 +0100)]
removed options to prevent initial rolling objects in native EM levels

When reading, converting and playing native Emerald Mine levels,
always allow initial rolling objects now. Compile-time switches
to deactivate this behaviour have been removed now. (A special
switch to handle rolling springs when playing has been kept.)

3 years agominor code formatting changes
Holger Schemel [Sun, 19 Jan 2020 01:23:36 +0000 (02:23 +0100)]
minor code formatting changes

3 years agowhitespace changes
Holger Schemel [Sun, 19 Jan 2020 01:19:58 +0000 (02:19 +0100)]
whitespace changes

3 years agoupdated various names of EM engine specific definitions
Holger Schemel [Sun, 19 Jan 2020 01:11:50 +0000 (02:11 +0100)]
updated various names of EM engine specific definitions

This is the first part of various code changes of the EM engine to
update the engine code to the 2009 version of the source code.

3 years agomoved EM engine specific definitions to separate include file
Holger Schemel [Sat, 18 Jan 2020 15:51:40 +0000 (16:51 +0100)]
moved EM engine specific definitions to separate include file

3 years agocleanup of unused EM engine source files and declarations
Holger Schemel [Sat, 11 Jan 2020 01:22:29 +0000 (02:22 +0100)]
cleanup of unused EM engine source files and declarations

3 years agoimproved readability of tape test summary
Holger Schemel [Fri, 14 Feb 2020 21:43:39 +0000 (22:43 +0100)]
improved readability of tape test summary

3 years agofixed potential crash bug if personal user level set cannot be found
Holger Schemel [Mon, 10 Feb 2020 22:21:35 +0000 (23:21 +0100)]
fixed potential crash bug if personal user level set cannot be found

3 years agorenamed duplicate definition of global variable
Holger Schemel [Fri, 31 Jan 2020 16:13:43 +0000 (17:13 +0100)]
renamed duplicate definition of global variable

This would cause a compilation error with GCC 10, where "-fno-common"
is set by default.

3 years agoremoved duplicate definition of global variable
Holger Schemel [Fri, 31 Jan 2020 16:10:33 +0000 (17:10 +0100)]
removed duplicate definition of global variable

This would cause a compilation error with GCC 10, where "-fno-common"
is set by default.

3 years agoremoved declarations for unused objects
Holger Schemel [Fri, 31 Jan 2020 16:08:29 +0000 (17:08 +0100)]
removed declarations for unused objects