Freeciv-3.2
Loading...
Searching...
No Matches
Macros | Functions
citizens.h File Reference
#include "shared.h"
#include "fc_types.h"

Go to the source code of this file.

Macros

#define citizens_iterate(_pcity, _pslot, _nationality)
 
#define citizens_iterate_end    } player_slots_iterate_end;
 
#define citizens_foreign_iterate(_pcity, _pslot, _nationality)
 
#define citizens_foreign_iterate_end    } citizens_iterate_end;
 

Functions

void citizens_init (struct city *pcity)
 
void citizens_free (struct city *pcity)
 
citizens citizens_nation_get (const struct city *pcity, const struct player_slot *pslot)
 
citizens citizens_nation_foreign (const struct city *pcity)
 
void citizens_nation_set (struct city *pcity, const struct player_slot *pslot, citizens count)
 
void citizens_nation_add (struct city *pcity, const struct player_slot *pslot, int add)
 
void citizens_nation_move (struct city *pcity, const struct player_slot *pslot_from, const struct player_slot *pslot_to, int move)
 
citizens citizens_count (const struct city *pcity)
 
struct player_slotcitizens_random (const struct city *pcity)
 

Macro Definition Documentation

◆ citizens_foreign_iterate

#define citizens_foreign_iterate (   _pcity,
  _pslot,
  _nationality 
)
Value:
if (_pslot == city_owner(_pcity)->slot) { \
continue; \
}
#define citizens_iterate(_pcity, _pslot, _nationality)
Definition citizens.h:48
#define city_owner(_pcity_)
Definition city.h:563
char * incite_cost
Definition comments.c:75

Definition at line 58 of file citizens.h.

◆ citizens_foreign_iterate_end

#define citizens_foreign_iterate_end    } citizens_iterate_end;

Definition at line 63 of file citizens.h.

◆ citizens_iterate

#define citizens_iterate (   _pcity,
  _pslot,
  _nationality 
)
Value:
if (_nationality == 0) { \
continue; \
}
citizens citizens_nation_get(const struct city *pcity, const struct player_slot *pslot)
Definition citizens.c:74
unsigned char citizens
Definition fc_types.h:388
#define player_slots_iterate(_pslot)
Definition player.h:523

Definition at line 48 of file citizens.h.

◆ citizens_iterate_end

#define citizens_iterate_end    } player_slots_iterate_end;

Definition at line 54 of file citizens.h.

Function Documentation

◆ citizens_count()

citizens citizens_count ( const struct city pcity)

◆ citizens_free()

void citizens_free ( struct city pcity)

Free citizens data.

Definition at line 58 of file citizens.c.

Referenced by destroy_city_virtual().

◆ citizens_init()

void citizens_init ( struct city pcity)

Initialise citizens data.

Definition at line 32 of file citizens.c.

Referenced by create_city(), handle_city_nationalities(), sg_load_player_city_citizens(), and sg_load_player_city_citizens().

◆ citizens_nation_add()

void citizens_nation_add ( struct city pcity,
const struct player_slot pslot,
int  add 
)

Add a (positive or negative) value to the citizens of the given nationality. As citizens is an unsigned value use int for the parameter 'add'.

The player_slot has to be used as the client does not has the exact knowledge about the players at certain points (especially at connecting).

Definition at line 104 of file citizens.c.

Referenced by citizens_nation_move(), citizens_reduction_apply(), citizens_update(), and do_city_migration().

◆ citizens_nation_foreign()

citizens citizens_nation_foreign ( const struct city pcity)

Get the number of foreign citizens.

Definition at line 91 of file citizens.c.

Referenced by citizens_convert(), and is_minforeignpct_req_active().

◆ citizens_nation_get()

citizens citizens_nation_get ( const struct city pcity,
const struct player_slot pslot 
)

Get the number of citizens with the given nationality.

The player_slot has to be used as the client does not has the exact knowledge about the players at certain points (especially at connecting).

Definition at line 74 of file citizens.c.

Referenced by api_methods_city_inspire_partisans(), check_city_migrations_player(), citizens_nation_add(), citizens_nation_foreign(), citizens_reduction_apply(), citizens_unit_nationality(), citizens_update(), city_incite_cost(), col_citizens(), do_city_migration(), package_city(), server_remove_player(), sg_save_player_cities(), and city_dialog::update_nation_table().

◆ citizens_nation_move()

void citizens_nation_move ( struct city pcity,
const struct player_slot pslot_from,
const struct player_slot pslot_to,
int  move 
)

Convert a (positive or negative) value to the citizens from one nation to another. As citizens is an unsigned value use int for the parameter 'move'.

The player_slot has to be used as the client does not has the exact knowledge about the players at certain points (especially at connecting).

Definition at line 130 of file citizens.c.

Referenced by citizens_convert(), citizens_convert_conquest(), and server_remove_player().

◆ citizens_nation_set()

void citizens_nation_set ( struct city pcity,
const struct player_slot pslot,
citizens  count 
)

Set the number of citizens with the given nationality.

The player_slot has to be used as the client does not has the exact knowledge about the players at certain points (especially at connecting).

Definition at line 145 of file citizens.c.

Referenced by citizens_nation_add(), citizens_update(), handle_city_nationalities(), sg_load_player_city_citizens(), and sg_load_player_city_citizens().

◆ citizens_random()

struct player_slot * citizens_random ( const struct city pcity)

Return random citizen from city.

Definition at line 190 of file citizens.c.

Referenced by do_city_migration().