diff options
author | Torbjörn Andersson | 2004-06-10 06:14:07 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2004-06-10 06:14:07 +0000 |
commit | c63cc7c7d12826a5e3d5607ddef32e05f9e2a998 (patch) | |
tree | c080534b1d20bcc36a65c3b5429cccf88cc23ecb /sword2/save_rest.cpp | |
parent | 0426d38aa599d554bd63c4053c6990356a62b71e (diff) | |
download | scummvm-rg350-c63cc7c7d12826a5e3d5607ddef32e05f9e2a998.tar.gz scummvm-rg350-c63cc7c7d12826a5e3d5607ddef32e05f9e2a998.tar.bz2 scummvm-rg350-c63cc7c7d12826a5e3d5607ddef32e05f9e2a998.zip |
One of my not-so-recent cleanups caused BS2 to produce corrupt savegames.
And no one even noticed! Should be fixed now.
svn-id: r13950
Diffstat (limited to 'sword2/save_rest.cpp')
-rw-r--r-- | sword2/save_rest.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sword2/save_rest.cpp b/sword2/save_rest.cpp index 02453cc1a9..6c3feed16d 100644 --- a/sword2/save_rest.cpp +++ b/sword2/save_rest.cpp @@ -131,6 +131,9 @@ void Sword2Engine::fillSaveBuffer(byte *buffer, uint32 size, byte *desc) { convertHeaderEndian(_saveGameHeader); #endif + // Copy the header to the buffer, even though it isn't quite complete + memcpy(buffer, &_saveGameHeader, sizeof(_saveGameHeader)); + // Get the global variables byte *varsRes = _resman->openResource(1); @@ -150,10 +153,9 @@ void Sword2Engine::fillSaveBuffer(byte *buffer, uint32 size, byte *desc) { _saveGameHeader.checksum = TO_LE_32(calcChecksum(buffer + sizeof(_saveGameHeader.checksum), size - sizeof(_saveGameHeader.checksum))); - // All done - memcpy(buffer, &_saveGameHeader, sizeof(_saveGameHeader)); + memcpy(buffer, &_saveGameHeader.checksum, sizeof(_saveGameHeader.checksum)); } uint32 Sword2Engine::saveData(uint16 slotNo, byte *buffer, uint32 bufferSize) { |