aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-04-30 19:46:40 +1000
committerPaul Gilbert2011-04-30 19:47:26 +1000
commit6abcefb679a1ac72fcf772abc1791febeb9274a4 (patch)
tree3dba7886daccef4deaed43281ab524bcad69d959
parent712c3bc201de28dc202c0c4141c9ac3223293086 (diff)
downloadscummvm-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.cpp22
-rw-r--r--engines/tsage/ringworld_scenes8.h1
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 {