From c63cc7c7d12826a5e3d5607ddef32e05f9e2a998 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Thu, 10 Jun 2004 06:14:07 +0000 Subject: 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 --- sword2/save_rest.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sword2') 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) { -- cgit v1.2.3