aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/actors/lead_actor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/actors/lead_actor.cpp')
-rw-r--r--engines/pink/objects/actors/lead_actor.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/engines/pink/objects/actors/lead_actor.cpp b/engines/pink/objects/actors/lead_actor.cpp
index 484871a6e9..9279871f30 100644
--- a/engines/pink/objects/actors/lead_actor.cpp
+++ b/engines/pink/objects/actors/lead_actor.cpp
@@ -312,6 +312,35 @@ bool LeadActor::isInteractingWith(SupportingActor *actor) {
return actor->isUseClickHandlers(_page->getModule()->getInventoryMgr()->getCurrentItem());
}
+void LeadActor::loadState(Archive &archive) {
+ _state = (State) archive.readByte();
+ _nextState = (State) archive.readByte();
+ _stateCopy = (State) archive.readByte();
+ _isHaveItem = archive.readByte();
+ Common::String recepient = archive.readString();
+ if (!recepient.empty())
+ _recipient = (SupportingActor*) _page->findActor(recepient);
+ else
+ _recipient = nullptr;
+ _sequencer->loadState(archive);
+ _walkMgr->loadState(archive);
+
+ // load audioInfoMgr, PDAMgr
+}
+
+void LeadActor::saveState(Archive &archive) {
+ archive.writeByte(_state);
+ archive.writeByte(_nextState);
+ archive.writeByte(_stateCopy);
+ archive.writeByte(_isHaveItem);
+ if (_recipient)
+ archive.writeString(_recipient->getName());
+ else
+ archive.writeString(Common::String());
+ _sequencer->saveState(archive);
+ _walkMgr->saveState(archive);
+}
+
void ParlSqPink::toConsole() {
debug("ParlSqPink: _name = %s", _name.c_str());
for (uint i = 0; i < _actions.size(); ++i) {