44#define ADVANCE_REQ_ITER(it) ((struct advance_req_iter *) it)
52#define ADVANCE_ROOT_REQ_ITER(it) ((struct advance_root_req_iter *) it)
415 if (helptxt && helptxt[0] !=
'\0') {
#define BV_ISSET(bv, bit)
static void base(QVariant data1, QVariant data2)
#define MAX_NUM_TECH_CLASSES
void user_flag_init(struct user_flag *flag)
void user_flag_free(struct user_flag *flag)
#define fc_assert_msg(condition, message,...)
#define fc_assert_ret(condition)
#define fc_assert(condition)
#define fc_assert_ret_val(condition, val)
static void name_set(struct name_translation *ptrans, const char *domain, const char *vernacular_name)
static const char * rule_name_get(const struct name_translation *ptrans)
static const char * name_translation_get(const struct name_translation *ptrans)
void strvec_destroy(struct strvec *psv)
const struct advance ** end
const struct advance ** current
const struct advance * array[A_LAST]
const struct advance * array[A_LAST]
const struct advance ** current
const struct advance ** end
struct requirement_vector research_reqs
struct tech_class * tclass
struct advance * require[AR_SIZE]
struct packet_ruleset_control control
struct packet_game_info info
enum tech_leakage_style tech_leakage
enum tech_cost_style tech_cost_style
int fc_strcasecmp(const char *str0, const char *str1)
Tech_type_id advance_count_real(void)
struct advance * advance_by_number(const Tech_type_id atype)
const char * tech_flag_id_name_cb(enum tech_flag_id flag)
void tech_classes_init(void)
const char * tech_class_rule_name(const struct tech_class *ptclass)
void set_user_tech_flag_name(enum tech_flag_id id, const char *name, const char *helptxt)
bool is_future_tech(Tech_type_id tech)
static void advance_req_iter_next(struct iterator *it)
struct advance * valid_advance(struct advance *padvance)
void techs_precalc_data(void)
struct advance * advance_by_translated_name(const char *name)
bool advance_has_flag(Tech_type_id tech, enum tech_flag_id flag)
size_t advance_root_req_iter_sizeof(void)
const char * tech_class_name_translation(const struct tech_class *ptclass)
#define ADVANCE_ROOT_REQ_ITER(it)
static struct user_flag user_tech_flags[MAX_NUM_USER_TECH_FLAGS]
struct advance advances[A_ARRAY_SIZE]
struct iterator * advance_root_req_iter_init(struct advance_root_req_iter *it, const struct advance *goal)
struct iterator * advance_req_iter_init(struct advance_req_iter *it, const struct advance *goal)
static void * advance_root_req_iter_get(const struct iterator *it)
static void tech_free(Tech_type_id tech)
struct advance * advance_requires(const struct advance *padvance, enum tech_req require)
const char * advance_name_translation(const struct advance *padvance)
struct advance * valid_advance_by_number(const Tech_type_id id)
static bool advance_root_req_iter_valid(const struct iterator *it)
bool techs_have_fixed_costs(void)
Tech_type_id advance_required(const Tech_type_id tech, enum tech_req require)
struct tech_class * tech_class_by_number(const int idx)
const char * advance_rule_name(const struct advance *padvance)
struct tech_class tech_classes[MAX_NUM_TECH_CLASSES]
const struct advance * advance_array_last(void)
static void * advance_req_iter_get(const struct iterator *it)
Tech_type_id advance_index(const struct advance *padvance)
const char * tech_flag_helptxt(enum tech_flag_id id)
static bool advance_req_iter_valid(const struct iterator *it)
struct advance * advance_by_rule_name(const char *name)
static void advance_root_req_iter_next(struct iterator *it)
void user_tech_flags_init(void)
size_t advance_req_iter_sizeof(void)
#define ADVANCE_REQ_ITER(it)
struct tech_class * tech_class_by_rule_name(const char *name)
Tech_type_id advance_number(const struct advance *padvance)
void user_tech_flags_free(void)
#define advance_index_iterate_end
#define advance_req_iterate(_goal, _padvance)
#define MAX_NUM_USER_TECH_FLAGS
#define advance_iterate_all_end
#define advance_iterate_all(_p)
#define advance_req_iterate_end
#define advance_iterate(_p)
#define advance_iterate_end
#define advance_index_iterate(_start, _index)