From b2966f3fc8b7bbf429373d9988ea1280660dc33b Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Sat, 30 Sep 2017 00:03:05 -0500 Subject: SCI32: Fix support for RAMA demo Fixes Trac#10251. --- engines/sci/engine/klists.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'engines/sci/engine/klists.cpp') diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp index 2ca5a65fc0..330b78b2b2 100644 --- a/engines/sci/engine/klists.cpp +++ b/engines/sci/engine/klists.cpp @@ -835,6 +835,10 @@ reg_t kArrayGetSize(EngineState *s, int argc, reg_t *argv) { } reg_t kArrayGetElement(EngineState *s, int argc, reg_t *argv) { + if (getSciVersion() == SCI_VERSION_2_1_LATE) { + return kStringGetChar(s, argc, argv); + } + SciArray &array = *s->_segMan->lookupArray(argv[0]); return array.getAsID(argv[1].toUint16()); } @@ -846,6 +850,10 @@ reg_t kArraySetElements(EngineState *s, int argc, reg_t *argv) { } reg_t kArrayFree(EngineState *s, int argc, reg_t *argv) { + if (getSciVersion() == SCI_VERSION_2_1_LATE && !s->_segMan->isValidAddr(argv[0], SEG_TYPE_ARRAY)) { + return s->r_acc; + } + s->_segMan->freeArray(argv[0]); return s->r_acc; } -- cgit v1.2.3