void Scene710::Action1::signal() { Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene; switch (_actionIndex++) { case 0: BF_GLOBALS._player.disableControl(); _state = 7104; if (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1) _state = 7105; setDelay(3); break; case 1: { ADD_MOVER(BF_GLOBALS._player, scene->_laura._position.x + 8, scene->_laura._position.y + 8); break; } case 2: BF_GLOBALS._player._strip = 2; scene->_stripManager.start(_state, this); break; case 3: if (_state != 7105) BF_GLOBALS._player.enableControl(); else { BF_GLOBALS._player.disableControl(); scene->_sceneMode = 7106; scene->setAction(&scene->_sequenceManager1, scene, 7106, &BF_GLOBALS._player, &scene->_laura, &scene->_kid, &scene->_dog, NULL); } if (_state < 7104) { _state++; if ((_state == 7104) && (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1)) _state = 7105; } remove(); break; default: break; } }
void SherlockLogoScene::Action1::signal() { SherlockLogoScene &scene = *(SherlockLogoScene *)GLOBALS._sceneManager._scene; switch (_actionIndex++) { case 0: // Load scene palette GLOBALS._scenePalette.loadPalette(1111); GLOBALS._scenePalette.loadPalette(1); GLOBALS._scenePalette.refresh(); setDelay(1); break; case 1: // Fade in the spotlight background GLOBALS._scenePalette.addFader(scene._palette1._palette, 256, 6, this); break; case 2: // First half of square, circle, and triangle bouncing scene._object1.postInit(); scene._object1.setVisage("0016.vis"); scene._object1._strip = 1; scene._object1._frame = 1; scene._object1.setPosition(Common::Point(169, 107)); scene._object1.changeZoom(100); scene._object1._numFrames = 7; scene._object1.animate(ANIM_MODE_5, this); break; case 3: // Remainder of bouncing square, circle, and triangle coming to rest scene._object1._strip = 2; scene._object1._frame = 1; scene._object1.changeZoom(100); scene._object1.animate(ANIM_MODE_4, 11, 1, this); break; case 4: // Fade out background without fading out the shapes GLOBALS._scenePalette.addFader(scene._palette2._palette, 256, 6, this); break; case 5: scene._backSurface.fillRect(scene._sceneBounds, 0); scene._gfxManager2.activate(); scene._gfxManager2.fillRect(scene._sceneBounds, 0); scene._gfxManager2.deactivate(); //word_2B4AA = 3; setDelay(10); break; case 6: GLOBALS._scenePalette.loadPalette(12); GLOBALS._scenePalette.refresh(); setDelay(1); break; case 7: // Animation of shapes expanding upwards to form larger EA logo scene._object1.setVisage("0012.vis"); scene._object1._strip = 1; scene._object1._frame = 1; scene._object1.changeZoom(100); scene._object1.setPosition(Common::Point(170, 142)); scene._object1._numFrames = 7; scene._object1.animate(ANIM_MODE_5, (const void *)nullptr); ADD_MOVER(scene._object1, 158, 71); break; case 8: GLOBALS._scenePalette.addFader(scene._palette3._palette, 256, 40, this); break; case 9: // Show 'Electronic Arts' company name scene._object2.postInit(nullptr); scene._object2.setVisage("0014.vis"); scene._object2._strip = 1; scene._object2._frame = 1; scene._object2.setPosition(Common::Point(152, 98)); scene._object2.changeZoom(100); scene._object2.animate(ANIM_MODE_NONE, (const void *)nullptr); setDelay(120); break; case 10: // Remainder of steps is positioning and sizing hand cursorin an arc scene._object3.postInit(); scene._object3.setVisage("0018.vis"); scene._object3._strip = 1; scene._object3._frame = 1; scene._object3.setPosition(Common::Point(33, 91)); scene._object3.changeZoom(100); scene._object3.animate(ANIM_MODE_NONE, (const void *)nullptr); setDelay(5); break; case 11: scene._object3._frame = 2; scene._object3.setPosition(Common::Point(44, 124)); setDelay(5); break; case 12: scene._object3._frame = 3; scene._object3.setPosition(Common::Point(64, 153)); setDelay(5); break; case 13: scene._object3._frame = 4; scene._object3.setPosition(Common::Point(87, 174)); setDelay(5); break; case 14: scene._object3._frame = 5; scene._object3.setPosition(Common::Point(114, 191)); setDelay(5); break; case 15: scene._object3._frame = 6; scene._object3.setPosition(Common::Point(125, 184)); setDelay(5); break; case 16: scene._object3._frame = 7; scene._object3.setPosition(Common::Point(154, 187)); setDelay(5); break; case 17: scene._object3._frame = 8; scene._object3.setPosition(Common::Point(181, 182)); setDelay(5); break; case 18: scene._object3._frame = 9; scene._object3.setPosition(Common::Point(191, 167)); setDelay(5); break; case 19: scene._object3._frame = 10; scene._object3.setPosition(Common::Point(190, 150)); setDelay(5); break; case 20: scene._object3._frame = 11; scene._object3.setPosition(Common::Point(182, 139)); setDelay(5); break; case 21: scene._object3._frame = 11; scene._object3.setPosition(Common::Point(170, 130)); setDelay(5); break; case 22: scene._object3._frame = 11; scene._object3.setPosition(Common::Point(158, 121)); setDelay(8); break; case 23: // Show a highlighting of the company name scene._object3.hide(); scene._object4.show(); scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; case 24: scene._object4._frame = 2; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; case 25: scene._object2.remove(); setDelay(1); break; case 26: scene._object4._frame = 3; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; case 27: scene._object4._frame = 4; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; break; case 28: scene._object4._frame = 5; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; break; case 29: scene._object4._frame = 6; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; break; case 30: scene._object4._frame = 7; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; break; case 31: scene._object4._frame = 8; scene._object4.setPosition(Common::Point(155, 94)); setDelay(8); break; case 32: setDelay(180); break; default: scene.finish(); remove(); break; } }