aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-09-29SCI32: Clean up unused kBitmap code/subopsColin Snover
2017-09-29SCI32: Fix bad text rendering in RAMAColin Snover
In SCI3, Sierra removed the ability of the main renderer to automatically scale CelObjs with different source resolutions. Instead, in SCI3, all CelObjs are treated as having the same resolution as the screen (i.e. 640x480). In all SCI3 games other than RAMA, keeping the code paths for resolution-dependent scaling is not a problem because all the assets and game code are correctly designed to use the same 640x480 resolution throughout. RAMA, on the other hand, was written with the text subsystem set to a resolution of 630x450 (Phant1's screen resolution), and in SSCI, resolution-dependent scaling code was not removed from the *text* subsystem. As a result, RAMA's game scripts rely on the slightly larger scaled dimensions coming out of the text system when determining the size of screen items for rendering, and then also rely on the main renderer ignoring the 630x450 resolution baked into the bitmaps generated by the text subsystem when drawing them to the screen.
2017-09-29DEVTOOLS: Add German bot quote lists to create_titanicPaul Gilbert
2017-09-29GUI: Fix memory leak with empty debugger inputWillem Jan Palenstijn
2017-09-29GUI: Fix crash after empty debugger commandWillem Jan Palenstijn
2017-09-29DEVTOOLS: Added German bot word lists to create_titanicPaul Gilbert
2017-09-28SCI: Add script patch for QfG2 Jackalmen Oops - bug #10218Martin Kiewitz
Was a game bug, finally fixed. This was a combined effort of wjp and myself. Thanks to wjp. We both don't own QfG2 1.000 atm, so we could not try it for that version.
2017-09-28I18N: Update translations templatesThierry Crozat
2017-09-28SCI32: Disable change directory button in original save/load in RAMAColin Snover
2017-09-28SCI32: Allow save games to be deleted from original save/restore in RAMAColin Snover
2017-09-28SCI32: Block RAMA from creating PREF.DAT fileColin Snover
This file normally stores brightness, music volume, and most recently used save game directory. Since we store the music volume ourselves and don't use the save game directory, the only potentially useful information is the brightness level, and that is fine to just restore from the save games.
2017-09-28SCI: Remove resolved TODOColin Snover
2017-09-28SCI32: Add audio volume sync support for RAMAColin Snover
2017-09-27SCI: Add SQ3 1.0P 720K to detection tableColin Snover
Fixes Trac#10245.
2017-09-27DEVTOOLS: Added German tag mappings to create_titanicPaul Gilbert
2017-09-27SCI: Remove old SCI32 view scaling code from SCI16 graphics codeColin Snover
2017-09-27SCI: Add support for keyup eventsColin Snover
Basic keyup event support appears to have been added in the SCI1.1 IBM keyboard driver, and more robust support was provided in SCI32 which actually gets used by at least Lighthouse. This patch adds support for keyup events in SCI1.1+. Fixes Trac#10242.
2017-09-27SCI: Fix use-after-free when kernel call debugging is active during a save ↵Colin Snover
game restore
2017-09-27SCI: Do some clean-up of event handling systemColin Snover
Convert macros and vars to enums, rename keyboard events in preparation for adding key up events, clean up unnecessary nested conditionals, add TODOs for potential future work.
2017-09-27SCI: Add uninitialized read workaround for shoplifting in SQ4CDDavid Fioramonti
When in Galaxy Galleria, going into the software store and trying to shoplift the SQ4 Hintbook will crash the game after you leave and are electrocuted. Fixes Trac#10229. Closes gh-1031.
2017-09-27SCI32: Implement SCI3-variant volume handlingColin Snover
Trying to find differences in Lighthouse's audio sample playback, I discovered that SCI3 had its own variant of handling volumes and sending this volume information back to game scripts. It is not known if this fixes any sound bug.
2017-09-27TITANIC: DE: Changes for DoorbotScript::chooseResponsePaul Gilbert
2017-09-27TITANIC: Fix leak of wave file audio streamsPaul Gilbert
2017-09-27SCI32: Fix backwards palette checkColin Snover
2017-09-27TITANIC: Fix memory leak in CStarViewPaul Gilbert
2017-09-26DEVTOOLS: Added German bot response lists to create_titanicPaul Gilbert
2017-09-26TITANIC: DE: Fix switch in DeskbotScript::doSentenceEntryPaul Gilbert
2017-09-26TITANIC: Convert some remaining strings to use their titanic.dat entriesPaul Gilbert
2017-09-26TITANIC: Fix exit crash freeing wave files whilst still playingPaul Gilbert
2017-09-26TITANIC: Add missing CSound destructorPaul Gilbert
2017-09-25TITANIC: Fix loop limit in TTsentenceConcept destructorPaul Gilbert
2017-09-25TITANIC: Add missing destructor for TTsentenceConceptPaul Gilbert
2017-09-25TITANIC: Free wave files on game exit like original doesPaul Gilbert
2017-09-24SCI32: Dummy kPlayVMDSetFrameRateColin Snover
This subop is used only by RAMA. The VMD objects in RAMA's game code contain a frame rate field, which is usually -1, but occasionally is not. In the cases where it is not -1, it appears to be either set for a video with sound (so the value doesn't do anything to that video), or it is just resetting back to the baked-in frame rate of the video file (so it doesn't need to exist, except to fix videos broken by earlier played videos with explicit frame rates). Since this is a global state flag that does not get reset in SSCI, the ultimate effect of kPlayVMDSetFrameRate in RAMA is that it does nothing to any of the videos where the explicit frame rate is set, but it does inadvertently cause *other* videos with no sound and no explicit frame rate to have a different frame rate depending upon what was played earlier in the game (and whether or not the engine was restarted in the meantime). This bad transferring of frame rates is most noticeable with the exit-video of the vidmail player, which is played when you back out after selecting a vidmail. Its nominal framerate is 10fps, but it will play at whatever frame rate was last set by some other video that happened to have an explicit frame rate, even if that frame rate was bogus. So, just ignore all calls to this subop, as it is fatally buggy.
2017-09-25I18N: Update translations templatesThierry Crozat
2017-09-24SCI32: Remove unnecessary negative assertion check on unsigned integerColin Snover
Fixes CID 1381416.
2017-09-24SCI32: Disable all SCI32 Mac codeColin Snover
This code is currently untestable and is almost certainly at least partly based on guesswork & not actual reverse-engineering (as was the case for all other pre-2015 SCI32 code), so future developers interested in adding SCI32 Mac support should use it only as an intermediate reference rather than as known good code.
2017-09-24SCI32: Fix bad cursor outlines in RAMAColin Snover
2017-09-24SCI: Remove Mac SCI32 code from SCI16 codeColin Snover
2017-09-24SCI32: Correct RAMA detection table entriesColin Snover
There seems to be no difference between DOS and Windows versions of the game from what I could see in the game code (it checks platform but only seems to just set a global which is never used), and from what I could tell online they are all DOS/Windows hybrids, so just simplify life and make them all DOS platform versions.
2017-09-24SCI32: Add workarounds for uninitialized reads in RAMAColin Snover
2017-09-24SCI32: Allow invalid references to be passed to kFileIOColin Snover
Near the end of the game, RAMA will start trying to store some invalid references. This does not affect the save game negatively in any way, but it was causing the kernel to assert a signature failure.
2017-09-24SCI32: Support palette-inverting SCI3 variant of kPalVaryColin Snover
This is used by RAMA in room 6201, after eating the alien fruit.
2017-09-24SCI32: Fix RAMA auto-save gameColin Snover
Despite what game script disassembly lead me to believe, the game seems to create only one auto-save, which ends up being saved as 911.sg (not autorama.sg). This save file is created just before entering the underground Avian Lair in New York, and seems to be designed as some emergency backup since entering the Avian Lair is a one-way trip.
2017-09-24SCI32: Implement per-channel audio panningColin Snover
Used by RAMA, in various places, starting with the refrigerator at base camp after the cable car at the beginning of the game.
2017-09-25SCI: SQ4: Now using additional and enhanced Win3.11 samplesMartin Kiewitz
Which were originally only played, when using the Windows interpreter. Afaik the DOS interpreter was incapable of playing more than 1 sample at a time, which was probably the reason why Sierra only added these for the Windows interpreter. For example a sample is now played, when points are awarded. Those samples are currently used all the time and will also enhance the game, when platform DOS is chosen. In case someone wishes to opt-out of this, we could add a game specific option. We do something like this for Space Quest 3 already, that's why I don't see a reason to add a game option right now.
2017-09-24SCI32: Fix bad palettes in Lighthouse when HQ video is enabledColin Snover
In a couple of places, Lighthouse updates the renderer with screen items for the next room before the room transition video plays. This is normally fine when using the compositing video renderer because the videos are drawn into new planes which occlude the screen items, so the screen items are culled from the draw list and do not submit their palettes. However, when in HQ video mode, we currently force the overlay renderer, which was not blocking screen items before forcing a frameOut, so the screen items' palettes got submitted prematurely in this case and caused bad rendering after the video finished playback. Now, if we are forcing into the overlay code path, we still create a blank plane behind the overlay before the forced frameOut in order to correctly occlude screen items and keep them from participating in rendering before they normally would. Fixes Trac#10233, Trac#10235.
2017-09-24IMAGE: Remove unnecessary heap allocation in BitmapRawDecoderColin Snover
2017-09-24TITANIC: DE: Properly implement CArboretumGate changesPaul Gilbert
2017-09-24TITANIC: Don't launch further bot speeches when exiting gamePaul Gilbert
Previously, notifying bots to the end of a speech fragment was done in ~TTtalker. Which caused problems when in progress talkers were freed when exiting the game with a speech was in progress, since it would try to start the next following speech fragment.