aboutsummaryrefslogtreecommitdiff
path: root/engines/cge
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge')
-rw-r--r--engines/cge/cge.cpp3
-rw-r--r--engines/cge/cge_main.cpp1
-rw-r--r--engines/cge/snail.cpp4
-rw-r--r--engines/cge/snail.h1
4 files changed, 7 insertions, 2 deletions
diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index 8e74253f86..87654c53f4 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -208,8 +208,7 @@ bool CGEEngine::hasFeature(EngineFeature f) const {
}
bool CGEEngine::canLoadGameStateCurrently() {
- return (_startupMode == 0) && _mouse->_active &&
- _commandHandler->idle() && !_hero->_flags._hide;
+ return (_startupMode == 0) && _mouse->_active;
}
bool CGEEngine::canSaveGameStateCurrently() {
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index e5831400ee..01bd037315 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -292,6 +292,7 @@ Common::Error CGEEngine::loadGameState(int slot) {
void CGEEngine::resetGame() {
_vga->_spareQ->clear();
+ _commandHandler->reset();
}
Common::Error CGEEngine::saveGameState(int slot, const Common::String &desc) {
diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index 5ab8f6314b..9db5406c25 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -375,6 +375,10 @@ bool CommandHandler::idle() {
return (_head == _tail);
}
+void CommandHandler::reset() {
+ _tail = _head;
+}
+
/**
* Handles mini-Games logic
* @param com Command
diff --git a/engines/cge/snail.h b/engines/cge/snail.h
index 6749d6bcc8..6a9e717441 100644
--- a/engines/cge/snail.h
+++ b/engines/cge/snail.h
@@ -70,6 +70,7 @@ public:
void addCallback(CommandType com, int ref, int val, CallbackType cbType);
void insertCommand(CommandType com, int ref, int val, void *ptr);
bool idle();
+ void reset();
private:
CGEEngine *_vm;
bool _turbo;