]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/anim/animation.qc
Merge branch 'master' into terencehill/tooltips_cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / anim / animation.qc
index 26b01d71801f3555fa7cc5f0b329c833a5752848..d24220fefae0ab9fe4695d8287fcc21c1a2a7bcd 100644 (file)
@@ -1,18 +1,21 @@
-#ifdef INTERFACE
-CLASS(Animation) EXTENDS(Object)
-       METHOD(Animation, configureAnimation, void(entity, entity, void(entity, float), float, float, float, float))
-       METHOD(Animation, setTimeStartEnd, void(entity, float, float))
-       METHOD(Animation, setTimeStartDuration, void(entity, float, float))
-       METHOD(Animation, setValueStartEnd, void(entity, float, float))
-       METHOD(Animation, setValueStartDelta, void(entity, float, float))
-       METHOD(Animation, setObjectSetter, void(entity, entity, void(entity, float)))
-       METHOD(Animation, tick, void(entity, float))
-       METHOD(Animation, calcValue, float(entity, float, float, float, float))
-       METHOD(Animation, isStopped, float(entity))
-       METHOD(Animation, stopAnim, void(entity))
-       METHOD(Animation, resumeAnim, void(entity))
-       METHOD(Animation, isFinished, float(entity))
-       METHOD(Animation, finishAnim, void(entity))
+#ifndef ANIM_ANIMATION_H
+#define ANIM_ANIMATION_H
+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));
+       METHOD(Animation, setValueStartDelta, void(entity, float, float));
+       METHOD(Animation, setObjectSetter, void(entity, entity, void(entity, float)));
+       METHOD(Animation, tick, void(entity, float));
+       METHOD(Animation, calcValue, float(entity, float, float, float, float));
+       METHOD(Animation, isStopped, float(entity));
+       METHOD(Animation, stopAnim, void(entity));
+       METHOD(Animation, resumeAnim, void(entity));
+       METHOD(Animation, isFinished, float(entity));
+       METHOD(Animation, finishAnim, void(entity));
        ATTRIB(Animation, object, entity, NULL)
        ATTRIB(Animation, setter, void(entity, float), setterDummy)
        ATTRIB(Animation, value, float, 0)
@@ -23,7 +26,6 @@ CLASS(Animation) EXTENDS(Object)
        ATTRIB(Animation, stopped, float, false)
        ATTRIB(Animation, finished, float, false)
 ENDCLASS(Animation)
-void setterDummy(entity, float);
 #endif
 
 #ifdef IMPLEMENTATION
@@ -34,6 +36,12 @@ void Animation_configureAnimation(entity me, entity obj, void(entity, float) obj
        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;