aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/selector.h
AgeCommit message (Collapse)Author
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-05-24SCI32: Add script patch for lsl7 cheese maker priority bugMartin Kiewitz
This issue also happens when using the original interpreter.
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-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-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-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
No functionality change has been made with this commit. This avoids setting and getting the reg_t members directly, and is the basis of any future work on large SCI3 scripts (larger than 64KB)
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-25ALL: behaviour -> behaviorMatthew Hoops
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-03-09SCI: Implement Mac iconbar event handling.Walter van Niftrik
2010-11-17SCI: Added some SCI3 selector related informationFilippos Karapetis
- Added a TODO for the usage of the -info- selector in kClone and kDisposeClone in SCI3 scripts, as it's no longer used in SCI3 - Added information about which of the selectors are missing in SCI3. There are some more which are missing, but aren't used in SCI2-SCI3 anyway - Some styling svn-id: r54291
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-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-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-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
2010-03-08SCI: Make EngineState parameter to INV_SEL explicitMax Horn
svn-id: r48202
2010-02-13SCI: Remove EngineState::_kernel, use SciEngine::_kernel insteadMax Horn
svn-id: r48050
2010-02-13SCI: Add global g_sci pointer to the active SciEngine instanceMax Horn
svn-id: r48046
2010-02-05SCI: Add a 'SELECTOR' macroMax Horn
svn-id: r47918
2010-01-29SCI: Reduce header interdependencies a bitMax Horn
svn-id: r47666
2010-01-29SCI: Move selector stuff to new header; reorder k_argc & k_argp param of ↵Max Horn
invoke_selector svn-id: r47665