diff options
| author | Travis Howell | 2007-11-06 12:22:52 +0000 | 
|---|---|---|
| committer | Travis Howell | 2007-11-06 12:22:52 +0000 | 
| commit | 443dff5285f0654be4a6f843b8262bd07bb95036 (patch) | |
| tree | 4cf62d53140b7e6d756c05ee09a625865ce70580 /engines/scumm/saveload.cpp | |
| parent | 3598192859797d8b7cc33a22af21f04bd45af01a (diff) | |
| download | scummvm-rg350-443dff5285f0654be4a6f843b8262bd07bb95036.tar.gz scummvm-rg350-443dff5285f0654be4a6f843b8262bd07bb95036.tar.bz2 scummvm-rg350-443dff5285f0654be4a6f843b8262bd07bb95036.zip | |
Add support for original load/save system in HE games.
svn-id: r29434
Diffstat (limited to 'engines/scumm/saveload.cpp')
| -rw-r--r-- | engines/scumm/saveload.cpp | 37 | 
1 files changed, 25 insertions, 12 deletions
| diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index 2aa64ff409..17f0152b75 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -86,26 +86,34 @@ void ScummEngine::requestLoad(int slot) {  	_saveLoadFlag = 2;		// 2 for load  } +static bool saveSaveGameHeader(Common::OutSaveFile *out, SaveGameHeader &hdr) { +	hdr.type = MKID_BE('SCVM'); +	hdr.size = 0; +	hdr.ver = CURRENT_VER; + +	out->writeUint32BE(hdr.type); +	out->writeUint32LE(hdr.size); +	out->writeUint32LE(hdr.ver); +	out->write(hdr.name, sizeof(hdr.name)); +	return true; +} +  bool ScummEngine::saveState(int slot, bool compat) {  	char filename[256];  	Common::OutSaveFile *out;  	SaveGameHeader hdr; -	makeSavegameName(filename, slot, compat); - +	if (_saveLoadSlot == 255) { +		// Allow custom filenames for save game system in HE Games +		memcpy(filename, _saveLoadFileName, sizeof(_saveLoadFileName)); +	} else { +		makeSavegameName(filename, slot, compat); +	}  	if (!(out = _saveFileMan->openForSaving(filename)))  		return false;  	memcpy(hdr.name, _saveLoadName, sizeof(hdr.name)); - -	hdr.type = MKID_BE('SCVM'); -	hdr.size = 0; -	hdr.ver = CURRENT_VER; - -	out->writeUint32BE(hdr.type); -	out->writeUint32LE(hdr.size); -	out->writeUint32LE(hdr.ver); -	out->write(hdr.name, sizeof(hdr.name)); +	saveSaveGameHeader(out, hdr);  	saveThumbnail(out);  	saveInfos(out); @@ -137,7 +145,12 @@ bool ScummEngine::loadState(int slot, bool compat) {  	SaveGameHeader hdr;  	int sb, sh; -	makeSavegameName(filename, slot, compat); +	if (_saveLoadSlot == 255) { +		// Allow custom filenames for save game system in HE Games +		memcpy(filename, _saveLoadFileName, sizeof(_saveLoadFileName)); +	} else { +		makeSavegameName(filename, slot, compat); +	}  	if (!(in = _saveFileMan->openForLoading(filename)))  		return false; | 
