From 40df27640c3550555debb86321c259885eb3d495 Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak Date: Wed, 27 Jun 2018 19:30:35 +0200 Subject: [PATCH] character: add CharacterCallback macro for defininig animation callbacks --- src/character.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/character.h b/src/character.h index 6f00bff..fa9675a 100644 --- a/src/character.h +++ b/src/character.h @@ -65,6 +65,10 @@ struct Spritesheet { // TODO: missing docs }; +struct Character; +typedef void CharacterCallback(struct Game*, struct Character*, struct Spritesheet* newAnim, struct Spritesheet* oldAnim, void*); +#define CharacterCallback(x) void x(struct Game* game, struct Character* character, struct Spritesheet* old, struct Spritesheet* new, void* data) + /*! \brief Structure representing one visible character. */ struct Character { char* name; /*!< Name of the character (used in file paths). */ @@ -94,7 +98,7 @@ struct Character { bool reversed; /*!< Whether the current animation has been requested as reversed. */ bool hidden; void* data; /*!< Additional, custom character data (HP etc.). */ - void (*callback)(struct Game*, struct Character*, struct Spritesheet* newAnim, struct Spritesheet* oldAnim, void*); + CharacterCallback* callback; void* callbackData; bool shared; /*!< Marks the list of spritesheets as shared, so it won't be freed together with the character. */