aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kscripts.cpp
AgeCommit message (Collapse)Author
2010-09-05SCI: Fix bugs #3035650 and #3039566, crash in PEPPER demo and LAURABOW2.Johannes Schickel
The actual names for the bug reports are: #3035650 "PEPPER non-interactive demo: Crash" #3039566 "LAURABOW2: Crash during introduction" Those crashes were caused by an invalid memory dereference in kClone. This in turn was happening, because the parent object pointer might have been invalidated in cases where the parent object is also a clone. svn-id: r52561
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-02SCI: Fix leaks in ResourceManager::listResources caller code.Johannes Schickel
svn-id: r51666
2010-07-28SCI: Changed a warning into debug outputFilippos Karapetis
svn-id: r51409
2010-07-18In SCI2.1, the type numbers inside resource maps/patches have changed ↵Matthew Hoops
slightly. We no longer use the number Sierra gives us directly, but use a function to convert to our ResourceType enum based on version. This allows us to read the chunk type from SCI2.1 (a form of script). Also, allow debugging of Mac-specific resources from the console. svn-id: r50973
2010-07-11SCI: kUnLoad - removing unneeded warnings (signature mismatch will happen ↵Martin Kiewitz
now), added information about parameters svn-id: r50806
2010-07-02Added handling for kLock called with resource id -1 (unlock all resources of ↵Filippos Karapetis
the requested type). Happens e.g. in KQ6 and LSL6 svn-id: r50595
2010-06-30SCI: implementing workarounds for kernel calls, removing original code ↵Martin Kiewitz
workaround for kDisposeScript / qfg1 room 64 and adding it to workaround table svn-id: r50520
2010-06-27Made the script initialization/uninitialization methods part of the segment ↵Filippos Karapetis
manager svn-id: r50402
2010-06-27SCI: Moved all the script-related code inside script.cpp/.h, and all script ↵Filippos Karapetis
opcode-related code inside vm.cpp/.h svn-id: r50396
2010-06-26Shuffled some functions around. Also, the filename in kResCheck can never be ↵Filippos Karapetis
bigger than 9 characters, when dealing with VMD videos svn-id: r50355
2010-06-26Added a workaround for broken script 377 in Castle of Dr. Brain, room 320. ↵Filippos Karapetis
It constantly tries to free the saved area rectangle (underbits) underneath the popup window svn-id: r50352
2010-06-18SCI: Rewrap some overlong commentsMax Horn
svn-id: r50012
2010-06-18Changed another warning into an error. CleanupFilippos Karapetis
svn-id: r49995
2010-06-17Fixed kLoad and kUnload (the resource type was incorrect)Filippos Karapetis
svn-id: r49931
2010-06-17Added handling of VMD video files in kResCheck, fixes video playing in GK2Filippos Karapetis
svn-id: r49913
2010-06-15SCI: OOpify class ResourceIdMax Horn
svn-id: r49841
2010-06-14CleanupFilippos Karapetis
svn-id: r49662
2010-06-03Moved several object-related defines inside vm.h into segment.h, where the ↵Filippos Karapetis
Object class resides. Also, removed several unused defines svn-id: r49406
2010-05-30Limited access to the script export table and synonyms blockFilippos Karapetis
svn-id: r49338
2010-05-30kScriptID can be used to load scripts with no exports. Don't throw warnings ↵Filippos Karapetis
in this case if no export is requested, as it's perfectly normal behavior svn-id: r49331
2010-05-30Limit access to the _bufSize, _scriptSize and _heapSize members of the ↵Filippos Karapetis
Script class svn-id: r49327
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-05-29Removed the scriptRelocateExportsSci11() hack. The open spell in QFG1VGA ↵Filippos Karapetis
works now (thanks to waltervn for all his help on this) svn-id: r49311
2010-05-26SCI: Making various object and script related things constMax Horn
svn-id: r49246
2010-05-19Removed the exportsAreWide variable from the segment manager and save games, ↵Filippos Karapetis
and moved validateExportFunc() in the Script class, thus resolving a TODO svn-id: r49093
2010-05-18- Removed the wrapper kalloc, kmem and kfree functions. Now, the associated ↵Filippos Karapetis
Segment manager functions allocateHunkEntry, getHunkPointer and freeHunkEntry are used directly (which are more descriptive, anyway) - Replaced the GET_SEGMENT macro by a method of the segment manager - Removed the unused reference to the created hunk in allocateHunkEntry(), only the reg_t reference to it is returned now svn-id: r49078
2010-05-18- Moved determine_reg_type() and kernel_matches_signature() inside the ↵Filippos Karapetis
Kernel class, where they belong - Moved the kernel signature defines inside kernel.h - Removed some unused references to EngineState svn-id: r49075
2010-02-15SCI: No need to set _executionStackPosChanged in kDisposeScript, as the ↵Max Horn
callk opcode handler does that already svn-id: r48064
2010-02-13SCI: Get rid of EngineState::resManMax Horn
svn-id: r48048
2010-01-30SCI: Remove extra '\n's in debugC messagesWillem Jan Palenstijn
svn-id: r47707
2010-01-29SCI: Move selector stuff to new header; reorder k_argc & k_argp param of ↵Max Horn
invoke_selector svn-id: r47665
2010-01-26Wording - we ignore calls to kUnload with less than 2 parametersFilippos Karapetis
svn-id: r47564
2010-01-26Ignore kUnload calls which are not made with less than 2 parameters. ↵Filippos Karapetis
Apparently, according to the FreeSCI bugs list, SQ1 calls it with 1 parameter when exiting the Ulence flats bar svn-id: r47563
2010-01-25Strip trailing spaces/tabs.Johannes Schickel
svn-id: r47541
2010-01-23kSetSynonyms is really parser related, but it's an empty function in games ↵Filippos Karapetis
without a parser svn-id: r47484
2010-01-23- Moved all of the parser-related variables inside the Vocabulary classFilippos Karapetis
- Moved the kSetSynonyms() function inside kscripts (as it's for script synonyms, not parser word synonyms) - The parser vocabulary is now only initialized for SCI0 and SCI01 games, which had a parser svn-id: r47483
2010-01-05SCI: Removed the old graphics codeFilippos Karapetis
svn-id: r47005
2009-12-21SCI32:Matthew Hoops
- Fully implement kArray and kIsHiRes and mostly implement kString (printf and atoi subfunctions still missing). - Add a dummy SciGui class for SCI32 to bypass the views. Gabriel Knight 1 will now play the Sierra logo music and the main menu music. - Some other minor SCI32 changes. svn-id: r46462
2009-10-28Enclose all of the old graphics code within the INCLUDE_OLDGFX safeguard ↵Filippos Karapetis
(defined in sci.h) svn-id: r45459
2009-10-10Started rewriting the Object struct into a classFilippos Karapetis
svn-id: r44878
2009-10-04SCI: Rename EngineState::segMan to _segManMax Horn
svn-id: r44629
2009-09-29Remove unused variable.Johannes Schickel
svn-id: r44464
2009-09-29- Changed the unimplemented debug SCI kernel functions (InspectObj, ↵Filippos Karapetis
ShowSends, ShowObjs, ShowFree, StackUsage and Profiler) to be dummy functions - we have our own debugger, and don't use these functions for debugging - Removed the function number parameter from all kernel functions, as it's no longer needed, and removed the FAKE_FUNCT_NR hack - Removed kUnknown() and kStub() - Dummy/unknown kernel functions are no longer invoked, and a warning is shown instead, with the paremeters passed to them Note: there is an evil hack used for debugging scripts in invoke_selector(), which probably no longer works now svn-id: r44461
2009-09-29QFG3 clears clones with underbits set, so disable the warning for this behaviorFilippos Karapetis
svn-id: r44458
2009-09-28SCI: Remove unsafe unmarkDeleted function.Willem Jan Palenstijn
It did not undo all effects of a script being deleted (specifically its superclasses remain unlocked), causing an inconsistent state. Also removed EcoQuest CD hack that worked around a specific instance of this problem. svn-id: r44449
2009-09-21SCI: Rename Object::flags and pos to _flags and _pos; tweak scriptObjInit0 ↵Max Horn
and scriptObjInit11 to be more similar svn-id: r44234
2009-09-17SCI: Move some selector related function into a new file selector.cppMax Horn
svn-id: r44171
2009-09-17SCI: Add a global getSciVersion() function and make use of itMax Horn
svn-id: r44170
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