#pragma once

float autocvar_menu_animations = 0.2;

CLASS(Animation, Object)
	METHOD(Animation, configureAnimation, void(Animation this, entity, void(entity, float), float, float, float, float));
	METHOD(Animation, update, void(Animation this, float, float, float));
	METHOD(Animation, setTimeStartEnd, void(Animation this, float, float));
	METHOD(Animation, setTimeStartDuration, void(Animation this, float, float));
	METHOD(Animation, setValueStartEnd, void(Animation this, float, float));
	METHOD(Animation, setObjectSetter, void(Animation this, entity, void(entity, float)));
	METHOD(Animation, tick, void(Animation this, float));
	METHOD(Animation, calcValue, float(Animation this, float, float, float, float));
	METHOD(Animation, stopAnim, void(Animation this));
	METHOD(Animation, resumeAnim, void(Animation this));
	METHOD(Animation, finishAnim, void(Animation this));
	ATTRIB(Animation, object, entity);
	void setterDummy(Animation this, float) {}
	ATTRIB(Animation, setter, void(Animation this, float), setterDummy);
	ATTRIB(Animation, value, float, 0);
	ATTRIB(Animation, startTime, float, 0);
	ATTRIB(Animation, duration, float, 0);
	ATTRIB(Animation, startValue, float, 0);
	ATTRIB(Animation, delta, float, 0);
	ATTRIB(Animation, stopped, float, false);
	ATTRIB(Animation, finished, float, false);
ENDCLASS(Animation)
