Freeciv-3.3
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
rulesave.c File Reference
#include "astring.h"
#include "registry.h"
#include "string_vector.h"
#include "achievements.h"
#include "counters.h"
#include "game.h"
#include "government.h"
#include "map.h"
#include "movement.h"
#include "multipliers.h"
#include "nation.h"
#include "rgbcolor.h"
#include "sex.h"
#include "specialist.h"
#include "style.h"
#include "unittype.h"
#include "version.h"
#include "ruleload.h"
#include "settings.h"
#include "comments.h"
#include "rulesave.h"

Go to the source code of this file.

Data Structures

struct  effect_cb_data
 

Macros

#define FORMAT_VERSION   RSFORMAT_CURRENT
 

Functions

static struct section_file * create_ruleset_file (const char *rsname, const char *rstype)
 
static bool save_default_int (struct section_file *sfile, int value, int default_value, const char *path, const char *entry)
 
static bool save_default_bool (struct section_file *sfile, bool value, bool default_value, const char *path, const char *entry)
 
static bool save_name_translation (struct section_file *sfile, struct name_translation *name, const char *path)
 
static bool save_reqs_vector (struct section_file *sfile, const struct requirement_vector *reqs, const char *path, const char *entry)
 
static bool save_tech_list (struct section_file *sfile, int *input, const char *path, const char *entry)
 
static bool save_tech_ref (struct section_file *sfile, const struct advance *padv, const char *path, const char *entry)
 
static bool save_terrain_ref (struct section_file *sfile, const struct terrain *save, const struct terrain *pthis, const char *path, const char *entry)
 
static bool save_gov_ref (struct section_file *sfile, const struct government *gov, const char *path, const char *entry)
 
static bool save_building_list (struct section_file *sfile, int *input, const char *path, const char *entry)
 
static bool save_unit_list (struct section_file *sfile, struct unit_type **input, const char *path, const char *entry)
 
static bool save_uclass_vec (struct section_file *sfile, bv_unit_classes *bits, const char *path, const char *entry, bool unreachable_only)
 
static bool save_helptext (struct section_file *sfile, struct strvec *to_save, const char *path, const char *entry)
 
static bool save_ruleset_file (struct section_file *sfile, const char *filename)
 
static bool save_buildings_ruleset (const char *filename, const char *name)
 
static bool save_styles_ruleset (const char *filename, const char *name)
 
static bool save_action_auto_uflag_block (struct section_file *sfile, const int aap, const char *uflags_path, bool(*unexpected_req)(const struct requirement *preq))
 
static bool save_action_auto_actions (struct section_file *sfile, const int aap, const char *actions_path)
 
static bool unexpected_non_otype (const struct requirement *req)
 
static bool save_muuk_action_auto (struct section_file *sfile, const int aap, const char *item)
 
static bool save_cities_ruleset (const char *filename, const char *name)
 
static bool effect_save (struct effect *peffect, void *data)
 
static bool save_effects_ruleset (const char *filename, const char *name)
 
static bool save_action_max_range (struct section_file *sfile, action_id act)
 
static bool save_action_range (struct section_file *sfile, action_id act)
 
static bool save_action_kind (struct section_file *sfile, action_id act)
 
static bool save_action_actor_consuming_always (struct section_file *sfile, action_id act)
 
static bool save_action_blocked_by (struct section_file *sfile, struct action *paction)
 
static bool save_action_post_success_force (struct section_file *sfile, int performer_slot, struct action *paction)
 
static bool save_bv_actions (struct section_file *sfile, bv_actions content, const char *path)
 
static bool save_actions_ruleset (const char *filename, const char *name)
 
static bool save_game_ruleset (const char *filename, const char *name)
 
static bool save_governments_ruleset (const char *filename, const char *name)
 
static bool save_traits (struct trait_limits *traits, struct trait_limits *default_traits, struct section_file *sfile, const char *secname, const char *field_prefix)
 
static bool save_nation (struct section_file *sfile, struct nation_type *pnat, int sect_idx)
 
static bool save_nations_ruleset (const char *filename, const char *name, struct rule_data *data)
 
static bool save_techs_ruleset (const char *filename, const char *name)
 
static bool save_terrain_ruleset (const char *filename, const char *name)
 
static bool save_veteran_system (struct section_file *sfile, const char *path, struct veteran_system *vsystem)
 
static bool save_combat_bonuses (struct section_file *sfile, struct unit_type *put, char *path)
 
static bool save_units_ruleset (const char *filename, const char *name)
 
static bool save_script_lua (const char *filename, const char *name, const char *buffer)
 
static bool save_luadata (const char *filename)
 
bool save_ruleset (const char *path, const char *name, struct rule_data *data)
 

Macro Definition Documentation

◆ FORMAT_VERSION

#define FORMAT_VERSION   RSFORMAT_CURRENT

Definition at line 56 of file rulesave.c.

Function Documentation

◆ create_ruleset_file()

static struct section_file * create_ruleset_file ( const char *  rsname,
const char *  rstype 
)
static

◆ effect_save()

static bool effect_save ( struct effect *  peffect,
void *  data 
)
static

Save one effect. Callback called for each effect in cache.

Definition at line 798 of file rulesave.c.

Referenced by save_effects_ruleset().

◆ save_action_actor_consuming_always()

static bool save_action_actor_consuming_always ( struct section_file *  sfile,
action_id  act 
)
static

Save if an action always will consume the actor.

Definition at line 942 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_action_auto_actions()

static bool save_action_auto_actions ( struct section_file *  sfile,
const int  aap,
const char *  actions_path 
)
static

Save an action auto performer's action list as a regular setting. This is done because the Action Auto Perform rules system isn't ready to be exposed to the ruleset yet. The setting is a list of actions in the order they should be tried.

Definition at line 598 of file rulesave.c.

Referenced by save_action_post_success_force(), save_actions_ruleset(), and save_muuk_action_auto().

◆ save_action_auto_uflag_block()

static bool save_action_auto_uflag_block ( struct section_file *  sfile,
const int  aap,
const char *  uflags_path,
bool(*)(const struct requirement *preq)  unexpected_req 
)
static

Save an action auto performer's !present utype reqs as a regular setting. This is done because the Action Auto Perform rules system isn't ready to be exposed to the ruleset yet. The setting is a list of utype flags that prevents the auto action performer.

Definition at line 547 of file rulesave.c.

Referenced by save_muuk_action_auto().

◆ save_action_blocked_by()

static bool save_action_blocked_by ( struct section_file *  sfile,
struct action *  paction 
)
static

Save what actions will block this action.

Definition at line 967 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_action_kind()

static bool save_action_kind ( struct section_file *  sfile,
action_id  act 
)
static

Save details of an action.

Definition at line 918 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_action_max_range()

static bool save_action_max_range ( struct section_file *  sfile,
action_id  act 
)
static

Save max range of an action.

Definition at line 872 of file rulesave.c.

Referenced by save_action_range().

◆ save_action_post_success_force()

static bool save_action_post_success_force ( struct section_file *  sfile,
int  performer_slot,
struct action *  paction 
)
static

Save what actions an actor under certain circumstances will be forced to perform after successfully performing this action.

Definition at line 1020 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_action_range()

static bool save_action_range ( struct section_file *  sfile,
action_id  act 
)
static

Save range of an action.

Definition at line 892 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_actions_ruleset()

static bool save_actions_ruleset ( const char *  filename,
const char *  name 
)
static

Save actions.ruleset

Definition at line 1082 of file rulesave.c.

Referenced by save_ruleset().

◆ save_building_list()

static bool save_building_list ( struct section_file *  sfile,
int *  input,
const char *  path,
const char *  entry 
)
static

Save buildings vector. Input is B_LAST terminated array of buildings to save.

Definition at line 283 of file rulesave.c.

Referenced by save_game_ruleset(), and save_nation().

◆ save_buildings_ruleset()

static bool save_buildings_ruleset ( const char *  filename,
const char *  name 
)
static

Save buildings.ruleset

Definition at line 387 of file rulesave.c.

Referenced by save_ruleset().

◆ save_bv_actions()

static bool save_bv_actions ( struct section_file *  sfile,
bv_actions  content,
const char *  path 
)
static

Save a bv_actions to the ruleset as a list of actions.

Definition at line 1049 of file rulesave.c.

Referenced by save_actions_ruleset().

◆ save_cities_ruleset()

static bool save_cities_ruleset ( const char *  filename,
const char *  name 
)
static

Save cities.ruleset

Definition at line 671 of file rulesave.c.

Referenced by save_ruleset().

◆ save_combat_bonuses()

static bool save_combat_bonuses ( struct section_file *  sfile,
struct unit_type *  put,
char *  path 
)
static

Save unit combat bonuses list.

Definition at line 3107 of file rulesave.c.

Referenced by save_units_ruleset().

◆ save_default_bool()

static bool save_default_bool ( struct section_file *  sfile,
bool  value,
bool  default_value,
const char *  path,
const char *  entry 
)
static

Save bool value that has default applied upon loading.

Definition at line 106 of file rulesave.c.

Referenced by save_action_actor_consuming_always(), save_actions_ruleset(), save_cities_ruleset(), and save_game_ruleset().

◆ save_default_int()

static bool save_default_int ( struct section_file *  sfile,
int  value,
int  default_value,
const char *  path,
const char *  entry 
)
static

Save int value that has default applied upon loading.

Definition at line 86 of file rulesave.c.

Referenced by save_action_max_range(), save_action_range(), save_cities_ruleset(), save_game_ruleset(), and save_governments_ruleset().

◆ save_effects_ruleset()

static bool save_effects_ruleset ( const char *  filename,
const char *  name 
)
static

Save effects.ruleset

Definition at line 828 of file rulesave.c.

Referenced by save_ruleset().

◆ save_game_ruleset()

static bool save_game_ruleset ( const char *  filename,
const char *  name 
)
static

Save game.ruleset

Definition at line 1259 of file rulesave.c.

Referenced by save_ruleset().

◆ save_gov_ref()

static bool save_gov_ref ( struct section_file *  sfile,
const struct government *  gov,
const char *  path,
const char *  entry 
)
static

Save government reference

Definition at line 270 of file rulesave.c.

Referenced by save_governments_ruleset().

◆ save_governments_ruleset()

static bool save_governments_ruleset ( const char *  filename,
const char *  name 
)
static

Save governments.ruleset

Definition at line 1907 of file rulesave.c.

Referenced by save_ruleset().

◆ save_helptext()

static bool save_helptext ( struct section_file *  sfile,
struct strvec *  to_save,
const char *  path,
const char *  entry 
)
static

◆ save_luadata()

static bool save_luadata ( const char *  filename)
static

Save luadata.txt

Definition at line 3406 of file rulesave.c.

Referenced by save_ruleset().

◆ save_muuk_action_auto()

static bool save_muuk_action_auto ( struct section_file *  sfile,
const int  aap,
const char *  item 
)
static

Save the action a unit should perform when its missing food, gold or shield upkeep. Save as regular settings since the Action Auto Perform rules system isn't ready to be exposed to the ruleset yet.

Definition at line 651 of file rulesave.c.

Referenced by save_cities_ruleset().

◆ save_name_translation()

static bool save_name_translation ( struct section_file *  sfile,
struct name_translation *  name,
const char *  path 
)
static

◆ save_nation()

static bool save_nation ( struct section_file *  sfile,
struct nation_type *  pnat,
int  sect_idx 
)
static

Save a single nation.

Definition at line 2042 of file rulesave.c.

Referenced by save_nations_ruleset().

◆ save_nations_ruleset()

static bool save_nations_ruleset ( const char *  filename,
const char *  name,
struct rule_data *  data 
)
static

Save nations.ruleset

Definition at line 2230 of file rulesave.c.

Referenced by save_ruleset().

◆ save_reqs_vector()

static bool save_reqs_vector ( struct section_file *  sfile,
const struct requirement_vector *  reqs,
const char *  path,
const char *  entry 
)
static

◆ save_ruleset()

bool save_ruleset ( const char *  path,
const char *  name,
struct rule_data *  data 
)

Save ruleset to directory given.

Definition at line 3418 of file rulesave.c.

Referenced by main(), and tab_misc::save_now().

◆ save_ruleset_file()

static bool save_ruleset_file ( struct section_file *  sfile,
const char *  filename 
)
static

◆ save_script_lua()

static bool save_script_lua ( const char *  filename,
const char *  name,
const char *  buffer 
)
static

Save script.lua

Definition at line 3379 of file rulesave.c.

Referenced by save_ruleset().

◆ save_styles_ruleset()

static bool save_styles_ruleset ( const char *  filename,
const char *  name 
)
static

Save styles.ruleset

Definition at line 483 of file rulesave.c.

Referenced by save_ruleset().

◆ save_tech_list()

static bool save_tech_list ( struct section_file *  sfile,
int *  input,
const char *  path,
const char *  entry 
)
static

Save techs vector. Input is A_LAST terminated array of techs to save.

Definition at line 210 of file rulesave.c.

Referenced by save_game_ruleset(), and save_nation().

◆ save_tech_ref()

static bool save_tech_ref ( struct section_file *  sfile,
const struct advance *  padv,
const char *  path,
const char *  entry 
)
static

Save tech reference

Definition at line 233 of file rulesave.c.

Referenced by save_techs_ruleset().

◆ save_techs_ruleset()

static bool save_techs_ruleset ( const char *  filename,
const char *  name 
)
static

Save techs.ruleset

Definition at line 2355 of file rulesave.c.

Referenced by save_ruleset().

◆ save_terrain_ref()

static bool save_terrain_ref ( struct section_file *  sfile,
const struct terrain *  save,
const struct terrain *  pthis,
const char *  path,
const char *  entry 
)
static

Save terrain reference

Definition at line 250 of file rulesave.c.

Referenced by save_terrain_ruleset().

◆ save_terrain_ruleset()

static bool save_terrain_ruleset ( const char *  filename,
const char *  name 
)
static

Save terrain.ruleset

Definition at line 2461 of file rulesave.c.

Referenced by save_ruleset().

◆ save_traits()

static bool save_traits ( struct trait_limits *  traits,
struct trait_limits *  default_traits,
struct section_file *  sfile,
const char *  secname,
const char *  field_prefix 
)
static

Save list of AI traits

Definition at line 1996 of file rulesave.c.

Referenced by save_nation(), and save_nations_ruleset().

◆ save_uclass_vec()

static bool save_uclass_vec ( struct section_file *  sfile,
bv_unit_classes *  bits,
const char *  path,
const char *  entry,
bool  unreachable_only 
)
static

Save vector of unit class names based on bitvector bits

Definition at line 330 of file rulesave.c.

Referenced by save_units_ruleset().

◆ save_unit_list()

static bool save_unit_list ( struct section_file *  sfile,
struct unit_type **  input,
const char *  path,
const char *  entry 
)
static

Save units vector. Input is nullptr terminated array of units to save.

Definition at line 307 of file rulesave.c.

Referenced by save_nation().

◆ save_units_ruleset()

static bool save_units_ruleset ( const char *  filename,
const char *  name 
)
static

Save units.ruleset

Definition at line 3144 of file rulesave.c.

Referenced by save_ruleset().

◆ save_veteran_system()

static bool save_veteran_system ( struct section_file *  sfile,
const char *  path,
struct veteran_system *  vsystem 
)
static

Save one veteran system.

Definition at line 3072 of file rulesave.c.

Referenced by save_units_ruleset().

◆ unexpected_non_otype()

static bool unexpected_non_otype ( const struct requirement *  req)
static

Missing unit upkeep should only contain output type and absence of blocking unit type flag requirements.

Definition at line 641 of file rulesave.c.

Referenced by save_muuk_action_auto().