feat(sprite): sprite now has a sprite_new_empty function

This commit is contained in:
Sara 2023-11-24 16:21:28 +01:00
parent 54efa7c83e
commit fa38d1a7ca
2 changed files with 13 additions and 5 deletions

View file

@ -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;
}

View file

@ -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);