21 lines
618 B
C
21 lines
618 B
C
#include "systems.h"
|
|
|
|
#include "../game_state.h"
|
|
|
|
void updateAnimations(ecs_iter_t *it) {
|
|
Animation *anim = ecs_field(it, Animation, 1);
|
|
TextureRegion *t = ecs_field(it, TextureRegion, 2);
|
|
|
|
float dt = GetFrameTime();
|
|
|
|
for (i32 i = 0; i < it->count; i++) {
|
|
anim[i].frameDuration = GAME->frameDuration;
|
|
anim[i].elapsed += dt;
|
|
if (anim[i].elapsed < anim[i].frameDuration) continue;
|
|
|
|
anim[i].currFrame = (anim[i].currFrame + 1) % anim[i].frameCount;
|
|
anim[i].elapsed = 0.0f;
|
|
t[i].rec.x = anim[i].firstFrame.rec.x + anim[i].currFrame * t[i].rec.width;
|
|
}
|
|
}
|