Commit Graph
4807 Commits
Author SHA1 Message Date
sluicebox 654a7306d2 SCI: Fix SCI0 GfxFunctionsType detection
Fixes LSL2 non-early versions being misidentified and all message boxes
being drawn 10 pixels too low. For example: the copy protection screen.

Thanks to @eriktorbjorn for noticing this inaccuracy
2022-04-11 10:10:19 -04:00
sluicebox 2c912be553 SCI32: Fix RAMA Demo crash when clicking on controls
Fixes bug #10344
2022-04-09 22:42:56 -04:00
sluicebox 4035e20b11 SCI: Fix SQ3 navigation message not displaying
Fixes bug #13114
2022-04-08 22:57:29 -04:00
sluicebox 437c80e382 SCI: Add delay between LSL2 lottery ticket messages
Thanks to @eriktorbjorn for noticing this
2022-04-08 22:56:39 -04:00
sluicebox 6abb9c6061 SCI: kScummVMSleep is now available in SCI16 2022-04-08 22:42:04 -04:00
sluicebox 0d4771c838 SCI32: Fix LSL6 oil lamp lockup when missing PATCHES
Bug #10484
2022-03-29 09:31:40 -04:00
sluicebox a61bcdee59 SCI32: Fix saving from GMM in LSL7 2022-03-22 17:20:51 -04:00
sluicebox e23f5fe855 SCI32: Update kSetShowStyle version checks for Mac
Consolidated kSetShowStyle version/argument checks and updated them to
handle SCI2.1 Mac games and PC demos. (The demos where the wrong
arguments were being applied happened to work anyway.)

Fixes LSL7 Mac pixel dissolve at the start of the game between the
postcard and the boat (rooms 120 and 130)
2022-03-22 07:32:55 -04:00
sluicebox e01775bcae SCI32: Fix SHIVERS and PHANT2 loading autosave slot
Fixes bug #13361
2022-03-21 15:33:52 -04:00
sluicebox 9afafb700c SCI: Fix SQ4 CD speed throttle in laser hallway
Thanks to AdmiralJay for reporting this!
2022-03-20 17:08:38 -04:00
sluicebox 3ac7b9c67c SCI: Fix SQ4 CD laser beam messages 2022-03-18 20:25:33 -04:00
sluicebox 45c5cf6639 SCI: Fix KQ5 PC-98 Japanese bandit's campfire 2022-03-12 16:45:01 -05:00
sluicebox 0ca9b1188b SCI: Saving from GMM now works on more Mac games 2022-03-09 16:23:26 -05:00
sluicebox 13fbaf794c SCI32: Fix QFG4 crashes when pressing direction keys
Now that we correctly pass direction key events to QFG4,
we need to patch the script bugs that they trigger.
These crashes also occur in the original game.

See: 1b4660a508
2022-03-07 17:06:17 -05:00
D G Turner 61cfa788a0 SCI: Fix GCC Compiler Fallthrough Warning 2022-03-05 16:01:54 +00:00
sluicebox 695b7f9229 SCI32: Improve SCI3 object parsing
Adjust the parsing code to more accurately reflect the
resource format. Adds more comments and less allocations.
2022-03-03 22:26:09 -05:00
sluicebox e1c749adc6 SCI: Update SQ1VGA script patch notes 2022-03-03 22:26:09 -05:00
sluicebox 0d12e0add6 SCI: Fix crash on GMM if User object can't be found 2022-03-03 22:26:09 -05:00
sluicebox bf72668377 SCI: Handle saving from GMM for LSL3/SQ3 German Amiga 2022-03-03 21:54:27 -05:00
sluicebox cd16390198 SCI: Fix SQ3 ScumSoft announcements never appearing
Fixes bug #13318

Thanks to @Doomlazer for reporting this!
2022-03-02 01:15:43 -05:00
Filippos Karapetis 6744600f57 SCI: Handle saving via the GMM for LB2 floppy
LB2 floppy is one of the few full version games that was shipped
without a selector vocabulary. Add the necessary selectors for it,
so that saving via the GMM is correctly enabled
2022-01-18 00:22:18 +02:00
Filippos Karapetis 3a8e79c674 SCI: Allow saving from the GMM for more SCI32 games
Saving from the GMM should now work for the following games as well:
GK2, Lighthouse, LSL7, Phant2, Shivers and Torin

Many thanks to @sluicebox for his help checking the game scripts of
these games
2022-01-16 21:36:42 +02:00
sluicebox 1b4660a508 SCI32: Fix event type for Direction events
The direction event type changed from 64 in SCI16 to 16 in SCI32.

Fixes direction events not appearing when pressing arrow keys in SCI32
games, such as on the QFG4 character creation screen: bug #13223
2022-01-16 13:52:09 -05:00
Filippos Karapetis d8336a31ff SCI: Allow saving from the GMM for games that can support it
This functionality should be working without issues in the following
games:
BRAIN1, BRAIN2, ECOQUEST1, ECOQUEST2, FAIRYTALES, PHARKAS, GK1, ICEMAN,
KQ1, KQ4, KQ5, KQ6, KQ7, LB1, LB2, LONGBOW, LSL1, LSL2, LSL3, LSL5, LSL6,
LSL6HIRES, PEPPER, PQ1, PQ2, PQ3, PQ4, PQSWAT, QFG1, QFG1VGA, QFG2, QFG3,
QFG4, SQ1, SQ3, SQ4, SQ5, SQ6
2022-01-16 18:36:27 +02:00
Filippos Karapetis 74fdf50a9e SCI: Improve the save/load code for saving and checking game versions 2022-01-16 18:36:26 +02:00
Filippos Karapetis fb9a96d0f8 SCI: Add WIP code for saving via GMM and autosaving (still disabled)
We check if the user has control, which seems to be working as intended,
but music is not resumed properly after loading, so it's disabled for
now
2022-01-16 13:54:57 +02:00
sluicebox e0a7df681d SCI32: Fix LSL7 Peggy crash in Russian version
Fixes bug #13209
2022-01-13 19:35:48 -05:00
sluicebox 6abbb67bf8 SCI: Update QFG3 menu workaround to handle Quit
Fixes bug #13161
2022-01-10 16:16:00 -05:00
sluicebox 4e865e945e SCI: Fix build when SCI32 is disabled. again. 2022-01-09 21:31:22 -05:00
sluicebox 87afecfe13 SCI: Fix QFG1 death message when picking safe 2022-01-09 14:19:25 -05:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Filippos Karapetis 6af691e344 SCI: Skip TTS for QFG4 room 140 (character creation screen)
In this screen, the UI is refreshed with many short sentences (e.g.
"Strength"), which are drawn very quickly. Since this causes TTS to
constantly start and stop, it introduces an unwanted lag, thus we
skip TTS in that screen
2021-12-24 02:57:27 +02:00
Filippos Karapetis 433f11da95 SCI: Only strip color codes in SCI1.1 for TTS
Color code processing has been removed in newer SCI versions
2021-12-24 02:57:27 +02:00
Filippos Karapetis 8a748f7e03 SCI: Add TTS support for SCI32 floppy games (QFG4, GK1, PQ4) 2021-12-24 02:57:27 +02:00
Filippos Karapetis f335d74e87 SCI: Strip color codes in TTS, and only handle actual texts in TTS
We now remove all color codes from strings, and only handle texts in
TTS if they contain at least one vowel. This allows us to skip texts
such as the one shown when talking to the alien in SQ5 room 500, where
a series of symbols is shown, as part of a joke
2021-12-24 02:57:27 +02:00
Filippos Karapetis ee2995fe82 SCI: Don't hook up kDisplay to TTS
kDisplay is used to redraw parts of the UI, so it's not ideal to hook
TTS there, as it keeps spamming sentences that get redrawn in the UI
frequently, such as the intro text and the points in SQ5
2021-12-24 02:57:27 +02:00
Filippos Karapetis 0aaf48f900 SCI: Handle text in TTS where the first character is chopped off
This occurs in games such as KQ5 and KQ6
2021-12-24 02:57:27 +02:00
Filippos Karapetis a488bb47e8 SCI: Text to Speech (TTS) functionality for SCI16 (SCI0 - SCI1.1) games
This is based on the work done for GSoC by @taylorzhancher in PR #3256

Highlights:
- TTS has been hooked globally onto places where text is shown
- TTS is currently performed for textboxes and button texts
- TTS stops when text windows are disposed (which enhances the in-game
  experience)
- No game-specific logic has been added
- This hasn't been extensively tested with all SCI16 games yet
- There will be cases that are not handled properly yet
- The TTS functions have been grouped under a SciTTS class
2021-12-24 02:57:27 +02:00
sluicebox 5e725d639c SCI: SavegameDesc::name is now always terminated
`SavegameDesc::name` is now easier to understand and safer to use.
Fixes Phant2 regression from 913d943a09
Fixes Phant2 out-of-bounds read in `Console::cmdListSaves`

This was originally always a null terminated string but when SCI32
was added the terminator became optional, leading to a confusing
situation. `name` is now always terminated internally. SCI16 interfaces
continue to terminate the 36th element and SCI32 interfaces continue
to use the first 36 elements as-is.

See: 4357809ce8
2021-12-21 14:38:19 -05:00
Eugene Sandulenko 913d943a09 SCI: Use safer string copying 2021-12-21 00:21:53 +01:00
sluicebox f0e7fb8a7a SCI32: Fix LIGHTHOUSE compass-in-submarine error 2021-12-18 21:53:45 -05:00
sluicebox 3507830ced SCI: Fix kTextSize use-after-free
Introduced in b38d5b28ba
2021-12-18 15:00:29 -05:00
sluicebox 5063bc2288 SCI: Fix PQ3 lockup when showing judge evidence 2021-12-16 21:31:19 -05:00
sluicebox 46cdbecbc6 SCI: Fix uninitialied variable in multi-language parser
Fixes QFG1 Japanese message display when messages are set to
Japanese and subtitles are enabled

Huge thanks to DarkSoul for verifying original PC-98 behavior
2021-12-16 21:31:19 -05:00
sluicebox 8a87d1030c SCI: Fix newline handling in Japanese PQ2
Many PQ2 Japanese strings contain escaped newlines ("\n") which we have
not been handling. We have been handling these in getSciLanguageString()
when returning Japanese text but that's not where SSCI does this work.
PQ2's Print procedure in script 255 parses Japanese text itself and our
getSciLanguageString() is never involved.

Now Japanese newline handling is done in the core text measuring and
drawing functions, which is closer to where SSCI did it, but without the
hack of having GetLongest() patch out Japanese newlines like in SSCI.

Fixes bug #13154
2021-12-13 11:43:35 -07:00
sluicebox b38d5b28ba SCI: kTextSize cleanup 2021-12-13 11:29:23 -07:00
sluicebox 0f54e7d358 SCI: Fix SQ3 end credits in version 1.0P 2021-12-09 00:22:42 -07:00
sluicebox 1de4c13dfb SCI: Add workaround for SQ3 1.018 vocab bugs
Big thanks to Threepwang for reporting this
2021-12-01 00:02:57 -07:00
Orgad Shaneh 940c7bfc14 SCI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox e57a0adf57 SCI: Fix KQ6 Mac inconsistent timing in opening movie 2021-11-13 04:07:55 -06:00