]> git.localhorst.tv Git - l2e.git/blobdiff - src/graphics/ComplexAnimation.cpp
new language, new compiler
[l2e.git] / src / graphics / ComplexAnimation.cpp
index c1b88c18d789aa2c7fb847331fb6b07a8c326be8..942db777e0f72eeaec4e5b0e52777dc8db5a8fc6 100644 (file)
@@ -26,6 +26,11 @@ ComplexAnimation::ComplexAnimation(
 
 }
 
+ComplexAnimation::ComplexAnimation(loader::noinit_t n)
+: Animation(n) {
+
+}
+
 
 int ComplexAnimation::NumFrames() const {
        return numFrames;
@@ -51,11 +56,12 @@ void ComplexAnimation::CreateTypeDescription() {
        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;
@@ -73,4 +79,8 @@ void ComplexAnimation::Construct(void *data) {
        new (data) ComplexAnimation;
 }
 
+void ComplexAnimation::Initialize(void *data) {
+       new (data) ComplexAnimation(loader::noinit);
+}
+
 }