aboutsummaryrefslogtreecommitdiff
path: root/sprite.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2023-05-22 09:00:42 +0000
committerrodri <rgl@antares-labs.eu>2023-05-22 09:00:42 +0000
commite095f65376894dcdef067b63103f2e17e55a1f14 (patch)
treea941d8ed6b6c6149aa1eee503b11a955fdcf7213 /sprite.c
parent1baca76aaf266a2d071af4a173aee5b85efeffd6 (diff)
downloadmusw-e095f65376894dcdef067b63103f2e17e55a1f14.tar.gz
musw-e095f65376894dcdef067b63103f2e17e55a1f14.tar.bz2
musw-e095f65376894dcdef067b63103f2e17e55a1f14.zip
improvements to show a bullet's explosion upon ttl consumption.
implemented a vfx subsystem to handle localized, async animations.
Diffstat (limited to 'sprite.c')
-rw-r--r--sprite.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sprite.c b/sprite.c
index d000768..4af7c54 100644
--- a/sprite.c
+++ b/sprite.c
@@ -35,6 +35,12 @@ sprite_draw(Sprite *spr, Image *dst, Point dp)
draw(dst, rectaddpt(spr->r, dp), spr->sheet, nil, sp);
}
+static Sprite *
+sprite_clone(Sprite *spr)
+{
+ return newsprite(spr->sheet, spr->sp, spr->r, spr->nframes, spr->period);
+}
+
Sprite *
newsprite(Image *sheet, Point sp, Rectangle r, int nframes, ulong period)
{
@@ -50,6 +56,7 @@ newsprite(Image *sheet, Point sp, Rectangle r, int nframes, ulong period)
spr->elapsed = 0;
spr->step = sprite_step;
spr->draw = sprite_draw;
+ spr->clone = sprite_clone;
return spr;
}
@@ -111,6 +118,6 @@ readpngsprite(char *sheetfile, Point sp, Rectangle r, int nframes, ulong period)
void
delsprite(Sprite *spr)
{
- freeimage(spr->sheet);
+ //freeimage(spr->sheet);
free(spr);
}