aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/script.cpp
AgeCommit message (Collapse)Author
2012-10-07SCI: Flip assertWillem Jan Palenstijn
This way the assert is checking that the allocated buffer is large enough for the memcpy that follows it.
2012-06-28SCI: Remove an incorrect error check in validateExportFunc()Filippos Karapetis
2012-06-26SCI: Rename a parameter in validateExportFunc()Filippos Karapetis
This ensures that it won't be confused with a function with the same name
2012-06-23SCI: Change the program counter (PC) to be a 32-bit variableFilippos Karapetis
This is needed for future support of large SCI3 scripts. The program counter is isolated and does not interfere with other parts of the VM, plus it does not get stored in saved games, so it's pretty straightforward to convert
2012-06-23SCI: Clean up validateExportFunc() and related functionsFilippos Karapetis
Also renamed some SCI3 related code to indicate when it's SCI3 specific
2012-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
No functionality change has been made with this commit. This avoids setting and getting the reg_t members directly, and is the basis of any future work on large SCI3 scripts (larger than 64KB)
2012-06-15SCI: Change getClassAddress() to only require the caller segmentFilippos Karapetis
The caller offset is never actually used inside the function
2012-06-15SCI: Replace RAW_IS_OBJECT with a methodFilippos Karapetis
2012-06-15SCI: Fix warningsFilippos Karapetis
Thanks to DrMcCoy for reporting them
2012-06-15Revert "SCI: Change Script::getObject() to accept a reg_t"Filippos Karapetis
This reverts commit 577d7e41c9ca2c498dc85e41c373fbdca8d2ed41.
2012-06-15SCI: Further cleanup of the script codeFilippos Karapetis
Merge the init() and load() Script methods and reset the script when necessary
2012-06-15SCI: _propertyOffsetsSci3 and classpos should be 32-bit integersFilippos Karapetis
These are needed for future handling of large SCI3 script files
2012-06-15SCI: Clean up the script initialization codeFilippos Karapetis
2012-06-15SCI: Change Script::getObject() to accept a reg_tFilippos Karapetis
This is needed for upcoming changes to the Script class
2012-06-14SCI: Add known large SCI3 scriptsFilippos Karapetis
2011-11-05SCI: Made more fields of the Script class private. Some cleanup.Filippos Karapetis
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-05-25ALL: initialise -> initializeMatthew Hoops
2011-05-13SCI: Avoid incrementing lockers of deleted scriptWillem Jan Palenstijn
Having a deleted script with non-zero lockers had the side effect of making the deleted script re-appear in the GC's work list, including any (deleted) objects in the script. This should be the root cause of bugs #3299458 and #3295849, so also delete the workaround added for that in 35086fe1.
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-20SCI: Fix precedence (bug #3087872)Willem Jan Palenstijn
2011-03-14SCI: Got rid of VERIFY() and removed some newlines in error messagesmd5
2011-03-02SCI: Fixed script bug #3059871 - "SCI Fanmade - Ocean Battle: Crash while ↵md5
playing"
2011-01-04SCI: CleanupFilippos Karapetis
svn-id: r55123
2011-01-04SCI: Fixed part of bug #3150767 - "KQ5 French crash on startup, only partial ↵Filippos Karapetis
English text" This is a regression from r54510 svn-id: r55122
2011-01-01SCI: debugC calls no longer require a debug level of 2 to show outputFilippos Karapetis
svn-id: r55086
2010-12-21Simplify SCI3 relocation code, also making it correct.Lars Skovlund
svn-id: r54985
2010-11-27SCI: Fixed bug #3034713 - "ICEMAN Demo: Fails to find base object"Filippos Karapetis
This could happen because objects in scripts can be in the wrong order. Same thing happens in the French and German version of KQ5 (bug #3035396). Removed the scriptObjRemove() method, which is in fact a hack. svn-id: r54510
2010-11-24SCI: Some slight changes to get the "find_callk" console command working in KQ5Filippos Karapetis
- Ignore invalid object in KQ5 script 784 - Script 980 looks to be an unused leftover, as its object contain references to classes placed in script 988, which is missing svn-id: r54455
2010-11-18SCI: Slight formatting fix.Johannes Schickel
svn-id: r54330
2010-11-18SCI3: Add proper support for the calle instructionLars Skovlund
svn-id: r54327
2010-11-18Fix operator precedence problemLars Skovlund
svn-id: r54324
2010-11-17SCI: Added sanity checks for SCI3 scripts bigger than 64KBFilippos Karapetis
- Extended the "verify_scripts" console command for SCI3 scripts - Added a check for such large scripts when scripts are loaded, with an error for now, till a mechanism to support such scripts with a 16-bit addressing scheme is in place (e.g. overlaying, or splitting scripts). Either way, such scripts should span over more than one segment svn-id: r54304
2010-11-17SCI3: Handle script exports correctlyLars Skovlund
svn-id: r54302
2010-11-17SCI: Make class table size OB1 workaround slightly more readableMax Horn
svn-id: r54290
2010-11-17SCI: More work on SCI3, based on a patch by lskovlunFilippos Karapetis
- Added SCI3 equivalents for access to object selectors - Added SCI3 implementation of object relocation - Added SCI3 implementation of Script::initialiseClasses() svn-id: r54283
2010-11-17SCI: Some more work on SCI3, based on a patch by lskovlunFilippos Karapetis
- Added a SCI3 implementation of Script::load() - Added a SCI3 implementation of Script::initialiseClasses() - Removed some duplicate code svn-id: r54282
2010-11-17SCI: Added the SCI3 equivalent of initialiseObjects(), from a patch by lskovlunFilippos Karapetis
svn-id: r54281
2010-11-17SCI: Some restructuring. Added some SCI3 placeholders/stubsFilippos Karapetis
svn-id: r54280
2010-11-17SCI: The heap was a separate resource in SCI1.1 - SCI2.1 games only. It was ↵Filippos Karapetis
later merged into the script files again in SCI3 svn-id: r54279
2010-11-04SCI: Renamed findBlock() to findBlockSCI0()Filippos Karapetis
svn-id: r54077
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-12SCI: Bugfix for rev #52688.Filippos Karapetis
We can't just set the lockers of script 0 to 1, as at that point the objects associated with the script are marked to be deleted, thus we need to reload the script svn-id: r52693
2010-09-12Workaround for bug #038837: HOYLE3: EGA/VGA Crashes. Needs furtherLars Skovlund
investigation and a proper fix post-release svn-id: r52688
2010-09-04SCI: Janitorial - fixed spaces and typosFilippos Karapetis
svn-id: r52527
2010-09-04SCI: Don't try to initialize non-existent scripts, error out instead Filippos Karapetis
(Invalid scripts may be requested to be loaded when warping to an incorrect room) svn-id: r52524
2010-09-04SCI: Fixed bug #3037595 - "KQ4: Crash reading message in the bottle (whale ↵Filippos Karapetis
mouth)" svn-id: r52516
2010-08-18SCI: Resolved a FIXME concerning scripts with more than one export table (it ↵Filippos Karapetis
only makes sense for SCI0-SCI1 games) svn-id: r52179
2010-08-11SCI: making camelot fix camelot-only for nowMartin Kiewitz
fixes kq6 getting assert as well (bug 3042866) svn-id: r51970
2010-08-10SCI: adding patch for eq1cdMartin Kiewitz
fixes ego swimming left/right of room 660 and getting a "message not found" error and a GE? signature mismatch - in sierra sci this also resulted in "message not found" and a hang afterwards - bug #3038387 svn-id: r51951