diff options
author | rodri <rgl@antares-labs.eu> | 2023-05-22 09:00:42 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2023-05-22 09:00:42 +0000 |
commit | e095f65376894dcdef067b63103f2e17e55a1f14 (patch) | |
tree | a941d8ed6b6c6149aa1eee503b11a955fdcf7213 /sprite.c | |
parent | 1baca76aaf266a2d071af4a173aee5b85efeffd6 (diff) | |
download | musw-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.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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); } |