diff options
Diffstat (limited to 'engines/pink/objects')
-rw-r--r-- | engines/pink/objects/actions/action_cel.cpp | 2 | ||||
-rw-r--r-- | engines/pink/objects/actions/action_loop.h | 2 | ||||
-rw-r--r-- | engines/pink/objects/actions/action_still.cpp | 4 | ||||
-rw-r--r-- | engines/pink/objects/actors/lead_actor.cpp | 1 | ||||
-rw-r--r-- | engines/pink/objects/module.cpp | 4 | ||||
-rw-r--r-- | engines/pink/objects/pages/game_page.cpp | 1 |
6 files changed, 11 insertions, 3 deletions
diff --git a/engines/pink/objects/actions/action_cel.cpp b/engines/pink/objects/actions/action_cel.cpp index dc18ee3a39..312ae31a1d 100644 --- a/engines/pink/objects/actions/action_cel.cpp +++ b/engines/pink/objects/actions/action_cel.cpp @@ -43,6 +43,8 @@ void ActionCEL::deserialize(Archive &archive) { void ActionCEL::start(bool unk) { if (!_decoder) _decoder = _actor->getPage()->loadCel(_fileName); + //if (_fileName =="IT01PP01.CEL") + // initPallete(_actor->getPage()->getGame()->getDirector()); _actor->getPage()->getGame()->getDirector()->addSprite(this); this->onStart(); } diff --git a/engines/pink/objects/actions/action_loop.h b/engines/pink/objects/actions/action_loop.h index 82b2c1eb94..a031bd1537 100644 --- a/engines/pink/objects/actions/action_loop.h +++ b/engines/pink/objects/actions/action_loop.h @@ -36,7 +36,7 @@ protected: enum Style { kPingPong = 2, kRandom = 3, - kForward // unknown + kForward = 4 }; uint _intro; Style _style; diff --git a/engines/pink/objects/actions/action_still.cpp b/engines/pink/objects/actions/action_still.cpp index c49e52ae1d..442fe85330 100644 --- a/engines/pink/objects/actions/action_still.cpp +++ b/engines/pink/objects/actions/action_still.cpp @@ -45,7 +45,9 @@ void ActionStill::end() { void ActionStill::onStart() { debug("Actor %s has now ActionStill %s", _actor->getName().c_str(), _name.c_str()); - _decoder->seekToFrame(_startFrame); + for (int i = 0; i < _startFrame; ++i) { + _decoder->decodeNextFrame(); + } } } // End of namespace Pink
\ No newline at end of file diff --git a/engines/pink/objects/actors/lead_actor.cpp b/engines/pink/objects/actors/lead_actor.cpp index 43e144be1f..55861131d7 100644 --- a/engines/pink/objects/actors/lead_actor.cpp +++ b/engines/pink/objects/actors/lead_actor.cpp @@ -33,6 +33,7 @@ namespace Pink { void LeadActor::deserialize(Archive &archive) { Actor::deserialize(archive); + _state = kReady; _cursorMgr = static_cast<CursorMgr*>(archive.readObject()); _walkMgr = static_cast<WalkMgr*>(archive.readObject()); _sequencer = static_cast<Sequencer*>(archive.readObject()); diff --git a/engines/pink/objects/module.cpp b/engines/pink/objects/module.cpp index d1e16f37ee..f768020de0 100644 --- a/engines/pink/objects/module.cpp +++ b/engines/pink/objects/module.cpp @@ -81,7 +81,9 @@ PinkEngine *Module::getGame() const { } bool Module::checkValueOfVariable(Common::String &variable, Common::String &value) { - assert(_variables.contains(variable)); + //assert(_variables.contains(variable)); + if (!_variables.contains(variable)) + return value == "UNDEFINED"; return _variables[variable] == value; } diff --git a/engines/pink/objects/pages/game_page.cpp b/engines/pink/objects/pages/game_page.cpp index 5acc1f1858..8711a7ea66 100644 --- a/engines/pink/objects/pages/game_page.cpp +++ b/engines/pink/objects/pages/game_page.cpp @@ -56,6 +56,7 @@ void GamePage::init(bool isLoadingSave) { //assert(perhapsIsLoaded == 0); loadManagers(); } + getGame()->getDirector()->clear(); toConsole(); |