diff options
Diffstat (limited to 'engines/tsage/blue_force/blueforce_scenes4.cpp')
-rw-r--r-- | engines/tsage/blue_force/blueforce_scenes4.cpp | 527 |
1 files changed, 282 insertions, 245 deletions
diff --git a/engines/tsage/blue_force/blueforce_scenes4.cpp b/engines/tsage/blue_force/blueforce_scenes4.cpp index 07445a7e76..deff4f2518 100644 --- a/engines/tsage/blue_force/blueforce_scenes4.cpp +++ b/engines/tsage/blue_force/blueforce_scenes4.cpp @@ -35,6 +35,7 @@ namespace BlueForce { * *--------------------------------------------------------------------------*/ +// Talk to driver with backup void Scene410::Action1::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; @@ -62,11 +63,12 @@ void Scene410::Action1::signal() { } } +// Talk to passenger with backup void Scene410::Action2::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; BF_GLOBALS._player.disableControl(); - switch (scene->_field1FB8++) { + switch (scene->_talkCount++) { case 0: scene->_sceneMode = 4105; scene->_stripManager.start(BF_GLOBALS.getFlag(fTalkedShooterNoBkup) ? 4123 : 4107, scene); @@ -90,7 +92,7 @@ void Scene410::Action2::signal() { default: SceneItem::display(410, 11, SET_WIDTH, 300, SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 10, - SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + UI_INTERFACE_Y + 2, SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 13, SET_EXT_BGCOLOR, 82, SET_EXT_FGCOLOR, 13, LIST_END); BF_GLOBALS._player.enableControl(); @@ -98,12 +100,13 @@ void Scene410::Action2::signal() { } } +// Talk to passenger without backup void Scene410::Action3::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; if (BF_GLOBALS.getFlag(fTalkedShooterNoBkup)) { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 2; - scene->setAction(&scene->_sequenceManager1, scene, 4102, &scene->_object2, &BF_GLOBALS._player, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 4102, &scene->_passenger, &BF_GLOBALS._player, NULL); } else { BF_GLOBALS.setFlag(fTalkedShooterNoBkup); scene->_sceneMode = 0; @@ -111,36 +114,23 @@ void Scene410::Action3::signal() { } } +// Talk to driver without backup void Scene410::Action4::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; - switch (_actionIndex++) { - case 0: - if (scene->_field1FC4 == 0) { - ADD_PLAYER_MOVER(114, 133); - } else { - ADD_PLAYER_MOVER(195, 139); - } - break; - case 1: - BF_GLOBALS._player.updateAngle(scene->_object2._position); - setDelay(3); - break; - case 2: - setDelay(3); - break; - case 3: - if (BF_GLOBALS.getFlag(fCalledBackup)) - scene->setAction(&scene->_action2); - else - scene->setAction(&scene->_action3); - remove(); - break; - default: - break; + if (BF_GLOBALS.getFlag(fTalkedDriverNoBkup)) { + BF_GLOBALS._player.disableControl(); + scene->_sceneMode = 2; + scene->setAction(&scene->_sequenceManager1, scene, 4120, &scene->_passenger, &BF_GLOBALS._player, NULL); + } else { + BF_GLOBALS._player.disableControl(); + BF_GLOBALS.setFlag(fTalkedDriverNoBkup); + scene->_sceneMode = 4101; + scene->_stripManager.start(4103, scene); } } +// Talk to passenger void Scene410::Action5::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; @@ -153,7 +143,7 @@ void Scene410::Action5::signal() { } break; case 1: - BF_GLOBALS._player.updateAngle(scene->_object2._position); + BF_GLOBALS._player.updateAngle(scene->_passenger._position); setDelay(3); break; case 2: @@ -171,6 +161,7 @@ void Scene410::Action5::signal() { } } +// Talk to driver void Scene410::Action6::signal() { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; @@ -183,7 +174,7 @@ void Scene410::Action6::signal() { } break; case 1: - BF_GLOBALS._player.updateAngle(scene->_object1._position); + BF_GLOBALS._player.updateAngle(scene->_driver._position); setDelay(3); break; case 2: @@ -222,11 +213,11 @@ void Scene410::Action7::signal() { case 3: BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); BF_GLOBALS._player.updateAngle(Common::Point(100, 170)); - scene->setAction(&scene->_sequenceManager1, this, 4112, &scene->_object1, &scene->_object2, - &scene->_object3, NULL); + setAction(&scene->_sequenceManager1, this, 4112, &scene->_driver, &scene->_passenger, + &scene->_harrison, NULL); break; case 5: - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); setAction(&scene->_sequenceManager1, this, 4118, &BF_GLOBALS._player, NULL); BF_GLOBALS._player.disableControl(); break; @@ -241,7 +232,7 @@ void Scene410::Action7::signal() { /*--------------------------------------------------------------------------*/ -bool Scene410::Item2::startAction(CursorType action, Event &event) { +bool Scene410::Motorcycle::startAction(CursorType action, Event &event) { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -249,7 +240,7 @@ bool Scene410::Item2::startAction(CursorType action, Event &event) { if (!BF_GLOBALS.getFlag(fCalledBackup)) { scene->_sceneMode = 4103; scene->signal(); - } else if (BF_GLOBALS.getFlag(fSearchedTruck) && !BF_GLOBALS._sceneObjects->contains(&scene->_object3)) { + } else if (BF_GLOBALS.getFlag(fSearchedTruck) && !BF_GLOBALS._sceneObjects->contains(&scene->_harrison)) { scene->_sceneMode = 4103; scene->signal(); } else if (scene->_field1FBC != 0) { @@ -264,7 +255,7 @@ bool Scene410::Item2::startAction(CursorType action, Event &event) { } } -bool Scene410::Item4::startAction(CursorType action, Event &event) { +bool Scene410::TruckFront::startAction(CursorType action, Event &event) { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -274,7 +265,7 @@ bool Scene410::Item4::startAction(CursorType action, Event &event) { else if (BF_GLOBALS.getFlag(fSearchedTruck)) SceneItem::display2(410, 13); else if (BF_GLOBALS.getFlag(fGangInCar)) { - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); scene->_sceneMode = 4118; scene->signal(); } else { @@ -291,7 +282,7 @@ bool Scene410::Item4::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ -bool Scene410::Object1::startAction(CursorType action, Event &event) { +bool Scene410::Driver::startAction(CursorType action, Event &event) { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -307,7 +298,7 @@ bool Scene410::Object1::startAction(CursorType action, Event &event) { } else if (!scene->_field1FC0) { scene->_sceneMode = 4124; scene->_field1FC0 = 1; - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); scene->signal(); } else { break; @@ -318,14 +309,14 @@ bool Scene410::Object1::startAction(CursorType action, Event &event) { return true; case INV_HANDCUFFS: if (BF_GLOBALS.getFlag(fCalledBackup)) { - if ((scene->_field1FB8 < 5) || (scene->_field1FB6 < 1) || (scene->_field1FBC != 0)) + if ((scene->_talkCount < 5) || (scene->_field1FB6 < 1) || (scene->_field1FBC != 0)) break; BF_GLOBALS._player.disableControl(); scene->_sceneMode = 4123; scene->_stripManager.start(4125, scene); scene->_field1FBC = 1; - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); } else { if (BF_GLOBALS.getFlag(fTalkedDriverNoBkup)) { scene->setAction(&scene->_action4); @@ -340,15 +331,15 @@ bool Scene410::Object1::startAction(CursorType action, Event &event) { } else if (!scene->_field1FC4) { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 2; - scene->setAction(&scene->_sequenceManager1, scene, 4120, &scene->_object2, &BF_GLOBALS._player, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 4120, &scene->_passenger, &BF_GLOBALS._player, NULL); } else if ((scene->_field1FBC != 0) || (scene->_field1FC2 != 0)) { break; } else { scene->_field1FC2 = 1; - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); BF_GLOBALS._player.disableControl(); scene->_sceneMode = 4127; - scene->setAction(&scene->_sequenceManager1, scene, 4127, &scene->_object1, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 4127, &BF_GLOBALS._player, &scene->_driver, NULL); } return true; case INV_MIRANDA_CARD: @@ -359,12 +350,12 @@ bool Scene410::Object1::startAction(CursorType action, Event &event) { SceneItem::display2(390, 15); } else { BF_GLOBALS.setFlag(readFrankRights); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); BF_GLOBALS._player.disableControl(); scene->_sceneMode = 0; // TODO: Original code pushes a copy of the entirety of object1 onto stack - scene->setAction(&scene->_sequenceManager1, scene, 4126, &BF_GLOBALS._player, &scene->_object1, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 4126, &BF_GLOBALS._player, &scene->_driver, NULL); } return true; default: @@ -374,39 +365,47 @@ bool Scene410::Object1::startAction(CursorType action, Event &event) { return NamedObject::startAction(action, event); } -bool Scene410::Object2::startAction(CursorType action, Event &event) { +bool Scene410::Passenger::startAction(CursorType action, Event &event) { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; switch (action) { case CURSOR_USE: if (!BF_GLOBALS.getFlag(fCalledBackup)) { - if (BF_GLOBALS.getFlag(fTalkedShooterNoBkup)) { + if (BF_GLOBALS.getFlag(fTalkedShooterNoBkup)) scene->setAction(&scene->_action3); - } else { - SceneItem::display2(410, 5); - } + else + SceneItem::display(410, 5, SET_WIDTH, 300, + SET_X, 10 + GLOBALS._sceneManager._scene->_sceneBounds.left, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + UI_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 96, SET_EXT_BGCOLOR, 99, + SET_EXT_FGCOLOR, 13, LIST_END); } else if (!scene->_field1FBA) { - SceneItem::display2(410, 5); + SceneItem::display(410, 5, SET_WIDTH, 300, + SET_X, 10 + GLOBALS._sceneManager._scene->_sceneBounds.left, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + UI_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 96, SET_EXT_BGCOLOR, 99, + SET_EXT_FGCOLOR, 13, LIST_END); } else if (!scene->_field1FBE) { scene->_sceneMode = 4121; scene->_field1FBE = 1; - BF_GLOBALS._uiElements.addScore(50); + T2_GLOBALS._uiElements.addScore(50); scene->signal(); - } else { + } else break; - } return true; case CURSOR_TALK: scene->setAction(&scene->_action5); return true; case INV_HANDCUFFS: if (BF_GLOBALS.getFlag(fCalledBackup)) { - if ((scene->_field1FB8 < 5) || (scene->_field1FBA != 0)) + if ((scene->_talkCount < 5) || (scene->_field1FBA != 0)) break; BF_GLOBALS._player.disableControl(); scene->_sceneMode = 9; - ADD_PLAYER_MOVER(195, 139); + Common::Point destPos(195, 139); + PlayerMover *mover = new PlayerMover(); + BF_GLOBALS._player.addMover(mover, &destPos, scene); } else if (BF_GLOBALS.getFlag(fTalkedShooterNoBkup)) { scene->setAction(&scene->_action3); } else { @@ -421,12 +420,12 @@ bool Scene410::Object2::startAction(CursorType action, Event &event) { SceneItem::display2(390, 15); } else { BF_GLOBALS.setFlag(readFrankRights); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); BF_GLOBALS._player.disableControl(); scene->_sceneMode = 0; scene->setAction(&scene->_sequenceManager1, scene, 4125, &BF_GLOBALS._player, - &scene->_object2, NULL); + &scene->_passenger, NULL); } return true; default: @@ -436,7 +435,7 @@ bool Scene410::Object2::startAction(CursorType action, Event &event) { return NamedObject::startAction(action, event); } -bool Scene410::Object3::startAction(CursorType action, Event &event) { +bool Scene410::Harrison::startAction(CursorType action, Event &event) { Scene410 *scene = (Scene410 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -445,9 +444,16 @@ bool Scene410::Object3::startAction(CursorType action, Event &event) { if (BF_GLOBALS.getFlag(fSearchedTruck)) { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 8; - ADD_PLAYER_MOVER(147, 143); + + Common::Point destPos(147, 143); + PlayerMover *mover = new PlayerMover(); + BF_GLOBALS._player.addMover(mover, &destPos, scene); } else { - SceneItem::display2(350, 13); + SceneItem::display(350, 13, SET_WIDTH, 300, + SET_X, 10 + GLOBALS._sceneManager._scene->_sceneBounds.left, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + UI_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 32, SET_EXT_BGCOLOR, 49, + SET_EXT_FGCOLOR, 13, LIST_END); } } else if ((scene->_field1FBA != 0) && (scene->_field1FBC != 0)) { BF_GLOBALS._player.disableControl(); @@ -457,16 +463,17 @@ bool Scene410::Object3::startAction(CursorType action, Event &event) { BF_GLOBALS.set2Flags(f1098Frankie); BF_GLOBALS.clearFlag(f1098Marina); } else if ((BF_INVENTORY.getObjectScene(INV_HANDCUFFS) == 1) || - (!scene->_field1FBA && (scene->_field1FB8 < 5))) { - SceneItem::display2(350, 13); + (!scene->_field1FBA && (scene->_talkCount < 5))) { + SceneItem::display(350, 13, SET_WIDTH, 300, + SET_X, 10 + GLOBALS._sceneManager._scene->_sceneBounds.left, + SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + UI_INTERFACE_Y + 2, + SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 32, SET_EXT_BGCOLOR, 49, + SET_EXT_FGCOLOR, 13, LIST_END); } else if (!scene->_field1FBA) { - if (scene->_field1FBA) - error("Error - want to cuff shooter, but he's cuffed already"); - BF_GLOBALS._player.disableControl(); scene->_field1FBA = 1; scene->_field1FBE = 1; - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); scene->_sceneMode = 4122; scene->_stripManager.start(4112, scene); } else if (scene->_field1FB6 < 1) { @@ -477,7 +484,7 @@ bool Scene410::Object3::startAction(CursorType action, Event &event) { BF_GLOBALS._player.disableControl(); scene->_field1FBC = 1; scene->_field1FC0 = 1; - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); scene->_sceneMode = 4109; scene->_stripManager.start(4112, scene); } @@ -493,14 +500,14 @@ bool Scene410::Object3::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene410::Scene410(): SceneExt() { - _field1FB6 = _field1FB8 = _field1FBA = _field1FBC = 0; + _field1FB6 = _talkCount = _field1FBA = _field1FBC = 0; _field1FBE = _field1FC0 = _field1FC2 = _field1FC4 = 0; } void Scene410::synchronize(Serializer &s) { SceneExt::synchronize(s); s.syncAsSint16LE(_field1FB6); - s.syncAsSint16LE(_field1FB8); + s.syncAsSint16LE(_talkCount); s.syncAsSint16LE(_field1FBA); s.syncAsSint16LE(_field1FBC); s.syncAsSint16LE(_field1FBE); @@ -524,6 +531,7 @@ void Scene410::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_jakeUniformSpeaker); _stripManager.addSpeaker(&_harrisonSpeaker); _stripManager.addSpeaker(&_shooterSpeaker); + _stripManager.addSpeaker(&_driverSpeaker); BF_GLOBALS._player.postInit(); BF_GLOBALS._player.setVisage(1341); @@ -533,20 +541,20 @@ void Scene410::postInit(SceneObjectList *OwnerList) { BF_GLOBALS._player.setPosition(Common::Point(114, 133)); BF_GLOBALS._player.changeZoom(-1); - _item2.setDetails(8, 410, 15, -1, -1, 1); + _motorcycle.setDetails(8, 410, 15, -1, -1, 1); - _object2.postInit(); - _object2.setVisage(415); - _object2.setStrip(1); - _object2.setPosition(Common::Point(278, 92)); - _object2.setDetails(410, 4, -1, 5, 1, NULL); + _passenger.postInit(); + _passenger.setVisage(415); + _passenger.setStrip(1); + _passenger.setPosition(Common::Point(278, 92)); + _passenger.setDetails(410, 4, -1, 5, 1, NULL); - _object1.postInit(); - _object1.setVisage(416); - _object1.setStrip(2); - _object1.setPosition(Common::Point(244, 85)); - _object1.setDetails(410, 6, -1, 7, 1, NULL); - _object1.changeZoom(-1); + _driver.postInit(); + _driver.setVisage(416); + _driver.setStrip(2); + _driver.setPosition(Common::Point(244, 85)); + _driver.setDetails(410, 6, -1, 7, 1, NULL); + _driver.changeZoom(-1); _object5.postInit(); _object5.setVisage(410); @@ -558,32 +566,32 @@ void Scene410::postInit(SceneObjectList *OwnerList) { _object6.setStrip(4); _object6.setPosition(Common::Point(240, 43)); - _item4.setDetails(6, 410, 3, -1, -1, 1); - _item3.setDetails(7, 410, 3, -1, -1, 1); + _truckFront.setDetails(6, 410, 3, -1, -1, 1); + _truckBack.setDetails(7, 410, 3, -1, -1, 1); switch (BF_GLOBALS._sceneManager._previousScene) { case 415: BF_GLOBALS.setFlag(fSearchedTruck); BF_GLOBALS._player.setPosition(Common::Point(210, 90)); - _object2.remove(); - _object1.remove(); - BF_GLOBALS._walkRegions.proc1(21); - BF_GLOBALS._walkRegions.proc1(22); - - _object3.postInit(); - _object3.setVisage(343); - _object3.setObjectWrapper(new SceneObjectWrapper()); - _object3.animate(ANIM_MODE_1, NULL); - _object3.setDetails(350, 12, 13, 14, 1, NULL); - _object3.setPosition(Common::Point(97, 185)); - _object3.changeZoom(-1); - - _object4.postInit(); - _object4.setVisage(410); - _object4.setDetails(410, 8, 9, 10, 1, NULL); - _object4.fixPriority(148); - _object4.setPosition(Common::Point(39, 168)); + _passenger.remove(); + _driver.remove(); + BF_GLOBALS._walkRegions.disableRegion(21); + BF_GLOBALS._walkRegions.disableRegion(22); + + _harrison.postInit(); + _harrison.setVisage(343); + _harrison.setObjectWrapper(new SceneObjectWrapper()); + _harrison.animate(ANIM_MODE_1, NULL); + _harrison.setDetails(350, 12, 13, 14, 1, NULL); + _harrison.setPosition(Common::Point(97, 185)); + _harrison.changeZoom(-1); + + _patrolCar.postInit(); + _patrolCar.setVisage(410); + _patrolCar.setDetails(410, 8, 9, 10, 1, NULL); + _patrolCar.fixPriority(148); + _patrolCar.setPosition(Common::Point(39, 168)); _field1FC4 = 1; _sceneMode = 0; @@ -591,62 +599,62 @@ void Scene410::postInit(SceneObjectList *OwnerList) { break; case 60: if (BF_GLOBALS.getFlag(fSearchedTruck)) { - _object2.remove(); - _object1.remove(); + _passenger.remove(); + _driver.remove(); _sceneMode = 0; } else { _field1FC4 = BF_GLOBALS._v50CC8; _field1FBA = BF_GLOBALS._v50CC2; - _field1FB8 = BF_GLOBALS._v50CC6; + _talkCount = BF_GLOBALS._v50CC6; _field1FB6 = BF_GLOBALS._v50CC4; - _object2.setVisage(418); - _object2.setStrip(6); - _object2.setPosition(Common::Point(227, 137)); + _passenger.setVisage(418); + _passenger.setStrip(6); + _passenger.setPosition(Common::Point(227, 137)); - if (_field1FB8 > 0) { - _object2.setVisage(415); - _object2.setStrip(2); - _object2.setFrame(5); + if (_talkCount > 0) { + _passenger.setVisage(415); + _passenger.setStrip(2); + _passenger.setFrame(5); } if (_field1FBA) { - _object2.setVisage(415); - _object2.setStrip(6); - _object2.setFrame(8); + _passenger.setVisage(415); + _passenger.setStrip(6); + _passenger.setFrame(8); } - BF_GLOBALS._walkRegions.proc1(16); + BF_GLOBALS._walkRegions.disableRegion(16); if (BF_GLOBALS.getFlag(fDriverOutOfTruck)) { - _object1.setVisage(417); - _object1.setStrip(1); - _object1.setPosition(Common::Point(152, 97)); + _driver.setVisage(417); + _driver.setStrip(1); + _driver.setPosition(Common::Point(152, 97)); - BF_GLOBALS._walkRegions.proc1(7); + BF_GLOBALS._walkRegions.disableRegion(7); } if (BF_GLOBALS.getFlag(fCalledBackup)) { - BF_GLOBALS._walkRegions.proc1(21); - BF_GLOBALS._walkRegions.proc1(22); + BF_GLOBALS._walkRegions.disableRegion(21); + BF_GLOBALS._walkRegions.disableRegion(22); - _object3.postInit(); - _object3.setVisage(343); - _object3.setObjectWrapper(new SceneObjectWrapper()); - _object3.animate(ANIM_MODE_1, NULL); - _object3.setDetails(350, 12, 13, 14, 1, NULL); - BF_GLOBALS._sceneItems.addBefore(&_object1, &_object3); + _harrison.postInit(); + _harrison.setVisage(343); + _harrison.setObjectWrapper(new SceneObjectWrapper()); + _harrison.animate(ANIM_MODE_1, NULL); + _harrison.setDetails(350, 12, 13, 14, 1, NULL); + BF_GLOBALS._sceneItems.addBefore(&_driver, &_harrison); - _object3.setPosition(Common::Point(-10, 124)); - _object3.changeZoom(-1); + _harrison.setPosition(Common::Point(-10, 124)); + _harrison.changeZoom(-1); - _object4.postInit(); - _object4.setVisage(410); - _object4.setDetails(410, 8, 9, 10, 1, NULL); - _object4.fixPriority(148); + _patrolCar.postInit(); + _patrolCar.setVisage(410); + _patrolCar.setDetails(410, 8, 9, 10, 1, NULL); + _patrolCar.fixPriority(148); if (_field1FC4) { - _object3.setPosition(Common::Point(108, 112)); - _object4.fixPriority(148); - _object4.setPosition(Common::Point(39, 168)); + _harrison.setPosition(Common::Point(108, 112)); + _patrolCar.fixPriority(148); + _patrolCar.setPosition(Common::Point(39, 168)); _sceneMode = 0; } else { @@ -669,7 +677,7 @@ void Scene410::postInit(SceneObjectList *OwnerList) { signal(); - _item1.setDetails(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y), 410, 0, 1, 2, 1, NULL); + _background.setDetails(Rect(0, 0, SCREEN_WIDTH, UI_INTERFACE_Y), 410, 0, 1, 2, 1, NULL); } void Scene410::signal() { @@ -680,7 +688,7 @@ void Scene410::signal() { BF_GLOBALS._v50CC8 = _field1FC4; BF_GLOBALS._v50CC2 = _field1FBA; - BF_GLOBALS._v50CC6 = _field1FB8; + BF_GLOBALS._v50CC6 = _talkCount; BF_GLOBALS._v50CC4 = _field1FB6; BF_GLOBALS._sceneManager.changeScene(60); break; @@ -709,12 +717,13 @@ void Scene410::signal() { break; case 7: BF_INVENTORY.setObjectScene(INV_TYRONE_ID, 1); + _sceneMode = 0; signal(); break; case 8: - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); BF_GLOBALS._player.changeAngle(225); - _object3.changeAngle(45); + _harrison.changeAngle(45); _sceneMode = 4114; _stripManager.start(4120, this); break; @@ -723,74 +732,82 @@ void Scene410::signal() { _stripManager.start(4111, this); _field1FBA = 1; BF_GLOBALS.setFlag(fCuffedFrankie); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); break; case 10: - BF_GLOBALS._player.updateAngle(_object3._position); + BF_GLOBALS._player.updateAngle(_harrison._position); _sceneMode = 0; break; case 4100: BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4100, &_object2, &_object5, NULL); - BF_GLOBALS._walkRegions.proc1(16); + setAction(&_sequenceManager1, this, 4100, &_passenger, &_object5, NULL); + BF_GLOBALS._walkRegions.disableRegion(16); break; case 4101: + // Driver gets out of the car BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4100, &_object1, &_object6, NULL); + setAction(&_sequenceManager1, this, 4101, &_driver, &_object6, NULL); BF_GLOBALS.setFlag(fDriverOutOfTruck); - BF_GLOBALS._walkRegions.proc1(7); + BF_GLOBALS._walkRegions.disableRegion(7); break; case 4103: + // Click on moto to ask for backup BF_GLOBALS._player.disableControl(); _sceneMode = 1; setAction(&_sequenceManager1, this, 4103, &BF_GLOBALS._player, NULL); break; case 4104: + // After call for backup, patrol car is coming _field1FC4 = 1; BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4104, &_object4, &_object3, NULL); + setAction(&_sequenceManager1, this, 4104, &_patrolCar, &_harrison, NULL); break; case 4105: + // Second guy gets nervous BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4105, &_object2, NULL); + setAction(&_sequenceManager1, this, 4105, &_passenger, NULL); + break; case 4106: BF_GLOBALS._player.disableControl(); _sceneMode = 4119; - setAction(&_sequenceManager1, this, 4106, &_object2, NULL); + setAction(&_sequenceManager1, this, 4106, &_passenger, NULL); break; case 4107: BF_GLOBALS._player.disableControl(); _sceneMode = 5; - setAction(&_sequenceManager1, this, 4107, &_object2, NULL); + setAction(&_sequenceManager1, this, 4107, &BF_GLOBALS._player, &_passenger, NULL); break; case 4108: BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); BF_GLOBALS._player.updateAngle(Common::Point(100, 170)); - BF_GLOBALS._walkRegions.proc2(22); - BF_GLOBALS._walkRegions.proc2(16); + BF_GLOBALS._walkRegions.enableRegion(22); + BF_GLOBALS._walkRegions.enableRegion(7); + BF_GLOBALS._walkRegions.enableRegion(16); BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4108, &_object3, NULL); + setAction(&_sequenceManager1, this, 4108, &_harrison, NULL); break; case 4109: + // Harrison puts handcuffs to driver if ((BF_GLOBALS._player._position.x > 116) && (BF_GLOBALS._player._position.x != 195) && (BF_GLOBALS._player._position.y != 139)) { - ADD_PLAYER_MOVER(195, 139); + ADD_PLAYER_MOVER_NULL(BF_GLOBALS._player, 195, 139); } - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4109, &_object1, &_object3, NULL); + setAction(&_sequenceManager1, this, 4109, &_driver, &_harrison, NULL); break; case 4110: + // Harrisson takes care of the driver BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4110, &_object3, &_object1, NULL); + setAction(&_sequenceManager1, this, 4110, &_harrison, &_driver, NULL); break; case 4112: BF_GLOBALS.setFlag(fGangInCar); @@ -798,21 +815,21 @@ void Scene410::signal() { BF_GLOBALS._player.updateAngle(Common::Point(100, 170)); BF_GLOBALS._player.disableControl(); _sceneMode = 4108; - setAction(&_sequenceManager1, this, 4112, &_object1, &_object2, &_object3, NULL); + setAction(&_sequenceManager1, this, 4112, &_driver, &_passenger, &_harrison, NULL); break; case 4114: - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); BF_GLOBALS._player.disableControl(); _sceneMode = 4116; - setAction(&_sequenceManager1, this, 4114, &_object3, &_object4, NULL); + setAction(&_sequenceManager1, this, 4114, &_harrison, &_patrolCar, NULL); break; case 4116: - BF_GLOBALS._walkRegions.proc2(21); - BF_GLOBALS._walkRegions.proc2(22); - _object3.remove(); + BF_GLOBALS._walkRegions.enableRegion(21); + BF_GLOBALS._walkRegions.enableRegion(22); + _harrison.remove(); BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4116, &_object4, NULL); + setAction(&_sequenceManager1, this, 4116, &_patrolCar, NULL); break; case 4118: BF_GLOBALS._player.disableControl(); @@ -822,30 +839,30 @@ void Scene410::signal() { case 4119: BF_GLOBALS._player.disableControl(); _sceneMode = 4107; - setAction(&_sequenceManager1, this, 4119, &_object2, NULL); + setAction(&_sequenceManager1, this, 4119, &BF_GLOBALS._player, &_passenger, NULL); break; case 4121: BF_GLOBALS._player.disableControl(); _sceneMode = 6; - setAction(&_sequenceManager1, this, 4121, &BF_GLOBALS._player, &_object2, NULL); + setAction(&_sequenceManager1, this, 4121, &BF_GLOBALS._player, &_passenger, NULL); break; case 4122: - BF_GLOBALS._walkRegions.proc2(22); + BF_GLOBALS._walkRegions.enableRegion(22); BF_INVENTORY.setObjectScene(INV_22_SNUB, 0); BF_GLOBALS._player.disableControl(); _sceneMode = 0; - setAction(&_sequenceManager1, this, 4122, &_object2, &_object3, NULL); + setAction(&_sequenceManager1, this, 4122, &_passenger, &_harrison, NULL); break; case 4123: BF_INVENTORY.setObjectScene(INV_TYRONE_ID, 0); BF_GLOBALS._player.disableControl(); _sceneMode = 5; - setAction(&_sequenceManager1, this, 4123, &_object1, &BF_GLOBALS._player, NULL); + setAction(&_sequenceManager1, this, 4123, &_driver, &BF_GLOBALS._player, NULL); break; case 4124: BF_GLOBALS._player.disableControl(); _sceneMode = 7; - setAction(&_sequenceManager1, this, 4124, &_object1, &BF_GLOBALS._player, NULL); + setAction(&_sequenceManager1, this, 4124, &_driver, &BF_GLOBALS._player, NULL); break; case 4127: SceneItem::display2(410, 16); @@ -867,14 +884,14 @@ void Scene410::process(Event &event) { event.handled = true; BF_GLOBALS._player.disableControl(); _sceneMode = 2; - setAction(&_sequenceManager1, this, 4102, &_object2, &BF_GLOBALS._player, NULL); + setAction(&_sequenceManager1, this, 4102, &_passenger, &BF_GLOBALS._player, NULL); } } else if (BF_GLOBALS.getFlag(fTalkedDriverNoBkup)) { if (!_action) { _sceneMode = 1; BF_GLOBALS._player.disableControl(); _sceneMode = 2; - setAction(&_sequenceManager1, this, 4120, &_object2, &BF_GLOBALS._player, NULL); + setAction(&_sequenceManager1, this, 4120, &_passenger, &BF_GLOBALS._player, NULL); } } } @@ -886,7 +903,7 @@ void Scene410::process(Event &event) { void Scene410::dispatch() { SceneExt::dispatch(); if ((_sceneMode == 4112) || (_sceneMode == 4101)) { - _object3.updateAngle(_object1._position); + _harrison.updateAngle(_driver._position); } } @@ -911,6 +928,17 @@ bool Scene415::GunInset::startAction(CursorType action, Event &event) { } } +void Scene415::GunInset::remove() { + Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene; + + BF_GLOBALS._player.disableControl(); + scene->_gunAndWig.remove(); + FocusObject::remove(); + + scene->_sceneMode = 0; + scene->_animatedSeat.animate(ANIM_MODE_6, scene); +} + bool Scene415::GunAndWig::startAction(CursorType action, Event &event) { Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene; @@ -920,19 +948,19 @@ bool Scene415::GunAndWig::startAction(CursorType action, Event &event) { BF_INVENTORY.setObjectScene(INV_AUTO_RIFLE, 1); BF_INVENTORY.setObjectScene(INV_WIG, 1); BF_GLOBALS.setFlag(fGotAutoWeapon); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); remove(); return true; case INV_FOREST_RAP: - if (scene->_fieldE14) + if (scene->_scoreWigRapFlag) break; BF_GLOBALS._player.disableControl(); scene->_sceneMode = 0; scene->_stripManager.start(4126, scene); - BF_GLOBALS._uiElements.addScore(50); - scene->_fieldE14 = true; + T2_GLOBALS._uiElements.addScore(50); + scene->_scoreWigRapFlag = true; return true; default: break; @@ -945,7 +973,7 @@ bool Scene415::BulletsInset::startAction(CursorType action, Event &event) { Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene; if (action == CURSOR_USE) { - if (BF_GLOBALS.getFlag(fGotAutoWeapon)) { + if (BF_GLOBALS.getFlag(fGotBulletsFromDash)) { FocusObject::startAction(action, event); } else { remove(); @@ -957,6 +985,13 @@ bool Scene415::BulletsInset::startAction(CursorType action, Event &event) { } } +void Scene415::BulletsInset::remove() { + Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene; + + scene->_theBullets.remove(); + FocusObject::remove(); +} + bool Scene415::DashDrawer::startAction(CursorType action, Event &event) { Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene; @@ -976,23 +1011,22 @@ bool Scene415::TheBullets::startAction(CursorType action, Event &event) { NamedObject::startAction(action, event); BF_INVENTORY.setObjectScene(INV_22_BULLET, 1); BF_GLOBALS.setFlag(fGotBulletsFromDash); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); remove(); scene->_dashDrawer.remove(); return true; case INV_FOREST_RAP: - if (scene->_fieldE16) { + if (scene->_scoreBulletRapFlag) { SceneItem::display2(415, 35); - return true; } else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 0; scene->_stripManager.start(4122, scene); - BF_GLOBALS._uiElements.addScore(50); - scene->_fieldE16 = true; + T2_GLOBALS._uiElements.addScore(50); + scene->_scoreBulletRapFlag = true; } - break; + return true; default: break; } @@ -1012,7 +1046,7 @@ bool Scene415::Lever::startAction(CursorType action, Event &event) { } else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 2; - scene->setAction(&scene->_sequenceManager, scene, 4150, &scene->_object6, NULL); + scene->setAction(&scene->_sequenceManager, scene, 4150, &scene->_animatedSeat, NULL); } return true; default: @@ -1023,13 +1057,13 @@ bool Scene415::Lever::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene415::Scene415(): SceneExt() { - _fieldE14 = _fieldE16 = false; + _scoreWigRapFlag = _scoreBulletRapFlag = false; } void Scene415::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_fieldE14); - s.syncAsSint16LE(_fieldE16); + s.syncAsSint16LE(_scoreWigRapFlag); + s.syncAsSint16LE(_scoreBulletRapFlag); } void Scene415::postInit(SceneObjectList *OwnerList) { @@ -1044,11 +1078,11 @@ void Scene415::postInit(SceneObjectList *OwnerList) { _dashDrawer.setPosition(Common::Point(151, 97)); _dashDrawer.setDetails(415, 22, -1, -1, 1, NULL); - _object6.postInit(); - _object6.setVisage(419); - _object6.setStrip(1); - _object6.setPosition(Common::Point(306, 116)); - _object6.fixPriority(80); + _animatedSeat.postInit(); + _animatedSeat.setVisage(419); + _animatedSeat.setStrip(1); + _animatedSeat.setPosition(Common::Point(306, 116)); + _animatedSeat.fixPriority(80); _windowLever.setDetails(16, 415, 25, -1, 26, 1); _item7.setDetails(17, 415, 32, -1, 33, 1); @@ -1058,7 +1092,7 @@ void Scene415::postInit(SceneObjectList *OwnerList) { _dashboard.setDetails(20, 415, 11, 12, 19, 1); _steeringWheel.setDetails(15, 415, 5, 6, 7, 1); _horn.setDetails(31, 415, 8, 9, 10, 1); - _item1.setDetails(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y), 415, 0, 1, 2, 1, NULL); + _item1.setDetails(Rect(0, 0, SCREEN_WIDTH, UI_INTERFACE_Y), 415, 0, 1, 2, 1, NULL); BF_GLOBALS._player.enableControl(); BF_GLOBALS._player._canWalk = false; @@ -1241,8 +1275,8 @@ void Scene440::postInit(SceneObjectList *OwnerList) { _lyle.setPosition(Common::Point(135, 128)); _lyle.show(); - BF_GLOBALS._walkRegions.proc1(12); - BF_GLOBALS._walkRegions.proc1(13); + BF_GLOBALS._walkRegions.disableRegion(12); + BF_GLOBALS._walkRegions.disableRegion(13); } else { _vechile.setPosition(Common::Point(169, 121)); _vechile.fixPriority(117); @@ -1263,7 +1297,7 @@ void Scene440::postInit(SceneObjectList *OwnerList) { } BF_GLOBALS._sceneItems.push_back(&_vechile); - BF_GLOBALS._walkRegions.proc1(11); + BF_GLOBALS._walkRegions.disableRegion(11); _doorway.postInit(); _doorway.setVisage(440); @@ -1287,7 +1321,7 @@ void Scene440::postInit(SceneObjectList *OwnerList) { BF_GLOBALS._player.enableControl(); } - _item1.setBounds(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y - 1)); + _item1.setBounds(Rect(0, 0, SCREEN_WIDTH, UI_INTERFACE_Y - 1)); BF_GLOBALS._sceneItems.push_back(&_item1); } @@ -1314,7 +1348,7 @@ void Scene440::signal() { * *--------------------------------------------------------------------------*/ -bool Scene450::Object1::startAction(CursorType action, Event &event) { +bool Scene450::Weasel::startAction(CursorType action, Event &event) { Scene450 *scene = (Scene450 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -1338,7 +1372,7 @@ bool Scene450::Object1::startAction(CursorType action, Event &event) { case INV_FOREST_RAP: BF_INVENTORY.setObjectScene(INV_FOREST_RAP, 450); BF_GLOBALS._player.disableControl(); - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); scene->_sceneMode = 4505; scene->setAction(&scene->_sequenceManager, scene, 4505, &BF_GLOBALS._player, this, @@ -1349,7 +1383,7 @@ bool Scene450::Object1::startAction(CursorType action, Event &event) { } } -bool Scene450::Object3::startAction(CursorType action, Event &event) { +bool Scene450::PinBoy::startAction(CursorType action, Event &event) { Scene450 *scene = (Scene450 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -1378,7 +1412,7 @@ bool Scene450::Object3::startAction(CursorType action, Event &event) { } } -bool Scene450::Object4::startAction(CursorType action, Event &event) { +bool Scene450::Manager::startAction(CursorType action, Event &event) { Scene450 *scene = (Scene450 *)BF_GLOBALS._sceneManager._scene; switch (action) { @@ -1438,7 +1472,7 @@ bool Scene450::Object4::startAction(CursorType action, Event &event) { SceneItem::display2(450, 16); BF_GLOBALS._player.enableControl(); } else { - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); scene->_sceneMode = 4510; BF_INVENTORY.setObjectScene(INV_NAPKIN, 450); scene->setAction(&scene->_sequenceManager, scene, 4510, &BF_GLOBALS._player, this, NULL); @@ -1453,12 +1487,12 @@ bool Scene450::Object4::startAction(CursorType action, Event &event) { BF_GLOBALS._player.disableControl(); if (!BF_GLOBALS.getFlag(showEugeneID)) - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); BF_GLOBALS.setFlag(showEugeneID); if ((BF_GLOBALS.getFlag(showRapEugene) || BF_GLOBALS.getFlag(showEugeneNapkin)) && !BF_GLOBALS.getFlag(fMgrCallsWeasel)) { - BF_GLOBALS._uiElements.addScore(30); + T2_GLOBALS._uiElements.addScore(30); scene->_sceneMode = 4511; scene->setAction(&scene->_sequenceManager, scene, 4511, &BF_GLOBALS._player, this, NULL); } else { @@ -1474,7 +1508,7 @@ bool Scene450::Object4::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ -bool Scene450::Item1::startAction(CursorType action, Event &event) { +bool Scene450::Exit::startAction(CursorType action, Event &event) { Scene450 *scene = (Scene450 *)BF_GLOBALS._sceneManager._scene; if (event.eventType == EVENT_BUTTON_DOWN) { @@ -1534,26 +1568,27 @@ void Scene450::postInit(SceneObjectList *OwnerList) { _counterDoor.setDetails(450, 12, -1, 13, 1, NULL); if (BF_GLOBALS._dayNumber != 3) { - _object3.postInit(); - _object3.setVisage(463); - _object3.setPosition(Common::Point(138, 121)); - _object3.fixPriority(100); - _object3.setFrame(_object3.getFrameCount()); - BF_GLOBALS._sceneItems.push_back(&_object3); + _pinBoy.postInit(); + _pinBoy.setVisage(463); + _pinBoy.setPosition(Common::Point(138, 121)); + _pinBoy.fixPriority(100); + _pinBoy.setFrame(_pinBoy.getFrameCount()); + BF_GLOBALS._sceneItems.push_back(&_pinBoy); } else if (!BF_GLOBALS.getFlag(fWithLyle) || !BF_GLOBALS.getFlag(fGivenNapkin) || - (BF_INVENTORY.getObjectScene(BF_ITEM_67) == 1)) { - _object3.postInit(); - _object3.setVisage(463); - _object3.setPosition(Common::Point(138, 121)); - _object3.fixPriority(100); - _object3.setFrame(_object3.getFrameCount()); - BF_GLOBALS._sceneItems.push_back(&_object3); + (BF_INVENTORY.getObjectScene(INV_CARAVAN_KEY) == 1)) { + _pinBoy.postInit(); + _pinBoy.setVisage(463); + _pinBoy.setPosition(Common::Point(138, 121)); + _pinBoy.fixPriority(100); + _pinBoy.setFrame(_pinBoy.getFrameCount()); + BF_GLOBALS._sceneItems.push_back(&_pinBoy); } else { - _object4.postInit(); - _object4.setVisage(467); - _object4.setPosition(Common::Point(138, 121)); - _object4.changeZoom(-1); - BF_GLOBALS._sceneItems.push_back(&_object4); + _manager.postInit(); + _manager.setVisage(467); + _manager.setPosition(Common::Point(138, 121)); + _manager.changeZoom(-1); + _manager.fixPriority(100); + BF_GLOBALS._sceneItems.push_back(&_manager); if (!BF_GLOBALS.getFlag(takenWeasel)) { _object2.postInit(); @@ -1565,18 +1600,18 @@ void Scene450::postInit(SceneObjectList *OwnerList) { _object2.changeZoom(-1); _object2.setDetails(450, 2, 18, 3, 1, NULL); - BF_GLOBALS._walkRegions.proc1(4); - - _object1.postInit(); - _object1.setVisage(466); - _object1.animate(ANIM_MODE_1, NULL); - _object1.setObjectWrapper(new SceneObjectWrapper()); - _object1.setPosition(Common::Point(70, 80)); - _object1.setStrip(5); - _object1.changeZoom(90); - _object1.fixPriority(65); - _object1._flag = 0; - BF_GLOBALS._sceneItems.push_back(&_object1); + BF_GLOBALS._walkRegions.disableRegion(4); + + _weasel.postInit(); + _weasel.setVisage(466); + _weasel.animate(ANIM_MODE_1, NULL); + _weasel.setObjectWrapper(new SceneObjectWrapper()); + _weasel.setPosition(Common::Point(70, 80)); + _weasel.setStrip(5); + _weasel.changeZoom(90); + _weasel.fixPriority(65); + _weasel._flag = 0; + BF_GLOBALS._sceneItems.push_back(&_weasel); } } @@ -1597,20 +1632,22 @@ void Scene450::signal() { break; case 4501: if (BF_GLOBALS._sceneObjects->contains(&_object2)) { + _sceneMode = 450; ADD_MOVER(_object2, -20, 135); } else { + _sceneMode = 451; ADD_PLAYER_MOVER(0, 160); } break; case 4503: - _object1.fixPriority(100); + _weasel.fixPriority(100); BF_GLOBALS._player.enableControl(); break; case 4505: BF_GLOBALS.setFlag(takenWeasel); - _object1.remove(); + _weasel.remove(); _object2.remove(); - BF_GLOBALS._walkRegions.proc2(4); + BF_GLOBALS._walkRegions.enableRegion(4); BF_GLOBALS._player.enableControl(); break; case 4507: @@ -1619,18 +1656,18 @@ void Scene450::signal() { BF_GLOBALS.setFlag(fMgrCallsWeasel); _field19AC = 1; _sceneMode = 4503; - setAction(&_sequenceManager, this, 4503, &_object1, &_door, &_object4, NULL); + setAction(&_sequenceManager, this, 4503, &_weasel, &_door, &_manager, NULL); break; case 4508: - _object4.remove(); + _manager.remove(); BF_GLOBALS._player.enableControl(); BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); break; case 4517: BF_GLOBALS.setFlag(gotTrailer450); - BF_INVENTORY.setObjectScene(BF_ITEM_67, 1); + BF_INVENTORY.setObjectScene(INV_CARAVAN_KEY, 1); _sceneMode = 4508; - setAction(&_sequenceManager, this, 4508, &BF_GLOBALS._player, &_object4, &_door, NULL); + setAction(&_sequenceManager, this, 4508, &BF_GLOBALS._player, &_manager, &_door, NULL); break; default: BF_GLOBALS._player.enableControl(); @@ -1641,7 +1678,7 @@ void Scene450::signal() { void Scene450::process(Event &event) { SceneExt::process(event); - if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) { + if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) { // Check if the cursor is on an exit if (_exit.contains(event.mousePos)) { GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW); |