Freeciv-3.1
|
#include <ctype.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bitvector.h"
#include "fcintl.h"
#include "idex.h"
#include "log.h"
#include "mem.h"
#include "rand.h"
#include "registry.h"
#include "shared.h"
#include "support.h"
#include "timing.h"
#include "achievements.h"
#include "ai.h"
#include "capability.h"
#include "citizens.h"
#include "city.h"
#include "game.h"
#include "government.h"
#include "map.h"
#include "mapimg.h"
#include "movement.h"
#include "multipliers.h"
#include "packets.h"
#include "research.h"
#include "rgbcolor.h"
#include "specialist.h"
#include "unit.h"
#include "unitlist.h"
#include "version.h"
#include "barbarian.h"
#include "citizenshand.h"
#include "citytools.h"
#include "cityturn.h"
#include "diplhand.h"
#include "maphand.h"
#include "meta.h"
#include "notify.h"
#include "plrhand.h"
#include "report.h"
#include "ruleset.h"
#include "sanitycheck.h"
#include "savecompat.h"
#include "score.h"
#include "settings.h"
#include "spacerace.h"
#include "srv_main.h"
#include "stdinhand.h"
#include "techtools.h"
#include "unittools.h"
#include "advdata.h"
#include "advbuilding.h"
#include "infracache.h"
#include "mapgen.h"
#include "mapgen_utils.h"
#include "script_server.h"
#include "aitraits.h"
#include "difficulty.h"
#include "savegame3.h"
Go to the source code of this file.
Data Structures | |
struct | savedata |
Macros | |
#define | SAVE_MAP_CHAR(ptile, GET_XY_CHAR, secfile, secpath, ...) |
#define | LOAD_MAP_CHAR(ch, ptile, SET_XY_CHAR, secfile, secpath, ...) |
#define | halfbyte_iterate_extras(e, num_extras_types) |
#define | halfbyte_iterate_extras_end |
#define | TOKEN_SIZE 10 |
#define | PART_SIZE (3*256) |
#define | PART_ADJUST (3) |
Functions | |
static void | savegame3_save_real (struct section_file *file, const char *save_reason, bool scenario) |
static struct loaddata * | loaddata_new (struct section_file *file) |
static void | loaddata_destroy (struct loaddata *loading) |
static struct savedata * | savedata_new (struct section_file *file, const char *save_reason, bool scenario) |
static void | savedata_destroy (struct savedata *saving) |
static enum unit_orders | char2order (char order) |
static char | order2char (enum unit_orders order) |
static enum direction8 | char2dir (char dir) |
static char | dir2char (enum direction8 dir) |
static char | activity2char (enum unit_activity activity) |
static enum unit_activity | char2activity (char activity) |
static char * | quote_block (const void *const data, int length) |
static int | unquote_block (const char *const quoted_, void *dest, int dest_length) |
static void | worklist_load (struct section_file *file, int wlist_max_length, struct worklist *pwl, const char *path,...) |
static void | worklist_save (struct section_file *file, const struct worklist *pwl, int max_length, const char *path,...) |
static void | unit_ordering_calc (void) |
static void | unit_ordering_apply (void) |
static void | sg_extras_set (bv_extras *extras, char ch, struct extra_type **idx) |
static char | sg_extras_get (bv_extras extras, struct extra_type *presource, const int *idx) |
static struct terrain * | char2terrain (char ch) |
static char | terrain2char (const struct terrain *pterrain) |
static Tech_type_id | technology_load (struct section_file *file, const char *path, int plrno) |
static void | technology_save (struct section_file *file, const char *path, int plrno, Tech_type_id tech) |
static void | sg_load_savefile (struct loaddata *loading) |
static void | sg_save_savefile (struct savedata *saving) |
static void | sg_save_savefile_options (struct savedata *saving, const char *option) |
static void | sg_load_game (struct loaddata *loading) |
static void | sg_save_game (struct savedata *saving) |
static void | sg_load_ruledata (struct loaddata *loading) |
static void | sg_save_ruledata (struct savedata *saving) |
static void | sg_load_random (struct loaddata *loading) |
static void | sg_save_random (struct savedata *saving) |
static void | sg_load_script (struct loaddata *loading) |
static void | sg_save_script (struct savedata *saving) |
static void | sg_load_scenario (struct loaddata *loading) |
static void | sg_save_scenario (struct savedata *saving) |
static void | sg_load_settings (struct loaddata *loading) |
static void | sg_save_settings (struct savedata *saving) |
static void | sg_load_map (struct loaddata *loading) |
static void | sg_save_map (struct savedata *saving) |
static void | sg_load_map_tiles (struct loaddata *loading) |
static void | sg_save_map_tiles (struct savedata *saving) |
static void | sg_load_map_tiles_extras (struct loaddata *loading) |
static void | sg_save_map_tiles_extras (struct savedata *saving) |
static void | sg_load_map_startpos (struct loaddata *loading) |
static void | sg_save_map_startpos (struct savedata *saving) |
static void | sg_load_map_owner (struct loaddata *loading) |
static void | sg_save_map_owner (struct savedata *saving) |
static void | sg_load_map_worked (struct loaddata *loading) |
static void | sg_save_map_worked (struct savedata *saving) |
static void | sg_load_map_known (struct loaddata *loading) |
static void | sg_save_map_known (struct savedata *saving) |
static void | sg_load_players_basic (struct loaddata *loading) |
static void | sg_load_players (struct loaddata *loading) |
static void | sg_load_player_main (struct loaddata *loading, struct player *plr) |
static void | sg_load_player_cities (struct loaddata *loading, struct player *plr) |
static bool | sg_load_player_city (struct loaddata *loading, struct player *plr, struct city *pcity, const char *citystr, int wlist_max_length) |
static void | sg_load_player_city_citizens (struct loaddata *loading, struct player *plr, struct city *pcity, const char *citystr) |
static void | sg_load_player_units (struct loaddata *loading, struct player *plr) |
static bool | sg_load_player_unit (struct loaddata *loading, struct player *plr, struct unit *punit, int orders_max_length, const char *unitstr) |
static void | sg_load_player_units_transport (struct loaddata *loading, struct player *plr) |
static void | sg_load_player_attributes (struct loaddata *loading, struct player *plr) |
static void | sg_load_player_vision (struct loaddata *loading, struct player *plr) |
static bool | sg_load_player_vision_city (struct loaddata *loading, struct player *plr, struct vision_site *pdcity, const char *citystr) |
static void | sg_save_players (struct savedata *saving) |
static void | sg_save_player_main (struct savedata *saving, struct player *plr) |
static void | sg_save_player_cities (struct savedata *saving, struct player *plr) |
static void | sg_save_player_units (struct savedata *saving, struct player *plr) |
static void | sg_save_player_attributes (struct savedata *saving, struct player *plr) |
static void | sg_save_player_vision (struct savedata *saving, struct player *plr) |
static void | sg_load_researches (struct loaddata *loading) |
static void | sg_save_researches (struct savedata *saving) |
static void | sg_load_event_cache (struct loaddata *loading) |
static void | sg_save_event_cache (struct savedata *saving) |
static void | sg_load_treaties (struct loaddata *loading) |
static void | sg_save_treaties (struct savedata *saving) |
static void | sg_load_history (struct loaddata *loading) |
static void | sg_save_history (struct savedata *saving) |
static void | sg_load_mapimg (struct loaddata *loading) |
static void | sg_save_mapimg (struct savedata *saving) |
static void | sg_load_sanitycheck (struct loaddata *loading) |
static void | sg_save_sanitycheck (struct savedata *saving) |
void | savegame3_save (struct section_file *sfile, const char *save_reason, bool scenario) |
void | savegame3_load (struct section_file *file) |
Variables | |
bool | sg_success |
static const char | savefile_options_default [] |
#define halfbyte_iterate_extras | ( | e, | |
num_extras_types | |||
) |
Definition at line 249 of file savegame3.c.
#define halfbyte_iterate_extras_end |
Definition at line 254 of file savegame3.c.
#define LOAD_MAP_CHAR | ( | ch, | |
ptile, | |||
SET_XY_CHAR, | |||
secfile, | |||
secpath, | |||
... | |||
) |
Definition at line 213 of file savegame3.c.
#define PART_ADJUST (3) |
#define PART_SIZE (3*256) |
#define SAVE_MAP_CHAR | ( | ptile, | |
GET_XY_CHAR, | |||
secfile, | |||
secpath, | |||
... | |||
) |
Definition at line 166 of file savegame3.c.
#define TOKEN_SIZE 10 |
Definition at line 270 of file savegame3.c.
|
static |
Returns a character identifier for an activity. See also char2activity.
Definition at line 795 of file savegame3.c.
Referenced by char2activity(), sg_save_player_cities(), and sg_save_player_units().
|
static |
Returns an activity for a character identifier. See also activity2char.
Definition at line 850 of file savegame3.c.
Referenced by sg_load_player_city(), and sg_load_player_unit().
|
static |
Returns a direction for a character identifier. See also dir2char.
Definition at line 737 of file savegame3.c.
Referenced by sg_load_player_city(), and sg_load_player_unit().
|
static |
Returns an order for a character identifier. See also order2char.
Definition at line 686 of file savegame3.c.
Referenced by sg_load_player_city(), and sg_load_player_unit().
|
static |
Dereferences the terrain character. See terrains[].identifier example: char2terrain('a') => T_ARCTIC
Definition at line 1133 of file savegame3.c.
Referenced by sg_load_map_tiles(), and sg_load_player_vision().
|
static |
Returns a character identifier for a direction. See also char2dir.
Definition at line 766 of file savegame3.c.
Referenced by sg_save_player_cities(), and sg_save_player_units().
|
static |
Free resources allocated for loaddata item.
Definition at line 603 of file savegame3.c.
Referenced by savegame3_load().
|
static |
Create new loaddata item for given section file.
Definition at line 566 of file savegame3.c.
Referenced by savegame3_load().
|
static |
Returns a character identifier for an order. See also char2order.
Definition at line 713 of file savegame3.c.
Referenced by sg_save_player_cities(), and sg_save_player_units().
|
static |
Quote the memory block denoted by data and length so it consists only of " a-f0-9:". The returned string has to be freed by the caller using free().
Definition at line 870 of file savegame3.c.
Referenced by sg_save_player_attributes().
|
static |
Free resources allocated for savedata item
Definition at line 674 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Create new savedata item for given file.
Definition at line 655 of file savegame3.c.
Referenced by savegame3_save_real().
void savegame3_load | ( | struct section_file * | file | ) |
Really loading the savegame.
Definition at line 444 of file savegame3.c.
Referenced by savegame_load().
void savegame3_save | ( | struct section_file * | sfile, |
const char * | save_reason, | ||
bool | scenario | ||
) |
Main entry point for saving a game in savegame3 format.
Definition at line 417 of file savegame3.c.
Referenced by savegame_save().
|
static |
Really save the game to a file.
Definition at line 511 of file savegame3.c.
Referenced by savegame3_save().
|
static |
Helper function for saving extras into a savegame.
Extras are packed in four to a character in hex notation. 'index' specifies which set of extras are included in this character.
Definition at line 1104 of file savegame3.c.
Referenced by sg_save_map_tiles_extras(), and sg_save_player_vision().
|
static |
Helper function for loading extras from a savegame.
'ch' gives the character loaded from the savegame. Extras are packed in four to a character in hex notation. 'index' is a mapping of savegame bit -> base bit.
Definition at line 1073 of file savegame3.c.
Referenced by sg_load_map_tiles_extras(), and sg_load_player_vision().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Load tile owner information
Definition at line 2986 of file savegame3.c.
Referenced by sg_load_map().
|
static |
Load starting positions for the players from a savegame file. There should be at least enough for every player.
Definition at line 2844 of file savegame3.c.
Referenced by sg_load_map().
|
static |
|
static |
|
static |
Load worked tiles information
Definition at line 3233 of file savegame3.c.
Referenced by sg_load_map().
|
static |
Load player (client) attributes data
Definition at line 6582 of file savegame3.c.
Referenced by sg_load_players().
|
static |
Load data for one city. sg_save_player_city() is not defined.
Definition at line 4849 of file savegame3.c.
Referenced by sg_load_player_cities().
|
static |
Load nationality data for one city.
Definition at line 5284 of file savegame3.c.
Referenced by sg_load_player_cities().
Main player data loading function
Definition at line 3942 of file savegame3.c.
Referenced by sg_load_players().
|
static |
Load one unit. sg_save_player_unit() is not defined.
Definition at line 5797 of file savegame3.c.
Referenced by sg_load_player_units().
|
static |
Load the transport status of all units. This is separated from the other code as all units must be known.
Definition at line 6278 of file savegame3.c.
Referenced by sg_load_players().
|
static |
Load data for one seen city. sg_save_player_vision_city() is not defined.
Definition at line 6935 of file savegame3.c.
Referenced by sg_load_player_vision().
|
static |
|
static |
Load '[player]' (basic data).
Definition at line 3436 of file savegame3.c.
Referenced by savegame3_load().
|
static |
|
static |
|
static |
|
static |
Sanity check for loaded game.
Definition at line 7647 of file savegame3.c.
Referenced by savegame3_load().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Save '[event_cache]'.
Definition at line 7400 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
|
static |
|
static |
|
static |
Save tile known status for whole map and all players
Definition at line 3373 of file savegame3.c.
Referenced by sg_save_map().
|
static |
Save tile owner information
Definition at line 3107 of file savegame3.c.
Referenced by sg_save_map().
|
static |
Save the map start positions.
Definition at line 2931 of file savegame3.c.
Referenced by sg_save_map().
|
static |
|
static |
Save information about extras on map
Definition at line 2818 of file savegame3.c.
Referenced by sg_save_map().
|
static |
Save worked tiles information
Definition at line 3277 of file savegame3.c.
Referenced by sg_save_map().
|
static |
Save player (client) attributes data.
Definition at line 6662 of file savegame3.c.
Referenced by sg_save_players().
Main player data saving function.
Definition at line 4416 of file savegame3.c.
Referenced by sg_save_players().
|
static |
|
static |
|
static |
Save '[research]'.
Definition at line 7323 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Save '[ruledata]'.
Definition at line 2163 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Sanity check for saved game.
Definition at line 7820 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Save '[savefile]'.
Definition at line 1667 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Save options for this savegame. sg_load_savefile_options() is not defined.
Definition at line 1946 of file savegame3.c.
Referenced by sg_save_savefile().
|
static |
Save '[scenario]'.
Definition at line 2508 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
|
static |
|
static |
Save '[treaty_xxx]'.
Definition at line 7499 of file savegame3.c.
Referenced by savegame3_save_real().
|
static |
Load technology from path_name and if doesn't exist (because savegame is too old) load from path.
Definition at line 1169 of file savegame3.c.
Referenced by sg_load_researches().
|
static |
Save technology in secfile entry called path_name.
Definition at line 1205 of file savegame3.c.
Referenced by sg_save_researches().
|
static |
References the terrain character. See terrains[].identifier example: terrain2char(T_ARCTIC) => 'a'
Definition at line 1156 of file savegame3.c.
Referenced by sg_save_map_tiles(), and sg_save_player_vision().
|
static |
For each city and tile, sort unit lists according to ord_city and ord_map values.
Definition at line 1052 of file savegame3.c.
Referenced by sg_load_players().
|
static |
Assign values to ord_city and ord_map for each unit, so the values can be saved.
Definition at line 1023 of file savegame3.c.
Referenced by sg_save_players().
|
static |
Unquote a string. The unquoted data is written into dest. If the unquoted data will be larger than dest_length the function aborts. It returns the actual length of the unquoted block.
Definition at line 891 of file savegame3.c.
Referenced by sg_load_player_attributes().
|
static |
Load the worklist elements specified by path to the worklist pointed to by 'pwl'. 'pwl' should be a pointer to an existing worklist.
Definition at line 939 of file savegame3.c.
Referenced by sg_load_player_city().
|
static |
Save the worklist elements specified by path from the worklist pointed to by 'pwl'. 'pwl' should be a pointer to an existing worklist.
Definition at line 985 of file savegame3.c.
Referenced by sg_save_player_cities().
|
static |
Definition at line 272 of file savegame3.c.
Referenced by sg_save_savefile().
|
extern |
Definition at line 32 of file savecompat.c.
Referenced by savegame3_load(), savegame3_save_real(), and sg_load_savefile().