The vsync delay is 14 ms (1000 / 70), and using a loop with
a sleep of 10ms until we had passed that delay meant we were
actually waiting anytime between 14 and 23 milliseconds, which
made the game slower than it should be. This was partially
corrected by using a delay of 11 ms (800 / 70), but this was
still inacurate and too slow in average.
In addition, since the change in commit 87c8b60, it was ignoring
the time spent in the game loop, which on slow devices is not
negligeable, and this has been fixed as well.
Finally also change the fast speed from 20 to 4. In commit
87c8b60 the delay was changed from macroseconds to milliseconds,
and any speed above 14 would then result in a delay of 0 due to
the integer division. We have the turbo mode for that, so it
seems to make sense to make the fast mode a bit slower rather
than having two modes that do the same thing.
This fixes bug #3590814.
The case for KP0-KP9 can probably be removed as it should be
handled by the case above. But I don't have a keyboard with
keypad to test. So I am leaving it for now.
Removed the buffer from being a global non-const variable. Also, the
code changes should allow the buffer size to be increased by just
changing the size of _keyBuffer if needed.
This is possible, since the game is freeware now. It is very
helpful when playing the game in order to avoid referring to the
manual. The extra help text is shown when the player uses the
'help' command inside the game terminal.
Also, the list of games where copy protection is skipped has been
reordered alphabetically in the README
This change should have no functional change, but makes the sound code
more decoupled, modular and readable, prior to attempting a fix for
bug #3528164 - "DREAMWEB: missing sound effects/music cues during main
title".
This new variable removes the need for duplicates strings of the form
"DREAMWEB.*" spread throughout the dreamweb engine, replacing them with
a common const string on the engine holding the datafile name prefix.
This will reduce binary size and it should also simplify adding support
for foreign language variants, where the datafile name prefix is
changed.
To demostrate usage and prove this, showPCX() is migrated to using this.
This has been done by an automated search/replace, culling unused
variables in the process. The remaining variables in data are all stored
in savegames.