Freeciv21
Develop your civilization from humble roots to a global empire
advchoice.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  adv_choice
 

Macros

#define adv_choice_set_use(_choice, _use)
 
#define adv_choice_log_info(_choice, _loc1, _loc2)
 
#define ADV_CHOICE_ASSERT(c)
 

Enumerations

enum  choice_type {
  CT_NONE = 0 , CT_BUILDING = 1 , CT_CIVILIAN , CT_ATTACKER ,
  CT_DEFENDER , CT_LAST
}
 

Functions

void adv_init_choice (struct adv_choice *choice)
 Sets the values of the choice to initial values. More...
 
void adv_deinit_choice (struct adv_choice *choice)
 Clear choice without freeing it itself. More...
 
struct adv_choiceadv_new_choice ()
 Dynamically allocate a new choice. More...
 
void adv_free_choice (struct adv_choice *choice)
 Free dynamically allocated choice. More...
 
struct adv_choiceadv_better_choice (struct adv_choice *first, struct adv_choice *second)
 Return better one of the choices given. More...
 
struct adv_choiceadv_better_choice_free (struct adv_choice *first, struct adv_choice *second)
 Return better one of the choices given, and free the other. More...
 
bool is_unit_choice_type (enum choice_type type)
 Does choice type refer to unit. More...
 
static void adv_choice_copy (struct adv_choice *dest, struct adv_choice *src)
 
static const char * adv_choice_get_use (const struct adv_choice *choice)
 

Macro Definition Documentation

◆ ADV_CHOICE_ASSERT

#define ADV_CHOICE_ASSERT (   c)
Value:
do { \
if ((c).want > 0) { \
fc_assert((c).type > CT_NONE && (c).type < CT_LAST); \
if (!is_unit_choice_type((c).type)) { \
int _iindex = improvement_index((c).value.building); \
fc_assert(_iindex >= 0 && _iindex < improvement_count()); \
} else { \
int _uindex = utype_index((c).value.utype); \
fc_assert(_uindex >= 0 && _uindex < utype_count()); \
} \
} \
} while (false);
@ CT_LAST
Definition: advchoice.h:28
@ CT_NONE
Definition: advchoice.h:23
bool is_unit_choice_type(enum choice_type type)
Does choice type refer to unit.
Definition: advchoice.cpp:111
Impr_type_id improvement_count()
Return the number of improvements.
Impr_type_id improvement_index(const struct impr_type *pimprove)
Return the improvement index.
Unit_type_id utype_count()
Return the number of unit types.
Definition: unittype.cpp:74
Unit_type_id utype_index(const struct unit_type *punittype)
Return the unit type index.
Definition: unittype.cpp:82

Definition at line 77 of file advchoice.h.

◆ adv_choice_log_info

#define adv_choice_log_info (   _choice,
  _loc1,
  _loc2 
)

Definition at line 70 of file advchoice.h.

◆ adv_choice_set_use

#define adv_choice_set_use (   _choice,
  _use 
)

Definition at line 69 of file advchoice.h.

Enumeration Type Documentation

◆ choice_type

Enumerator
CT_NONE 
CT_BUILDING 
CT_CIVILIAN 
CT_ATTACKER 
CT_DEFENDER 
CT_LAST 

Definition at line 22 of file advchoice.h.

Function Documentation

◆ adv_better_choice()

struct adv_choice* adv_better_choice ( struct adv_choice first,
struct adv_choice second 
)

Return better one of the choices given.

In case of a draw, first one is preferred.

Definition at line 81 of file advchoice.cpp.

Referenced by dai_city_choose_build().

◆ adv_better_choice_free()

struct adv_choice* adv_better_choice_free ( struct adv_choice first,
struct adv_choice second 
)

Return better one of the choices given, and free the other.

Definition at line 94 of file advchoice.cpp.

Referenced by domestic_advisor_choose_build().

◆ adv_choice_copy()

static void adv_choice_copy ( struct adv_choice dest,
struct adv_choice src 
)
inlinestatic

◆ adv_choice_get_use()

static const char* adv_choice_get_use ( const struct adv_choice choice)
inlinestatic

Definition at line 71 of file advchoice.h.

◆ adv_deinit_choice()

void adv_deinit_choice ( struct adv_choice choice)

Clear choice without freeing it itself.

Definition at line 42 of file advchoice.cpp.

Referenced by dai_city_free(), military_advisor_choose_build(), and texai_city_free().

◆ adv_free_choice()

void adv_free_choice ( struct adv_choice choice)

Free dynamically allocated choice.

Definition at line 67 of file advchoice.cpp.

Referenced by adv_better_choice_free(), dai_manage_cities(), and kill_something_with().

◆ adv_init_choice()

void adv_init_choice ( struct adv_choice choice)

Sets the values of the choice to initial values.

Definition at line 27 of file advchoice.cpp.

Referenced by adv_new_choice(), dai_city_alloc(), dai_do_build_city(), dai_spend_gold(), military_advisor_choose_build(), and texai_city_alloc().

◆ adv_new_choice()

struct adv_choice* adv_new_choice ( )

Dynamically allocate a new choice.

Definition at line 55 of file advchoice.cpp.

Referenced by domestic_advisor_choose_build(), kill_something_with(), and military_advisor_choose_build().

◆ is_unit_choice_type()

bool is_unit_choice_type ( enum choice_type  type)

Does choice type refer to unit.

Definition at line 111 of file advchoice.cpp.

Referenced by adjust_ai_unit_choice(), and dai_spend_gold().