aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorBenjamin Haisch2008-08-12 11:19:51 +0000
committerWillem Jan Palenstijn2011-11-20 22:43:05 +0100
commit03cae511297588ccbeba028cab58c7be050ccac2 (patch)
treee90397179f58ffd30fc8be9cf2f393851c3d5a07 /engines
parent51214a461a94e2bc2456f3fea885445f38d2f84f (diff)
downloadscummvm-rg350-03cae511297588ccbeba028cab58c7be050ccac2.tar.gz
scummvm-rg350-03cae511297588ccbeba028cab58c7be050ccac2.tar.bz2
scummvm-rg350-03cae511297588ccbeba028cab58c7be050ccac2.zip
TOLTECS: - Made game "quittable"
- Save/load mouse position and if the cursor is enabled
Diffstat (limited to 'engines')
-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);