aboutsummaryrefslogtreecommitdiff
path: root/engines/queen
diff options
context:
space:
mode:
authorMax Horn2008-11-06 17:05:54 +0000
committerMax Horn2008-11-06 17:05:54 +0000
commit40136f25909bd8773cac0f08740a36037395e9a7 (patch)
treebf61db949f9942c10cad667042b1e2403a9b51cd /engines/queen
parent4c8f221fb8f5735932652c3279efd6f2e941d948 (diff)
downloadscummvm-rg350-40136f25909bd8773cac0f08740a36037395e9a7.tar.gz
scummvm-rg350-40136f25909bd8773cac0f08740a36037395e9a7.tar.bz2
scummvm-rg350-40136f25909bd8773cac0f08740a36037395e9a7.zip
Switched various Engine APIs to use Common::Error
svn-id: r34916
Diffstat (limited to 'engines/queen')
-rw-r--r--engines/queen/queen.cpp24
-rw-r--r--engines/queen/queen.h8
2 files changed, 20 insertions, 12 deletions
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 1232b12288..995c2aff60 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -312,9 +312,10 @@ bool QueenEngine::canLoadOrSave() const {
return !_input->cutawayRunning() && !(_resource->isDemo() || _resource->isInterview());
}
-int QueenEngine::saveGameState(int slot, const char *desc) {
+Common::Error QueenEngine::saveGameState(int slot, const char *desc) {
debug(3, "Saving game to slot %d", slot);
char name[20];
+ Common::Error err = Common::kNoError;
makeGameStateName(slot, name);
Common::OutSaveFile *file = _saveFileMan->openForSaving(name);
if (file) {
@@ -345,18 +346,21 @@ int QueenEngine::saveGameState(int slot, const char *desc) {
// check for errors
if (file->ioFailed()) {
warning("Can't write file '%s'. (Disk full?)", name);
+ err = Common::kWritingFailed;
}
delete[] saveData;
delete file;
} else {
warning("Can't create file '%s', game not saved", name);
+ err = Common::kCreatingFileFailed;
}
- return 0;
+ return err;
}
-int QueenEngine::loadGameState(int slot) {
+Common::Error QueenEngine::loadGameState(int slot) {
debug(3, "Loading game from slot %d", slot);
+ Common::Error err = Common::kNoError;
GameStateHeader header;
Common::InSaveFile *file = readGameStateHeader(slot, &header);
if (file && header.dataSize != 0) {
@@ -364,6 +368,7 @@ int QueenEngine::loadGameState(int slot) {
byte *p = saveData;
if (file->read(saveData, header.dataSize) != header.dataSize) {
warning("Error reading savegame file");
+ err = Common::kReadingFailed;
} else {
_bam->loadState(header.version, p);
_grid->loadState(header.version, p);
@@ -371,15 +376,18 @@ int QueenEngine::loadGameState(int slot) {
_sound->loadState(header.version, p);
if (header.dataSize != (uint32)(p - saveData)) {
warning("Corrupted savegame file");
+ err = Common::kReadingFailed; // FIXME
} else {
_logic->setupRestoredGame();
}
}
delete[] saveData;
delete file;
+ } else {
+ err = Common::kReadingFailed;
}
- return 0; // TODO: return success/failure
+ return err;
}
Common::InSaveFile *QueenEngine::readGameStateHeader(int slot, GameStateHeader *gsh) {
@@ -436,7 +444,7 @@ GUI::Debugger *QueenEngine::getDebugger() {
return _debugger;
}
-int QueenEngine::go() {
+Common::Error QueenEngine::go() {
_logic->start();
if (ConfMan.hasKey("save_slot") && canLoadOrSave()) {
loadGameState(ConfMan.getInt("save_slot"));
@@ -461,10 +469,10 @@ int QueenEngine::go() {
update(true);
}
}
- return 0;
+ return Common::kNoError;
}
-int QueenEngine::init() {
+Common::Error QueenEngine::init() {
_system->beginGFXTransaction();
initCommonGFX(false);
_system->initSize(GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);
@@ -496,7 +504,7 @@ int QueenEngine::init() {
registerDefaultSettings();
readOptionSettings();
- return 0;
+ return Common::kNoError;
}
} // End of namespace Queen
diff --git a/engines/queen/queen.h b/engines/queen/queen.h
index df218a64a2..34ba0ab8e7 100644
--- a/engines/queen/queen.h
+++ b/engines/queen/queen.h
@@ -106,8 +106,8 @@ public:
void update(bool checkPlayerInput = false);
bool canLoadOrSave() const;
- int saveGameState(int slot, const char *desc);
- int loadGameState(int slot);
+ Common::Error saveGameState(int slot, const char *desc);
+ Common::Error loadGameState(int slot);
void makeGameStateName(int slot, char *buf) const;
int getGameStateSlot(const char *filename) const;
void findGameStateDescriptions(char descriptions[100][32]);
@@ -129,8 +129,8 @@ public:
protected:
// Engine APIs
- virtual int init();
- virtual int go();
+ virtual Common::Error init();
+ virtual Common::Error go();
virtual GUI::Debugger *getDebugger();
virtual bool hasFeature(EngineFeature f) const;
virtual void syncSoundSettings();