added random push delay for rocks, nuts and bombs to EM game engine Just like in the original Emerald Mine game, there is now a random delay when trying to push a rock, a nut or a bomb. While the chance for rocks being successfully pushed at first attempt will be around 50 %, the chance for nuts will be a bit lower than that for rocks, and the chance for bombs will be a bit lower than that for nuts, with a roughly similar overall delay as in the original game.
added full compatibility for wrap-around levels in EM engine The previous support for wrap-around levels in the EM game engine was some sort of "idealized" implementation that lets the player wrap around by moving horizontally on the same vertical level position forever (which results in truely infinite wrap-around levels). This may be nice and perfect, but has the disadvantage that the original Emerald Mine Club engine did not work that way, making existing EMC levels unplayable and/or unsolvable. (Examples are level 80 of "Ruppelmine 3" or level 34 of "The Exception 2".) Instead, the original game engine caused the player to step one vertical position up or down when leaving the playfield at the left or right border, which is required by the mentioned example levels. This correction adds a flag that is set by default to use the original behaviour.
fixed support for wrap-around levels in EM engine Fixed initializing wrap-around levels in the EM game engine; this was done when loading the cave, but using a run-time flag, which is not set until starting the game. This is a regression bug of commit 04c0f302.
changed warnings and debug output to use new generic logging functions
added handling 64-bit random value bug with old tapes in EM engine See commits 61c3da0 (incomplete fix) and c92edfe9 (final fix) for details about this problem that was introduced (by a partial fix) in version 3.3.1.0 and finally fixed in version 4.0.1.2, which resulted in many tapes recorded between these versions with the EM game engine to be broken. To fix these broken tapes, it is required to set a new property bit in all existing tape files that are affected by this bug. The functionality to automatically patch these tapes will be added as a new command line option.
changed constant number of eater arrays to variable for EM game engine This makes it possible to create and play levels with a number of eater arrays other than eight (which was a contant value before) when using the EM game engine.
added missing cave buffer offsets to robot wheel position
fixed pushed objects going into acid in EM engine for old tapes With the new EM game engine, objects that are pushed towards acid when initially created fall into acid instead of replacing it (like in the old engine). This change adds some compatibility code to use the old behaviour when replaying old tapes. This is an addition to commit f717d0c1.
fixed handling of pushed objects in EM engine for old tapes This change fixes problems with emulating the behaviour of initially pushed objects for old tapes. (With the new EM game engine, objects that are pushed towards the player when initially created always kill the player, while the object just stopped with the old engine.) This is an addition to commit 1dd2190d.
fixed handling of androids in EM engine for old tapes This change emulates slight differences in android handling between the old and new EM game engine to prevent old tapes from breaking.
fixed support for initially moving spring in EM game engine
fixed support for wrap-around levels in EM engine for old tapes When playing tapes that solved wrap-around levels with the EM engine that were recorded before wrap-around support was added, deactivate wrap-around to not break old tapes.
fixed bug with playing EM level with inactive player
moved removing inactive players to separate loop
changed type of some variables
renamed some variables and changed some initializations
minor change of initialization for EM engine caves
renamed and removed some variables
added flags for test mode, teamwork mode and infinite levels to EM engine
improved error handling code when mapping EM engine cave/game elements