From 4823f41b15ef8ef5a67c945672c74bf3c016e424 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Mon, 3 Oct 2005 10:01:09 +0000 Subject: Experimental IHNM fix: Since it looks like the intro doesn't clear the cutaway explicitly, perhaps it's done implicitly by sfScriptGotoScene instead? svn-id: r18927 --- saga/animation.cpp | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'saga/animation.cpp') diff --git a/saga/animation.cpp b/saga/animation.cpp index dc3b8e323f..2ac8d27bfe 100644 --- a/saga/animation.cpp +++ b/saga/animation.cpp @@ -159,32 +159,41 @@ void Anim::endCutaway(void) { } void Anim::returnFromCutaway(void) { - // I believe this is called by scripts after running a series of - // cutaways. + // I believe this is called by scripts after running a cutaway to + // ensure that we return to the scene as if nothing had happened. It's + // not called by the IHNM intro, presumably because there is no old + // scene to return to. debug(0, "returnFromCutaway()"); if (_cutawayActive) { - int i; + // Note that clearCutaway() sets _cutawayActive to false. + clearCutaway(); - _cutawayActive = false; + // TODO: Handle fade up, if we previously faded down - for (i = 0; i < ARRAYSIZE(_cutawayAnimations); i++) { - delete _cutawayAnimations[i]; - _cutawayAnimations[i] = NULL; - } + // TODO: Restore the scene + + // TODO: Restore the animations - for (i = 0; i < MAX_ANIMATIONS; i++) { + for (int i = 0; i < MAX_ANIMATIONS; i++) { if (_animations[i] && _animations[i]->state == ANIM_PLAYING) { resume(i, 0); } } + } +} - // TODO: Handle fade up, if we previously faded down +void Anim::clearCutaway(void) { + debug(0, "clearCutaway()\n"); - // TODO: Restore the scene + if (_cutawayActive) { + _cutawayActive = false; - // TODO: Restore the animations + for (int i = 0; i < ARRAYSIZE(_cutawayAnimations); i++) { + delete _cutawayAnimations[i]; + _cutawayAnimations[i] = NULL; + } _vm->_gfx->showCursor(true); } -- cgit v1.2.3