65 _(
"Too long ruleset summary. It can be only %d bytes long. "
66 "Put longer explanations to ruleset description."),
173 switch (
preq->source.kind) {
180 const struct impr_type *pimprove =
preq->source.value.building;
184 _(
"%s: World-ranged requirement not supported for "
185 "%s (only great wonders supported)"),
list_for,
190 _(
"%s: %s-ranged requirement not supported for "
191 "%s (only wonders supported)"),
list_for,
203 _(
"%s: MinCalFrag requirement used in ruleset without "
208 _(
"%s: MinCalFrag requirement %d out of range (max %d in "
209 "this ruleset)"),
list_for,
preq->source.value.mincalfrag,
227 _(
"%s: ServerSetting requirement %s isn't visible enough "
228 "to appear in a requirement. Everyone should be able to "
229 "see the value of a server setting that appears in a "
238 _(
"%s: ServerSetting requirement setting %s isn't about a "
286 switch (
preq->source.kind) {
290 _(
"%s: Requirement list has multiple local-ranged extra "
291 "requirements (did you mean to make them tile-ranged?)"),
304 switch (
preq->source.kind) {
308 _(
"%s: Requirement list has both tile terrain and terrainclass requirement"),
316 _(
"%s: Requirement list has both tile terrain and terrainclass requirement"),
325 _(
"%s: Requirement list has duplicate %s requirement at Tile range"),
335 if (
rc > 1 &&
preq->present) {
337 switch (
preq->source.kind) {
364 _(
"%s: Requirement list has multiple %s requirements"),
373 _(
"%s: Requirement list has more %s requirements than "
374 "can ever be fulfilled."),
list_for,
383 _(
"%s: Requirement list has more %s requirements than "
384 "can ever be fulfilled."),
list_for,
394 _(
"%s: Requirement list has more %s requirements than "
395 "can ever be fulfilled."),
list_for,
405 _(
"%s: Requirement list has more %s requirements than "
406 "can ever be fulfilled."),
list_for,
567 _(
"The effect Action_Success_Target_Move_Cost has the"
568 " requirement {%s} but the action %s isn't"
569 " (single) unit targeted."),
583 _(
"The effect Action_Success_Actor_Move_Cost has the"
584 " requirement {%s} but the action %s isn't"
585 " performed by a unit."),
601 _(
"The effect %s has the"
602 " requirement {%s} but the action %s doesn't"
603 " roll the dice to see if it fails."),
617 _(
"Effects have conflicting or invalid requirements!"));
656 _(
"Barbarian boat (%s) needs to be able to move at sea."),
668 if (
ptype->transport_capacity <= 1) {
670 _(
"Barbarian boat %s has no capacity for both "
671 "leader and at least one man."),
682 _(
"Barbarian boat %s cannot transport "
683 "barbarian cargo %s."),
734 _(
"Ferryboat (%s) needs to be able to move at sea."),
743 _(
"Inspire_Partisans effect present, "
744 "but no units with partisan role."));
758 if (
ptype->transport_capacity > 0) {
761 _(
"%s has transport capacity %d, but no cargo types."),
767 _(
"%s has cargo types, but no transport capacity."),
786 _(
"Gold producing improvement %s with genus other than \"Convert\""),
794 _(
"Disasterproof improvement %s with genus other than \"Improvement\""),
807 _(
"Space part %s with genus other than \"Special\""),
814 _(
"%s is a nonsellable building with a nonzero upkeep value"),
861 _(
"Boolean effect %s can get disabled, but it can't get "
862 "enabled before that."),
897 _(
"Cost based free tech method, but tech cost style "
898 "\"Civ I|II\" so all techs cost the same."));
926 _(
"Tech \"%s\" requires itself indirectly via \"%s\"."),
940 _(
"Tech \"%s\" requires a tech in its research_reqs."
941 " This isn't supported yet. Please keep using req1"
942 " and req2 like before."),
955 _(
"Tech \"%s\" has the requirement %s in its"
956 " research_reqs. This requirement may change during"
957 " the game. Changing requirements aren't supported"
969 _(
"Tech \"%s\" bonus message is not format with %%s "
970 "for a bonus tech name."),
979 _(
"The government form %s reserved for revolution handling "
980 "has been set as default_government."),
998 _(
"Tech %s does not exist, but is initial "
999 "tech for everyone."),
1006 _(
"Tech %s is initial for everyone, but %s has "
1007 "no root_req for it."),
1023 _(
"Tech %s does not exist, but is initial tech for %s."),
1031 _(
"Tech %s is initial for %s, but they have "
1032 "no root_req for it."),
1041 && pnation->init_buildings[0] !=
B_LAST) {
1043 _(
"Barbarian nation %s has init_buildings set but will "
1049 _(
"The government form %s reserved for revolution "
1050 "handling has been set as initial government for %s."),
1068 _(
"There seems to be obsoleted_by loop in update "
1069 "chain that starts from %s"),
1086 _(
"The unit type '%s' has the 'Spy' unit type flag but "
1087 "not the 'Diplomat' unit type flag."),
1095 if (
putype->paratroopers_range < 0
1099 _(
"The paratroopers_range of the unit type '%s' is %d. "
1100 "That is out of range. Max range is %d."),
1109 _(
"Unit type '%s' would build size %d cities. "
1110 "City sizes must be from 1 to %d."),
1118 els.logger = logger;
1129 _(
"There is no base %s effect."),
1148 _(
"There is no base %s effect."),
ename);
1165 _(
"Disasters have conflicting or invalid requirements!"));
1175 _(
"Goods have conflicting or invalid requirements!"));
1185 _(
"Buildings have conflicting or invalid requirements!"));
1191 _(
"Buildings have conflicting or invalid obsolescence req!"));
1201 _(
"Governments have conflicting or invalid requirements!"));
1211 _(
"Specialists have conflicting or invalid requirements!"));
1221 _(
"Extras have conflicting or invalid requirements!"));
1227 _(
"Extras have conflicting or invalid removal requirements!"));
1231 && !(pextra->rmcauses
1234 _(
"Requirements for extra removal defined but not "
1235 "a valid remove cause!"));
1251 _(
"Road '%s' integrates with '%s' but not vice versa!"),
1264 _(
"City styles have conflicting or invalid requirements!"));
1275 _(
"Action \"%s\": unsupported target kind %s."),
1281 if (
paction->min_distance < 0) {
1283 _(
"Action %s: negative min distance (%d)."),
1290 _(
"Action %s: min distance (%d) larger than "
1291 "any distance on a map can be (%d)."),
1299 _(
"Action %s: max distance is %d. "
1300 "A map can't be that big."),
1307 _(
"Action %s: min distance is %d but max distance is %d."),
1321 _(
"The action %s can't block %s."),
1330 "Action Enabler Actor Reqs")
1332 "Action Enabler Target Reqs")) {
1334 _(
"Action enabler for %s has conflicting or invalid "
1346 _(
"An action enabler for %s has a target "
1347 "requirement vector. %s doesn't have a target."),
1363 _(
"Action enabler for %s has a local DiplRel "
1364 "requirement %s in target_reqs! Please read the "
1365 "section \"Requirement vector rules\" in "
1366 "doc/README.actions"),
1420 _(
"diplchance_initial_odds: \"%s\" not supported."),
1428 _(
"%s both enters and frightens a hut at the same time."),
1452 _(
"auto_attack: %s not supported in"
1453 " attack_actions."),
1464 _(
"There's no basic city style for nation style %s"),
1474 _(
"Music Styles have conflicting or invalid requirements!"));
1483 _(
"%s has %s as animal to appear, but it's not native to the terrain."),
1493 _(
"%s has %s as a resource, but it's not a resource extra."),
1524 _(
"Unit class %s cannot exist anywhere."),
1534 _(
"Achievement %s has no message for consecutive gainers though "
1535 "it's possible to be gained by multiple players"),
1550 _(
"There's nation %s listed in embedded nations, but there's "
1585 if (!
BV_ISSET(pextra->conflicts, idx)) {
1586 log_debug(
"Autoconflicting resource %s with %s",
1680 log_normal(
_(
"Disabling 'barbarians' setting for lack of suitable "
const char * achievement_rule_name(struct achievement *pach)
#define achievements_re_active_iterate(_p)
#define achievements_re_active_iterate_end
bool action_distance_inside_max(const struct action *action, const int distance)
enum action_actor_kind action_get_actor_kind(const struct action *paction)
struct action_auto_perf * action_auto_perf_slot_number(const int num)
struct req_vec_problem * action_enabler_suggest_repair(const struct action_enabler *enabler)
struct req_vec_problem * action_enabler_suggest_improvement(const struct action_enabler *enabler)
const char * action_rule_name(const struct action *action)
const char * action_id_rule_name(action_id act_id)
bool action_would_be_blocked_by(const struct action *blocked, const struct action *blocker)
int action_dice_roll_initial_odds(const struct action *paction)
enum action_target_kind action_get_target_kind(const struct action *paction)
struct action_enabler_list * action_enablers_for_action(action_id action)
#define action_by_result_iterate(_paction_, _result_)
#define ACTION_DISTANCE_MAX
#define enabler_get_action(_enabler_)
#define ACTION_AUTO_MOVED_ADJ
#define action_auto_perf_actions_iterate_end
static struct action * action_by_number(action_id act_id)
#define action_enabler_list_re_iterate_end
#define ACTION_DISTANCE_LAST_NON_SIGNAL
#define action_enabler_list_re_iterate(action_enabler_list, aenabler)
#define action_has_result(_act_, _res_)
#define action_by_result_iterate_end
#define action_auto_perf_actions_iterate(_autoperf_, _act_id_)
#define action_iterate_end
#define action_has_result_safe(paction, result)
#define action_iterate(_act_)
#define action_id_get_target_kind(act_id)
#define ACTION_ODDS_PCT_DICE_ROLL_NA
bool actres_legal_target_kind(enum action_result result, enum action_target_kind tgt_kind)
void astr_free(struct astring *astr)
#define BV_ISSET(bv, bit)
const char * city_style_rule_name(const int style)
static const struct city struct citystyle * city_styles
#define log_deprecation(message,...)
const char * disaster_rule_name(struct disaster_type *pdis)
#define disaster_type_re_active_iterate(_p)
#define disaster_type_re_active_iterate_end
bool iterate_effect_cache(iec_cb cb, void *data)
int get_potential_improvement_bonus(const struct impr_type *pimprove, const struct city *pcity, enum effect_type effect_type, const enum req_problem_type prob_type, bool consider_multipliers)
int effect_cumulative_max(enum effect_type type, struct universal *unis, size_t n_unis)
int effect_cumulative_min(enum effect_type type, struct universal *for_uni)
#define MAX_NUM_TECH_LIST
const char * government_rule_name(const struct government *pgovern)
#define governments_re_active_iterate(_p)
#define governments_re_active_iterate_end
bool is_building_sellable(const struct impr_type *pimprove)
const char * improvement_rule_name(const struct impr_type *pimprove)
bool is_wonder(const struct impr_type *pimprove)
bool is_great_wonder(const struct impr_type *pimprove)
bool improvement_has_flag(const struct impr_type *pimprove, enum impr_flag_id flag)
const char * improvement_name_translation(const struct impr_type *pimprove)
#define improvement_re_active_iterate_end
#define improvement_re_active_iterate(_p)
#define log_verbose(message,...)
#define fc_assert(condition)
#define fc_assert_ret_val(condition, val)
#define log_debug(message,...)
#define log_normal(message,...)
bool is_native_to_class(const struct unit_class *punitclass, const struct terrain *pterrain, const bv_extras *extras)
bool can_unit_type_transport(const struct unit_type *transporter, const struct unit_class *transported)
const char * nation_rule_name(const struct nation_type *pnation)
struct nation_type * nation_by_rule_name(const char *name)
enum barbarian_type nation_barbarian_type(const struct nation_type *nation)
#define nations_re_active_iterate_end
#define nations_re_active_iterate(_pnat_)
const char * req_to_fstring(const struct requirement *req, struct astring *astr)
req_vec_num_in_item req_vec_vector_number(const void *parent_item, const struct requirement_vector *vec)
struct req_vec_problem * req_vec_suggest_repair(const struct requirement_vector *vec, requirement_vector_number get_num, const void *parent_item)
const char * universal_rule_name(const struct universal *psource)
void req_vec_problem_free(struct req_vec_problem *issue)
const char * universal_type_rule_name(const struct universal *psource)
enum req_unchanging_status is_req_unchanging(const struct req_context *context, const struct requirement *req)
#define requirement_vector_iterate_end
#define requirement_vector_iterate(req_vec, preq)
Road_type_id road_number(const struct road_type *proad)
void(* rs_conversion_logger)(const char *msg)
#define ruleset_error(logger, level, format,...)
static struct compatibility compat[]
const char * server_setting_name_get(server_setting_id id)
enum sset_type server_setting_type_get(server_setting_id id)
server_setting_id ssetv_setting_get(ssetv enc)
bool server_setting_exists(server_setting_id id)
void setting_ruleset_lock_clear(struct setting *pset)
struct setting * setting_by_name(const char *name)
struct setting * setting_by_number(int id)
enum sset_category setting_category(const struct setting *pset)
bool setting_enum_set(struct setting *pset, const char *val, struct connection *caller, char *reject_msg, size_t reject_msg_len)
void setting_ruleset_lock_set(struct setting *pset)
bool setting_is_visible_at_level(const struct setting *pset, enum cmdlevel plevel)
bool formats_match(const char *format1, const char *format2)
const char * specialist_rule_name(const struct specialist *sp)
#define specialist_type_re_active_iterate_end
#define specialist_type_re_active_iterate(_p)
struct advance * require[AR_SIZE]
struct packet_ruleset_control control
int global_init_techs[MAX_NUM_TECH_LIST]
struct packet_game_info info
struct civ_game::@31::@35::@40 ruledit
struct civ_game::@31::@35 server
size_t embedded_nations_count
struct civ_game::@30 rgame
struct packet_calendar_info calendar
struct government * default_government
struct government * government_during_revolution
rs_conversion_logger logger
int init_techs[MAX_NUM_TECH_LIST]
enum free_tech_method free_tech_method
bv_actions diplchance_initial_odds
enum tech_cost_style tech_cost_style
const struct unit_type * obsoleted_by
const char * style_rule_name(const struct nation_style *pstyle)
int basic_city_style_for_style(struct nation_style *pstyle)
#define music_styles_re_active_iterate_end
#define music_styles_re_active_iterate(_p)
#define styles_re_active_iterate_end
#define styles_re_active_iterate(_p)
int fc_snprintf(char *str, size_t n, const char *format,...)
struct advance * advance_by_number(const Tech_type_id atype)
struct advance * advance_requires(const struct advance *padvance, enum tech_req require)
struct advance * valid_advance_by_number(const Tech_type_id id)
const char * advance_rule_name(const struct advance *padvance)
Tech_type_id advance_number(const struct advance *padvance)
#define advance_re_active_iterate(_p)
#define advance_req_iterate(_goal, _padvance)
#define advance_re_active_iterate_end
#define advance_req_iterate_end
const char * terrain_rule_name(const struct terrain *pterrain)
#define terrain_re_active_iterate_end
#define is_ocean(pterrain)
#define terrain_re_active_iterate(_p)
#define terrain_resources_iterate_end
#define terrain_resources_iterate(pterrain, _res, _freq)
const char * goods_rule_name(struct goods_type *pgood)
#define goods_type_re_active_iterate_end
#define goods_type_re_active_iterate(_p)
bool utype_is_cityfounder(const struct unit_type *utype)
struct unit_type * get_role_unit(int role, int role_index)
bool utype_has_role(const struct unit_type *punittype, int role)
int num_role_units(int role)
const char * utype_rule_name(const struct unit_type *punittype)
const char * uclass_rule_name(const struct unit_class *pclass)
static bool uclass_has_flag(const struct unit_class *punitclass, enum unit_class_flag_id flag)
#define unit_type_re_active_iterate(_p)
#define unit_class_iterate(_p)
#define unit_class_re_active_iterate_end
static bool utype_has_flag(const struct unit_type *punittype, int flag)
#define unit_type_iterate(_p)
#define unit_class_re_active_iterate(_p)
#define UNIT_MAX_PARADROP_RANGE
#define uclass_index(_c_)
#define unit_class_iterate_end
#define unit_type_iterate_end
#define unit_type_re_active_iterate_end