diff options
author | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-02-22 22:37:18 +0000 |
---|---|---|
committer | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-02-22 22:37:18 +0000 |
commit | 8409c0fef6be37b3b5081402c1669207a1dc9ca3 (patch) | |
tree | 74a35a59860450e4915d01c8313545a242d87747 /src/clicky.c | |
parent | 23707911599413826ee20044cf4eeecbb8e3bdb7 (diff) | |
download | PenguinYippies-8409c0fef6be37b3b5081402c1669207a1dc9ca3.tar.gz PenguinYippies-8409c0fef6be37b3b5081402c1669207a1dc9ca3.tar.bz2 PenguinYippies-8409c0fef6be37b3b5081402c1669207a1dc9ca3.zip |
Working on clicky list
Diffstat (limited to 'src/clicky.c')
-rw-r--r-- | src/clicky.c | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/src/clicky.c b/src/clicky.c index 691aa85..3afb515 100644 --- a/src/clicky.c +++ b/src/clicky.c @@ -3,9 +3,27 @@ #include "assets.h" #include "util.h" -void updateClicky(Game* game, Clicky* clicky) +void initClickies(Clickies* clickies) { - clicky->updateCB(game, clicky); + clickies->clickiesCount = 0; +} + +void closeClickies(Clickies* clickies) +{ + for (int i = 0; i < clickies->clickiesCount; ++i) + { + // Yes, we shall free it using a callback it stores. + // Just wish I could free myself like this ): + clickies->clickies[i].freeCB(clickies->clickies[i]); + } +} + +void updateClickies(Game* game, Clickies* clickies) +{ + for (int i = 0; i < clickies->clickiesCount; ++i) + { + clickies->clickies[i].updateCB(game, &clickies->clickies[i]); + } } void updatePenguinLol(Game* game, Clicky* clicky) @@ -39,26 +57,26 @@ void updatePenguinLol(Game* game, Clicky* clicky) clicky->rect, Vector2Zero(), 0.0, WHITE); } +void freePenginLolClicky(Clicky clicky) +{ + closeAnimation(&clicky.animation); +} + Clicky createPenguinLolClicky(Game* game) { Clicky clicky; clicky.animation = createAnimation(&game->assets.animations[PENGUIN_LOL_ANIMATION], ANIMATION_DEFAULT_DELAY); - setAnimationFrame(&clicky.animation, 0); + setAnimationFrame(&clicky.animation, clicky.animation.frameCount - 1); clicky.animation.repeat = false; clicky.texture = NULL; clicky.rect = (Rectangle){0.0, 0.0, 512, 512}; - clicky.colors = LoadImageColors(game->assets.animations[PENGUIN_LOL_ANIMATION].image); - clicky.data = NULL; clicky.updateCB = updatePenguinLol; + clicky.freeCB = freePenginLolClicky; - return clicky; -} + clicky.wasClicked = false; -void freePenginLolClicky(Clicky clicky) -{ - closeAnimation(&clicky.animation); - UnloadImageColors(clicky.colors); + return clicky; } |