diff options
author | Paul Gilbert | 2011-12-13 20:49:42 +1100 |
---|---|---|
committer | Paul Gilbert | 2011-12-13 20:49:42 +1100 |
commit | a1dfacb4c9df35928372db4472dba117e72e2590 (patch) | |
tree | f6958d874d1626bceca1fa28f69bebdd4f9a3e80 | |
parent | fb66ae3698f75ccfd7ac541b85e1646596fca968 (diff) | |
download | scummvm-rg350-a1dfacb4c9df35928372db4472dba117e72e2590.tar.gz scummvm-rg350-a1dfacb4c9df35928372db4472dba117e72e2590.tar.bz2 scummvm-rg350-a1dfacb4c9df35928372db4472dba117e72e2590.zip |
TSAGE: Implement missing doorway code in R2R scene 300
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.cpp | 20 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.h | 7 |
2 files changed, 25 insertions, 2 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index 214853ce86..4a0443e798 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -1707,6 +1707,25 @@ bool Scene300::Quinn::startAction(CursorType action, Event &event) { } } +bool Scene300::Doorway::startAction(CursorType action, Event &event) { + Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene; + + if (action == CURSOR_USE) { + if ((R2_GLOBALS._player._characterIndex == R2_QUINN) && + (!R2_GLOBALS.getFlag(44) || R2_GLOBALS._player._characterScene[R2_MIRANDA] == 500)) { + R2_GLOBALS._player.disableControl(); + scene->_sceneMode = 301; + scene->setAction(&scene->_sequenceManager1, scene, 301, &R2_GLOBALS._player, this, NULL); + } else { + SceneItem::display2(300, 45); + } + + return true; + } else { + return SceneActor::startAction(action, event); + } +} + /*--------------------------------------------------------------------------*/ Scene300::Scene300(): SceneExt() { @@ -1769,7 +1788,6 @@ void Scene300::postInit(SceneObjectList *OwnerList) { _object4.postInit(); _object4.setup(300, 5, 1); _object4.setPosition(Common::Point(236, 48)); - _object4.animate(ANIM_MODE_2, NULL); _protocolDisplay.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.h b/engines/tsage/ringworld2/ringworld2_scenes0.h index 834b91c01c..be07a4064b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.h +++ b/engines/tsage/ringworld2/ringworld2_scenes0.h @@ -240,6 +240,10 @@ class Scene300: public SceneExt { public: virtual bool startAction(CursorType action, Event &event); }; + class Doorway: public SceneActor { + public: + virtual bool startAction(CursorType action, Event &event); + }; public: SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3, _sequenceManager4; ASoundExt _sound1; @@ -258,7 +262,8 @@ public: MirandaWorkstation _mirandaWorkstation1, _mirandaWorkstation2; SceneActor _object1, _object2, _object3, _object4, _protocolDisplay; SceneActor _object6, _object7, _object8, _object9; - SceneActor _teal, _soldier, _object12, _doorway; + SceneActor _teal, _soldier, _object12; + Doorway _doorway; Miranda _miranda; Seeker _seeker; Quinn _quinn; |