[Scummvm-cvs-logs] scummvm master -> 9dd61883f01882ad6e06b3f0c76bc40cfc636a2d

m-kiewitz m_kiewitz at users.sourceforge.net
Fri Jun 12 17:21:04 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9dd61883f0 SHERLOCK: 3DO: object load found ActionTypes


Commit: 9dd61883f01882ad6e06b3f0c76bc40cfc636a2d
    https://github.com/scummvm/scummvm/commit/9dd61883f01882ad6e06b3f0c76bc40cfc636a2d
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-06-12T17:20:56+02:00

Commit Message:
SHERLOCK: 3DO: object load found ActionTypes

Changed paths:
    engines/sherlock/objects.cpp



diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp
index ab17634..f1c1117 100644
--- a/engines/sherlock/objects.cpp
+++ b/engines/sherlock/objects.cpp
@@ -695,11 +695,11 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
 		for (int idx = 0; idx < 4; ++idx)
 			_use[idx].load(s, false);
 	}
-	//warning("object %s, defCmd %d", _name.c_str(), _defaultCommand);
+	//warning("object %s, aMove %d", _name.c_str(), _aClose._cAnimNum);
 }
 
 void Object::load3DO(Common::SeekableReadStream &s) {
-	int32 streamPos = s.pos();
+	int32 streamStartPos = s.pos();
 	char buffer[41];
 
 	_examine.clear();
@@ -709,6 +709,7 @@ void Object::load3DO(Common::SeekableReadStream &s) {
 
 	// on 3DO all of this data is reordered!!!
 	// it seems that possibly the 3DO compiler reordered the global struct
+	// 3DO size for 1 object is 588 bytes
 	s.skip(4);
 	_sequenceOffset = s.readUint16LE(); // weird that this seems to be LE
 	s.seek(10, SEEK_CUR);
@@ -750,22 +751,21 @@ void Object::load3DO(Common::SeekableReadStream &s) {
 	_descOffset = s.readUint16BE();
 	_seqSize = s.readUint16BE();
 
-	s.skip(446); // Unknown
+	s.skip(288); // Unknown
+	// 158 bytes
+	_aOpen.load(s); // 2 + 12*4 bytes = 50 bytes
+	s.skip(2); // Filler
+	s.skip(2); // Boundary filler
+	_aClose.load(s);
+	s.skip(2); // Filler
+	_aMove.load(s);
+	s.skip(2); // Filler
 
 	// missing:
-	// _aOpen.load(s);
-	// _aClose.load(s);
-	//  s.skip(1);
-	//  _aMove.load(s);
-	//  s.skip(8);
 	// for (int idx = 0; idx < 4; ++idx)
 	//  _use[idx].load(s, false);
 
 #if 0
-	s.skip(1);
-	_aMove.load(s);
-	s.skip(8);
-
 	for (int idx = 0; idx < 4; ++idx)
 		_use[idx].load(s, false);
 #endif
@@ -809,6 +809,8 @@ void Object::load3DO(Common::SeekableReadStream &s) {
 	//warning("object %s, offset %d", _name.c_str(), streamPos);
 	//warning("object %s, lookPosX %d, lookPosY %d", _name.c_str(), _lookPosition.x, _lookPosition.y);
 	//warning("object %s, defCmd %d", _name.c_str(), _defaultCommand);
+	int32 dataSize = s.pos() - streamStartPos;
+	assert(dataSize == 588);
 }
 
 void Object::toggleHidden() {






More information about the Scummvm-git-logs mailing list