#include #include "sprite.h" #include #define Sprite_log(msg) dbg_sprintf(dbgout, "[Sprite] %s\n", msg) void Sprite_resize(struct Sprite* self, int width, int height){ gfx_sprite_t* resized_data = gfx_MallocSprite(width, height); gfx_ScaleSprite(self->data, resized_data); free(self->data); self->data = resized_data; } void free_Sprite(Sprite* self){ Sprite_log("Freeing sprite"); free(self->data); free(self); } Sprite* new_Sprite(int width, int height, void* compressed_data){ gfx_sprite_t* data = gfx_MallocSprite(width, height); Sprite* self = (Sprite*)malloc(sizeof(Sprite)); zx7_Decompress(data, compressed_data); self->data = data; self->resize = &Sprite_resize; return self; }