aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_game.cpp
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-07-26 21:01:00 +0200
committerEinar Johan Trøan Sømåen2012-07-26 21:01:00 +0200
commit496a3938c451683845e73fa9b2cba20dadddfe21 (patch)
tree0d805954373cec7d0d6b1a7ebf138bedab7dfdce /engines/wintermute/base/base_game.cpp
parent2c530bc6edc9ffd95fa86488a663e67d2735041f (diff)
downloadscummvm-rg350-496a3938c451683845e73fa9b2cba20dadddfe21.tar.gz
scummvm-rg350-496a3938c451683845e73fa9b2cba20dadddfe21.tar.bz2
scummvm-rg350-496a3938c451683845e73fa9b2cba20dadddfe21.zip
WINTERMUTE: Remove gotos.
Diffstat (limited to 'engines/wintermute/base/base_game.cpp')
-rw-r--r--engines/wintermute/base/base_game.cpp78
1 files changed, 32 insertions, 46 deletions
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 00f5731787..402b7294aa 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -3359,36 +3359,29 @@ bool BaseGame::saveGame(int slot, const char *desc, bool quickSave) {
_indicatorDisplay = true;
_indicatorProgress = 0;
BasePersistenceManager *pm = new BasePersistenceManager(_gameRef);
- if (DID_FAIL(ret = pm->initSave(desc))) {
- goto save_finish;
- }
-
- if (!quickSave) {
- delete _saveLoadImage;
- _saveLoadImage = NULL;
- if (_saveImageName) {
- _saveLoadImage = _renderer->createSurface();
+ if (DID_SUCCEED(ret = pm->initSave(desc))) {
+ if (!quickSave) {
+ delete _saveLoadImage;
+ _saveLoadImage = NULL;
+ if (_saveImageName) {
+ _saveLoadImage = _renderer->createSurface();
- if (!_saveLoadImage || DID_FAIL(_saveLoadImage->create(_saveImageName, true, 0, 0, 0))) {
- delete _saveLoadImage;
- _saveLoadImage = NULL;
+ if (!_saveLoadImage || DID_FAIL(_saveLoadImage->create(_saveImageName, true, 0, 0, 0))) {
+ delete _saveLoadImage;
+ _saveLoadImage = NULL;
+ }
}
}
- }
- if (DID_FAIL(ret = SystemClassRegistry::getInstance()->saveTable(_gameRef, pm, quickSave))) {
- goto save_finish;
- }
- if (DID_FAIL(ret = SystemClassRegistry::getInstance()->saveInstances(_gameRef, pm, quickSave))) {
- goto save_finish;
- }
- if (DID_FAIL(ret = pm->saveFile(filename))) {
- goto save_finish;
+ if (DID_SUCCEED(ret = SystemClassRegistry::getInstance()->saveTable(_gameRef, pm, quickSave))) {
+ if (DID_SUCCEED(ret = SystemClassRegistry::getInstance()->saveInstances(_gameRef, pm, quickSave))) {
+ if (DID_SUCCEED(ret = pm->saveFile(filename))) {
+ _registry->writeInt("System", "MostRecentSaveSlot", slot);
+ }
+ }
+ }
}
- _registry->writeInt("System", "MostRecentSaveSlot", slot);
-
-save_finish: // TODO: Remove gotos
delete pm;
_indicatorDisplay = false;
@@ -3436,30 +3429,23 @@ bool BaseGame::loadGame(const char *filename) {
_indicatorDisplay = true;
_indicatorProgress = 0;
BasePersistenceManager *pm = new BasePersistenceManager(_gameRef);
- if (DID_FAIL(ret = pm->initLoad(filename))) {
- goto load_finish;
- }
-
- //if (DID_FAIL(ret = cleanup())) goto load_finish;
- if (DID_FAIL(ret = SystemClassRegistry::getInstance()->loadTable(_gameRef, pm))) {
- goto load_finish;
- }
- if (DID_FAIL(ret = SystemClassRegistry::getInstance()->loadInstances(_gameRef, pm))) {
- goto load_finish;
+ if (DID_SUCCEED(ret = pm->initLoad(filename))) {
+ //if (DID_SUCCEED(ret = cleanup())) {
+ if (DID_SUCCEED(ret = SystemClassRegistry::getInstance()->loadTable(_gameRef, pm))) {
+ if (DID_SUCCEED(ret = SystemClassRegistry::getInstance()->loadInstances(_gameRef, pm))) {
+ // data initialization after load
+ initAfterLoad();
+
+ _gameRef->applyEvent("AfterLoad", true);
+
+ displayContent(true, false);
+ //_renderer->flip();
+
+ getDebugMgr()->onGameInit();
+ }
+ }
}
- // data initialization after load
- initAfterLoad();
-
- _gameRef->applyEvent("AfterLoad", true);
-
- displayContent(true, false);
- //_renderer->flip();
-
- getDebugMgr()->onGameInit();
-
-load_finish:
-
_indicatorDisplay = false;
delete pm;
_loadInProgress = false;