aboutsummaryrefslogtreecommitdiff
path: root/scumm/saveload.cpp
diff options
context:
space:
mode:
authorMarcus Comstedt2003-08-10 20:49:13 +0000
committerMarcus Comstedt2003-08-10 20:49:13 +0000
commita5aa5c0d73fa3c9faec0ba167cb88d3595f089e5 (patch)
tree252958493844e9bf628dcaeb84a9e658557af648 /scumm/saveload.cpp
parent9d09512765bcca0a507361297aa70c8f122ce512 (diff)
downloadscummvm-rg350-a5aa5c0d73fa3c9faec0ba167cb88d3595f089e5.tar.gz
scummvm-rg350-a5aa5c0d73fa3c9faec0ba167cb88d3595f089e5.tar.bz2
scummvm-rg350-a5aa5c0d73fa3c9faec0ba167cb88d3595f089e5.zip
Harmonized SaveFile API with File API a bit.
svn-id: r9626
Diffstat (limited to 'scumm/saveload.cpp')
-rw-r--r--scumm/saveload.cpp45
1 files changed, 18 insertions, 27 deletions
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index 56eb2fb39e..85194f4b81 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -61,7 +61,7 @@ bool Scumm::saveState(int slot, bool compat, SaveFileManager *mgr) {
makeSavegameName(filename, slot, compat);
- if (!(out = mgr->open_savefile(filename, true)))
+ if (!(out = mgr->open_savefile(filename, getSavePath(), true)))
return false;
memcpy(hdr.name, _saveLoadName, sizeof(hdr.name));
@@ -70,7 +70,7 @@ bool Scumm::saveState(int slot, bool compat, SaveFileManager *mgr) {
hdr.size = 0;
hdr.ver = TO_LE_32(CURRENT_VER);
- out->fwrite(&hdr, sizeof(hdr), 1);
+ out->write(&hdr, sizeof(hdr));
Serializer ser(out, true, CURRENT_VER);
saveOrLoad(&ser, CURRENT_VER);
@@ -88,10 +88,10 @@ bool Scumm::loadState(int slot, bool compat, SaveFileManager *mgr) {
byte *roomptr;
makeSavegameName(filename, slot, compat);
- if (!(out = mgr->open_savefile(filename, false)))
+ if (!(out = mgr->open_savefile(filename, getSavePath(), false)))
return false;
- out->fread(&hdr, sizeof(hdr), 1);
+ out->read(&hdr, sizeof(hdr));
if (hdr.type != MKID('SCVM')) {
warning("Invalid savegame '%s'", filename);
delete out;
@@ -221,12 +221,11 @@ bool Scumm::loadState(int slot, bool compat, SaveFileManager *mgr) {
}
void Scumm::makeSavegameName(char *out, int slot, bool compatible) {
- const char *dir = getSavePath();
#ifndef __PALM_OS__
- sprintf(out, "%s%s.%c%.2d", dir, _game_name, compatible ? 'c' : 's', slot);
+ sprintf(out, "%s.%c%.2d", _game_name, compatible ? 'c' : 's', slot);
#else
- sprintf(out, "%s%s.%s%.2d", dir, _game_name, compatible ? "c" : "s", slot);
+ sprintf(out, "%s.%s%.2d", _game_name, compatible ? "c" : "s", slot);
#endif
}
@@ -234,7 +233,7 @@ void Scumm::listSavegames(bool *marks, int num, SaveFileManager *mgr) {
char prefix[256];
makeSavegameName(prefix, 99, false);
prefix[strlen(prefix)-2] = 0;
- mgr->list_savefiles(prefix, marks, num);
+ mgr->list_savefiles(prefix, getSavePath(), marks, num);
}
bool Scumm::getSavegameName(int slot, char *desc, SaveFileManager *mgr) {
@@ -244,14 +243,14 @@ bool Scumm::getSavegameName(int slot, char *desc, SaveFileManager *mgr) {
int len;
makeSavegameName(filename, slot, false);
- if (!(out = mgr->open_savefile(filename, false))) {
+ if (!(out = mgr->open_savefile(filename, getSavePath(), false))) {
strcpy(desc, "");
return false;
}
- len = out->fread(&hdr, sizeof(hdr), 1);
+ len = out->read(&hdr, sizeof(hdr));
delete out;
- if (len != 1 || hdr.type != MKID('SCVM')) {
+ if (len != sizeof(hdr) || hdr.type != MKID('SCVM')) {
strcpy(desc, "Invalid savegame");
return false;
}
@@ -710,43 +709,35 @@ void Scumm::saveLoadResource(Serializer *ser, int type, int idx) {
}
void Serializer::saveBytes(void *b, int len) {
- _saveLoadStream->fwrite(b, 1, len);
+ _saveLoadStream->write(b, len);
}
void Serializer::loadBytes(void *b, int len) {
- _saveLoadStream->fread(b, 1, len);
+ _saveLoadStream->read(b, len);
}
void Serializer::saveUint32(uint32 d) {
- uint32 e = FROM_LE_32(d);
- saveBytes(&e, 4);
+ _saveLoadStream->writeUint32LE(d);
}
void Serializer::saveWord(uint16 d) {
- uint16 e = FROM_LE_16(d);
- saveBytes(&e, 2);
+ _saveLoadStream->writeUint16LE(d);
}
void Serializer::saveByte(byte b) {
- saveBytes(&b, 1);
+ _saveLoadStream->writeByte(b);
}
uint32 Serializer::loadUint32() {
- uint32 e;
- loadBytes(&e, 4);
- return FROM_LE_32(e);
+ return _saveLoadStream->readUint32LE();
}
uint16 Serializer::loadWord() {
- uint16 e;
- loadBytes(&e, 2);
- return FROM_LE_16(e);
+ return _saveLoadStream->readUint16LE();
}
byte Serializer::loadByte() {
- byte e;
- loadBytes(&e, 1);
- return e;
+ return _saveLoadStream->readByte();
}
void Serializer::saveArrayOf(void *b, int len, int datasize, byte filetype) {