aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/cine.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2010-05-19 12:34:10 +0000
committerEugene Sandulenko2010-05-19 12:34:10 +0000
commit15c533d2c2b1464f2d55d3f6c48a9e21c85a2e7f (patch)
tree524634239484d5447b41815ff48b811bccee965b /engines/cine/cine.cpp
parent2be9bb3d5fc90962cd672aaa99a3d1eea2898c82 (diff)
downloadscummvm-rg350-15c533d2c2b1464f2d55d3f6c48a9e21c85a2e7f.tar.gz
scummvm-rg350-15c533d2c2b1464f2d55d3f6c48a9e21c85a2e7f.tar.bz2
scummvm-rg350-15c533d2c2b1464f2d55d3f6c48a9e21c85a2e7f.zip
Implement FR #2841445: FW: Restart doesn't work
svn-id: r49096
Diffstat (limited to 'engines/cine/cine.cpp')
-rw-r--r--engines/cine/cine.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp
index c33349173a..c50af52901 100644
--- a/engines/cine/cine.cpp
+++ b/engines/cine/cine.cpp
@@ -90,13 +90,20 @@ Common::Error CineEngine::run() {
}
g_saveFileMan = _saveFileMan;
- initialize();
+ _restartRequested = false;
- CursorMan.showMouse(true);
- mainLoop(1);
+ do {
+ initialize();
+
+ _restartRequested = false;
+
+ CursorMan.showMouse(true);
+ mainLoop(1);
+
+ delete renderer;
+ delete[] collisionPage;
+ } while (_restartRequested);
- delete renderer;
- delete[] collisionPage;
delete g_sound;
return Common::kNoError;
@@ -186,7 +193,7 @@ void CineEngine::initialize() {
currentDatName[0] = 0;
_preLoad = false;
- if (ConfMan.hasKey("save_slot")) {
+ if (ConfMan.hasKey("save_slot") && !_restartRequested) {
char saveNameBuffer[256];
sprintf(saveNameBuffer, "%s.%1d", _targetName.c_str(), ConfMan.getInt("save_slot"));