The Talkie version of Indy4 changed Kerner's line when he uses the phone
booth in New York (reusing some words from the research lab scene), but
the text doesn't match with the voice in most releases: he says Ubermann
but the text mentions Fritz, in the English version.
The 1994 Talkie Macintosh release fixed this line, so we can replicate
this later, official fix as an enhancement for all the English talkie
releases.
This cleans up some things I noticed when I implemented the mute flag handling. It removes the hack that manually forces flag 2 on all channels with number 9, regardless of the device.
I presume the hack was done for the earliest SCI 1 games, due to improper handling of flag 1.
At least the German Obsidian release stores the resource files directly
in a folder called 'RESOURCE' in the root directory of the game installation.
Without this patch, one needs to manually copy the files located in the
RESOURCE folder to the game's root directory.
The implementation of std::list::erase invalidates iterators to the
erased item. However our implementation in Common::List does not.
And the SpriteCache code relied on this behaviour. So instead we
have to invalidate the iterators manually.
In particular the SpriteCache class can call this function with both
iterators pointing to the same item (when trying to move an item to
the start of thr MRU list, and it is already the first item).
Instead of returning an iterator to the inserted item, it was
returning an iterator to the next item. This was for example causing
bugs in the SpriteCache.
According to the manual, you can execute commands by clicking on the
sentence line. But this doesn't work with the v1 or v2 DOS versions,
even though it works with the C64 demo. This is because the verb script
doesn't for this, so we have to do that ourselves. This is loosely based
on how Zak McKracken does it.
The Ultimate Talkie edition of Monkey Island 2 has a small script error
when you try to sell back your hub cap or your pirate hat to the antique
dealer. It wasn't doing a comparison with the proper object number, and
so it would play a fallback line with no voice.