diff --git a/engines/zvision/animation_node.cpp b/engines/zvision/animation_node.cpp index 89d0f5e45156..365ff747f462 100644 --- a/engines/zvision/animation_node.cpp +++ b/engines/zvision/animation_node.cpp @@ -191,4 +191,21 @@ bool AnimationNode::stop() { return false; } +void AnimationNode::setNewFrameDelay(int32 newDelay) { + if (newDelay > 0) { + PlayNodes::iterator it = _playList.begin(); + if (it != _playList.end()) { + playnode *nod = &(*it); + float percent = (float)nod->_delay / (float)_frmDelay; + nod->_delay = percent * newDelay; // Scale to new max + } + + _frmDelay = newDelay; + } +} + +int32 AnimationNode::getFrameDelay() { + return _frmDelay; +} + } // End of namespace ZVision diff --git a/engines/zvision/animation_node.h b/engines/zvision/animation_node.h index 556ab8a51ff6..ff7636a31f74 100644 --- a/engines/zvision/animation_node.h +++ b/engines/zvision/animation_node.h @@ -74,6 +74,9 @@ class AnimationNode : public SideFX { void addPlayNode(int32 slot, int x, int y, int x2, int y2, int start_frame, int end_frame, int loops = 1); bool stop(); + + void setNewFrameDelay(int32 newDelay); + int32 getFrameDelay(); }; } // End of namespace ZVision