aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-09-25 21:25:25 +0300
committerFilippos Karapetis2011-09-25 21:25:25 +0300
commit0e4b35a8e8dad861c0890ee4edfbf6271b07397f (patch)
treeffdd1cf17f8cadb5f14359b95aaceca549f4ac3a
parentc8777b774ffc4d55564503fa323b9acb986b89db (diff)
downloadscummvm-rg350-0e4b35a8e8dad861c0890ee4edfbf6271b07397f.tar.gz
scummvm-rg350-0e4b35a8e8dad861c0890ee4edfbf6271b07397f.tar.bz2
scummvm-rg350-0e4b35a8e8dad861c0890ee4edfbf6271b07397f.zip
AGI: Switched to Common::String in the save/load code
-rw-r--r--engines/agi/agi.h10
-rw-r--r--engines/agi/cycle.cpp4
-rw-r--r--engines/agi/preagi.h4
-rw-r--r--engines/agi/saveload.cpp59
4 files changed, 35 insertions, 42 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 447e55eaa5..c2af0c5c6e 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -809,8 +809,8 @@ public:
virtual void replayImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,
int16 p4, int16 p5, int16 p6, int16 p7) = 0;
virtual void releaseImageStack() = 0;
- virtual int saveGame(const char *fileName, const char *saveName) = 0;
- virtual int loadGame(const char *fileName, bool checkId = true) = 0;
+ virtual int saveGame(Common::String fileName, Common::String saveName) = 0;
+ virtual int loadGame(Common::String fileName, bool checkId = true) = 0;
int _soundemu;
@@ -881,13 +881,13 @@ public:
StringData _stringdata;
- void getSavegameFilename(int num, char *fileName);
+ Common::String getSavegameFilename(int num);
void getSavegameDescription(int num, char *buf, bool showEmpty = true);
int selectSlot();
- int saveGame(const char *fileName, const char *saveName);
+ int saveGame(Common::String fileName, Common::String saveName);
+ int loadGame(Common::String fileName, bool checkId = true);
int saveGameDialog();
int saveGameSimple();
- int loadGame(const char *fileName, bool checkId = true);
int loadGameDialog();
int loadGameSimple();
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index f77ef79f29..e6f122f9f6 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -361,9 +361,7 @@ int AgiEngine::playGame() {
}
if (shouldPerformAutoSave(_lastSaveTime)) {
- char fileName[MAXPATHLEN];
- getSavegameFilename(0, fileName);
- saveGame(fileName, "Autosave");
+ saveGame(getSavegameFilename(0), "Autosave");
}
} while (!(shouldQuit() || _restartGame));
diff --git a/engines/agi/preagi.h b/engines/agi/preagi.h
index 14ff483d9f..6f534c37f6 100644
--- a/engines/agi/preagi.h
+++ b/engines/agi/preagi.h
@@ -73,8 +73,8 @@ protected:
void replayImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,
int16 p4, int16 p5, int16 p6, int16 p7) {}
void releaseImageStack() {}
- int saveGame(const char *fileName, const char *saveName) { return -1; }
- int loadGame(const char *fileName, bool checkId = true) { return -1; }
+ int saveGame(Common::String fileName, Common::String saveName) { return -1; }
+ int loadGame(Common::String fileName, bool checkId = true) { return -1; }
// Game
Common::String getTargetName() { return _targetName; }
diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp
index 648cb6f835..f919a9a7e4 100644
--- a/engines/agi/saveload.cpp
+++ b/engines/agi/saveload.cpp
@@ -53,22 +53,22 @@ namespace Agi {
static const uint32 AGIflag = MKTAG('A','G','I',':');
-int AgiEngine::saveGame(const char *fileName, const char *description) {
+int AgiEngine::saveGame(Common::String fileName, Common::String description) {
char gameIDstring[8] = "gameIDX";
int i;
Common::OutSaveFile *out;
int result = errOK;
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::saveGame(%s, %s)", fileName, description);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::saveGame(%s, %s)", fileName.c_str(), description);
if (!(out = _saveFileMan->openForSaving(fileName))) {
- warning("Can't create file '%s', game not saved", fileName);
+ warning("Can't create file '%s', game not saved", fileName.c_str());
return errBadFileOpen;
} else {
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for writing", fileName);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for writing", fileName.c_str());
}
out->writeUint32BE(AGIflag);
- out->write(description, 31);
+ out->write(description.c_str(), 31);
out->writeByte(SAVEGAME_VERSION);
debugC(5, kDebugLevelMain | kDebugLevelSavegame, "Writing save game version (%d)", SAVEGAME_VERSION);
@@ -239,33 +239,33 @@ int AgiEngine::saveGame(const char *fileName, const char *description) {
out->finalize();
if (out->err()) {
- warning("Can't write file '%s'. (Disk full?)", fileName);
+ warning("Can't write file '%s'. (Disk full?)", fileName.c_str());
result = errIOError;
} else
- debugC(1, kDebugLevelMain | kDebugLevelSavegame, "Saved game %s in file %s", description, fileName);
+ debugC(1, kDebugLevelMain | kDebugLevelSavegame, "Saved game %s in file %s", description, fileName.c_str());
delete out;
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName.c_str());
_lastSaveTime = _system->getMillis();
return result;
}
-int AgiEngine::loadGame(const char *fileName, bool checkId) {
+int AgiEngine::loadGame(Common::String fileName, bool checkId) {
char description[31], saveVersion, loadId[8];
int i, vtEntries = MAX_VIEWTABLE;
uint8 t;
int16 parm[7];
Common::InSaveFile *in;
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::loadGame(%s)", fileName);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "AgiEngine::loadGame(%s)", fileName.c_str());
if (!(in = _saveFileMan->openForLoading(fileName))) {
- warning("Can't open file '%s', game not loaded", fileName);
+ warning("Can't open file '%s', game not loaded", fileName.c_str());
return errBadFileOpen;
} else {
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName.c_str());
}
uint32 typea = in->readUint32BE();
@@ -527,7 +527,7 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {
_gfx->setAGIPal(in->readSint16BE());
delete in;
- debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName);
+ debugC(3, kDebugLevelMain | kDebugLevelSavegame, "Closed %s", fileName.c_str());
setflag(fRestoreJustRan, true);
@@ -546,28 +546,27 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {
#define NUM_SLOTS 100
#define NUM_VISIBLE_SLOTS 12
-void AgiEngine::getSavegameFilename(int num, char *fileName) {
+Common::String AgiEngine::getSavegameFilename(int num) {
Common::String saveLoadSlot = _targetName;
saveLoadSlot += Common::String::format(".%.3d", num);
- strcpy(fileName, saveLoadSlot.c_str());
+ return saveLoadSlot;
}
void AgiEngine::getSavegameDescription(int num, char *buf, bool showEmpty) {
- char fileName[MAXPATHLEN];
Common::InSaveFile *in;
+ Common::String fileName = getSavegameFilename(num);
debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Current game id is %s", _targetName.c_str());
- getSavegameFilename(num, fileName);
if (!(in = _saveFileMan->openForLoading(fileName))) {
- debugC(4, kDebugLevelMain | kDebugLevelSavegame, "File %s does not exist", fileName);
+ debugC(4, kDebugLevelMain | kDebugLevelSavegame, "File %s does not exist", fileName.c_str());
if (showEmpty)
strcpy(buf, " (empty slot)");
else
*buf = 0;
} else {
- debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName);
+ debugC(4, kDebugLevelMain | kDebugLevelSavegame, "Successfully opened %s for reading", fileName.c_str());
uint32 type = in->readUint32BE();
@@ -783,7 +782,6 @@ getout:
}
int AgiEngine::saveGameDialog() {
- char fileName[MAXPATHLEN];
char *desc;
const char *buttons[] = { "Do as I say!", "I regret", NULL };
char dstr[200];
@@ -853,14 +851,14 @@ int AgiEngine::saveGameDialog() {
return errOK;
}
- getSavegameFilename(_firstSlot + slot, fileName);
- debugC(8, kDebugLevelMain | kDebugLevelResources, "file is [%s]", fileName);
+ Common::String fileName = getSavegameFilename(_firstSlot + slot);
+ debugC(8, kDebugLevelMain | kDebugLevelResources, "file is [%s]", fileName.c_str());
// Make sure all graphics was blitted to screen. This fixes bug
// #2960567: "AGI: Ego partly erased in Load/Save thumbnails"
_gfx->doUpdate();
- int result = saveGame(fileName, desc);
+ int result = saveGame(fileName.c_str(), desc);
if (result == errOK)
messageBox("Game saved.");
@@ -871,17 +869,15 @@ int AgiEngine::saveGameDialog() {
}
int AgiEngine::saveGameSimple() {
- char fileName[MAXPATHLEN];
- getSavegameFilename(0, fileName);
+ Common::String fileName = getSavegameFilename(0);
- int result = saveGame(fileName, "Default savegame");
+ int result = saveGame(fileName.c_str(), "Default savegame");
if (result != errOK)
messageBox("Error saving game.");
return result;
}
int AgiEngine::loadGameDialog() {
- char fileName[MAXPATHLEN];
int rc, slot = 0;
int hm, vm, hp, vp; // box margins
int w;
@@ -908,9 +904,9 @@ int AgiEngine::loadGameDialog() {
return errOK;
}
- getSavegameFilename(_firstSlot + slot, fileName);
+ Common::String fileName = getSavegameFilename(_firstSlot + slot);
- if ((rc = loadGame(fileName)) == errOK) {
+ if ((rc = loadGame(fileName.c_str())) == errOK) {
messageBox("Game restored.");
_game.exitAllLogics = 1;
_menu->enableAll();
@@ -922,16 +918,15 @@ int AgiEngine::loadGameDialog() {
}
int AgiEngine::loadGameSimple() {
- char fileName[MAXPATHLEN];
int rc = 0;
- getSavegameFilename(0, fileName);
+ Common::String fileName = getSavegameFilename(0);
_sprites->eraseBoth();
_sound->stopSound();
closeWindow();
- if ((rc = loadGame(fileName)) == errOK) {
+ if ((rc = loadGame(fileName.c_str())) == errOK) {
messageBox("Game restored.");
_game.exitAllLogics = 1;
_menu->enableAll();