aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/selector.cpp
AgeCommit message (Collapse)Author
2017-10-09SCI: Add QfG4 script patch to fix sliding down slope bug #9801Martin Kiewitz
It's quite difficult to patch. I hope this finally solved it.
2017-09-28SCI32: Add audio volume sync support for RAMAColin Snover
2017-09-23SCI32: Add guest additions save/restore support for RAMAColin Snover
2017-09-23SCI32: Support RAMA's custom save games through kFileIOColin Snover
2017-09-14SCI32: Fix Phant2 "auto-save"Colin Snover
The game has a feature where it will automatically create a save game when you quit the game through the in-game control panel (or when you die, for some reason). Unfortunately, due to bad programming, this automatic save would just overwrite whatever was in save slot 1 (slot 0 in the original interpreter). Find this attempt to auto-save the game and redirect it to the auto-save slot. This might not be totally correct, but it is at least better than destroying a save game. Fixes Trac#10201.
2017-07-30SCI32: Add load from launcher support for Phant2Colin Snover
Adding a hook into kPlayDuck to skip the intro video feels kind of crappy, but it seemed simpler, consistent with the other hooks for launch loading, and therefore preferable versus hot-patching the script or messing with PC in the VM or something.
2017-07-30SCI32: Implement Phant2 save/load integrationColin Snover
2017-07-30SCI32: Implement guest additions volume sync for Phant2Colin Snover
2017-07-24SCI32: Add music volume UI sync for MGDXColin Snover
2017-07-17SCI32: Add guest additions support for LSL7Colin Snover
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: Hook up mustSetViewVisible for SCI3Colin Snover
2017-04-22SCI: Implement delayed restore for SCI32 and move implementations to ↵Colin Snover
GuestAdditions
2017-04-21SCI: Improve audio volume & settings sync codeColin Snover
This patch includes enhancements to the ScummVM integration with SCI engine, with particular focus on SCI32 support. 1. Fixes audio volumes syncing erroneously to ScummVM in games that modify the audio volume without user action (e.g. SCI1.1 talkies that reduce music volume during speech playback). Now, volumes will only be synchronised when the user interacts with the game's audio settings. This mechanism works by looking for a known volume control object in the stack, and only syncing when the control object is present. (Ports and planes were researched and found unreliable.) 2. Fixes audio syncing in SCI32 games that do not set game volumes through kDoSoundMasterVolume/kDoAudioVolume, like GK1, GK2, Phant1, and Torin. 3. Fixes speech/subtitles syncing in SCI32 games that do not use global 90, like LSL6hires. 4. Fixes in-game volume controls in SCI32 games reflecting outdated audio volumes when a change is made during the game from the ScummVM launcher. 5. Fixes SCI32 games that would restore volumes from save games or reset volumes on startup, which caused game volumes to be out-of-sync with ScummVM when started. 6. ScummVM integration code for audio sync has been abstracted into a new GuestAdditions class. This keeps the ScummVM- specific code all in one place, with only small hooks into the engine code. ScummVM integrated save/load code should probably also go here in the future. Fixes Trac#9700.
2016-12-19SCI32: Add support for alternate graphics selectorsColin Snover
Used by at least Phantasmagoria 2.
2016-10-20SCI32: Fix wrong value passed to updateInfoFlagViewVisibleColin Snover
updateInfoFlagViewVisible accepts a property index, not a selector ID. Fixes Trac#9583.
2016-09-29SCI: Deduplicate call origin formattingColin Snover
2016-09-29SCI: Improve debugging output for selector failuresColin Snover
2016-03-06SCI32: Implement kEditTextColin Snover
2016-03-01SCI32: Fix index/offset mixup in updateInfoFlagViewVisibleWillem Jan Palenstijn
2016-02-27SCI32: Update InfoFlagViewVisible in VM opcodesWillem Jan Palenstijn
2016-02-21SCI32: Implement syncing planes+screen items from VM for restoreMartin Kiewitz
Fixes restoring saved games, when ScummVM dialogs are patched in Removing clearing planes+screen items as well, because the scripts actually did that, but did not clear everything. Fixes "Invalid screen item" message when entering options menu, after restoring in SQ6.
2016-02-18SCI: WIP GfxText32 codeColin Snover
This at least prevents SQ6 from crashing when going into the introduction
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2012-05-14SCI: Check for object visibility, if an object defines itFilippos Karapetis
Fixes the inventory in GK1
2011-10-28SCI: Fixed text background color and text transparency for SCI32 gamesFilippos Karapetis
2011-10-11SCI: Proper implementation of text drawing for SCI2+Filippos Karapetis
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-03-09SCI: Implement Mac iconbar event handling.Walter van Niftrik
2010-11-02SCI: Remove any use of printfMax Horn
svn-id: r54037
2010-09-03SCI: kClone/kDisposeClone behaviour more accurateMartin Kiewitz
now also checking -info- selector, if object is supposed to get freed. Fixes kq4 early hanging (in intro, when opening door, etc.) svn-id: r52508
2010-08-29SCI: adding virtual lists for qfg-import roomsMartin Kiewitz
now lists import files of all possible games, adds game title before that, removes game prefixes for all files svn-id: r52441
2010-08-24SCI: Removed a now unused selector from the selector cacheFilippos Karapetis
svn-id: r52349
2010-08-05SCI: changing hoyle 4 workaroundMartin Kiewitz
fixing hoyle 4 detection entry (not a demo) adding direct selector fix, maybe we should replace this later with a script patch adding detailed comment about the issue svn-id: r51753
2010-07-24SCI: support useInsetRect in kFrameoutMartin Kiewitz
svn-id: r51251
2010-07-22SCI: some work on priority in sci32Martin Kiewitz
svn-id: r51134
2010-07-20SCI: Removed the restoring parameter of the run_vm() functionFilippos Karapetis
svn-id: r51076
2010-07-16SCI: kDoBresen - save last position of client inside mover - fixes lsl6 tram ↵Martin Kiewitz
still shaking while gotten stopped due ego svn-id: r50931
2010-06-28SCI: More changes to the code for loading from the launcherFilippos Karapetis
- Added support for the LSL2 menu bar object - We no longer need a reference to the init() selector - it's always the first method of the menu bar object svn-id: r50462
2010-06-27SCI: Removed the hack for loading games from the launcher from run_vm(). ↵Filippos Karapetis
This is now done on startup. This should fix loading from the launcher for LSL6 svn-id: r50406
2010-06-23Moved the SelectorCache struct inside selector.h, where it belongs, and ↵Filippos Karapetis
fixed some header dependencies in the process svn-id: r50183
2010-06-23SCI: adding some more global scaling code, adding vanishingY and vanishingX ↵Martin Kiewitz
as selectors svn-id: r50180
2010-06-23SCI: some initial work on global scalingMartin Kiewitz
svn-id: r50179
2010-06-17Strict mode: Changed several warnings due to logic bugs into errors. If an ↵Filippos Karapetis
error pops up from these ones, please add the game where it occurred and the steps to reproduce the error before turning it into a warning svn-id: r49973
2010-06-10SCI: cleanupMax Horn
svn-id: r49573
2010-06-10Unified invokeSelector() and invokeSelectorArgv(), and removed the INV_SEL ↵Filippos Karapetis
kludge. Also, removed the selectorInvocation parameter - if invokeSelector() fails, the error is in most cases unrecoverable, and the error description thrown covers all cases where kContinueOnInvalidSelector was used. This uncovered a bug too: in some places, non reg_t parameters were parsed svn-id: r49564
2010-06-03The setCursor selector is no longer used for the detection of the ↵Filippos Karapetis
kSetCursor() kernel function semantics svn-id: r49408
2010-05-29Mass renaming of selector-related functions, and removed some defines which ↵Filippos Karapetis
were just cloaking functions with a different name - GET_SEL32 -> readSelector - GET_SEL32V -> readSelectorValue - PUT_SEL32 -> writeSelector - PUT_SEL32V -> writeSelectorValue Also, changed some selector-related function names and variables to CamelCase svn-id: r49317