aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
AgeCommit message (Collapse)Author
2016-06-25SCI: Script patch for critical Colonel's Bequest game bugMartin Kiewitz
This patch is about an issue, when interacting with the armor in room 37 (main house, downstairs). This bug also happened, when using the original interpreter and effectively froze the game depending on the coordinate of Laura Bow, when the command was entered. Fixes bug #7119 Versions affected: English PC/Atari ST/Amiga Floppy
2016-06-25SCI: Fix SQ1VGA script patch, fixes bug #7145Martin Kiewitz
Script patch used "lsg" for one instruction, which should have been "lag" instead. Caused issues with the spider droid. Added more details about this script patch in comments. Also specified the method for a qfg3 script patch in comments.
2016-06-21SCI32: Implement kBitmapDrawViewColin Snover
2016-06-21SCI32: Expose a draw buffer on BitmapResource objectsColin Snover
Most of the time, we get a bitmap to draw on it. Exposing a buffer avoids consumers having to create their own all the time, and encourages use of common drawing code exposed by the buffer.
2016-06-21SCI32: Implement basic kMessageBoxColin Snover
This kernel call seems only to be used by KQ7 1.51 (which was Windows-only) to send warnings to the user. It was easy enough to do a basic implementation in the ScummVM GUI rather than just make it an empty call, so now it is a thing.
2016-06-21SCI32: Add workaround for kScrollWindowAdd call in PhantasmagoriaWillem Jan Palenstijn
2016-06-21SCI32: Implement kScrollWindowWillem Jan Palenstijn
These should be all the actually used subfunctions. Co-authored-by: Colin Snover <github.com@zetafleet.com>
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-20SCI32: Add kDoSound(play) workaround for LSL6hiresColin Snover
2016-06-20SCI: Minor cleanup of kDoSoundColin Snover
Replaces unused kernel calls to use kEmpty, and set correct signatures for SCI32 kernel calls.
2016-06-20SCI32: Rewrite digital audio engineColin Snover
This provides a complete implementation of kDoAudio through SCI2.1mid, plus partial implementation of SCI3 features. Digital audio calls shunted through kDoSound have also been updated to go through the SCI32 audio mixer, though these shunts are a bit hacky because the ScummVM implementation of kDoSound does not currently match how SSCI kDoSound is designed. It is probably possible in the future to just replace the SCI1.1 audio code (audio.cpp) with the new SCI32 code, since the major differences seem to be that (1) SCI1.1 only supported one digital audio playback channel (this is configurable already), (2) it had extra commands for CD audio playback and queued sample playback.
2016-06-19SCI: Split audio sync to its own classColin Snover
SCI32 has its own audio handling code, but audio sync code is the same as SCI16.
2016-06-14SCI32: Fix video performance benchmarking in most SCI32 gamesColin Snover
Most SCI32 games draw a "fred" object to the screen when the game first starts to benchmark video performance. When framerate throttling is enabled (which fixes many/most timing-related bugs and reduces system load caused by unnecessary graphics updates), the game's performance check will think that video card is slow, causing some "high-performance" game features to be disabled. To avoid this, we simply disable throttling during benchmarking by detecting the "fred" object.
2016-05-29SCI: Script patch for QfG3 giant tree boundsOmer Mor
At the base of the giant tree, when entering from the top east path, the hero can get out of bounds and walk freely in the room. This is caused by an incorrect cutoff used to determine whether the hero entered from the top or bottom path. The patch changes this cutoff, and prevents going out of bounds. Fixes bug #6693
2016-05-28SCI32: Remove invalid TODO about CLUT for 16-bit graphicsColin Snover
The CLUT for 16-bit graphics is not saved in SSCI (nor is it normally even part of the palette manager).
2016-05-28SCI: Remove warning in kDisposeScriptColin Snover
The two-argument implementation is correct and works properly.
2016-05-27SCI32: Add explicit checks for null pointersColin Snover
CID 1351617, 1351618, 1351619, 1351620, 1351621, 1351622, 1354791.
2016-05-25SCI32: Fix LSL6 hires control panel script bugColin Snover
The control panel initialisation script makes an invalid two-argument call to get the width of the settings dial; this only happens to work because the third argument on the stack was set to zero by an earlier call.
2016-05-22SCI: Script patch for fixing 3 missing points in QfG3Omer Mor
The hero is unable to tell Rakeesh and Kreesha about the Simabani initiation, which would award him 3 points. This is caused by a heap bug in room 285: the local array of possible messages omits this message. The patch fixes the bug by adding this message to the array. Fixes bug #7086
2016-04-14JANITORIAL: Reduce GUI header dependenciesOri Avtalion
2016-04-06SCI: Fix compilation for C++98.Johannes Schickel
2016-03-25SCI: Remove commented out code line.Johannes Schickel
2016-03-25SCI: Use aggregation to store objects in SegmentObjTable.Johannes Schickel
This allows to store pointers and fundamental types in a SegmentObjTable.
2016-03-25SCI: Introduce accessors for SegmentObjTable entries.Johannes Schickel
This makes code not use _table directly whenever possible. An exception is the save game code which is not easy to adapt due to design deficiencies.
2016-03-25SCI: Get rid of template hack for serialization.Johannes Schickel
The former template hack relied on specialized functions for various types. We use a hand crafted set of functions for serialization functionality now.
2016-03-20SCI32: Clean up outdated/wrong commentsColin Snover
2016-03-20SCI32: Return correct value from kSetFontHeightColin Snover
2016-03-20SCI32: Do not change accumulator in non-returning kernel callsColin Snover
This did not cause any known bugs, but is wrong according to the way the actual engine works.
2016-03-20SCI32: Use signed values for displacement positionColin Snover
2016-03-18SCI32: Add workaround for invalid temp read in TorinColin Snover
2016-03-18SCI32: More correctly fix kStringCopy overflowColin Snover
This entire kString code needs to be reviewed/refactored, but at least this fix is more complete than the last one. Thanks to @lordhoto and @wjp for their assistance.
2016-03-18SCI32: Fix heap overflow (read) in kStringCopyColin Snover
2016-03-16SCI: Add workaround for restoring kq6 saved games (lowres/hires)Martin Kiewitz
KQ6 CD sets a global depending on lowres/hires state right at the start and some scripts are using it instead of calling kPlatform. This causes some graphics to be incorrect (well lowres) in case the user saves in lowres mode, then switches to hires mode and restores the previously saved game. We now set that global directly after restoring saved games, so that this issue does not happen anymore. KQ6 CD demo did the same.
2016-03-15SCI32: Document kAddLineFilippos Karapetis
2016-03-15SCI32: Implement kBitmapSetDisplaceFilippos Karapetis
2016-03-14SCI32: Implement kBitmapDrawColorColin Snover
2016-03-13SCI32: Implement kCelInfoColin Snover
2016-03-13SCI32: Correct some kernel call signaturesColin Snover
2016-03-13SCI32: Implement kCelHigh and kCelWide SCI32 versionsColin Snover
The SCI16 versions do not implement the scaling algorithm used by SCI32 so would be off by one in some cases.
2016-03-11SCI32: Fix incorrect mouse event coordinates in SCI2 hiresColin Snover
2016-03-11SCI32: Initial implementation of kRemapColorsFilippos Karapetis
applyRemap() is still not finished, so nothing is actually visible yet
2016-03-10SCI32: Use correct name of kCantBeHere kernel functionColin Snover
Only updating SCI32 names here due to not knowing about the correctness of the SCI16 code.
2016-03-10SCI32: Use separate function for SCI32 version of kCantBeHereColin Snover
Requested by @m-kiewitz.
2016-03-10SCI32: Implement kMovePlaneItemsColin Snover
2016-03-10SCI32: Minor cleanup of kernel callsColin Snover
2016-03-10SCI32: Implement kSetNowSeenColin Snover
2016-03-10SCI32: Implement kCantBeHereColin Snover
2016-03-08SCI: Fix build with SCI32 disabled.Johannes Schickel
Regression from d4869218200a3dd165c2f1c156f3c1620c813241.
2016-03-08SCI: Split color remapping functionality into a separate classFilippos Karapetis
Currently, only the SCI16 remapping functionality is implemented (used in the QFG4 demo)
2016-03-08SCI: Update the game ID of a workaround that's only used in QFG4 demoFilippos Karapetis