aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/seg_manager.cpp
AgeCommit message (Collapse)Author
2011-03-14SCI: Got rid of VERIFY() and removed some newlines in error messagesmd5
2011-03-10SCI: Don't try to uninstantiate scripts marked as deletedmd5
Trying to delete a script marked as deleted should do nothing. Hoyle 3 tried to uninstantiate scripts more than once, and we incorrectly decreased the reference count of associated scripts more than once, thereby killing them. This properly fixes bug #3038837 (removed the hack for it). Many many thanks to wjp for his help on this :)
2011-03-09SCI: Removed unnecessary parameter from deallocate()md5
2011-03-04SCI: Use BE string handling for Mac games.Walter van Niftrik
2011-03-04SCI: Fixed a issue with signed characters in setChar()md5
This was visible in the password of LSL5 Amiga. Thanks to waltervn for finding this
2011-02-28SCI: Moved hunk pointer handling to the GC, and removed some related workaroundsmd5
SCI scripts can contain stale pointers, which are used later on. We now delete the contents of hunk entries without invalidating the relevant pointers and let the GC clear the references. Many thanks to waltervn and wjp for all their work and help on this.
2011-02-09SCI: Do not try to dereference object name when it's not a pointer.Walter van Niftrik
Stops flood of warnings in some Mac titles. svn-id: r55849
2011-02-03SCI: Properly reset the array/string segment idsMatthew Hoops
svn-id: r55749
2010-12-15SCI: Slight cleanupFilippos Karapetis
svn-id: r54925
2010-12-07SCI: Removed the system strings code and replaced it with a much more ↵Filippos Karapetis
simplified version, thus greatly simplifying handling of system strings svn-id: r54805
2010-11-28SCI: Fixed bug #3034471 - "SCI, Castlebrain/Amiga: Invisible text in word ↵Filippos Karapetis
search" Fixed some endianness issues in Amiga versions, thanks to wjp. Amiga versions expect a BE VM, thus we adjust accordingly in the places where memory is accessed directly (i.e. kStrAt, kMemory and all places that set/get characters from memory) svn-id: r54521
2010-11-09SCI: Removed the Shivers 2 hack from the segment manager (it isn't SCI)Filippos Karapetis
svn-id: r54174
2010-11-09SCI: Some slight work on SCI3Filippos Karapetis
- Enabled the SCI3 game entries for testing purposes - The resource manager is initialized fully now (with a slight hack) - Added a hack for the demo of Shivers 2 (which seemingly has no scripts or vocabularies) - The engine will stop before parsing any game scripts in SCI3 games, and opens the console for resource manager-related functionality svn-id: r54167
2010-11-02SCI: Remove any use of printfMax Horn
svn-id: r54037
2010-09-13SCI: Changed the script protection code to be a hack for Hoyle 3 onlyFilippos Karapetis
This shouldn't be happening normally, but apparently it does, which would indicate a potential issue with the object locking code svn-id: r52703
2010-09-13SCI: Proper fix for bug #3038837 - "HOYLE3: EGA/VGA Crashes" and some cleanupFilippos Karapetis
System scripts (i.e. 0 and 900-999) are now protected and never destroyed during a game svn-id: r52702
2010-09-04SCI: Janitorial - fixed spaces and typosFilippos Karapetis
svn-id: r52527
2010-08-01SCI: removing pirated sq4 version from detectionMartin Kiewitz
"fixes" bug #3037800 fixing warning in seg_manager svn-id: r51576
2010-08-01SCI: Ignoring non-critical script bug in QFG1VGA, when closing any ↵Filippos Karapetis
conversation dialog with esc (doesn't affect gameplay in any manner) svn-id: r51572
2010-07-22SCI: Fixed the crash in LSL2, room 42 (when arriving at the island). ↵Filippos Karapetis
kAnimate may refer to unfrozen objects which have been deleted, thus handle that case accordingly. svn-id: r51152
2010-07-02Add checks for null reference to strncpy() and strlen() - happens for ↵Filippos Karapetis
example when trying to talk to inanimate objects in KQ6 svn-id: r50596
2010-07-02getString() on a NULL pointer is an empty string (verified in SCI2.1)Filippos Karapetis
svn-id: r50591
2010-07-01Only print the ambiguous object notice in findObjectByName if we didn't ↵Matthew Hoops
specify an index. svn-id: r50584
2010-07-01SCI: Make SegManager::_heap privateMax Horn
svn-id: r50552
2010-07-01SCI: Add SegManager::getSystemString() methodMax Horn
svn-id: r50550
2010-07-01SCI: Rename some variables to match our naming conventionsMax Horn
svn-id: r50549
2010-07-01SCI: Simplify SegManager::findObjectByNameMax Horn
svn-id: r50548
2010-06-28SCI: Make various SegManager constMax Horn
svn-id: r50439
2010-06-28SCI: Make Script member vars private; add const qualifiersMax Horn
Only three Script members remain public (for now) svn-id: r50428
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-25Renamed some variablesFilippos Karapetis
svn-id: r50284
2010-06-25Removed the getHunkPointer error - it's valid SCI behavior (e.g. when ↵Filippos Karapetis
loading/quitting sometimes, since hunks are not saved). We check for valid hunk pointers anyway, so there's no reason for the warning/error svn-id: r50279
2010-06-25When loading a game, stop all running VMs recursively, and also stop ↵Filippos Karapetis
kAnimate's current recursion. This fixes the invalid execution stack frame in SQ1, when loading from the death screen after dying from the acid drops in Kerona. This should also fix the invalid hunk pointers, thus the warning about invalid hunk pointers has been turned into an error, as it shouldn't occur anymore svn-id: r50277
2010-06-24SCI: doing the exact opposite of r50236 code-wise now, as it was meant to beMartin Kiewitz
svn-id: r50237
2010-06-24SCI: ignore segment 0xFFFF in segmanager getchar, when offset > 1 - so we ↵Martin Kiewitz
dont write a warning, if the scripts use some uninitialized temp variable as terminator svn-id: r50236
2010-06-24SCI: reverting r50232, didnt make sense. thx @ wjp for noticingMartin Kiewitz
svn-id: r50233
2010-06-24SCI: correctly put NUL inside SegManager::strncpy() even when using n = ↵Martin Kiewitz
0xFFFFFFFFU svn-id: r50232
2010-06-24Initialize the stack with 'S' or 's' characters, like SSCI does (ultimately, ↵Filippos Karapetis
we should not change the stack again like we do in op_link - this is what Sierra is doing). Some cleanup svn-id: r50207
2010-06-18Fixed a problem in kAnimate which occurred when a list was modified by a ↵Filippos Karapetis
call (e.g. in KQ1 demo, PQ2) svn-id: r50022
2010-06-18Marked the KQ1 demo workaround as a workaroundFilippos Karapetis
svn-id: r49985
2010-06-18Added a workaround for the KQ1 demo (looks like a script bug)Filippos Karapetis
svn-id: r49984
2010-06-17SCI: Update FIXME in SegmentManagerMax Horn
* Turn one FIXME into a simple comment * Rewrap comment to 80 columns * Turn several warnings into errors svn-id: r49962
2010-06-17Removed a now obsolete FIXME (spotted by Fingolfin)Filippos Karapetis
svn-id: r49932
2010-06-15Cleanup of the savegame code:Filippos Karapetis
- Added a saveLoadWithSerializer() method to the reg_t class - Moved SegManager::reconstructClones() inside savegame.cpp - Moved SoundCommandParser::syncPlayList() and SoundCommandParser::reconstructPlayList() inside savegame.cpp svn-id: r49683
2010-06-14Some cleanup of the script locals codeFilippos Karapetis
svn-id: r49649
2010-06-01The system strings segment is a fixed segment of the segment manager, which ↵Filippos Karapetis
doesn't change during the game, thus move all the system strings code and variables inside the segment manager svn-id: r49372
2010-05-30Limit access to the _bufSize, _scriptSize and _heapSize members of the ↵Filippos Karapetis
Script class svn-id: r49327
2010-05-29Limit access to the _classTable array (now it's directly accessible only ↵Filippos Karapetis
inside saveLoadWithSerializer() svn-id: r49318
2010-05-26Made _k_new_node() a method of the segment manager, and fixed a bug with the ↵Filippos Karapetis
rarely used SCI0 kernel function kSort in the process (_k_new_node was called with key, value instead of value, key inside kSort) svn-id: r49251