aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.h
AgeCommit message (Collapse)Author
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
2009-06-04SCI: Moved MemObject code into a separate source fileMax Horn
svn-id: r41166
2009-06-04SCI: cleanupMax Horn
svn-id: r41165
2009-06-04SCI: Renamed various debug related global variables to have a g_ prefix; and ↵Max Horn
moved any 'extern' decls of them into a new header file svn-id: r41163
2009-06-02Removed the gfxw_new_visual and gfxw_new_port wrappers, moved _kfuncTable ↵Filippos Karapetis
inside the Kernel class and moved gfxw_find_port inside the GfxVisual struct svn-id: r41125
2009-05-31Removed script_error_flag and script_debug_flag, which were used to error ↵Filippos Karapetis
out if something went wrong and open the debugger console. Changed all the places where they were used to error() out instead, as ScummVM's debugger console can open on error() svn-id: r41073
2009-05-31- Further objectification of the SCI vocabulary functionsFilippos Karapetis
- Rewrote the sci_opcodes enum so that it's easier to read - Made the engine error out if data is sent to an invalid selector (which is a fatal condition) svn-id: r41069
2009-05-31More objectification of the Vocabulary functionsFilippos Karapetis
svn-id: r41057
2009-05-30- Removed debug_mode from the engine stateFilippos Karapetis
- Turned all SCIkwarn and SCIkdebug functions to ScummVM's debugC function - Placed some debug code in appropriate defines: DEBUG_PARSER, DEBUG_AVOIDPATH and DEBUG_SOUND - Removed the "debuglog" command and the "script_checkloads_flag" and "sci_debug_flags" variables svn-id: r41033
2009-05-28SCI: Fix potential dangling pointer more robustly,Willem Jan Palenstijn
by changing the executionStack implementation to a list. svn-id: r40971
2009-05-19SCI: Some debugger fixes and cleanup.Walter van Niftrik
svn-id: r40732
2009-05-19SCI: Doxygenified a few commentsMax Horn
svn-id: r40720
2009-05-19SCI: Introduce a new subclass StringFrag of MemObject (does nothing right ↵Max Horn
now); switched MemObject to subclass Common::Serializable svn-id: r40714
2009-05-18SCI: Got rid of EngineState::execution_stack_pos; overally, the resulting ↵Max Horn
code should be even stricter in detecting invalid VM stack access (and some bugs when loading saves might be fixed now...) svn-id: r40694
2009-05-18SCI: Removed ENTRY_IS_VALID macroMax Horn
svn-id: r40690