Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "animation.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <SDL\SDL.h>
- #include "memory.h"
- int
- Anim_load(const char *filePath, ANIMATION *anim) {
- if (filePath != NULL) {
- FILE *file = NULL;
- file = fopen(filePath, "r");
- if (file != NULL) {
- fscanf(file, "%u %d\n", &anim->delay, &anim->totalFrames);
- anim->frames = xmalloc(anim->totalFrames * sizeof(int));
- anim->actFrame = 0;
- anim->time.act = 0;
- anim->time.old = 0;
- for (int frame = 0; frame < anim->totalFrames; ++frame) {
- fscanf(file, "%d", &anim->frames[frame]);
- }
- return 0;
- }
- }
- return 1;
- }
- void
- Anim_free(ANIMATION *anim) {
- xfree(anim->frames);
- }
- void
- Anim_play(ANIMATION *anim, int *entityState) {
- anim->time.act = SDL_GetTicks();
- if ((anim->time.act - anim->time.old) > anim->delay) {
- *entityState = anim->frames[anim->actFrame++];
- anim->time.old = anim->time.act++;
- if (anim->actFrame >= anim->totalFrames) {
- anim->actFrame = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement