diff --git a/include/arc/graphics/sprite.h b/include/arc/graphics/sprite.h index ff04dfa..40f43c2 100644 --- a/include/arc/graphics/sprite.h +++ b/include/arc/graphics/sprite.h @@ -8,6 +8,7 @@ extern "C" { #include "arc/graphics/renderer.h" #include "arc/graphics/spritesheet.h" #include "arc/math/rectangle.h" +#include "arc/std/array.h" typedef struct ARC_Sprite ARC_Sprite; @@ -19,6 +20,8 @@ void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *ren void ARC_Sprite_IterateFrame(ARC_Sprite *sprite); +void ARC_Sprite_SetFrames(ARC_Sprite *sprite, ARC_Array *frames); + ARC_Rect *ARC_Sprite_GetBounds(ARC_Sprite *sprite); #ifdef __cplusplus diff --git a/src/graphics/sdl/sprite.c b/src/graphics/sdl/sprite.c index 1928da5..8e15b7b 100644 --- a/src/graphics/sdl/sprite.c +++ b/src/graphics/sdl/sprite.c @@ -31,6 +31,11 @@ void ARC_Sprite_IterateFrame(ARC_Sprite *sprite){ } } +void ARC_Sprite_SetFrames(ARC_Sprite *sprite, ARC_Array *frames){ + sprite->frames = frames->data; + *sprite->frameIndex = 0; +} + ARC_Rect *ARC_Sprite_GetBounds(ARC_Sprite *sprite){ return sprite->frames + *sprite->frameIndex; }