54#undef TECH_UPKEEP_DEBUGGING
118 _(
"The %s have researched %s."),
166 if (mod <= 0 &&
mod_abs <= 0) {
223 Q_(
"?fromeffect:%s acquired from %s!"),
229 Q_(
"?fromeffect:%s acquired from %s's %s!"),
236 Q_(
"?fromeffect:The %s have acquired %s from %s."),
298 const struct player *pplayer;
314 if (
NULL != pplayer) {
320 bool embassy =
FALSE;
335 }
else if (
pconn->observer) {
361#ifndef FREECIV_NDEBUG
377 &&
pobs->source.value.advance ==
vap
384 _(
"Discovery of %s OBSOLETES %s in %s!"),
514 _(
"Learned %s. Our scientists focus on %s; "
558 _(
"Learned %s. Scientists "
559 "do not know what to research next."),
563 _(
"Learned %s. Scientists choose to research %s."),
602 _(
"Great scientists from all the "
603 "world join your civilization: you learn "
608 _(
"%s acquire %s as a result of learning %s."),
711 _(
"Insufficient science output. We lost %s."),
836 _(
"The %s have lost %s."),
848 _(
"The %s have lost %s."),
870 _(
"The required technology for our government '%s' "
871 "was lost. The citizens have started a "
872 "revolution into '%s'."),
878 }
else if (
NULL != pplayer->target_government
880 pplayer->target_government)) {
886 _(
"The required technology for our new government "
887 "'%s' was lost. The citizens chose '%s' as new "
888 "target government."),
891 pplayer->target_government =
pgov;
906 _(
"%s can't build %s. The required technology was "
916 pcity->production.value.building)) {
919 _(
"%s can't build %s. The required technology was "
923 (
pcity->production.value.building));
1087 _(
"Technology goal is %s."),
1104#ifdef TECH_UPKEEP_DEBUGGING
1121 log_debug(
"[research %d] %-25s (ID: %3d) cost: %6d - reachable: %-3s "
1150 log_debug(
"[player %d] researched: %-25s (ID: %4d) techs: %3d "
1288#ifndef FREECIV_NDEBUG
1301 _(
"You steal %s from the %s."),
1305 _(
"The %s stole %s from the %s and shared it with you."),
1311 _(
"The %s stole %s from you!"),
1316 _(
"The %s have stolen %s from the %s."),
1424 _(
"Too bad! You made a mistake transferring the tech %s and "
1428 _(
"Too bad! The %s made a mistake transferring the tech "
1470 _(
"Too bad! You made a mistake transferring the tech %s and "
1474 _(
"Too bad! The %s made a mistake transferring the tech "
1475 "%s and didn't get it."),
1564 _(
"%s makes several new government forms"
1565 " available. You may want to start a revolution."),
1577 _(
"%s makes the government form %s"
1578 " available. You may want to start a revolution."),
void astr_free(struct astring *astr)
void astr_init(struct astring *astr)
static const char * astr_str(const struct astring *astr) fc__attribute((nonnull(1)))
#define BV_ISSET(bv, bit)
bool can_city_build_improvement_now(const struct city *pcity, const struct impr_type *pimprove)
bool can_city_build_unit_now(const struct civ_map *nmap, const struct city *pcity, const struct unit_type *punittype)
#define city_list_iterate(citylist, pcity)
#define city_tile(_pcity_)
#define city_owner(_pcity_)
#define city_list_iterate_end
void remove_obsolete_buildings(struct player *pplayer)
void choose_build_target(struct player *pplayer, struct city *pcity)
bool city_refresh(struct city *pcity)
struct player * conn_get_player(const struct connection *pconn)
#define conn_list_iterate(connlist, pconn)
#define conn_list_iterate_end
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int const struct action *paction struct unit struct city * pcity
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int cost
struct effect_list * effects[EFT_COUNT]
struct effect_list * govs[G_LAST]
int get_player_bonus_effects(struct effect_list *plist, const struct player *pplayer, enum effect_type effect_type)
int get_player_bonus(const struct player *pplayer, enum effect_type effect_type)
void get_effect_list_req_text(const struct effect_list *plist, struct astring *astr)
#define MAX_NUM_TECH_LIST
const struct ft_color ftc_server
const char * city_link(const struct city *pcity)
void send_game_info(struct conn_list *dest)
const char * government_name_translation(const struct government *pgovern)
Government_type_id government_count(void)
struct government * government_of_player(const struct player *pplayer)
bool can_change_to_government(struct player *pplayer, const struct government *gov)
Government_type_id government_number(const struct government *pgovern)
Government_type_id government_index(const struct government *pgovern)
#define governments_iterate(NAME_pgov)
#define governments_iterate_end
void handle_player_change_government(struct player *pplayer, Government_type_id government)
bool is_great_wonder(const struct impr_type *pimprove)
const char * improvement_name_translation(const struct impr_type *pimprove)
struct city * city_from_great_wonder(const struct impr_type *pimprove)
#define improvement_iterate_end
#define improvement_iterate(_p)
#define fc_assert_msg(condition, message,...)
#define fc_assert_ret(condition)
#define log_verbose(message,...)
#define fc_assert(condition)
#define log_debug(message,...)
#define whole_map_iterate(_map, _tile)
#define whole_map_iterate_end
void send_tile_info(struct conn_list *dest, struct tile *ptile, bool send_unknown)
bool update_player_tile_knowledge(struct player *pplayer, struct tile *ptile)
void upgrade_all_city_extras(struct player *pplayer, bool discovery)
bool map_is_known_and_seen(const struct tile *ptile, const struct player *pplayer, enum vision_layer vlayer)
struct nation_type * nation_of_player(const struct player *pplayer)
const char * nation_plural_for_player(const struct player *pplayer)
void notify_research(const struct research *presearch, const struct player *exclude, enum event_type event, const struct ft_color color, const char *format,...)
void notify_player(const struct player *pplayer, const struct tile *ptile, enum event_type event, const struct ft_color color, const char *format,...)
void notify_research_embassies(const struct research *presearch, const struct player *exclude, enum event_type event, const struct ft_color color, const char *format,...)
int send_packet_unknown_research(struct connection *pc, const struct packet_unknown_research *packet)
int send_packet_research_info(struct connection *pc, const struct packet_research_info *packet)
int player_slot_count(void)
const char * player_name(const struct player *pplayer)
bool team_has_embassy(const struct team *pteam, const struct player *tgt_player)
int player_index(const struct player *pplayer)
#define players_iterate_end
#define players_iterate(_pplayer)
void send_player_all_c(struct player *src, struct conn_list *dest)
void send_player_info_c(struct player *src, struct conn_list *dest)
#define shuffled_players_iterate_end
#define shuffled_players_iterate(NAME_pplayer)
#define requirement_vector_iterate_end
#define requirement_vector_iterate(req_vec, preq)
bool research_invention_reachable(const struct research *presearch, const Tech_type_id tech)
enum tech_state research_invention_set(struct research *presearch, Tech_type_id tech, enum tech_state value)
const char * research_advance_rule_name(const struct research *presearch, Tech_type_id tech)
int player_tech_upkeep(const struct player *pplayer)
int research_number(const struct research *presearch)
const char * research_advance_name_translation(const struct research *presearch, Tech_type_id tech)
int research_total_bulbs_required(const struct research *presearch, Tech_type_id tech, bool loss_value)
const char * research_rule_name(const struct research *presearch)
struct research * research_get(const struct player *pplayer)
enum tech_state research_invention_state(const struct research *presearch, Tech_type_id tech)
Tech_type_id research_goal_step(const struct research *presearch, Tech_type_id goal)
bool research_invention_gettable(const struct research *presearch, const Tech_type_id tech, bool allow_holes)
void research_update(struct research *presearch)
int research_pretty_name(const struct research *presearch, char *buf, size_t buf_len)
#define research_players_iterate(_presearch, _pplayer)
#define researches_iterate(_presearch)
#define research_players_iterate_end
#define researches_iterate_end
void script_server_signal_emit(const char *signal_name,...)
struct conn_list * est_connections
int global_init_techs[MAX_NUM_TECH_LIST]
struct packet_game_info info
struct civ_game::@31 rgame
struct civ_game::@32::@36 server
struct cur_govs_data::@127 * players
int init_techs[MAX_NUM_TECH_LIST]
bool tech_steal_allow_holes
bool tech_trade_loss_allow_holes
enum free_tech_method free_tech_method
bool global_advances[A_LAST]
bool tech_loss_allow_holes
bool tech_parasite_allow_holes
char inventions[A_LAST+1]
struct player::@73::@75 server
int bulbs_researched_saved
int bulbs_researching_saved
struct research::research_invention inventions[A_ARRAY_SIZE]
Tech_type_id researching_saved
const struct unit_type * utype
int fc_snprintf(char *str, size_t n, const char *format,...)
struct advance * advance_by_number(const Tech_type_id atype)
bool is_future_tech(Tech_type_id tech)
bool advance_has_flag(Tech_type_id tech, enum tech_flag_id flag)
struct advance * valid_advance_by_number(const Tech_type_id id)
Tech_type_id advance_required(const Tech_type_id tech, enum tech_req require)
const char * advance_rule_name(const struct advance *padvance)
#define advance_index_iterate_max(_start, _index, _max)
#define advance_index_iterate_end
#define advance_index_iterate_max_end
static Tech_type_id advance_count(void)
#define advance_index_iterate(_start, _index)
const char * utype_name_translation(const struct unit_type *punittype)