[Scummvm-cvs-logs] SF.net SVN: scummvm:[54374] scummvm/trunk/engines/sci/engine/kstring.cpp
lskovlun at users.sourceforge.net
lskovlun at users.sourceforge.net
Fri Nov 19 13:52:19 CET 2010
Revision: 54374
http://scummvm.svn.sourceforge.net/scummvm/?rev=54374&view=rev
Author: lskovlun
Date: 2010-11-19 12:52:17 +0000 (Fri, 19 Nov 2010)
Log Message:
-----------
Some subfunctions changed positions in SCI3 kString. WIP.
And with this, LSL7 starts up. Yeah, baby!
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kstring.cpp
Modified: scummvm/trunk/engines/sci/engine/kstring.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kstring.cpp 2010-11-19 12:49:46 UTC (rev 54373)
+++ scummvm/trunk/engines/sci/engine/kstring.cpp 2010-11-19 12:52:17 UTC (rev 54374)
@@ -616,6 +616,15 @@
}
reg_t kString(EngineState *s, int argc, reg_t *argv) {
+
+ // TODO: Find out how exactly subfunctions work in SCI3
+ if (getSciVersion() == SCI_VERSION_3 &&
+ argv[0].toUint16() == 8)
+ argv[0].offset = 10;
+ if (getSciVersion() == SCI_VERSION_3 &&
+ argv[0].toUint16() == 11)
+ argv[0].offset = 13;
+
switch (argv[0].toUint16()) {
case 0: { // New
reg_t stringHandle;
@@ -780,9 +789,13 @@
Common::String string = s->_segMan->getString(argv[1]);
return make_reg(0, (uint16)atoi(string.c_str()));
}
- case 14: // Unknown (SCI3)
- warning("Unknown kString subop %d", argv[0].toUint16());
+ case 14: { // lower (SCI3)
+ Common::String string = s->_segMan->getString(argv[1]);
+
+ string.toLowercase();
+ s->_segMan->strcpy(argv[1], string.c_str());
return NULL_REG;
+ }
default:
error("Unknown kString subop %d", argv[0].toUint16());
}
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