Author: cazfi
Date: Sun Aug  9 19:30:42 2015
New Revision: 29429

URL: http://svn.gna.org/viewcvs/freeciv?rev=29429&view=rev
Log:
Save player phase_done information. Use it after loading the savegame if game 
is in turnblock mode.

See patch #6192

Modified:
    trunk/common/player.c
    trunk/server/savegame.c
    trunk/server/savegame2.c
    trunk/server/savegame3.c
    trunk/server/srv_main.c

Modified: trunk/common/player.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/player.c?rev=29429&r1=29428&r2=29429&view=diff
==============================================================================
--- trunk/common/player.c       (original)
+++ trunk/common/player.c       Sun Aug  9 19:30:42 2015
@@ -534,6 +534,7 @@
   pplayer->turns_alive = 0;
   pplayer->is_winner = FALSE;
   pplayer->last_war_action = -1;
+  pplayer->phase_done = FALSE;
 
   pplayer->revolution_finishes = -1;
 

Modified: trunk/server/savegame.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/savegame.c?rev=29429&r1=29428&r2=29429&view=diff
==============================================================================
--- trunk/server/savegame.c     (original)
+++ trunk/server/savegame.c     Sun Aug  9 19:30:42 2015
@@ -1797,6 +1797,7 @@
   fc_assert_exit_msg(secfile_lookup_bool(file, &plr->ai_controlled,
                                          "player%d.ai.control", plrno),
                      "%s", secfile_error());
+  plr->phase_done = FALSE;
 
   /* Backwards-compatibility: the tech goal value is still stored in the
    * "ai" section even though it was moved into the research struct. */

Modified: trunk/server/savegame2.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/savegame2.c?rev=29429&r1=29428&r2=29429&view=diff
==============================================================================
--- trunk/server/savegame2.c    (original)
+++ trunk/server/savegame2.c    Sun Aug  9 19:30:42 2015
@@ -2720,6 +2720,8 @@
                                                 "player%d.turns_alive", plrno);
   plr->last_war_action = secfile_lookup_int_default(loading->file, -1,
                                                     "player%d.last_war", 
plrno);
+  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,
                                     "player%d.gold", plrno),
                  "%s", secfile_error());

Modified: trunk/server/savegame3.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/savegame3.c?rev=29429&r1=29428&r2=29429&view=diff
==============================================================================
--- trunk/server/savegame3.c    (original)
+++ trunk/server/savegame3.c    Sun Aug  9 19:30:42 2015
@@ -3635,6 +3635,8 @@
                  "%s", secfile_error());
   plr->last_war_action = secfile_lookup_int_default(loading->file, -1,
                                                     "player%d.last_war", 
plrno);
+  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,
                                     "player%d.gold", plrno),
                  "%s", secfile_error());
@@ -3872,6 +3874,8 @@
                      "player%d.last_war", plrno);
   secfile_insert_bool(saving->file, plr->ai_controlled,
                       "player%d.ai.control", plrno);
+  secfile_insert_bool(saving->file, plr->phase_done,
+                      "player%d.phase_done", plrno);
 
   players_iterate(pplayer) {
     char buf[32];

Modified: trunk/server/srv_main.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/srv_main.c?rev=29429&r1=29428&r2=29429&view=diff
==============================================================================
--- trunk/server/srv_main.c     (original)
+++ trunk/server/srv_main.c     Sun Aug  9 19:30:42 2015
@@ -971,7 +971,10 @@
   conn_list_do_buffer(game.est_connections);
 
   phase_players_iterate(pplayer) {
-    pplayer->phase_done = FALSE;
+    if (is_new_phase || !game.server.turnblock) {
+      /* Otherwise respect what was loaded from the savegame. */
+      pplayer->phase_done = FALSE;
+    }
     pplayer->ai_phase_done = FALSE;
   } phase_players_iterate_end;
   send_player_all_c(NULL, NULL);


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

Reply via email to