Freeciv21
Develop your civilization from humble roots to a global empire
ai.h File Reference
#include "fc_types.h"
+ Include dependency graph for ai.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ai_type
 

Macros

#define FC_AI_MOD_CAPSTR   "+Freeciv-3.1-ai-module-2019.Feb.16"
 
#define ai_timer_init(...)   (void) 0
 
#define ai_timer_free(...)   (void) 0
 
#define ai_timer_start(...)   (void) 0
 
#define ai_timer_stop(...)   (void) 0
 
#define ai_timer_player_start(...)   (void) 0
 
#define ai_timer_player_stop(...)   (void) 0
 
#define ai_type_iterate(NAME_ai)
 
#define ai_type_iterate_end
 
#define CALL_PLR_AI_FUNC(_func, _player, ...)
 
#define CALL_FUNC_EACH_AI(_func, ...)
 

Enumerations

enum  incident_type { INCIDENT_ACTION = 0 , INCIDENT_WAR , INCIDENT_LAST }
 

Functions

struct ai_typeai_type_alloc ()
 Return next free ai_type. More...
 
void ai_type_dealloc ()
 Free latest ai_type. More...
 
struct ai_typeget_ai_type (int id)
 Returns ai_type of given id. More...
 
int ai_type_number (const struct ai_type *ai)
 Returns id of the given ai_type. More...
 
void init_ai (struct ai_type *ai)
 Initializes AI structure. More...
 
int ai_type_get_count ()
 Return number of ai types. More...
 
const char * ai_name (const struct ai_type *ai)
 Return the name of the ai type. More...
 
struct ai_typeai_type_by_name (const char *search)
 Find ai type with given name. More...
 
const char * ai_type_name_or_fallback (const char *orig_name)
 Return usable ai type name, if possible. More...
 

Macro Definition Documentation

◆ ai_timer_free

#define ai_timer_free (   ...)    (void) 0

Definition at line 362 of file ai.h.

◆ ai_timer_init

#define ai_timer_init (   ...)    (void) 0

Definition at line 361 of file ai.h.

◆ ai_timer_player_start

#define ai_timer_player_start (   ...)    (void) 0

Definition at line 365 of file ai.h.

◆ ai_timer_player_stop

#define ai_timer_player_stop (   ...)    (void) 0

Definition at line 366 of file ai.h.

◆ ai_timer_start

#define ai_timer_start (   ...)    (void) 0

Definition at line 363 of file ai.h.

◆ ai_timer_stop

#define ai_timer_stop (   ...)    (void) 0

Definition at line 364 of file ai.h.

◆ ai_type_iterate

#define ai_type_iterate (   NAME_ai)
Value:
do { \
int _aii_; \
int _aitotal_ = ai_type_get_count(); \
for (_aii_ = 0; _aii_ < _aitotal_; _aii_++) { \
struct ai_type *NAME_ai = get_ai_type(_aii_);
struct ai_type * get_ai_type(int id)
Returns ai_type of given id.
Definition: ai.cpp:32
int ai_type_get_count()
Return number of ai types.
Definition: ai.cpp:94
Definition: ai.h:42

Definition at line 369 of file ai.h.

◆ ai_type_iterate_end

#define ai_type_iterate_end
Value:
} \
} \
while (false) \
;

Definition at line 376 of file ai.h.

◆ CALL_FUNC_EACH_AI

#define CALL_FUNC_EACH_AI (   _func,
  ... 
)
Value:
do { \
ai_type_iterate(_ait_) \
{ \
if (_ait_->funcs._func) { \
ai_timer_start(_ait_); \
_ait_->funcs._func(__VA_ARGS__); \
ai_timer_stop(_ait_); \
} \
} \
ai_type_iterate_end; \
} while (false)

Definition at line 393 of file ai.h.

◆ CALL_PLR_AI_FUNC

#define CALL_PLR_AI_FUNC (   _func,
  _player,
  ... 
)
Value:
do { \
struct player *_plr_ = _player; /* _player expanded just once */ \
if (_plr_ && _plr_->ai && _plr_->ai->funcs._func) { \
ai_timer_player_start(_plr_); \
_plr_->ai->funcs._func(__VA_ARGS__); \
ai_timer_player_stop(_plr_); \
} \
} while (false)
Definition: player.h:231

Definition at line 383 of file ai.h.

◆ FC_AI_MOD_CAPSTR

#define FC_AI_MOD_CAPSTR   "+Freeciv-3.1-ai-module-2019.Feb.16"

Definition at line 22 of file ai.h.

Enumeration Type Documentation

◆ incident_type

Enumerator
INCIDENT_ACTION 
INCIDENT_WAR 
INCIDENT_LAST 

Definition at line 40 of file ai.h.

Function Documentation

◆ ai_name()

const char* ai_name ( const struct ai_type ai)

Return the name of the ai type.

Definition at line 99 of file ai.cpp.

Referenced by ai_type_by_name(), ai_type_name_or_fallback(), aicmd_command(), aifill(), sg_load_players(), sg_save_player_main(), show_players(), and split_player().

◆ ai_type_alloc()

struct ai_type* ai_type_alloc ( )

Return next free ai_type.

Definition at line 75 of file ai.cpp.

Referenced by ai_init().

◆ ai_type_by_name()

struct ai_type* ai_type_by_name ( const char *  search)

Find ai type with given name.

Definition at line 59 of file ai.cpp.

Referenced by ai_init(), ai_type_name_or_fallback(), and server_create_player().

◆ ai_type_dealloc()

void ai_type_dealloc ( )

Free latest ai_type.

Definition at line 89 of file ai.cpp.

Referenced by ai_init().

◆ ai_type_get_count()

int ai_type_get_count ( )

Return number of ai types.

Definition at line 94 of file ai.cpp.

Referenced by aitype_generator(), and sg_save_game().

◆ ai_type_name_or_fallback()

const char* ai_type_name_or_fallback ( const char *  orig_name)

Return usable ai type name, if possible.

This is either the name given as parameter or some fallback name for it. nullptr is returned if no name matches.

Definition at line 110 of file ai.cpp.

Referenced by server_create_player().

◆ ai_type_number()

int ai_type_number ( const struct ai_type ai)

◆ get_ai_type()

struct ai_type* get_ai_type ( int  id)

Returns ai_type of given id.

Definition at line 32 of file ai.cpp.

Referenced by ai_type_alloc(), aitype_accessor(), and client_main().

◆ init_ai()

void init_ai ( struct ai_type ai)

Initializes AI structure.

Definition at line 42 of file ai.cpp.

Referenced by ai_init(), and client_main().