aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/kscripts.cpp6
-rw-r--r--engines/sci/engine/segment.h7
-rw-r--r--engines/sci/engine/vm.cpp4
3 files changed, 1 insertions, 16 deletions
diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp
index f9ec052d0f..e868a58836 100644
--- a/engines/sci/engine/kscripts.cpp
+++ b/engines/sci/engine/kscripts.cpp
@@ -218,12 +218,6 @@ reg_t kDisposeScript(EngineState *s, int, int argc, reg_t *argv) {
if (scr) {
if (s->_executionStack.back().addr.pc.segment != id)
scr->setLockers(1);
-
- // HACK for EcoQuest CD
- if (s->_gameName == "ecoquest" && script == 821) {
- warning("kDisposeScript hack for EcoQuest 1 CD: not disposing script 821");
- scr->setLockers(2);
- }
}
script_uninstantiate(s->segMan, script);
diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h
index a93aaa1f69..d88c0dac17 100644
--- a/engines/sci/engine/segment.h
+++ b/engines/sci/engine/segment.h
@@ -433,13 +433,6 @@ public:
}
/**
- * Marks the script as not deleted.
- */
- void unmarkDeleted() {
- _markedAsDeleted = false;
- }
-
- /**
* Determines whether the script is marked as being deleted.
*/
bool isMarkedAsDeleted() const {
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp
index 78f2d24a1c..d5188665f6 100644
--- a/engines/sci/engine/vm.cpp
+++ b/engines/sci/engine/vm.cpp
@@ -208,10 +208,8 @@ ExecStack *execute_method(EngineState *s, uint16 script, uint16 pubfunct, StackP
int seg = s->segMan->getScriptSegment(script);
Script *scr = s->segMan->getScriptIfLoaded(seg);
- if (!scr) // Script not present yet?
+ if (!scr || scr->isMarkedAsDeleted()) // Script not present yet?
seg = script_instantiate(s->resMan, s->segMan, script);
- else
- scr->unmarkDeleted();
const int temp = s->segMan->validateExportFunc(pubfunct, seg);
if (!temp) {