66 _(
"Too long ruleset summary. It can be only %d bytes long. "
67 "Put longer explanations to ruleset description."),
174 switch (
preq->source.kind) {
181 const struct impr_type *pimprove =
preq->source.value.building;
185 _(
"%s: World-ranged requirement not supported for "
186 "%s (only great wonders supported)"),
list_for,
191 _(
"%s: %s-ranged requirement not supported for "
192 "%s (only wonders supported)"),
list_for,
204 _(
"%s: MinCalFrag requirement used in ruleset without "
209 _(
"%s: MinCalFrag requirement %d out of range (max %d in "
210 "this ruleset)"),
list_for,
preq->source.value.mincalfrag,
228 _(
"%s: ServerSetting requirement %s isn't visible enough "
229 "to appear in a requirement. Everyone should be able to "
230 "see the value of a server setting that appears in a "
239 _(
"%s: ServerSetting requirement setting %s isn't about a "
287 switch (
preq->source.kind) {
291 _(
"%s: Requirement list has multiple local-ranged extra "
292 "requirements (did you mean to make them tile-ranged?)"),
305 switch (
preq->source.kind) {
309 _(
"%s: Requirement list has both tile terrain and terrainclass requirement"),
317 _(
"%s: Requirement list has both tile terrain and terrainclass requirement"),
326 _(
"%s: Requirement list has duplicate %s requirement at Tile range"),
336 if (
rc > 1 &&
preq->present) {
338 switch (
preq->source.kind) {
365 _(
"%s: Requirement list has multiple %s requirements"),
374 _(
"%s: Requirement list has more %s requirements than "
375 "can ever be fulfilled."),
list_for,
384 _(
"%s: Requirement list has more %s requirements than "
385 "can ever be fulfilled."),
list_for,
395 _(
"%s: Requirement list has more %s requirements than "
396 "can ever be fulfilled."),
list_for,
406 _(
"%s: Requirement list has more %s requirements than "
407 "can ever be fulfilled."),
list_for,
572 _(
"The effect Action_Success_Target_Move_Cost has the"
573 " requirement {%s} but the action %s isn't"
574 " (single) unit targeted."),
588 _(
"The effect Action_Success_Actor_Move_Cost has the"
589 " requirement {%s} but the action %s isn't"
590 " performed by a unit."),
606 _(
"The effect %s has the"
607 " requirement {%s} but the action %s doesn't"
608 " roll the dice to see if it fails."),
622 _(
"Effects have conflicting or invalid requirements!"));
661 _(
"Barbarian boat (%s) needs to be able to move at sea."),
673 if (
ptype->transport_capacity <= 1) {
675 _(
"Barbarian boat %s has no capacity for both "
676 "leader and at least one man."),
687 _(
"Barbarian boat %s cannot transport "
688 "barbarian cargo %s."),
739 _(
"Ferryboat (%s) needs to be able to move at sea."),
748 _(
"Inspire_Partisans effect present, "
749 "but no units with partisan role."));
763 if (
ptype->transport_capacity > 0) {
766 _(
"%s has transport capacity %d, but no cargo types."),
772 _(
"%s has cargo types, but no transport capacity."),
791 _(
"Gold producing improvement %s with genus other than \"Convert\""),
798 _(
"The same improvement has both \"Gold\" and \"Infra\" flags"));
804 _(
"Infrapoints producing improvement %s with genus other than \"Convert\""),
811 _(
"Improvement %s with no conversion target with genus \"Convert\""),
819 _(
"Disasterproof improvement %s with genus other than \"Improvement\""),
832 _(
"Space part %s with genus other than \"Special\""),
839 _(
"%s is a nonsellable building with a nonzero upkeep value"),
886 _(
"Boolean effect %s can get disabled, but it can't get "
887 "enabled before that."),
922 _(
"Cost based free tech method, but tech cost style "
923 "\"Civ I|II\" so all techs cost the same."));
951 _(
"Tech \"%s\" requires itself indirectly via \"%s\"."),
965 _(
"Tech \"%s\" requires a tech in its research_reqs."
966 " This isn't supported yet. Please keep using req1"
967 " and req2 like before."),
980 _(
"Tech \"%s\" has the requirement %s in its"
981 " research_reqs. This requirement may change during"
982 " the game. Changing requirements aren't supported"
994 _(
"Tech \"%s\" bonus message is not format with %%s "
995 "for a bonus tech name."),
1004 _(
"The government form %s reserved for revolution handling "
1005 "has been set as default_government."),
1023 _(
"Tech %s does not exist, but is initial "
1024 "tech for everyone."),
1031 _(
"Tech %s is initial for everyone, but %s has "
1032 "no root_req for it."),
1048 _(
"Tech %s does not exist, but is initial tech for %s."),
1056 _(
"Tech %s is initial for %s, but they have "
1057 "no root_req for it."),
1066 && pnation->init_buildings[0] !=
B_LAST) {
1068 _(
"Barbarian nation %s has init_buildings set but will "
1074 _(
"The government form %s reserved for revolution "
1075 "handling has been set as initial government for %s."),
1093 _(
"There seems to be obsoleted_by loop in update "
1094 "chain that starts from %s"),
1111 _(
"The unit type '%s' has the 'Spy' unit type flag but "
1112 "not the 'Diplomat' unit type flag."),
1120 if (
putype->paratroopers_range < 0
1124 _(
"The paratroopers_range of the unit type '%s' is %d. "
1125 "That is out of range. Max range is %d."),
1134 _(
"Unit type '%s' would build size %d cities. "
1135 "City sizes must be from 1 to %d."),
1143 els.logger = logger;
1154 _(
"There is no base %s effect."),
1173 _(
"There is no base %s effect."),
ename);
1190 _(
"Disasters have conflicting or invalid requirements!"));
1200 _(
"Goods have conflicting or invalid requirements!"));
1210 _(
"Buildings have conflicting or invalid requirements!"));
1216 _(
"Buildings have conflicting or invalid obsolescence req!"));
1226 _(
"Governments have conflicting or invalid requirements!"));
1236 _(
"Specialists have conflicting or invalid requirements!"));
1246 _(
"Extras have conflicting or invalid requirements!"));
1252 _(
"Extras have conflicting or invalid removal requirements!"));
1256 && !(pextra->rmcauses
1259 _(
"Requirements for extra removal defined but not "
1260 "a valid remove cause!"));
1276 _(
"Road '%s' integrates with '%s' but not vice versa!"),
1289 _(
"City styles have conflicting or invalid requirements!"));
1300 _(
"Action \"%s\": unsupported target kind %s."),
1306 if (
paction->min_distance < 0) {
1308 _(
"Action %s: negative min distance (%d)."),
1315 _(
"Action %s: min distance (%d) larger than "
1316 "any distance on a map can be (%d)."),
1324 _(
"Action %s: max distance is %d. "
1325 "A map can't be that big."),
1332 _(
"Action %s: min distance is %d but max distance is %d."),
1346 _(
"The action %s can't block %s."),
1355 "Action Enabler Actor Reqs")
1357 "Action Enabler Target Reqs")) {
1359 _(
"Action enabler for %s has conflicting or invalid "
1371 _(
"An action enabler for %s has a target "
1372 "requirement vector. %s doesn't have a target."),
1388 _(
"Action enabler for %s has a local DiplRel "
1389 "requirement %s in target_reqs! Please read the "
1390 "section \"Requirement vector rules\" in "
1391 "doc/README.actions"),
1403 _(
"Action enabler for %s has a tile MaxDistanceSq "
1404 "requirement %s in target_reqs! Please read the "
1405 "section \"Requirement vector rules\" in "
1406 "doc/README.actions"),
1460 _(
"diplchance_initial_odds: \"%s\" not supported."),
1468 _(
"%s both enters and frightens a hut at the same time."),
1492 _(
"auto_attack: %s not supported in"
1493 " attack_actions."),
1504 _(
"There's no basic city style for nation style %s"),
1514 _(
"Music Styles have conflicting or invalid requirements!"));
1523 _(
"%s has %s as animal to appear, but it's not native to the terrain."),
1533 _(
"%s has %s as a resource, but it's not a resource extra."),
1564 _(
"Unit class %s cannot exist anywhere."),
1574 _(
"Achievement %s has no message for consecutive gainers though "
1575 "it's possible to be gained by multiple players"),
1590 _(
"There's nation %s listed in embedded nations, but there's "
1625 if (!
BV_ISSET(pextra->conflicts, idx)) {
1626 log_debug(
"Autoconflicting resource %s with %s",
1720 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 civ_game::@32::@36::@42 ruledit
struct packet_ruleset_control control
int global_init_techs[MAX_NUM_TECH_LIST]
struct packet_game_info info
struct civ_game::@31 rgame
size_t embedded_nations_count
struct civ_game::@32::@36 server
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