refactor jokers to use struct and function pointer

This commit is contained in:
theturtlemafia
2025-07-27 06:40:11 -04:00
parent 3ed4bdc698
commit 47ee3987fd
4 changed files with 64 additions and 32 deletions
+9 -1
View File
@@ -25,7 +25,6 @@
#define RARE_JOKER 2
#define LEGENDARY_JOKER 3
#define MAX_JOKERS 2 // The current maximum jokers added
#define MAX_JOKER_OBJECTS 32 // The maximum number of joker objects that can be created at once
#define DEFAULT_JOKER_ID 0
@@ -55,6 +54,15 @@ typedef struct // These jokers are triggered after the played hand has finished
bool retrigger; // Retrigger played hand (e.g. "Dusk" joker, even though on the wiki it says "On Scored" it makes more sense to have it here)
} JokerEffect;
typedef JokerEffect (*JokerEffectFunc)(Joker *joker, Card *scored_card);
typedef struct {
u8 rarity;
u8 base_value;
JokerEffectFunc effect;
} JokerInfo;
extern const JokerInfo joker_registry[];
extern const size_t joker_registry_size;
void joker_init();
Joker *joker_new(u8 id);