13#ifndef FC__ACHIEVEMENTS_H
14#define FC__ACHIEVEMENTS_H
61 const struct player *pplayer);
64#define achievements_iterate(_ach_) \
67 for (_i_ = 0; _i_ < game.control.num_achievement_types; _i_++) { \
68 struct achievement *_ach_ = achievement_by_number(_i_);
70#define achievements_iterate_end \
74#define achievements_re_active_iterate(_p) \
75 achievements_iterate(_p) { \
76 if (!_p->ruledit_disabled) {
78#define achievements_re_active_iterate_end \
80 } achievements_iterate_end;
bool achievement_check(struct achievement *ach, struct player *pplayer)
void achievements_free(void)
bool achievement_player_has(const struct achievement *pach, const struct player *pplayer)
int achievement_index(const struct achievement *pach)
struct player * achievement_plr(struct achievement *ach, struct player_list *achievers)
struct achievement * achievement_by_number(int id)
int get_literacy(const struct player *pplayer)
const char * achievement_later_msg(struct achievement *pach)
int achievement_number(const struct achievement *pach)
const char * achievement_first_msg(struct achievement *pach)
const char * achievement_rule_name(struct achievement *pach)
struct achievement * achievement_by_rule_name(const char *name)
const char * achievement_name_translation(struct achievement *pach)
void achievements_init(void)
bool achievement_claimed(const struct achievement *pach)
enum achievement_type type
struct name_translation name