aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-06-04 22:40:51 +1000
committerPaul Gilbert2011-06-04 22:40:51 +1000
commiteb89240370178d09fd6e9cba836dfa4b94d7998a (patch)
tree187c08a5d7533e60c6e72c5fed4a6a69d67dd2e8
parent9933b1bf195fd21cda7d1540eea1fdc7d4d31121 (diff)
downloadscummvm-rg350-eb89240370178d09fd6e9cba836dfa4b94d7998a.tar.gz
scummvm-rg350-eb89240370178d09fd6e9cba836dfa4b94d7998a.tar.bz2
scummvm-rg350-eb89240370178d09fd6e9cba836dfa4b94d7998a.zip
TSAGE: Add extra event manager fields to savegames
This should correctly handle re-enabling the cursor when restoring savegames.
-rw-r--r--engines/tsage/events.cpp10
-rw-r--r--engines/tsage/events.h6
-rw-r--r--engines/tsage/saveload.cpp1
3 files changed, 11 insertions, 6 deletions
diff --git a/engines/tsage/events.cpp b/engines/tsage/events.cpp
index e889c56c4d..9df2a7ccd6 100644
--- a/engines/tsage/events.cpp
+++ b/engines/tsage/events.cpp
@@ -304,4 +304,14 @@ void EventsClass::delay(int numFrames) {
_priorFrameTime = g_system->getMillis();
}
+void EventsClass::listenerSynchronize(Serializer &s) {
+ s.syncAsUint32LE(_frameNumber);
+ s.syncAsUint32LE(_prevDelayFrame);
+
+ if (s.getVersion() >= 5) {
+ s.syncAsSint16LE(_currentCursor);
+ s.syncAsSint16LE(_lastCursor);
+ }
+}
+
} // end of namespace tSage
diff --git a/engines/tsage/events.h b/engines/tsage/events.h
index 9a7bdbe82c..a13455d378 100644
--- a/engines/tsage/events.h
+++ b/engines/tsage/events.h
@@ -98,11 +98,7 @@ public:
uint32 getFrameNumber() const { return _frameNumber; }
void delay(int numFrames);
- virtual void listenerSynchronize(Serializer &s) {
- s.syncAsUint32LE(_frameNumber);
- s.syncAsUint32LE(_prevDelayFrame);
- // TODO: Synchronize unknown stuff
- }
+ virtual void listenerSynchronize(Serializer &s);
};
} // End of namespace tSage
diff --git a/engines/tsage/saveload.cpp b/engines/tsage/saveload.cpp
index 56df32146a..522e40c236 100644
--- a/engines/tsage/saveload.cpp
+++ b/engines/tsage/saveload.cpp
@@ -206,7 +206,6 @@ Common::Error Saver::restore(int slot) {
// Final post-restore notifications
_macroRestoreFlag = false;
_loadNotifiers.notify(false);
- _globals->_events.setCursor(_globals->_player._uiEnabled ? CURSOR_WALK : CURSOR_NONE);
return Common::kNoError;
}