This makes sure no matter which scene is loaded the music will be loaded fresh
and restarted.
Skip in Willy Beamish where there is only one music file that stays loaded.
This fixes#15795.
It was possible for music to stop when multiple sound effects were played at
once (eg, Willy Beamish FDD intro sequence when SFX 43 and 44 are played in
quick succession). This is a workaround for that issue.
Willy beamish tries to load various music files, but actually all the music is
inside the single file. Both sound and music are SX files so we needed a
slight refactor to support them.
Rise of the Dragon uses a fixed offset on SFX ids. HoC seems to do the same
although I haven't fully reverse-engineered that bit.
Thanks to @NMIError for the help debugging this issue.
DGDS basically uses the same midi and patch code as SCI. This change copies
the midi driver out of SCI. It now mostly works, but there is still an
instrument mismatch to fix out with SFX.
Simultaneous MIDI players aren't supported by the backend.
MIDI sound effects are deactivated for now, till this
functionality is implemented properly with a single instance
* Rename TTM objects to match original ideas of environment and sequence
* Implement more ADS stuff in line with original - states etc
* Implement sceneop 4 which changes ADS states
Currently this breaks everything (no scenes execute) but the implementation is
far closer to the original, so it's a necessary step to get to a correct
reimplementation.
This is the initial import of the sources from vcosta's implementation.
Work has progressed on that base, so that it forms into an actual engine.
There has been heavy refactoring into classes, but there's still loads of
work to be done.
The status is almost the same the original vcosta's engine: it's possible
to play the intro Rise of the Dragon, and parts of the intro of Heart of
China and Willy Beamish. The DOS VQT images are still not decoded, so only
the Mac versions work for now - or the DOS versions with the Mac images
as patches