aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/converse.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2013-07-30 22:40:47 -0400
committerPaul Gilbert2013-07-30 22:40:47 -0400
commit52886eed68fb88288026064a8970e21ec568fc90 (patch)
treeca2fcbc5ee8b97e9a2f6023a4978af32f63c146b /engines/tsage/converse.cpp
parentffef92a134a27790584d4d2656e8966a980b5063 (diff)
downloadscummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.tar.gz
scummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.tar.bz2
scummvm-rg350-52886eed68fb88288026064a8970e21ec568fc90.zip
TSAGE: Bugfixes for giving reader to Miranda
Diffstat (limited to 'engines/tsage/converse.cpp')
-rw-r--r--engines/tsage/converse.cpp13
1 files changed, 8 insertions, 5 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: