aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2015-10-22 22:15:57 +0200
committerStrangerke2015-10-22 22:15:57 +0200
commit43065c9ee26bd0f82da0fe00cb6309c77acc029e (patch)
tree86a44808d45a891b951d5201b3e25a184f412b43
parent2856020c37fd6d216a7be74545d2ac6619124c35 (diff)
downloadscummvm-rg350-43065c9ee26bd0f82da0fe00cb6309c77acc029e.tar.gz
scummvm-rg350-43065c9ee26bd0f82da0fe00cb6309c77acc029e.tar.bz2
scummvm-rg350-43065c9ee26bd0f82da0fe00cb6309c77acc029e.zip
MADS: Dragon: Implement scene 101
-rw-r--r--engines/mads/dragonsphere/dragonsphere_scenes.cpp3
-rw-r--r--engines/mads/dragonsphere/dragonsphere_scenes1.cpp34
-rw-r--r--engines/mads/dragonsphere/dragonsphere_scenes1.h11
3 files changed, 47 insertions, 1 deletions
diff --git a/engines/mads/dragonsphere/dragonsphere_scenes.cpp b/engines/mads/dragonsphere/dragonsphere_scenes.cpp
index c24d0e93d0..0f0fb5c103 100644
--- a/engines/mads/dragonsphere/dragonsphere_scenes.cpp
+++ b/engines/mads/dragonsphere/dragonsphere_scenes.cpp
@@ -28,6 +28,7 @@
#include "mads/scene.h"
#include "mads/dragonsphere/game_dragonsphere.h"
#include "mads/dragonsphere/dragonsphere_scenes.h"
+#include "mads/dragonsphere/dragonsphere_scenes1.h"
namespace MADS {
@@ -42,7 +43,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
switch (scene._nextSceneId) {
// Scene group #1 (Castle, river and caves)
case 101: // king's bedroom
- return new DummyScene(vm); // TODO
+ return new Scene101(vm);
case 102: // queen's bedroom
return new DummyScene(vm); // TODO
case 103: // outside king's bedroom
diff --git a/engines/mads/dragonsphere/dragonsphere_scenes1.cpp b/engines/mads/dragonsphere/dragonsphere_scenes1.cpp
index 6635354991..6f107df42b 100644
--- a/engines/mads/dragonsphere/dragonsphere_scenes1.cpp
+++ b/engines/mads/dragonsphere/dragonsphere_scenes1.cpp
@@ -205,5 +205,39 @@ void Scene1xx::setPlayerSpritesPrefix() {
/*------------------------------------------------------------------------*/
+Scene101::Scene101(MADSEngine *vm) : Scene1xx(vm) {
+}
+
+void Scene101::synchronize(Common::Serializer &s) {
+ Scene1xx::synchronize(s);
+}
+
+void Scene101::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+}
+
+void Scene101::enter() {
+ sceneEntrySound();
+}
+
+void Scene101::step() {
+}
+
+void Scene101::actions() {
+ if (_action.isObject(NOUN_BED)) {
+ int sprIdx = _scene->_sprites.addSprites("*ob001i", false);
+ int seqIdx = _scene->_sequences.addStampCycle(sprIdx, false, 1);
+ _scene->_sequences.setDepth(seqIdx, 0);
+ _scene->_sequences.setPosition(seqIdx, Common::Point(10, 50));
+ _action._inProgress = false;
+ }
+}
+
+void Scene101::preActions() {
+}
+
+/*------------------------------------------------------------------------*/
+
} // End of namespace Dragonsphere
} // End of namespace MADS
diff --git a/engines/mads/dragonsphere/dragonsphere_scenes1.h b/engines/mads/dragonsphere/dragonsphere_scenes1.h
index 4194845975..023a789505 100644
--- a/engines/mads/dragonsphere/dragonsphere_scenes1.h
+++ b/engines/mads/dragonsphere/dragonsphere_scenes1.h
@@ -53,6 +53,17 @@ public:
Scene1xx(MADSEngine *vm) : DragonsphereScene(vm) {}
};
+class Scene101 : public Scene1xx {
+public:
+ Scene101(MADSEngine *vm);
+ virtual void synchronize(Common::Serializer &s);
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions();
+ virtual void actions();
+};
} // End of namespace Dragonsphere
} // End of namespace MADS