#include "../loader/Interpreter.h"
#include "../loader/TypeDescription.h"
-using geometry::Vector;
+using math::Vector;
using loader::FieldDescription;
using loader::Interpreter;
using loader::TypeDescription;
}
+ComplexAnimation::ComplexAnimation(loader::noinit_t n)
+: Animation(n) {
+
+}
+
int ComplexAnimation::NumFrames() const {
return numFrames;
TypeDescription &td(TypeDescription::Create(TYPE_ID, "ComplexAnimation"));
td.SetDescription("Complex animation type that supports per-frame disposition and non-linear sprite offset selection.");
td.SetConstructor(&Construct);
+ td.SetInitializer(&Initialize);
td.SetSize(sizeof(ComplexAnimation));
td.AddSupertype(Animation::TYPE_ID, ((char *)a) - ((char *)&ca));
Animation::AddFields(td, ca, ((char *)a) - ((char *)&ca));
- td.AddField("frames", FieldDescription(((char *)&ca.frames) - ((char *)&ca), FrameProp::TYPE_ID).SetReferenced().SetAggregate().SetDescription("a variable number of frames"));
+ td.AddField("frames", FieldDescription(((char *)&ca.frames) - ((char *)&ca), FrameProp::TYPE_ID).SetAggregate().SetDescription("a variable number of frames"));
FrameProp fp;
new (data) ComplexAnimation;
}
+void ComplexAnimation::Initialize(void *data) {
+ new (data) ComplexAnimation(loader::noinit);
+}
+
}