void setterDummy(entity, float);
CLASS(Animation, Object)
METHOD(Animation, configureAnimation, void(entity, entity, void(entity, float), float, float, float, float))
+ METHOD(Animation, update, void(entity, float, float, float))
METHOD(Animation, setTimeStartEnd, void(entity, float, float))
METHOD(Animation, setTimeStartDuration, void(entity, float, float))
METHOD(Animation, setValueStartEnd, void(entity, float, float))
me.setValueStartEnd(me, animStartValue, animEndValue);
}
+void Animation_update(entity me, float animDuration, float animStartValue, float animEndValue)
+{
+ me.setTimeStartDuration(me, time, animDuration);
+ me.setValueStartEnd(me, animStartValue, animEndValue);
+}
+
void Animation_setTimeStartEnd(entity me, float s, float e)
{
me.startTime = s;
ATTRIB(Slider, value, float, 0)
ATTRIB(Slider, animated, float, 1)
ATTRIB(Slider, sliderValue, float, 0)
+ ATTRIB(Slider, sliderAnim, entity, world)
ATTRIB(Slider, valueMin, float, 0)
ATTRIB(Slider, valueMax, float, 0)
ATTRIB(Slider, valueStep, float, 0)
void Slider_setValue(entity me, float val)
{
if (me.animated) {
- anim.removeObjAnim(anim, me);
- makeHostedEasing(me, Slider_setSliderValue, easingQuadInOut, 1, me.sliderValue, val);
+ float t = 0.5;
+ if(!me.sliderAnim)
+ me.sliderAnim = makeHostedEasing(me, Slider_setSliderValue, easingQuadOut, t, me.sliderValue, val);
+ else
+ me.sliderAnim.update(me.sliderAnim, t, me.sliderValue, val);
} else {
me.setSliderValue(me, val);
}
else
draw_Picture(eX * controlLeft, strcat(me.src, "_n"), eX * me.controlWidth + eY, me.color, 1);
}
+
+ if(me.sliderAnim)
+ if(me.sliderAnim.isFinished(me.sliderAnim))
+ {
+ anim.removeObjAnim(anim, me);
+ me.sliderAnim = world;
+ }
+
me.setText(me, me.valueToText(me, me.value));
draw_alpha = save;
SUPER(Slider).draw(me);