diff options
| -rw-r--r-- | engines/tsage/converse.cpp | 3 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 1 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 153 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.h | 12 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_speakers.cpp | 6 | 
5 files changed, 91 insertions, 84 deletions
| diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp index 753a835389..909da62541 100644 --- a/engines/tsage/converse.cpp +++ b/engines/tsage/converse.cpp @@ -754,6 +754,9 @@ void StripManager::remove() {  	if (_onEnd)  		_onEnd(); +	if (g_vm->getGameID() == GType_Ringworld2) +		_endHandler = NULL; +  	Action::remove();  } diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index f1f9f9fe5a..2a8e50bd67 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -358,6 +358,7 @@ void SceneExt::postInit(SceneObjectList *OwnerList) {  void SceneExt::remove() {  	_sceneAreas.clear();  	Scene::remove(); +	R2_GLOBALS._uiElements._active = true;  }  void SceneExt::process(Event &event) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 6ea53d0852..021ccd44dc 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -672,7 +672,7 @@ void Scene1100::synchronize(Serializer &s) {  	s.syncAsSint16LE(_field414);  } -bool Scene1100::Actor16::startAction(CursorType action, Event &event) { +bool Scene1100::Seeker::startAction(CursorType action, Event &event) {  	Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene;  	if (action != CURSOR_TALK) @@ -706,7 +706,7 @@ bool Scene1100::Actor16::startAction(CursorType action, Event &event) {  	return true;  } -bool Scene1100::Actor17::startAction(CursorType action, Event &event) { +bool Scene1100::Trooper::startAction(CursorType action, Event &event) {  	Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene;  	switch (action) { @@ -714,7 +714,7 @@ bool Scene1100::Actor17::startAction(CursorType action, Event &event) {  		if (_visage == 1105) {  			R2_GLOBALS._player.disableControl();  			scene->_sceneMode = 1114; -			scene->setAction(&scene->_sequenceManager1, scene, 1114, &R2_GLOBALS._player, &scene->_actor17, NULL); +			scene->setAction(&scene->_sequenceManager1, scene, 1114, &R2_GLOBALS._player, &scene->_trooper, NULL);  			return true;  		} else {  			return SceneActor::startAction(action, event); @@ -727,19 +727,19 @@ bool Scene1100::Actor17::startAction(CursorType action, Event &event) {  			R2_GLOBALS._player.disableControl();  			if (R2_GLOBALS._player._characterIndex == 1) {  				scene->_sceneMode = 1112; -				scene->setAction(&scene->_sequenceManager1, scene, 1112, &R2_GLOBALS._player, &scene->_actor17, NULL); +				scene->setAction(&scene->_sequenceManager1, scene, 1112, &R2_GLOBALS._player, &scene->_trooper, NULL);  			} else {  				scene->_sceneMode = 1115; -				scene->setAction(&scene->_sequenceManager1, scene, 1115, &R2_GLOBALS._player, &scene->_actor17, NULL); +				scene->setAction(&scene->_sequenceManager1, scene, 1115, &R2_GLOBALS._player, &scene->_trooper, NULL);  			}  			return true;  		} else if (_strip == 2) {  			R2_GLOBALS._player.disableControl();  			scene->_sceneMode = 1113;  			if (R2_GLOBALS._player._characterIndex == 1) { -				scene->setAction(&scene->_sequenceManager1, scene, 1113, &R2_GLOBALS._player, &scene->_actor17, NULL); +				scene->setAction(&scene->_sequenceManager1, scene, 1113, &R2_GLOBALS._player, &scene->_trooper, NULL);  			} else { -				scene->setAction(&scene->_sequenceManager1, scene, 1118, &R2_GLOBALS._player, &scene->_actor17, NULL); +				scene->setAction(&scene->_sequenceManager1, scene, 1118, &R2_GLOBALS._player, &scene->_trooper, NULL);  			}  			return true;  		} else { @@ -752,7 +752,7 @@ bool Scene1100::Actor17::startAction(CursorType action, Event &event) {  	}  } -bool Scene1100::Actor18::startAction(CursorType action, Event &event) { +bool Scene1100::Chief::startAction(CursorType action, Event &event) {  	Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene;  	if ((action == CURSOR_TALK) && (!R2_GLOBALS.getFlag(54)) && (R2_GLOBALS.getFlag(52))) { @@ -824,28 +824,28 @@ void Scene1100::postInit(SceneObjectList *OwnerList) {  		R2_GLOBALS._player.hide();  		R2_GLOBALS._player.disableControl(); -		_actor16.postInit(); -		_actor16.hide(); +		_seeker.postInit(); +		_seeker.hide();  		if (R2_GLOBALS._player._characterIndex == 1) -			_actor16.setDetails(9002, 0, 4, 3, 1, (SceneItem *) NULL); +			_seeker.setDetails(9002, 0, 4, 3, 1, (SceneItem *) NULL);  		else -			_actor16.setDetails(9001, 0, 5, 3, 1, (SceneItem *) NULL); +			_seeker.setDetails(9001, 0, 5, 3, 1, (SceneItem *) NULL); -		_actor18.postInit(); -		_actor18.setup(1113, 3, 1); -		_actor18.setPosition(Common::Point(181, 125)); -		_actor18.fixPriority(110); +		_chief.postInit(); +		_chief.setup(1113, 3, 1); +		_chief.setPosition(Common::Point(181, 125)); +		_chief.fixPriority(110);  		if (R2_GLOBALS.getFlag(54)) -			_actor18.setDetails(1100, 4, -1, -1, 1, (SceneItem *) NULL); +			_chief.setDetails(1100, 4, -1, -1, 1, (SceneItem *) NULL);  		else -			_actor18.setDetails(1100, 3, -1, -1, 1, (SceneItem *) NULL); +			_chief.setDetails(1100, 3, -1, -1, 1, (SceneItem *) NULL); -		_actor17.postInit(); -		_actor17.setup(1105, 3, 1); -		_actor17.setPosition(Common::Point(312, 165)); -		_actor17._numFrames = 5; -		_actor17.setDetails(1100, 22, 23, 24, 1, (SceneItem *) NULL); +		_trooper.postInit(); +		_trooper.setup(1105, 3, 1); +		_trooper.setPosition(Common::Point(312, 165)); +		_trooper._numFrames = 5; +		_trooper.setDetails(1100, 22, 23, 24, 1, (SceneItem *) NULL);  		_actor1.postInit();  		_actor1.setup(1512, 1, 1); @@ -907,66 +907,66 @@ void Scene1100::postInit(SceneObjectList *OwnerList) {  		R2_GLOBALS._player.postInit();  		R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); -		_actor16.postInit(); +		_seeker.postInit();  		if (R2_GLOBALS.getFlag(52)) {  			if (R2_GLOBALS._player._characterIndex == 1) {  				R2_GLOBALS._player.setup(19, 7, 1); -				_actor16.setup(29, 6, 1); +				_seeker.setup(29, 6, 1);  			} else {  				R2_GLOBALS._player.setup(29, 7, 1); -				_actor16.setup(19, 6, 1); +				_seeker.setup(19, 6, 1);  			}  			R2_GLOBALS._player.setPosition(Common::Point(140, 124)); -			_actor16.setPosition(Common::Point(237, 134)); +			_seeker.setPosition(Common::Point(237, 134));  			R2_GLOBALS._player.enableControl();  		} else {  			if (R2_GLOBALS._player._characterIndex == 1) {  				R2_GLOBALS._player.setup(1107, 2, 1); -				_actor16.setup(1107, 4, 1); +				_seeker.setup(1107, 4, 1);  				R2_GLOBALS._player.setPosition(Common::Point(247, 169)); -				_actor16.setPosition(Common::Point(213, 169)); +				_seeker.setPosition(Common::Point(213, 169));  			} else {  				R2_GLOBALS._player.setup(1107, 4, 1); -				_actor16.setup(1107, 2, 1); +				_seeker.setup(1107, 2, 1);  				R2_GLOBALS._player.setPosition(Common::Point(213, 169)); -				_actor16.setPosition(Common::Point(247, 169)); +				_seeker.setPosition(Common::Point(247, 169));  			}  			R2_GLOBALS._player.enableControl();  			R2_GLOBALS._player._canWalk = false;  		}  		if (R2_GLOBALS._player._characterIndex == 1) -			_actor16.setDetails(9002, 0, 4, 3, 1, (SceneItem *) NULL); +			_seeker.setDetails(9002, 0, 4, 3, 1, (SceneItem *) NULL);  		else -			_actor16.setDetails(9001, 0, 5, 3, 1, (SceneItem *) NULL); +			_seeker.setDetails(9001, 0, 5, 3, 1, (SceneItem *) NULL); -		_actor18.postInit(); -		_actor18.setup(1113, 3, 1); -		_actor18.setPosition(Common::Point(181, 125)); -		_actor18.fixPriority(110); +		_chief.postInit(); +		_chief.setup(1113, 3, 1); +		_chief.setPosition(Common::Point(181, 125)); +		_chief.fixPriority(110);  		if (R2_GLOBALS.getFlag(54)) -			_actor18.setDetails(1100, 4, -1, -1, 1, (SceneItem *) NULL); +			_chief.setDetails(1100, 4, -1, -1, 1, (SceneItem *) NULL);  		else -			_actor18.setDetails(1100, 3, -1, -1, 1, (SceneItem *) NULL); +			_chief.setDetails(1100, 3, -1, -1, 1, (SceneItem *) NULL);  		if (!R2_GLOBALS.getFlag(52)) { -			_actor17.postInit(); +			_trooper.postInit();  			if (R2_GLOBALS.getFlag(53)) -				_actor17.setup(1106, 2, 4); +				_trooper.setup(1106, 2, 4);  			else -				_actor17.setup(1105, 4, 4); +				_trooper.setup(1105, 4, 4); -			_actor17.setPosition(Common::Point(17, 54)); -			_actor17._numFrames = 5; +			_trooper.setPosition(Common::Point(17, 54)); +			_trooper._numFrames = 5;  			if (R2_GLOBALS.getFlag(53)) -				_actor17.setDetails(1100, 28, -1, -1, 1, (SceneItem *) NULL); +				_trooper.setDetails(1100, 28, -1, -1, 1, (SceneItem *) NULL);  			else -				_actor17.setDetails(1100, 22, 23, 24, 1, (SceneItem *) NULL); +				_trooper.setDetails(1100, 22, 23, 24, 1, (SceneItem *) NULL); -			_actor17.fixPriority(200); +			_trooper.fixPriority(200);  		}  		_actor1.postInit();  		_actor1.setup(1512, 1, 1); @@ -1026,9 +1026,9 @@ void Scene1100::signal() {  		}  		break;  	case 4: -		_actor18.postInit(); -		_actor18.show(); -		setAction(&_sequenceManager1, this, 1101, &_actor18, &_actor10, NULL); +		_chief.postInit(); +		_chief.show(); +		setAction(&_sequenceManager1, this, 1101, &_chief, &_actor10, NULL);  		break;  	case 5:  		_actor13.postInit(); @@ -1054,12 +1054,12 @@ void Scene1100::signal() {  		}  		break;  	case 7: -		setAction(&_sequenceManager1, this, 1103, &_actor18, &_actor10); +		setAction(&_sequenceManager1, this, 1103, &_chief, &_actor10);  		break;  	case 8:  		R2_GLOBALS._player._effect = 0;  		_actor11.postInit(); -		setAction(&_sequenceManager1, this, 1105, &R2_GLOBALS._player, &_actor10, &_actor11, &_actor18, NULL); +		setAction(&_sequenceManager1, this, 1105, &R2_GLOBALS._player, &_actor10, &_actor11, &_chief, NULL);  		break;  	case 9:  		_object1.copySceneToBackground(); @@ -1090,8 +1090,8 @@ void Scene1100::signal() {  	// Really nothing  		break;  	case 13: -		_actor17.postInit(); -		R2_GLOBALS._scrollFollower = &_actor17; +		_trooper.postInit(); +		R2_GLOBALS._scrollFollower = &_trooper;  		_actor11.setup(1100, 2, 1);  		_actor11.setPosition(Common::Point(408, 121)); @@ -1099,7 +1099,7 @@ void Scene1100::signal() {  		_actor10.setup(1100, 3, 5);  		_actor10.setPosition(Common::Point(409, 121)); -		setAction(&_sequenceManager1, this, 1104, &_actor17, NULL); +		setAction(&_sequenceManager1, this, 1104, &_trooper, NULL);  		break;  	case 14:  		setAction(&_sequenceManager1, this, 1100, &_actor11, &_actor10, NULL); @@ -1115,14 +1115,14 @@ void Scene1100::signal() {  		break;  	case 21: {  		R2_GLOBALS._sound2.play(92); -		_actor17.animate(ANIM_MODE_5, NULL); +		_trooper.animate(ANIM_MODE_5, NULL);  		Common::Point pt(187, 45);  		NpcMover *mover = new NpcMover();  		_actor1.addMover(mover, &pt, this);  		}  		break;  	case 22: -		setAction(&_sequenceManager1, this, 1110, &_actor16, &R2_GLOBALS._player, NULL); +		setAction(&_sequenceManager1, this, 1110, &_seeker, &R2_GLOBALS._player, NULL);  		break;  	case 23:  		R2_GLOBALS._player.disableControl(); @@ -1136,34 +1136,37 @@ void Scene1100::signal() {  		break;  	case 25:  		R2_GLOBALS._player.disableControl(); -		_stripManager._lookupList[9] = 1; -		_stripManager._lookupList[10] = 1; -		_stripManager._lookupList[11] = 1; +		R2_GLOBALS._stripManager_lookupList[9] = 1; +		R2_GLOBALS._stripManager_lookupList[10] = 1; +		R2_GLOBALS._stripManager_lookupList[11] = 1;  		R2_GLOBALS._sound1.play(95); -		setAction(&_sequenceManager1, this, 1111, &_actor17, &R2_GLOBALS._player, &_actor16, NULL); +		setAction(&_sequenceManager1, this, 1111, &_trooper, &R2_GLOBALS._player, &_seeker, NULL);  		break;  	case 26:  		R2_GLOBALS._player.disableControl(); -		R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); +		R2_GLOBALS._events.setCursor(CURSOR_ARROW);  		_stripManager.start(302, this);  		break;  	case 27:  		R2_GLOBALS._player.disableControl(); -		setAction(&_sequenceManager1, this, 1120, &_actor16, &R2_GLOBALS._player, NULL); +		setAction(&_sequenceManager1, this, 1120, &_seeker, &R2_GLOBALS._player, NULL);  		break;  	case 28:  		R2_GLOBALS._player.disableControl(); -		R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); +		R2_GLOBALS._events.setCursor(CURSOR_ARROW);  		_stripManager.start(303, this);  		break; +	case 29: +	case 50: +		R2_GLOBALS._player.enableControl(CURSOR_USE); +		R2_GLOBALS._player._canWalk = false; +		break;  	case 51:  		R2_GLOBALS.setFlag(53); -		_actor17.setDetails(1100, 28, -1, -1, 3, (SceneItem *) NULL); -	// No break on purpose -	case 50: -	// No break on purpose -	case 29: +		_trooper.setDetails(1100, 28, -1, -1, 3, (SceneItem *) NULL); +  		R2_GLOBALS._player.enableControl(CURSOR_USE); +		R2_GLOBALS._player._canWalk = false;  		break;  	case 52:  		R2_GLOBALS._sound1.play(98); @@ -1172,10 +1175,10 @@ void Scene1100::signal() {  		_sceneMode = 1116;  		if (R2_GLOBALS._player._characterIndex == 1) {  			setAction(&_sequenceManager1, this, 1116, &R2_GLOBALS._player, NULL); -			_actor16.setAction(&_sequenceManager2, NULL, 1123, &_actor16, NULL); +			_seeker.setAction(&_sequenceManager2, NULL, 1123, &_seeker, NULL);  		} else {  			setAction(&_sequenceManager1, this, 1124, &R2_GLOBALS._player, NULL); -			_actor16.setAction(&_sequenceManager2, NULL, 1117, &_actor16, NULL); +			_seeker.setAction(&_sequenceManager2, NULL, 1117, &_seeker, NULL);  		}  		break;  	case 53: @@ -1203,7 +1206,7 @@ void Scene1100::signal() {  		if (_stripManager._field2E8 == 1) {  			R2_GLOBALS._player.disableControl();  			_sceneMode = 1125; -			setAction(&_sequenceManager1, this, 1125, &R2_GLOBALS._player, &_actor16, NULL); +			setAction(&_sequenceManager1, this, 1125, &R2_GLOBALS._player, &_seeker, NULL);  		} else  			R2_GLOBALS._player.enableControl(CURSOR_TALK);  		break; @@ -1244,9 +1247,9 @@ void Scene1100::signal() {  		break;  	case 1116:  		R2_GLOBALS._player.enableControl(CURSOR_ARROW); -		_stripManager._lookupList[9] = 1; -		_stripManager._lookupList[10] = 1; -		_stripManager._lookupList[11] = 1; +		R2_GLOBALS._stripManager_lookupList[9] = 1; +		R2_GLOBALS._stripManager_lookupList[10] = 1; +		R2_GLOBALS._stripManager_lookupList[11] = 1;  		break;  	case 1125: {  		_sceneMode = 99; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 23ebb2c276..eaca667377 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -75,15 +75,15 @@ public:  };  class Scene1100 : public SceneExt { -	class Actor16 : public SceneActor { +	class Seeker : public SceneActor {  	public:  		virtual bool startAction(CursorType action, Event &event);  	}; -	class Actor17 : public SceneActor { +	class Trooper : public SceneActor {  	public:  		virtual bool startAction(CursorType action, Event &event);  	}; -	class Actor18 : public SceneActor { +	class Chief : public SceneActor {  	public:  		virtual bool startAction(CursorType action, Event &event);  	}; @@ -118,9 +118,9 @@ public:  	SceneActor _actor15;  	BackgroundSceneObject _object1;  	BackgroundSceneObject _object2; -	Actor16 _actor16; -	Actor17 _actor17; -	Actor18 _actor18; +	Seeker _seeker; +	Trooper _trooper; +	Chief _chief;  	SequenceManager _sequenceManager1;  	SequenceManager _sequenceManager2;  	SequenceManager _sequenceManager3; diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index cd2ff669ff..8d91787272 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -360,7 +360,7 @@ void SpeakerChief1100::proc15() {  	Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene;  	if (!_object2) { -		_object2 = &scene->_actor18; +		_object2 = &scene->_chief;  		_object2->hide();  		_object1.postInit();  		_object1.setPosition(_object2->_position); @@ -1231,7 +1231,7 @@ void SpeakerQuinn1100::proc15() {  			_object2 = &R2_GLOBALS._player;  		} else {  			Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene; -			_object2 = &scene->_actor16; +			_object2 = &scene->_seeker;  		}  		_object2->hide(); @@ -1991,7 +1991,7 @@ void SpeakerSeeker1100::proc15() {  			_object2 = &R2_GLOBALS._player;  		} else {  			Scene1100 *scene = (Scene1100 *)R2_GLOBALS._sceneManager._scene; -			_object2 = &scene->_actor16; +			_object2 = &scene->_seeker;  		}  		_object2->hide(); | 
