server/src/kernel/spellbook.h
2019-09-13 21:35:44 +02:00

39 lines
1 KiB
C

#ifndef H_KRNL_SPELLBOOK_H
#define H_KRNL_SPELLBOOK_H
#include "spell.h"
#ifdef __cplusplus
extern "C" {
#endif
struct storage;
struct gamedata;
struct selist;
typedef struct spellbook_entry {
spellref spref;
int level;
} spellbook_entry;
typedef struct spellbook
{
char * name;
struct selist * spells;
} spellbook;
spellbook * create_spellbook(const char * name);
void read_spellbook(struct spellbook **bookp, struct gamedata *data, int(*get_level)(const struct spell * sp, void *), void * cbdata);
void write_spellbook(const struct spellbook *book, struct storage *store);
void spellbook_add(spellbook *sbp, struct spell *sp, int level);
void spellbook_addref(spellbook *sb, const char *name, int level);
int spellbook_foreach(spellbook *sb, int(*callback)(spellbook_entry *, void *), void * data);
void spellbook_clear(spellbook *sb);
spellbook_entry * spellbook_get(spellbook *sb, const struct spell *sp);
#ifdef __cplusplus
}
#endif
#endif