aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2012-01-08 21:50:32 +0100
committerStrangerke2012-01-08 21:50:32 +0100
commit2dc3111bbefbd1233db08e1d05d5eab90e1e264d (patch)
treeac4f1efb945125c09fea6a667251dee6309b7d0c
parenta4a2878a3716dfbb3b04e6d10d68a99c55a4dd85 (diff)
downloadscummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.tar.gz
scummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.tar.bz2
scummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.zip
TSAGE: R2R - Implement scene 1525
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.cpp3
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.cpp44
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.h8
3 files changed, 54 insertions, 1 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index ee49c238ee..5eccafefdf 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -107,8 +107,11 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
case 1330:
error("Missing scene %d from group 1", sceneNumber);
case 1500:
+ // Cutscene: Ship landing
return new Scene1500();
case 1525:
+ // Cutscene - Ship
+ return new Scene1525();
case 1530:
case 1550:
case 1575:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 17422019b0..1afb1b6509 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -858,7 +858,7 @@ void Scene1100::saveCharacter(int characterIndex) {
}
/*--------------------------------------------------------------------------
- * Scene 1500 -
+ * Scene 1500 - Cutscene: Ship landing
*
*--------------------------------------------------------------------------*/
void Scene1500::postInit(SceneObjectList *OwnerList) {
@@ -1015,5 +1015,47 @@ void Scene1500::dispatch() {
Scene::dispatch();
}
+/*--------------------------------------------------------------------------
+ * Scene 1525 - Cutscene - Ship
+ *
+ *--------------------------------------------------------------------------*/
+void Scene1525::postInit(SceneObjectList *OwnerList) {
+ loadScene(1525);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ R2_GLOBALS._player.postInit();
+ if (R2_GLOBALS._sceneManager._previousScene == 525)
+ R2_GLOBALS._player.setup(1525, 1, 1);
+ else
+ R2_GLOBALS._player.setup(1525, 1, 16);
+ R2_GLOBALS._player.setPosition(Common::Point(244, 148));
+ R2_GLOBALS._player.disableControl();
+
+ _sceneMode = 0;
+ setAction(&_sequenceManager, this, 2, &R2_GLOBALS._player, NULL);
+}
+
+void Scene1525::signal() {
+ switch (_sceneMode++) {
+ case 0:
+ if (R2_GLOBALS._sceneManager._previousScene == 525)
+ setAction(&_sequenceManager, this, 1525, &R2_GLOBALS._player, NULL);
+ else
+ setAction(&_sequenceManager, this, 1526, &R2_GLOBALS._player, NULL);
+ break;
+ case 1:
+ setAction(&_sequenceManager, this, 2, &R2_GLOBALS._player, NULL);
+ break;
+ case 2:
+ if (R2_GLOBALS._sceneManager._previousScene == 1530)
+ R2_GLOBALS._sceneManager.changeScene(1550);
+ else
+ R2_GLOBALS._sceneManager.changeScene(1530);
+ default:
+ break;
+ }
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index a88451e406..4c6d3ba6dc 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -130,6 +130,14 @@ public:
virtual void signal();
virtual void dispatch();
};
+
+class Scene1525 : public SceneExt {
+public:
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE