Author: cazfi
Date: Sat Jan  2 00:16:18 2016
New Revision: 31294

URL: http://svn.gna.org/viewcvs/freeciv?rev=31294&view=rev
Log:
Add player 'turns_alive' and 'last_war' in savecompat 2.5 to 2.6 conversion 
function.

See bug #24248

Modified:
    branches/S2_6/server/savecompat.c
    branches/S2_6/server/savegame2.c

Modified: branches/S2_6/server/savecompat.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/savecompat.c?rev=31294&r1=31293&r2=31294&view=diff
==============================================================================
--- branches/S2_6/server/savecompat.c   (original)
+++ branches/S2_6/server/savecompat.c   Sat Jan  2 00:16:18 2016
@@ -561,6 +561,7 @@
   bool team_pooled_research = GAME_DEFAULT_TEAM_POOLED_RESEARCH;
   int tsize;
   int ti;
+  int turn;
 
   /* Check status and return if not OK (sg_success != TRUE). */
   sg_check_ret();
@@ -782,6 +783,8 @@
   sg_failure_ret(secfile_lookup_int(loading->file, &tsize, 
"savefile.trait_size"),
                  "Trait size: %s", secfile_error());
 
+  turn = secfile_lookup_int_default(loading->file, 0, "game.turn");
+
   for (plrno = 0; plrno < nplayers; plrno++) {
     bool got_first_city;
     int old_barb_type;
@@ -812,6 +815,13 @@
     new_barb_type = barb_type_convert(old_barb_type);
     secfile_insert_str(loading->file, barbarian_type_name(new_barb_type),
                        "player%d.ai.barb_type", plrno);
+
+    /* Pre-2.6 didn't record when a player was created or died, so we have
+     * to assume they lived from the start of the game until last turn */
+    secfile_insert_int(loading->file, turn, "player%d.turns_alive", plrno);
+
+    /* As if there never has been a war. */
+    secfile_insert_int(loading->file, -1, "player%d.last_war", plrno); 
 
     for (i = 0; i < tsize; i++) {
       int val;

Modified: branches/S2_6/server/savegame2.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/savegame2.c?rev=31294&r1=31293&r2=31294&view=diff
==============================================================================
--- branches/S2_6/server/savegame2.c    (original)
+++ branches/S2_6/server/savegame2.c    Sat Jan  2 00:16:18 2016
@@ -4232,13 +4232,12 @@
   sg_failure_ret(secfile_lookup_bool(loading->file, &plr->is_alive,
                                      "player%d.is_alive", plrno),
                  "%s", secfile_error());
-  /* Pre-2.6 didn't record when a player was created or died, so we have
-   * to assume they lived from the start of the game until last turn */
-  plr->turns_alive = secfile_lookup_int_default(loading->file,
-                                                game.info.turn,
-                                                "player%d.turns_alive", plrno);
-  plr->last_war_action = secfile_lookup_int_default(loading->file, -1,
-                                                    "player%d.last_war", 
plrno);
+  sg_failure_ret(secfile_lookup_int(loading->file, &plr->turns_alive,
+                                    "player%d.turns_alive", plrno),
+                 "%s", secfile_error());
+  sg_failure_ret(secfile_lookup_int(loading->file, &plr->last_war_action,
+                                    "player%d.last_war", plrno),
+                 "%s", secfile_error());
   plr->phase_done = secfile_lookup_bool_default(loading->file, FALSE,
                                                 "player%d.phase_done", plrno);
   sg_failure_ret(secfile_lookup_int(loading->file, &plr->economic.gold,


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to