From f337113932229ef06bb6d6171ed4341d8d992299 Mon Sep 17 00:00:00 2001 From: herbglitch Date: Mon, 2 Jan 2023 18:05:44 -0700 Subject: [PATCH] sprite frames added --- include/arc/graphics/sprite.h | 3 +++ src/graphics/sdl/sprite.c | 5 +++++ 2 files changed, 8 insertions(+) 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; }