diff options
author | James Brown | 2002-04-06 01:14:42 +0000 |
---|---|---|
committer | James Brown | 2002-04-06 01:14:42 +0000 |
commit | fb0cb665888c4d59ff9f973def998ebe532c4b76 (patch) | |
tree | e88d87ba86db739b9b1eff9050ab34badfe224f0 /script.cpp | |
parent | 933df055c95452aeddc82fd9119838b0b45e1f88 (diff) | |
download | scummvm-rg350-fb0cb665888c4d59ff9f973def998ebe532c4b76.tar.gz scummvm-rg350-fb0cb665888c4d59ff9f973def998ebe532c4b76.tar.bz2 scummvm-rg350-fb0cb665888c4d59ff9f973def998ebe532c4b76.zip |
Hopefully fix these cutscene bugs for good.
svn-id: r3879
Diffstat (limited to 'script.cpp')
-rw-r--r-- | script.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/script.cpp b/script.cpp index 359f70ddbc..342c1ffff8 100644 --- a/script.cpp +++ b/script.cpp @@ -756,16 +756,15 @@ void Scumm::endCutscene() { int16 args[16]; memset(args, 0, sizeof(args)); - if (ss->cutsceneOverride < 1) - return; + + if (ss->cutsceneOverride > 0) // Only terminate if active + ss->cutsceneOverride--; - ss->cutsceneOverride--; - printf("Ending cs(%d) from %d\n", ss->cutsceneOverride, _currentScript); args[0] = vm.cutSceneData[vm.cutSceneStackPointer]; _vars[VAR_OVERRIDE] = 0; csptr = &vm.cutScenePtr[vm.cutSceneStackPointer]; - if (*csptr) + if (*csptr && (ss->cutsceneOverride > 0)) // Only terminate if active ss->cutsceneOverride--; vm.cutSceneScript[vm.cutSceneStackPointer] = 0; @@ -779,7 +778,7 @@ void Scumm::endCutscene() { void Scumm::cutscene(int16 *args) { int scr = _currentScript; vm.slot[scr].cutsceneOverride++; - printf("Starting cs(%d) from %d\n", vm.slot[scr].cutsceneOverride, _currentScript); + if (++vm.cutSceneStackPointer > sizeof(vm.cutSceneData)/sizeof(vm.cutSceneData[0])) error("Cutscene stack overflow"); |