diff options
Diffstat (limited to 'engines/pink/objects/module.cpp')
-rw-r--r-- | engines/pink/objects/module.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/pink/objects/module.cpp b/engines/pink/objects/module.cpp index cdb374612a..a09e202fb3 100644 --- a/engines/pink/objects/module.cpp +++ b/engines/pink/objects/module.cpp @@ -23,6 +23,7 @@ #include "pink/pink.h" #include "pink/objects/module.h" #include "pink/objects/pages/game_page.h" +#include "pink/objects/actors/lead_actor.h" namespace Pink { @@ -99,4 +100,29 @@ InventoryMgr *Module::getInventoryMgr() { return &_invMgr; } +void Module::loadState(Archive &archive) { + _invMgr.loadState(archive); + _variables.deserialize(archive); + + for (uint i = 0; i < _pages.size(); ++i) { + _pages[i]->loadState(archive); + } + + _page = findPage(archive.readString()); + _page->loadManagers(); + _page->getLeadActor()->loadState(archive); +} + +void Module::saveState(Archive &archive) { + _invMgr.saveState(archive); + _variables.serialize(archive); + + for (uint i = 0; i < _pages.size(); ++i) { + _pages[i]->saveState(archive); + } + + archive.writeString(_page->getName()); + _page->getLeadActor()->saveState(archive); +} + } // End of namespace Pink |