Freeciv-3.3
Loading...
Searching...
No Matches
Data Structures | Macros | Functions | Variables
specialist.h File Reference
#include "shared.h"
#include "fc_types.h"
#include "name_translation.h"
#include "requirements.h"

Go to the source code of this file.

Data Structures

struct  specialist
 

Macros

#define DEFAULT_SPECIALIST   default_specialist
 
#define specialist_type_iterate(sp)
 
#define specialist_type_iterate_end
 
#define specialist_type_re_active_iterate(_p)
 
#define specialist_type_re_active_iterate_end
 

Functions

Specialist_type_id specialist_count (void)
 
Specialist_type_id specialist_index (const struct specialist *sp)
 
Specialist_type_id specialist_number (const struct specialist *sp)
 
struct specialistspecialist_by_number (const Specialist_type_id id)
 
struct specialistspecialist_by_rule_name (const char *name)
 
struct specialistspecialist_by_translated_name (const char *name)
 
const charspecialist_rule_name (const struct specialist *sp)
 
const charspecialist_plural_translation (const struct specialist *sp)
 
const charspecialist_abbreviation_translation (const struct specialist *sp)
 
const charspecialists_abbreviation_string (void)
 
const charspecialists_string (const citizens *specialist_list)
 
int get_specialist_output (const struct city *pcity, Specialist_type_id sp, Output_type_id otype)
 
void specialists_init (void)
 
void specialists_free (void)
 

Variables

struct specialist specialists [SP_MAX]
 
int default_specialist
 

Macro Definition Documentation

◆ DEFAULT_SPECIALIST

#define DEFAULT_SPECIALIST   default_specialist

Definition at line 43 of file specialist.h.

◆ specialist_type_iterate

#define specialist_type_iterate (   sp)
Value:
{ \
for (sp = 0; sp < specialist_count(); sp++) {
char * incite_cost
Definition comments.c:76
int Specialist_type_id
Definition fc_types.h:234
Specialist_type_id specialist_count(void)
Definition specialist.c:71

Definition at line 73 of file specialist.h.

◆ specialist_type_iterate_end

#define specialist_type_iterate_end
Value:
} \
}

Definition at line 79 of file specialist.h.

◆ specialist_type_re_active_iterate

#define specialist_type_re_active_iterate (   _p)
Value:
if (!_p->ruledit_disabled) {
#define _(String)
Definition fcintl.h:67
#define specialist_type_iterate(sp)
Definition specialist.h:73
struct specialist * specialist_by_number(const Specialist_type_id id)
Definition specialist.c:100

Definition at line 83 of file specialist.h.

◆ specialist_type_re_active_iterate_end

#define specialist_type_re_active_iterate_end
Value:
} \
#define specialist_type_iterate_end
Definition specialist.h:79

Definition at line 88 of file specialist.h.

Function Documentation

◆ get_specialist_output()

int get_specialist_output ( const struct city pcity,
Specialist_type_id  sp,
Output_type_id  otype 
)

Return the output for the specialist type with this output type.

Definition at line 217 of file specialist.c.

Referenced by add_specialist_output(), best_specialist(), dai_set_defenders(), get_entertainers(), init_specialist_lattice_nodes(), and military_advisor_choose_build().

◆ specialist_abbreviation_translation()

const char * specialist_abbreviation_translation ( const struct specialist sp)

Return the (translated) abbreviation of the specialist type. You don't have to free the return pointer.

Definition at line 164 of file specialist.c.

Referenced by init_city_report_game_data(), and specialists_abbreviation_string().

◆ specialist_by_number()

struct specialist * specialist_by_number ( const Specialist_type_id  id)

◆ specialist_by_rule_name()

struct specialist * specialist_by_rule_name ( const char name)

Return the specialist type with the given (untranslated!) rule name. Returns NULL if none match.

Definition at line 112 of file specialist.c.

Referenced by sg_load_savefile(), sg_load_savefile(), and universal_value_from_str().

◆ specialist_by_translated_name()

struct specialist * specialist_by_translated_name ( const char name)

Return the specialist type with the given (translated, plural) name. Returns NULL if none match.

Definition at line 130 of file specialist.c.

Referenced by help_update_specialist(), and help_widget::set_topic_specialist().

◆ specialist_count()

Specialist_type_id specialist_count ( void  )

◆ specialist_index()

Specialist_type_id specialist_index ( const struct specialist sp)

Return the specialist index.

Currently same as specialist_number(), paired with specialist_count() indicates use as an array index.

Definition at line 82 of file specialist.c.

Referenced by cr_entry_specialist(), sg_load_player_city(), sg_load_player_city(), sg_load_player_main(), and sg_load_player_main().

◆ specialist_number()

Specialist_type_id specialist_number ( const struct specialist sp)

Return the specialist item_number.

Definition at line 91 of file specialist.c.

Referenced by universal_number().

◆ specialist_plural_translation()

const char * specialist_plural_translation ( const struct specialist sp)

Return the (translated, plural) name of the specialist type. You don't have to free the return pointer.

Definition at line 155 of file specialist.c.

Referenced by boot_help_texts(), init_city_report_game_data(), req_text_insert(), specialist_by_translated_name(), and universal_name_translation().

◆ specialist_rule_name()

const char * specialist_rule_name ( const struct specialist sp)

Return the (untranslated) rule name of the specialist type. You don't have to free the return pointer.

Definition at line 146 of file specialist.c.

Referenced by compat_load_020600(), init_city_report_game_data(), is_universal_needed(), load_ruleset_cities(), sanity_check_ruleset_data(), sg_save_savefile(), specialist_by_rule_name(), universal_kind_values(), and universal_rule_name().

◆ specialists_abbreviation_string()

const char * specialists_abbreviation_string ( void  )

Return a string containing all the specialist abbreviations, for instance "E/S/T". You don't have to free the return pointer.

Definition at line 174 of file specialist.c.

Referenced by cmafec_get_result_descr(), and init_city_report_game_data().

◆ specialists_free()

void specialists_free ( void  )

Free data for specialists.

Definition at line 53 of file specialist.c.

Referenced by game_ruleset_free().

◆ specialists_init()

void specialists_init ( void  )

Initialize data for specialists.

Definition at line 36 of file specialist.c.

Referenced by game_ruleset_init().

◆ specialists_string()

const char * specialists_string ( const citizens specialist_list)

Return a string showing the number of specialists in the array.

For instance with a city with (0,3,1) specialists call

specialists_string(pcity->specialists);

and you'll get "0/3/1".

Definition at line 199 of file specialist.c.

Referenced by cm_print_city(), cm_print_result(), cmafec_get_result_descr(), and cr_entry_specialists().

Variable Documentation

◆ default_specialist

int default_specialist
extern

Definition at line 31 of file specialist.c.

Referenced by receive_packet_ruleset_game_100().

◆ specialists

struct specialist specialists[SP_MAX]
extern