X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FComplexAnimation.cpp;h=95f58692ed67bae11a7cb2187e332c8336b18a57;hb=c33724dc441c5b21a4eb84aa0105c95e82a66adc;hp=f999c4af18f748d7129e71056074aa40b49e586b;hpb=cc3d698b8c1ad09d7a3f9e3f28bc84e0ac1735ea;p=l2e.git diff --git a/src/graphics/ComplexAnimation.cpp b/src/graphics/ComplexAnimation.cpp index f999c4a..95f5869 100644 --- a/src/graphics/ComplexAnimation.cpp +++ b/src/graphics/ComplexAnimation.cpp @@ -3,12 +3,47 @@ #include "../loader/Interpreter.h" #include "../loader/TypeDescription.h" +using math::Vector; using loader::FieldDescription; using loader::Interpreter; using loader::TypeDescription; namespace graphics { +ComplexAnimation::ComplexAnimation() +: frames(0) +, numFrames(0) { + +} + +ComplexAnimation::ComplexAnimation( + const Sprite *sprite, + int frameTime, + bool repeat) +: Animation(sprite, frameTime, repeat) +, frames(0) +, numFrames(0) { + +} + + +int ComplexAnimation::NumFrames() const { + return numFrames; +} + +int ComplexAnimation::Col(int frame) const { + return frames[frame].col; +} + +int ComplexAnimation::Row(int frame) const { + return frames[frame].row; +} + +Vector ComplexAnimation::Offset(int frame) const { + return frames[frame].disposition; +} + + void ComplexAnimation::CreateTypeDescription() { ComplexAnimation ca; Animation *a(&ca); @@ -20,7 +55,7 @@ void ComplexAnimation::CreateTypeDescription() { td.AddSupertype(Animation::TYPE_ID, ((char *)a) - ((char *)&ca)); Animation::AddFields(td, ca, ((char *)a) - ((char *)&ca)); - td.AddField("frames", FieldDescription(((char *)&ca.frames) - ((char *)&ca), FrameProp::TYPE_ID).SetReferenced().SetAggregate().SetDescription("a variable number of frames")); + td.AddField("frames", FieldDescription(((char *)&ca.frames) - ((char *)&ca), FrameProp::TYPE_ID).SetAggregate().SetDescription("a variable number of frames")); FrameProp fp;