diff options
Diffstat (limited to 'engines/sci/engine/vm.cpp')
-rw-r--r-- | engines/sci/engine/vm.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index 2f1221bec3..099fabff16 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -664,8 +664,18 @@ static void logKernelCall(const KernelFunction *kernelCall, EngineState *s, int printf(" (%s)", s->_segMan->getObjectName(argv[parmNr])); break; case SIG_TYPE_REFERENCE: - printf(" ('%s')", s->_segMan->getString(argv[parmNr]).c_str()); - break; + if (kernelCall->function == kSaid) { + SegmentRef saidSpec = s->_segMan->dereference(argv[parmNr]); + if (saidSpec.isRaw) { + printf(" ('"); + g_sci->getVocabulary()->debugDecipherSaidBlock(saidSpec.raw); + printf("')"); + } else { + printf(" (non-raw said-spec)"); + } + } else { + printf(" ('%s')", s->_segMan->getString(argv[parmNr]).c_str()); + } default: break; } |