X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FSimpleAnimation.cpp;h=7ed79931257a64e39a447ed83501abcd76dc0f04;hb=978ccdf2644bc445c864dbe581ead365b238cff8;hp=17a0857832ce8dcfbe75b297f9113515aad4f8a3;hpb=46d158b25b842d2ec4b9734af09ca6006c934498;p=l2e.git diff --git a/src/graphics/SimpleAnimation.cpp b/src/graphics/SimpleAnimation.cpp index 17a0857..7ed7993 100644 --- a/src/graphics/SimpleAnimation.cpp +++ b/src/graphics/SimpleAnimation.cpp @@ -19,15 +19,24 @@ void SimpleAnimation::CreateTypeDescription() { Animation *a(&sa); int animationId(TypeDescription::GetTypeId("Animation")); + int boolId(TypeDescription::GetTypeId("Boolean")); int numberId(TypeDescription::GetTypeId("Number")); + int spriteId(TypeDescription::GetTypeId("Sprite")); TypeDescription &td(TypeDescription::CreateOrGet("SimpleAnimation")); + td.SetDescription("An animation that uses a fixed column and increasing row of a sprite based on the frame number."); + td.SetConstructor(&Construct); td.SetSize(sizeof(SimpleAnimation)); td.AddSupertype(animationId, ((char *)a) - ((char *)&sa)); - td.AddField("framecount", FieldDescription(((char *)&sa.numFrames) - ((char *)&sa), numberId, false)); - td.AddField("col", FieldDescription(((char *)&sa.col) - ((char *)&sa), numberId, false)); - td.AddField("row", FieldDescription(((char *)&sa.row) - ((char *)&sa), numberId, false)); + Animation::AddFields(td, sa, ((char *)a) - ((char *)&sa), boolId, numberId, spriteId); + td.AddField("framecount", FieldDescription(((char *)&sa.numFrames) - ((char *)&sa), numberId).SetDescription("number of frames of a single run")); + td.AddField("col", FieldDescription(((char *)&sa.col) - ((char *)&sa), numberId).SetDescription("the column of the sprite to draw from")); + td.AddField("row", FieldDescription(((char *)&sa.row) - ((char *)&sa), numberId).SetDescription("the row of the sprite of the first frame")); +} + +void SimpleAnimation::Construct(void *data) { + new (data) SimpleAnimation; } }