diff options
| -rw-r--r-- | engines/tsage/converse.cpp | 13 | ||||
| -rw-r--r-- | engines/tsage/converse.h | 3 | ||||
| -rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.cpp | 17 | 
3 files changed, 19 insertions, 14 deletions
| diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp index ec14ff330d..753a835389 100644 --- a/engines/tsage/converse.cpp +++ b/engines/tsage/converse.cpp @@ -556,7 +556,7 @@ void Obj44::load(const byte *dataP) {  		_mode = s.readSint16LE();  		_lookupValue = s.readSint16LE();  		_lookupIndex = s.readSint16LE(); -		_field6 = s.readSint16LE(); +		_exitMode = s.readSint16LE();  		_speakerMode = s.readSint16LE();  	} @@ -592,7 +592,7 @@ void Obj44::synchronize(Serializer &s) {  		s.syncAsSint16LE(_mode);  		s.syncAsSint16LE(_lookupValue);  		s.syncAsSint16LE(_lookupIndex); -		s.syncAsSint16LE(_field6); +		s.syncAsSint16LE(_exitMode);  		s.syncAsSint16LE(_speakerMode);  		for (int i = 0; i < 11; ++i) @@ -648,6 +648,7 @@ void StripManager::reset() {  	_activeSpeaker = NULL;  	_textShown = false;  	_callbackObject = NULL; +	_exitMode = 0;  	_obj44List.clear();  	if (!_script.empty()) { @@ -695,6 +696,8 @@ void StripManager::synchronize(Serializer &s) {  	s.syncAsByte(_textShown);  	s.syncAsByte(_field2E6);  	s.syncAsSint32LE(_field2E8); +	if (g_vm->getGameID() == GType_Ringworld2) +		s.syncAsSint16LE(_exitMode);  	// Synchronize the item list  	int arrSize = _obj44List.size(); @@ -725,7 +728,7 @@ void StripManager::synchronize(Serializer &s) {  void StripManager::remove() {  	if (g_vm->getGameID() == GType_Ringworld2) {  -		for (int i = 0; i < _speakerList.size(); ++i) { +		for (uint i = 0; i < _speakerList.size(); ++i) {  			if (_activeSpeaker != _speakerList[i])  				_speakerList[i]->proc16();  		} @@ -790,8 +793,8 @@ void StripManager::signal() {  	if (g_vm->getGameID() == GType_Ringworld2) {  		// Return to Ringworld specific handling -		if (obj44._field6) -			_field2E8 = obj44._field6; +		if (obj44._exitMode) +			_exitMode = obj44._exitMode;  		switch (obj44._mode) {  		case 1: diff --git a/engines/tsage/converse.h b/engines/tsage/converse.h index 00c1f44051..5aef0d8a7f 100644 --- a/engines/tsage/converse.h +++ b/engines/tsage/converse.h @@ -194,7 +194,7 @@ public:  	// Return to Ringworld specific field  	int _mode; -	int _lookupValue, _lookupIndex, _field6; +	int _lookupValue, _lookupIndex, _exitMode;  	int _speakerMode;  	int _field16[11];  public: @@ -223,6 +223,7 @@ public:  	bool _textShown;  	bool _field2E6;  	int _field2E8; +	int _exitMode;  	Common::Array<Obj44> _obj44List;  	Common::Array<byte> _script;  	StripProc _onBegin; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index 9cfa53ed22..3cb3574364 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -3488,27 +3488,27 @@ void Scene300::remove() {  void Scene300::signal() {  	switch (_sceneMode) {  	case 10: -		switch (_stripManager._field2E8) { -		case 0: +		switch (_stripManager._exitMode) { +		case 1:  			R2_GLOBALS._sound1.changeSound(10);  			R2_GLOBALS.setFlag(38);  			break; -		case 1: +		case 2:  			R2_GLOBALS.setFlag(3);  			break; -		case 2: +		case 3:  			R2_GLOBALS.setFlag(4);  			break; -		case 3: +		case 4:  			R2_GLOBALS.setFlag(13);  			if (R2_GLOBALS._stripManager_lookupList[1] == 6)  				R2_GLOBALS.setFlag(40);  			break; -		case 4: +		case 5:  			if (R2_GLOBALS._stripManager_lookupList[1] == 6)  				R2_GLOBALS.setFlag(40);  			break; -		case 5: +		case 6:  			R2_GLOBALS._sceneManager.changeScene(1000);  			break;  		default: @@ -6874,8 +6874,9 @@ void Scene825::doButtonPress(int buttonId) {  					_sceneText.setup(NO_TREATMENT_REQUIRED);  				} else {  					_button6._buttonId = 5; - +					_sceneMode = 827;  					_object5.postInit(); +  					setAction(&_sequenceManager1, this, 827, &_object5, NULL);  				}  			} else { | 
