/* vi: set ts=2: +-------------------+ | | Enno Rehling | Eressea PBEM host | Christian Schlittchen | (c) 1998 - 2007 | Katja Zedel | | Henning Peters +-------------------+ This program may not be used, modified or distributed without prior permission by the authors of Eressea. */ #ifndef H_GC_ARCHETYPE #define H_GC_ARCHETYPE #ifdef __cplusplus extern "C" { #endif typedef struct rule { boolean allow; char * property; char * value; } rule; struct archetype; typedef int (*archetype_function)(struct unit * u, const struct archetype *, int); typedef struct archetype { struct archetype * next; char * name[2]; int size; struct building_type * btype; struct equipment * equip; struct construction * ctype; struct rule * rules; archetype_function exec; } archetype; extern const struct archetype * find_archetype(const char * s, const struct locale * lang); extern void init_archetypes(void); extern void register_archetype(struct archetype * arch); extern void register_archetypes(void); extern struct attrib_type at_recruit; #ifdef __cplusplus } #endif #endif