aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script.cpp5
-rw-r--r--scumm/scummvm.cpp18
2 files changed, 12 insertions, 11 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp
index 9cbde710bc..cfe6efecf4 100644
--- a/scumm/script.cpp
+++ b/scumm/script.cpp
@@ -752,11 +752,12 @@ void Scumm::killScriptsAndResources() {
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
if (ss->where == WIO_ROOM || ss->where == WIO_FLOBJECT) {
- if (ss->cutsceneOverride)
+ if (ss->cutsceneOverride != 0)
error("Object %d stopped with active cutscene/override in exit", ss->number);
ss->status = ssDead;
} else if (ss->where == WIO_LOCAL) {
- if (ss->cutsceneOverride)
+ // HACK to make Indy3 Demo work
+ if (ss->cutsceneOverride != 0 && !(_gameId == GID_INDY3 && _roomResource == 3))
error("Script %d stopped with active cutscene/override in exit", ss->number);
ss->status = ssDead;
}
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index 9275fd52ae..e14ab5c4dd 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -730,17 +730,17 @@ void Scumm::startScene(int room, Actor * a, int objectNr) {
fadeOut(_switchRoomEffect2);
_newEffect = _switchRoomEffect;
+ ScriptSlot *ss = &vm.slot[_currentScript];
+
if (_currentScript != 0xFF) {
- if (vm.slot[_currentScript].where == WIO_ROOM ||
- vm.slot[_currentScript].where == WIO_FLOBJECT) {
- if (vm.slot[_currentScript].cutsceneOverride != 0)
- error("Object %d stopped with active cutscene/override in exit",
- vm.slot[_currentScript].number);
+ if (ss->where == WIO_ROOM || ss->where == WIO_FLOBJECT) {
+ if (ss->cutsceneOverride != 0)
+ error("Object %d stopped with active cutscene/override in exit", ss->number);
_currentScript = 0xFF;
- } else if (vm.slot[_currentScript].where == WIO_LOCAL) {
- if (vm.slot[_currentScript].cutsceneOverride != 0)
- error("Script %d stopped with active cutscene/override in exit",
- vm.slot[_currentScript].number);
+ } else if (ss->where == WIO_LOCAL) {
+ // HACK to make Indy3 Demo work
+ if (ss->cutsceneOverride != 0 && !(_gameId == GID_INDY3 && _roomResource == 3))
+ error("Script %d stopped with active cutscene/override in exit", ss->number);
_currentScript = 0xFF;
}
}