diff options
author | Strangerke | 2011-10-13 00:00:55 +0200 |
---|---|---|
committer | Strangerke | 2011-10-13 00:00:55 +0200 |
commit | 4f0183fc0ab33d8fb5231493ca3c238d41efb025 (patch) | |
tree | 02ec8710063109433de6c4b3ca8d46530c64660d /engines/tsage/blue_force | |
parent | b853381f1ecc1c2454fa9208ed2f3294d85c6450 (diff) | |
download | scummvm-rg350-4f0183fc0ab33d8fb5231493ca3c238d41efb025.tar.gz scummvm-rg350-4f0183fc0ab33d8fb5231493ca3c238d41efb025.tar.bz2 scummvm-rg350-4f0183fc0ab33d8fb5231493ca3c238d41efb025.zip |
TSAGE: Add (useless?) scene 114 in BlueForce
Diffstat (limited to 'engines/tsage/blue_force')
-rw-r--r-- | engines/tsage/blue_force/blueforce_logic.cpp | 2 | ||||
-rw-r--r-- | engines/tsage/blue_force/blueforce_scenes1.cpp | 148 | ||||
-rw-r--r-- | engines/tsage/blue_force/blueforce_scenes1.h | 21 |
3 files changed, 171 insertions, 0 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index 1b82fdad76..156062d0d6 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -69,6 +69,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) { // Introduction - Outside the bar return new Scene110(); case 114: + // Useless? - Outside the bar + return new Scene114(); case 115: case 125: case 140: diff --git a/engines/tsage/blue_force/blueforce_scenes1.cpp b/engines/tsage/blue_force/blueforce_scenes1.cpp index 51d68d58a1..da950adafe 100644 --- a/engines/tsage/blue_force/blueforce_scenes1.cpp +++ b/engines/tsage/blue_force/blueforce_scenes1.cpp @@ -894,6 +894,154 @@ void Scene110::postInit(SceneObjectList *OwnerList) { setAction(&_action1); } /*-------------------------------------------------------------------------- + * Scene 114 - Outside the Bar + * + *--------------------------------------------------------------------------*/ + +bool Scene114::Object1::startAction(CursorType action, Event &event) { + Scene114 *scene = (Scene114 *)BF_GLOBALS._sceneManager._scene; + + switch (action) { + case CURSOR_LOOK: + SceneItem::display(114, 0, SET_WIDTH, 312, + SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9, + SET_EXT_FGCOLOR, 13, LIST_END); + return true; + case CURSOR_USE: + BF_GLOBALS._player.disableControl(); + scene->_sceneMode = 1142; + if (BF_GLOBALS.getFlag(fWithLyle)) { + scene->_object3.fixPriority(-1); + scene->setAction(&scene->_sequenceManager1, this, 1142, &BF_GLOBALS._player, &scene->_object3, NULL); + } else { + Common::Point pt(155, 111); + PlayerMover *mover = new PlayerMover(); + BF_GLOBALS._player.addMover(mover, &pt, scene); + } + return true; + default: + return NamedObject::startAction(action, event); + } +} + +bool Scene114::Object2::startAction(CursorType action, Event &event) { + Scene114 *scene = (Scene114 *)BF_GLOBALS._sceneManager._scene; + + switch (action) { + case CURSOR_LOOK: + SceneItem::display(114, 1, SET_WIDTH, 312, + SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9, + SET_EXT_FGCOLOR, 13, LIST_END); + return true; + case CURSOR_USE: + BF_GLOBALS._walkRegions.proc2(2); + BF_GLOBALS._player.disableControl(); + scene->_object3.fixPriority(-1); + scene->_sceneMode = 1140; + setAction(&scene->_sequenceManager1, this, 1140, &BF_GLOBALS._player, this, &scene->_object3, NULL); + return true; + default: + return NamedObject::startAction(action, event); + } +} + +void Scene114::postInit(SceneObjectList *OwnerList) { + SceneExt::postInit(); + + BF_GLOBALS._sound1.fadeSound(33); + loadScene(110); + + setZoomPercents(85, 80, 105, 100); + BF_GLOBALS._walkRegions.proc1(9); + BF_GLOBALS._walkRegions.proc1(22); + + _object2.postInit(); + _object2.setVisage(110); + _object2.setPosition(Common::Point(216, 88)); + BF_GLOBALS._sceneItems.push_front(&_object2); + + BF_GLOBALS._player.postInit(); + BF_GLOBALS._player.setVisage(1358); + BF_GLOBALS._player.animate(ANIM_MODE_1, NULL); + BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); + BF_GLOBALS._player.setPosition(Common::Point(155, 111)); + BF_GLOBALS._player._moveDiff.x = 3; + BF_GLOBALS._player._moveDiff.y = 2; + BF_GLOBALS._player.changeZoom(-1); + + _object3.postInit(); + _object3.setVisage(1359); + _object3.setObjectWrapper(new SceneObjectWrapper()); + _object3.animate(ANIM_MODE_1, NULL); + _object3.setPosition(Common::Point(-118, -146)); + _object3.changeZoom(-1); + _object3._moveDiff.x = 2; + _object3._moveDiff.y = 1; + _object3.hide(); + _object3.setDetails(114, 2, -1, -1, 1, NULL); + + _object1.postInit(); + if (BF_GLOBALS.getFlag(fWithLyle)) { + _object1.setVisage(444); + _object1.setPosition(Common::Point(127, 78)); + _object1.fixPriority(20); + BF_GLOBALS._player.setPosition(Common::Point(139, 79)); + _object3.setPosition(Common::Point(86, 79)); + _object3.show(); + } else { + _object1.setVisage(380); + _object1.setPosition(Common::Point(128, 125)); + _object1.setFrame(1); + if (BF_GLOBALS.getFlag(onDuty)) { + _object1.setStrip(2); + _object1.changeZoom(70); + BF_GLOBALS._player.setVisage(352); + } else { + _object1.setStrip(1); + _object1.changeZoom(77); + } + BF_GLOBALS._walkRegions.proc1(17); + } + BF_GLOBALS._sceneItems.push_front(&_object1); + BF_GLOBALS._walkRegions.proc1(2); + + if (BF_GLOBALS._sceneManager._previousScene == 115) { + BF_GLOBALS._player.setPosition(Common::Point(219, 100)); + BF_GLOBALS._player.setStrip(6); + _object3.setPosition(Common::Point(253, 110)); + _object3.fixPriority(108); + _object3.setStrip(6); + BF_GLOBALS._player.enableControl(); + } else if (BF_GLOBALS.getFlag(fWithLyle)) { + _sceneMode = 1141; + setAction(&_sequenceManager1, this, 1141, &_object3, NULL); + } else { + BF_GLOBALS._player.enableControl(); + } + + _item1.setDetails(Rect(0, 0, 320, 200), 114, 3, -1, -1, 1, NULL); +} + +void Scene114::signal() { + switch (_sceneMode) { + case 1140: + BF_GLOBALS._sceneManager.changeScene(115); + break; + case 1141: + BF_GLOBALS._player.enableControl(); + break; + case 1142: + BF_GLOBALS._sceneManager.changeScene(60); + break; + default: + break; + } +} +/*-------------------------------------------------------------------------- * Scene 180 - Front of Home * *--------------------------------------------------------------------------*/ diff --git a/engines/tsage/blue_force/blueforce_scenes1.h b/engines/tsage/blue_force/blueforce_scenes1.h index 439e561e98..372706987a 100644 --- a/engines/tsage/blue_force/blueforce_scenes1.h +++ b/engines/tsage/blue_force/blueforce_scenes1.h @@ -160,6 +160,27 @@ public: virtual void postInit(SceneObjectList *OwnerList = NULL); }; +class Scene114: public SceneExt { + /* Objects */ + class Object1: public NamedObject { + public: + virtual bool startAction(CursorType action, Event &event); + }; + class Object2: public NamedObject { + public: + virtual bool startAction(CursorType action, Event &event); + }; +public: + SequenceManager _sequenceManager1; + Object1 _object1; + Object2 _object2; + NamedObject _object3; + NamedHotspot _item1; +public: + virtual void postInit(SceneObjectList *OwnerList = NULL); + virtual void signal(); +}; + class Scene180: public SceneExt { /* Objects */ class Vechile: public NamedObject { |