aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
AgeCommit message (Collapse)Author
2016-08-26SCI32: Fix warningWillem Jan Palenstijn
2016-08-25SCI: Make kFileIORename use wrapped filenamesWillem Jan Palenstijn
This fixes deleting savegames in Phantasmagoria 1.
2016-08-25SCI32: Add a workaround when starting a new game in PhantasmagoriaFilippos Karapetis
This workaround is needed when starting a new game from a chapter after the first one
2016-08-25SCI32: Also handle chase.dat in Phantasmagoria like phantsg.dirFilippos Karapetis
This file is used during the chase sequence, and needs the same read/write logic as phantsg.dir
2016-08-25SCI32: Fix the signature of kDoAudioCritical, and add documentationFilippos Karapetis
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-24SCI32: Add workarounds for a bug in Torin, in an animation of LycentiaFilippos Karapetis
2016-08-23SCI32: Allow kListAt to reference an empty listFilippos Karapetis
Happens in Torin when examining Di's locket in chapter 3
2016-08-23SCI32: Add a workaround for an uninitialized variable in TorinFilippos Karapetis
2016-08-23SCI32: Explicitly abord kEachElementDo when a game is being loadedFilippos Karapetis
This is a better check than the one in commit 3d1f1a3a21
2016-08-23SCI32: Fix restoring games from Torin's game restore dialogFilippos Karapetis
The list in kListEachElementDo may be invalidated after a selector invocation
2016-08-23SCI32: Also handle game checks for "torinsg.cat" in TorinFilippos Karapetis
This shows the "Open..." button when continuing a game
2016-08-23SCI: Fix compilation when SCI32 is not enabledFilippos Karapetis
2016-08-22SCI32: Add a workaround for kDoSoundPlay for GK1 MacFilippos Karapetis
2016-08-22SCI32: Move the SCI32 Mac cursor handling code into GfxCursor32Filippos Karapetis
This was left in the SCI16 code in commit 80d9182554
2016-08-22SCI: Return the correct platform in kPlatform for Mac versionsFilippos Karapetis
2016-08-22SCI32: Add stubs for the kPlayVMDSetPreload and kPaletteSetGamma callsFilippos Karapetis
These were introduced in SCI3, and are used by RAMA. We don't preload videos, so we don't really need kPlayVMDSetPreload, but kPaletteSetGamma may need an implementation. With these two stubs, the main menu of RAMA is working again
2016-08-22SCI32: Reorder the SCI32 palette kernel call assignmentsFilippos Karapetis
2016-08-19SCI32: Fix limited data range comparison warningColin Snover
On at least DC platform, the ShowStyleType enum is fit to a 4-bit data size, so the 16-bit input value needs to be checked for validity *before* it is cast to a 4-bit ShowStyleType.
2016-08-19SCI32: Bug fixes to PQ:SWAT script bugs and kList callsColin Snover
2016-08-19SCI32: Partially implement kCDColin Snover
2016-08-19SCI32: Add kPlayVMDGetStatus kernel callColin Snover
Used by Lighthouse.
2016-08-19SCI: Remove references to SCI32 features from SCI16 video playerColin Snover
2016-08-19SCI32: Remove CoordAdjuster32, at least for the momentColin Snover
This may come back in the future to deduplicate some gfx code, but SCI32 had two different inlined ways of doing coordinate conversions with different rounding methods, so CoordAdjuster32 didn't get used when the graphics system was rewritten. At the moment, SCI32 code uses the mulru/mulinc methods from helper.h for scaling up/down coordinates.
2016-08-19SCI32: Fix kGlobalToLocal and kLocalToGlobalColin Snover
Fixes (at least) the native SCI save dialogs.
2016-08-19SCI32: Implement kRobotColin Snover
2016-08-19SCI32: Split kPlatform for SCI32Colin Snover
2016-08-19SCI32: Add kSetNowSeen variant for older SCI32 gamesColin Snover
KQ7 2.00b, PQ:SWAT, Phant1, GK2, and Torin are all verified as using the 'ignore' variant; SQ6 and QFG4CD are verified as using the 'fail' variant. MGDX and Shivers could not be checked as they have only Phar Lap Win16 executables, so took a guess based on their release dates.
2016-08-19SCI32: Address TODO in seg_manager.hColin Snover
2016-08-19SCI32: Implement kShakeScreen for SCI32Colin Snover
2016-08-19SCI32: Remove GfxScreen from SCI32Colin Snover
2016-08-19SCI32: Implement SCI32 cursor supportColin Snover
2016-08-13SCI: Fix sign comparison warningColin Snover
2016-08-13SCI: Fix pointer invalidation caused by array storage movesColin Snover
When objects are added to a SegmentObjTable, it may cause the internal storage for the table to expand and move to a new region of memory. When this happens, all pointers to objects held by a SegmentObjTable of the same type would be invalidated, due to an implementation detail that should not be exposed. To prevent this, objects are now allocated separately on the heap, so even if the table's storage moves due to insertions, the objects owned by the table will not, so references remain valid for the lifetime of the object.
2016-08-13SCI: Fix pseudo mouse in various SCI1 games like e.g. Larry5Martin Kiewitz
Pseudo mouse was functionality in SCI1+ games, that allowed the user to control the mouse via keyboard cursor keys. This new class only worked, when a tiny difference inside the keyboard driver happened on kMapKeyToDir calls. We previously tried to enable this behavior depending on cursor type, but this didn't work correctly (Larry 5 for example was not detected as such, but had PseudoMouse support).
2016-08-12SCI32: Fix crash when multiple nodes are deleted during kListEachElementDoColin Snover
This happens in e.g. Phant1, when walking from dining, to reception, to up the stairs.
2016-08-12SCI32: Implement kShowMovieColin Snover
2016-08-11SCI32: Temporarily revert kShowMovie due to buildbot failuresColin Snover
Revert "SCI32: Fix KQ7 1.51 video background" This reverts commit c8affb54cca259f37522216bad739be085bf9caa. Revert "SCI32: Fix crash when kShowMovie is called but the video cannot be found" This reverts commit 93b06f4a9e08de281ee7eb9c780ceac147c3fb23. Revert "SCI32: Fix KQ7 1.51 basic video playback" This reverts commit cdab24aa07c18ad4a25a1659f7fca15cca5e358e. Revert "SCI32: Additional Video32 documentation" This reverts commit 4ff0924e57a9bc9101ee0799a967fe3373dd2574. Revert "SCI32: Implement kShowMovie" This reverts commit 13297c19298c5ad73c9e996c5c31ca91de124911.
2016-08-11SCI32: Implement kShowMovieColin Snover
2016-08-11Merge pull request #798 from wjp/torin_savingFilippos Karapetis
SCI32: Support Torin's autosave system
2016-08-11SCI32: Don't use autosave.cat in TorinWillem Jan Palenstijn
2016-08-09SCI: Fix sq4 workaround room 391, fixes bug #7179Martin Kiewitz
doCatalog::mode does not exist, the method is actually doCatalog::changeState This issue has been in there since the workaround was added through commit 20b1d80d598e6f741e28c9a85d186e463d111816
2016-08-06SCI32: Actually save and load remapsColin Snover
2016-08-01SCI: Fix warningsEugene Sandulenko
2016-08-01SCI32: Implement bitmap save routineColin Snover
2016-08-01SCI32: Fix invalid memory access after BitmapTable is extendedColin Snover
When new bitmaps are added and the underlying Common::Array needs to move to expand, this invalidates all pointers to bitmaps, which makes it basically impossible to use the bitmap segment since you never know if a reference is going to be invalidated due to an array move. To solve this, BitmapTable is changed to hold pointers to SciBitmaps that are allocated separately on the heap instead, so when those bitmaps are looked up, the resulting pointers are valid for the lifetime of the bitmap, instead of the lifetime of the Common::Array used internally by BitmapTable.
2016-08-01SCI32: Add bitmap segment and remove GC option from hunk segmentColin Snover
2016-08-01SCI32: Add 6-argument signature of kAddPicAtColin Snover
This is used by Torin in room 50900.
2016-08-01SCI32: Implement plane transitions (kSetShowStyle and kSetScroll)Colin Snover
This commit implements all of the known plane transitions from SCI2 through SCI2.1mid games. Because kSetShowStyle is always called indirectly via the Styler game script, it is difficult to find all the places where transitions are used. As such, transitions that appeared to never be used have been added as stubs which will trigger a game crash with a message to report what was being done, so any missed transition types can be identified quickly and then implemented.
2016-08-01SCI32: Enable optional explicit memory management of hunk entriesColin Snover
Bitmaps in ScrollWindow and Robot code are managed by the kernel and not by game scripts, although they must be able to be referenced through a reg_t. To prevent incorrect GC of bitmaps that are in use but not referenced by any game script, explicit memory management of hunk entries can be enabled.
2016-07-29SCI32: Support Torin's autosave systemWillem Jan Palenstijn
Torin has two sets of saves: autosave.### and torinsg.###, both with their own slots and .cat file. The autosave system uses autosave.000 and autosave.001. It also checks the presence of autosave.cat to determine if it should show the chapter selection menu on startup.