diff options
Diffstat (limited to 'engines/tsage/converse.cpp')
-rw-r--r-- | engines/tsage/converse.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp index 2424064dda..b802f71ff3 100644 --- a/engines/tsage/converse.cpp +++ b/engines/tsage/converse.cpp @@ -552,7 +552,7 @@ void Obj44::load(const byte *dataP) { s.skip(4); } - for (int idx = 0; idx < OBJ44_LIST_SIZE; ++idx) { + for (int idx = 0; idx < OBJ0A_LIST_SIZE; ++idx) { _list[idx]._id = s.readSint16LE(); _list[idx]._scriptOffset = s.readSint16LE(); s.skip(6); @@ -565,7 +565,7 @@ void Obj44::synchronize(Serializer &s) { s.syncAsSint32LE(_id); for (int idx = 0; idx < OBJ44_LIST_SIZE; ++idx) s.syncAsSint32LE(_callbackId[idx]); - for (int idx = 0; idx < OBJ44_LIST_SIZE; ++idx) + for (int idx = 0; idx < OBJ0A_LIST_SIZE; ++idx) _list[idx].synchronize(s); s.syncAsUint32LE(_speakerOffset); @@ -645,10 +645,12 @@ void StripManager::load() { // Get the object list byte *obj44List = g_resourceManager->getResource(RES_STRIP, _stripNum, 1); int dataSize = g_vm->_memoryManager.getSize(obj44List); - assert((dataSize % 0x44) == 0); + + int obj44Size = (g_vm->getGameID() == GType_Ringworld2) ? 126 : 68; + assert((dataSize % obj44Size) == 0); byte *dataP = obj44List; - for (int idx = 0; idx < (dataSize / 0x44); ++idx, dataP += 0x44) { + for (int idx = 0; idx < (dataSize / obj44Size); ++idx, dataP += obj44Size) { Obj44 obj; obj.load(dataP); _obj44List.push_back(obj); |