diff options
author | Paul Gilbert | 2011-04-30 19:46:40 +1000 |
---|---|---|
committer | Paul Gilbert | 2011-04-30 19:47:26 +1000 |
commit | 6abcefb679a1ac72fcf772abc1791febeb9274a4 (patch) | |
tree | 3dba7886daccef4deaed43281ab524bcad69d959 | |
parent | 712c3bc201de28dc202c0c4141c9ac3223293086 (diff) | |
download | scummvm-rg350-6abcefb679a1ac72fcf772abc1791febeb9274a4.tar.gz scummvm-rg350-6abcefb679a1ac72fcf772abc1791febeb9274a4.tar.bz2 scummvm-rg350-6abcefb679a1ac72fcf772abc1791febeb9274a4.zip |
TSAGE: Bugfixes for stool in Scene #7700
-rw-r--r-- | engines/tsage/ringworld_scenes8.cpp | 22 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes8.h | 1 |
2 files changed, 16 insertions, 7 deletions
diff --git a/engines/tsage/ringworld_scenes8.cpp b/engines/tsage/ringworld_scenes8.cpp index 3a469bebae..e251199b1d 100644 --- a/engines/tsage/ringworld_scenes8.cpp +++ b/engines/tsage/ringworld_scenes8.cpp @@ -31,6 +31,12 @@ namespace tSage { +void NamedHotspotMult::synchronise(Serialiser &s) { + SceneHotspot::synchronise(s); + s.syncAsSint16LE(_useLineNum); + s.syncAsSint16LE(_lookLineNum); +} + /*-------------------------------------------------------------------------- * Scene 7000 * @@ -2049,10 +2055,10 @@ void Scene7700::Object8::doAction(int action) { scene->_gfxButton.draw(); scene->_gfxButton._bounds.expandPanes(); - _globals->_sceneItems.push_front(&scene->_object10); + _globals->_sceneItems.push_front(&scene->_sceneItem10); _globals->_sceneItems.push_front(&scene->_object9); _globals->_player._canWalk = false; - } else { + } else if (_globals->getFlag(78)) { scene->_object15.postInit(); scene->_object15.setVisage(7701); scene->_object15.setPosition(Common::Point(140, 165), 0); @@ -2068,11 +2074,13 @@ void Scene7700::Object8::doAction(int action) { scene->_object19.setStrip(6); scene->_object19.setPosition(Common::Point(140, 192), 0); - _globals->_sceneItems.push_front(&scene->_object10); - _globals->_sceneItems.push_front(&scene->_object8); - _globals->_sceneItems.push_front(&scene->_object9); + _globals->_sceneItems.push_front(&scene->_sceneItem10); + _globals->_sceneItems.push_front(&scene->_sceneHotspot8); + _globals->_sceneItems.push_front(&scene->_sceneHotspot9); _globals->_events.setCursor(CURSOR_WALK); _globals->_player._canWalk = false; + } else { + scene->setAction(&scene->_sequenceManager, scene, 7715, NULL); } } else { SceneHotspot::doAction(action); @@ -2242,8 +2250,8 @@ void Scene7700::process(Event &event) { if (contains<SceneItem *>(_globals->_sceneItems, &_sceneItem10)) { if (_gfxButton.process(event)) { _sceneItem10.remove(); - _sceneHotspot15.remove(); - _sceneHotspot9.remove(); + _object15.remove(); + _object9.remove(); if (_globals->_sceneObjects->contains(&_object10)) _object10.remove(); if (_globals->_sceneObjects->contains(&_object14)) diff --git a/engines/tsage/ringworld_scenes8.h b/engines/tsage/ringworld_scenes8.h index 0c39920614..0fac216dd2 100644 --- a/engines/tsage/ringworld_scenes8.h +++ b/engines/tsage/ringworld_scenes8.h @@ -41,6 +41,7 @@ public: NamedHotspotMult() : SceneHotspot() {} virtual Common::String getClassName() { return "NamedHotspotMult"; } + virtual void synchronise(Serialiser &s); }; class SceneObject7700 : public SceneObjectExt { |