aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorPaul Gilbert2011-10-02 19:43:20 +1100
committerPaul Gilbert2011-10-02 19:43:20 +1100
commitedd1ebb8204fbdfcfd65f00e182dc604e3c38998 (patch)
treea8df9c663b13b5d67dea48e603d858f2971e8fe8 /engines/tsage
parentaeedbeebb2ff105e2a73637e56c73aa043d18b05 (diff)
downloadscummvm-rg350-edd1ebb8204fbdfcfd65f00e182dc604e3c38998.tar.gz
scummvm-rg350-edd1ebb8204fbdfcfd65f00e182dc604e3c38998.tar.bz2
scummvm-rg350-edd1ebb8204fbdfcfd65f00e182dc604e3c38998.zip
TSAGE: Implemented Blue Force scene 200
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/blue_force/blueforce_logic.cpp3
-rw-r--r--engines/tsage/blue_force/blueforce_scenes2.cpp140
-rw-r--r--engines/tsage/blue_force/blueforce_scenes2.h64
-rw-r--r--engines/tsage/module.mk1
4 files changed, 208 insertions, 0 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index ef2c85c77c..80b379d5d5 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -24,6 +24,7 @@
#include "tsage/blue_force/blueforce_dialogs.h"
#include "tsage/blue_force/blueforce_scenes0.h"
#include "tsage/blue_force/blueforce_scenes1.h"
+#include "tsage/blue_force/blueforce_scenes2.h"
#include "tsage/blue_force/blueforce_scenes3.h"
#include "tsage/blue_force/blueforce_scenes4.h"
#include "tsage/blue_force/blueforce_scenes5.h"
@@ -79,6 +80,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
// Front of Police Station
return new Scene190();
case 200:
+ // Credits #2
+ return new Scene200();
case 210:
case 220:
case 225:
diff --git a/engines/tsage/blue_force/blueforce_scenes2.cpp b/engines/tsage/blue_force/blueforce_scenes2.cpp
new file mode 100644
index 0000000000..1f45a8686b
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes2.cpp
@@ -0,0 +1,140 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/blue_force/blueforce_scenes2.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+/*--------------------------------------------------------------------------
+ * Scene 200 - Credits #2
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene200::Action1::signal() {
+ Scene200 *scene = (Scene200 *)BF_GLOBALS._sceneManager._scene;
+ static const uint32 black = 0;
+
+ switch (_actionIndex++) {
+ case 0:
+ setDelay(1);
+ break;
+ case 1:
+ BF_GLOBALS._scenePalette.loadPalette(235);
+ BF_GLOBALS._scenePalette.refresh();
+ _state = 0;
+ setDelay(30);
+ break;
+ case 2:
+ assert(_owner);
+ static_cast<SceneObject *>(_owner)->animate(ANIM_MODE_5, this);
+ break;
+ case 3:
+ if (++_state < 2) {
+ scene->_action2.signal();
+ static_cast<SceneObject *>(_owner)->setFrame(1);
+ _actionIndex = 2;
+ }
+ setDelay(2);
+ break;
+ case 4: {
+ PaletteRotation *rot;
+ rot = BF_GLOBALS._scenePalette.addRotation(64, 79, 1);
+ rot->setDelay(10);
+ rot = BF_GLOBALS._scenePalette.addRotation(96, 111, 1);
+ rot->setDelay(10);
+
+ scene->setAction(&scene->_sequenceManager, this, 201, &scene->_object1, &scene->_object2,
+ &scene->_object3, &scene->_object4, &scene->_object5, &scene->_object6, NULL);
+ break;
+ }
+ case 5:
+ BF_GLOBALS._sceneManager.changeScene(210);
+ break;
+ default:
+ break;
+ }
+}
+
+void Scene200::Action2::signal() {
+ SceneObject *owner = static_cast<SceneObject *>(this->_owner);
+
+ switch (_actionIndex++) {
+ case 1:
+ owner->setPosition(owner->_position);
+ owner->animate(ANIM_MODE_5, this);
+ break;
+ case 2:
+ owner->setPosition(owner->_position);
+ owner->setFrame(1);
+ break;
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------------------------------------------------*/
+
+void Scene200::postInit(SceneObjectList *OwnerList) {
+ SceneExt::postInit();
+ loadScene(200);
+ setZoomPercents(0, 100, 200, 100);
+ BF_GLOBALS._sound1.play(3);
+
+ _object10.postInit();
+ _object10.setVisage(200);
+ _object10.setPosition(Common::Point(114, 102));
+ _object10.setStrip(2);
+ _object10.setFrame(1);
+ _object10.changeZoom(100);
+
+ _object1.postInit();
+ _object1.hide();
+ _object2.postInit();
+ _object2.hide();
+ _object3.postInit();
+ _object3.hide();
+ _object4.postInit();
+ _object4.hide();
+ _object5.postInit();
+ _object5.hide();
+ _object6.postInit();
+ _object6.hide();
+
+ _object11.postInit();
+ _object11.setVisage(200);
+ _object11.setPosition(Common::Point(96, 112), 1000);
+ _object11.setStrip(3);
+ _object11.setFrame(1);
+ _object11.changeZoom(100);
+
+ _object10.setAction(&_action1);
+ _object11.setAction(&_action2);
+}
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_scenes2.h b/engines/tsage/blue_force/blueforce_scenes2.h
new file mode 100644
index 0000000000..c405d9e825
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes2.h
@@ -0,0 +1,64 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_BLUEFORCE_SCENES2_H
+#define TSAGE_BLUEFORCE_SCENES2_H
+
+#include "common/scummsys.h"
+#include "tsage/blue_force/blueforce_logic.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/sound.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class Scene200: public SceneExt {
+ /* Actions */
+ class Action1: public ActionExt {
+ public:
+ virtual void signal();
+ };
+ class Action2: public Action {
+ public:
+ virtual void signal();
+ };
+public:
+ SequenceManager _sequenceManager;
+ Action1 _action1;
+ Action2 _action2;
+ NamedObject _object1, _object2, _object3, _object4, _object5, _object6;
+ NamedObject _object7, _object8, _object9, _object10, _object11;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/module.mk b/engines/tsage/module.mk
index 7d15b66b93..50b269941e 100644
--- a/engines/tsage/module.mk
+++ b/engines/tsage/module.mk
@@ -5,6 +5,7 @@ MODULE_OBJS := \
blue_force/blueforce_logic.o \
blue_force/blueforce_scenes0.o \
blue_force/blueforce_scenes1.o \
+ blue_force/blueforce_scenes2.o \
blue_force/blueforce_scenes3.o \
blue_force/blueforce_scenes4.o \
blue_force/blueforce_scenes5.o \