Toon has a RNC implementation with 2 differences from the one taken from SKY:
1. Protection against overread. Add it to common version and adjust callers
in sky.
2. Lack of key parameter for obfuscation. We ignore it anyway and don't
support obfuscation, so delete it in common version as well
The German demo has an installer that copies part of the game's
resources, but omits all the files that are needed to actually run it.
Thus, require onetime.pak to be present (a required resource), which
will ignore directories that the demo installer has created
Cutscene subtitles support is implemented but subtitles are still work in progress
I was able to test with subtitles provided by rzil (BLooperZ) in this PR:
https://github.com/scummvm/scummvm/pull/1887
The original deals with this by activating the subtitles (Font 1) when deactivating speech
The original also has the bug whereby on some edge cases (eg using the hotkeys to mute dialogue and disable text while in-game) both text and speech get disabled, which results in behavior like the actors are stuck doing nothing when examing an item or such. We fix this bug here.
These bring them closer to the original behavior
Changes include:
- Proper sounds for buttons and switches
- Button clicking is effected in mouse down (not mouse up)
- A confirmation dialogue before quiting the game
- Button and slider animations in Options Menu (Main Menu has no button animations, just two frames)
- Reduced frequency of checking and updating a control's state
- (Demo) do not allow selection of middle Text option, which does not exist in Demo
- (Full Game) The text option dial now rotates towards the area clicked.
- Moving the mouse around while holding the left mouse button down affects at most one control (the selected one)
The autosave refactoring that was done in
7adad5aaf5 used g_engine for identifying the
autosave slot. This worked for in-game save/load, but doesn't fit when
called from the launcher.
Fix by passing MetaEngine to SaveStateDescriptor ctor and using it for this
query.
Amends 7adad5aaf5.
In the English demo a location (Wacme interior) has invalid additional Rif data
which causes an overflow of the Hotspots _items array. Disabling loading of the
data fixes this issue; the data does not seem to be necessary (the location
works fine without it).
The channel on the data of an ambient SFX is set to -1 when it is removed, but
this was not checked in killAmbientSFX, causing an access to
_channels[0xFFFFFFFF]. Fixed this by adding the missing check.
There seem to be some differences in the data structures between the English
demo and the other versions of the game, which causes ScummVM to reference
invalid animations, hotspots and fonts. Marked it as unstable for now.
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.