diff options
author | Filippos Karapetis | 2007-06-20 16:36:29 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-06-20 16:36:29 +0000 |
commit | 5624ba23d0f399f2ac9bd2d143601687af64257e (patch) | |
tree | 655397f2109e79b6d816210189377b57ebee4e96 | |
parent | 8f2714cc77454ea2ecdfff00d8381608327ca662 (diff) | |
download | scummvm-rg350-5624ba23d0f399f2ac9bd2d143601687af64257e.tar.gz scummvm-rg350-5624ba23d0f399f2ac9bd2d143601687af64257e.tar.bz2 scummvm-rg350-5624ba23d0f399f2ac9bd2d143601687af64257e.zip |
Added a workaround in IHNM for the compact disk in Ellen's chapter
svn-id: r27557
-rw-r--r-- | engines/saga/actor.cpp | 16 | ||||
-rw-r--r-- | engines/saga/sfuncs.cpp | 8 |
2 files changed, 24 insertions, 0 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp index 0166759497..e0e9415cab 100644 --- a/engines/saga/actor.cpp +++ b/engines/saga/actor.cpp @@ -2287,6 +2287,22 @@ void Actor::actorSpeech(uint16 actorId, const char **strings, int stringsCount, _activeSpeech.speechBox.left -= _activeSpeech.speechBox.right - _vm->getDisplayWidth() - 10; _activeSpeech.speechBox.right = _vm->getDisplayWidth() - 10; } + + // WORKAROUND for the compact disk in Ellen's chapter + // Once Ellen starts saying that "Something is different", bring the compact disk in the + // scene. After speaking with AM, the compact disk is visible. She always says this line + // when entering room 59, after speaking with AM, if the compact disk is not picked up yet + // Check Script::sfDropObject for the other part of this workaround + if (_vm->getGameType() == GType_IHNM && _vm->_scene->currentChapterNumber() == 3 && + _vm->_scene->currentSceneNumber() == 59 && _activeSpeech.sampleResourceId == 286) { + for (i = 0; i < _objsCount; i++) { + if (_objs[i]->_id == 16385) { // the compact disk + _objs[i]->_sceneNumber = 59; + break; + } + } + } + } void Actor::nonActorSpeech(const Common::Rect &box, const char **strings, int stringsCount, int sampleResourceId, int speechFlags) { diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp index f061769643..e713326661 100644 --- a/engines/saga/sfuncs.cpp +++ b/engines/saga/sfuncs.cpp @@ -843,6 +843,14 @@ void Script::sfDropObject(SCRIPTFUNC_PARAMS) { obj->_sceneNumber = _vm->_scene->currentSceneNumber(); + // WORKAROUND for the compact disk in Ellen's chapter + // Change the scene number of the compact disk so that it's not shown. It will be shown + // once Ellen says that there's something different (i.e. after speaking with AM) + // See Actor::actorSpeech for the other part of this workaround + if (_vm->getGameType() == GType_IHNM && _vm->_scene->currentChapterNumber() == 3 && + _vm->_scene->currentSceneNumber() == 59 && obj->_id == 16385) + obj->_sceneNumber = -1; + if (_vm->getGameType() == GType_IHNM) obj->_spriteListResourceId = spriteId; else |