aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.h
AgeCommit message (Collapse)Author
2009-11-20Removed more unused selectors - the canBeHere selector is replaced by ↵Filippos Karapetis
cantBeHere in SCI1+ svn-id: r46011
2009-11-20FormattingFilippos Karapetis
svn-id: r46007
2009-11-20Changed the lofs detection to iterate through all the methods of the Game ↵Filippos Karapetis
object again, instead of a specific selector - fixes Jones svn-id: r46006
2009-11-20Selector cleanup: rearranged all selectors to be in the same order as in ↵Filippos Karapetis
Sierra's dictionary files, and removed several unused selectors svn-id: r46005
2009-11-20Some corrections for the lofs autodetection - SQ4 floppy works againFilippos Karapetis
svn-id: r46002
2009-11-04- Changed the segment manager to be a static part of the engine, and stopped ↵Filippos Karapetis
deleting and recreating it when restoring games - Merged game_exit(), script_free_vm_memory() and script_free_engine() - Cleanup svn-id: r45666
2009-11-04Added references to the scaleX and scaleY selectors, used for SCI1.1 view ↵Filippos Karapetis
scaling svn-id: r45659
2009-10-10Started rewriting the Object struct into a classFilippos Karapetis
svn-id: r44878
2009-10-08Started rewriting the check for the graphics functions type (still not ↵Filippos Karapetis
finished) svn-id: r44787
2009-10-01SCI: Remove outdated debugging hack.Willem Jan Palenstijn
In the past, a negative selector value was used to identify a callk stack frame. Currently a type of EXEC_STACK_TYPE_KERNEL already does that. svn-id: r44510
2009-09-30SCI: Replace magic '-42' by an enumMax Horn
svn-id: r44492
2009-09-27SCI: Fix scrolling in SCI1 list controls.Walter van Niftrik
svn-id: r44429
2009-09-22SCI: Change SystemStrings to use RAW storage consistenlyMax Horn
svn-id: r44246
2009-09-17SCI: Add a global getSciVersion() function and make use of itMax Horn
svn-id: r44170
2009-09-17SCI: Rename selector_map_t -> SelectorCache and _selectorMap -> _selectorCacheMax Horn
svn-id: r44152
2009-09-17SCI: Move parts of struct ScriptState into a new struct DebugStateMax Horn
svn-id: r44151
2009-09-17Made script_lookup_export() a method of SegManagerFilippos Karapetis
svn-id: r44140
2009-09-17Changed the way object selectors are accessed, by removing the relevant ↵Filippos Karapetis
defines and adding appropriate methods to the Object structure svn-id: r44138
2009-09-12Removed the unused ASSERT()-related code and changed a warning where ↵Filippos Karapetis
BREAKPOINT() was used to an error svn-id: r44041
2009-09-12- Made obj_get and obj_get_name methods of SegManager (getObject and ↵Filippos Karapetis
getObjectName, respectively) - Renamed alloc_List -> allocateList, alloc_Node->allocateNode, alloc_hunk_entry->allocateHunkEntry, free_hunk_entry->freeHunkEntry, for consistency svn-id: r44039
2009-09-06SCI: Script::obj_indices is now protectedMax Horn
Add new methods init, allocateObject and getObject to class Script, and use them instead of directly accessing Script::obj_indices. Replace RAW_GET_CLASS_INDEX with Script::getObject() svn-id: r43987
2009-09-06SCI: cleanupMax Horn
svn-id: r43982
2009-09-06SCI: Cleanup for some SegManager internalsMax Horn
- rename segGet and getSegment to getScriptSegment; the two can be distinguished by the parameter count. - rename type SCRIPT_GET to ScriptLoadType to conform with our code formatting conventions - rename get_class_address to getClassAddress - some cleanup svn-id: r43981
2009-09-06SCI: Rename resManager -> resMan; segManager -> segManMax Horn
svn-id: r43980
2009-09-02Some renaming:Filippos Karapetis
getresourceManager -> getResourceManger resourceManager -> resMan segmentManager ->segMan svn-id: r43908
2009-09-01- Moved the Sierra game ID conversion code inside game.cpp, so that any ↵Filippos Karapetis
game-specific workarounds are tested against ScummVM IDs - Added detection for the EcoQuest 1 demo in the fallback detector - Partially reverted my previous "fix" for EcoQuest 1 CD, and turned it into a script-specific hack for that game, for now - Added handling of kDisposeScript calls made with 2 parameters, e.g. in KQ5CD and others (still untested, haven't found a test case) svn-id: r43887
2009-08-30SCI: Add lofs detection.Walter van Niftrik
svn-id: r43824
2009-08-30SCI: Add SetCursor detection. Cleanup.Walter van Niftrik
svn-id: r43812
2009-08-28- Removed the unused selectors "prevSignal", "who" and "distance" from the ↵Filippos Karapetis
quick access selector array - Added the "motionCue" and "egoMoveSpeed" selectors to the selector array, to limit the places where findSelector() is used only in debugging functions - Reordered the selector initialization in mapSelectors(), so that their order matches the order found in vocab.997 svn-id: r43779
2009-08-28Removed the unused selectors (edgeHit, semanticFail and baseSetter)Filippos Karapetis
svn-id: r43776
2009-08-25- Replaced more cases of EngineState parametersFilippos Karapetis
- Made some version comparisons for old SCI0 versions easier to read - Removed the GET_SEL32SV macro svn-id: r43729
2009-08-25- Simplified the parameters of some functionsFilippos Karapetis
- Replaced some EngineState parameters - The SCI version is now obtained from the resource manager or the segment manager, thereby simplifying several functions - Plugged 2 leaks in the fallback detector - Renamed the segment manager and resource manager to "segmentManager" and "resourceManager" in all places, for consistency svn-id: r43722
2009-08-23- Added more mappings from Sierra's internal IDs to our own ones. Hopefully, ↵Filippos Karapetis
all SCI0-SCI11 games can now be detected correctly from the fallback detector - Simplified some checks for old script types svn-id: r43678
2009-08-18- Added game ID detection to the fallback detector. We still need to map ↵Filippos Karapetis
some of Sierra's internal IDs to our own ones - The class table is now created in the segment manager constructor svn-id: r43504
2009-08-17Fix compilation of the SCI engine. It seems that all of the SCI header files ↵Johannes Schickel
I touched (and probably others I luckily didn't touch) seem to assume that files including them will supply needed types. That looks like a major issue in SCI. Someone with knowledge of the SCI code should look into this and cleanup the includes of *all* SCI headers. svn-id: r43459
2009-08-17- Simplified some functions to accept only the parts of the EngineState they ↵Filippos Karapetis
need as parameters, instead of the whole EngineState - Moved the class table in the Segment manager - it's the only class using it directly - Removed the sci11 flag from save games (we already know this, we don't need to store it) - Moved script_get_segment() and get_class_address() inside the segment manager class - Removed the script_locate_by_segment wrapper - Simplified script_lookup_export() a lot by removing some paranoia checks - Added some WIP code for automatically determining the game id in the fallback detector (still not working) - General cleanup svn-id: r43458
2009-07-18SCI: Fix breakpointsWillem Jan Palenstijn
svn-id: r42599
2009-07-11Moved the kernel and the vocabulary outside of the engine state (they're ↵Filippos Karapetis
static data, which never changes during a game) svn-id: r42398
2009-07-08Some cleanup for the script debugger code:Filippos Karapetis
- Renamed struct DebugState to ScriptState and r_amp_rest to restAdjust inside EngineState. Changed restAdjust to be a uint16 (actually it is a uint16, but it was being casted back and forth from an unsigned integer, so this clears up its type and size) - Moved the script state variables from inside the run_vm() into the ScriptState struct, so that they can be accessed by the console commands and the script debugger all the time, and removed the weird isValid code svn-id: r42260
2009-07-07Cleanup: added an enum for the auto-detected features, removed the selectors ↵Filippos Karapetis
which are only used for auto-detection from the convenience selector map and placed feature auto-detection in a separate function. Also, now the automatically detected graphics resources are shown in the console. svn-id: r42212
2009-07-07Added auto-detection for games with older headers for script blocks, and ↵Filippos Karapetis
removed game flag GF_SCI0_OLD svn-id: r42211
2009-07-05- Fixed feature auto-detection for Conquests of CamelotFilippos Karapetis
- Auto-detected features are now printed in the console (to ease debugging) svn-id: r42132
2009-07-05SCI1 games with absolute parameters to lofs instructions are automatically ↵Filippos Karapetis
detected now. Removed the GF_SCI1_LOFSABSOLUTE game flag svn-id: r42118
2009-07-04- Kernel function names are no longer loaded from vocab.999, but are ↵Filippos Karapetis
constructed from the hardcoded function table, depending on the SCI version used - SCI0 games using older graphics functions are now detected by the presence of the "curAngle" selector - SCI0 games using a SCI1 table (like KQ1 demo version and full version) are detected by the presence of the "sightAngle" selector (as no SCI0 game seems to have it) svn-id: r42095
2009-07-04Newer DoSound() semantics are now detected automatically, by the existence ↵Filippos Karapetis
of the "setVol" selector. Removed game flag GF_SCI1_NEWDOSOUND svn-id: r42087
2009-06-24SCI: Partial support for dual-language games.Walter van Niftrik
svn-id: r41833
2009-06-18PatchMax Horn
svn-id: r41647
2009-06-06Store long-term pointers to object variables in a new ObjVarRef struct.Willem Jan Palenstijn
Storing them as reg_t* could cause the pointers to become invalid when they pointed into CloneTable since CloneTable can be re-allocated. svn-id: r41220
2009-06-05Moved some more debug commands to ScummVM's coneole and removed some unused codeFilippos Karapetis
svn-id: r41198
2009-06-04SCI: Renamed EngineState::flags and version to _flags and _version ↵Max Horn
(following our conventions); also slightly changed the EngineState constructor to init _version & _flags, and used this to make them constant svn-id: r41177