X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FAnimation.cpp;h=03bef18cf44ba321b56a551ec2d918fa3a181d07;hb=5ada219caec0535c3a3ad9a120bc4abd341d1f81;hp=c1ba63797ab7ac061163a600a7d50fd5104f144f;hpb=ac3755adc509404528ef7de58695bf8e3bfb7dcd;p=l2e.git diff --git a/src/graphics/Animation.cpp b/src/graphics/Animation.cpp index c1ba637..03bef18 100644 --- a/src/graphics/Animation.cpp +++ b/src/graphics/Animation.cpp @@ -7,21 +7,26 @@ #include "Animation.h" +#include "Sprite.h" +#include "../loader/Interpreter.h" #include "../loader/TypeDescription.h" using loader::FieldDescription; +using loader::Interpreter; using loader::TypeDescription; namespace graphics { -void Animation::AddFields(TypeDescription &td, const Animation &a, std::ptrdiff_t offset) { - int boolId(TypeDescription::GetTypeId("Boolean")); - int numberId(TypeDescription::GetTypeId("Number")); - int spriteId(TypeDescription::GetTypeId("Sprite")); +void Animation::CreateTypeDescription() { + TypeDescription &td(TypeDescription::Create(TYPE_ID, "Animation")); + td.SetDescription("Abstract base type for animations."); + td.SetSize(sizeof(Animation)); +} - td.AddField("sprite", FieldDescription(((char *)&a.sprite) - ((char *)&a) - offset, spriteId, true)); - td.AddField("frametime", FieldDescription(((char *)&a.frameTime) - ((char *)&a) - offset, numberId, false)); - td.AddField("repeat", FieldDescription(((char *)&a.repeat) - ((char *)&a) - offset, boolId, false)); +void Animation::AddFields(TypeDescription &td, const Animation &a, std::ptrdiff_t offset) { + td.AddField("sprite", FieldDescription(((char *)&a.sprite) - ((char *)&a) - offset, Sprite::TYPE_ID).SetReferenced().SetDescription("the sprite used for cutting out frames")); + td.AddField("frametime", FieldDescription(((char *)&a.frameTime) - ((char *)&a) - offset, Interpreter::NUMBER_ID).SetDescription("duration of a frame in miliseconds")); + td.AddField("repeat", FieldDescription(((char *)&a.repeat) - ((char *)&a) - offset, Interpreter::BOOLEAN_ID).SetDescription("whether the animation should start over at the beginning after reaching the last frame")); } }