aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2016-10-27SCI32: Fix typosColin Snover
Thanks @OmerMor.
2016-10-27SCI32: Fix LSL6hires script bugColin Snover
Fixes Trac#9612.
2016-10-26SCI32: Fix AVI renderingColin Snover
Fixes Trac#9588.
2016-10-26SCI32: Initialize video buffers to avoid flash of garbage memoryColin Snover
2016-10-26SCI32: Use standard max_size method instead of ARRAYSIZE for a containerColin Snover
2016-10-26SCI: Rename hexDigitToInt to indicate it's intentionally brokenWillem Jan Palenstijn
2016-10-25SCI: Implement SSCI bug in hexadecimal escape sequencesColin Snover
In SSCI, strchr is called against a hex string with a duplicate 0 ("01234567890abcdef") to determine the decimal value of hex digits, which means the values A-F are incorrectly interpreted as 11-16 instead of 10-15. All versions of SSCI with support for hexadecimal escape sequences in messages (starting somewhere around Feb 1993) are buggy. The native save/load dialog of SCI32 relies on this defect to render the up and down arrows of the game selector. Fixes Trac#9582.
2016-10-22SCI32: Fix slow SCI2.1mid transitionsColin Snover
SSCI transitions code sends a large number of small show rects to the graphics manager, one at a time, for each division of a transition. Each time a rect is submitted, a call to showBits is made. This design was used when transitions for SCI32 were first implemented in ScummVM, and it worked OK because the hardware surface was updated by EventManager::getSciEvent, not showBits, so the large number of calls to showBits from the transitions code did not adversely affect engine performance. Later in SCI32 engine development, hardware surface updates were changed to occur in showBits so that the hardware surface would be updated at frame-out time, instead of at input-in time. This change meant that now the large number of calls to showBits from transitions became very expensive, and the engine would stall constantly refreshing the entire hardware surface. To fix this problem, the transitions code now (1) maximises the size of rects coming from transitions, when possible, and (2) only calls showBits when all the rects from one frame of a transition have been calculated and added to the show rects list. Additionally, there were some arithmetic errors in the implementation of pixel dissolve that have been corrected in this changeset. Fixes Trac#9614.
2016-10-21SCI32: Implement HShutterIn for SCI2.1mid+Colin Snover
Fixes Trac#9584.
2016-10-20SCI32: Fix wrong value passed to updateInfoFlagViewVisibleColin Snover
updateInfoFlagViewVisible accepts a property index, not a selector ID. Fixes Trac#9583.
2016-10-20SCI32: Fix QFG4 version commentsColin Snover
2016-10-20SCI32: Fix typoColin Snover
2016-10-20SCI32: Split out detection of features that cross SSCI versionsColin Snover
2016-10-20SCI32: Fix zero-offset exportsColin Snover
Exports with a zero offset are supposed to point to the start of the code block in the script hunk, but they were being ignored. This may also apply to SCI1.1 games, but until that can be verified, this fixes the zero-offset in only SCI32 games for now.
2016-10-16SCI32: Fix screen items incorrectly drawing over higher planesColin Snover
Fixes Trac#9583.
2016-10-16SCI32: Fix crash when clicking around the arterial blockage in SQ6Colin Snover
Thanks @hpvb for the report. Fixes Trac#9615. Closes #850.
2016-10-16SCI32: Fix workaround commentColin Snover
2016-10-15SCI32: Fix crash clicking quit button during LSL6hires creditsColin Snover
2016-10-15SCI32: Fix crash in LSL6hires endingColin Snover
Fixes Trac#9613.
2016-10-15SCI32: Fix kPalVary(SetVary) in SCI2.1early gamesColin Snover
Game scripts pass an extra argument which is never used in SSCI. This happens e.g. when warping from room 620 to room 860 in LSL6hires. Adding a signature for kPalVarySetVary for SCI2.1early games only does not work because KQ7 1.51 is detected as SCI2.1early but the interpreter includes kPalVary code that matches SCI2.1mid. Fixes Trac#9611.
2016-10-14SCI32: Fix mouse position clampingColin Snover
2016-10-14SCI: Ensure export breakpoints always trigger on export callsColin Snover
Previously, export calls to non-existing functions would act like there was never an export call, and the breakpoint would never be triggered.
2016-10-14SCI32: Fix slow transitions in SQ6Colin Snover
2016-10-14SCI: Make -propDict- unique for each classWillem Jan Palenstijn
Previously, this was using the offset of the property dict inside the script. However, this isn't unique. For example, SQ6's DPath and PolyPath classes both have their property dict at offset 8 of their respective scripts. This would break Obj::isMemberOf. Closes #846.
2016-10-12SCI: Add modified workaround for Simbani bridge room for GOGWillem Jan Palenstijn
The GOG version comes with a fan patch that uses rm470::name to store a timer to rate-limit rm470::doit. This breaks the workaround detection since that uses the name field.
2016-10-11SCI32: Fix garbage collection of objects stored in IntArraysColin Snover
2016-10-10SCI32: Reset active hot rect index when changing hot rectsColin Snover
2016-10-10SCI32: Check for existence of visiblePlane before dereferencingColin Snover
CID 1351620.
2016-10-09SCI: Fix crash when attempting to view invalid list, array, bitmap referencesColin Snover
2016-10-09SCI32: Allow 'focused' variable to break out of the event loopColin Snover
2016-10-09SCI: Fix memory leakColin Snover
2016-10-09SCI32: Clarify some identifiersColin Snover
transparentColor -> skipColor displace -> origin scaledWidth -> xResolution scaledHeight -> yResolution
2016-10-09SCI32: Change storage type of int16 arrays to hold reg_ts insteadColin Snover
Memory references and integers in SSCI are both 16-bit numbers, so game scripts frequently (incorrectly) use an IntArray instead of an IDArray for holding references. Since references in ScummVM are 32-bit reg_ts, IntArray entries must be large enough to hold reg_ts in order to be compatible with game scripts that store references in integer arrays. The alternative solution is to find and patch all incorrect use of IntArray across all games. This is possible, but a bit risky from a save game stability perspective, since incorrect IntArray usage is sometimes not apparent until well after the array is instantiated (like GK1's global interview array). This change invalidates existing SCI32 save games.
2016-10-09JANITORIAL: Remove trailing spacesEugene Sandulenko
2016-10-08SCI: Release SCI music mutex earlier in reconstructPlayListWillem Jan Palenstijn
This avoids a deadlock where the main thread (via reconstructPlayList) tries to acquire the mixer lock (in soundPlay) while holding the SCI music lock, and the audio thread is holding the mixer lock and tries to acquire the SCI music lock (in miditimerCallback). Bug #6691.
2016-10-05SCI32: Fix uninitialized read when starting a new game in LSL6hiresColin Snover
2016-10-05SCI32: Fix Return to Launcher in F5 menuColin Snover
Closes #837.
2016-10-05SCI32: Fix deleting save games in native save/load dialogueColin Snover
2016-10-05SCI32: Fix version file read failure in LSL6hiresColin Snover
2016-10-01SCI32: Make kNumCels error more detailedColin Snover
2016-10-01SCI32: Fix crash when trying to interrogate bartender in GK1Colin Snover
2016-10-01SCI32: Stub kGraphColin Snover
This kernel call exists only in SCI2 and is a null subroutine. It is called at the beginning of GK1.
2016-10-01SCI32: Use selector lookup in Torin script patch instead of magic numbersColin Snover
2016-10-01SCI32: Fix signature of kString(ArraySetElements) to allow 0 argsColin Snover
2016-10-01SCI32: Fix interrogation screen crash in GK1Colin Snover
2016-09-30SCI32: Sync subtitle text speed with ScummVM GUIColin Snover
2016-09-30SCI: Bump save game number to fix save game compatibilityColin Snover
Version 38 save games were added to the 1.9 release branch with only changes to SCI32 cursor support; shortly thereafter, changes to the general (SCI16+SCI32) save game metadata were committed to master -- without bumping the save game version number. This prevented SCI16 save games from loading correctly in 1.10pre, since the engine expected that version 38 games would have this extra metadata, but they don't.
2016-10-01SCI32: Add the rest of the code from PR #813 for dynamic line drawingFilippos Karapetis
2016-09-30SCI32: Give savegame-only methods internal linkageColin Snover
2016-09-30SCI32: Reset saved parts of GfxPalette32 when loading save gamesColin Snover