Using Ryan's watch within the game, the watch time always started at
19.30 from point of use, which did not seem correct.
Checking with the original CD and Floppy interpreters under DOSBox
showed they used the current system time, so this was incorrect.
Bisection shows that this regression was introduced by commit
57e940f678 i.e. "DREAMWEB: Move all saved
variables to a GameVars struct" and was probably a side effect of a
minor call ordering change in the equivalent of setupInitialVars()
with respect to the getTime() call.
However, to ensure no further regressions, it was easier to fix this
by replacing the initial value setting by a getTime() call.
This reduces the code duplication in all client code, which formerly duplicated
the querying of the plugin, game id etc. and now simply calls the newly added
method runModalWithCurrentTarget() on a SaveLoadChooser object.
We already pass the title and process button name to the constructor of
SaveLoadChooser and then do not offer any way of changing it, thus changing
the edit mode of the chooser is kind of pointless and was never actually used.
Instead we pass the mode on SaveLoadChooser construction now.
This fixes bug #3531635 - "DREAMWEB: doors don't play "open" sound when
opening".
In addition, the resultant code is simpler and should better match the
original behaviour and a basic playtest has not shown any regressions.
This should fix bug #3528164 "DREAMWEB: missing sound
effects/music cues during main title" by preventing repeated calls
of SFX id 12 being lost if the next call is made before the sound
handler has cleared the previous one.
This commit removes various temporary debugging output, cleans up
some points of formatting and replaces some hexadecimal sizes and
offsets with decimal for readability.
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".
The removed blocks in the playChannel<n> functions referencing index are
non-functional leftovers from more complex logic in the original code
structure, and thus can be safely removed.
This code is intended as temporary debugging code to aid investigation
of bug #3528164 - "DREAMWEB: missing sound effects/music cues during
main title" and can be removed once this bug is fixed.
As this version has identical dreamweb.r00 and r02 files to the
international floppy release, have added the executable to clarify
between the two versions.
Fixes bug #3526483 - "DREAMWEB: No speech playing in CD version"
Currently, the usages associated with savegames have been omitted.
These will probably need a different prefix constant as it is likely
foreign variants still use "DREAMWEB.*" for savegames, while using
a different prefix for the datafiles. We may even migrate away from
this naming convention as this causes savegame collisions when multiple
language variants are present, which could cause issues.
The usages in the Room members of the constant g_roomData structure have
also been omitted, as the members are copied into the savegame format,
thus replacing these and fixing other accesses is not trivial.
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 reverts commit 0ff60284ce.
We do not want to encourage people to rename all files in their games.
Instead, we should properly support the foreign versions.
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'
This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)