[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