]> git.localhorst.tv Git - l2e.git/commitdiff
removed type resolution from Animation::addFields
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Mon, 10 Sep 2012 20:08:28 +0000 (22:08 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Mon, 10 Sep 2012 20:08:28 +0000 (22:08 +0200)
src/graphics/Animation.cpp
src/graphics/Animation.h
src/graphics/ComplexAnimation.cpp
src/graphics/SimpleAnimation.cpp

index c1ba63797ab7ac061163a600a7d50fd5104f144f..9bbfa1a1139b530e918cab5fb35bd663a6c743f5 100644 (file)
@@ -14,11 +14,7 @@ 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::AddFields(TypeDescription &td, const Animation &a, std::ptrdiff_t offset, int boolId, int numberId, int spriteId) {
        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));
index ee62493b18f54c623c729d52c450ec046b027993..29948feb3bac68579ef66ecdd20cd8dc81855d4a 100644 (file)
@@ -49,7 +49,7 @@ public:
        virtual geometry::Vector<int> Offset(int frame) const { return geometry::Vector<int>(); }
 
 protected:
-       static void AddFields(loader::TypeDescription &, const Animation &, std::ptrdiff_t offset);
+       static void AddFields(loader::TypeDescription &, const Animation &, std::ptrdiff_t offset, int boolId, int numberId, int spriteId);
 
 private:
        const Sprite *sprite;
index 253f0c450d633f64e9b52d521b5c3af858152a2c..ab19fd013fd46bde17e674cd1de041724f3a97f6 100644 (file)
@@ -19,13 +19,16 @@ void ComplexAnimation::CreateTypeDescription() {
        Animation *a(&ca);
 
        int animationId(TypeDescription::GetTypeId("Animation"));
+       int boolId(TypeDescription::GetTypeId("Boolean"));
        int frameId(TypeDescription::GetTypeId("ComplexAnimationFrame"));
+       int numberId(TypeDescription::GetTypeId("Number"));
+       int spriteId(TypeDescription::GetTypeId("Sprite"));
 
        TypeDescription &td(TypeDescription::CreateOrGet("ComplexAnimation"));
        td.SetSize(sizeof(ComplexAnimation));
        td.AddSupertype(animationId, ((char *)a) - ((char *)&ca));
 
-       Animation::AddFields(td, ca, ((char *)a) - ((char *)&ca));
+       Animation::AddFields(td, ca, ((char *)a) - ((char *)&ca), boolId, numberId, spriteId);
        td.AddField("frames", FieldDescription(((char *)&ca.frames) - ((char *)&ca), frameId, true, true));
 
 
index 17a0857832ce8dcfbe75b297f9113515aad4f8a3..f1c1a724dea74e95b1ef8cdd85d4c75d55cb01e9 100644 (file)
@@ -19,12 +19,15 @@ 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.SetSize(sizeof(SimpleAnimation));
        td.AddSupertype(animationId, ((char *)a) - ((char *)&sa));
 
+       Animation::AddFields(td, sa, ((char *)a) - ((char *)&sa), boolId, numberId, spriteId);
        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));