]> git.localhorst.tv Git - l2e.git/blobdiff - src/graphics/Gauge.cpp
added loading callback for type descriptions
[l2e.git] / src / graphics / Gauge.cpp
index 7407ba77c2f087f57b69a8af84f51a0f1cde4d9c..b7023d40538b68075a0085ccd111201bca95f44e 100644 (file)
@@ -85,14 +85,15 @@ void Gauge::Draw(SDL_Surface *dest, const Vector<int> &position, int width, Uint
 
 void Gauge::CreateTypeDescription() {
        Gauge g;
-       TypeDescription &td(TypeDescription::CreateOrGet("Gauge"));
-
-       td.SetSize(sizeof(Gauge));
 
        int imageId(TypeDescription::GetTypeId("Image"));
        int numberId(TypeDescription::GetTypeId("Number"));
        int vectorId(TypeDescription::GetTypeId("Vector"));
 
+       TypeDescription &td(TypeDescription::CreateOrGet("Gauge"));
+       td.SetConstructor(&Construct);
+       td.SetSize(sizeof(Gauge));
+
        td.AddField("image", FieldDescription(((char *)&g.surface) - ((char *)&g), imageId, true));
        td.AddField("full", FieldDescription(((char *)&g.fullOffset) - ((char *)&g), vectorId, false));
        td.AddField("empty", FieldDescription(((char *)&g.emptyOffset) - ((char *)&g), vectorId, false));
@@ -102,4 +103,8 @@ void Gauge::CreateTypeDescription() {
        td.AddField("end", FieldDescription(((char *)&g.endWidth) - ((char *)&g), numberId, false));
 }
 
+void Gauge::Construct(void *data) {
+       new (data) Gauge;
+}
+
 }