aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/zvision/scripting/sidefx/animation_node.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/zvision/scripting/sidefx/animation_node.cpp b/engines/zvision/scripting/sidefx/animation_node.cpp
index 134ab1396f..1f62b61310 100644
--- a/engines/zvision/scripting/sidefx/animation_node.cpp
+++ b/engines/zvision/scripting/sidefx/animation_node.cpp
@@ -39,8 +39,20 @@ AnimationNode::AnimationNode(ZVision *engine, uint32 controlKey, const Common::S
_mask(mask),
_animation(NULL) {
- _animation = engine->loadAnimation(fileName);
- _frmDelay = 1000.0 / _animation->getDuration().framerate();
+ if (fileName.hasSuffix(".rlf")) {
+ // HACK: Read the frame delay directly
+ Common::File *tmp = engine->getSearchManager()->openFile(fileName);
+ if (tmp) {
+ tmp->seek(176, SEEK_SET);
+ _frmDelay = tmp->readUint32LE() / 10;
+ delete tmp;
+ }
+
+ _animation = engine->loadAnimation(fileName);
+ } else {
+ _animation = engine->loadAnimation(fileName);
+ _frmDelay = Common::Rational(1000, _animation->getDuration().framerate()).toInt();
+ }
if (frate > 0)
_frmDelay = 1000.0 / frate;