Freeciv-3.2: /fast/freeciv/nightly/S3_2/server/rscompat.h File Reference

Freeciv-3.2

Loading...
Searching...
No Matches
Data Structures | Macros | Functions
rscompat.h File Reference
`#include "support.h"`
`#include "ruleset.h"`
`#include "settings.h"`

Go to the source code of this file.

## Data Structures

struct | rscompat_info

## Macros

#define | RULESET_COMPAT_CAP "+Freeciv-3.1-ruleset"

## Functions

void | rscompat_init_info (struct rscompat_info *info)
int | rscompat_check_capabilities (struct section_file *file, const char *filename, const struct rscompat_info *info)
bool | rscompat_check_cap_and_version (struct section_file *file, const char *filename, const struct rscompat_info *info)
bool | rscompat_names (struct rscompat_info *info)
void | rscompat_postprocess (struct rscompat_info *info)
void | rscompat_enablers_add_obligatory_hard_reqs (void)
struct requirement_vector * | lookup_req_list (struct section_file *file, struct rscompat_info *compat, const char *sec, const char *sub, const char *rfor)
enum impr_genus_id | rscompat_genus_3_2 (struct rscompat_info *compat, const bv_impr_flags flags, enum impr_genus_id old_genus)
const char * | rscompat_req_range_3_2 (struct rscompat_info *compat, const char *type, const char *old_range)
void | rscompat_req_adjust_3_2 (const struct rscompat_info *compat, const char **ptype, const char **pname, bool *ppresent, const char *sec_name)
int | add_user_extra_flags_3_2 (int start)
const char * | rscompat_extra_rmcause_3_2 (struct extra_type *pextra, const char *old_name)
void | rscompat_extra_adjust_3_2 (struct extra_type *pextra)
bool | rscompat_setting_needs_special_handling (const char *name)
void | rscompat_settings_do_special_handling (struct section_file *file, const char *section, void(*setdef)(struct setting *pset))
bool | rscompat_terrain_extra_rmtime_3_2 (struct section_file *file, const char *tsection, struct terrain *pterrain)
const char * | rscompat_action_rule_name_3_2 (struct rscompat_info *compat, const char *orig)
const char * | rscompat_action_ui_name_3_2 (struct rscompat_info *compat, int act_id)
void | rscompat_action_enabler_adjust_3_2 (struct rscompat_info *compat, struct action_enabler *enabler, const char *orig_name)
bool | lookup_time (const struct section_file *secfile, int *turns, const char *sec_name, const char *property_name, const char *filename, const char *item_name, bool *ok)

## Macro Definition Documentation

## ◆ RULESET_COMPAT_CAP

#define RULESET_COMPAT_CAP "+Freeciv-3.1-ruleset"

Definition at line 27 of file rscompat.h.

## Function Documentation

## ◆ add_user_extra_flags_3_2()

int add_user_extra_flags_3_2 | ( | int | start | ) |

Add user extra flags needed in ruleset update from 3.1 to 3.2

Returns
  Number of flags added

Definition at line 559 of file rscompat.c.

Referenced by load_terrain_names().

## ◆ lookup_req_list()

struct requirement_vector * lookup_req_list | ( | struct section_file * | file,
|  | struct rscompat_info * | compat,
|  | const char * | sec,
|  | const char * | sub,
|  | const char * | rfor
| ) |  |

Load a requirement list. The list is returned as a static vector (callers need not worry about freeing anything).

Definition at line 654 of file ruleset.c.

Referenced by load_ruleset_actions(), load_ruleset_buildings(), load_ruleset_cities(), load_ruleset_effects(), load_ruleset_game(), load_ruleset_governments(), load_ruleset_styles(), load_ruleset_techs(), load_ruleset_terrain(), and load_ruleset_units().

## ◆ lookup_time()

bool lookup_time | ( | const struct section_file * | secfile,
|  | int * | turns,
|  | const char * | sec_name,
|  | const char * | property_name,
|  | const char * | filename,
|  | const char * | item_name,
|  | bool * | ok
| ) |  |

Look up a value comparable to activity_count (road_time, etc). item_name describes the thing which has the time property, if non-NULL, for any error message. Returns FALSE if not found in secfile, but TRUE even if validation failed. Sets *ok to FALSE if validation failed, leaves it alone otherwise.

Definition at line 1264 of file ruleset.c.

Referenced by load_ruleset_terrain(), load_ruleset_units(), and rscompat_terrain_extra_rmtime_3_2().

## ◆ rscompat_action_enabler_adjust_3_2()

void rscompat_action_enabler_adjust_3_2 | ( | struct rscompat_info * | compat,
|  | struct action_enabler * | enabler,
|  | const char * | orig_name
| ) |  |

Adjust freeciv-3.1 ruleset action enabler to freeciv-3.2

Definition at line 763 of file rscompat.c.

Referenced by load_ruleset_actions().

## ◆ rscompat_action_rule_name_3_2()

const char * rscompat_action_rule_name_3_2 | ( | struct rscompat_info * | compat,
|  | const char * | orig
| ) |  |

Adjust freeciv-3.1 ruleset action rule name to freeciv-3.2

Definition at line 748 of file rscompat.c.

Referenced by load_ruleset_actions().

## ◆ rscompat_action_ui_name_3_2()

const char * rscompat_action_ui_name_3_2 | ( | struct rscompat_info * | compat,
|  | int | act_id
| ) |  |

Adjust freeciv-3.1 ruleset action ui_name to freeciv-3.2

Definition at line 778 of file rscompat.c.

Referenced by load_ruleset_actions().

## ◆ rscompat_check_cap_and_version()

bool rscompat_check_cap_and_version | ( | struct section_file * | file,
|  | const char * | filename,
|  | const struct rscompat_info * | info
| ) |  |

Different ruleset files within a ruleset directory should all have identical datafile.format_version This checks the file version against the expected version.

See also rscompat_check_capabilities

Definition at line 131 of file rscompat.c.

Referenced by load_action_names(), load_building_names(), load_government_names(), load_nation_names(), load_ruleset_cities(), load_ruleset_effects(), load_style_names(), load_tech_names(), load_terrain_names(), and load_unit_names().

## ◆ rscompat_check_capabilities()

int rscompat_check_capabilities | ( | struct section_file * | file,
|  | const char * | filename,
|  | const struct rscompat_info * | info
| ) |  |

Ruleset files should have a capabilities string datafile.options This checks the string and that the required capabilities are satisfied.

Definition at line 66 of file rscompat.c.

Referenced by load_game_names(), and rscompat_check_cap_and_version().

## ◆ rscompat_enablers_add_obligatory_hard_reqs()

void rscompat_enablers_add_obligatory_hard_reqs | ( | void |  | ) |

Update existing action enablers for new hard obligatory requirements. Disable those that can't be upgraded.

Definition at line 286 of file rscompat.c.

Referenced by rscompat_postprocess(), and ruleset_purge_redundant_reqs().

## ◆ rscompat_extra_adjust_3_2()

void rscompat_extra_adjust_3_2 | ( | struct extra_type * | pextra | ) |

Adjust values of an extra loaded from a 3.1 ruleset.

Definition at line 598 of file rscompat.c.

Referenced by load_ruleset_terrain().

## ◆ rscompat_extra_rmcause_3_2()

const char * rscompat_extra_rmcause_3_2 | ( | struct extra_type * | pextra,
|  | const char * | old_name
| ) |  |

Adjust rmcause name of an extra loaded from a 3.1 ruleset.

Definition at line 572 of file rscompat.c.

Referenced by load_ruleset_terrain().

## ◆ rscompat_genus_3_2()

enum impr_genus_id rscompat_genus_3_2 | ( | struct rscompat_info * | compat,
|  | const bv_impr_flags | flags,
|  | enum impr_genus_id | old_genus
| ) |  |

Update improvement genus for coinage improvements.

Definition at line 450 of file rscompat.c.

Referenced by load_ruleset_buildings().

## ◆ rscompat_init_info()

void rscompat_init_info | ( | struct rscompat_info * | info | ) |

Initialize rscompat information structure

Definition at line 57 of file rscompat.c.

Referenced by load_rulesetdir(), and tab_misc::sanity_check().

## ◆ rscompat_names()

bool rscompat_names | ( | struct rscompat_info * | info | ) |

Do compatibility things with names before they are referred to. Runs after names are loaded from the ruleset but before the ruleset objects that may refer to them are loaded.

This is needed when previously hard coded items that are referred to in the ruleset them self becomes ruleset defined.

Returns FALSE if an error occurs.

Definition at line 330 of file rscompat.c.

Referenced by load_rulesetdir().

## ◆ rscompat_postprocess()

void rscompat_postprocess | ( | struct rscompat_info * | info | ) |

Do compatibility things after regular ruleset loading.

Definition at line 381 of file rscompat.c.

Referenced by load_rulesetdir().

## ◆ rscompat_req_adjust_3_2()

void rscompat_req_adjust_3_2 | ( | const struct rscompat_info * | compat,
|  | const char ** | ptype,
|  | const char ** | pname,
|  | bool * | ppresent,
|  | const char * | sec_name
| ) |  |

Update individual requirements.

Definition at line 493 of file rscompat.c.

Referenced by lookup_req_list().

## ◆ rscompat_req_range_3_2()

const char * rscompat_req_range_3_2 | ( | struct rscompat_info * | compat,
|  | const char * | type,
|  | const char * | old_range
| ) |  |

Update requirement range for certain requirement types.

Definition at line 466 of file rscompat.c.

Referenced by lookup_req_list().

## ◆ rscompat_setting_needs_special_handling()

bool rscompat_setting_needs_special_handling | ( | const char * | name | ) |

Determine whether the given setting should be skipped and rscompat_settings_do_special_handling should be called.

Definition at line 618 of file rscompat.c.

Referenced by settings_ruleset().

## ◆ rscompat_settings_do_special_handling()

void rscompat_settings_do_special_handling | ( | struct section_file * | file,
|  | const char * | section,
|  | void(*)(struct setting *pset) | setdef
| ) |  |

Special handling for complex server setting changes.

Definition at line 632 of file rscompat.c.

Referenced by settings_ruleset().

## ◆ rscompat_terrain_extra_rmtime_3_2()

bool rscompat_terrain_extra_rmtime_3_2 | ( | struct section_file * | file,
|  | const char * | tsection,
|  | struct terrain * | pterrain
| ) |  |

Migrate pollution and fallout time to extra specific removal times.

Definition at line 708 of file rscompat.c.

Referenced by load_ruleset_terrain().