diff options
Diffstat (limited to 'engines/pink/objects/walk/walk_mgr.cpp')
-rw-r--r-- | engines/pink/objects/walk/walk_mgr.cpp | 22 |
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 |