aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm_types.h
AgeCommit message (Collapse)Author
2016-03-07SCI32: Add reg_t comparisons for graphics sortingColin Snover
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2014-02-17SCI: Adapt the segment and offset getters/setters for SCI3Filippos Karapetis
This is by no means complete, but it's a good start. It is based on an earlier discussion on the subject, and it allows us to use the highest two bits from the segment for offset addresses
2013-08-23SCI: Give more verbose error messages on arithmetic errorsFilippos Karapetis
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-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)
2011-11-29SCI: Fix restarting SCI engine with different SCI versionWillem Jan Palenstijn
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-03-03SCI: Simplified arithmetic reg_t operations, based on fingolfin's commentsmd5
- Folded all comparison operators in a single function, cmp() - Simplified the + operator, and removed the SQ1 workaround, as it's not needed anymore - Removed the workaround for uninitialized variables in the * operator - Removed division by zero workarounds in the / and % operators - Added a better description of pointerComparisonWithInteger(), based on fingolfin's description and comments. Also, changed the SCI versions where this is used to SCI0-SCI1. The SCI1.1 case in QFG3 was a script bug
2011-03-03SCI: Make some reg_t methods private resp. inlineMax Horn
2011-02-21SCI: Added a custom modulo reg_t operatormd5
This version only handles signed integers. The modulo operator was changed in SCI0 late (Iceman, and perhaps all SCI0 0.000.685 and later) so that it handles negative numbers as well. We need to see if there really is a need to keep two different modulo operators (which will only be necessary if any SCI0 game asks for the modulo of a negative number by mistake, or a number larger than 32767). Thus, error out in such a case for SCI0, so that this can be investigated properly
2011-02-19SCI: Refactored the reg_t related operations and comparisonsmd5
This refactoring reduces a lot of code duplication, allows for better control, makes the code more readable and allows us to remove a lot of now unneeded workarounds
2011-02-15SCI: Removed several redundant helper functionsmd5
Removed validate_arithmetic(), signed_validate_arithmetic(), validate_unsignedInteger() and validate_signedInteger()
2010-08-04SCI: Remove reference to common/serializer.h from vm_types.hMax Horn
svn-id: r51726
2010-07-01Support the CD kernel call (stub) and add the TRUE_REG constant.Lars Skovlund
Would be nice to use this constant in pre-existing code. svn-id: r50577
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
2009-10-02SCI: Remove PRINT_STK macro; cleanupMax Horn
svn-id: r44533
2009-10-02SCI: Make NULL_REG & SIGNAL_REG const; change validate_property so that its ↵Max Horn
callers cannot modify NULL_REG accidentally anymore svn-id: r44531
2009-09-30Added a new special reg_t, SIGNAL_REG, for signaling when an error occurs ↵Filippos Karapetis
(usually), or to signal success in some special occasions svn-id: r44505
2009-09-25Create a define for the special "signal" offset used throughout the engine, ↵Filippos Karapetis
and fixed the arbitrary 0 values from commit #44294, set when some math functions do invalid calculations svn-id: r44359
2009-09-24Changed make_reg to accept the same type of parameters as a reg_t does - ↵Filippos Karapetis
i.e. 16-bit integers, instead of 32-bit ones svn-id: r44302
2009-09-17SCI: Change SegmentId from int to uint16; consistently use segment 0 to ↵Max Horn
indicate an invalid segment svn-id: r44131
2009-06-07Replaced/removed KP_UINT, KP_SINT, SKPV and UKPV as well as the ↵Filippos Karapetis
VIEW_PRIORITY and PRIORITY_BAND_FIRST wrappers svn-id: r41338
2009-05-21Removed the PREG, PSTK, IS_NULL_REG and REG_EQ definesFilippos Karapetis
svn-id: r40767
2009-05-19SCI: Introduce a new subclass StringFrag of MemObject (does nothing right ↵Max Horn
now); switched MemObject to subclass Common::Serializable svn-id: r40714
2009-05-06SCI: Added operator== and !=, as well as an isNull method to reg_tMax Horn
svn-id: r40356
2009-05-06SCI: Added a comment (taken from a mail by Lars Skovlund) explaining SCI ↵Max Horn
string frags. Also added a 'typedef reg_t *StringFrag' for future use svn-id: r40355
2009-02-28SCI: Renamed some kernel types and general cleanupJordi Vilalta Prat
svn-id: r38961
2009-02-27SCI: Moved almost all files from include/ to other dirs; only ↵Max Horn
include/engine.h remains svn-id: r38920