aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2012-01-30 17:23:43 +0100
committerStrangerke2012-01-30 17:23:43 +0100
commitd34cf096081dd3f5b12d129e9d50172cf76e6179 (patch)
tree589418f895285ed4fed826437d2349ea9cc87923
parentc1352a1ae582a092263f37604557906ae2346bc4 (diff)
downloadscummvm-rg350-d34cf096081dd3f5b12d129e9d50172cf76e6179.tar.gz
scummvm-rg350-d34cf096081dd3f5b12d129e9d50172cf76e6179.tar.bz2
scummvm-rg350-d34cf096081dd3f5b12d129e9d50172cf76e6179.zip
TSAGE: R2R - Implement scene 525
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.cpp2
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.cpp26
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.h10
3 files changed, 38 insertions, 0 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 7fca363350..f5bbd2eee5 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -81,6 +81,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Lander Bay 2 Storage
return new Scene500();
case 525:
+ // Cutscene - Walking in hall
+ return new Scene525();
case 600:
case 700:
error("Missing scene %d from group 0", sceneNumber);
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
index 784968b5cb..dcebd3c906 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
@@ -4440,6 +4440,32 @@ void Scene500::signal() {
}
}
+
+/*--------------------------------------------------------------------------
+ * Scene 525 - Cutscene - Walking in hall
+ *
+ *--------------------------------------------------------------------------*/
+void Scene525::postInit(SceneObjectList *OwnerList) {
+ loadScene(525);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ R2_GLOBALS._sound1.play(105);
+
+ _actor1.postInit();
+ _actor1._effect = 1;
+
+ R2_GLOBALS._player.postInit();
+ R2_GLOBALS._player.animate(ANIM_MODE_1, NULL);
+ R2_GLOBALS._player.disableControl();
+
+ setAction(&_sequenceManager, this, 525, &R2_GLOBALS._player, &_actor1, NULL);
+}
+
+void Scene525::signal() {
+ R2_GLOBALS._sceneManager.changeScene(1525);
+}
+
/*--------------------------------------------------------------------------
* Scene 800 - Sick Bay
*
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.h b/engines/tsage/ringworld2/ringworld2_scenes0.h
index c7b0ecfc83..581958975d 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes0.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes0.h
@@ -521,6 +521,16 @@ public:
virtual void signal();
};
+class Scene525: public SceneExt {
+public:
+ SceneActor _actor1;
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+
+};
+
class Scene800: public SceneExt {
/* Items */
class Button: public NamedHotspot {