228 if (known >= required) {
255 if (count >= ach->
value) {
315 if (ptile->continent > 0 && !
seen[ptile->continent - 1]) {
316 if (++count >= ach->
value) {
336 log_error(
"achievement_check(): Illegal achievement type %d", ach->
type);
348 return _(
pach->first_msg);
358 return _(
pach->cons_msg);
365 const struct player *pplayer)
367 if (pplayer ==
NULL) {
392 }
else if (
pop >= 10000) {
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)
static struct achievement achievements[MAX_ACHIEVEMENT_TYPES]
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)
#define achievements_iterate_end
#define achievements_iterate(_ach_)
bool dbv_isset(const struct dbv *pdbv, int bit)
#define BV_ISSET(bv, bit)
#define citizens_iterate_end
#define citizens_iterate(_pcity, _pslot, _nationality)
#define city_list_iterate(citylist, pcity)
static citizens city_size_get(const struct city *pcity)
#define city_list_iterate_end
int city_culture(const struct city *pcity)
int player_culture(const struct player *plr)
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
static bool is_server(void)
#define MAX_ACHIEVEMENT_TYPES
#define fc_assert(condition)
#define fc_assert_ret_val(condition, val)
#define log_error(message,...)
#define whole_map_iterate(_map, _tile)
#define whole_map_iterate_end
#define fc_calloc(n, esz)
static const char * rule_name_get(const struct name_translation *ptrans)
static const char * name_translation_get(const struct name_translation *ptrans)
int player_index(const struct player *pplayer)
struct player * player_slot_get_player(const struct player_slot *pslot)
#define players_iterate_end
#define players_iterate(_pplayer)
enum achievement_type type
struct packet_ruleset_control control
Continent_id num_continents
int num_achievement_types
enum spaceship_state state
struct city_list * cities
struct player::@73::@75 server
struct player_economic economic
struct player_spaceship spaceship
struct player_score score
int fc_strcasecmp(const char *str0, const char *str1)