aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2016-06-25Revert "SCI32: Properly initialize AudioChannel inside Audio32::play()"Filippos Karapetis
This reverts commit 5eaea05a2b6af0ddcf28fca1f0cd3fc0c54f4d07.
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-23SCI32: Properly initialize AudioChannel inside Audio32::play()Filippos Karapetis
Fixes audio issues caused by uninitialized variables
2016-06-23SCI32: Fix usage of the C++11 override keyword with MSVCFilippos Karapetis
MSVC does not allow the usage of the "override" keyword on function definition, only on declaration
2016-06-23SCI32: Fix potentially uninitialized variableFilippos Karapetis
2016-06-23SCI32: Const correction in Audio32's readBuffer() implementationFilippos Karapetis
2016-06-22SCI: Assert on seeks past the end of audio resource bundlesColin Snover
This should never be allowed to happen, but currently does on multi-CD games with different resource bundles on difference CDs (Phant1, PQ:SWAT, GK2) because the resource manager does not yet have the ability to handle this situation.
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: Remove unused dependencies from GfxFrameoutColin Snover
2016-06-21SCI: Add an explanation about LRU removals when fetching resourcesColin Snover
Several times I have run into this code and had to take a minute to remind myself that the call to remove from the LRU on find is not wrong, so it seemed to deserve a comment.
2016-06-21SCI32: Fixes to GfxText32Colin Snover
1. Inline borderSize constant in createFontBitmap for consistency 2. Fix "DrawTextBox GetLongest=0" warning to only appear in games that actually had this check (SQ6 and MGDX) 3. "Fix" implementation of getTextSize for SCI2.1early, which gave lines with word wrap disabled a height of 0 4. Add inlining hints to some methods in BitmapResource that were missing them for some reason
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-21SCI32: Make GfxText32::_scaledWidth/Height staticsWillem Jan Palenstijn
They were global in SSCI. This way secondary GfxText32 instances (such as in ScrollWindow) use the correct scaling.
2016-06-21SCI32: Fix drawText on consecutive control codesWillem Jan Palenstijn
2016-06-21SCI32: Fix getTextWidth on consecutive control codesWillem Jan Palenstijn
2016-06-21SCI32: Add low-pass filter to 8-bit SOL audioColin Snover
This improves the perceived quality of audio in games that use 8-bit samples for music, like Torin.
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-14SCI: Fix memory leaks in resource patcherColin Snover
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-06-13SCI32: All versions of KQ7 are using the older remap range semanticsFilippos Karapetis
2016-06-13SCI32: Remove the unused newColors arrayFilippos Karapetis
2016-06-12SCI: Fix uninitialized read in SoundCommandParserColin Snover
2016-06-07SCI: Plug memory leakEugene Sandulenko
2016-05-30SCI32: Really guard against null pointer dereference in calcListsColin Snover
CID 1356125.
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-28SCI32: Provide default value for vmap minDiffIndexColin Snover
SSCI did not initialise minDiffIndex and would always flow into the condition that sets it, but some compilers complain that the value may be used uninitialised, so we will just set it to map back to its original palette index by default.
2016-05-28SCI32: Simplify default text width equationColin Snover
2016-05-28SCI: Explicit type conversion. Avoids warnings on number of compilers.Eugene Sandulenko
2016-05-28SCI: Fix warningEugene Sandulenko
2016-05-28SCI32: Remove unused titled text bitmap codeColin Snover
Titled text bitmaps do not appear to be used by any game scripts. They seem to only be used by the error manager in SSCI, but ScummVM has its own error handling, so we don’t need this implementation.
2016-05-27SCI32: Add explicit checks for null pointersColin Snover
CID 1351617, 1351618, 1351619, 1351620, 1351621, 1351622, 1354791.
2016-05-27SCI32: Initialise pointers in CelObj scalerColin Snover
This ensures that if there is a bug in the drawing code that causes the row to be unset, it will not result in silently reading garbage out of random memory. CID 1354802
2016-05-27SCI32: Fix CelObj cacheColin Snover
The previous implementation did not work properly, assigning the next insertion index to the oldest object instead of filling empty cache slots on a cache miss.
2016-05-27SCI32: Use better name for fixed priority fieldColin Snover
The old name matches the selector, but isn’t as clear.
2016-05-26SCI32: Remove unused Plane fieldsColin Snover
These fields were written and never read in SSCI.
2016-05-25SCI32: Fix assertion failures in LSL6 hires caused by bad rectsColin Snover
LSL6 hires sends rectangles to kernel calls that have negative dimensions. SSCI did not care about this and would simply accept these invalid rects, so we do the same, at least for now.
2016-05-25SCI32: Update header parameters with const, to match implementationColin Snover
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-25SCI: Allow debugging output of all VM variables in one shotColin Snover
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