Skip to content

Commit

Permalink
SCUMM: fix cutscenes by reintroduction of freeze modes
Browse files Browse the repository at this point in the history
  • Loading branch information
tobigun committed Feb 11, 2012
1 parent 984c2a0 commit 91bdf9a
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions engines/scumm/script_v0.cpp
Expand Up @@ -636,14 +636,13 @@ void ScummEngine_v0::setMode(byte mode) {
_redrawSentenceLine = false;
// Note: do not change freeze state here
state = USERSTATE_SET_IFACE |
USERSTATE_SET_CURSOR |
USERSTATE_SET_FREEZE;
USERSTATE_SET_CURSOR;
break;
case kModeKeypad:
_redrawSentenceLine = false;
state = USERSTATE_SET_IFACE |
USERSTATE_SET_CURSOR | USERSTATE_CURSOR_ON |
USERSTATE_SET_FREEZE;
USERSTATE_SET_FREEZE | USERSTATE_FREEZE_ON;
break;
case kModeNormal:
case kModeNoNewKid:
Expand Down Expand Up @@ -927,12 +926,14 @@ void ScummEngine_v0::o_cutscene() {
vm.cutSceneData[0] = _currentMode;
vm.cutSceneData[2] = _currentRoom;

freezeScripts(0);
setMode(kModeCutscene);

_sentenceNum = 0;
resetSentence();

vm.cutScenePtr[0] = 0;
vm.cutSceneScript[0] = 0;
}

void ScummEngine_v0::o_endCutscene() {
Expand All @@ -946,8 +947,13 @@ void ScummEngine_v0::o_endCutscene() {

if (_currentMode == kModeKeypad) {
startScene(vm.cutSceneData[2], 0, 0);
// in contrast to the normal keypad behavior we unfreeze scripts here
unfreezeScripts();
} else {
unfreezeScripts();
actorFollowCamera(VAR(VAR_EGO));
// set mode again to have the freeze mode right
setMode(vm.cutSceneData[0]);
_redrawSentenceLine = true;
}
}
Expand Down

0 comments on commit 91bdf9a

Please sign in to comment.