The crowd has some reaction lines while Guybrush plays the spitting
contest on Booty Island, but some of them are missing an audio sample
in the current version of the Monkey Island 2 Ultimate Talkie builder.
Neither the script nor the MONSTER.SOU file appear to have it,
although the voiced clips are there in the original 000001e1,
00000661, 00000caf, 000001e8, 0000066c and 00000cba.wav files.
The crowd would then remain silent for these particular lines.
Let's just drop them if we detect them without any associated audio
resource, since the crowd has already a lot of other reaction lines
which play fine. This is written with as much care as possible for any
future update or fan-made translation which would change this.
If you've muted the speech or if you're playing in keep-original-text
mode we can keep them as-is, though.
-fsanitize=undefined implies -fsanitize=alignment, so we need to define
SCUMM_NEED_ALIGNMENT for UBSan builds, otherwise many false positives
will be reported, such as for engines/scumm/smush/codec47.cpp.
That's also a good way of having more tests for the SCUMM_NEED_ALIGNMENT
code paths during development :)
The map in IMuseDigiDispatch can contain unaligned blocks if it
contains a TEXT block with a length not divisible by four. This causes
unaligned memory accesses in a few places.
This commit fixes the issue by ensuring only aligned pointers are typed
as `int32 *` while unaligned pointers are typed as `uint8 *` and are
only accessed through helper functions.
I have added the French strings provided by dwa and made
a little decoder that transfers the character to cp850 if
needed.
This way we can support both original pause/restart/quit
dialogs and the ones that we currently have.
In SCI1 and later, kDoSoundFade does not test a sound's status.
Incoming fade properties are applied regardless of whether the
sound is playing and kDoSoundFade does not set the signal.
The code that's been doing this was added and updated in 2010
for ICEMAN and LSL3. Now it's only applied to SCI0 calls.
e41874c91df743468ec7
Verified in QFG2 1.000, JONES CD, and LB2 CD.
Fixes scenes in LB2 where multiple songs occasionally play at the
same time due to broken fade-outs. Hiding behind the tapestry
during a meeting is the one that occurred the most consistently.
Related to bug #6462
While we already tried to prevent invalid render mode
selections there were still some possible misconfigurations.
I have no idea why on earth people do things like select
CGA mode on Mac or Amiga, but it happens...