14#ifndef FC__SPECIALIST_H
15#define FC__SPECIALIST_H
43#define DEFAULT_SPECIALIST default_specialist
79#define specialist_type_iterate(sp) \
81 Specialist_type_id sp; \
83 for (sp = 0; sp < specialist_count(); sp++) {
85#define specialist_type_iterate_end \
89#define normal_specialist_type_iterate(sp) \
91 Specialist_type_id sp; \
93 for (sp = 0; sp < normal_specialist_count(); sp++) {
95#define normal_specialist_type_iterate_end \
99#define super_specialist_type_iterate(sp) \
101 Specialist_type_id sp; \
103 for (sp = normal_specialist_count(); sp < specialist_count(); sp++) {
105#define super_specialist_type_iterate_end \
109#define specialist_type_re_active_iterate(_p) \
110 specialist_type_iterate(_p##_) { \
111 struct specialist *_p = specialist_by_number(_p##_); \
112 if (!_p->ruledit_disabled) {
114#define specialist_type_re_active_iterate_end \
116 } specialist_type_iterate_end;
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int const struct action *paction struct unit struct city * pcity
enum output_type_id Output_type_id
struct specialist specialists[SP_MAX]
const char * specialists_abbreviation_string(void)
struct specialist * specialist_by_rule_name(const char *name)
struct specialist * specialist_by_number(const Specialist_type_id id)
bool is_super_specialist_id(Specialist_type_id sp)
bool is_normal_specialist(const struct specialist *sp)
Specialist_type_id specialist_index(const struct specialist *sp)
Specialist_type_id specialist_number(const struct specialist *sp)
Specialist_type_id normal_specialist_count(void)
const char * specialist_rule_name(const struct specialist *sp)
const char * specialist_plural_translation(const struct specialist *sp)
void specialists_free(void)
Specialist_type_id specialist_count(void)
const char * specialist_abbreviation_translation(const struct specialist *sp)
void specialists_init(void)
const char * specialists_string(const citizens *specialist_list)
bool is_normal_specialist_id(Specialist_type_id sp)
struct specialist * specialist_by_translated_name(const char *name)
bool is_super_specialist(const struct specialist *sp)
int get_specialist_output(const struct city *pcity, Specialist_type_id sp, Output_type_id otype)
struct requirement_vector reqs
char graphic_alt[MAX_LEN_NAME]
char graphic_str[MAX_LEN_NAME]
struct name_translation name
struct name_translation abbreviation