Added more rigid entries for some game variants where
the ciftree.dat file is not present inside the cabfiles. Now,
those entries require a second file that can only be found
when the cabs are extracted.
Fixed a couple issues when handling hypertext tokens
using the new API in Common::Tokenizer:
- The sound file names that were accidentally left in some
dialogue in nancy6 scenes 1953 and 1954 no longer get
rendered as part of the text.
- Short text strings now get rendered correctly. This fixes
the HAM radio puzzle input readout.
- Hypertext tokens now have checks for proper size;
otherwise, the offending token is output to the newly
created kDebugHypertext debug channel.
Removed the detection flag that was used to mark a
specific nancy3 version with 1 extra byte in its BSUM.
Instead, a heuristic has been added to the BSUM reading
code that checks for it at runtime.
Detection entries for compressed game variants now have
an additional file entry for ciftree.dat, which uses the newly
introduced feature for scanning inside archives. The few entries
which I don't own have been temporarily disabled.
Also, a couple new compressed entries have been added; these
were previously put on hold for after the scanning feature
was implemented.
It seems the version of nancy3 I use for testing is slightly
different from the one that was shipped originally, and the
one currently being sold on Steam. Notably, it features a
slightly different BSUM format not found in later games,
with the difference being there to support the Dreamcatcher
logo shown in the beginning. This commit fixes every other
version, which do not have that extra logo or bit.
Implemented the (optional) automatic viewport movement
when hovering over an edge introduced in nancy6. Also
made the option for enabling/disabling it in the Setup
screen functional, and added a GUI option to MetaEngine's
extra options map.
Added detection entries for all Nancy Drew games before
the first major UI refresh. Also re-added an erroneously
removed list end marker without which detection would break for all engines.
Fixed several inaccuracies with reading sound data. Added
enumerations describing the sound playing commands
introduced in nancy3. Added a flag for sound debugging,
which will be used in implementing said play commands.
Added a compressed variant of the Russian translation of Nancy Drew:
Secrets Can Kill. Added a flag to mark compressed game variants and
only load archives when playing one. Removed the 8-bit colors flag.
Temporarily remove the buildEngineOptionsWidgetStatic() overload from NancyMetaEngineDetection since it causes build errors on platforms where the engine isn't built.
Hooked the engine into ScummVM's speech/subtitle settings, and added two extra options for player and character speech. Added a custom settings dialog which gets shown both inside the Edit Game window and the in-game Settings.
Rewrote most of the engine using a much more object-oriented approach and using more of ScummVM's common classes. This design deviates quite a lot from the original engine's, but should be more maintainable and extensible in the future.