aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/walk/walk_mgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/walk/walk_mgr.cpp')
-rw-r--r--engines/pink/objects/walk/walk_mgr.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/engines/pink/objects/walk/walk_mgr.cpp b/engines/pink/objects/walk/walk_mgr.cpp
index 5b57107a44..0df4a544fc 100644
--- a/engines/pink/objects/walk/walk_mgr.cpp
+++ b/engines/pink/objects/walk/walk_mgr.cpp
@@ -143,4 +143,26 @@ void WalkMgr::end() {
_leadActor->onWalkEnd();
}
+void WalkMgr::loadState(Archive &archive) {
+ _isWalking = archive.readByte();
+ _current.name = archive.readString();
+ if (!_current.name.empty()) {
+ _current.coord = getLocationCoordinates(_current.name);
+ }
+ if (_isWalking) {
+ _next.name = archive.readString();
+ _destination = findLocation(archive.readString());
+ _next.coord = getLocationCoordinates(_next.name);
+ }
+}
+
+void WalkMgr::saveState(Archive &archive) {
+ archive.writeByte(_isWalking);
+ archive.writeString(_current.name);
+ if (_isWalking) {
+ archive.writeString(_next.name);
+ archive.writeString(_destination->getName());
+ }
+}
+
} // End of namespace Pink