diff options
Diffstat (limited to 'engines/agos/saveload.cpp')
-rw-r--r-- | engines/agos/saveload.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp index 61c640d7c5..f7c2d4846f 100644 --- a/engines/agos/saveload.cpp +++ b/engines/agos/saveload.cpp @@ -1190,7 +1190,7 @@ bool AGOSEngine_Elvira2::loadGame(const char *filename, bool restartMode) { addTimeEvent(timeout, subroutine_id); } - if (getGameType() == GType_WW) { + if (getGameType() == GType_WW && getPlatform() == Common::kPlatformPC) { // TODO Load room state data for (uint s = 0; s <= _numRoomStates; s++) { f->readUint16BE(); @@ -1202,7 +1202,8 @@ bool AGOSEngine_Elvira2::loadGame(const char *filename, bool restartMode) { for (num = _itemArrayInited - 1; num; num--) { Item *item = _itemArrayPtr[item_index++], *parent_item; - if (getGameType() == GType_ELVIRA2) { + if ((getGameType() == GType_WW && getPlatform() == Common::kPlatformAmiga) || + getGameType() == GType_ELVIRA2) { parent_item = derefItem(readItemID(f)); setItemParent(item, parent_item); } else { @@ -1342,7 +1343,7 @@ bool AGOSEngine_Elvira2::saveGame(uint slot, const char *caption) { f->writeUint16BE(te->subroutine_id); } - if (getGameType() == GType_WW) { + if (getGameType() == GType_WW && getPlatform() == Common::kPlatformPC) { // TODO Save room state data for (uint s = 0; s <= _numRoomStates; s++) { f->writeUint16BE(0); @@ -1354,7 +1355,8 @@ bool AGOSEngine_Elvira2::saveGame(uint slot, const char *caption) { for (num_item = _itemArrayInited - 1; num_item; num_item--) { Item *item = _itemArrayPtr[item_index++]; - if (getGameType() == GType_ELVIRA2) { + if ((getGameType() == GType_WW && getPlatform() == Common::kPlatformAmiga) || + getGameType() == GType_ELVIRA2) { writeItemID(f, item->parent); } else { f->writeUint16BE(item->parent); |