31#define SPECENUM_NAME tech_state
34#define SPECENUM_VALUE0 TECH_UNKNOWN
35#define SPECENUM_VALUE1 TECH_PREREQS_KNOWN
36#define SPECENUM_VALUE2 TECH_KNOWN
155#define researches_iterate(_presearch) \
156 generic_iterate(struct research_iter, struct research *, \
157 _presearch, research_iter_sizeof, research_iter_init)
158#define researches_iterate_end generic_iterate_end
166#define research_players_iterate(_presearch, _pplayer) \
167 generic_iterate(struct research_player_iter, struct player *, _pplayer, \
168 research_player_iter_sizeof, research_player_iter_init, \
170#define research_players_iterate_end generic_iterate_end
int research_goal_unknown_techs(const struct research *presearch, Tech_type_id goal)
bool research_invention_reachable(const struct research *presearch, const Tech_type_id tech)
bool research_goal_tech_req(const struct research *presearch, Tech_type_id goal, Tech_type_id tech)
const char * research_name_translation(const struct research *presearch)
enum tech_state research_invention_set(struct research *presearch, Tech_type_id tech, enum tech_state value)
struct research * research_by_number(int number)
const char * research_advance_rule_name(const struct research *presearch, Tech_type_id tech)
int player_tech_upkeep(const struct player *pplayer)
bool research_future_next(const struct research *presearch)
size_t research_iter_sizeof(void)
void researches_init(void)
int research_number(const struct research *presearch)
int research_goal_bulbs_required(const struct research *presearch, Tech_type_id goal)
const char * research_advance_name_translation(const struct research *presearch, Tech_type_id tech)
int research_total_bulbs_required(const struct research *presearch, Tech_type_id tech, bool loss_value)
struct iterator * research_iter_init(struct research_iter *it)
int recalculate_techs_researched(const struct research *presearch)
const char * research_rule_name(const struct research *presearch)
struct research * research_get(const struct player *pplayer)
void researches_free(void)
enum tech_state research_invention_state(const struct research *presearch, Tech_type_id tech)
Tech_type_id research_goal_step(const struct research *presearch, Tech_type_id goal)
bool research_invention_gettable(const struct research *presearch, const Tech_type_id tech, bool allow_holes)
size_t research_player_iter_sizeof(void)
struct iterator * research_player_iter_init(struct research_player_iter *it, const struct research *presearch)
void research_update(struct research *presearch)
int research_pretty_name(const struct research *presearch, char *buf, size_t buf_len)
int bulbs_researched_saved
struct research::@76::@78 client
int bulbs_researching_saved
struct research::research_invention inventions[A_ARRAY_SIZE]
Tech_type_id researching_saved
int num_known_tech_with_flag[TF_COUNT]