aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-12-13 20:49:42 +1100
committerPaul Gilbert2011-12-13 20:49:42 +1100
commita1dfacb4c9df35928372db4472dba117e72e2590 (patch)
treef6958d874d1626bceca1fa28f69bebdd4f9a3e80
parentfb66ae3698f75ccfd7ac541b85e1646596fca968 (diff)
downloadscummvm-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.cpp20
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.h7
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;