[Freeciv-Dev] Re: (PR#3621) Freeciv 1.14.0 Changes Nations in Saved Game
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Sat, Mar 29, 2003 at 06:56:52PM -0800, Mike Kaufman wrote:
> On Sat, Mar 29, 2003 at 03:36:16PM -0800, Raimar Falke wrote:
> >
> > Save a game with 1.14.0 and load it with the CVS version. Since the
> > savegame only contains the nation ids and these got reordered you end
> > up with different nations.
>
> even with this supposition, I cannot reproduce. You have reproduced this?
> Note that this was added on Jan 29th to savegame.c:
>
> /* 1.15 and later versions store nations by name. Try that first. */
> p = secfile_lookup_str_default(file, NULL, "player%d.nation", plrno);
> if (!p) {
> /*
> * Otherwise read as a pre-1.15 savefile with numeric nation indexes.
> * This random-looking order is from the old nations/ruleset file.
> * Use it to convert old-style nation indices to name strings.
> * The idea is not to be dependent on the order in which nations
> * get read into the registry.
> */
> const char *name_order[] = {
> "roman", "babylonian", "german", "egyptian", "american", "greek",
> "indian", "russian", "zulu", "french", "aztec", "chinese", "english",
> "mongol", "turk", "spanish", "persian", "arab", "carthaginian", "inca",
> "viking", "polish", "hungarian", "danish", "dutch", "swedish",
> "japanese", "portuguese", "finnish", "sioux", "czech", "australian",
> "welsh", "korean", "scottish", "israeli", "argentine", "canadian",
> "ukrainian", "lithuanian", "kenyan", "dunedain", "vietnamese", "thai",
> "mordor", "bavarian", "brazilian", "irish", "cornish", "italian",
> "filipino", "estonian", "latvian", "boer", "silesian", "singaporean",
> "chilean", "catalan", "croatian", "slovenian", "serbian", "barbarian",
> };
> p = (char *)name_order[secfile_lookup_int(file, "player%d.race", plrno)];
> }
> plr->nation = find_nation_by_name_orig(p);
I missed this completely.
Ok these leaves two smaller problems:
- using an unknown value as an array index in the code above
- loading a new savegame with an old server. ESR also noted this in
his comment:
Savefiles written by the new savegame() may even be readable by
older versions, because the numeric index is still saved as
"race". The nation assignments in the resulting save may be
scrambled when reread, though.
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
Tank: So what do you need? Besides a miracle.
Neo: Guns. Lots of guns.
-- From The Matrix
|
|