aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2007-06-20 16:36:29 +0000
committerFilippos Karapetis2007-06-20 16:36:29 +0000
commit5624ba23d0f399f2ac9bd2d143601687af64257e (patch)
tree655397f2109e79b6d816210189377b57ebee4e96 /engines
parent8f2714cc77454ea2ecdfff00d8381608327ca662 (diff)
downloadscummvm-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
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/actor.cpp16
-rw-r--r--engines/saga/sfuncs.cpp8
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