aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/queen/queen.cpp7
-rw-r--r--engines/queen/queen.h1
2 files changed, 6 insertions, 2 deletions
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 16d88ee6f3..74ea20cb0f 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -50,7 +50,7 @@
namespace Queen {
QueenEngine::QueenEngine(OSystem *syst)
- : Engine(syst), _debugger(0), randomizer("queen") {
+ : Engine(syst), _gameStarted(false), _debugger(0), randomizer("queen") {
}
QueenEngine::~QueenEngine() {
@@ -173,7 +173,7 @@ void QueenEngine::update(bool checkPlayerInput) {
}
bool QueenEngine::canLoadOrSave() const {
- return !_input->cutawayRunning() && !(_resource->isDemo() || _resource->isInterview());
+ return !_input->cutawayRunning() && !(_resource->isDemo() || _resource->isInterview()) && _gameStarted;
}
bool QueenEngine::canLoadGameStateCurrently() {
@@ -368,6 +368,9 @@ Common::Error QueenEngine::run() {
_logic->currentRoom(_logic->newRoom());
_logic->changeRoom();
_display->fullscreen(false);
+ // From this point onwards it is safe to use the load/save
+ // menu, so consider game to be 'started'
+ _gameStarted = true;
if (_logic->currentRoom() == _logic->newRoom()) {
_logic->newRoom(0);
}
diff --git a/engines/queen/queen.h b/engines/queen/queen.h
index 3c38ccd312..411fdf98e3 100644
--- a/engines/queen/queen.h
+++ b/engines/queen/queen.h
@@ -129,6 +129,7 @@ protected:
bool _subtitles;
uint32 _lastSaveTime;
uint32 _lastUpdateTime;
+ bool _gameStarted;
BamScene *_bam;
BankManager *_bankMan;