Age | Commit message (Collapse) | Author | |
---|---|---|---|
2011-03-04 | SCI: 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-28 | SCI: Moved hunk pointer handling to the GC, and removed some related workarounds | md5 | |
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-09 | SCI: 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-03 | SCI: Properly reset the array/string segment ids | Matthew Hoops | |
svn-id: r55749 | |||
2010-12-15 | SCI: Slight cleanup | Filippos Karapetis | |
svn-id: r54925 | |||
2010-12-07 | SCI: 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-28 | SCI: 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-09 | SCI: Removed the Shivers 2 hack from the segment manager (it isn't SCI) | Filippos Karapetis | |
svn-id: r54174 | |||
2010-11-09 | SCI: Some slight work on SCI3 | Filippos 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-02 | SCI: Remove any use of printf | Max Horn | |
svn-id: r54037 | |||
2010-09-13 | SCI: Changed the script protection code to be a hack for Hoyle 3 only | Filippos 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-13 | SCI: Proper fix for bug #3038837 - "HOYLE3: EGA/VGA Crashes" and some cleanup | Filippos Karapetis | |
System scripts (i.e. 0 and 900-999) are now protected and never destroyed during a game svn-id: r52702 | |||
2010-09-04 | SCI: Janitorial - fixed spaces and typos | Filippos Karapetis | |
svn-id: r52527 | |||
2010-08-01 | SCI: removing pirated sq4 version from detection | Martin Kiewitz | |
"fixes" bug #3037800 fixing warning in seg_manager svn-id: r51576 | |||
2010-08-01 | SCI: 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-22 | SCI: 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-02 | Add 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-02 | getString() on a NULL pointer is an empty string (verified in SCI2.1) | Filippos Karapetis | |
svn-id: r50591 | |||
2010-07-01 | Only print the ambiguous object notice in findObjectByName if we didn't ↵ | Matthew Hoops | |
specify an index. svn-id: r50584 | |||
2010-07-01 | SCI: Make SegManager::_heap private | Max Horn | |
svn-id: r50552 | |||
2010-07-01 | SCI: Add SegManager::getSystemString() method | Max Horn | |
svn-id: r50550 | |||
2010-07-01 | SCI: Rename some variables to match our naming conventions | Max Horn | |
svn-id: r50549 | |||
2010-07-01 | SCI: Simplify SegManager::findObjectByName | Max Horn | |
svn-id: r50548 | |||
2010-06-28 | SCI: Make various SegManager const | Max Horn | |
svn-id: r50439 | |||
2010-06-28 | SCI: Make Script member vars private; add const qualifiers | Max Horn | |
Only three Script members remain public (for now) svn-id: r50428 | |||
2010-06-27 | Made the script initialization/uninitialization methods part of the segment ↵ | Filippos Karapetis | |
manager svn-id: r50402 | |||
2010-06-27 | SCI: 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-25 | Renamed some variables | Filippos Karapetis | |
svn-id: r50284 | |||
2010-06-25 | Removed 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-25 | When 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-24 | SCI: doing the exact opposite of r50236 code-wise now, as it was meant to be | Martin Kiewitz | |
svn-id: r50237 | |||
2010-06-24 | SCI: 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-24 | SCI: reverting r50232, didnt make sense. thx @ wjp for noticing | Martin Kiewitz | |
svn-id: r50233 | |||
2010-06-24 | SCI: correctly put NUL inside SegManager::strncpy() even when using n = ↵ | Martin Kiewitz | |
0xFFFFFFFFU svn-id: r50232 | |||
2010-06-24 | Initialize 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-18 | Fixed 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-18 | Marked the KQ1 demo workaround as a workaround | Filippos Karapetis | |
svn-id: r49985 | |||
2010-06-18 | Added a workaround for the KQ1 demo (looks like a script bug) | Filippos Karapetis | |
svn-id: r49984 | |||
2010-06-17 | SCI: Update FIXME in SegmentManager | Max Horn | |
* Turn one FIXME into a simple comment * Rewrap comment to 80 columns * Turn several warnings into errors svn-id: r49962 | |||
2010-06-17 | Removed a now obsolete FIXME (spotted by Fingolfin) | Filippos Karapetis | |
svn-id: r49932 | |||
2010-06-15 | Cleanup 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-14 | Some cleanup of the script locals code | Filippos Karapetis | |
svn-id: r49649 | |||
2010-06-01 | The 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-30 | Limit access to the _bufSize, _scriptSize and _heapSize members of the ↵ | Filippos Karapetis | |
Script class svn-id: r49327 | |||
2010-05-29 | Limit access to the _classTable array (now it's directly accessible only ↵ | Filippos Karapetis | |
inside saveLoadWithSerializer() svn-id: r49318 | |||
2010-05-26 | Made _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 | |||
2010-05-26 | SCI: Making various object and script related things const | Max Horn | |
svn-id: r49246 | |||
2010-05-19 | Removed 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-04-04 | SCI: check before writing 0 in SegManager::strncpy, fixes jones/cd crash | Martin Kiewitz | |
svn-id: r48519 |