]> git.localhorst.tv Git - l2e.git/blobdiff - src/graphics/Sprite.cpp
changed how animation runners handle sprite overrides
[l2e.git] / src / graphics / Sprite.cpp
index e83486e9fe2d4d17baa1b1d53c0f88be322e3d69..434679ce740db47d280bdaf593f38ae1f85c302f 100644 (file)
@@ -43,16 +43,21 @@ void Sprite::Draw(SDL_Surface *dest, const Vector<int> &position, int col, int r
 
 void Sprite::CreateTypeDescription() {
        Sprite s;
-       TypeDescription &td(TypeDescription::CreateOrGet("Sprite"));
-
-       td.SetSize(sizeof(Sprite));
 
        int imageId(TypeDescription::GetTypeId("Image"));
        int vectorId(TypeDescription::GetTypeId("Vector"));
 
+       TypeDescription &td(TypeDescription::CreateOrGet("Sprite"));
+       td.SetConstructor(&Construct);
+       td.SetSize(sizeof(Sprite));
+
        td.AddField("image", FieldDescription(((char *)&s.surface) - ((char *)&s), imageId, true));
        td.AddField("size", FieldDescription(((char *)&s.size) - ((char *)&s), vectorId, false));
        td.AddField("offset", FieldDescription(((char *)&s.offset) - ((char *)&s), vectorId, false));
 }
 
+void Sprite::Construct(void *data) {
+       new (data) Sprite;
+}
+
 }