summaryrefslogtreecommitdiff
path: root/src/sprite.c
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2023-12-26 16:04:38 +0100
committerAldrik Ramaekers <aldrik@amftech.nl>2023-12-26 16:04:38 +0100
commitd018848939d1101df21515cb81f611f23c119d10 (patch)
tree02b7bcdc876de586d5fdce9ff92f0d01f670d4db /src/sprite.c
parentef471c71e0da0269ed2a924eaae991ac2d0cfa20 (diff)
body
Diffstat (limited to 'src/sprite.c')
-rw-r--r--src/sprite.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sprite.c b/src/sprite.c
index c6ee82e..30307ae 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -16,6 +16,7 @@ sprite create_sprite(image* img, int frame_count, int fwidth, int fheight, float
void update_sprite(sprite* sprite) {
sprite->time += SERVER_TICK_RATE;
+ if (sprite->sec_per_frame == 0.0f) return; // sprite does not play.
int frame = sprite->time / sprite->sec_per_frame;
sprite->current_frame = frame;
if (frame >= sprite->frame_count) {
@@ -24,7 +25,14 @@ void update_sprite(sprite* sprite) {
}
}
-sprite_frame sprite_get_frame(sprite* sprite) {
+void sprite_set_current_frame(sprite* sprite, int index) {
+ sprite->current_frame = index;
+}
+
+sprite_frame sprite_get_frame(image* img, sprite* sprite) {
+ sprite->img_width = img->width;
+ sprite->img_height = img->height;
+
sprite_frame frame = {0};
int columns = sprite->img_width / sprite->frame_width;
int rows = sprite->img_height/ sprite->frame_height;