aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/toltecs/input.cpp2
-rw-r--r--engines/toltecs/saveload.cpp11
2 files changed, 13 insertions, 0 deletions
diff --git a/engines/toltecs/input.cpp b/engines/toltecs/input.cpp
index b658c6278b..174818323e 100644
--- a/engines/toltecs/input.cpp
+++ b/engines/toltecs/input.cpp
@@ -79,6 +79,8 @@ void Input::update() {
break;
case Common::EVENT_QUIT:
+ // FIXME: Find a nicer way to quit
+ g_system->quit();
break;
case Common::EVENT_MOUSEMOVE:
_mouseX = event.mouse.x;
diff --git a/engines/toltecs/saveload.cpp b/engines/toltecs/saveload.cpp
index 42ef4a33fb..3da15f4a07 100644
--- a/engines/toltecs/saveload.cpp
+++ b/engines/toltecs/saveload.cpp
@@ -80,6 +80,10 @@ void ToltecsEngine::savegame(const char *filename) {
out->writeByte(_movieSceneFlag ? 1 : 0);
out->writeByte(_flag01);
+ out->writeUint16LE(_input->_mouseX);
+ out->writeUint16LE(_input->_mouseY);
+ out->writeUint16LE(_input->_mouseDisabled);
+
_palette->saveState(out);
_script->saveState(out);
_anim->saveState(out);
@@ -136,6 +140,13 @@ void ToltecsEngine::loadgame(const char *filename) {
_movieSceneFlag = in->readByte() != 0;
_flag01 = in->readByte();
+ _input->_mouseX = in->readUint16LE();
+ _input->_mouseY = in->readUint16LE();
+ _input->_mouseDisabled = in->readUint16LE();
+
+ _system->warpMouse(_input->_mouseX, _input->_mouseY);
+ _system->showMouse(_input->_mouseDisabled == 0);
+
_palette->loadState(in);
_script->loadState(in);
_anim->loadState(in);