Commit Graph

1529 Commits

Author SHA1 Message Date
Donovan Watteau
4a586e4909 SHERLOCK: Use MSVC_PRINTF when GCC_PRINTF is used 2022-11-29 01:37:16 +01:00
Eugene Sandulenko
ae779b2a29
JANITORIAL: Code formatting 2022-11-29 00:20:16 +01:00
Vladimir Serbinenko
23f88cfc28 SHERLOCK: Remove unstable flag from Chinese Rose Tattoo 2022-11-29 00:18:39 +01:00
Vladimir Serbinenko
00afc84492 SHERLOCK: Import all fixed strings for Chinese version of Tattoo 2022-11-29 00:18:39 +01:00
Vladimir Serbinenko
5fae569597 SHERLOCK: Handle word wrapping for EUC-CN 2022-11-29 00:18:39 +01:00
Vladimir Serbinenko
fa25e7267d SHERLOCK: Support Chinese rendering in the Rose Tatoo
Serrated scalpel is not covered as it uses both a different encoding
(Big5 instead of EUC-CN) and different font format (it uses some obfuscation).
2022-11-29 00:18:39 +01:00
Vladimir Serbinenko
9e68776b33 SHERLOCK: Fix crash in Chinese version 2022-11-29 00:18:39 +01:00
Vladimir Serbinenko
1210e839f8 SHERLOCK: Move members in Fonts to private from protected 2022-11-29 00:18:39 +01:00
Cameron Cawley
bb788e054b SHERLOCK: Move the engine options into the MetaEngine subclass 2022-11-16 23:58:54 +01:00
Hubert Maier
0a8abdf926 JANITORIAL: SHERLOCK: Correct Spelling Mistakes
occassionally -> occasionally
neccessary -> necessary
2022-11-15 22:52:43 +02:00
Filippos Karapetis
00e4964de9 SHERLOCK: Change description of scalpel for uniformity 2022-11-06 20:52:04 +02:00
Ray
30f0d5cbfc SHERLOCK: Fixed game titles to match box art title 2022-11-06 20:52:04 +02:00
Hubert Maier
b72583f61d
SHERLOCK: Correct spelling mistake
neccessary -> necessary
2022-10-27 15:57:29 +02:00
Hubert Maier
94e8cb6e63
SHERLOCK: Correct spelling mistake
accomodate -> accommodate
2022-10-27 15:57:29 +02:00
Le Philousophe
a858fd57f0 SHERLOCK: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Donovan Watteau
27f9a460b5 JANITORIAL: Fix "the the" and similar typos 2022-07-29 19:36:40 +03:00
Cameron Cawley
f3b094e53f ENGINES: Change the MetaEngineDetection interface to match MetaEngine 2022-07-23 23:31:58 +02:00
Donovan Watteau
5b1ec56f96 JANITORIAL: Fix some lost or outdated URLs in comments 2022-05-19 07:57:31 +03:00
athrxx
bd1dbecde9 TTS: (ENGINES) - add support for tts enable function
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).
2022-04-26 21:08:41 +03:00
Torbjörn Andersson
e06f3c9a5a GUI: Allow game option checkboxes to be disabled
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.
2022-04-21 11:07:17 +02:00
Torbjörn Andersson
d372f11336 SHERLOCK: Extend Scalpel flower girl workaround
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.
2022-01-14 16:45:17 +01:00
Torbjörn Andersson
369e1b38d4 SHERLOCK: Fix Scalpel UI glitch (bug #13195)
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.
2022-01-14 16:45:17 +01:00
Torbjörn Andersson
d38c86fec0 SHEROCK: Fix slowdown in Serrated Scalpel intro (#13198)
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.
2022-01-08 13:55:52 +01:00
Torbjörn Andersson
98e7c9444b SHERLOCK: Only create autosave on startup if that slot is empty
Otherwise, you'll lose your old autosave every time you start the game,
unless you load the savegame from the ScummVM launcher.
2021-12-27 09:24:07 +01:00
Paul Gilbert
69b2acfe05 SHERLOCK: Creates an autosave immediately when the game first starts 2021-12-26 18:44:48 -08:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Torbjörn Andersson
2d15dcefad SHERLOCK: Fix glitch in Rose Tattoo save dialog
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.
2021-12-20 13:11:42 +01:00
Torbjörn Andersson
5ea555bcdd SHERLOCK: Refactor Rose Tattoo slider drawing 2021-12-20 12:37:10 +01:00
Torbjörn Andersson
743bfb538d SHERLOCK: Fix final (?) issue with Rose Tattoo slider handle drawing 2021-12-20 11:39:27 +01:00
Torbjörn Andersson
5aef290165 SHERLOCK: Fix drawing of Rose Tattoo dialog corners
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.
2021-12-20 11:15:34 +01:00
Torbjörn Andersson
99b4aa4dbb SHERLOCK: Fix Rose Tatto save/load scrollbar bounds 2021-12-20 10:57:58 +01:00
Torbjörn Andersson
7507873635 SHERLOCK: Fix scroll position bar glitch 2021-12-20 10:40:43 +01:00
Torbjörn Andersson
82962dd42d SHERLOCK: Fix Rose Tattoo slider widget glitches 2021-12-20 09:33:05 +01:00
Torbjörn Andersson
b169715da4 SHERLOCK: Fix Scalpel animations not being resumed after conversation
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.
2021-12-19 15:49:30 -08:00
Torbjörn Andersson
9e5d0c7700 SHERLOCK: Calculate font height/width more accurately
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.
2021-12-18 19:06:26 -08:00
Torbjörn Andersson
6cf3df6609 SHERLOCK: Fix Scalpel user interface being left in wrong mode
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.
2021-12-17 19:30:06 -08:00
Torbjörn Andersson
04cdae3478 SHERLOCK: Fix missing corner in Rose Tattoo dialogs 2021-12-17 16:28:38 +01:00
Torbjörn Andersson
98d939d4ef SHERLOCK: Fix Rose Tattoo save dialog regression
Now that more than one keypress can be processed, we have to update the
"current character" variables each time.
2021-12-17 15:04:31 +01:00
Torbjörn Andersson
fe16f6f924 SHERLOCK: Fix crash when using Delete key in Rose Tattoo save dialog 2021-12-17 13:37:43 +01:00
Torbjörn Andersson
e45e4d62c4 SHERLOCK: Process all pending keys at once in Rose Tattoo save dialog
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.
2021-12-17 13:05:58 +01:00
Torbjörn Andersson
5803390968 SHERLOCK: Use a queue, not a stack, for pending key presses
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.
2021-12-17 12:30:57 +01:00
Torbjörn Andersson
40c241bbd3 SHERLOCK: Fix height of blinking cursor in Rose Tattoo journal search 2021-12-16 20:30:51 +01:00
Torbjörn Andersson
3d78062210 SHERLOCK: Fix Rose Tattoo crash when moving past end of string 2021-12-16 20:22:04 +01:00
Torbjörn Andersson
741b47bdd0 SHERLOCK: Fix glitches in Rose Tattoo save box
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.
2021-12-16 20:21:25 +01:00
Torbjörn Andersson
2644bdddf6 SHERLOCK: Fix Scalpel user interface regression
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.
2021-12-15 21:43:18 -08:00
eientei
3a8e5e6d79 SHERLOCK: Add earlier version of Italian fan translation 2021-12-15 20:31:25 -08:00
Torbjörn Andersson
51bdee615f SHERLOCK: Workaround for bad fog horn sound in Serrated Scalpel
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.
2021-12-15 08:43:46 +01:00
Torbjörn Andersson
3d96f9e4f1 SHERLOCK: Fix glitch on Scalpel overhead map
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.
2021-12-15 07:44:07 +01:00
Torbjörn Andersson
ecfed7a954 SHERLOCK: Clear events after Scalpel window sliding animation
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.
2021-12-14 12:39:08 +01:00
Torbjörn Andersson
782ebb0bc0 SHERLOCK: Make the Serrated Scalpel darts minigame harder
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.
2021-12-13 19:03:11 -08:00