2 CLASS(Animation) EXTENDS(Object)
3 METHOD(Animation, setTimeStartEnd, void(entity, float, float))
4 METHOD(Animation, setTimeStartDuration, void(entity, float, float))
5 METHOD(Animation, setValueStartEnd, void(entity, float, float))
6 METHOD(Animation, setValueStartDelta, void(entity, float, float))
7 METHOD(Animation, setObjectSetter, void(entity, entity, void(entity, float)))
8 METHOD(Animation, tick, void(entity, float))
9 METHOD(Animation, isFinished, float(entity))
10 METHOD(Animation, stopAnim, void(entity))
11 METHOD(Animation, finishAnim, void(entity))
12 ATTRIB(Animation, object, entity, NULL)
13 ATTRIB(Animation, setter, void(entity, float), setterDummy)
14 ATTRIB(Animation, math, float(float, float, float, float), animLinear)
15 ATTRIB(Animation, value, float, 0)
16 ATTRIB(Animation, startTime, float, 0)
17 ATTRIB(Animation, duration, float, 0)
18 ATTRIB(Animation, startValue, float, 0)
19 ATTRIB(Animation, delta, float, 0)
20 ATTRIB(Animation, finished, float, FALSE)
22 entity makeHostedAnimation(entity, void(entity, float), float, float, float);
23 entity makeAnimation(entity, void(entity, float), float, float, float);
24 float animLinear(float, float, float, float);
25 void setterDummy(entity, float);
29 entity makeHostedAnimation(entity obj, void(entity, float) setter, float duration, float start, float end)
32 me = makeAnimation(obj, setter, duration, start, end);
33 anim.addAnim(anim, me);
37 entity makeAnimation(entity obj, void(entity, float) setter, float duration, float start, float end)
40 me = spawnAnimation();
41 me.setObjectSetter(me, obj, setter);
42 me.setTimeStartDuration(me, time, duration);
43 me.setValueStartEnd(me, start, end);
47 void setTimeStartEndAnimation(entity me, float s, float e)
53 void setTimeStartDurationAnimation(entity me, float s, float d)
59 void setValueStartEndAnimation(entity me, float s, float e)
65 void setValueStartDeltaAnimation(entity me, float s, float d)
71 void setObjectSetterAnimation(entity me, entity o, void(entity, float) s)
77 void tickAnimation(entity me, float time)
79 if (me.isFinished(me))
82 me.value = me.math((time - me.startTime), me.duration, me.startValue, me.delta);
83 me.setter(me.object, me.value);
85 if (time > (me.startTime + me.duration))
89 float isFinishedAnimation(entity me)
94 void stopAnimAnimation(entity me)
98 void finishAnimAnimation(entity me)
103 float animLinear(float time, float duration, float start, float delta)
106 return delta + start;
107 return (delta * (time / duration)) + start;
110 void setterDummy(entity object, float value)