aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2016-08-13SCI32: Fix cast warningsColin 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: Clean up Video32 includesColin Snover
2016-08-12SCI32: Fix KQ7 1.51 video backgroundColin Snover
2016-08-12SCI32: Fix crash when kShowMovie is called but the video cannot be foundColin Snover
2016-08-12SCI32: Fix KQ7 1.51 basic video playbackColin Snover
There is still a problem where the background is white instead of black; this is caused by the palette of the video using entry 0 as white. This seems to have worked out OK in SSCI because the video was not actually played back inside the engine itself, so didn't interfere with the palette of the engine. ScummVM has no such separation, so the palette of the video interferes with the palette of the blank background pic, turning it white.
2016-08-12SCI32: Additional Video32 documentationColin Snover
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: Fix KQ7 1.51 video backgroundColin Snover
2016-08-11SCI32: Fix crash when kShowMovie is called but the video cannot be foundColin Snover
2016-08-11SCI32: Fix KQ7 1.51 basic video playbackColin Snover
There is still a problem where the background is white instead of black; this is caused by the palette of the video using entry 0 as white. This seems to have worked out OK in SSCI because the video was not actually played back inside the engine itself, so didn't interfere with the palette of the engine. ScummVM has no such separation, so the palette of the video interferes with the palette of the blank background pic, turning it white.
2016-08-11SCI32: Additional Video32 documentationColin Snover
2016-08-11SCI32: Implement kShowMovieColin Snover
2016-08-11SCI32: Fix GfxFrameout::_isHiRes flag to be accurate for all gamesColin 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: Remove VMD flags from Audio32 mixerColin Snover
The VMD decoder sends audio directly to the system mixer.
2016-08-06SCI32: Actually save and load remapsColin Snover
2016-08-04SCI32: Add QFG4 Windows signatureColin 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: Fix crash when destroying GfxTransitions32Colin Snover
2016-08-01SCI32: Add bitmap segment and remove GC option from hunk segmentColin Snover
2016-08-01SCI32: Don't crash on zero-dimension show rectsColin Snover
In the original engine this would have simply resulted in no draw, but ScummVM is more strict about it. It is not 100% clear whether these are normal and should be allowed or not, so for the moment we'll emit a warning whenever a zero-dimension show rect is seen. For now they only seem to be generated by plane transitions, and these zero-dimension screen items cannot simply be omitted because the 2.1early transitions code requires a fixed number of screen items per step.
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-30SCI32: Fix crash in Torin when opening save dialogColin Snover
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.
2016-07-27SCI32: Give default skip color a nameColin Snover
2016-07-27SCI32: Remove dead placeholder rendering codeColin Snover
2016-07-27SCI32: Fix kShowMovie calls crashing SCI32Colin Snover
This will all be overhauled in the future but for now it is best not to crash when playing AVI/SEQ files.
2016-07-27SCI32: Re-enable the high resolution mode option for GK1Colin Snover
2016-07-27SCI32: Use extern instead of #include frameout.h for splitRectsColin Snover
2016-07-27SCI32: Fix backwards kFrameOut throttle timingsColin Snover
2016-07-27SCI32: Handle remap data outside the game's remap rangeColin Snover
2016-07-25Merge pull request #789 from OmerMor/hoyle5Martin Kiewitz
Add detection to the Hoyle 5 family of games
2016-07-25SCI: Add detection to the Hoyle 5 family of gamesOmer Mor
Added games are: Hoyle Classic Games Hoyle Bridge Hoyle Children's Collection Hoyle Solitaire (CD and Hard Drive versions) Additionaly, kGetConfig was modified to support two settings used by these games: "laptop" and "jumpto".
2016-07-24SCI32: Fix Video32 breaking when quitting during video playbackColin Snover
2016-07-24SCI32: Fix bad VMD palettes in GK2Colin Snover
2016-07-24SCI: Fix memory leaks in ResourceManagerColin Snover
2016-07-24SCI32: Improve behaviour of screen transitionsColin Snover
1. Use the same throttling speed as normal frameouts. The old throttling speed seemed a bit too slow. 2. Exit the event loop immediately if the engine is supposed to quit, instead of forcing the user to wait until the transition has finished before quitting.
2016-07-24SCI32: Fix KQ7 uninitialized readColin Snover
2016-07-12SCI32: Disable kernel call 0x23 on LSL6hiresColin Snover
LSL6hires calls 0x23 (Graph/Robot) from game scripts, but it is a null function in the game's interpreter.