Commit Graph
4076 Commits
Author SHA1 Message Date
Colin Snover aa720ca9cd SCI32: Fix deleting save games in KQ7 2016-09-29 19:39:16 -05:00
Colin Snover fba8568484 SCI32: Fix multiple bugs in kSave
1. Shift save numbers up/down for game scripts that rely on save
   game numbers starting from 0 to work correctly
2. Add fake file operations to support KQ7 save games
3. Hide autosave games from native save/load list to match SSCI.
2016-09-29 19:39:16 -05:00
Colin Snover 2629269212 SCI32: Emulate Shivers 1 game score metadata 2016-09-29 19:39:16 -05:00
Colin Snover 4072714143 SCI32: Increase allowed number of save games in native save/load
This is applied only to games where the standard save/load
dialogue is used; games like KQ7 and Phantasmagoria, which use a
non-standard UI for save games, are still limited to the number of
saves originally supported.
2016-09-29 19:39:16 -05:00
Colin Snover 0e53c8e9f3 SCI32: Improve MGDX support
Audio directory switching is temporarily disabled because it
causes use-after-free in the resource manager.
2016-09-29 19:39:16 -05:00
Colin Snover b3cfe699f6 SCI32: Fix read overflow when there are no save games
SCI system scripts will always try to read once from the game IDs
array even if the number of games is zero.
2016-09-29 19:39:16 -05:00
Colin Snover c8516ff9eb SCI32: Add handling for save catalogues 2016-09-29 19:39:16 -05:00
Colin Snover 1eb6d90eec SCI32: Implement ScummVM save/load 2016-09-29 19:39:16 -05:00
Colin Snover b5d0fffb8b SCI: Replace magic numbers for globals with named constants 2016-09-29 19:39:16 -05:00
Colin Snover a96dc1a7b8 SCI32: Correct return values for kFileIO operations 2016-09-29 19:39:16 -05:00
Colin Snover 10f450917c SCI32: Implement kSave for standard-save SCI32 games
Games with custom save code (KQ7, MGDX, PQ:SWAT, Shivers) are not
fully supported yet.
2016-09-29 19:39:16 -05:00
Colin Snover a22bfb0db2 SCI32: Fix "new game" and auto-save functionality 2016-09-29 19:39:16 -05:00
Colin Snover 57c62c59f9 SCI32: Add constants documentation 2016-09-29 19:39:16 -05:00
Colin Snover 90ee2d799d SCI: Split savegame descriptor fill code from savegame list code
The descriptor is used to check the validity of single savegames
in SCI32.
2016-09-29 19:39:16 -05:00
Colin Snover 64dc37cfe2 SCI32: Start implementing kSave for SCI32 2016-09-29 19:39:16 -05:00
Colin Snover c7dacf273e SCI32: Clean up and fix some SCI32-only kFileIO operations 2016-09-29 19:39:16 -05:00
Colin Snover 02540b8d38 SCI32: Add support for kPrintDebug 2016-09-29 19:39:16 -05:00
Colin Snover 44dd029cb1 SCI32: Implement kSetHotRectangles
Used only by chapter 7 of Phant1.
2016-09-29 19:39:16 -05:00
Colin Snover 2be2629a3b SCI32: Fix kFileIOOpen signature
The mode argument is required in SCI32 too; Torin just had a script
bug.
2016-09-29 19:39:16 -05:00
Colin Snover 88de81a72e SCI32: Patch bad calls to IntArray::newWith in Phant1 and SQ6 2016-09-29 19:39:16 -05:00
Colin Snover 3f91726765 SCI32: Rewrite kArray & kString
This change invalidates earlier SCI32 save games, which separated
arrays and strings in an incompatible manner. Old save games
contain invalid references to a string segment which no longer
exists, and contain incompatible array structures that lack
critical type information.
2016-09-29 19:39:16 -05:00
Colin Snover 1de74fa514 SCI: Improve debugging output for selector failures 2016-09-29 19:39:16 -05:00
Colin Snover 3201440d11 SCI: Generalize code for getting information on the current call 2016-09-29 19:39:16 -05:00
Colin Snover b784357f5d SCI: Fix whitespace 2016-09-29 19:39:16 -05:00
Colin Snover 3cf16c0a7f SCI32: Explicitly instantiate MIN/MAX templates 2016-09-29 19:39:16 -05:00
Colin Snover d0517f515e SCI32: Update screen on frameout, instead of in the event loop 2016-09-29 19:39:16 -05:00
Colin Snover 78849053ca SCI32: Fix off-by-one error
CID 1361599.
2016-09-29 19:39:16 -05:00
Martin Kiewitz 97d444a569 SCI: Fix kernel signature comment 2016-09-21 21:46:15 +02:00
Martin Kiewitz 2bec9c5a0c SCI: Add qfg1vga script patch to fix bug #9558
This solves a game bug, that also happens when using the original
interpreter, during the time where Brutus and Bruno meet at the
shooting range.
2016-09-18 15:59:38 +02:00
Martin Kiewitz 71d20da1e5 SCI32: Fix GK1 day 5 script patch
The previous patch made ego not getting the drum book anymore.
2016-09-09 00:46:49 +02:00
Martin Kiewitz 858bfdf691 SCI32: Add script patch for fixing game dialogue error on day 5
Special thanks, credits and kudos to sluicebox on IRC, who did a
ton of research on this and even found this game bug originally.
2016-09-08 21:52:10 +02:00
Willem Jan Palenstijn 62b3c00da3 SCI: Add missing parentheses to SIG/PATCH macros 2016-08-30 19:49:03 +02:00
Martin Kiewitz 01327b540d SCI32: Add script patch for Gabriel Knight 1 script bug day 10
Day 10 - when dressing up. Right after that Gabriel turns around,
which went on endlessly in ScummVM. In the original engine
kNumCels is broken and returns in special cases basically random
data instead of 0. We return 0, which caused the cycler to
never end, because the scripts asked to cycle until cel -1.
2016-08-28 22:08:30 +02:00
Colin Snover 1760fb3e0d SCI32: Fix incorrect/missing cursor after restoring a save game 2016-08-28 13:06:34 -05:00
Colin Snover c3335657f7 SCI32: Allow invalid bitmap references to be passed to kBitmapDestroy
SSCI explicitly ignored invalid references passed to this function.

Fixes GK1 room 410, when using the Rada Drum book on the drummer.
2016-08-27 12:03:37 -05:00
Willem Jan Palenstijn e880fd74ed SCI32: Fix warning 2016-08-26 18:57:43 +02:00
Willem Jan Palenstijn 5734400a37 SCI: Make kFileIORename use wrapped filenames
This fixes deleting savegames in Phantasmagoria 1.
2016-08-25 22:05:24 +02:00
Filippos Karapetis ed461fba65 SCI32: Add a workaround when starting a new game in Phantasmagoria
This workaround is needed when starting a new game from a chapter after
the first one
2016-08-25 21:56:23 +03:00
Filippos Karapetis 429759b481 SCI32: Also handle chase.dat in Phantasmagoria like phantsg.dir
This file is used during the chase sequence, and needs the same
read/write logic as phantsg.dir
2016-08-25 21:56:22 +03:00
Filippos Karapetis 25515c690e SCI32: Fix the signature of kDoAudioCritical, and add documentation
This is used in Phantasmagoria, chapter 3, nursery (room 14200),
during the "ghost lullaby" event. It is used to make the lullaby
sound exclusive, but it really doesn't make any major difference.

Also, the documentation has been adjusted to contain this
information. Finally, the documentation has been adjusted to use
80 columns
2016-08-25 17:02:21 +03:00
Filippos Karapetis 380902eb07 SCI32: Add workarounds for a bug in Torin, in an animation of Lycentia 2016-08-24 11:57:08 +03:00
Filippos Karapetis 14f163bad1 SCI32: Allow kListAt to reference an empty list
Happens in Torin when examining Di's locket in chapter 3
2016-08-23 14:26:59 +03:00
Filippos Karapetis d15660e70d SCI32: Add a workaround for an uninitialized variable in Torin 2016-08-23 14:06:39 +03:00
Filippos Karapetis 6929cc65f8 SCI32: Explicitly abord kEachElementDo when a game is being loaded
This is a better check than the one in commit 3d1f1a3a21
2016-08-23 13:08:37 +03:00
Filippos Karapetis 3d1f1a3a21 SCI32: Fix restoring games from Torin's game restore dialog
The list in kListEachElementDo may be invalidated after a
selector invocation
2016-08-23 11:36:38 +03:00
Filippos Karapetis cd00132d23 SCI32: Also handle game checks for "torinsg.cat" in Torin
This shows the "Open..." button when continuing a game
2016-08-23 11:36:37 +03:00
Filippos Karapetis f238ed18ec SCI: Fix compilation when SCI32 is not enabled 2016-08-23 01:48:06 +03:00
Filippos Karapetis a10c18fd8b SCI32: Add a workaround for kDoSoundPlay for GK1 Mac 2016-08-22 19:57:02 +03:00
Filippos Karapetis ba8d6f6c03 SCI32: Move the SCI32 Mac cursor handling code into GfxCursor32
This was left in the SCI16 code in commit 80d9182554
2016-08-22 19:56:06 +03:00
Filippos Karapetis 39307d1f4d SCI: Return the correct platform in kPlatform for Mac versions 2016-08-22 19:48:56 +03:00