diff options
author | Filippos Karapetis | 2010-12-07 00:47:05 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-12-07 00:47:05 +0000 |
commit | de2ef2edc0ea277b4ea5db77a109199c18ff0dae (patch) | |
tree | 583d3d52482f25534487de0e8c38f2996dfef75d /engines/sci/engine/klists.cpp | |
parent | 8ca0b867e0f5127cf192b7cb7a7c12216a9545a4 (diff) | |
download | scummvm-rg350-de2ef2edc0ea277b4ea5db77a109199c18ff0dae.tar.gz scummvm-rg350-de2ef2edc0ea277b4ea5db77a109199c18ff0dae.tar.bz2 scummvm-rg350-de2ef2edc0ea277b4ea5db77a109199c18ff0dae.zip |
SCI: Removed the system strings code and replaced it with a much more simplified version, thus greatly simplifying handling of system strings
svn-id: r54805
Diffstat (limited to 'engines/sci/engine/klists.cpp')
-rw-r--r-- | engines/sci/engine/klists.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp index 329e5cd531..f1b7195b36 100644 --- a/engines/sci/engine/klists.cpp +++ b/engines/sci/engine/klists.cpp @@ -635,10 +635,18 @@ reg_t kArray(EngineState *s, int argc, reg_t *argv) { return kString(s, argc, argv); } else { if (s->_segMan->getSegmentType(argv[1].segment) == SEG_TYPE_STRING || - s->_segMan->getSegmentType(argv[1].segment) == SEG_TYPE_SYS_STRINGS || s->_segMan->getSegmentType(argv[1].segment) == SEG_TYPE_SCRIPT) { return kString(s, argc, argv); } + +#if 0 + if (op == 6) { + if (s->_segMan->getSegmentType(argv[3].segment) == SEG_TYPE_STRING || + s->_segMan->getSegmentType(argv[3].segment) == SEG_TYPE_SCRIPT) { + return kString(s, argc, argv); + } + } +#endif } switch (op) { @@ -694,11 +702,16 @@ reg_t kArray(EngineState *s, int argc, reg_t *argv) { return argv[1]; } case 6: { // Cpy +#if 0 if (argv[1].isNull() || argv[3].isNull()) { warning("kArray(Cpy): Request to copy from or to a null pointer"); return NULL_REG; } +#endif + + reg_t arrayHandle = argv[1]; SciArray<reg_t> *array1 = s->_segMan->lookupArray(argv[1]); + //SciArray<reg_t> *array1 = !argv[1].isNull() ? s->_segMan->lookupArray(argv[1]) : s->_segMan->allocateArray(&arrayHandle); SciArray<reg_t> *array2 = s->_segMan->lookupArray(argv[3]); uint32 index1 = argv[2].toUint16(); uint32 index2 = argv[4].toUint16(); @@ -716,7 +729,7 @@ reg_t kArray(EngineState *s, int argc, reg_t *argv) { for (uint16 i = 0; i < count; i++) array1->setValue(i + index1, array2->getValue(i + index2)); - return argv[1]; + return arrayHandle; } case 7: // Cmp // Not implemented in SSCI |