aboutsummaryrefslogtreecommitdiff
path: root/engines
AgeCommit message (Collapse)Author
2017-04-30SCI: Clean up ugly syncBaseObject callColin Snover
2017-04-30SCI: Hold script data as mutable internallyColin Snover
Script buffer data is modified after a script is loaded by savegame operations, and, in SCI16, by string operations. Casting away const to allow these mutations to happen is not a very good design, so this patch just changes the privately held reference to data to be mutable. (Public accessors still return immutable data.)
2017-04-30SCI32: add detection for GK2 GermanMartin Kiewitz
2017-04-30DIRECTOR: clean up renderText: separate reading & actual renderingTobia Tesan
2017-04-30DIRECTOR: remove redundant/ineffective assignments to widthTobia Tesan
2017-04-30DIRECTOR: clean up renderText: move warning block downTobia Tesan
This changes slightly the semantics of the method; however, I assume we want to print (or not) the warning based on the width/height values that will in fact be used *in* the method.
2017-04-30DIRECTOR: consolidate font, width instructions in renderTextTobia Tesan
2017-04-30GRAPHICS: Delete MacFont in MacTextTobia Tesan
2017-04-30GRAPHICS: Use MacFont in lieu of Graphics::Font in MacTextTobia Tesan
2017-04-30TESTBED: Fix building with --disable-cloud (#938)Tarek Soliman
The linker fails when building with --disable-cloud and not passing --disable-libcurl
2017-04-29SCI32: Remove unnecessary GfxFrameout::_frameNowVisibleColin Snover
This flag was used in SSCI to read from VRAM instead of from the back buffer when a mouse interrupt was received in the middle of a back buffer update. Since ScummVM controls when mouse events are received via polling, it is not possible to receive a mouse event in the middle of back buffer updates, so this code is unnecessary for the engine to work properly. This also fixes Valgrind warnings about use of uninitialized memory at the start of the game, caused by not filling the cursor memory buffers because `_frameNowVisible` was false until the first frame was rendered.
2017-04-29SCI32: Promote GK2 and Torin demos to AGDF_TESTINGColin Snover
2017-04-24SCI: Add var count sanity checking to object initializationColin Snover
2017-04-24SCI: Use the var count from the instance's class in SCI1.1-2.1 when looking ↵Colin Snover
up selectors At least some versions of Island of Dr Brain have a bMessager instance in script 0 with a var count greater than that of its class. This probably should never happen since it means the object has a variable with no corresponding selector. The next commit adds some extra sanity checking code to object initialization, to warn on any other games where this happens.
2017-04-25DIRECTOR: Fix Various Compiler Warnings.D G Turner
2017-04-23SCI32: Remove SCI3 TODOColin Snover
SCI3 resources appear to already be properly handled.
2017-04-23SCI32: Allow resource maps with missing corresponding volumesColin Snover
GK2 on Steam comes with an extra bogus resource map file which would previously cause ScummVM to refuse to load the game due to a mismatch in the number of map & volume files. This does not cause any harm, but is a pain for users (since it requires them to manually delete the file, and it will be recreated if a user runs the Steam game file integrity check), so allow the game to load with a warning instead.
2017-04-23SCI: Improve error messages in Script::validateExportFuncColin Snover
2017-04-23SCI32: Exclude SCI3 code from compilation when SCI32 is disabledColin Snover
2017-04-23SCI32: Fix missing mustSetViewVisible data in cloned objectsColin Snover
This information comes directly from script data and is not modified at runtime, so it does not need to be persisted in save games, but does need to be set when reconstructing clones.
2017-04-23SCI32: Improve disassembly output of SCI3 property opcodesColin Snover
Since SCI3 scripts use selectors instead of offsets as operands to property-related opcodes, the disassembler can look up and display property names everywhere (unlike SCI2.1 and earlier, which need to know the object being operated on to look up the correct selector for a given offset).
2017-04-23SCI32: Fix mustSetViewVisible for SCI3Colin Snover
In SCI2/2.1, variable indexes are used along with a range encoded in the interpreter executable to determine whether an object variable is a view-related variable. Operands to aTop, sTop, ipToa, dpToa, ipTos, and dpTos are byte offsets into an object, which are divided by two to get the varindex to check against the interpreter range. In SCI3, objects in game scripts contain groups of 32 selectors, and each group has a flag that says whether or not the selectors in that group are view-related. Operands to aTop, sTop, ipToa, dpToa, ipTos, and dpTos are selectors.
2017-04-23SCI32: Replace magic numbers in SCI3 selector initColin Snover
2017-04-23SCI32: Add debugger command to list digital audio samplesColin Snover
2017-04-23SCI32: Fix race conditions in Audio32Colin Snover
2017-04-23SCI32: Remove unused code branchColin Snover
2017-04-23SCI32: Serialize Robots in SCI3Colin Snover
This is necessary for at least Lighthouse, which maintains the state of Robots across save games.
2017-04-23SCI: Fix SCI3 exportsColin Snover
Export functions may be relocated above 64k in SCI3, but exports that do not have an entry in the relocation table must be handled the same as SCI1.1-2.1.
2017-04-23SCI: Deduplicate Object::locateVarSelector codeColin Snover
The variable count returned by Object::getVarCount is populated by variable 1 in SCI1.1, so specially reading the variable explicitly for that engine version is not necessary.
2017-04-23SCI: Fix support for 32-bit SCI3 script offsetsColin Snover
2017-04-23SCI: Replace mostly-unused flags property with a single booleanColin Snover
There does not appear to be any reason to use a bit field instead of a simple boolean for this one flag, since there are no other flags that need to be set on Object like this.
2017-04-23SCI: Improve documentation of Object classColin Snover
2017-04-23SCI: Fix whitespace errorsColin Snover
2017-04-23SCI: Remove dead code in Script_Offset disassemblerColin Snover
Script_Offset is only ever used for lofsa/lofss opcodes.
2017-04-23SCI: Fix bad offsets in disassembly for SCI3 lofsa/lofssColin Snover
2017-04-23SCI32: Fix bad relocations of SCI3 objectsColin Snover
2017-04-23SCI: Convert Object to use Common::Array for SCI3Colin Snover
In SCI3, index-to-selector tables no longer exist in compiled object data (instead, the SCI3 VM uses selectors directly and object data contains a bit map of valid selectors). In ScummVM, the table is generated by Object::initSelectorsSci3 for compatibility with the design of the ScummVM SCI VM. For consistency, _baseVars is converted to use a standard container, which works for all SCI versions. The table for SCI3 property offsets is also changed to use a standard container instead of manually managing the memory with malloc/free.
2017-04-23SCI32: Hook up mustSetViewVisible for SCI3Colin Snover
2017-04-23SCI32: Improve debugging output of object metadata in SCI3Colin Snover
2017-04-23SCI32: Fix locals offset in SCI3Colin Snover
Locals offset needs to be set even when the script has no exports.
2017-04-23SCI32: Implement SCI3 Script::syncStringHeapColin Snover
2017-04-23SCI: Always search for .CSC script patchesColin Snover
Skipping a search for .CSC scripts when any .SCR files exist does not work with at least Phant2, because it comes with an INSTALL.SCR file. Searching unconditionally for .CSC files should not cause any issues since the game scripts will either be in .SCR format or in .CSC format, not both in the same game.
2017-04-23SCI32: Remove spinloops from Phant2Colin Snover
2017-04-23SCI32: Add workarounds for LSL7Colin Snover
2017-04-23SCI32: Fix missing main menu in LSL7Colin Snover
2017-04-23SCI32: Fix crash when writing word to VIRTUALFILE_HANDLE_SCI32SAVEColin Snover
This happens in Phant2 when trying to delete a save game from the in-game save dialogue.
2017-04-23SCI32: Fix audio playback with monitored channel in SCI3Colin Snover
SCI3 changes the way that monitored channel works. In SCI2/2.1, when a channel is monitored, it is the only audible channel. In SCI3, monitored channels mix normally. This is very noticeable in LSL7, where music disappears totally during speech if the monitored channel is the only channel played back.
2017-04-23SCI32: Fix crash in Phant2 when clicking Help in the control panelColin Snover
2017-04-23SCI32: Fix slow fade of Phant2 interface barsColin Snover
2017-04-23SCI32: Remove TODO from relocateOffsetSci3Colin Snover
The field at +8 is for the MemID associated with a relocation.