aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-16SCI: Fix kMenuSelect to understand control charactersColin Snover
In b4c0be8b42d63cbf3c808be1a94839483f674ce9 keyboard events were adjusted to send control characters to game scripts, which matches how keyboard input works in SSCI. Unfortunately this broke games using kMenuSelect because that kernel code was not expecting to receive control characters. Here is an amended list of known types of keyboard shortcuts, for future reference: * All games with text inputs (Ctrl+C clears text boxes) * Most games using MenuBar, like QFG1EGA (Ctrl+P pauses the game, Tab or Ctrl+I show inventory) * QFG1VGA (Ctrl+S shows stats) * Torin (Ctrl+N, Ctrl+O, Ctrl+S, etc. activate menu commands) * LSL1VGA & LSL3 (Ctrl+Alt+X to bypass age check) * Most in-game debuggers (Alt+T for teleport) The shortcut handling code is still not 100% accurate since there are some edge cases that are not implemented (e.g. in DOS/SSCI, Shift+Ctrl+<key> usually sends the same key information as Ctrl+<key>, but not if <key> is Tab), but it should now be working in a consistent and rational manner for end-users.
2017-07-16TITANIC: Cleanup of CAutoAnimate classPaul Gilbert
2017-07-16TITANIC: Fix MaitreD to hate the default musicPaul Gilbert
2017-07-16TINSEL: Fix some DW2 text/voice not playing all the way throughPaul Gilbert
2017-07-16SLUDGE: Add sprite display colorSimei Yin
2017-07-16SLUDGE: Complete pasteCharacter to backdropSimei Yin
2017-07-16SLUDGE: Complete burnSpriteToBackdropSimei Yin
2017-07-16SLUDGE: Load game icon/logoSimei Yin
2017-07-16SLUDGE: Correct fallback detection with custom descriptionSimei Yin
2017-07-16SCI: Fix control character keyboard eventsColin Snover
Used by: * All games with text inputs (Ctrl+C clears text boxes) * QFG1VGA (Ctrl+S shows stats) * Torin (Ctrl+N, Ctrl+O, Ctrl+S, etc. activate menu commands) The branch that used to shift control keys for SCI versions <= SCI_VERSION_1_MIDDLE was bogus; history indicates it was intended to be used to fix backends that sent control characters when Ctrl+Alt were used together, but that case is already handled by the Alt-checking code just prior to that code. Games expect to receive control characters only when Ctrl is the only active modifier, and this seems to be consistent across all versions of SCI engine from SCI0 all the way through at least SCI2.1. Fixes Trac#6703, Trac#9837.
2017-07-15SCI32: Add patch for mismatched PointSoft Torin heap 20700Colin Snover
Refs Trac#9776, Trac#9864. Fixes Trac#9797.
2017-07-15TITANIC: Fix inventory scrolling when an item is selectedPaul Gilbert
2017-07-16I18N: Update translations templatesThierry Crozat
2017-07-15SCI: Stop double-initialization of SCI0/1 objectsColin Snover
These objects should have been initialized only during the first pass. Double-initialization does not cause any visible problem problem during normal operation (mostly it just causes memory waste by making Object::_baseVars/_baseMethod double up their data), but could have silently allowed games to receive bogus data for an out-of-bounds property or method index, instead of raising an error.
2017-07-15SCI: Fix up Object::_baseMethod implementationColin Snover
1. In SCI0/1, selectors and offsets in the method block are stored contiguously (all selectors, then all offsets), with a null separator between the two runs. All the later versions of SCI instead interleave selectors & offsets. Since these values are already being copied into a new array anyway, code for reading method selectors/offsets is now simplified by interleaving this data when it is written into _baseMethod for SCI0/1, so the same equation for retrieving method selectors/offsets can be used across all SCI versions. 2. In SCI1.1-2.1 branch, the method count was being copied into the first entry of the array, which meant that SCI1.1-2.1 had extra code for dealing with the fact that the first entry was not an entry. This has been fixed, and the extra code removed. 3. Data was being overread into _baseMethod in all games SCI0-2.1. (SCI0/1 had an extra magic value of 2, and SCI1.1-2.1 had an extra magic value of 3). Reviewing history, it's not clear why this happened, other than that it appears to have been introduced at 7b0760f1bc5c28abcede041a6e3930f84ff3d319. My best guess is that this was a confusion between byte count and record count, where the intent was to read an extra 2 bytes for the null separator in SCI0/1, but it actually read 2 records instead. (I do not have a guess on why SCI1.1 ended up with a 3.) This overreading has been removed.
2017-07-15TITANIC: Fix range for timed volume transitionsPaul Gilbert
2017-07-15TITANIC: Endgame sequence sound fixesPaul Gilbert
2017-07-15TITANIC: Don't allow the same star to be locked on multiple timesPaul Gilbert
2017-07-15TITANIC: Fix locking stars in star control puzzle when Caps lock is onPaul Gilbert
2017-07-15TITANIC: Don't allow starfield to be shown if puzzle was skippedPaul Gilbert
2017-07-15CHEWY: More work on scene info handlingFilippos Karapetis
2017-07-15TITANIC: Fix incorrect calls to queueSoundBastien Bouclet
The sound type was being passed in the balance parameter.
2017-07-15SLUDGE: Move PixelFormat init to constructorSimei Yin
2017-07-15SLUDGE: Remove unused function displayFatalSimei Yin
2017-07-15SLUDGE: Clean unused extern variablesSimei Yin
2017-07-15SLUDGE: Clean useless #if 0'sSimei Yin
2017-07-15SLUDGE: Remove unused memwatchSimei Yin
2017-07-15SLUDGE: Remove gl-related graphics.hSimei Yin
2017-07-15SLUDGE: Remove openGl-related function fixFontSimei Yin
2017-07-15SLUDGE: Add a color into stack machineSimei Yin
2017-07-15SLUDGE: Add credit scrollingSimei Yin
2017-07-15SLUDGE: Complete parallaxSimei Yin
2017-07-15SLUDGE: Complete snapshotSimei Yin
2017-07-15TITANIC: Fix pause during intro credits cutscenePaul Gilbert
2017-07-15SLUDGE: Use String::format instead of sprintfSimei Yin
2017-07-15MOHAWK: Riven: Set more variables when starting new gamesBastien Bouclet
Fixes #9960.
2017-07-15MOHAWK: Riven: Stop sending empty rects when drawing transitionsBastien Bouclet
Fixes #9947.
2017-07-14MOHAWK: Riven: Implement transition offsetsBastien Bouclet
The games tries to match objects between the old and new card by offsetting the transition of the new card. Fixes #9947.
2017-07-14SLUDGE: Fix Unsigned vs. Signed Comparison Compiler Warnings.D G Turner
2017-07-14I18N: Update translations templatesThierry Crozat
2017-07-14MOHAWK: Riven: Patch prison island dome switch sound changeBastien Bouclet
Fixes #9958.
2017-07-13SCI32: Add detection entry for Phantasmagoria FR 1.100.000Colin Snover
Fixes Trac#9910.
2017-07-13SLUDGE: Fix Visual Studio compilationPaul Gilbert
2017-07-13SCI32: Patch out bad rat view init code in PhantasmagoriaColin Snover
Fixes Trac#9957.
2017-07-13SCI32: Ignore chest view palette in PhantasmagoriaColin Snover
This fixes the 3-frame glitch that was also present in the original game when moving in the chapel from room 6500 to 6400 in chapter 7. Fixes Trac#9788.
2017-07-13SCI32: Move priority comparison of ScreenItems into its own functionColin Snover
Rendering bugs in ScummVM are often caused by buggy game scripts relying on the last ditch sort, which is not the same in ScummVM as in SSCI (since the SSCI last ditch sort relies on a different memory architecture and is super buggy). However, these bugs do not show up very frequently these days, so it is easy to forget all the places that need to be checked when debugging a rendering problem that appears to be caused by sorting failure. This commit breaks out the last ditch comparison formerly in Plane::calcLists to hopefully make it more visible to future programmers. Refs Trac#9957.
2017-07-13SCI32: Stop optimising palette mergesColin Snover
While this optimisation helped to reduce unnecessary palette updates in KQ7, it broke Phant1, which relies on changes to index 255 in the source palette causing palette invalidation. Refs Trac#9788.
2017-07-13SCI32: Add workaround for Phant1Colin Snover
2017-07-13SLUDGE: get random numberSimei Yin
2017-07-13SLUDGE: fix warningsSimei Yin