aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects/module.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects/module.cpp')
-rw-r--r--engines/pink/objects/module.cpp26
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