[Scummvm-cvs-logs] SF.net SVN: scummvm:[54351] scummvm/trunk/engines/sci/engine

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Thu Nov 18 23:27:56 CET 2010


Revision: 54351
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54351&view=rev
Author:   thebluegr
Date:     2010-11-18 22:27:56 +0000 (Thu, 18 Nov 2010)

Log Message:
-----------
SCI: Added species selector functionality for SCI3

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/segment.cpp
    scummvm/trunk/engines/sci/engine/segment.h

Modified: scummvm/trunk/engines/sci/engine/segment.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/segment.cpp	2010-11-18 22:26:58 UTC (rev 54350)
+++ scummvm/trunk/engines/sci/engine/segment.cpp	2010-11-18 22:27:56 UTC (rev 54351)
@@ -399,7 +399,7 @@
 			for (uint i = 0; i < _variables.size(); i++)
 				_variables[i] = make_reg(0, READ_SCI11ENDIAN_UINT16(data + (i * 2)));
 		} else {
-			infoSelectorSci3 = make_reg(0, READ_SCI11ENDIAN_UINT16(_baseObj + 10));
+			_infoSelectorSci3 = make_reg(0, READ_SCI11ENDIAN_UINT16(_baseObj + 10));
 		}
 	}
 }
@@ -581,6 +581,7 @@
 		}
 	}
 
+	_speciesSelectorSci3 = make_reg(0, READ_SCI11ENDIAN_UINT16(_baseObj + 4));
 	_superClassPosSci3 = make_reg(0, READ_SCI11ENDIAN_UINT16(_baseObj + 8));
 
 	_baseVars = propertyIds;

Modified: scummvm/trunk/engines/sci/engine/segment.h
===================================================================
--- scummvm/trunk/engines/sci/engine/segment.h	2010-11-18 22:26:58 UTC (rev 54350)
+++ scummvm/trunk/engines/sci/engine/segment.h	2010-11-18 22:27:56 UTC (rev 54351)
@@ -242,14 +242,14 @@
 		if (getSciVersion() <= SCI_VERSION_2_1) 
 			return _variables[_offset];
 		else	// SCI3
-			return make_reg(0, READ_SCI11ENDIAN_UINT16(_baseObj + 4));
+			return _speciesSelectorSci3;
 	}
 
 	void setSpeciesSelector(reg_t value) {
 		if (getSciVersion() <= SCI_VERSION_2_1)
 			_variables[_offset] = value;
 		else	// SCI3
-			warning("TODO: setSpeciesSelector called for SCI3");
+			_speciesSelectorSci3 = value;
 	}
 
 	reg_t getSuperClassSelector() const {
@@ -270,14 +270,14 @@
 		if (getSciVersion() <= SCI_VERSION_2_1)
 			return _variables[_offset + 2];
 		else	// SCI3
-			return infoSelectorSci3;
+			return _infoSelectorSci3;
 	}
 
 	void setInfoSelector(reg_t info) {
 		if (getSciVersion() <= SCI_VERSION_2_1)
 			_variables[_offset + 2] = info;
 		else	// SCI3
-			infoSelectorSci3 = info;
+			_infoSelectorSci3 = info;
 	}
 
 	// No setter for the -info- selector
@@ -406,7 +406,8 @@
 	uint16 _offset;
 	reg_t _pos; /**< Object offset within its script; for clones, this is their base */
 	reg_t _superClassPosSci3; /**< reg_t pointing to superclass for SCI3 */
-	reg_t infoSelectorSci3; /**< reg_t containing info "selector" for SCI3 */
+	reg_t _speciesSelectorSci3;	/**< reg_t containing species "selector" for SCI3 */
+	reg_t _infoSelectorSci3; /**< reg_t containing info "selector" for SCI3 */
 };
 
 /** Data stack */


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list