aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/scripting/sidefx
diff options
context:
space:
mode:
authorFilippos Karapetis2014-12-23 00:02:30 +0200
committerFilippos Karapetis2014-12-23 00:07:45 +0200
commit3f36cc94e45d32dc4784c16ec91b6fc44dbf0ff7 (patch)
tree1b9de91ab1addd74821114073c1ce4cb1c77fd17 /engines/zvision/scripting/sidefx
parent4e60fa705fd22069565cdb17c907f91301a67dc5 (diff)
downloadscummvm-rg350-3f36cc94e45d32dc4784c16ec91b6fc44dbf0ff7.tar.gz
scummvm-rg350-3f36cc94e45d32dc4784c16ec91b6fc44dbf0ff7.tar.bz2
scummvm-rg350-3f36cc94e45d32dc4784c16ec91b6fc44dbf0ff7.zip
ZVISION: Limit the default engine delay for all animations
This fixes the lag between frames for all in-game animations with a default frame delay
Diffstat (limited to 'engines/zvision/scripting/sidefx')
-rw-r--r--engines/zvision/scripting/sidefx/animation_node.cpp18
-rw-r--r--engines/zvision/scripting/sidefx/animation_node.h1
2 files changed, 5 insertions, 14 deletions
diff --git a/engines/zvision/scripting/sidefx/animation_node.cpp b/engines/zvision/scripting/sidefx/animation_node.cpp
index 3a21227d1a..56f1fa3e49 100644
--- a/engines/zvision/scripting/sidefx/animation_node.cpp
+++ b/engines/zvision/scripting/sidefx/animation_node.cpp
@@ -42,6 +42,11 @@ AnimationNode::AnimationNode(ZVision *engine, uint32 controlKey, const Common::S
_animation = engine->loadAnimation(fileName);
_frmDelay = 1000.0 / _animation->getDuration().framerate();
+ // WORKAROUND: We do not allow the engine to delay more than 66 msec
+ // per frame (15fps max)
+ if (_frmDelay > 66)
+ _frmDelay = 66;
+
if (frate > 0)
_frmDelay = 1000.0 / frate;
}
@@ -190,19 +195,6 @@ 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;
}
diff --git a/engines/zvision/scripting/sidefx/animation_node.h b/engines/zvision/scripting/sidefx/animation_node.h
index 3adfd91f32..74941aa764 100644
--- a/engines/zvision/scripting/sidefx/animation_node.h
+++ b/engines/zvision/scripting/sidefx/animation_node.h
@@ -73,7 +73,6 @@ public:
bool stop();
- void setNewFrameDelay(int32 newDelay);
int32 getFrameDelay();
};