diff options
| author | Paul Gilbert | 2011-10-07 09:09:59 +1100 | 
|---|---|---|
| committer | Paul Gilbert | 2011-10-08 09:14:16 +1100 | 
| commit | e651f36d435decfecf9c0b7b30eee68e9421f8b1 (patch) | |
| tree | b5319f6dd27a4ebd5434fad0dd9cca6ec50e7eae | |
| parent | 1651024cdc2c7e25db7e2a00c21b36d737130662 (diff) | |
| download | scummvm-rg350-e651f36d435decfecf9c0b7b30eee68e9421f8b1.tar.gz scummvm-rg350-e651f36d435decfecf9c0b7b30eee68e9421f8b1.tar.bz2 scummvm-rg350-e651f36d435decfecf9c0b7b30eee68e9421f8b1.zip  | |
TSAGE: Implemented Blue Force scene 280 - Bedroom Flashback cut-scene
| -rw-r--r-- | engines/tsage/blue_force/blueforce_logic.cpp | 3 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_scenes2.cpp | 119 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_scenes2.h | 14 | 
3 files changed, 135 insertions, 1 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index 247fc4b9f2..614d116a05 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -101,7 +101,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {  		// Living Room & Kitchen #2  		return new Scene271();  	case 280: -		error("Scene group 2 not implemented"); +		// Bedroom Flashback cut-scene +		return new Scene280();  	case 300:  		// Outside Police Station  		return new Scene300(); diff --git a/engines/tsage/blue_force/blueforce_scenes2.cpp b/engines/tsage/blue_force/blueforce_scenes2.cpp index 7d66c7a52b..05833e861b 100644 --- a/engines/tsage/blue_force/blueforce_scenes2.cpp +++ b/engines/tsage/blue_force/blueforce_scenes2.cpp @@ -1653,6 +1653,8 @@ void Scene271::signal() {  		_sceneMode = 13;  		addFader((const byte *)&black, 2, this);  		break; +	default: +		break;  	}  } @@ -1715,6 +1717,123 @@ void Scene271::dispatch() {  	SceneExt::dispatch();  } +/*-------------------------------------------------------------------------- + * Scene 280 - Bedroom Flashback cut-scene + * + *--------------------------------------------------------------------------*/ + +void Scene280::Action1::signal() { +	Scene280 *scene = (Scene280 *)BF_GLOBALS._sceneManager._scene; +	static uint32 black = 0; + +	switch (_actionIndex++) { +	case 0: +		scene->_jake.postInit(); +		scene->_jake.setVisage(283); +		scene->_jake.setPosition(Common::Point(331, 200)); +		scene->_jake.animate(ANIM_MODE_1, NULL); +		scene->_jake.setStrip(1); +		ADD_MOVER(scene->_jake, 189, 131); +		break; +	case 1: +		scene->_jake.setStrip(2); +		scene->_jake.setFrame(1); +		scene->_jake.animate(ANIM_MODE_8, NULL); +		scene->_jake._numFrames = 5; +		 +		scene->_stripManager.start(2800, this); +		break; +	case 2: +		scene->_jake.animate(ANIM_MODE_5, NULL); +		scene->_dad.animate(ANIM_MODE_5, this); +		break; +	case 3: +		scene->_jake.setStrip(4); +		scene->_jake.setFrame(1); +		scene->_dad.setStrip(2); +		scene->_jake.setFrame(1); +		scene->_dad.animate(ANIM_MODE_5, this); +		break; +	case 4: +		scene->_dad.setStrip(3); +		scene->_dad.setFrame(1); +		scene->_dad.animate(ANIM_MODE_5, this); +		break; +	case 5: +		scene->_object4.hide(); +		scene->_dad.setVisage(282); +		scene->_dad.setStrip(1); +		scene->_dad.setFrame(1); +		scene->_dad._numFrames = 5; +		scene->_dad.animate(ANIM_MODE_5, this); +		break; +	case 6: +		scene->_stripManager.start(2801, this); +		break; +	case 7: +		scene->_mum.postInit(); +		scene->_mum.setVisage(282); +		scene->_mum.setStrip(2); +		scene->_mum.setFrame(1); +		scene->_mum.fixPriority(1); +		scene->_mum.setPosition(Common::Point(160, 138)); + +		scene->_jake.setStrip(3); +		scene->_jake.setFrame(1); +		scene->_jake.animate(ANIM_MODE_5, this); + +		scene->_dad._numFrames = 10; +		scene->_dad.setVisage(284); +		scene->_dad.setStrip(1); +		scene->_dad.fixPriority(-1); +		scene->_dad.setPosition(Common::Point(174, 136)); +		scene->_dad.setFrame(1); +		scene->_dad.animate(ANIM_MODE_1, NULL); +		ADD_MOVER(scene->_dad, 438, 320); +		break; +	case 8: +		scene->_mum.animate(ANIM_MODE_4, 5, 1, this); +		break; +	case 9: +		scene->_sceneMode = 2; +		BF_GLOBALS._sound1.fadeOut2(NULL); +		scene->addFader((const byte *)&black, 2, scene); + +		scene->_jake.remove(); +		scene->_mum.animate(ANIM_MODE_5, NULL); +		break; +	} +} + +/*--------------------------------------------------------------------------*/ + +void Scene280::postInit(SceneObjectList *OwnerList) { +	PalettedScene::postInit(); +	BF_GLOBALS._interfaceY = SCREEN_HEIGHT; +	loadScene(280); + +	_stripManager.addSpeaker(&_gameTextSpeaker); + +	_dad.postInit(); +	_dad.setVisage(281); +	_dad.setPosition(Common::Point(160, 138)); +	_dad.fixPriority(1); + +	_object4.postInit(); +	_object4.setVisage(280); +	_object4.setPosition(Common::Point(139, 141)); + +	const uint32 black = 0; +	add2Faders((const byte *)&black, 2, 280, this); +	_sceneMode = 1; +	setAction(&_action1); +} + +void Scene280::signal() { +	if (_sceneMode == 2) +		BF_GLOBALS._sceneManager.changeScene(271); +} +  } // End of namespace BlueForce  } // End of namespace TsAGE diff --git a/engines/tsage/blue_force/blueforce_scenes2.h b/engines/tsage/blue_force/blueforce_scenes2.h index 2ec939be19..17e749d7a1 100644 --- a/engines/tsage/blue_force/blueforce_scenes2.h +++ b/engines/tsage/blue_force/blueforce_scenes2.h @@ -276,6 +276,20 @@ public:  	virtual void dispatch();  }; +class Scene280: public PalettedScene { +	/* Actions */ +	class Action1: public ActionExt { +	public: +		virtual void signal(); +	}; +public: +	Action1 _action1; +	SpeakerGameText _gameTextSpeaker; +	NamedObject _jake, _dad, _mum, _object4; + +	void postInit(SceneObjectList *OwnerList); +	virtual void signal(); +};  } // End of namespace BlueForce  | 
