aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/objects
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/objects')
-rw-r--r--engines/pink/objects/actions/action_cel.cpp2
-rw-r--r--engines/pink/objects/actions/action_loop.h2
-rw-r--r--engines/pink/objects/actions/action_still.cpp4
-rw-r--r--engines/pink/objects/actors/lead_actor.cpp1
-rw-r--r--engines/pink/objects/module.cpp4
-rw-r--r--engines/pink/objects/pages/game_page.cpp1
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();