aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2013-07-30 22:40:47 -0400
committerPaul Gilbert2013-07-30 22:40:47 -0400
commit52886eed68fb88288026064a8970e21ec568fc90 (patch)
treeca2fcbc5ee8b97e9a2f6023a4978af32f63c146b
parentffef92a134a27790584d4d2656e8966a980b5063 (diff)
downloadscummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.tar.gz
scummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.tar.bz2
scummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.zip
TSAGE: Bugfixes for giving reader to Miranda
-rw-r--r--engines/tsage/converse.cpp13
-rw-r--r--engines/tsage/converse.h3
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.cpp17
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 {