22 #define FC_AI_MOD_CAPSTR "+Freeciv-3.1-ai-module-2019.Feb.16"
147 const char *citystr);
151 const char *citystr);
169 struct city *wonder_city);
224 const char *unitstr);
228 const char *unitstr);
288 const struct city *pcity);
293 const struct unit *punit);
353 #ifdef DEBUG_AITIMERS
361 #define ai_timer_init(...) (void) 0
362 #define ai_timer_free(...) (void) 0
363 #define ai_timer_start(...) (void) 0
364 #define ai_timer_stop(...) (void) 0
365 #define ai_timer_player_start(...) (void) 0
366 #define ai_timer_player_stop(...) (void) 0
369 #define ai_type_iterate(NAME_ai) \
372 int _aitotal_ = ai_type_get_count(); \
373 for (_aii_ = 0; _aii_ < _aitotal_; _aii_++) { \
374 struct ai_type *NAME_ai = get_ai_type(_aii_);
376 #define ai_type_iterate_end \
383 #define CALL_PLR_AI_FUNC(_func, _player, ...) \
385 struct player *_plr_ = _player; \
386 if (_plr_ && _plr_->ai && _plr_->ai->funcs._func) { \
387 ai_timer_player_start(_plr_); \
388 _plr_->ai->funcs._func(__VA_ARGS__); \
389 ai_timer_player_stop(_plr_); \
393 #define CALL_FUNC_EACH_AI(_func, ...) \
395 ai_type_iterate(_ait_) \
397 if (_ait_->funcs._func) { \
398 ai_timer_start(_ait_); \
399 _ait_->funcs._func(__VA_ARGS__); \
400 ai_timer_stop(_ait_); \
403 ai_type_iterate_end; \
#define ai_timer_start(...)
void init_ai(struct ai_type *ai)
Initializes AI structure.
#define ai_timer_stop(...)
#define ai_timer_free(...)
#define ai_timer_player_start(...)
struct ai_type * get_ai_type(int id)
Returns ai_type of given id.
#define ai_timer_init(...)
const char * ai_name(const struct ai_type *ai)
Return the name of the ai type.
void ai_type_dealloc()
Free latest ai_type.
#define ai_timer_player_stop(...)
struct ai_type * ai_type_by_name(const char *search)
Find ai type with given name.
struct ai_type * ai_type_alloc()
Return next free ai_type.
const char * ai_type_name_or_fallback(const char *orig_name)
Return usable ai type name, if possible.
int ai_type_get_count()
Return number of ai types.
int ai_type_number(const struct ai_type *ai)
Returns id of the given ai_type.
void(* log_fragment_unit)(char *buffer, int buflength, const struct unit *punit)
void(* city_alloc)(struct city *pcity)
void(* created_by_civil_war)(struct player *original, struct player *created)
void(* consider_tile_dangerous)(struct tile *ptile, struct unit *punit, enum override_bool *result)
void(* unit_lost)(struct unit *punit)
void(* treaty_evaluate)(struct player *pplayer, struct player *aplayer, struct Treaty *ptreaty)
void(* gov_value)(struct player *pplayer, struct government *gov, adv_want *val, bool *override)
void(* treaty_accepted)(struct player *pplayer, struct player *aplayer, struct Treaty *ptreaty)
void(* unit_transformed)(struct unit *punit, const struct unit_type *old_type)
void(* log_fragment_city)(char *buffer, int buflength, const struct city *pcity)
void(* unit_move)(struct unit *punit, struct tile *ptile, const PFPath &path, int step)
void(* settler_run)(struct player *pplayer, struct unit *punit, struct settlermap *state)
void(* unit_load)(const struct section_file *file, struct unit *punit, const char *unitstr)
void(* unit_free)(struct unit *punit)
void(* phase_finished)(struct player *pplayer)
void(* tile_info)(struct tile *ptile)
void(* restart_phase)(struct player *pplayer)
void(* settler_reset)(struct player *pplayer)
void(* unit_save)(struct section_file *file, const struct unit *punit, const char *unitstr)
void(* refresh)(struct player *pplayer)
void(* unit_created)(struct unit *punit)
void(* unit_info)(struct unit *punit)
void(* city_destroyed)(struct city *pcity)
void(* diplomacy_actions)(struct player *pplayer)
void(* player_alloc)(struct player *pplayer)
void(* build_adv_prepare)(struct player *pplayer, struct adv_data *adv)
void(* build_adv_adjust_want)(struct player *pplayer, struct city *wonder_city)
void(* player_load)(struct player *pplayer, const struct section_file *file, int plrno)
void(* build_adv_init)(struct player *pplayer)
void(* city_lost)(struct player *pplayer, struct city *pcity)
void(* unit_task)(struct unit *punit, enum adv_unit_task task, struct tile *ptile)
void(* last_activities)(struct player *pplayer)
void(* incident)(enum incident_type type, enum casus_belli_range scope, const struct action *paction, struct player *receiver, struct player *violator, struct player *victim)
void(* settler_cont)(struct player *pplayer, struct unit *punit, struct settlermap *state)
void(* first_contact)(struct player *pplayer, struct player *aplayer)
void(* city_created)(struct city *pcity)
void(* city_save)(struct section_file *file, const struct city *pcity, const char *citystr)
void(* consider_wonder_city)(struct city *pcity, bool *result)
void(* city_free)(struct city *pcity)
void(* choose_building)(struct city *pcity, struct adv_choice *choice)
void(* player_save_relations)(struct player *pplayer, struct player *other, struct section_file *file, int plrno)
struct ai_type::@12 funcs
void(* city_load)(const struct section_file *file, struct city *pcity, const char *citystr)
void(* unit_destroyed)(struct unit *punit)
void(* player_load_relations)(struct player *pplayer, struct player *other, const struct section_file *file, int plrno)
void(* phase_begin)(struct player *pplayer, bool new_phase)
void(* player_free)(struct player *pplayer)
void(* split_by_civil_war)(struct player *original, struct player *created)
void(* unit_turn_end)(struct unit *punit)
void(* city_got)(struct player *pplayer, struct city *pcity)
void(* unit_alloc)(struct unit *punit)
void(* gained_control)(struct player *pplayer)
void(* unit_got)(struct unit *punit)
void(* player_console)(struct player *pplayer, const char *cmd)
void(* player_save)(struct player *pplayer, struct section_file *file, int plrno)
void(* first_activities)(struct player *pplayer)
void(* consider_plr_dangerous)(struct player *plr1, struct player *plr2, enum override_bool *result)
void(* units_ruleset_init)()
void(* lost_control)(struct player *pplayer)
void(* units_ruleset_close)()
void(* unit_move_seen)(struct unit *punit)
void(* want_to_explore)(struct unit *punit, struct tile *target, enum override_bool *allow)