diff options
| author | Strangerke | 2012-01-08 21:50:32 +0100 | 
|---|---|---|
| committer | Strangerke | 2012-01-08 21:50:32 +0100 | 
| commit | 2dc3111bbefbd1233db08e1d05d5eab90e1e264d (patch) | |
| tree | ac4f1efb945125c09fea6a667251dee6309b7d0c | |
| parent | a4a2878a3716dfbb3b04e6d10d68a99c55a4dd85 (diff) | |
| download | scummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.tar.gz scummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.tar.bz2 scummvm-rg350-2dc3111bbefbd1233db08e1d05d5eab90e1e264d.zip | |
TSAGE: R2R - Implement scene 1525
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 3 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 44 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.h | 8 | 
3 files changed, 54 insertions, 1 deletions
| diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index ee49c238ee..5eccafefdf 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -107,8 +107,11 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {  	case 1330:  		error("Missing scene %d from group 1", sceneNumber);  	case 1500: +		// Cutscene: Ship landing  		return new Scene1500();  	case 1525: +		// Cutscene - Ship +		return new Scene1525();  	case 1530:  	case 1550:  	case 1575: diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 17422019b0..1afb1b6509 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -858,7 +858,7 @@ void Scene1100::saveCharacter(int characterIndex) {  }  /*-------------------------------------------------------------------------- - * Scene 1500 - + * Scene 1500 - Cutscene: Ship landing   *   *--------------------------------------------------------------------------*/  void Scene1500::postInit(SceneObjectList *OwnerList) { @@ -1015,5 +1015,47 @@ void Scene1500::dispatch() {  	Scene::dispatch();  } +/*-------------------------------------------------------------------------- + * Scene 1525 - Cutscene - Ship + * + *--------------------------------------------------------------------------*/ +void Scene1525::postInit(SceneObjectList *OwnerList) { +	loadScene(1525); +	R2_GLOBALS._v58CE2 = 0; +	SceneExt::postInit(); + +	R2_GLOBALS._player.postInit(); +	if (R2_GLOBALS._sceneManager._previousScene == 525) +		R2_GLOBALS._player.setup(1525, 1, 1); +	else +		R2_GLOBALS._player.setup(1525, 1, 16); +	R2_GLOBALS._player.setPosition(Common::Point(244, 148)); +	R2_GLOBALS._player.disableControl(); + +	_sceneMode = 0; +	setAction(&_sequenceManager, this, 2, &R2_GLOBALS._player, NULL); +} + +void Scene1525::signal() { +	switch (_sceneMode++) { +	case 0: +		if (R2_GLOBALS._sceneManager._previousScene == 525) +			setAction(&_sequenceManager, this, 1525, &R2_GLOBALS._player, NULL); +		else +			setAction(&_sequenceManager, this, 1526, &R2_GLOBALS._player, NULL); +		break; +	case 1: +		setAction(&_sequenceManager, this, 2, &R2_GLOBALS._player, NULL); +		break; +	case 2: +		if (R2_GLOBALS._sceneManager._previousScene == 1530) +			R2_GLOBALS._sceneManager.changeScene(1550); +		else +			R2_GLOBALS._sceneManager.changeScene(1530); +	default: +		break; +	} +} +  } // End of namespace Ringworld2  } // End of namespace TsAGE diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index a88451e406..4c6d3ba6dc 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -130,6 +130,14 @@ public:  	virtual void signal();  	virtual void dispatch();  }; + +class Scene1525 : public SceneExt { +public: +	SequenceManager _sequenceManager; + +	virtual void postInit(SceneObjectList *OwnerList = NULL); +	virtual void signal(); +};  } // End of namespace Ringworld2  } // End of namespace TsAGE | 
