void PartyLayout::CreateTypeDescription() {
PartyLayout p;
- TypeDescription &td(TypeDescription::CreateOrGet("PartyLayout"));
+ int vectorId(TypeDescription::GetTypeId("Vector"));
+
+ TypeDescription &td(TypeDescription::CreateOrGet("PartyLayout"));
+ td.SetDescription("Positions of party members");
+ td.SetConstructor(&Construct);
td.SetSize(sizeof(PartyLayout));
- int vectorId(TypeDescription::GetTypeId("Vector"));
+ td.AddField("positions", FieldDescription(((char *)&p.positions) - ((char *)&p), vectorId).SetReferenced().SetAggregate().SetDescription("the members' positions"));
+}
- td.AddField("positions", FieldDescription(((char *)&p.positions) - ((char *)&p), vectorId, true, true));
+void PartyLayout::Construct(void *data) {
+ new (data) PartyLayout;
}
}