Author: cazfi
Date: Sat Jan 23 14:47:14 2016
New Revision: 31549

URL: http://svn.gna.org/viewcvs/freeciv?rev=31549&view=rev
Log:
Turned 'did_buy' and 'did_sell' to booleans in savegame3.c saves.

See patch #6749

Modified:
    trunk/server/savecompat.c
    trunk/server/savegame3.c

Modified: trunk/server/savecompat.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/savecompat.c?rev=31549&r1=31548&r2=31549&view=diff
==============================================================================
--- trunk/server/savecompat.c   (original)
+++ trunk/server/savecompat.c   Sat Jan 23 14:47:14 2016
@@ -1402,12 +1402,36 @@
   /* Idle turns */
   for (plrno = 0; plrno < nplayers; plrno++) {
     int idlet;
+    int ncities;
+    int i;
 
     idlet = secfile_lookup_int_default(loading->file, -1,
                                        "player%d.idle_turns", plrno);
 
     if (idlet == -1) {
       secfile_insert_int(loading->file, 0, "player%d.idle_turns", plrno);
+    }
+
+    ncities = secfile_lookup_int_default(loading->file, 0, "player%d.ncities", 
plrno);
+
+    for (i = 0; i < ncities; i++) {
+      struct entry *did_buy = secfile_entry_lookup(loading->file, 
"player%d.c%d.did_buy",
+                                                   plrno, i);
+
+      /* If did buy is an integer value, make it boolean instead */
+      if (did_buy != NULL && entry_type(did_buy) == ENTRY_INT) {
+        int val;
+
+        entry_int_get(did_buy, &val);
+
+        if (val) {
+          secfile_replace_bool(loading->file, TRUE, "player%d.c%d.did_buy",
+                               plrno, i);
+        } else {
+          secfile_replace_bool(loading->file, FALSE, "player%d.c%d.did_buy",
+                               plrno, i);
+        }
+      }
     }
   }
 }

Modified: trunk/server/savegame3.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/savegame3.c?rev=31549&r1=31548&r2=31549&view=diff
==============================================================================
--- trunk/server/savegame3.c    (original)
+++ trunk/server/savegame3.c    Sat Jan 23 14:47:14 2016
@@ -4475,12 +4475,10 @@
   sg_warn_ret_val(secfile_lookup_int(loading->file, &pcity->turn_founded,
                                      "%s.turn_founded", citystr),
                   FALSE, "%s", secfile_error());
-  sg_warn_ret_val(secfile_lookup_int(loading->file, &i, "%s.did_buy",
-                                     citystr), FALSE, "%s", secfile_error());
-  pcity->did_buy = (i != 0);
-
-  pcity->did_sell =
-    secfile_lookup_bool_default(loading->file, FALSE, "%s.did_sell", citystr);
+  sg_warn_ret_val(secfile_lookup_bool(loading->file, &pcity->did_buy, 
"%s.did_buy",
+                                      citystr), FALSE, "%s", secfile_error());
+  sg_warn_ret_val(secfile_lookup_bool(loading->file, &pcity->did_sell, 
"%s.did_sell",
+                                      citystr), FALSE, "%s", secfile_error());
 
   sg_warn_ret_val(secfile_lookup_int(loading->file, &pcity->turn_last_built,
                                     "%s.turn_last_built", citystr),
@@ -4791,14 +4789,7 @@
     secfile_insert_int(saving->file, pcity->server.steal, "%s.steal", buf);
     secfile_insert_int(saving->file, pcity->turn_founded, "%s.turn_founded",
                        buf);
-
-    if (pcity->turn_founded == game.info.turn) {
-      j = -1; /* undocumented hack */
-    } else {
-      fc_assert(pcity->did_buy == TRUE || pcity->did_buy == FALSE);
-      j = pcity->did_buy ? 1 : 0;
-    }
-    secfile_insert_int(saving->file, j, "%s.did_buy", buf);
+    secfile_insert_bool(saving->file, pcity->did_buy, "%s.did_buy", buf);
     secfile_insert_bool(saving->file, pcity->did_sell, "%s.did_sell", buf);
     secfile_insert_int(saving->file, pcity->turn_last_built,
                        "%s.turn_last_built", buf);


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

Reply via email to