[Scummvm-cvs-logs] scummvm master -> 17a02395234f8ff6af581b4e81065ecb0fa21b79

m-kiewitz m_kiewitz at users.sourceforge.net
Sat Jun 13 13:21:10 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:
17a0239523 SHERLOCK: 3DO: room loading: load exits


Commit: 17a02395234f8ff6af581b4e81065ecb0fa21b79
    https://github.com/scummvm/scummvm/commit/17a02395234f8ff6af581b4e81065ecb0fa21b79
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-06-13T13:21:00+02:00

Commit Message:
SHERLOCK: 3DO: room loading: load exits

Changed paths:
    engines/sherlock/scene.cpp
    engines/sherlock/scene.h



diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index 15464f5..7fd423e 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -122,6 +122,23 @@ void Exit::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
 		_allow = s.readSint16LE();
 }
 
+void Exit::load3DO(Common::SeekableReadStream &s) {
+	left = s.readSint16BE();
+	top = s.readSint16BE();
+	setWidth(s.readUint16BE());
+	setHeight(s.readUint16BE());
+
+	_image = 0;
+	_scene = s.readSint16BE();
+
+	_allow = s.readSint16BE();
+
+	_newPosition.x = s.readSint16BE();
+	_newPosition.y = s.readSint16BE();
+	_newFacing = s.readUint16BE();
+	s.skip(2); // Filler
+}
+
 /*----------------------------------------------------------------*/
 
 void SceneEntry::load(Common::SeekableReadStream &s) {
@@ -768,11 +785,13 @@ bool Scene::loadScene(const Common::String &filename) {
 		roomStream->read(&_walkData[0], header3DO_walkData_size);
 
 		// === EXITS === Read in the exits
+		int exitsCount = header3DO_exits_size / 20;
+
 		_exitZone = -1;
-		_exits.resize(header3DO_exits_size); // TODO!!!!
+		_exits.resize(exitsCount);
 
-		//for (int idx = 0; idx < numExits; ++idx)
-		//	_exits[idx].load(*rrmStream, IS_ROSE_TATTOO);
+		for (int idx = 0; idx < exitsCount; ++idx)
+			_exits[idx].load3DO(*roomStream);
 
 		// === ENTRANCE === Read in the entrance
 		roomStream->seek(header3DO_entranceData_offset);
diff --git a/engines/sherlock/scene.h b/engines/sherlock/scene.h
index 8c42865..98b2990 100644
--- a/engines/sherlock/scene.h
+++ b/engines/sherlock/scene.h
@@ -89,6 +89,7 @@ public:
 	 * Load the data for the object
 	 */
 	void load(Common::SeekableReadStream &s, bool isRoseTattoo);
+	void load3DO(Common::SeekableReadStream &s);
 };
 
 struct SceneEntry {






More information about the Scummvm-git-logs mailing list