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

Go to the source code of this file.

Classes

struct  unit_class
 
struct  combat_bonus
 
struct  veteran_level
 
struct  veteran_system
 
struct  unit_type
 

Macros

#define U_LAST   MAX_NUM_UNIT_TYPES
 
#define UNIT_MAX_PARADROP_RANGE   (65535 - 1)
 
#define SPECENUM_NAME   unit_class_flag_id
 
#define SPECENUM_VALUE0   UCF_TERRAIN_SPEED
 
#define SPECENUM_VALUE0NAME   N_("?uclassflag:TerrainSpeed")
 
#define SPECENUM_VALUE1   UCF_TERRAIN_DEFENSE
 
#define SPECENUM_VALUE1NAME   N_("?uclassflag:TerrainDefense")
 
#define SPECENUM_VALUE2   UCF_DAMAGE_SLOWS
 
#define SPECENUM_VALUE2NAME   N_("?uclassflag:DamageSlows")
 
#define SPECENUM_VALUE3   UCF_CAN_OCCUPY_CITY
 
#define SPECENUM_VALUE3NAME   N_("?uclassflag:CanOccupyCity")
 
#define SPECENUM_VALUE4   UCF_BUILD_ANYWHERE
 
#define SPECENUM_VALUE4NAME   N_("?uclassflag:BuildAnywhere")
 
#define SPECENUM_VALUE5   UCF_UNREACHABLE
 
#define SPECENUM_VALUE5NAME   N_("?uclassflag:Unreachable")
 
#define SPECENUM_VALUE6   UCF_COLLECT_RANSOM
 
#define SPECENUM_VALUE6NAME   N_("?uclassflag:CollectRansom")
 
#define SPECENUM_VALUE7   UCF_ZOC
 
#define SPECENUM_VALUE7NAME   N_("?uclassflag:ZOC")
 
#define SPECENUM_VALUE8   UCF_DOESNT_OCCUPY_TILE
 
#define SPECENUM_VALUE8NAME   N_("?uclassflag:DoesntOccupyTile")
 
#define SPECENUM_VALUE9   UCF_ATTACK_NON_NATIVE
 
#define SPECENUM_VALUE9NAME   N_("?uclassflag:AttackNonNative")
 
#define SPECENUM_VALUE10   UCF_KILLCITIZEN
 
#define SPECENUM_VALUE10NAME   N_("?uclassflag:KillCitizen")
 
#define SPECENUM_VALUE11   UCF_USER_FLAG_1
 
#define SPECENUM_VALUE12   UCF_USER_FLAG_2
 
#define SPECENUM_VALUE13   UCF_USER_FLAG_3
 
#define SPECENUM_VALUE14   UCF_USER_FLAG_4
 
#define SPECENUM_VALUE15   UCF_USER_FLAG_5
 
#define SPECENUM_VALUE16   UCF_USER_FLAG_6
 
#define SPECENUM_VALUE17   UCF_USER_FLAG_7
 
#define SPECENUM_VALUE18   UCF_USER_FLAG_8
 
#define SPECENUM_VALUE19   UCF_USER_FLAG_9
 
#define SPECENUM_VALUE20   UCF_USER_FLAG_10
 
#define SPECENUM_VALUE21   UCF_USER_FLAG_11
 
#define SPECENUM_VALUE22   UCF_USER_FLAG_12
 
#define SPECENUM_COUNT   UCF_COUNT
 
#define SPECENUM_NAMEOVERRIDE
 
#define SPECENUM_BITVECTOR   bv_unit_class_flags
 
#define UCF_LAST_USER_FLAG   UCF_USER_FLAG_12
 
#define MAX_NUM_USER_UCLASS_FLAGS   (UCF_LAST_USER_FLAG - UCF_USER_FLAG_1 + 1)
 
#define SPECENUM_NAME   unit_move_type
 
#define SPECENUM_VALUE0   UMT_LAND
 
#define SPECENUM_VALUE0NAME   "Land"
 
#define SPECENUM_VALUE1   UMT_SEA
 
#define SPECENUM_VALUE1NAME   "Sea"
 
#define SPECENUM_VALUE2   UMT_BOTH
 
#define SPECENUM_VALUE2NAME   "Both"
 
#define SPECENUM_NAME   unit_type_flag_id
 
#define SPECENUM_VALUE0   UTYF_RESERVED_2
 
#define SPECENUM_VALUE0NAME   N_("Reserved 2")
 
#define SPECENUM_VALUE1   UTYF_NOZOC
 
#define SPECENUM_VALUE1NAME   N_("?unitflag:HasNoZOC")
 
#define SPECENUM_VALUE2   UTYF_IGZOC
 
#define SPECENUM_VALUE2NAME   N_("?unitflag:IgZOC")
 
#define SPECENUM_VALUE3   UTYF_CIVILIAN
 
#define SPECENUM_VALUE3NAME   N_("?unitflag:NonMil")
 
#define SPECENUM_VALUE4   UTYF_IGTER
 
#define SPECENUM_VALUE4NAME   N_("?unitflag:IgTer")
 
#define SPECENUM_VALUE5   UTYF_ONEATTACK
 
#define SPECENUM_VALUE5NAME   N_("?unitflag:OneAttack")
 
#define SPECENUM_VALUE6   UTYF_FIELDUNIT
 
#define SPECENUM_VALUE6NAME   N_("?unitflag:FieldUnit")
 
#define SPECENUM_VALUE7   UTYF_PROVOKING
 
#define SPECENUM_VALUE7NAME   N_("?unitflag:Provoking")
 
#define SPECENUM_VALUE8   UTYF_NEVER_PROTECTS
 
#define SPECENUM_VALUE8NAME   N_("?unitflag:NeverProtects")
 
#define SPECENUM_VALUE9   UTYF_SETTLERS
 
#define SPECENUM_VALUE9NAME   N_("?unitflag:Settlers")
 
#define SPECENUM_VALUE10   UTYF_DIPLOMAT
 
#define SPECENUM_VALUE10NAME   N_("?unitflag:Diplomat")
 
#define SPECENUM_VALUE11   UTYF_COAST_STRICT
 
#define SPECENUM_VALUE11NAME   N_("?unitflag:CoastStrict")
 
#define SPECENUM_VALUE12   UTYF_COAST
 
#define SPECENUM_VALUE12NAME   N_("?unitflag:Coast")
 
#define SPECENUM_VALUE13   UTYF_SHIELD2GOLD
 
#define SPECENUM_VALUE13NAME   N_("?unitflag:Shield2Gold")
 
#define SPECENUM_VALUE14   UTYF_SPY
 
#define SPECENUM_VALUE14NAME   N_("?unitflag:Spy")
 
#define SPECENUM_VALUE15   UTYF_ONLY_NATIVE_ATTACK
 
#define SPECENUM_VALUE15NAME   N_("?unitflag:Only_Native_Attack")
 
#define SPECENUM_VALUE16   UTYF_FANATIC
 
#define SPECENUM_VALUE16NAME   N_("?unitflag:Fanatic")
 
#define SPECENUM_VALUE17   UTYF_GAMELOSS
 
#define SPECENUM_VALUE17NAME   N_("?unitflag:GameLoss")
 
#define SPECENUM_VALUE18   UTYF_UNIQUE
 
#define SPECENUM_VALUE18NAME   N_("?unitflag:Unique")
 
#define SPECENUM_VALUE19   UTYF_EVAC_FIRST
 
#define SPECENUM_VALUE19NAME   N_("?unitflag:EvacuateFirst")
 
#define SPECENUM_VALUE20   UTYF_SUPERSPY
 
#define SPECENUM_VALUE20NAME   N_("?unitflag:SuperSpy")
 
#define SPECENUM_VALUE21   UTYF_NOHOME
 
#define SPECENUM_VALUE21NAME   N_("?unitflag:NoHome")
 
#define SPECENUM_VALUE22   UTYF_NO_VETERAN
 
#define SPECENUM_VALUE22NAME   N_("?unitflag:NoVeteran")
 
#define SPECENUM_VALUE23   UTYF_CITYBUSTER
 
#define SPECENUM_VALUE23NAME   N_("?unitflag:CityBuster")
 
#define SPECENUM_VALUE24   UTYF_NOBUILD
 
#define SPECENUM_VALUE24NAME   N_("?unitflag:NoBuild")
 
#define SPECENUM_VALUE25   UTYF_BADWALLATTACKER
 
#define SPECENUM_VALUE25NAME   N_("?unitflag:BadWallAttacker")
 
#define SPECENUM_VALUE26   UTYF_BADCITYDEFENDER
 
#define SPECENUM_VALUE26NAME   N_("?unitflag:BadCityDefender")
 
#define SPECENUM_VALUE27   UTYF_BARBARIAN_ONLY
 
#define SPECENUM_VALUE27NAME   N_("?unitflag:BarbarianOnly")
 
#define SPECENUM_VALUE28   UTYF_RESERVED_1
 
#define SPECENUM_VALUE28NAME   N_("Reserved 1")
 
#define SPECENUM_VALUE29   UTYF_NEWCITY_GAMES_ONLY
 
#define SPECENUM_VALUE29NAME   N_("?unitflag:NewCityGamesOnly")
 
#define SPECENUM_VALUE30   UTYF_CANESCAPE
 
#define SPECENUM_VALUE30NAME   N_("?unitflag:CanEscape")
 
#define SPECENUM_VALUE31   UTYF_CANKILLESCAPING
 
#define SPECENUM_VALUE31NAME   N_("?unitflag:CanKillEscaping")
 
#define SPECENUM_VALUE32   UTYF_USER_FLAG_1
 
#define SPECENUM_VALUE33   UTYF_USER_FLAG_2
 
#define SPECENUM_VALUE34   UTYF_USER_FLAG_3
 
#define SPECENUM_VALUE35   UTYF_USER_FLAG_4
 
#define SPECENUM_VALUE36   UTYF_USER_FLAG_5
 
#define SPECENUM_VALUE37   UTYF_USER_FLAG_6
 
#define SPECENUM_VALUE38   UTYF_USER_FLAG_7
 
#define SPECENUM_VALUE39   UTYF_USER_FLAG_8
 
#define SPECENUM_VALUE40   UTYF_USER_FLAG_9
 
#define SPECENUM_VALUE41   UTYF_USER_FLAG_10
 
#define SPECENUM_VALUE42   UTYF_USER_FLAG_11
 
#define SPECENUM_VALUE43   UTYF_USER_FLAG_12
 
#define SPECENUM_VALUE44   UTYF_USER_FLAG_13
 
#define SPECENUM_VALUE45   UTYF_USER_FLAG_14
 
#define SPECENUM_VALUE46   UTYF_USER_FLAG_15
 
#define SPECENUM_VALUE47   UTYF_USER_FLAG_16
 
#define SPECENUM_VALUE48   UTYF_USER_FLAG_17
 
#define SPECENUM_VALUE49   UTYF_USER_FLAG_18
 
#define SPECENUM_VALUE50   UTYF_USER_FLAG_19
 
#define SPECENUM_VALUE51   UTYF_USER_FLAG_20
 
#define SPECENUM_VALUE52   UTYF_USER_FLAG_21
 
#define SPECENUM_VALUE53   UTYF_USER_FLAG_22
 
#define SPECENUM_VALUE54   UTYF_USER_FLAG_23
 
#define SPECENUM_VALUE55   UTYF_USER_FLAG_24
 
#define SPECENUM_VALUE56   UTYF_USER_FLAG_25
 
#define SPECENUM_VALUE57   UTYF_USER_FLAG_26
 
#define SPECENUM_VALUE58   UTYF_USER_FLAG_27
 
#define SPECENUM_VALUE59   UTYF_USER_FLAG_28
 
#define SPECENUM_VALUE60   UTYF_USER_FLAG_29
 
#define SPECENUM_VALUE61   UTYF_USER_FLAG_30
 
#define SPECENUM_VALUE62   UTYF_USER_FLAG_31
 
#define SPECENUM_VALUE63   UTYF_USER_FLAG_32
 
#define SPECENUM_VALUE64   UTYF_USER_FLAG_33
 
#define SPECENUM_VALUE65   UTYF_USER_FLAG_34
 
#define SPECENUM_VALUE66   UTYF_USER_FLAG_35
 
#define SPECENUM_VALUE67   UTYF_USER_FLAG_36
 
#define SPECENUM_VALUE68   UTYF_USER_FLAG_37
 
#define SPECENUM_VALUE69   UTYF_USER_FLAG_38
 
#define SPECENUM_VALUE70   UTYF_USER_FLAG_39
 
#define SPECENUM_VALUE71   UTYF_USER_FLAG_40
 
#define SPECENUM_VALUE72   UTYF_USER_FLAG_41
 
#define SPECENUM_VALUE73   UTYF_USER_FLAG_42
 
#define SPECENUM_VALUE74   UTYF_USER_FLAG_43
 
#define SPECENUM_VALUE75   UTYF_USER_FLAG_44
 
#define SPECENUM_VALUE76   UTYF_USER_FLAG_45
 
#define UTYF_LAST_USER_FLAG   UTYF_USER_FLAG_45
 
#define MAX_NUM_USER_UNIT_FLAGS   (UTYF_LAST_USER_FLAG - UTYF_USER_FLAG_1 + 1)
 
#define SPECENUM_NAMEOVERRIDE
 
#define SPECENUM_BITVECTOR   bv_unit_type_flags
 
#define L_FIRST   (UTYF_LAST_USER_FLAG + 1)
 
#define SPECENUM_NAME   unit_role_id
 
#define SPECENUM_VALUE77   L_FIRSTBUILD
 
#define SPECENUM_VALUE77NAME   N_("?unitflag:FirstBuild")
 
#define SPECENUM_VALUE78   L_EXPLORER
 
#define SPECENUM_VALUE78NAME   N_("?unitflag:Explorer")
 
#define SPECENUM_VALUE79   L_HUT
 
#define SPECENUM_VALUE79NAME   N_("?unitflag:Hut")
 
#define SPECENUM_VALUE80   L_HUT_TECH
 
#define SPECENUM_VALUE80NAME   N_("?unitflag:HutTech")
 
#define SPECENUM_VALUE81   L_PARTISAN
 
#define SPECENUM_VALUE81NAME   N_("?unitflag:Partisan")
 
#define SPECENUM_VALUE82   L_DEFEND_OK
 
#define SPECENUM_VALUE82NAME   N_("?unitflag:DefendOk")
 
#define SPECENUM_VALUE83   L_DEFEND_GOOD
 
#define SPECENUM_VALUE83NAME   N_("?unitflag:DefendGood")
 
#define SPECENUM_VALUE84   L_FERRYBOAT
 
#define SPECENUM_VALUE84NAME   N_("?unitflag:FerryBoat")
 
#define SPECENUM_VALUE85   L_BARBARIAN
 
#define SPECENUM_VALUE85NAME   N_("?unitflag:Barbarian")
 
#define SPECENUM_VALUE86   L_BARBARIAN_TECH
 
#define SPECENUM_VALUE86NAME   N_("?unitflag:BarbarianTech")
 
#define SPECENUM_VALUE87   L_BARBARIAN_BOAT
 
#define SPECENUM_VALUE87NAME   N_("?unitflag:BarbarianBoat")
 
#define SPECENUM_VALUE88   L_BARBARIAN_BUILD
 
#define SPECENUM_VALUE88NAME   N_("BarbarianBuild")
 
#define SPECENUM_VALUE89   L_BARBARIAN_BUILD_TECH
 
#define SPECENUM_VALUE89NAME   N_("?unitflag:BarbarianBuildTech")
 
#define SPECENUM_VALUE90   L_BARBARIAN_LEADER
 
#define SPECENUM_VALUE90NAME   N_("?unitflag:BarbarianLeader")
 
#define SPECENUM_VALUE91   L_BARBARIAN_SEA
 
#define SPECENUM_VALUE91NAME   N_("?unitflag:BarbarianSea")
 
#define SPECENUM_VALUE92   L_BARBARIAN_SEA_TECH
 
#define SPECENUM_VALUE92NAME   N_("?unitflag:BarbarianSeaTech")
 
#define SPECENUM_VALUE93   L_START_CITIES
 
#define SPECENUM_VALUE93NAME   N_("?unitflag:CitiesStartunit")
 
#define SPECENUM_VALUE94   L_START_WORKER
 
#define SPECENUM_VALUE94NAME   N_("?unitflag:WorkerStartunit")
 
#define SPECENUM_VALUE95   L_START_EXPLORER
 
#define SPECENUM_VALUE95NAME   N_("?unitflag:ExplorerStartunit")
 
#define SPECENUM_VALUE96   L_START_KING
 
#define SPECENUM_VALUE96NAME   N_("?unitflag:KingStartunit")
 
#define SPECENUM_VALUE97   L_START_DIPLOMAT
 
#define SPECENUM_VALUE97NAME   N_("?unitflag:DiplomatStartunit")
 
#define SPECENUM_VALUE98   L_START_FERRY
 
#define SPECENUM_VALUE98NAME   N_("?unitflag:FerryStartunit")
 
#define SPECENUM_VALUE99   L_START_DEFEND_OK
 
#define SPECENUM_VALUE99NAME   N_("?unitflag:DefendOkStartunit")
 
#define SPECENUM_VALUE100   L_START_DEFEND_GOOD
 
#define SPECENUM_VALUE100NAME   N_("?unitflag:DefendGoodStartunit")
 
#define SPECENUM_VALUE101   L_START_ATTACK_FAST
 
#define SPECENUM_VALUE101NAME   N_("?unitflag:AttackFastStartunit")
 
#define SPECENUM_VALUE102   L_START_ATTACK_STRONG
 
#define SPECENUM_VALUE102NAME   N_("?unitflag:AttackStrongStartunit")
 
#define SPECENUM_VALUE103   L_HUNTER
 
#define SPECENUM_VALUE103NAME   N_("?unitflag:Hunter")
 
#define SPECENUM_VALUE104   L_SETTLERS
 
#define SPECENUM_VALUE104NAME   N_("?unitflag:Settlers")
 
#define L_LAST   (L_SETTLERS + 1)
 
#define L_MAX   64
 
#define SPECENUM_NAME   combat_bonus_type
 
#define SPECENUM_VALUE0   CBONUS_DEFENSE_MULTIPLIER
 
#define SPECENUM_VALUE0NAME   "DefenseMultiplier"
 
#define SPECENUM_VALUE1   CBONUS_DEFENSE_DIVIDER
 
#define SPECENUM_VALUE1NAME   "DefenseDivider"
 
#define SPECENUM_VALUE2   CBONUS_FIREPOWER1
 
#define SPECENUM_VALUE2NAME   "Firepower1"
 
#define SPECENUM_VALUE3   CBONUS_DEFENSE_MULTIPLIER_PCT
 
#define SPECENUM_VALUE3NAME   "DefenseMultiplierPct"
 
#define SPECENUM_VALUE4   CBONUS_DEFENSE_DIVIDER_PCT
 
#define SPECENUM_VALUE4NAME   "DefenseDividerPct"
 
#define SPECLIST_TAG   combat_bonus
 
#define SPECLIST_TYPE   struct combat_bonus
 
#define combat_bonus_list_iterate(bonuslist, pbonus)    TYPED_LIST_ITERATE(struct combat_bonus, bonuslist, pbonus)
 
#define combat_bonus_list_iterate_end   LIST_ITERATE_END
 
#define U_NOT_OBSOLETED   (nullptr)
 
#define uclass_index(_c_)   (_c_)->item_number
 
#define utype_class(_t_)   (_t_)->uclass
 
#define utype_fuel(ptype)   (ptype)->fuel
 
#define unit_type_iterate(_p)
 
#define unit_type_iterate_end
 
#define unit_type_re_active_iterate(_p)
 
#define unit_type_re_active_iterate_end
 
#define unit_class_iterate(_p)
 
#define unit_class_iterate_end
 
#define unit_class_re_active_iterate(_p)
 
#define unit_class_re_active_iterate_end
 
#define SPECLIST_TAG   unit_class
 
#define SPECLIST_TYPE   struct unit_class
 
#define unit_class_list_iterate(uclass_list, pclass)    TYPED_LIST_ITERATE(struct unit_class, uclass_list, pclass)
 
#define unit_class_list_iterate_end   LIST_ITERATE_END
 
#define SPECLIST_TAG   unit_type
 
#define SPECLIST_TYPE   struct unit_type
 
#define unit_type_list_iterate(utype_list, ptype)    TYPED_LIST_ITERATE(struct unit_type, utype_list, ptype)
 
#define unit_type_list_iterate_end   LIST_ITERATE_END
 

Typedefs

typedef bool(* role_unit_callback) (struct unit_type *ptype, void *data)
 

Enumerations

enum  hut_behavior { HUT_NORMAL , HUT_NOTHING , HUT_FRIGHTEN }
 
enum  move_level { MOVE_NONE , MOVE_PARTIAL , MOVE_FULL }
 

Functions

 BV_DEFINE (bv_unit_classes, UCL_LAST)
 
 FC_STATIC_ASSERT (L_LAST - L_FIRST<=L_MAX, too_many_unit_roles)
 
 BV_DEFINE (bv_unit_type_roles, L_MAX)
 
 BV_DEFINE (bv_unit_types, U_LAST)
 
Unit_type_id utype_count ()
 Return the number of unit types. More...
 
Unit_type_id utype_index (const struct unit_type *punittype)
 Return the unit type index. More...
 
Unit_type_id utype_number (const struct unit_type *punittype)
 Return the unit type index. More...
 
const struct unit_typeunit_type_get (const struct unit *punit)
 Return the unit type for this unit. More...
 
struct unit_typeutype_by_number (const Unit_type_id id)
 Return a pointer for the unit type struct for the given unit type id. More...
 
struct unit_typeunit_type_by_rule_name (const char *name)
 Returns the unit type that has the given (untranslated) rule name. More...
 
struct unit_typeunit_type_by_translated_name (const char *name)
 Returns the unit type that has the given (translated) name. More...
 
const char * unit_rule_name (const struct unit *punit)
 Return the (untranslated) rule name of the unit. More...
 
const char * utype_rule_name (const struct unit_type *punittype)
 Return the (untranslated) rule name of the unit type. More...
 
const char * unit_name_translation (const struct unit *punit)
 Return the (translated) name of the unit. More...
 
const char * utype_name_translation (const struct unit_type *punittype)
 Return the (translated) name of the unit type. More...
 
const char * utype_values_string (const struct unit_type *punittype)
 Return string describing unit type values. More...
 
const char * utype_values_translation (const struct unit_type *punittype)
 Return string with translated unit name and list of its values. More...
 
bool unit_has_type_flag (const struct unit *punit, enum unit_type_flag_id flag)
 Return whether the unit has the given flag. More...
 
static bool utype_has_flag (const struct unit_type *punittype, int flag)
 
bool unit_has_type_role (const struct unit *punit, enum unit_role_id role)
 Return whether the unit has the given role. More...
 
bool utype_has_role (const struct unit_type *punittype, int role)
 Return whether the given unit type has the role. More...
 
void user_unit_type_flags_init ()
 Initialize user unit type flags. More...
 
void set_user_unit_type_flag_name (enum unit_type_flag_id id, const char *name, const char *helptxt)
 Sets user defined name for unit flag. More...
 
const char * unit_type_flag_helptxt (enum unit_type_flag_id id)
 Return the (untranslated) helptxt of the user unit flag. More...
 
bool unit_can_take_over (const struct unit *punit)
 Return whether the unit can take over enemy cities. More...
 
bool utype_can_take_over (const struct unit_type *punittype)
 Return whether the unit type can take over enemy cities. More...
 
bool utype_can_freely_load (const struct unit_type *pcargotype, const struct unit_type *ptranstype)
 Return TRUE iff the given cargo type has no restrictions on when it can load onto the given transporter. More...
 
bool utype_can_freely_unload (const struct unit_type *pcargotype, const struct unit_type *ptranstype)
 Return TRUE iff the given cargo type has no restrictions on when it can unload from the given transporter. More...
 
bool utype_may_act_at_all (const struct unit_type *putype)
 Return TRUE iff units of this type can do actions controlled by generalized (ruleset defined) action enablers. More...
 
bool utype_can_do_action (const struct unit_type *putype, const action_id act_id)
 Return TRUE iff units of the given type can do the specified generalized (ruleset defined) action enabler controlled action. More...
 
bool utype_can_do_action_result (const struct unit_type *putype, enum action_result result)
 Return TRUE iff units of the given type can do any enabler controlled action with the specified action result. More...
 
bool utype_acts_hostile (const struct unit_type *putype)
 Return TRUE iff units of this type can do hostile actions controlled by generalized (ruleset defined) action enablers. More...
 
bool can_unit_act_when_ustate_is (const struct unit_type *punit_type, const enum ustate_prop prop, const bool is_there)
 Return TRUE iff there exists an (action enabler controlled) action that a unit of the type punit_type can perform while its unit state property prop has the value is_there. More...
 
bool utype_can_do_act_when_ustate (const struct unit_type *punit_type, const action_id act_id, const enum ustate_prop prop, const bool is_there)
 Return TRUE iff the unit type can do the specified (action enabler controlled) action while its unit state property prop has the value is_there. More...
 
bool utype_can_do_act_if_tgt_citytile (const struct unit_type *punit_type, const action_id act_id, const enum citytile_type prop, const bool is_there)
 Returns TRUE iff the unit type can do the specified (action enabler controlled) action while its target's CityTile property state has the value is_there. More...
 
bool can_utype_do_act_if_tgt_diplrel (const struct unit_type *punit_type, const action_id act_id, const int prop, const bool is_there)
 Return TRUE iff the given (action enabler controlled) action can be performed by a unit of the given type while the given property of its owner's diplomatic relationship to the target's owner has the given value. More...
 
bool utype_may_act_move_frags (const struct unit_type *punit_type, const action_id act_id, const int move_fragments)
 Return TRUE iff the given (action enabler controlled) action may be performed by a unit of the given type that has the given number of move fragments left. More...
 
bool utype_may_act_tgt_city_tile (const struct unit_type *punit_type, const action_id act_id, const enum citytile_type prop, const bool is_there)
 Return TRUE iff the given (action enabler controlled) action may be performed by a unit of the given type if the target tile has the given property. More...
 
bool utype_is_consumed_by_action (const struct action *paction, const struct unit_type *utype)
 Returns TRUE iff performing the specified action will consume an actor unit of the specified type. More...
 
bool utype_is_consumed_by_action_result (enum action_result result, const struct unit_type *utype)
 Returns TRUE iff performing an action with the specified action result will consume an actor unit of the specified type. More...
 
bool utype_is_moved_to_tgt_by_action (const struct action *paction, const struct unit_type *utype)
 Returns TRUE iff successfully performing the specified action always will move the actor unit of the specified type to the target's tile. More...
 
bool utype_is_unmoved_by_action (const struct action *paction, const struct unit_type *utype)
 Returns TRUE iff successfully performing the specified action never will move the actor unit from its current tile. More...
 
bool utype_pays_for_regular_move_to_tgt (const struct action *paction, const struct unit_type *utype)
 Returns TRUE iff successfully performing the specified action always will cost the actor unit of the specified type the move fragments it would take to perform a regular move to the target's tile. More...
 
int utype_pays_mp_for_action_base (const struct action *paction, const struct unit_type *putype)
 Returns the amount of movement points successfully performing the specified action will consume in the actor unit type without taking effects or regular moves into account. More...
 
int utype_pays_mp_for_action_estimate (const struct action *paction, const struct unit_type *putype, const struct player *act_player, const struct tile *act_tile, const struct tile *tgt_tile)
 Returns an estimate of the amount of movement points successfully performing the specified action will consume in the actor unit type. More...
 
void role_unit_precalcs ()
 Initialize; it is safe to call this multiple times (e.g., if units have changed due to rulesets in client). More...
 
void role_unit_precalcs_free ()
 Free memory allocated by role_unit_precalcs(). More...
 
int num_role_units (int role)
 How many unit types have specified role/flag. More...
 
struct unit_typerole_units_iterate_backwards (int role, role_unit_callback cb, void *data)
 Iterate over all the role units and feed them to callback, starting from the last one. More...
 
struct unit_typeget_role_unit (int role, int role_index)
 Return index-th unit with specified role/flag. More...
 
struct unit_typebest_role_unit (const struct city *pcity, int role)
 Return "best" unit this city can build, with given role/flag. More...
 
struct unit_typebest_role_unit_for_player (const struct player *pplayer, int role)
 Return "best" unit the player can build, with given role/flag. More...
 
struct unit_typefirst_role_unit_for_player (const struct player *pplayer, int role)
 Return first unit the player can build, with given role/flag. More...
 
bool role_units_translations (QString &astr, int flag, bool alts)
 Return a string with all the names of units with this flag. More...
 
Unit_Class_id uclass_count ()
 Return the unit_class count. More...
 
Unit_Class_id uclass_number (const struct unit_class *pclass)
 Return the unit_class index. More...
 
struct unit_classunit_class_get (const struct unit *punit)
 Returns unit class pointer for a unit. More...
 
struct unit_classuclass_by_number (const Unit_Class_id id)
 Returns unit class pointer for an ID value. More...
 
struct unit_classunit_class_by_rule_name (const char *s)
 Returns the unit class that has the given (untranslated) rule name. More...
 
const char * uclass_rule_name (const struct unit_class *pclass)
 Return the (untranslated) rule name of the unit class. More...
 
const char * uclass_name_translation (const struct unit_class *pclass)
 Return the (translated) name of the unit class. More...
 
static bool uclass_has_flag (const struct unit_class *punitclass, enum unit_class_flag_id flag)
 
void user_unit_class_flags_init ()
 Initialize user unit class flags. More...
 
void set_user_unit_class_flag_name (enum unit_class_flag_id id, const char *name, const char *helptxt)
 Sets user defined name for unit class flag. More...
 
const char * unit_class_flag_helptxt (enum unit_class_flag_id id)
 Return the (untranslated) help text of the user unit class flag. More...
 
int unit_build_shield_cost (const struct city *pcity, const struct unit *punit)
 Returns the number of shields it takes to build this unit. More...
 
int utype_build_shield_cost (const struct city *pcity, const struct unit_type *punittype)
 Returns the number of shields it takes to build this unit type. More...
 
int utype_build_shield_cost_base (const struct unit_type *punittype)
 Returns the number of shields this unit type represents. More...
 
int unit_build_shield_cost_base (const struct unit *punit)
 Returns the number of shields this unit represents. More...
 
int utype_buy_gold_cost (const struct city *pcity, const struct unit_type *punittype, int shields_in_stock)
 Returns the amount of gold it takes to rush this unit. More...
 
const struct veteran_systemutype_veteran_system (const struct unit_type *punittype)
 Return veteran system used for this unit type. More...
 
int utype_veteran_levels (const struct unit_type *punittype)
 Return veteran levels of the given unit type. More...
 
const struct veteran_levelutype_veteran_level (const struct unit_type *punittype, int level)
 Return veteran level properties of given unit in given veterancy level. More...
 
const char * utype_veteran_name_translation (const struct unit_type *punittype, int level)
 Return translated name of the given veteran level. More...
 
bool utype_veteran_has_power_bonus (const struct unit_type *punittype)
 Return whether this unit type's veteran system, if any, confers a power factor bonus at any level (it could just add extra moves). More...
 
struct veteran_systemveteran_system_new (int count)
 Allocate new veteran system structure with given veteran level count. More...
 
void veteran_system_destroy (struct veteran_system *vsystem)
 Free veteran system. More...
 
void veteran_system_definition (struct veteran_system *vsystem, int level, const char *vlist_name, int vlist_power, int vlist_move, int vlist_raise, int vlist_wraise)
 Fill veteran level in given veteran system with given information. More...
 
int unit_pop_value (const struct unit *punit)
 How much population is put to building this unit. More...
 
int utype_pop_value (const struct unit_type *punittype)
 How much city shrinks when it builds unit of this type. More...
 
enum unit_move_type utype_move_type (const struct unit_type *punittype)
 Return move type of the unit type. More...
 
void set_unit_move_type (struct unit_class *puclass)
 Set move_type for unit class. More...
 
int utype_upkeep_cost (const struct unit_type *ut, struct player *pplayer, Output_type_id otype)
 Returns the upkeep of a unit of this type under the given government. More...
 
int utype_happy_cost (const struct unit_type *ut, const struct player *pplayer)
 Return the "happy cost" (the number of citizens who are discontented) for this unit. More...
 
const struct unit_typecan_upgrade_unittype (const struct player *pplayer, const struct unit_type *punittype)
 Return whether this player can upgrade this unit type (to any other unit type). More...
 
int unit_upgrade_price (const struct player *pplayer, const struct unit_type *from, const struct unit_type *to)
 Return the cost (gold) of upgrading a single unit of the specified type to the new type. More...
 
bool utype_player_already_has_this_unique (const struct player *pplayer, const struct unit_type *putype)
 Returns TRUE iff the unit type is unique and the player already has one. More...
 
bool can_player_build_unit_direct (const struct player *p, const struct unit_type *punittype)
 Whether player can build given unit somewhere, ignoring whether unit is obsolete and assuming the player has a coastal city. More...
 
bool can_player_build_unit_later (const struct player *p, const struct unit_type *punittype)
 Whether player can eventually build given unit somewhere – ie, returns TRUE if unit is available with current tech OR will be available with future tech. More...
 
bool can_player_build_unit_now (const struct player *p, const struct unit_type *punittype)
 Whether player can build given unit somewhere; returns FALSE if unit is obsolete. More...
 
bool utype_is_cityfounder (const struct unit_type *utype)
 Is cityfounder type. More...
 
void unit_types_init ()
 Inialize unit-type structures. More...
 
void unit_types_free ()
 Frees the memory associated with all unit types. More...
 
void unit_type_flags_free ()
 Frees the memory associated with all unit type flags. More...
 
void unit_class_flags_free ()
 Frees the memory associated with all unit class flags. More...
 
struct unit_typeunit_type_array_first ()
 Return the first item of unit_types. More...
 
const struct unit_typeunit_type_array_last ()
 Return the last item of unit_types. More...
 
void * utype_ai_data (const struct unit_type *ptype, const struct ai_type *ai)
 Return pointer to ai data of given unit type and ai type. More...
 
void utype_set_ai_data (struct unit_type *ptype, const struct ai_type *ai, void *data)
 Attach ai data to unit type. More...
 
void unit_type_action_cache_set (struct unit_type *ptype)
 Cache if any action may be possible for a unit of the type putype given the property tested for. More...
 
void unit_type_action_cache_init ()
 Cache what unit types may be allowed do what actions, both at all and when certain properties are true. More...
 
void unit_classes_init ()
 Initialize unit_class structures. More...
 
void unit_classes_free ()
 Free resources allocated for unit classes. More...
 
void set_unit_class_caches (struct unit_class *pclass)
 Set caches for unit class. More...
 
void set_unit_type_caches (struct unit_type *ptype)
 Set caches for unit types. More...
 
struct unit_classunit_class_array_first ()
 Return the first item of unit_classes. More...
 
const struct unit_classunit_class_array_last ()
 Return the last item of unit_classes. More...
 

Macro Definition Documentation

◆ combat_bonus_list_iterate

#define combat_bonus_list_iterate (   bonuslist,
  pbonus 
)     TYPED_LIST_ITERATE(struct combat_bonus, bonuslist, pbonus)

Definition at line 445 of file unittype.h.

◆ combat_bonus_list_iterate_end

#define combat_bonus_list_iterate_end   LIST_ITERATE_END

Definition at line 447 of file unittype.h.

◆ L_FIRST

#define L_FIRST   (UTYF_LAST_USER_FLAG + 1)

Definition at line 319 of file unittype.h.

◆ L_LAST

#define L_LAST   (L_SETTLERS + 1)

Definition at line 406 of file unittype.h.

◆ L_MAX

#define L_MAX   64

Definition at line 410 of file unittype.h.

◆ MAX_NUM_USER_UCLASS_FLAGS

#define MAX_NUM_USER_UCLASS_FLAGS   (UCF_LAST_USER_FLAG - UCF_USER_FLAG_1 + 1)

Definition at line 98 of file unittype.h.

◆ MAX_NUM_USER_UNIT_FLAGS

#define MAX_NUM_USER_UNIT_FLAGS   (UTYF_LAST_USER_FLAG - UTYF_USER_FLAG_1 + 1)

Definition at line 303 of file unittype.h.

◆ SPECENUM_BITVECTOR [1/2]

#define SPECENUM_BITVECTOR   bv_unit_class_flags

Definition at line 305 of file unittype.h.

◆ SPECENUM_BITVECTOR [2/2]

#define SPECENUM_BITVECTOR   bv_unit_type_flags

Definition at line 305 of file unittype.h.

◆ SPECENUM_COUNT

#define SPECENUM_COUNT   UCF_COUNT

Definition at line 92 of file unittype.h.

◆ SPECENUM_NAME [1/5]

#define SPECENUM_NAME   unit_class_flag_id

Definition at line 418 of file unittype.h.

◆ SPECENUM_NAME [2/5]

#define SPECENUM_NAME   unit_move_type

Definition at line 418 of file unittype.h.

◆ SPECENUM_NAME [3/5]

#define SPECENUM_NAME   unit_type_flag_id

Definition at line 418 of file unittype.h.

◆ SPECENUM_NAME [4/5]

#define SPECENUM_NAME   unit_role_id

Definition at line 418 of file unittype.h.

◆ SPECENUM_NAME [5/5]

#define SPECENUM_NAME   combat_bonus_type

Definition at line 418 of file unittype.h.

◆ SPECENUM_NAMEOVERRIDE [1/2]

#define SPECENUM_NAMEOVERRIDE

Definition at line 304 of file unittype.h.

◆ SPECENUM_NAMEOVERRIDE [2/2]

#define SPECENUM_NAMEOVERRIDE

Definition at line 304 of file unittype.h.

◆ SPECENUM_VALUE0 [1/4]

#define SPECENUM_VALUE0   UCF_TERRAIN_SPEED

Definition at line 419 of file unittype.h.

◆ SPECENUM_VALUE0 [2/4]

#define SPECENUM_VALUE0   UMT_LAND

Definition at line 419 of file unittype.h.

◆ SPECENUM_VALUE0 [3/4]

#define SPECENUM_VALUE0   UTYF_RESERVED_2

Definition at line 419 of file unittype.h.

◆ SPECENUM_VALUE0 [4/4]

#define SPECENUM_VALUE0   CBONUS_DEFENSE_MULTIPLIER

Definition at line 419 of file unittype.h.

◆ SPECENUM_VALUE0NAME [1/4]

#define SPECENUM_VALUE0NAME   N_("?uclassflag:TerrainSpeed")

Definition at line 420 of file unittype.h.

◆ SPECENUM_VALUE0NAME [2/4]

#define SPECENUM_VALUE0NAME   "Land"

Definition at line 420 of file unittype.h.

◆ SPECENUM_VALUE0NAME [3/4]

#define SPECENUM_VALUE0NAME   N_("Reserved 2")

Definition at line 420 of file unittype.h.

◆ SPECENUM_VALUE0NAME [4/4]

#define SPECENUM_VALUE0NAME   "DefenseMultiplier"

Definition at line 420 of file unittype.h.

◆ SPECENUM_VALUE1 [1/4]

#define SPECENUM_VALUE1   UCF_TERRAIN_DEFENSE

Definition at line 421 of file unittype.h.

◆ SPECENUM_VALUE1 [2/4]

#define SPECENUM_VALUE1   UMT_SEA

Definition at line 421 of file unittype.h.

◆ SPECENUM_VALUE1 [3/4]

#define SPECENUM_VALUE1   UTYF_NOZOC

Definition at line 421 of file unittype.h.

◆ SPECENUM_VALUE1 [4/4]

#define SPECENUM_VALUE1   CBONUS_DEFENSE_DIVIDER

Definition at line 421 of file unittype.h.

◆ SPECENUM_VALUE10 [1/2]

#define SPECENUM_VALUE10   UCF_KILLCITIZEN

Definition at line 185 of file unittype.h.

◆ SPECENUM_VALUE10 [2/2]

#define SPECENUM_VALUE10   UTYF_DIPLOMAT

Definition at line 185 of file unittype.h.

◆ SPECENUM_VALUE100

#define SPECENUM_VALUE100   L_START_DEFEND_GOOD

Definition at line 392 of file unittype.h.

◆ SPECENUM_VALUE100NAME

#define SPECENUM_VALUE100NAME   N_("?unitflag:DefendGoodStartunit")

Definition at line 393 of file unittype.h.

◆ SPECENUM_VALUE101

#define SPECENUM_VALUE101   L_START_ATTACK_FAST

Definition at line 395 of file unittype.h.

◆ SPECENUM_VALUE101NAME

#define SPECENUM_VALUE101NAME   N_("?unitflag:AttackFastStartunit")

Definition at line 396 of file unittype.h.

◆ SPECENUM_VALUE102

#define SPECENUM_VALUE102   L_START_ATTACK_STRONG

Definition at line 398 of file unittype.h.

◆ SPECENUM_VALUE102NAME

#define SPECENUM_VALUE102NAME   N_("?unitflag:AttackStrongStartunit")

Definition at line 399 of file unittype.h.

◆ SPECENUM_VALUE103

#define SPECENUM_VALUE103   L_HUNTER

Definition at line 401 of file unittype.h.

◆ SPECENUM_VALUE103NAME

#define SPECENUM_VALUE103NAME   N_("?unitflag:Hunter")

Definition at line 402 of file unittype.h.

◆ SPECENUM_VALUE104

#define SPECENUM_VALUE104   L_SETTLERS

Definition at line 404 of file unittype.h.

◆ SPECENUM_VALUE104NAME

#define SPECENUM_VALUE104NAME   N_("?unitflag:Settlers")

Definition at line 405 of file unittype.h.

◆ SPECENUM_VALUE10NAME [1/2]

#define SPECENUM_VALUE10NAME   N_("?uclassflag:KillCitizen")

Definition at line 186 of file unittype.h.

◆ SPECENUM_VALUE10NAME [2/2]

#define SPECENUM_VALUE10NAME   N_("?unitflag:Diplomat")

Definition at line 186 of file unittype.h.

◆ SPECENUM_VALUE11 [1/2]

#define SPECENUM_VALUE11   UCF_USER_FLAG_1

Definition at line 188 of file unittype.h.

◆ SPECENUM_VALUE11 [2/2]

#define SPECENUM_VALUE11   UTYF_COAST_STRICT

Definition at line 188 of file unittype.h.

◆ SPECENUM_VALUE11NAME

#define SPECENUM_VALUE11NAME   N_("?unitflag:CoastStrict")

Definition at line 189 of file unittype.h.

◆ SPECENUM_VALUE12 [1/2]

#define SPECENUM_VALUE12   UCF_USER_FLAG_2

Definition at line 191 of file unittype.h.

◆ SPECENUM_VALUE12 [2/2]

#define SPECENUM_VALUE12   UTYF_COAST

Definition at line 191 of file unittype.h.

◆ SPECENUM_VALUE12NAME

#define SPECENUM_VALUE12NAME   N_("?unitflag:Coast")

Definition at line 192 of file unittype.h.

◆ SPECENUM_VALUE13 [1/2]

#define SPECENUM_VALUE13   UCF_USER_FLAG_3

Definition at line 194 of file unittype.h.

◆ SPECENUM_VALUE13 [2/2]

#define SPECENUM_VALUE13   UTYF_SHIELD2GOLD

Definition at line 194 of file unittype.h.

◆ SPECENUM_VALUE13NAME

#define SPECENUM_VALUE13NAME   N_("?unitflag:Shield2Gold")

Definition at line 195 of file unittype.h.

◆ SPECENUM_VALUE14 [1/2]

#define SPECENUM_VALUE14   UCF_USER_FLAG_4

Definition at line 197 of file unittype.h.

◆ SPECENUM_VALUE14 [2/2]

#define SPECENUM_VALUE14   UTYF_SPY

Definition at line 197 of file unittype.h.

◆ SPECENUM_VALUE14NAME

#define SPECENUM_VALUE14NAME   N_("?unitflag:Spy")

Definition at line 198 of file unittype.h.

◆ SPECENUM_VALUE15 [1/2]

#define SPECENUM_VALUE15   UCF_USER_FLAG_5

Definition at line 200 of file unittype.h.

◆ SPECENUM_VALUE15 [2/2]

#define SPECENUM_VALUE15   UTYF_ONLY_NATIVE_ATTACK

Definition at line 200 of file unittype.h.

◆ SPECENUM_VALUE15NAME

#define SPECENUM_VALUE15NAME   N_("?unitflag:Only_Native_Attack")

Definition at line 201 of file unittype.h.

◆ SPECENUM_VALUE16 [1/2]

#define SPECENUM_VALUE16   UCF_USER_FLAG_6

Definition at line 203 of file unittype.h.

◆ SPECENUM_VALUE16 [2/2]

#define SPECENUM_VALUE16   UTYF_FANATIC

Definition at line 203 of file unittype.h.

◆ SPECENUM_VALUE16NAME

#define SPECENUM_VALUE16NAME   N_("?unitflag:Fanatic")

Definition at line 204 of file unittype.h.

◆ SPECENUM_VALUE17 [1/2]

#define SPECENUM_VALUE17   UCF_USER_FLAG_7

Definition at line 206 of file unittype.h.

◆ SPECENUM_VALUE17 [2/2]

#define SPECENUM_VALUE17   UTYF_GAMELOSS

Definition at line 206 of file unittype.h.

◆ SPECENUM_VALUE17NAME

#define SPECENUM_VALUE17NAME   N_("?unitflag:GameLoss")

Definition at line 207 of file unittype.h.

◆ SPECENUM_VALUE18 [1/2]

#define SPECENUM_VALUE18   UCF_USER_FLAG_8

Definition at line 209 of file unittype.h.

◆ SPECENUM_VALUE18 [2/2]

#define SPECENUM_VALUE18   UTYF_UNIQUE

Definition at line 209 of file unittype.h.

◆ SPECENUM_VALUE18NAME

#define SPECENUM_VALUE18NAME   N_("?unitflag:Unique")

Definition at line 210 of file unittype.h.

◆ SPECENUM_VALUE19 [1/2]

#define SPECENUM_VALUE19   UCF_USER_FLAG_9

Definition at line 214 of file unittype.h.

◆ SPECENUM_VALUE19 [2/2]

#define SPECENUM_VALUE19   UTYF_EVAC_FIRST

Definition at line 214 of file unittype.h.

◆ SPECENUM_VALUE19NAME

#define SPECENUM_VALUE19NAME   N_("?unitflag:EvacuateFirst")

Definition at line 215 of file unittype.h.

◆ SPECENUM_VALUE1NAME [1/4]

#define SPECENUM_VALUE1NAME   N_("?uclassflag:TerrainDefense")

Definition at line 422 of file unittype.h.

◆ SPECENUM_VALUE1NAME [2/4]

#define SPECENUM_VALUE1NAME   "Sea"

Definition at line 422 of file unittype.h.

◆ SPECENUM_VALUE1NAME [3/4]

#define SPECENUM_VALUE1NAME   N_("?unitflag:HasNoZOC")

Definition at line 422 of file unittype.h.

◆ SPECENUM_VALUE1NAME [4/4]

#define SPECENUM_VALUE1NAME   "DefenseDivider"

Definition at line 422 of file unittype.h.

◆ SPECENUM_VALUE2 [1/4]

#define SPECENUM_VALUE2   UCF_DAMAGE_SLOWS

Definition at line 423 of file unittype.h.

◆ SPECENUM_VALUE2 [2/4]

#define SPECENUM_VALUE2   UMT_BOTH

Definition at line 423 of file unittype.h.

◆ SPECENUM_VALUE2 [3/4]

#define SPECENUM_VALUE2   UTYF_IGZOC

Definition at line 423 of file unittype.h.

◆ SPECENUM_VALUE2 [4/4]

#define SPECENUM_VALUE2   CBONUS_FIREPOWER1

Definition at line 423 of file unittype.h.

◆ SPECENUM_VALUE20 [1/2]

#define SPECENUM_VALUE20   UCF_USER_FLAG_10

Definition at line 217 of file unittype.h.

◆ SPECENUM_VALUE20 [2/2]

#define SPECENUM_VALUE20   UTYF_SUPERSPY

Definition at line 217 of file unittype.h.

◆ SPECENUM_VALUE20NAME

#define SPECENUM_VALUE20NAME   N_("?unitflag:SuperSpy")

Definition at line 218 of file unittype.h.

◆ SPECENUM_VALUE21 [1/2]

#define SPECENUM_VALUE21   UCF_USER_FLAG_11

Definition at line 220 of file unittype.h.

◆ SPECENUM_VALUE21 [2/2]

#define SPECENUM_VALUE21   UTYF_NOHOME

Definition at line 220 of file unittype.h.

◆ SPECENUM_VALUE21NAME

#define SPECENUM_VALUE21NAME   N_("?unitflag:NoHome")

Definition at line 221 of file unittype.h.

◆ SPECENUM_VALUE22 [1/2]

#define SPECENUM_VALUE22   UCF_USER_FLAG_12

Definition at line 223 of file unittype.h.

◆ SPECENUM_VALUE22 [2/2]

#define SPECENUM_VALUE22   UTYF_NO_VETERAN

Definition at line 223 of file unittype.h.

◆ SPECENUM_VALUE22NAME

#define SPECENUM_VALUE22NAME   N_("?unitflag:NoVeteran")

Definition at line 224 of file unittype.h.

◆ SPECENUM_VALUE23

#define SPECENUM_VALUE23   UTYF_CITYBUSTER

Definition at line 226 of file unittype.h.

◆ SPECENUM_VALUE23NAME

#define SPECENUM_VALUE23NAME   N_("?unitflag:CityBuster")

Definition at line 227 of file unittype.h.

◆ SPECENUM_VALUE24

#define SPECENUM_VALUE24   UTYF_NOBUILD

Definition at line 229 of file unittype.h.

◆ SPECENUM_VALUE24NAME

#define SPECENUM_VALUE24NAME   N_("?unitflag:NoBuild")

Definition at line 230 of file unittype.h.

◆ SPECENUM_VALUE25

#define SPECENUM_VALUE25   UTYF_BADWALLATTACKER

Definition at line 233 of file unittype.h.

◆ SPECENUM_VALUE25NAME

#define SPECENUM_VALUE25NAME   N_("?unitflag:BadWallAttacker")

Definition at line 234 of file unittype.h.

◆ SPECENUM_VALUE26

#define SPECENUM_VALUE26   UTYF_BADCITYDEFENDER

Definition at line 236 of file unittype.h.

◆ SPECENUM_VALUE26NAME

#define SPECENUM_VALUE26NAME   N_("?unitflag:BadCityDefender")

Definition at line 237 of file unittype.h.

◆ SPECENUM_VALUE27

#define SPECENUM_VALUE27   UTYF_BARBARIAN_ONLY

Definition at line 239 of file unittype.h.

◆ SPECENUM_VALUE27NAME

#define SPECENUM_VALUE27NAME   N_("?unitflag:BarbarianOnly")

Definition at line 240 of file unittype.h.

◆ SPECENUM_VALUE28

#define SPECENUM_VALUE28   UTYF_RESERVED_1

Definition at line 242 of file unittype.h.

◆ SPECENUM_VALUE28NAME

#define SPECENUM_VALUE28NAME   N_("Reserved 1")

Definition at line 243 of file unittype.h.

◆ SPECENUM_VALUE29

#define SPECENUM_VALUE29   UTYF_NEWCITY_GAMES_ONLY

Definition at line 246 of file unittype.h.

◆ SPECENUM_VALUE29NAME

#define SPECENUM_VALUE29NAME   N_("?unitflag:NewCityGamesOnly")

Definition at line 247 of file unittype.h.

◆ SPECENUM_VALUE2NAME [1/4]

#define SPECENUM_VALUE2NAME   N_("?uclassflag:DamageSlows")

Definition at line 424 of file unittype.h.

◆ SPECENUM_VALUE2NAME [2/4]

#define SPECENUM_VALUE2NAME   "Both"

Definition at line 424 of file unittype.h.

◆ SPECENUM_VALUE2NAME [3/4]

#define SPECENUM_VALUE2NAME   N_("?unitflag:IgZOC")

Definition at line 424 of file unittype.h.

◆ SPECENUM_VALUE2NAME [4/4]

#define SPECENUM_VALUE2NAME   "Firepower1"

Definition at line 424 of file unittype.h.

◆ SPECENUM_VALUE3 [1/3]

#define SPECENUM_VALUE3   UCF_CAN_OCCUPY_CITY

Definition at line 425 of file unittype.h.

◆ SPECENUM_VALUE3 [2/3]

#define SPECENUM_VALUE3   UTYF_CIVILIAN

Definition at line 425 of file unittype.h.

◆ SPECENUM_VALUE3 [3/3]

#define SPECENUM_VALUE3   CBONUS_DEFENSE_MULTIPLIER_PCT

Definition at line 425 of file unittype.h.

◆ SPECENUM_VALUE30

#define SPECENUM_VALUE30   UTYF_CANESCAPE

Definition at line 249 of file unittype.h.

◆ SPECENUM_VALUE30NAME

#define SPECENUM_VALUE30NAME   N_("?unitflag:CanEscape")

Definition at line 250 of file unittype.h.

◆ SPECENUM_VALUE31

#define SPECENUM_VALUE31   UTYF_CANKILLESCAPING

Definition at line 252 of file unittype.h.

◆ SPECENUM_VALUE31NAME

#define SPECENUM_VALUE31NAME   N_("?unitflag:CanKillEscaping")

Definition at line 253 of file unittype.h.

◆ SPECENUM_VALUE32

#define SPECENUM_VALUE32   UTYF_USER_FLAG_1

Definition at line 255 of file unittype.h.

◆ SPECENUM_VALUE33

#define SPECENUM_VALUE33   UTYF_USER_FLAG_2

Definition at line 256 of file unittype.h.

◆ SPECENUM_VALUE34

#define SPECENUM_VALUE34   UTYF_USER_FLAG_3

Definition at line 257 of file unittype.h.

◆ SPECENUM_VALUE35

#define SPECENUM_VALUE35   UTYF_USER_FLAG_4

Definition at line 258 of file unittype.h.

◆ SPECENUM_VALUE36

#define SPECENUM_VALUE36   UTYF_USER_FLAG_5

Definition at line 259 of file unittype.h.

◆ SPECENUM_VALUE37

#define SPECENUM_VALUE37   UTYF_USER_FLAG_6

Definition at line 260 of file unittype.h.

◆ SPECENUM_VALUE38

#define SPECENUM_VALUE38   UTYF_USER_FLAG_7

Definition at line 261 of file unittype.h.

◆ SPECENUM_VALUE39

#define SPECENUM_VALUE39   UTYF_USER_FLAG_8

Definition at line 262 of file unittype.h.

◆ SPECENUM_VALUE3NAME [1/3]

#define SPECENUM_VALUE3NAME   N_("?uclassflag:CanOccupyCity")

Definition at line 426 of file unittype.h.

◆ SPECENUM_VALUE3NAME [2/3]

#define SPECENUM_VALUE3NAME   N_("?unitflag:NonMil")

Definition at line 426 of file unittype.h.

◆ SPECENUM_VALUE3NAME [3/3]

#define SPECENUM_VALUE3NAME   "DefenseMultiplierPct"

Definition at line 426 of file unittype.h.

◆ SPECENUM_VALUE4 [1/3]

#define SPECENUM_VALUE4   UCF_BUILD_ANYWHERE

Definition at line 427 of file unittype.h.

◆ SPECENUM_VALUE4 [2/3]

#define SPECENUM_VALUE4   UTYF_IGTER

Definition at line 427 of file unittype.h.

◆ SPECENUM_VALUE4 [3/3]

#define SPECENUM_VALUE4   CBONUS_DEFENSE_DIVIDER_PCT

Definition at line 427 of file unittype.h.

◆ SPECENUM_VALUE40

#define SPECENUM_VALUE40   UTYF_USER_FLAG_9

Definition at line 263 of file unittype.h.

◆ SPECENUM_VALUE41

#define SPECENUM_VALUE41   UTYF_USER_FLAG_10

Definition at line 264 of file unittype.h.

◆ SPECENUM_VALUE42

#define SPECENUM_VALUE42   UTYF_USER_FLAG_11

Definition at line 265 of file unittype.h.

◆ SPECENUM_VALUE43

#define SPECENUM_VALUE43   UTYF_USER_FLAG_12

Definition at line 266 of file unittype.h.

◆ SPECENUM_VALUE44

#define SPECENUM_VALUE44   UTYF_USER_FLAG_13

Definition at line 267 of file unittype.h.

◆ SPECENUM_VALUE45

#define SPECENUM_VALUE45   UTYF_USER_FLAG_14

Definition at line 268 of file unittype.h.

◆ SPECENUM_VALUE46

#define SPECENUM_VALUE46   UTYF_USER_FLAG_15

Definition at line 269 of file unittype.h.

◆ SPECENUM_VALUE47

#define SPECENUM_VALUE47   UTYF_USER_FLAG_16

Definition at line 270 of file unittype.h.

◆ SPECENUM_VALUE48

#define SPECENUM_VALUE48   UTYF_USER_FLAG_17

Definition at line 271 of file unittype.h.

◆ SPECENUM_VALUE49

#define SPECENUM_VALUE49   UTYF_USER_FLAG_18

Definition at line 272 of file unittype.h.

◆ SPECENUM_VALUE4NAME [1/3]

#define SPECENUM_VALUE4NAME   N_("?uclassflag:BuildAnywhere")

Definition at line 428 of file unittype.h.

◆ SPECENUM_VALUE4NAME [2/3]

#define SPECENUM_VALUE4NAME   N_("?unitflag:IgTer")

Definition at line 428 of file unittype.h.

◆ SPECENUM_VALUE4NAME [3/3]

#define SPECENUM_VALUE4NAME   "DefenseDividerPct"

Definition at line 428 of file unittype.h.

◆ SPECENUM_VALUE5 [1/2]

#define SPECENUM_VALUE5   UCF_UNREACHABLE

Definition at line 171 of file unittype.h.

◆ SPECENUM_VALUE5 [2/2]

#define SPECENUM_VALUE5   UTYF_ONEATTACK

Definition at line 171 of file unittype.h.

◆ SPECENUM_VALUE50

#define SPECENUM_VALUE50   UTYF_USER_FLAG_19

Definition at line 273 of file unittype.h.

◆ SPECENUM_VALUE51

#define SPECENUM_VALUE51   UTYF_USER_FLAG_20

Definition at line 274 of file unittype.h.

◆ SPECENUM_VALUE52

#define SPECENUM_VALUE52   UTYF_USER_FLAG_21

Definition at line 275 of file unittype.h.

◆ SPECENUM_VALUE53

#define SPECENUM_VALUE53   UTYF_USER_FLAG_22

Definition at line 276 of file unittype.h.

◆ SPECENUM_VALUE54

#define SPECENUM_VALUE54   UTYF_USER_FLAG_23

Definition at line 277 of file unittype.h.

◆ SPECENUM_VALUE55

#define SPECENUM_VALUE55   UTYF_USER_FLAG_24

Definition at line 278 of file unittype.h.

◆ SPECENUM_VALUE56

#define SPECENUM_VALUE56   UTYF_USER_FLAG_25

Definition at line 279 of file unittype.h.

◆ SPECENUM_VALUE57

#define SPECENUM_VALUE57   UTYF_USER_FLAG_26

Definition at line 280 of file unittype.h.

◆ SPECENUM_VALUE58

#define SPECENUM_VALUE58   UTYF_USER_FLAG_27

Definition at line 281 of file unittype.h.

◆ SPECENUM_VALUE59

#define SPECENUM_VALUE59   UTYF_USER_FLAG_28

Definition at line 282 of file unittype.h.

◆ SPECENUM_VALUE5NAME [1/2]

#define SPECENUM_VALUE5NAME   N_("?uclassflag:Unreachable")

Definition at line 172 of file unittype.h.

◆ SPECENUM_VALUE5NAME [2/2]

#define SPECENUM_VALUE5NAME   N_("?unitflag:OneAttack")

Definition at line 172 of file unittype.h.

◆ SPECENUM_VALUE6 [1/2]

#define SPECENUM_VALUE6   UCF_COLLECT_RANSOM

Definition at line 173 of file unittype.h.

◆ SPECENUM_VALUE6 [2/2]

#define SPECENUM_VALUE6   UTYF_FIELDUNIT

Definition at line 173 of file unittype.h.

◆ SPECENUM_VALUE60

#define SPECENUM_VALUE60   UTYF_USER_FLAG_29

Definition at line 283 of file unittype.h.

◆ SPECENUM_VALUE61

#define SPECENUM_VALUE61   UTYF_USER_FLAG_30

Definition at line 284 of file unittype.h.

◆ SPECENUM_VALUE62

#define SPECENUM_VALUE62   UTYF_USER_FLAG_31

Definition at line 285 of file unittype.h.

◆ SPECENUM_VALUE63

#define SPECENUM_VALUE63   UTYF_USER_FLAG_32

Definition at line 286 of file unittype.h.

◆ SPECENUM_VALUE64

#define SPECENUM_VALUE64   UTYF_USER_FLAG_33

Definition at line 287 of file unittype.h.

◆ SPECENUM_VALUE65

#define SPECENUM_VALUE65   UTYF_USER_FLAG_34

Definition at line 288 of file unittype.h.

◆ SPECENUM_VALUE66

#define SPECENUM_VALUE66   UTYF_USER_FLAG_35

Definition at line 289 of file unittype.h.

◆ SPECENUM_VALUE67

#define SPECENUM_VALUE67   UTYF_USER_FLAG_36

Definition at line 290 of file unittype.h.

◆ SPECENUM_VALUE68

#define SPECENUM_VALUE68   UTYF_USER_FLAG_37

Definition at line 291 of file unittype.h.

◆ SPECENUM_VALUE69

#define SPECENUM_VALUE69   UTYF_USER_FLAG_38

Definition at line 292 of file unittype.h.

◆ SPECENUM_VALUE6NAME [1/2]

#define SPECENUM_VALUE6NAME   N_("?uclassflag:CollectRansom")

Definition at line 174 of file unittype.h.

◆ SPECENUM_VALUE6NAME [2/2]

#define SPECENUM_VALUE6NAME   N_("?unitflag:FieldUnit")

Definition at line 174 of file unittype.h.

◆ SPECENUM_VALUE7 [1/2]

#define SPECENUM_VALUE7   UCF_ZOC

Definition at line 177 of file unittype.h.

◆ SPECENUM_VALUE7 [2/2]

#define SPECENUM_VALUE7   UTYF_PROVOKING

Definition at line 177 of file unittype.h.

◆ SPECENUM_VALUE70

#define SPECENUM_VALUE70   UTYF_USER_FLAG_39

Definition at line 293 of file unittype.h.

◆ SPECENUM_VALUE71

#define SPECENUM_VALUE71   UTYF_USER_FLAG_40

Definition at line 294 of file unittype.h.

◆ SPECENUM_VALUE72

#define SPECENUM_VALUE72   UTYF_USER_FLAG_41

Definition at line 295 of file unittype.h.

◆ SPECENUM_VALUE73

#define SPECENUM_VALUE73   UTYF_USER_FLAG_42

Definition at line 296 of file unittype.h.

◆ SPECENUM_VALUE74

#define SPECENUM_VALUE74   UTYF_USER_FLAG_43

Definition at line 297 of file unittype.h.

◆ SPECENUM_VALUE75

#define SPECENUM_VALUE75   UTYF_USER_FLAG_44

Definition at line 298 of file unittype.h.

◆ SPECENUM_VALUE76

#define SPECENUM_VALUE76   UTYF_USER_FLAG_45

Definition at line 299 of file unittype.h.

◆ SPECENUM_VALUE77

#define SPECENUM_VALUE77   L_FIRSTBUILD

Definition at line 323 of file unittype.h.

◆ SPECENUM_VALUE77NAME

#define SPECENUM_VALUE77NAME   N_("?unitflag:FirstBuild")

Definition at line 324 of file unittype.h.

◆ SPECENUM_VALUE78

#define SPECENUM_VALUE78   L_EXPLORER

Definition at line 326 of file unittype.h.

◆ SPECENUM_VALUE78NAME

#define SPECENUM_VALUE78NAME   N_("?unitflag:Explorer")

Definition at line 327 of file unittype.h.

◆ SPECENUM_VALUE79

#define SPECENUM_VALUE79   L_HUT

Definition at line 329 of file unittype.h.

◆ SPECENUM_VALUE79NAME

#define SPECENUM_VALUE79NAME   N_("?unitflag:Hut")

Definition at line 330 of file unittype.h.

◆ SPECENUM_VALUE7NAME [1/2]

#define SPECENUM_VALUE7NAME   N_("?uclassflag:ZOC")

Definition at line 178 of file unittype.h.

◆ SPECENUM_VALUE7NAME [2/2]

#define SPECENUM_VALUE7NAME   N_("?unitflag:Provoking")

Definition at line 178 of file unittype.h.

◆ SPECENUM_VALUE8 [1/2]

#define SPECENUM_VALUE8   UCF_DOESNT_OCCUPY_TILE

Definition at line 180 of file unittype.h.

◆ SPECENUM_VALUE8 [2/2]

#define SPECENUM_VALUE8   UTYF_NEVER_PROTECTS

Definition at line 180 of file unittype.h.

◆ SPECENUM_VALUE80

#define SPECENUM_VALUE80   L_HUT_TECH

Definition at line 332 of file unittype.h.

◆ SPECENUM_VALUE80NAME

#define SPECENUM_VALUE80NAME   N_("?unitflag:HutTech")

Definition at line 333 of file unittype.h.

◆ SPECENUM_VALUE81

#define SPECENUM_VALUE81   L_PARTISAN

Definition at line 335 of file unittype.h.

◆ SPECENUM_VALUE81NAME

#define SPECENUM_VALUE81NAME   N_("?unitflag:Partisan")

Definition at line 336 of file unittype.h.

◆ SPECENUM_VALUE82

#define SPECENUM_VALUE82   L_DEFEND_OK

Definition at line 338 of file unittype.h.

◆ SPECENUM_VALUE82NAME

#define SPECENUM_VALUE82NAME   N_("?unitflag:DefendOk")

Definition at line 339 of file unittype.h.

◆ SPECENUM_VALUE83

#define SPECENUM_VALUE83   L_DEFEND_GOOD

Definition at line 341 of file unittype.h.

◆ SPECENUM_VALUE83NAME

#define SPECENUM_VALUE83NAME   N_("?unitflag:DefendGood")

Definition at line 342 of file unittype.h.

◆ SPECENUM_VALUE84

#define SPECENUM_VALUE84   L_FERRYBOAT

Definition at line 344 of file unittype.h.

◆ SPECENUM_VALUE84NAME

#define SPECENUM_VALUE84NAME   N_("?unitflag:FerryBoat")

Definition at line 345 of file unittype.h.

◆ SPECENUM_VALUE85

#define SPECENUM_VALUE85   L_BARBARIAN

Definition at line 347 of file unittype.h.

◆ SPECENUM_VALUE85NAME

#define SPECENUM_VALUE85NAME   N_("?unitflag:Barbarian")

Definition at line 348 of file unittype.h.

◆ SPECENUM_VALUE86

#define SPECENUM_VALUE86   L_BARBARIAN_TECH

Definition at line 350 of file unittype.h.

◆ SPECENUM_VALUE86NAME

#define SPECENUM_VALUE86NAME   N_("?unitflag:BarbarianTech")

Definition at line 351 of file unittype.h.

◆ SPECENUM_VALUE87

#define SPECENUM_VALUE87   L_BARBARIAN_BOAT

Definition at line 353 of file unittype.h.

◆ SPECENUM_VALUE87NAME

#define SPECENUM_VALUE87NAME   N_("?unitflag:BarbarianBoat")

Definition at line 354 of file unittype.h.

◆ SPECENUM_VALUE88

#define SPECENUM_VALUE88   L_BARBARIAN_BUILD

Definition at line 356 of file unittype.h.

◆ SPECENUM_VALUE88NAME

#define SPECENUM_VALUE88NAME   N_("BarbarianBuild")

Definition at line 357 of file unittype.h.

◆ SPECENUM_VALUE89

#define SPECENUM_VALUE89   L_BARBARIAN_BUILD_TECH

Definition at line 359 of file unittype.h.

◆ SPECENUM_VALUE89NAME

#define SPECENUM_VALUE89NAME   N_("?unitflag:BarbarianBuildTech")

Definition at line 360 of file unittype.h.

◆ SPECENUM_VALUE8NAME [1/2]

#define SPECENUM_VALUE8NAME   N_("?uclassflag:DoesntOccupyTile")

Definition at line 181 of file unittype.h.

◆ SPECENUM_VALUE8NAME [2/2]

#define SPECENUM_VALUE8NAME   N_("?unitflag:NeverProtects")

Definition at line 181 of file unittype.h.

◆ SPECENUM_VALUE9 [1/2]

#define SPECENUM_VALUE9   UCF_ATTACK_NON_NATIVE

Definition at line 183 of file unittype.h.

◆ SPECENUM_VALUE9 [2/2]

#define SPECENUM_VALUE9   UTYF_SETTLERS

Definition at line 183 of file unittype.h.

◆ SPECENUM_VALUE90

#define SPECENUM_VALUE90   L_BARBARIAN_LEADER

Definition at line 362 of file unittype.h.

◆ SPECENUM_VALUE90NAME

#define SPECENUM_VALUE90NAME   N_("?unitflag:BarbarianLeader")

Definition at line 363 of file unittype.h.

◆ SPECENUM_VALUE91

#define SPECENUM_VALUE91   L_BARBARIAN_SEA

Definition at line 365 of file unittype.h.

◆ SPECENUM_VALUE91NAME

#define SPECENUM_VALUE91NAME   N_("?unitflag:BarbarianSea")

Definition at line 366 of file unittype.h.

◆ SPECENUM_VALUE92

#define SPECENUM_VALUE92   L_BARBARIAN_SEA_TECH

Definition at line 368 of file unittype.h.

◆ SPECENUM_VALUE92NAME

#define SPECENUM_VALUE92NAME   N_("?unitflag:BarbarianSeaTech")

Definition at line 369 of file unittype.h.

◆ SPECENUM_VALUE93

#define SPECENUM_VALUE93   L_START_CITIES

Definition at line 371 of file unittype.h.

◆ SPECENUM_VALUE93NAME

#define SPECENUM_VALUE93NAME   N_("?unitflag:CitiesStartunit")

Definition at line 372 of file unittype.h.

◆ SPECENUM_VALUE94

#define SPECENUM_VALUE94   L_START_WORKER

Definition at line 374 of file unittype.h.

◆ SPECENUM_VALUE94NAME

#define SPECENUM_VALUE94NAME   N_("?unitflag:WorkerStartunit")

Definition at line 375 of file unittype.h.

◆ SPECENUM_VALUE95

#define SPECENUM_VALUE95   L_START_EXPLORER

Definition at line 377 of file unittype.h.

◆ SPECENUM_VALUE95NAME

#define SPECENUM_VALUE95NAME   N_("?unitflag:ExplorerStartunit")

Definition at line 378 of file unittype.h.

◆ SPECENUM_VALUE96

#define SPECENUM_VALUE96   L_START_KING

Definition at line 380 of file unittype.h.

◆ SPECENUM_VALUE96NAME

#define SPECENUM_VALUE96NAME   N_("?unitflag:KingStartunit")

Definition at line 381 of file unittype.h.

◆ SPECENUM_VALUE97

#define SPECENUM_VALUE97   L_START_DIPLOMAT

Definition at line 383 of file unittype.h.

◆ SPECENUM_VALUE97NAME

#define SPECENUM_VALUE97NAME   N_("?unitflag:DiplomatStartunit")

Definition at line 384 of file unittype.h.

◆ SPECENUM_VALUE98

#define SPECENUM_VALUE98   L_START_FERRY

Definition at line 386 of file unittype.h.

◆ SPECENUM_VALUE98NAME

#define SPECENUM_VALUE98NAME   N_("?unitflag:FerryStartunit")

Definition at line 387 of file unittype.h.

◆ SPECENUM_VALUE99

#define SPECENUM_VALUE99   L_START_DEFEND_OK

Definition at line 389 of file unittype.h.

◆ SPECENUM_VALUE99NAME

#define SPECENUM_VALUE99NAME   N_("?unitflag:DefendOkStartunit")

Definition at line 390 of file unittype.h.

◆ SPECENUM_VALUE9NAME [1/2]

#define SPECENUM_VALUE9NAME   N_("?uclassflag:AttackNonNative")

Definition at line 184 of file unittype.h.

◆ SPECENUM_VALUE9NAME [2/2]

#define SPECENUM_VALUE9NAME   N_("?unitflag:Settlers")

Definition at line 184 of file unittype.h.

◆ SPECLIST_TAG [1/3]

#define SPECLIST_TAG   combat_bonus

Definition at line 852 of file unittype.h.

◆ SPECLIST_TAG [2/3]

#define SPECLIST_TAG   unit_class

Definition at line 852 of file unittype.h.

◆ SPECLIST_TAG [3/3]

#define SPECLIST_TAG   unit_type

Definition at line 852 of file unittype.h.

◆ SPECLIST_TYPE [1/3]

#define SPECLIST_TYPE   struct combat_bonus

Definition at line 853 of file unittype.h.

◆ SPECLIST_TYPE [2/3]

#define SPECLIST_TYPE   struct unit_class

Definition at line 853 of file unittype.h.

◆ SPECLIST_TYPE [3/3]

#define SPECLIST_TYPE   struct unit_type

Definition at line 853 of file unittype.h.

◆ U_LAST

#define U_LAST   MAX_NUM_UNIT_TYPES

Definition at line 31 of file unittype.h.

◆ U_NOT_OBSOLETED

#define U_NOT_OBSOLETED   (nullptr)

Definition at line 493 of file unittype.h.

◆ UCF_LAST_USER_FLAG

#define UCF_LAST_USER_FLAG   UCF_USER_FLAG_12

Definition at line 97 of file unittype.h.

◆ uclass_index

#define uclass_index (   _c_)    (_c_)->item_number

Definition at line 684 of file unittype.h.

◆ unit_class_iterate

#define unit_class_iterate (   _p)
Value:
{ \
if (nullptr != _p) { \
for (; _p <= unit_class_array_last(); _p++) {
const struct unit_class * unit_class_array_last()
Return the last item of unit_classes.
Definition: unittype.cpp:2090
struct unit_class * unit_class_array_first()
Return the first item of unit_classes.
Definition: unittype.cpp:2079

Definition at line 823 of file unittype.h.

◆ unit_class_iterate_end

#define unit_class_iterate_end
Value:
} \
} \
}

Definition at line 829 of file unittype.h.

◆ unit_class_list_iterate

#define unit_class_list_iterate (   uclass_list,
  pclass 
)     TYPED_LIST_ITERATE(struct unit_class, uclass_list, pclass)

Definition at line 848 of file unittype.h.

◆ unit_class_list_iterate_end

#define unit_class_list_iterate_end   LIST_ITERATE_END

Definition at line 850 of file unittype.h.

◆ unit_class_re_active_iterate

#define unit_class_re_active_iterate (   _p)
Value:
{ \
if (!_p->ruledit_disabled) {
#define unit_class_iterate(_p)
Definition: unittype.h:823

Definition at line 834 of file unittype.h.

◆ unit_class_re_active_iterate_end

#define unit_class_re_active_iterate_end
Value:
} \
} \
unit_class_iterate_end;

Definition at line 839 of file unittype.h.

◆ UNIT_MAX_PARADROP_RANGE

#define UNIT_MAX_PARADROP_RANGE   (65535 - 1)

Definition at line 45 of file unittype.h.

◆ unit_type_iterate

#define unit_type_iterate (   _p)
Value:
{ \
struct unit_type *_p = unit_type_array_first(); \
if (nullptr != _p) { \
for (; _p <= unit_type_array_last(); _p++) {
struct unit_type * unit_type_array_first()
Return the first item of unit_types.
Definition: unittype.cpp:52
const struct unit_type * unit_type_array_last()
Return the last item of unit_types.
Definition: unittype.cpp:63

Definition at line 785 of file unittype.h.

◆ unit_type_iterate_end

#define unit_type_iterate_end
Value:
} \
} \
}

Definition at line 791 of file unittype.h.

◆ unit_type_list_iterate

#define unit_type_list_iterate (   utype_list,
  ptype 
)     TYPED_LIST_ITERATE(struct unit_type, utype_list, ptype)

Definition at line 856 of file unittype.h.

◆ unit_type_list_iterate_end

#define unit_type_list_iterate_end   LIST_ITERATE_END

Definition at line 858 of file unittype.h.

◆ unit_type_re_active_iterate

#define unit_type_re_active_iterate (   _p)
Value:
{ \
if (!_p->ruledit_disabled) {
#define unit_type_iterate(_p)
Definition: unittype.h:785

Definition at line 796 of file unittype.h.

◆ unit_type_re_active_iterate_end

#define unit_type_re_active_iterate_end
Value:
} \
} \
unit_type_iterate_end;

Definition at line 801 of file unittype.h.

◆ UTYF_LAST_USER_FLAG

#define UTYF_LAST_USER_FLAG   UTYF_USER_FLAG_45

Definition at line 302 of file unittype.h.

◆ utype_class

#define utype_class (   _t_)    (_t_)->uclass

Definition at line 691 of file unittype.h.

◆ utype_fuel

#define utype_fuel (   ptype)    (ptype)->fuel

Definition at line 772 of file unittype.h.

Typedef Documentation

◆ role_unit_callback

typedef bool(* role_unit_callback) (struct unit_type *ptype, void *data)

Definition at line 664 of file unittype.h.

Enumeration Type Documentation

◆ hut_behavior

Enumerator
HUT_NORMAL 
HUT_NOTHING 
HUT_FRIGHTEN 

Definition at line 113 of file unittype.h.

◆ move_level

enum move_level
Enumerator
MOVE_NONE 
MOVE_PARTIAL 
MOVE_FULL 

Definition at line 115 of file unittype.h.

Function Documentation

◆ best_role_unit()

struct unit_type* best_role_unit ( const struct city pcity,
int  role 
)

Return "best" unit this city can build, with given role/flag.

Returns nullptr if none match. "Best" means highest unit type id.

Definition at line 1920 of file unittype.cpp.

Referenced by city_choose_build_default(), contemplate_new_city(), dai_choose_diplomat_defensive(), dai_choose_diplomat_offensive(), dai_choose_help_wonder(), dai_choose_trade_route(), dai_city_choose_build(), and domestic_advisor_choose_build().

◆ best_role_unit_for_player()

struct unit_type* best_role_unit_for_player ( const struct player pplayer,
int  role 
)

Return "best" unit the player can build, with given role/flag.

Returns nullptr if none match. "Best" means highest unit type id.

TODO: Cache the result per player?

Definition at line 1950 of file unittype.cpp.

Referenced by api_find_role_unit_type(), calculate_city_clusters(), city_gold_worth(), dai_wonder_city_distance(), find_best_city_placement(), find_something_to_kill(), and place_partisans().

◆ BV_DEFINE() [1/3]

BV_DEFINE ( bv_unit_classes  ,
UCL_LAST   
)

◆ BV_DEFINE() [2/3]

BV_DEFINE ( bv_unit_type_roles  ,
L_MAX   
)

◆ BV_DEFINE() [3/3]

BV_DEFINE ( bv_unit_types  ,
U_LAST   
)

◆ can_player_build_unit_direct()

bool can_player_build_unit_direct ( const struct player p,
const struct unit_type punittype 
)

Whether player can build given unit somewhere, ignoring whether unit is obsolete and assuming the player has a coastal city.

Definition at line 1628 of file unittype.cpp.

Referenced by adv_data_phase_init(), can_city_build_unit_direct(), can_city_build_unit_now(), can_player_build_unit_later(), can_player_build_unit_now(), can_upgrade_unittype(), clipboard_copy_production(), and find_a_unit_type().

◆ can_player_build_unit_later()

bool can_player_build_unit_later ( const struct player p,
const struct unit_type punittype 
)

Whether player can eventually build given unit somewhere – ie, returns TRUE if unit is available with current tech OR will be available with future tech.

Returns FALSE if unit is obsolete.

Definition at line 1761 of file unittype.cpp.

Referenced by can_city_build_unit_later(), and collect_eventually_buildable_targets().

◆ can_player_build_unit_now()

bool can_player_build_unit_now ( const struct player p,
const struct unit_type punittype 
)

Whether player can build given unit somewhere; returns FALSE if unit is obsolete.

Definition at line 1742 of file unittype.cpp.

Referenced by best_role_unit_for_player(), collect_eventually_buildable_targets(), first_role_unit_for_player(), and mr_menu::update_airlift_menu().

◆ can_unit_act_when_ustate_is()

bool can_unit_act_when_ustate_is ( const struct unit_type punit_type,
const enum ustate_prop  prop,
const bool  is_there 
)

Return TRUE iff there exists an (action enabler controlled) action that a unit of the type punit_type can perform while its unit state property prop has the value is_there.

Definition at line 733 of file unittype.cpp.

Referenced by pf_action_possible().

◆ can_upgrade_unittype()

const struct unit_type* can_upgrade_unittype ( const struct player pplayer,
const struct unit_type punittype 
)

Return whether this player can upgrade this unit type (to any other unit type).

Returns nullptr if no upgrade is possible.

Definition at line 1379 of file unittype.cpp.

Referenced by action_not_enabled_reason(), count_my_units(), dai_upgrade_units(), do_unit_upgrade(), do_upgrade_effects(), get_units_upgrade_info(), get_units_view_data(), handle_unit_action_query(), handle_unit_type_upgrade(), upgrade_canvas_clipboard(), and units_view::upgrade_units().

◆ can_utype_do_act_if_tgt_diplrel()

bool can_utype_do_act_if_tgt_diplrel ( const struct unit_type punit_type,
const action_id  act_id,
const int  prop,
const bool  is_there 
)

Return TRUE iff the given (action enabler controlled) action can be performed by a unit of the given type while the given property of its owner's diplomatic relationship to the target's owner has the given value.

Note: since this only supports the local range no information for other ranges are stored in dipl_rel_action_cache.

Definition at line 784 of file unittype.cpp.

Referenced by action_not_enabled_reason(), city_can_be_built_here(), helptext_unit(), and need_war_player_hlp().

◆ FC_STATIC_ASSERT()

FC_STATIC_ASSERT ( L_LAST - L_FIRST<=  L_MAX,
too_many_unit_roles   
)

◆ first_role_unit_for_player()

struct unit_type* first_role_unit_for_player ( const struct player pplayer,
int  role 
)

Return first unit the player can build, with given role/flag.

Returns nullptr if none match. Used eg when placing starting units.

Definition at line 1976 of file unittype.cpp.

Referenced by building_advisor(), and crole_to_unit_type().

◆ get_role_unit()

◆ num_role_units()

◆ role_unit_precalcs()

void role_unit_precalcs ( )

Initialize; it is safe to call this multiple times (e.g., if units have changed due to rulesets in client).

Definition at line 1838 of file unittype.cpp.

Referenced by client_state(), and load_rulesetdir().

◆ role_unit_precalcs_free()

void role_unit_precalcs_free ( )

Free memory allocated by role_unit_precalcs().

Definition at line 1823 of file unittype.cpp.

Referenced by game_ruleset_free(), and role_unit_precalcs().

◆ role_units_iterate_backwards()

struct unit_type* role_units_iterate_backwards ( int  role,
role_unit_callback  cb,
void *  data 
)

Iterate over all the role units and feed them to callback, starting from the last one.

Once callback returns TRUE, no further units are feeded to it and we return the unit that caused callback to return TRUE

Definition at line 1883 of file unittype.cpp.

Referenced by dai_role_utype_for_terrain_class().

◆ role_units_translations()

bool role_units_translations ( QString &  astr,
int  flag,
bool  alts 
)

Return a string with all the names of units with this flag.

If "alts" is set, separate with "or", otherwise "and". Return FALSE if no unit with this flag exists.

Definition at line 1343 of file unittype.cpp.

Referenced by illegal_action_msg(), req_text_insert(), and request_unit_goto().

◆ set_unit_class_caches()

void set_unit_class_caches ( struct unit_class pclass)

Set caches for unit class.

Definition at line 2349 of file unittype.cpp.

Referenced by handle_rulesets_ready(), and load_rulesetdir().

◆ set_unit_move_type()

void set_unit_move_type ( struct unit_class puclass)

Set move_type for unit class.

Definition at line 2504 of file unittype.cpp.

Referenced by handle_rulesets_ready().

◆ set_unit_type_caches()

void set_unit_type_caches ( struct unit_type ptype)

Set caches for unit types.

Definition at line 2408 of file unittype.cpp.

Referenced by handle_rulesets_ready(), and load_rulesetdir().

◆ set_user_unit_class_flag_name()

void set_user_unit_class_flag_name ( enum unit_class_flag_id  id,
const char *  name,
const char *  helptxt 
)

Sets user defined name for unit class flag.

Definition at line 1493 of file unittype.cpp.

Referenced by handle_ruleset_unit_class_flag(), load_unit_names(), and rscompat_names().

◆ set_user_unit_type_flag_name()

void set_user_unit_type_flag_name ( enum unit_type_flag_id  id,
const char *  name,
const char *  helptxt 
)

Sets user defined name for unit flag.

Definition at line 1556 of file unittype.cpp.

Referenced by handle_ruleset_unit_flag(), load_unit_names(), and rscompat_names().

◆ uclass_by_number()

struct unit_class* uclass_by_number ( const Unit_Class_id  id)

Returns unit class pointer for an ID value.

Definition at line 2129 of file unittype.cpp.

Referenced by handle_ruleset_unit(), handle_ruleset_unit_class(), and universal_value_initial().

◆ uclass_count()

Unit_Class_id uclass_count ( )

Return the unit_class count.

Definition at line 2101 of file unittype.cpp.

Referenced by helptext_extra(), helptext_terrain(), helptext_unit(), and req_text_insert().

◆ uclass_has_flag()

◆ uclass_name_translation()

const char* uclass_name_translation ( const struct unit_class pclass)

Return the (translated) name of the unit class.

You don't have to free the return pointer.

Definition at line 1324 of file unittype.cpp.

Referenced by can_unit_move_to_tile_with_notify(), helptext_extra(), helptext_government(), helptext_terrain(), helptext_unit(), req_text_insert(), and universal_name_translation().

◆ uclass_number()

Unit_Class_id uclass_number ( const struct unit_class pclass)

Return the unit_class index.

Definition at line 2120 of file unittype.cpp.

Referenced by send_ruleset_unit_classes(), send_ruleset_units(), and universal_number().

◆ uclass_rule_name()

const char* uclass_rule_name ( const struct unit_class pclass)

Return the (untranslated) rule name of the unit class.

You don't have to free the return pointer.

Definition at line 1333 of file unittype.cpp.

Referenced by load_ruleset_units(), rscompat_optional_capabilities(), sanity_check_ruleset_data(), save_terrain_ruleset(), save_uclass_vec(), save_units_ruleset(), unit_class_by_rule_name(), universal_kind_values(), and universal_rule_name().

◆ unit_build_shield_cost()

int unit_build_shield_cost ( const struct city pcity,
const struct unit punit 
)

Returns the number of shields it takes to build this unit.

Definition at line 1176 of file unittype.cpp.

Referenced by city_gold_worth(), and city_incite_cost().

◆ unit_build_shield_cost_base()

◆ unit_can_take_over()

bool unit_can_take_over ( const struct unit punit)

Return whether the unit can take over enemy cities.

Definition at line 203 of file unittype.cpp.

Referenced by assess_danger(), dai_rampage_want(), dai_should_we_air_attack_tile(), find_something_to_kill(), kill_something_with(), and unit_conquer_city().

◆ unit_class_array_first()

struct unit_class* unit_class_array_first ( )

Return the first item of unit_classes.

Definition at line 2079 of file unittype.cpp.

◆ unit_class_array_last()

const struct unit_class* unit_class_array_last ( )

Return the last item of unit_classes.

Definition at line 2090 of file unittype.cpp.

◆ unit_class_by_rule_name()

struct unit_class* unit_class_by_rule_name ( const char *  s)

Returns the unit class that has the given (untranslated) rule name.

Returns nullptr if none match.

Definition at line 1463 of file unittype.cpp.

Referenced by load_ruleset_terrain(), load_ruleset_units(), and universal_by_number().

◆ unit_class_flag_helptxt()

const char* unit_class_flag_helptxt ( enum unit_class_flag_id  id)

Return the (untranslated) help text of the user unit class flag.

Definition at line 1534 of file unittype.cpp.

Referenced by helptext_unit(), save_units_ruleset(), and send_ruleset_unit_classes().

◆ unit_class_flags_free()

void unit_class_flags_free ( )

Frees the memory associated with all unit class flags.

Definition at line 2067 of file unittype.cpp.

Referenced by game_ruleset_free().

◆ unit_class_get()

◆ unit_classes_free()

void unit_classes_free ( )

Free resources allocated for unit classes.

Definition at line 2179 of file unittype.cpp.

Referenced by game_ruleset_free().

◆ unit_classes_init()

void unit_classes_init ( )

Initialize unit_class structures.

Definition at line 2159 of file unittype.cpp.

Referenced by game_ruleset_init().

◆ unit_has_type_flag()

◆ unit_has_type_role()

bool unit_has_type_role ( const struct unit punit,
enum unit_role_id  role 
)

Return whether the unit has the given role.

Definition at line 195 of file unittype.cpp.

Referenced by dai_fill_unit_param(), dai_hunter_qualify(), dai_manage_barbarian_leader(), dai_manage_unit(), dai_spend_gold(), dai_unit_make_homecity(), and kill_unit().

◆ unit_name_translation()

◆ unit_pop_value()

int unit_pop_value ( const struct unit punit)

How much population is put to building this unit.

Definition at line 1239 of file unittype.cpp.

Referenced by action_not_enabled_reason(), city_add_unit(), and city_desirability().

◆ unit_rule_name()

◆ unit_type_action_cache_init()

void unit_type_action_cache_init ( )

Cache what unit types may be allowed do what actions, both at all and when certain properties are true.

Definition at line 722 of file unittype.cpp.

Referenced by load_rulesetdir().

◆ unit_type_action_cache_set()

void unit_type_action_cache_set ( struct unit_type ptype)

Cache if any action may be possible for a unit of the type putype given the property tested for.

Since a it could be ignored both present and !present must be checked.

Definition at line 710 of file unittype.cpp.

Referenced by handle_rulesets_ready(), and unit_type_action_cache_init().

◆ unit_type_array_first()

struct unit_type* unit_type_array_first ( )

Return the first item of unit_types.

Definition at line 52 of file unittype.cpp.

Referenced by api_edit_create_unit_full().

◆ unit_type_array_last()

const struct unit_type* unit_type_array_last ( )

Return the last item of unit_types.

Definition at line 63 of file unittype.cpp.

Referenced by api_edit_create_unit_full().

◆ unit_type_by_rule_name()

struct unit_type* unit_type_by_rule_name ( const char *  name)

Returns the unit type that has the given (untranslated) rule name.

Returns nullptr if none match.

Definition at line 1444 of file unittype.cpp.

Referenced by api_find_unit_type_by_name(), tab_unit::initialize_new_utype(), lookup_unit_list(), lookup_unit_type(), tab_unit::select_unit(), sg_load_player_units(), and universal_by_number().

◆ unit_type_by_translated_name()

struct unit_type* unit_type_by_translated_name ( const char *  name)

Returns the unit type that has the given (translated) name.

Returns nullptr if none match.

Definition at line 1427 of file unittype.cpp.

Referenced by help_dialog::make_tree(), and help_widget::set_topic_unit().

◆ unit_type_flag_helptxt()

const char* unit_type_flag_helptxt ( enum unit_type_flag_id  id)

Return the (untranslated) helptxt of the user unit flag.

Definition at line 1589 of file unittype.cpp.

Referenced by helptext_unit(), save_units_ruleset(), and send_ruleset_units().

◆ unit_type_flags_free()

void unit_type_flags_free ( )

Frees the memory associated with all unit type flags.

Definition at line 2055 of file unittype.cpp.

Referenced by game_ruleset_free().

◆ unit_type_get()

const struct unit_type* unit_type_get ( const struct unit punit)

Return the unit type for this unit.

Definition at line 114 of file unittype.cpp.

Referenced by action_auto_perf_unit_sel(), action_dice_roll_odds(), action_get_act_time(), action_maybe_possible_actor_unit(), action_mp_full_makes_legal(), action_not_enabled_reason(), action_success_actor_consume(), action_success_target_pay_mp(), adv_danger_at(), adv_data_phase_init(), adv_unit_att_rating(), adv_unit_def_rating_basic(), adv_unit_move(), amphibious_move_scope(), api_edit_create_unit_full(), are_road_reqs_fulfilled(), assess_danger(), assess_danger_unit(), auto_settlers_player(), base_assess_defense_unit(), base_get_defense_power(), base_transporter_for_unit(), calculate_want_for_paratrooper(), can_be_irrigated(), can_build_base(), can_build_extra(), can_player_see_hypotetic_units_at(), can_player_see_unit_at(), can_remove_extra(), can_unit_do_activity_targeted_at(), can_unit_do_autosettlers(), can_unit_do_connect(), can_unit_exist_at_tile(), can_unit_move_to_tile_with_notify(), can_unit_survive_at_tile(), can_unit_transport(), can_unit_unload(), city_build(), city_can_be_built_here(), city_distribute_surplus_shields(), city_gold_worth(), city_unit_present(), city_unit_slots_available(), city_unit_supported(), city_unit_unhappiness(), city_units_upkeep(), clipboard_copy_production(), contemplate_terrain_improvements(), converting_fuel_rescue(), could_unit_load(), count_my_units(), cr_entry_attack(), cr_entry_defense(), create_extra(), units_select::create_pixmap(), dai_action_value_unit_vs_city(), dai_airlift(), dai_consider_tile_dangerous(), dai_data_phase_begin(), dai_diplomat_bribe_nearby(), dai_evaluate_tile_for_air_attack(), dai_fill_unit_param(), dai_find_strategic_airbase(), dai_gothere_bodyguard(), dai_hunter_juiciness(), dai_hunter_manage(), dai_hunter_missile_want(), dai_hunter_try_launch(), dai_manage_airunit(), dai_manage_diplomat(), dai_manage_hitpoint_recovery(), dai_manage_military(), dai_manage_paratrooper(), dai_manage_unit(), dai_military_attack(), dai_military_findjob(), dai_rampage_want(), dai_set_defenders(), dai_unit_make_homecity(), dai_unit_move(), dai_unit_new_task(), dai_upgrade_units(), dai_war_desire(), defense_multiplication(), destroy_extra(), diplomat_bribe(), diplomat_embassy(), diplomat_escape_full(), diplomat_get_tech(), diplomat_investigate(), diplomat_success_vs_defender(), disband_all_units(), do_capture_units(), do_heal_unit(), do_move_unit(), do_paradrop(), do_unit_act_sel_vs(), do_unit_upgrade(), do_upgrade_effects(), does_nation_block_action(), does_terrain_block_action(), edit_buffer_copy(), editor_grab_tool(), explain_why_no_action_enabled(), explorer_desirable(), freeciv::layer_grid::fill_sprite_array(), freeciv::layer_units::fill_sprite_array(), find_best_focus_candidate(), find_best_tile_to_paradrop_to(), find_nearest_safe_city(), find_nearest_unit(), find_something_to_kill(), get_activity_rate(), get_attack_power(), get_economy_report_units_data(), get_fortified_defense_power(), get_modified_firepower(), get_total_attack_power(), get_total_defense_power(), get_transporter_capacity(), get_unit_bonus(), get_unit_vision_at(), get_units_upgrade_info(), get_units_view_data(), goods_can_be_provided(), goto_fill_parameter_base(), handle_edit_unit(), handle_edit_unit_remove(), handle_unit_action_query(), handle_unit_bombard_info(), handle_unit_combat_info(), handle_unit_packet_common(), handle_unit_type_upgrade(), hp_gain_coord(), illegal_action_msg(), illegal_action_pay_price(), immediate_destination(), invasion_funct(), is_action_enabled_unit_on_city_full(), is_action_enabled_unit_on_self_full(), is_action_enabled_unit_on_tile_full(), is_action_enabled_unit_on_unit_full(), is_action_enabled_unit_on_units_full(), is_action_possible_on_unit(), is_attack_unit(), is_city_surrounded_by_our_spies(), is_hiding_unit(), is_losing_hp(), is_my_turn(), is_possible_base_fuel(), is_req_active(), is_square_threatened(), is_unit_being_refueled(), is_unit_reachable_at(), is_unit_reachable_by_unit(), key_unit_action_select(), kill_something_with(), look_for_charge(), map_change_seen(), map_hide_tile(), map_move_cost_unit(), map_show_tile(), maybe_become_veteran_real(), maybe_claim_base(), need_war_player_hlp(), notify_unit_experience(), package_short_unit(), package_unit(), units_select::paint(), paste_tile(), pf_attack_possible(), pf_reverse_map_unit_pos(), pft_fill_unit_attack_param(), pft_fill_unit_default_parameter(), pft_fill_unit_overlap_param(), pft_fill_unit_parameter(), player_restore_units(), popup_info_text(), quickselect(), remove_city(), request_unit_select(), request_units_return(), resolve_city_emergency(), sg_load_player_unit(), sg_load_player_units(), sg_load_sanitycheck(), mr_menu::slot_build_city(), spy_nuke_city(), spy_steal_some_maps(), tai_tile_worker_task_select(), texai_tile_worker_task_select(), texai_unit_update(), transfer_unit(), transform_unit(), unit_activity_astr(), unit_att_rating_now(), unit_being_aggressive(), unit_bombs_unit(), unit_bribe_cost(), unit_build_shield_cost(), unit_build_shield_cost_base(), unit_can_convert(), unit_can_do_action(), unit_can_do_action_result(), unit_can_est_trade_route_here(), unit_can_help_build_wonder_here(), unit_can_take_over(), unit_change_homecity_handling(), unit_change_owner(), unit_class_get(), unit_conquer_city(), unit_convert(), unit_def_rating(), unit_description(), unit_do_help_build(), unit_food_upkeep(), unit_foodbox_cost(), unit_has_type_flag(), unit_has_type_role(), unit_move(), unit_move_consequences(), unit_move_rate(), unit_name_translation(), unit_occupies_tile(), unit_pays_mp_for_action(), unit_pop_value(), unit_restore_hitpoints(), unit_rule_name(), unit_shield_value(), unit_transport_check(), unit_veteran_level_and_bonus(), unit_veteran_level_string(), unit_virtual_create(), units_can_convert(), hud_units::update_actions(), upgrade_unit_order_targets(), utype_player_already_has_this_unique(), and wipe_unit_full().

◆ unit_types_free()

void unit_types_free ( )

Frees the memory associated with all unit types.

Definition at line 2041 of file unittype.cpp.

Referenced by game_ruleset_free().

◆ unit_types_init()

void unit_types_init ( )

Inialize unit-type structures.

Definition at line 2001 of file unittype.cpp.

Referenced by game_ruleset_init().

◆ unit_upgrade_price()

int unit_upgrade_price ( const struct player pplayer,
const struct unit_type from,
const struct unit_type to 
)

Return the cost (gold) of upgrading a single unit of the specified type to the new type.

This price could (but currently does not) depend on other attributes (like nation or government type) of the player the unit belongs to.

Definition at line 1407 of file unittype.cpp.

Referenced by action_not_enabled_reason(), dai_upgrade_units(), do_unit_upgrade(), get_units_upgrade_info(), handle_unit_action_query(), handle_unit_type_upgrade(), transform_unit(), and units_view::upgrade_units().

◆ user_unit_class_flags_init()

void user_unit_class_flags_init ( )

Initialize user unit class flags.

Definition at line 1481 of file unittype.cpp.

Referenced by game_ruleset_init().

◆ user_unit_type_flags_init()

void user_unit_type_flags_init ( )

Initialize user unit type flags.

Definition at line 1544 of file unittype.cpp.

Referenced by game_ruleset_init().

◆ utype_acts_hostile()

bool utype_acts_hostile ( const struct unit_type putype)

Return TRUE iff units of this type can do hostile actions controlled by generalized (ruleset defined) action enablers.

Definition at line 432 of file unittype.cpp.

Referenced by assess_danger(), dai_hunter_juiciness(), dai_hunter_manage(), find_something_to_kill(), goto_fill_parameter_base(), and is_square_threatened().

◆ utype_ai_data()

void* utype_ai_data ( const struct unit_type ptype,
const struct ai_type ai 
)

Return pointer to ai data of given unit type and ai type.

Definition at line 2332 of file unittype.cpp.

Referenced by assess_danger(), dai_can_unit_type_follow_unit_type(), dai_hunter_guess_best(), dai_unit_defence_desirability(), dai_units_ruleset_close(), and dai_units_ruleset_init().

◆ utype_build_shield_cost()

◆ utype_build_shield_cost_base()

int utype_build_shield_cost_base ( const struct unit_type punittype)

◆ utype_buy_gold_cost()

int utype_buy_gold_cost ( const struct city pcity,
const struct unit_type punittype,
int  shields_in_stock 
)

Returns the amount of gold it takes to rush this unit.

Definition at line 1193 of file unittype.cpp.

Referenced by city_gold_worth(), and city_production_buy_gold_cost().

◆ utype_by_number()

◆ utype_can_do_act_if_tgt_citytile()

bool utype_can_do_act_if_tgt_citytile ( const struct unit_type punit_type,
const action_id  act_id,
const enum citytile_type  prop,
const bool  is_there 
)

Returns TRUE iff the unit type can do the specified (action enabler controlled) action while its target's CityTile property state has the value is_there.

Definition at line 763 of file unittype.cpp.

◆ utype_can_do_act_when_ustate()

bool utype_can_do_act_when_ustate ( const struct unit_type punit_type,
const action_id  act_id,
const enum ustate_prop  prop,
const bool  is_there 
)

Return TRUE iff the unit type can do the specified (action enabler controlled) action while its unit state property prop has the value is_there.

Definition at line 746 of file unittype.cpp.

Referenced by action_not_enabled_reason(), can_attack_from_non_native(), can_unit_act_when_ustate_is(), city_can_be_built_here(), explain_why_no_action_enabled(), and illegal_action_msg().

◆ utype_can_do_action()

bool utype_can_do_action ( const struct unit_type putype,
const action_id  act_id 
)

◆ utype_can_do_action_result()

bool utype_can_do_action_result ( const struct unit_type putype,
enum action_result  result 
)

Return TRUE iff units of the given type can do any enabler controlled action with the specified action result.

Note that a specific unit in a specific situation still may be unable to perform the specified action.

Definition at line 402 of file unittype.cpp.

Referenced by aia_utype_is_considered_caravan_trade(), aia_utype_is_considered_spy(), aia_utype_is_considered_spy_vs_city(), aia_utype_is_considered_worker(), can_attack_non_native(), can_player_build_unit_direct(), dai_fill_unit_param(), get_fortified_defense_power(), helptext_unit(), look_for_charge(), city_production_delegate::paint(), unit_can_do_action_result(), utype_can_take_over(), and utype_is_cityfounder().

◆ utype_can_freely_load()

bool utype_can_freely_load ( const struct unit_type pcargotype,
const struct unit_type ptranstype 
)

Return TRUE iff the given cargo type has no restrictions on when it can load onto the given transporter.

(Does not check that cargo is valid for transport!)

Definition at line 227 of file unittype.cpp.

Referenced by could_unit_load(), helptext_unit(), and is_possible_base_fuel().

◆ utype_can_freely_unload()

bool utype_can_freely_unload ( const struct unit_type pcargotype,
const struct unit_type ptranstype 
)

Return TRUE iff the given cargo type has no restrictions on when it can unload from the given transporter.

(Does not check that cargo is valid for transport!)

Definition at line 239 of file unittype.cpp.

Referenced by base_transporter_for_unit(), can_unit_unload(), helptext_unit(), pf_danger_map_iterate(), pf_fuel_map_iterate(), and pf_normal_map_new().

◆ utype_can_take_over()

bool utype_can_take_over ( const struct unit_type punittype)

Return whether the unit type can take over enemy cities.

Definition at line 215 of file unittype.cpp.

Referenced by process_attacker_want(), and unit_can_take_over().

◆ utype_count()

Unit_type_id utype_count ( )

◆ utype_happy_cost()

int utype_happy_cost ( const struct unit_type ut,
const struct player pplayer 
)

Return the "happy cost" (the number of citizens who are discontented) for this unit.

Definition at line 167 of file unittype.cpp.

Referenced by city_unit_unhappiness(), and resolve_city_emergency().

◆ utype_has_flag()

◆ utype_has_role()

bool utype_has_role ( const struct unit_type punittype,
int  role 
)

Return whether the given unit type has the role.

Roles are like flags but have no meaning except to the AI.

Definition at line 186 of file unittype.cpp.

Referenced by api_methods_unit_type_has_role(), can_player_build_unit_direct(), dai_choose_bodyguard(), dai_process_defender_want(), load_ruleset_units(), role_unit_precalcs(), rs_barbarian_units(), save_units_ruleset(), unit_has_type_role(), and unit_role_defender().

◆ utype_index()

◆ utype_is_cityfounder()

bool utype_is_cityfounder ( const struct unit_type utype)

Is cityfounder type.

Definition at line 2549 of file unittype.cpp.

Referenced by dai_spend_gold(), and dai_war_desire().

◆ utype_is_consumed_by_action()

bool utype_is_consumed_by_action ( const struct action paction,
const struct unit_type utype 
)

◆ utype_is_consumed_by_action_result()

bool utype_is_consumed_by_action_result ( enum action_result  result,
const struct unit_type utype 
)

Returns TRUE iff performing an action with the specified action result will consume an actor unit of the specified type.

Definition at line 947 of file unittype.cpp.

Referenced by best_role_unit(), dai_choose_attacker_air(), dai_choose_paratrooper(), dai_hunter_guess_best(), and city_production_delegate::paint().

◆ utype_is_moved_to_tgt_by_action()

bool utype_is_moved_to_tgt_by_action ( const struct action paction,
const struct unit_type utype 
)

Returns TRUE iff successfully performing the specified action always will move the actor unit of the specified type to the target's tile.

Definition at line 969 of file unittype.cpp.

Referenced by adv_unit_move(), freeciv::detail::vertex::child_for_action(), dai_action_value_unit_vs_city(), dai_unit_move(), illegal_action_pay_price(), unit_order_list_is_sane(), upgrade_unit_order_targets(), utype_pays_for_regular_move_to_tgt(), and utype_pays_mp_for_action_estimate().

◆ utype_is_unmoved_by_action()

bool utype_is_unmoved_by_action ( const struct action paction,
const struct unit_type utype 
)

Returns TRUE iff successfully performing the specified action never will move the actor unit from its current tile.

Definition at line 1009 of file unittype.cpp.

Referenced by dai_action_value_unit_vs_city(), unit_order_list_is_sane(), and upgrade_unit_order_targets().

◆ utype_may_act_at_all()

bool utype_may_act_at_all ( const struct unit_type putype)

◆ utype_may_act_move_frags()

bool utype_may_act_move_frags ( const struct unit_type punit_type,
const action_id  act_id,
const int  move_fragments 
)

Return TRUE iff the given (action enabler controlled) action may be performed by a unit of the given type that has the given number of move fragments left.

Note: Values aren't cached. If a performance critical user appears it would be a good idea to cache the (merged) ranges of move fragments where a unit of the given type can perform the specified action.

Definition at line 804 of file unittype.cpp.

Referenced by action_mp_full_makes_legal().

◆ utype_may_act_tgt_city_tile()

bool utype_may_act_tgt_city_tile ( const struct unit_type punit_type,
const action_id  act_id,
const enum citytile_type  prop,
const bool  is_there 
)

Return TRUE iff the given (action enabler controlled) action may be performed by a unit of the given type if the target tile has the given property.

Note: Values aren't cached. If a performance critical user appears it would be a good idea to cache the result.

Definition at line 870 of file unittype.cpp.

Referenced by action_not_enabled_reason().

◆ utype_move_type()

enum unit_move_type utype_move_type ( const struct unit_type punittype)

Return move type of the unit type.

Definition at line 1239 of file unittype.cpp.

Referenced by editor_grab_tool(), and quickselect().

◆ utype_name_translation()

const char* utype_name_translation ( const struct unit_type punittype)

Return the (translated) name of the unit type.

You don't have to free the return pointer.

Definition at line 1256 of file unittype.cpp.

Referenced by api_methods_unit_type_name_translation(), boot_help_texts(), can_unit_move_to_tile_with_notify(), city_build_unit(), disband_all_units(), disband_city(), eco_report::disband_units(), units_view::disband_units(), do_unit_upgrade(), do_upgrade_effects(), editor_tool_get_value_name(), explain_why_no_action_enabled(), get_tooltip_unit(), handle_edit_unit_create(), handle_edit_unit_remove(), handle_unit_type_upgrade(), helptext_building(), helptext_government(), helptext_nation(), helptext_unit(), illegal_action_msg(), insert_allows(), manual_command(), research_diagram::mousePressEvent(), city_production_delegate::paint(), city_production_model::populate(), popup_info_text(), really_handle_city_buy(), req_text_insert(), research_tech_lost(), role_units_translations(), rscompat_optional_capabilities(), help_widget::set_topic_tech(), help_widget::set_topic_unit(), sg_load_sanitycheck(), try_to_save_unit(), unit_convert(), unit_description(), unit_hud_selector::unit_hud_selector(), unit_lost_with_transport(), unit_name_translation(), unit_type_by_translated_name(), universal_name_translation(), mr_menu::update_airlift_menu(), eco_report::update_report(), units_view::update_units(), units_view::update_waiting(), upgrade_unit_prod(), units_view::upgrade_units(), utype_values_translation(), worklist_change_build_target(), and worklist_item_postpone_req_vec().

◆ utype_number()

◆ utype_pays_for_regular_move_to_tgt()

bool utype_pays_for_regular_move_to_tgt ( const struct action paction,
const struct unit_type utype 
)

Returns TRUE iff successfully performing the specified action always will cost the actor unit of the specified type the move fragments it would take to perform a regular move to the target's tile.

This cost is added to the cost of successfully performing the action.

Definition at line 1052 of file unittype.cpp.

Referenced by dai_action_value_unit_vs_city(), and utype_pays_mp_for_action_estimate().

◆ utype_pays_mp_for_action_base()

int utype_pays_mp_for_action_base ( const struct action paction,
const struct unit_type putype 
)

Returns the amount of movement points successfully performing the specified action will consume in the actor unit type without taking effects or regular moves into account.

Definition at line 1083 of file unittype.cpp.

Referenced by helptext_unit(), unit_pays_mp_for_action(), and utype_pays_mp_for_action_estimate().

◆ utype_pays_mp_for_action_estimate()

int utype_pays_mp_for_action_estimate ( const struct action paction,
const struct unit_type putype,
const struct player act_player,
const struct tile act_tile,
const struct tile tgt_tile 
)

Returns an estimate of the amount of movement points successfully performing the specified action will consume in the actor unit type.

Definition at line 1104 of file unittype.cpp.

Referenced by dai_evaluate_tile_for_air_attack().

◆ utype_player_already_has_this_unique()

bool utype_player_already_has_this_unique ( const struct player pplayer,
const struct unit_type putype 
)

Returns TRUE iff the unit type is unique and the player already has one.

Definition at line 1599 of file unittype.cpp.

Referenced by action_not_enabled_reason(), can_player_build_unit_direct(), diplomat_bribe(), do_capture_units(), transfer_unit(), unit_change_homecity_handling(), and unit_change_owner().

◆ utype_pop_value()

int utype_pop_value ( const struct unit_type punittype)

How much city shrinks when it builds unit of this type.

Definition at line 1231 of file unittype.cpp.

Referenced by action_actor_utype_hard_reqs_ok_full(), city_build_unit(), city_production_build_units(), helptext_unit(), and unit_pop_value().

◆ utype_rule_name()

◆ utype_set_ai_data()

void utype_set_ai_data ( struct unit_type ptype,
const struct ai_type ai,
void *  data 
)

Attach ai data to unit type.

Definition at line 2340 of file unittype.cpp.

Referenced by dai_units_ruleset_close(), and dai_units_ruleset_init().

◆ utype_upkeep_cost()

int utype_upkeep_cost ( const struct unit_type ut,
struct player pplayer,
Output_type_id  otype 
)

◆ utype_values_string()

const char* utype_values_string ( const struct unit_type punittype)

Return string describing unit type values.

String is static buffer that gets reused when function is called again.

Definition at line 1292 of file unittype.cpp.

Referenced by utype_values_translation().

◆ utype_values_translation()

const char* utype_values_translation ( const struct unit_type punittype)

Return string with translated unit name and list of its values.

String is static buffer that gets reused when function is called again.

Definition at line 1310 of file unittype.cpp.

Referenced by name_and_sort_items(), and city_dialog::update_improvements().

◆ utype_veteran_has_power_bonus()

bool utype_veteran_has_power_bonus ( const struct unit_type punittype)

Return whether this unit type's veteran system, if any, confers a power factor bonus at any level (it could just add extra moves).

Definition at line 2267 of file unittype.cpp.

Referenced by helptext_unit().

◆ utype_veteran_level()

◆ utype_veteran_levels()

int utype_veteran_levels ( const struct unit_type punittype)

◆ utype_veteran_name_translation()

const char* utype_veteran_name_translation ( const struct unit_type punittype,
int  level 
)

Return translated name of the given veteran level.

nullptr if this unit type doesn't have different veteran levels.

Definition at line 2239 of file unittype.cpp.

Referenced by popup_info_text(), and unit_description().

◆ utype_veteran_system()

const struct veteran_system* utype_veteran_system ( const struct unit_type punittype)

Return veteran system used for this unit type.

Definition at line 2208 of file unittype.cpp.

Referenced by helptext_government(), maybe_become_veteran_real(), notify_unit_experience(), transform_unit(), utype_veteran_level(), and utype_veteran_levels().

◆ veteran_system_definition()

void veteran_system_definition ( struct veteran_system vsystem,
int  level,
const char *  vlist_name,
int  vlist_power,
int  vlist_move,
int  vlist_raise,
int  vlist_wraise 
)

Fill veteran level in given veteran system with given information.

Definition at line 2310 of file unittype.cpp.

Referenced by handle_ruleset_game(), handle_ruleset_unit(), and load_ruleset_veteran().

◆ veteran_system_destroy()

void veteran_system_destroy ( struct veteran_system vsystem)

Free veteran system.

Definition at line 2298 of file unittype.cpp.

Referenced by game_ruleset_free(), and unit_type_free().

◆ veteran_system_new()

struct veteran_system* veteran_system_new ( int  count)

Allocate new veteran system structure with given veteran level count.

Definition at line 2281 of file unittype.cpp.

Referenced by handle_ruleset_game(), handle_ruleset_unit(), and load_ruleset_veteran().