The new option only works as intended if the engine that have TTS support apply their own settings. It cannot be globally implemented before and after runGame(), since the engines don't all use the same config manager variables (sometimes "tts_enabled_speech", "tts_enabled" or "tts_narrator, sometimes more than one of these).
Depending on other game option checkboxes. This is used to
enable/disable the semi-smooth scrolling checkboxes for FM Towns Loom,
since it's only used when smooth scrolling is enabled.
The same glitch that happens with the flower girl also happens with the
housekeeper: Walking nearby triggers a conversation, but doesn't abort
the current action. This can cause the UI to get corrupted.
At least for the housekeeper, this does not happen with the original
interpreter. I have no idea why.
This would happen when examining certain room objects (ones where
printing the description was part of a custom animation) while the
inventory was open. This was a bug in the original interpreter as well.
This was a regression from fixing bug #13101. The resource stream was
created for every frame that was decoded, and apparently each frame of
the intro is made up of lots of little frame.
Normally this wasn't much of a problem, but when using the smaller
installation offered by some versions, each such decoded frame caused
the entire resource file to be decompressed. This slowed things down a
lot.
Now the stream is kept alive throughout, so that the file is only
decompressed once. Note that this is only necessary when creating the
ImageFile object from a filename. When it's created from a stream,
frames are still decoded in advance the old way, so there is no need for
the class to have its own stream. At least that's how it works now.
This would happen when either clicking on an empty slot or when using
the Delete key. It was caused by using the screen coordinates, rather
than the surface coordinates, when specifying the rightmost edge of the
area to clear.
The corners are drawn correct, we just want to ensure that the same
screen area is cleared or tindted before drawing the dialog, whether the
dialog is transparent or not. Otherwise, the corners will be tinted too,
instead of fully transparent.
When talking to another character, his animation would usually freeze.
Most of the time this is just a cosmetic problem, but it does make
solving the puzzle with the billiard players more annoying than it
should be, since you had to leave and re-enter the room. See bug #10931.
Each character in a font can have an X and Y offset. This was not
considered when calculating the width and height of the font. One way
this could be noticed was in Serrated Scalpel, when talking to a
character with a lot of conversation options. Scrolling down would
highlight the "Up" button. Selecting a conversation option would then
dim the button, but the bottommost pixel of the "p" was still
highlighted.
Hopefully this does not negatively affect anything else.
I think this one would happen if an NPC initiated conversaion with you,
while you had a window (e.g. the inventory) open. The game would be put
in talk mode, then close the inventory (putting the game in standard
mode), then print the conversation options.
That's because a loop was terminated prematurely (with a break), thus
bypassing the bit that would set it back into talk mode again.
I encountered this when finally meeting up with Lord Brumwell.
The event loop when entering save game description in Rose Tattoo runs
at the speed of the background animations, which is much slower than
ScummVM's keyboard repeat.
It was very easy to saturate the _pendingKeys queue, particularly when
erasing an old savegame description. Then you might have to wait for a
few seconds while it processed dozens of pending backspaces.
Now all pending keys are processed as quickly as possible.
We want first-in-first-out, not first-in-last-out. I thought I saw
Serrated Scalpel occasionally swap the order of two keypresses for me
while entering the name of a save game, but didn't think much about it.
Where it got really noticeable was when saving in Rose Tattoo. When
erasing an old save name, once I started entering the new name it would
process the new keystrokes first, then immediately process the next
pending backspace.
For instance, if you entered a letter like "g" and then erased it, there
would still be traces of it on screen. I've made the assumption that
subtracting 1 from the font height is wrong everywhere.
In some cases (e.g. when Lestrade greets you at the scene of the murder)
the talk window wasn't erased properly. This was a regression from a
recent fix for the inventory not being updated when certain objects were
added, e.g. when examining the pendant. See bug #10841.
Turns out that the fog horn sound at Lord Brumwell's mansion has the
same problem as the doorbell one. The file says 1100 Hz, but the
original clearly didn't play it at that. 11000 Hz seems to match the 3DO
version, so let's go with that.
When moving from one location to another, the Holmes icon should be
removed from the old location when travel begins. I've added a missing
restoreIcon() call, which seems to fix that.
Before, the game would sometimes register the mouse release event right
as the mouse pointer passed over the Exit button, causing e.g the
conversation window to close right away. This was probably also what
caused it to sometimes select conversation topics seemingly at random
for me.
This seems to match the speed of the original better, and makes the
power bars move at the same speed for both you and your opponent. It
does make the game more frustrating, I guess, but playing darts is
optional anyway.