Esempio n. 1
0
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;
	}
}
Esempio n. 2
0
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;
	}
}