diff options
author | Paul Gilbert | 2017-08-07 19:20:05 -0400 |
---|---|---|
committer | Paul Gilbert | 2017-08-07 19:20:05 -0400 |
commit | 659fdfaf9ec6fa0ca7a7397221977105f201349c (patch) | |
tree | e72aa07486ab09a775032558c5e8dddf35617ed8 | |
parent | da4d4d8272a96b6ce5de905966f1ce9ba859a6a3 (diff) | |
download | scummvm-rg350-659fdfaf9ec6fa0ca7a7397221977105f201349c.tar.gz scummvm-rg350-659fdfaf9ec6fa0ca7a7397221977105f201349c.tar.bz2 scummvm-rg350-659fdfaf9ec6fa0ca7a7397221977105f201349c.zip |
VOYEUR: Workaround original game using invalid hotspot Ids
-rw-r--r-- | engines/voyeur/data.cpp | 5 | ||||
-rw-r--r-- | engines/voyeur/data.h | 2 | ||||
-rw-r--r-- | engines/voyeur/voyeur.cpp | 2 | ||||
-rw-r--r-- | engines/voyeur/voyeur.h | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/engines/voyeur/data.cpp b/engines/voyeur/data.cpp index 4d6e32436d..a9cfa02564 100644 --- a/engines/voyeur/data.cpp +++ b/engines/voyeur/data.cpp @@ -43,7 +43,7 @@ SVoy::SVoy(VoyeurEngine *vm):_vm(vm) { _abortInterface = false; _isAM = false; Common::fill(&_phoneCallsReceived[0], &_phoneCallsReceived[5], false); - Common::fill(&_roomHotspotsEnabled[0], &_roomHotspotsEnabled[20], false); + Common::fill(&_roomHotspotsEnabled[0], &_roomHotspotsEnabled[32], false); _victimMurdered = false; _audioVisualStartTime = 0; @@ -118,7 +118,8 @@ void SVoy::synchronize(Common::Serializer &s) { _audioHotspotTimes.synchronize(s); _evidenceHotspotTimes.synchronize(s); - for (int idx = 0; idx < 20; ++idx) { + int count = s.getVersion() == 1 ? 20 : 32; + for (int idx = 0; idx < count; ++idx) { s.syncAsByte(_roomHotspotsEnabled[idx]); } diff --git a/engines/voyeur/data.h b/engines/voyeur/data.h index a18ad84f51..e7bdb63f58 100644 --- a/engines/voyeur/data.h +++ b/engines/voyeur/data.h @@ -113,7 +113,7 @@ public: bool _abortInterface; bool _isAM; bool _phoneCallsReceived[5]; - bool _roomHotspotsEnabled[20]; + bool _roomHotspotsEnabled[32]; bool _victimMurdered; int _aptLoadMode; diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp index 01b76a72d1..7f2f0e312e 100644 --- a/engines/voyeur/voyeur.cpp +++ b/engines/voyeur/voyeur.cpp @@ -793,6 +793,7 @@ void VoyeurEngine::loadGame(int slot) { header._thumbnail->free(); delete header._thumbnail; + serializer.setVersion(header._version); synchronize(serializer); delete saveFile; @@ -821,6 +822,7 @@ Common::Error VoyeurEngine::saveGameState(int slot, const Common::String &desc) Common::Serializer serializer(NULL, saveFile); // Synchronise the data + serializer.setVersion(VOYEUR_SAVEGAME_VERSION); synchronize(serializer); saveFile->finalize(); diff --git a/engines/voyeur/voyeur.h b/engines/voyeur/voyeur.h index 9cda85fd51..dcd82b24a9 100644 --- a/engines/voyeur/voyeur.h +++ b/engines/voyeur/voyeur.h @@ -296,7 +296,7 @@ public: void showEndingNews(); }; -#define VOYEUR_SAVEGAME_VERSION 1 +#define VOYEUR_SAVEGAME_VERSION 2 /** * Header for Voyeur savegame files |