From fa38d1a7cafd60d4d6b5f7c82e53a51c58c4dbad Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 24 Nov 2023 16:21:28 +0100 Subject: [PATCH] feat(sprite): sprite now has a sprite_new_empty function --- core/src/sprite.c | 17 ++++++++++++----- core/src/sprite.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/core/src/sprite.c b/core/src/sprite.c index 3524502..a0d5414 100644 --- a/core/src/sprite.c +++ b/core/src/sprite.c @@ -19,16 +19,23 @@ struct Sprite { SDL_RendererFlip flip_state; }; -Sprite* sprite_from_spritesheet(Spritesheet* sheet, size_t initial_frame) { +Sprite* sprite_new_empty() { Sprite* self = malloc(sizeof(Sprite)); - ASSERT_RETURN(self != NULL, NULL, "Failed to allocate memory for new sprite."); + *self = (Sprite){ + .spritesheet = NULL, + .tile_index = 0, + .origin = ZeroVector, + .flip_state = SDL_FLIP_NONE, + }; + return self; +} +Sprite* sprite_from_spritesheet(Spritesheet* sheet, size_t initial_frame) { + Sprite* self = sprite_new_empty(); self->spritesheet = sheet; - self->origin = (Vector){0.5f, 0.5f}; + self->origin = VectorFrom(0.5f); self->tile_index = initial_frame; - self->flip_state = SDL_FLIP_NONE; - return self; } diff --git a/core/src/sprite.h b/core/src/sprite.h index 8fdf0ac..b75279c 100644 --- a/core/src/sprite.h +++ b/core/src/sprite.h @@ -10,6 +10,7 @@ // Forward declaration of the private sprite struct typedef struct Sprite Sprite; +extern Sprite* sprite_new_empty(); extern Sprite* sprite_from_spritesheet(Spritesheet* sheet, size_t initial_frame); extern void sprite_destroy(Sprite* sprite);