From d7f80fadab3f02725beb2d7ede5aef8cb13dc3d5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 18 Oct 2011 23:56:48 +0200 Subject: TSAGE: Blue Force - Implement intro scene 150 --- engines/tsage/blue_force/blueforce_logic.cpp | 6 +- engines/tsage/blue_force/blueforce_scenes1.cpp | 83 ++++++++++++++++++++++++++ engines/tsage/blue_force/blueforce_scenes1.h | 14 +++++ 3 files changed, 101 insertions(+), 2 deletions(-) (limited to 'engines/tsage') diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index ef2d1f9ce0..b8895add0a 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -75,12 +75,14 @@ Scene *BlueForceGame::createScene(int sceneNumber) { // Inside Tony's Bar return new Scene115(); case 125: - // Chase in the city + // Intro - Chase in the city return new Scene125(); case 140: - // Near the House + // Intro - Burglar near the House return new Scene140(); case 150: + // Intro - Burglar inside the house + return new Scene150(); case 160: error("Scene group 1 not implemented"); case 180: diff --git a/engines/tsage/blue_force/blueforce_scenes1.cpp b/engines/tsage/blue_force/blueforce_scenes1.cpp index ac824b1c62..7206974a24 100644 --- a/engines/tsage/blue_force/blueforce_scenes1.cpp +++ b/engines/tsage/blue_force/blueforce_scenes1.cpp @@ -2449,6 +2449,89 @@ void Scene140::postInit(SceneObjectList *OwnerList) { _object2.setAction(&_action1); } +/*-------------------------------------------------------------------------- + * Scene 150 - Intro - Burglar inside the house + * + *--------------------------------------------------------------------------*/ +void Scene150::Action1::signal() { + SceneObject *owner = static_cast(this->_owner); + static uint32 v50B96 = 0; + + switch (_actionIndex++) { + case 0: + _actionIndex = 5; + _object2.postInit(); + _object2.setVisage(150); + _object2.setStrip(3); + _object2._frame = 1; + _object2.setPosition(Common::Point(148, 126)); + _object2.changeZoom(100); + setDelay(10); + break; + case 1: + owner->animate(ANIM_MODE_5, this); + break; + case 2: + owner->_frame = 1; + owner->setStrip(4); + owner->animate(ANIM_MODE_4, 3, 1, this); + break; + case 3: + owner->animate(ANIM_MODE_5, this); + _object2.animate(ANIM_MODE_5, this); + break; + case 4: + _object2.remove(); + break; + case 5: + owner->_numFrames = 8; + owner->_frame = 1; + owner->setStrip(2); + owner->animate(ANIM_MODE_4, 14, 1, this); + break; + case 6: + owner->fixPriority(119); + owner->animate(ANIM_MODE_5, this); + break; + case 7: + setDelay(60); + break; + case 8: + BF_GLOBALS._sound1.stop(); + // No break on purpose + case 9: + _sound1.play(8); + setDelay(30); + break; + case 10: + BF_GLOBALS._scenePalette.addFader((const byte *)&v50B96, 1, 2, this); + break; + case 11: + BF_GLOBALS._sound1.play(9); + BF_GLOBALS._sceneManager.changeScene(160); + break; + default: + break; + } +} + +void Scene150::postInit(SceneObjectList *OwnerList) { + SceneExt::postInit(); + loadScene(150); + + BF_GLOBALS._player.postInit(); + BF_GLOBALS._player.setPosition(Common::Point(160, 100)); + BF_GLOBALS._player._moveDiff.x = 15; + BF_GLOBALS._player.hide(); + + _object1.postInit(); + _object1.setVisage(150); + _object1.setPosition(Common::Point(158, 119)); + _object1._numFrames = 5; + _object1.fixPriority(121); + _object1.setAction(&_action1); +} + /*-------------------------------------------------------------------------- * Scene 180 - Front of Home * diff --git a/engines/tsage/blue_force/blueforce_scenes1.h b/engines/tsage/blue_force/blueforce_scenes1.h index 0e8bd8e293..be82adf25c 100644 --- a/engines/tsage/blue_force/blueforce_scenes1.h +++ b/engines/tsage/blue_force/blueforce_scenes1.h @@ -385,6 +385,20 @@ public: void postInit(SceneObjectList *OwnerList); }; +class Scene150: public SceneExt { + class Action1: public Action { + NamedObject _object2; + ASound _sound1; + public: + virtual void signal(); + }; +public: + NamedObject _object1; + Action1 _action1; + + void postInit(SceneObjectList *OwnerList); +}; + class Scene180: public SceneExt { /* Objects */ class Vechile: public NamedObject { -- cgit v1.2.3