aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/saveload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/prince/saveload.cpp')
-rw-r--r--engines/prince/saveload.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/engines/prince/saveload.cpp b/engines/prince/saveload.cpp
index 65983f40de..46e598be70 100644
--- a/engines/prince/saveload.cpp
+++ b/engines/prince/saveload.cpp
@@ -177,7 +177,10 @@ bool PrinceEngine::canSaveGameStateCurrently() {
if (_mainHero->_visible) {
// 29 - Basement
if (_locationNr != 29) {
- return true;
+ // No dialog box and not in inventory
+ if (!_dialogFlag && !_showInventoryFlag) {
+ return true;
+ }
}
}
}
@@ -185,8 +188,18 @@ bool PrinceEngine::canSaveGameStateCurrently() {
}
bool PrinceEngine::canLoadGameStateCurrently() {
- // Always true
- return true;
+ if (_mouseFlag && _mouseFlag != 3) {
+ if (_mainHero->_visible) {
+ // 29 - Basement
+ if (_locationNr != 29) {
+ // No dialog box and not in inventory
+ if (!_dialogFlag && !_showInventoryFlag) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
}
Common::Error PrinceEngine::saveGameState(int slot, const Common::String &desc) {
@@ -512,9 +525,6 @@ bool PrinceEngine::loadGame(int slotNumber) {
syncGame(readStream, nullptr);
delete readStream;
- // TODO
- //syncSpeechSettings();
-
return true;
}