[Scummvm-cvs-logs] scummvm master -> 27f2b6e4dd829663f771fec0651b8a1e31514a90

bluegr md5 at scummvm.org
Thu Jun 14 11:21:47 CEST 2012


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

Summary:
0a3fb38bc7 SCI: Add handling of two more configuration settings for LSL7
21b6b81f16 SCI: A separate implementation is needed for syncStringHeap() for SCI3
9c8ff41181 SCI: Add known large SCI3 scripts
27f2b6e4dd SCI: Change the script buffer size to be a size_t as well


Commit: 0a3fb38bc728c11654810d426819853d86ae609c
    https://github.com/scummvm/scummvm/commit/0a3fb38bc728c11654810d426819853d86ae609c
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-14T02:20:37-07:00

Commit Message:
SCI: Add handling of two more configuration settings for LSL7

Changed paths:
    engines/sci/engine/kmisc.cpp



diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 47c891e..2e80764 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -388,6 +388,12 @@ reg_t kGetConfig(EngineState *s, int argc, reg_t *argv) {
 		// Used to enable the debug mode in Torin's Passage (French).
 		// If true, the debug mode is enabled.
 		s->_segMan->strcpy(data, "");
+	} else if (setting == "leakdump") {
+		// An unknown setting in LSL7. Likely used for debugging.
+		s->_segMan->strcpy(data, "");
+	} else if (setting == "startroom") {
+		// Debug setting in LSL7, specifies the room to start from.
+		s->_segMan->strcpy(data, "");
 	} else {
 		error("GetConfig: Unknown configuration setting %s", setting.c_str());
 	}


Commit: 21b6b81f16abc4af90a7e21974d51ad7a984f1ed
    https://github.com/scummvm/scummvm/commit/21b6b81f16abc4af90a7e21974d51ad7a984f1ed
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-14T02:20:39-07:00

Commit Message:
SCI: A separate implementation is needed for syncStringHeap() for SCI3

Changed paths:
    engines/sci/engine/savegame.cpp



diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 404bea7..7c41e18 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -467,7 +467,7 @@ void Script::syncStringHeap(Common::Serializer &s) {
 				break;
 		} while (1);
 
- 	} else {
+ 	} else if (getSciVersion() >= SCI_VERSION_1_1 && getSciVersion() <= SCI_VERSION_2_1){
 		// Strings in SCI1.1 come after the object instances
 		byte *buf = _heapStart + 4 + READ_SCI11ENDIAN_UINT16(_heapStart + 2) * 2;
 
@@ -477,6 +477,8 @@ void Script::syncStringHeap(Common::Serializer &s) {
 
 		// Now, sync everything till the end of the buffer
 		s.syncBytes(buf, _heapSize - (buf - _heapStart));
+	} else if (getSciVersion() == SCI_VERSION_3) {
+		warning("TODO: syncStringHeap(): Implement SCI3 variant");
 	}
 }
 


Commit: 9c8ff41181955048abd602f1d58639e2082182c7
    https://github.com/scummvm/scummvm/commit/9c8ff41181955048abd602f1d58639e2082182c7
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-14T02:20:41-07:00

Commit Message:
SCI: Add known large SCI3 scripts

Changed paths:
    engines/sci/engine/script.cpp



diff --git a/engines/sci/engine/script.cpp b/engines/sci/engine/script.cpp
index 8b26969..5f0118b 100644
--- a/engines/sci/engine/script.cpp
+++ b/engines/sci/engine/script.cpp
@@ -115,6 +115,13 @@ void Script::init(int script_nr, ResourceManager *resMan) {
 		// scheme. We need an overlaying mechanism, or a mechanism to split script parts
 		// in different segments to handle these. For now, simply stop when such a script
 		// is found.
+		//
+		// Known large SCI 3 scripts are:
+		// Lighthouse: 9, 220, 270, 351, 360, 490, 760, 765, 800
+		// LSL7: 240, 511, 550
+		// Phantasmagoria 2: none (hooray!)
+		// RAMA: 70
+		//
 		// TODO: Remove this once such a mechanism is in place
 		if (script->size > 65535)
 			error("TODO: SCI script %d is over 64KB - it's %d bytes long. This can't "


Commit: 27f2b6e4dd829663f771fec0651b8a1e31514a90
    https://github.com/scummvm/scummvm/commit/27f2b6e4dd829663f771fec0651b8a1e31514a90
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-14T02:20:43-07:00

Commit Message:
SCI: Change the script buffer size to be a size_t as well

This will be needed in the future to load large SCI3 scripts

Changed paths:
    engines/sci/engine/script.h



diff --git a/engines/sci/engine/script.h b/engines/sci/engine/script.h
index 1ebae3b..a180579 100644
--- a/engines/sci/engine/script.h
+++ b/engines/sci/engine/script.h
@@ -57,7 +57,7 @@ private:
 	int _lockers; /**< Number of classes and objects that require this script */
 	size_t _scriptSize;
 	size_t _heapSize;
-	uint16 _bufSize;
+	size_t _bufSize;
 
 	const uint16 *_exportTable; /**< Abs. offset of the export table or 0 if not present */
 	uint16 _numExports; /**< Number of entries in the exports table */






More information about the Scummvm-git-logs mailing list