From 6542e4f1d07298a02a27dc8274139c99268a0c15 Mon Sep 17 00:00:00 2001 From: Linus Probert Date: Thu, 28 Feb 2019 21:53:30 +0100 Subject: [PATCH] Moves item update to its own function --- src/item.c | 17 +++++++++++++---- src/item.h | 3 +++ src/map.c | 6 ++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/item.c b/src/item.c index c317fa1..473ece4 100644 --- a/src/item.c +++ b/src/item.c @@ -40,6 +40,18 @@ item_create(void) return item; } +void +item_update(Item *item) +{ + LinkedList *subsprites = item->subsprites; + while (subsprites != NULL) { + Sprite *sprite = subsprites->data; + sprite->pos = item->sprite->pos; + sprite->pos.x += 15 - sprite->dim.width / 2; + subsprites = subsprites->next; + } +} + void item_render(Item *item, Camera *cam) { @@ -47,10 +59,7 @@ item_render(Item *item, Camera *cam) LinkedList *subsprites = item->subsprites; while (subsprites != NULL) { - Sprite *sprite = subsprites->data; - sprite->pos = item->sprite->pos; - sprite->pos.x + 15 - sprite->dim.width / 2; - sprite_render(sprite, cam); + sprite_render(subsprites->data, cam); subsprites = subsprites->next; } } diff --git a/src/item.h b/src/item.h index f2cb0a5..44d2915 100644 --- a/src/item.h +++ b/src/item.h @@ -46,6 +46,9 @@ item_create(void); void item_collected(Item*, Player*); +void +item_update(Item*); + void item_render(Item*, Camera*); diff --git a/src/map.c b/src/map.c index a89ece3..2a0b3f6 100644 --- a/src/map.c +++ b/src/map.c @@ -295,6 +295,12 @@ map_update(UpdateData *data) sprite_update(room->tiles[i][j]->sprite, data); } } + + LinkedList *items = map->items; + while (items) { + item_update(items->data); + items = items->next; + } } void map_render(Map *map, Camera *cam)