aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel.cpp
AgeCommit message (Collapse)Author
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: 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-02SCI: Renamed kernel_dereference_* to kernelDeref*, and added kernelDerefStringMax Horn
svn-id: r43907
2009-09-02SCI:Max Horn
* removed kNOP * renamed k_Unknown to kUnknown * added FIXME to kfunct_mappers table * more cleanup svn-id: r43906
2009-08-31Rewrote the static selector mapper to use SCI versions instead of game IDs, ↵Filippos Karapetis
and split the selectors in SCI generations svn-id: r43863
2009-08-31SCI: Add stub for PalVary.Walter van Niftrik
svn-id: r43857
2009-08-30Adding support for AVI in SCI games (such as kq6) and implement kPlatform.Matthew Hoops
svn-id: r43834
2009-08-30SCI: Add lofs detection.Walter van Niftrik
svn-id: r43824
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-27Stop loading opcodes from vocab.998. They are the same in all SCI games and ↵Filippos Karapetis
are hardcoded anyway (plus, vocab.998 is unreliable in some games, e.g. QFG3, or completely missing in others). Also hardcoded the opcode names for the script debugger, the only place they're actually used. The only place where vocab.998 is loaded on demand is when using the "opcodes" console command (for debug/verification purposes) svn-id: r43775
2009-08-27Removed the signature check from GetSaveDir in order to let the scripts in ↵Filippos Karapetis
GK progress a bit further svn-id: r43771
2009-08-27Add the minor differences of SCI3 to the SCI2.1 kernel table.Matthew Hoops
svn-id: r43763
2009-08-25Disabled the signature checks for kNewWindow and kGetEvent, which are ↵Filippos Karapetis
different in Mac versions. At least, Mac versions should start now svn-id: r43747
2009-08-25- Split SCI_VERSION_32 into SCI_VERSION_2, SCI_VERSION_2_1, and ↵Matthew Hoops
SCI_VERSION_3 (each version has a different kernel table). - Improve map detection. - Fix SCI32 object and script initialization (Torin's Passage and GK1 scripts now start up, and probably most SCI2/2.1 games). - Add SCI2 and SCI2.1 kernel tables. svn-id: r43742
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-19Comment out unused function (which was also currently only enabled when ↵Johannes Schickel
SCI32 is enabled). svn-id: r43528
2009-08-18Started rewriting the SCI engine to use FSNode instead of file names. This ↵Filippos Karapetis
is the proper solution for removing the hack in the fallback detector, but it still needs work. Also, reduced the things needed to be initialized a bit, so that the detection is a bit faster svn-id: r43510
2009-08-17SCI: Fix kernel table for multilingual SCI01 games. Cleanup.Walter van Niftrik
svn-id: r43497
2009-08-17SCI: Add autodetection for DoSound. Cleanup.Walter van Niftrik
svn-id: r43482
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-08-16SCI: Stage 1 of the game detection overhaul. The end goal is to autodetectWalter van Niftrik
as much as possible. All SCI_VERSION_* information was removed from detection.cpp (much of it was incorrect anyway). svn-id: r43449
2009-08-15SCI: Added enum for map and volume versions. Removed res_version setting fromWalter van Niftrik
detection.cpp (should be detectable). Cleanup. svn-id: r43390
2009-08-10SCI: Improved multilanguage support for SCI1 and SCI1.1.Walter van Niftrik
svn-id: r43217
2009-07-11Only error out, if checkStaticSelectorNames() fails.Travis Howell
svn-id: r42376
2009-07-11Applied a slightly modified patch from clone2727 which adds static selector ↵Filippos Karapetis
names to some demos which are missing them (KQ4, LSL1, LSL3, Iceman and Christmas1992) svn-id: r42372
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-07- Added auto-detection for EGA graphics. As a result of this, GF_SCI1_EGA ↵Filippos Karapetis
has been removed and versions SCI_VERSION_01_EGA and SCI_VERSION_01_VGA have been merged into SCI_VERSION_01 - Simplified the checks for EGA and VGA graphics - Fixed a bug in script_adjust_opcode_formats() - Simplified the code in GfxResManager::getView() a bit svn-id: r42206
2009-07-06Renamed SCI_VERSION_01 -> SCI_VERSION_01_EGAFilippos Karapetis
svn-id: r42181
2009-07-06KQ6CD should be working correctly againFilippos Karapetis
svn-id: r42178
2009-07-06Assigned several unimplemented/unused kernel functions as stubs, so that we ↵Filippos Karapetis
know when they're used and how they're called svn-id: r42170
2009-07-06Replaced sciprintf() calls with printf, DebugPrintf, warning and error callsFilippos Karapetis
svn-id: r42167
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- Merged the "early" and "late" SCI1 versions - these are functionally ↵Filippos Karapetis
equivalent, and the code that does the version check is unreliable (e.g. it sets SQ1 VGA to SCI1 "late" and EcoQuest 1 to SCI1 "early") - Cleanup of the vocabulary setting functions - Cleanup of the cursor manipulation code svn-id: r42097
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-03SCI0 games using older graphics functions are automatically detected now, ↵Filippos Karapetis
from the presence of the "TimesSin" and "SinMult" kernel functions. Removed the GF_SCI0_OLDGFXFUNCS game flag svn-id: r42081
2009-07-03Simplified the kernel name loading code: Merged the default SCI0 and SCI1 ↵Filippos Karapetis
kernel name tables in one table. vocab.999 is only used in SCI0 and SCI01 games if it exists as an override to the default kernel name table (which works with SCI0/SCI01 demos with no vocab.999, like KQ1 and xmas1998). Removed GF_SCI0_SCI1VOCAB. svn-id: r42050
2009-06-25After discussing with waltervn, committing my fix for the King's Quest I ↵Matthew Hoops
Demo (original from Patch #2795916). I'm also fixing the full game as well :) svn-id: r41841
2009-06-07SCI: Moved resource36 handling into resource manager.Walter van Niftrik
svn-id: r41349
2009-06-04SCI: Renamed _kfuncTable -> _kernelFuncs; and simplified/streamlined the ↵Max Horn
kernel func map in kernel.cpp a bit svn-id: r41176
2009-06-04SCI: Added MemObject::isValidOffset method; use it to simplify ↵Max Horn
determine_reg_type svn-id: r41175
2009-06-04SCI: cleanupMax Horn
svn-id: r41173
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-06-01Split the kernel functions away from the vocabulary functions (WIP, ↵Filippos Karapetis
saving/loading is broken) svn-id: r41101
2009-06-01Replaced kernel_oops with error(), and added an enum to clarify the cases ↵Filippos Karapetis
where invoke_selector should stop svn-id: r41095
2009-06-01Removed the sci_max_allowed_unknown_kernel_functions arrayFilippos Karapetis
svn-id: r41094