Bug #1523 » 0055-savecompat-Update-capitals-when-loading-3.3-savegame.patch
server/savegame/savecompat.c | ||
---|---|---|
/* server */
|
||
#include "aiiface.h"
|
||
#include "plrhand.h"
|
||
#include "setcompat.h"
|
||
#include "settings.h"
|
||
#include "unittools.h"
|
||
... | ... | |
static void compat_load_030300(struct loaddata *loading, enum sgf_version format_class);
|
||
static void compat_post_load_030100(struct loaddata *loading,
|
||
enum sgf_version format_class);
|
||
static void compat_post_load_030300(struct loaddata *loading,
|
||
enum sgf_version format_class);
|
||
#ifdef FREECIV_DEV_SAVE_COMPAT
|
||
static void compat_load_dev(struct loaddata *loading);
|
||
... | ... | |
/* version 51 to 59 are reserved for possible changes in 3.1.x */
|
||
{ 60, compat_load_030200, NULL },
|
||
/* version 61 to 69 are reserved for possible changes in 3.2.x */
|
||
{ 70, compat_load_030300, NULL },
|
||
{ 70, compat_load_030300, compat_post_load_030300 },
|
||
/* Current savefile version is listed above this line; it corresponds to
|
||
the definitions in this file. */
|
||
};
|
||
... | ... | |
Some compatibility needs access to game state not available in
|
||
sg_load_compat(). Do those here.
|
||
This function is called after a savegame has loaded the game state. The
|
||
data should be changed in the game state since the game already is done
|
||
This function is called after a savegame has loaded the game state.
|
||
The data should be changed in the game state since the game already is done
|
||
loading. Prefer using sg_load_compat() when possible.
|
||
****************************************************************************/
|
||
void sg_load_post_load_compat(struct loaddata *loading,
|
||
... | ... | |
} player_slots_iterate_end;
|
||
}
|
||
/************************************************************************//**
|
||
Update loaded game data from 3.3.x to something usable by 3.3.0.
|
||
****************************************************************************/
|
||
static void compat_post_load_030300(struct loaddata *loading,
|
||
enum sgf_version format_class)
|
||
{
|
||
/* Check status and return if not OK (sg_success FALSE). */
|
||
sg_check_ret();
|
||
/* Capital information was not saved in older savegames,
|
||
* so we have no capital setup at all at the moment.
|
||
* Best we can do is to do recalculation now. It might be
|
||
* a bit off compared to the situation before the game was saved,
|
||
* but definitely better than not setting capitals at all. */
|
||
players_iterate_alive(pplayer) {
|
||
update_capital(pplayer);
|
||
} players_iterate_alive_end;
|
||
}
|
||
/************************************************************************//**
|
||
Translate savegame secfile data from earlier development version format
|
||
to current one.
|
- « Previous
- 1
- 2
- Next »