diff options
Diffstat (limited to 'engines/pink/objects/pages/game_page.cpp')
-rw-r--r-- | engines/pink/objects/pages/game_page.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/pink/objects/pages/game_page.cpp b/engines/pink/objects/pages/game_page.cpp index 47437a83a3..63a2607ee4 100644 --- a/engines/pink/objects/pages/game_page.cpp +++ b/engines/pink/objects/pages/game_page.cpp @@ -133,7 +133,7 @@ Module *GamePage::getModule() const { return _module; } -bool GamePage::checkValueOfVariable(Common::String &variable, Common::String &value) { +bool GamePage::checkValueOfVariable(const Common::String &variable, const Common::String &value) { if (!_variables.contains(variable)) return value == kUndefined; return _variables[variable] == value; @@ -141,6 +141,7 @@ bool GamePage::checkValueOfVariable(Common::String &variable, Common::String &va void GamePage::setVariable(Common::String &variable, Common::String &value) { _variables[variable] = value; + _leadActor->onVariableSet(); } WalkMgr *GamePage::getWalkMgr() { @@ -149,8 +150,11 @@ WalkMgr *GamePage::getWalkMgr() { void GamePage::loadState() { Archive archive(static_cast<Common::SeekableReadStream*>(_memFile)); - _variables.clear(0); - archive >> _variables; + //_variables.clear(1); + Common::StringMap mapTest; // HACK. Without it isn't working + //archive >> _variables; + archive >> mapTest; + _variables = mapTest; uint16 actorCount; archive >> actorCount; @@ -177,7 +181,7 @@ void GamePage::saveState() { } void GamePage::unload() { - _leadActor->setAction(_leadActor->findAction("Idle")); + _leadActor->setAction(_leadActor->findAction(kIdleAction)); saveState(); clear(); @@ -187,7 +191,7 @@ void GamePage::unload() { void GamePage::clear() { Page::clear(); - _variables.clear(1); + //_variables.clear(1); for (int i = 0; i < _handlers.size(); ++i) { delete _handlers[i]; |