diff options
Diffstat (limited to 'engines/sci/engine/vm.cpp')
-rw-r--r-- | engines/sci/engine/vm.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index 913c4a0c66..e2ee2e1971 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -258,10 +258,12 @@ ExecStack *execute_method(EngineState *s, uint16 script, uint16 pubfunct, StackP int seg = s->_segMan->getScriptSegment(script); Script *scr = s->_segMan->getScriptIfLoaded(seg); - if (!scr || scr->isMarkedAsDeleted()) // Script not present yet? + if (!scr || scr->isMarkedAsDeleted()) { // Script not present yet? seg = script_instantiate(g_sci->getResMan(), s->_segMan, script); + scr = s->_segMan->getScript(seg); + } - const int temp = s->_segMan->validateExportFunc(pubfunct, seg); + const int temp = scr->validateExportFunc(pubfunct); if (!temp) { #ifdef ENABLE_SCI32 // HACK: Temporarily switch to a warning in SCI32 games until we can figure out why Torin has |