diff options
| author | Max Horn | 2002-12-25 20:29:40 +0000 |
|---|---|---|
| committer | Max Horn | 2002-12-25 20:29:40 +0000 |
| commit | 9187172fe2f771b1d2036b231170446008631a98 (patch) | |
| tree | 539578951e261b769f42d4e13873fa28bdfcd2dc | |
| parent | aed55eff698f8e67ec3e5307cb02fdd33bcb1fe4 (diff) | |
| download | scummvm-rg350-9187172fe2f771b1d2036b231170446008631a98.tar.gz scummvm-rg350-9187172fe2f771b1d2036b231170446008631a98.tar.bz2 scummvm-rg350-9187172fe2f771b1d2036b231170446008631a98.zip | |
implemented V8 kernel function 'killAllScriptsButMe' - not sure if I did it right, though
svn-id: r6145
| -rw-r--r-- | scumm/script.cpp | 8 | ||||
| -rw-r--r-- | scumm/script_v8.cpp | 1 | ||||
| -rw-r--r-- | scumm/scumm.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp index 2613acc3b1..1c161732b2 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -748,6 +748,14 @@ void Scumm::killScriptsAndResources() } } +void Scumm::killAllScriptsExceptCurrent() +{ + for (int i = 1; i < NUM_SCRIPT_SLOT; i++) { + if (i != _currentScript) + vm.slot[i].status = ssDead; + } +} + void Scumm::checkAndRunSentenceScript() { int i; diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index 37f45a83eb..f3cc78e95d 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1239,6 +1239,7 @@ void Scumm_v8::o6_kernelSetFunctions() break; case 30: // killAllScriptsButMe warning("o6_kernelSetFunctions: killAllScriptsButMe()"); + killAllScriptsExceptCurrent(); break; case 31: // stopAllVideo warning("o6_kernelSetFunctions: stopAllVideo()"); diff --git a/scumm/scumm.h b/scumm/scumm.h index 0045ab11e7..1414ad16f2 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -506,6 +506,7 @@ public: void beginOverride(); void endOverride(); + void killAllScriptsExceptCurrent(); void killScriptsAndResources(); void checkAndRunSentenceScript(); void decreaseScriptDelay(int amount); |
