#ifndef ANIMDATA_H #define ANIMDATA_H #include "Resource.h" #include "FrameSheet.h" struct AnimArray { int count; struct AnimData **anims; }; struct AnimArray *newAnimArray(); int freeAnimArray(struct AnimArray *anim_array); int pushAnimData(struct AnimArray *anim_array, struct AnimData *anim_data); struct AnimData { char *name; int count; struct SetData **sets; }; struct AnimData *newAnimData(); int freeAnimData(struct AnimData *anim_data); int pushSetData(struct AnimData *anim_data, struct SetData *set_data); int saveAnimData(struct AnimData *anim_data); int loadAnimData(struct AnimData *anim_data, const char *filename); struct AnimData *loadAnimData_res(const char *filename); struct FrameData *getAnimFrameData(struct AnimData *anim_data, const char *set, const char *face, int frame); struct SetData { char *name; int fps; int count; struct FaceData **faces; }; struct SetData *newSetData(); int freeSetData(struct SetData *set_data); int pushFaceData(struct SetData *set_data, struct FaceData *face_data); struct FaceData { char *name; int count; struct FrameData **frames; struct FrameSheet *sheet; // ugly, but let's reuse FaceData in LiveMap as well }; struct FaceData *newFaceData(); int freeFaceData(struct FaceData *face_data); int pushFrameData(struct FaceData *face_data, struct FrameData *frame_data); struct FrameData { char *file; char *tag; }; struct FrameData *newFrameData(); int freeFrameData(struct FrameData *frame_data); #endif