Author: cazfi
Date: Thu Feb 25 10:47:08 2016
New Revision: 32078

URL: http://svn.gna.org/viewcvs/freeciv?rev=32078&view=rev
Log:
Added setting for scenarios to disable Lake Flooding.

See patch #6994

Modified:
    branches/S2_6/client/gui-gtk-2.0/editprop.c
    branches/S2_6/client/gui-gtk-3.0/editprop.c
    branches/S2_6/client/packhand.c
    branches/S2_6/common/game.c
    branches/S2_6/common/packets.def
    branches/S2_6/data/scenarios/british-isles-85x80-v2.80.sav
    branches/S2_6/data/scenarios/earth-160x90-v2.sav
    branches/S2_6/data/scenarios/earth-80x50-v3.sav
    branches/S2_6/data/scenarios/europe-200x100-v2.sav
    branches/S2_6/data/scenarios/france-140x90-v2.sav
    branches/S2_6/data/scenarios/hagworld-120x60-v1.2.sav
    branches/S2_6/data/scenarios/iberian-peninsula-136x100-v1.0.sav
    branches/S2_6/data/scenarios/italy-100x100-v1.5.sav
    branches/S2_6/data/scenarios/japan-88x100-v1.3.sav
    branches/S2_6/data/scenarios/north_america_116x100-v1.2.sav
    branches/S2_6/data/scenarios/tileset-demo.sav
    branches/S2_6/data/scenarios/tutorial.sav
    branches/S2_6/fc_version
    branches/S2_6/server/edithand.c
    branches/S2_6/server/maphand.c
    branches/S2_6/server/savegame.c
    branches/S2_6/server/savegame2.c

Modified: branches/S2_6/client/gui-gtk-2.0/editprop.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-2.0/editprop.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/client/gui-gtk-2.0/editprop.c (original)
+++ branches/S2_6/client/gui-gtk-2.0/editprop.c Thu Feb 25 10:47:08 2016
@@ -365,7 +365,8 @@
   OPID_GAME_SCENARIO_RANDSTATE,
   OPID_GAME_SCENARIO_PLAYERS,
   OPID_GAME_STARTPOS_NATIONS,
-  OPID_GAME_PREVENT_CITIES
+  OPID_GAME_PREVENT_CITIES,
+  OPID_GAME_LAKE_FLOODING
 };
 
 enum object_property_flags {
@@ -1830,6 +1831,9 @@
       case OPID_GAME_PREVENT_CITIES:
         pv->data.v_bool = pgame->scenario.prevent_new_cities;
         break;
+      case OPID_GAME_LAKE_FLOODING:
+        pv->data.v_bool = pgame->scenario.lake_flooding;
+        break;
       default:
         log_error("%s(): Unhandled request for value of property %d "
                   "(%s) from object of type \"%s\".", __FUNCTION__,
@@ -2579,6 +2583,9 @@
       case OPID_GAME_PREVENT_CITIES:
         packet->prevent_new_cities = pv->data.v_bool;
         return;
+      case OPID_GAME_LAKE_FLOODING:
+        packet->lake_flooding = pv->data.v_bool;
+        return;
       default:
         break;
       }
@@ -3022,6 +3029,7 @@
   case OPID_GAME_SCENARIO_PLAYERS:
   case OPID_GAME_STARTPOS_NATIONS:
   case OPID_GAME_PREVENT_CITIES:
+  case OPID_GAME_LAKE_FLOODING:
     button = gtk_check_button_new();
     g_signal_connect(button, "toggled",
         G_CALLBACK(objprop_widget_toggle_button_changed), op);
@@ -3235,6 +3243,7 @@
   case OPID_GAME_SCENARIO_PLAYERS:
   case OPID_GAME_STARTPOS_NATIONS:
   case OPID_GAME_PREVENT_CITIES:
+  case OPID_GAME_LAKE_FLOODING:
     button = objprop_get_child_widget(op, "checkbutton");
     disable_gobject_callback(G_OBJECT(button),
         G_CALLBACK(objprop_widget_toggle_button_changed));
@@ -4306,7 +4315,7 @@
   struct objprop *MY_op = objprop_new(ARG_id, ARG_name,\
                                       ARG_flags, ARG_valtype, pp);\
   objprop_hash_insert(pp->objprop_table, MY_op->id, MY_op);\
-} while (0)
+} while (FALSE)
 
   switch (property_page_get_objtype(pp)) {
   case OBJTYPE_TILE:
@@ -4463,6 +4472,8 @@
             OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
     ADDPROP(OPID_GAME_PREVENT_CITIES, _("Prevent New Cities"),
             OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
+    ADDPROP(OPID_GAME_LAKE_FLOODING, _("Saltwater Flooding Lakes"),
+            OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
     return;
 
   case NUM_OBJTYPES:

Modified: branches/S2_6/client/gui-gtk-3.0/editprop.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-gtk-3.0/editprop.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/client/gui-gtk-3.0/editprop.c (original)
+++ branches/S2_6/client/gui-gtk-3.0/editprop.c Thu Feb 25 10:47:08 2016
@@ -366,7 +366,8 @@
   OPID_GAME_SCENARIO_RANDSTATE,
   OPID_GAME_SCENARIO_PLAYERS,
   OPID_GAME_STARTPOS_NATIONS,
-  OPID_GAME_PREVENT_CITIES
+  OPID_GAME_PREVENT_CITIES,
+  OPID_GAME_LAKE_FLOODING
 };
 
 enum object_property_flags {
@@ -1831,6 +1832,9 @@
       case OPID_GAME_PREVENT_CITIES:
         pv->data.v_bool = pgame->scenario.prevent_new_cities;
         break;
+      case OPID_GAME_LAKE_FLOODING:
+        pv->data.v_bool = pgame->scenario.lake_flooding;
+        break;
       default:
         log_error("%s(): Unhandled request for value of property %d "
                   "(%s) from object of type \"%s\".", __FUNCTION__,
@@ -2579,6 +2583,9 @@
         return;
       case OPID_GAME_PREVENT_CITIES:
         packet->prevent_new_cities = pv->data.v_bool;
+        return;
+      case OPID_GAME_LAKE_FLOODING:
+        packet->lake_flooding = pv->data.v_bool;
         return;
       default:
         break;
@@ -3038,6 +3045,7 @@
   case OPID_GAME_SCENARIO_PLAYERS:
   case OPID_GAME_STARTPOS_NATIONS:
   case OPID_GAME_PREVENT_CITIES:
+  case OPID_GAME_LAKE_FLOODING:
     button = gtk_check_button_new();
     gtk_widget_set_hexpand(button, TRUE);
     gtk_widget_set_halign(button, GTK_ALIGN_END);
@@ -3253,6 +3261,7 @@
   case OPID_GAME_SCENARIO_PLAYERS:
   case OPID_GAME_STARTPOS_NATIONS:
   case OPID_GAME_PREVENT_CITIES:
+  case OPID_GAME_LAKE_FLOODING:
     button = objprop_get_child_widget(op, "checkbutton");
     disable_gobject_callback(G_OBJECT(button),
         G_CALLBACK(objprop_widget_toggle_button_changed));
@@ -4347,7 +4356,7 @@
   struct objprop *MY_op = objprop_new(ARG_id, ARG_name,\
                                       ARG_flags, ARG_valtype, pp);\
   objprop_hash_insert(pp->objprop_table, MY_op->id, MY_op);\
-} while (0)
+} while (FALSE)
 
   switch (property_page_get_objtype(pp)) {
   case OBJTYPE_TILE:
@@ -4503,6 +4512,8 @@
             OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
     ADDPROP(OPID_GAME_PREVENT_CITIES, _("Prevent New Cities"),
             OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
+    ADDPROP(OPID_GAME_LAKE_FLOODING, _("Saltwater Flooding Lakes"),
+            OPF_IN_LISTVIEW | OPF_HAS_WIDGET | OPF_EDITABLE, VALTYPE_BOOL);
     return;
 
   case NUM_OBJTYPES:

Modified: branches/S2_6/client/packhand.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/packhand.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/client/packhand.c     (original)
+++ branches/S2_6/client/packhand.c     Thu Feb 25 10:47:08 2016
@@ -2929,6 +2929,7 @@
   game.scenario.players = packet->players;
   game.scenario.startpos_nations = packet->startpos_nations;
   game.scenario.prevent_new_cities = packet->prevent_new_cities;
+  game.scenario.lake_flooding = packet->lake_flooding;
   game.scenario.save_random = packet->save_random;
   game.scenario.handmade = packet->handmade;
   game.scenario.allow_ai_type_fallback = packet->allow_ai_type_fallback;

Modified: branches/S2_6/common/game.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/common/game.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/common/game.c (original)
+++ branches/S2_6/common/game.c Thu Feb 25 10:47:08 2016
@@ -345,6 +345,7 @@
   game.scenario.startpos_nations = FALSE;
   game.scenario.handmade = FALSE;
   game.scenario.prevent_new_cities = FALSE;
+  game.scenario.lake_flooding = TRUE;
   game.scenario.save_random = FALSE;
   game.scenario.allow_ai_type_fallback = FALSE;
 

Modified: branches/S2_6/common/packets.def
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/common/packets.def?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/common/packets.def    (original)
+++ branches/S2_6/common/packets.def    Thu Feb 25 10:47:08 2016
@@ -1869,6 +1869,7 @@
   BOOL   startpos_nations;
   BOOL   save_random;
   BOOL   prevent_new_cities;
+  BOOL   lake_flooding;
   BOOL   handmade;
   BOOL   allow_ai_type_fallback;
 end
@@ -2125,6 +2126,7 @@
   BOOL scenario_players;
   BOOL startpos_nations;
   BOOL prevent_new_cities;
+  BOOL lake_flooding;
 end
 
 /************** Server Editor Packets **********************/

Modified: branches/S2_6/data/scenarios/british-isles-85x80-v2.80.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/british-isles-85x80-v2.80.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/british-isles-85x80-v2.80.sav  (original)
+++ branches/S2_6/data/scenarios/british-isles-85x80-v2.80.sav  Thu Feb 25 
10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/earth-160x90-v2.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/earth-160x90-v2.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/earth-160x90-v2.sav    (original)
+++ branches/S2_6/data/scenarios/earth-160x90-v2.sav    Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/earth-80x50-v3.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/earth-80x50-v3.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/earth-80x50-v3.sav     (original)
+++ branches/S2_6/data/scenarios/earth-80x50-v3.sav     Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/europe-200x100-v2.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/europe-200x100-v2.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/europe-200x100-v2.sav  (original)
+++ branches/S2_6/data/scenarios/europe-200x100-v2.sav  Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/france-140x90-v2.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/france-140x90-v2.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/france-140x90-v2.sav   (original)
+++ branches/S2_6/data/scenarios/france-140x90-v2.sav   Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/hagworld-120x60-v1.2.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/hagworld-120x60-v1.2.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/hagworld-120x60-v1.2.sav       (original)
+++ branches/S2_6/data/scenarios/hagworld-120x60-v1.2.sav       Thu Feb 25 
10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/iberian-peninsula-136x100-v1.0.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/iberian-peninsula-136x100-v1.0.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/iberian-peninsula-136x100-v1.0.sav     
(original)
+++ branches/S2_6/data/scenarios/iberian-peninsula-136x100-v1.0.sav     Thu Feb 
25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/italy-100x100-v1.5.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/italy-100x100-v1.5.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/italy-100x100-v1.5.sav (original)
+++ branches/S2_6/data/scenarios/italy-100x100-v1.5.sav Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/japan-88x100-v1.3.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/japan-88x100-v1.3.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/japan-88x100-v1.3.sav  (original)
+++ branches/S2_6/data/scenarios/japan-88x100-v1.3.sav  Thu Feb 25 10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/north_america_116x100-v1.2.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/north_america_116x100-v1.2.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/north_america_116x100-v1.2.sav (original)
+++ branches/S2_6/data/scenarios/north_america_116x100-v1.2.sav Thu Feb 25 
10:47:08 2016
@@ -7,6 +7,7 @@
 save_random=FALSE
 players=FALSE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/data/scenarios/tileset-demo.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/tileset-demo.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/tileset-demo.sav       (original)
+++ branches/S2_6/data/scenarios/tileset-demo.sav       Thu Feb 25 10:47:08 2016
@@ -6,6 +6,7 @@
 save_random=TRUE
 players=TRUE
 startpos_nations=FALSE
+lake_flooding=TRUE
 
 [savefile]
 options=" +version2 specials"

Modified: branches/S2_6/data/scenarios/tutorial.sav
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/scenarios/tutorial.sav?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/data/scenarios/tutorial.sav   (original)
+++ branches/S2_6/data/scenarios/tutorial.sav   Thu Feb 25 10:47:08 2016
@@ -8,6 +8,7 @@
 save_random=FALSE
 players=TRUE
 startpos_nations=FALSE
+lake_flooding=TRUE
 handmade=TRUE
 
 [savefile]

Modified: branches/S2_6/fc_version
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/fc_version?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/fc_version    (original)
+++ branches/S2_6/fc_version    Thu Feb 25 10:47:08 2016
@@ -55,7 +55,7 @@
 #   - Avoid adding a new mandatory capability to the development branch for
 #     as long as possible.  We want to maintain network compatibility with
 #     the stable branch for as long as possible.
-NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-2.6-2016.Feb.20"
+NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-2.6-2016.Feb.25"
 NETWORK_CAPSTRING_OPTIONAL=""
 
 FREECIV_DISTRIBUTOR=""

Modified: branches/S2_6/server/edithand.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/edithand.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/server/edithand.c     (original)
+++ branches/S2_6/server/edithand.c     Thu Feb 25 10:47:08 2016
@@ -1603,6 +1603,11 @@
     changed = TRUE;
   }
 
+  if (packet->lake_flooding != game.scenario.lake_flooding) {
+    game.scenario.lake_flooding = packet->lake_flooding;
+    changed = TRUE;
+  }
+
   if (changed) {
     send_scenario_info(NULL);
     send_game_info(NULL);

Modified: branches/S2_6/server/maphand.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/maphand.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/server/maphand.c      (original)
+++ branches/S2_6/server/maphand.c      Thu Feb 25 10:47:08 2016
@@ -1774,7 +1774,8 @@
   fix_tile_on_terrain_change(ptile, oldter, TRUE);
 
   /* Check for saltwater filling freshwater lake */
-  if (is_ocean(newter) && !terrain_has_flag(newter, TER_FRESHWATER)) {
+  if (game.scenario.lake_flooding
+      && is_ocean(newter) && !terrain_has_flag(newter, TER_FRESHWATER)) {
     adjc_iterate(ptile, atile) {
       if (terrain_has_flag(tile_terrain(atile), TER_FRESHWATER)) {
         struct terrain *aold = tile_terrain(atile);

Modified: branches/S2_6/server/savegame.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/savegame.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/server/savegame.c     (original)
+++ branches/S2_6/server/savegame.c     Thu Feb 25 10:47:08 2016
@@ -3056,6 +3056,7 @@
 
     /* Old scenarios couldn't prevent cities */
     game.scenario.prevent_new_cities = FALSE;
+    game.scenario.lake_flooding = FALSE;
 
     /* Assume any scenario from pre-editor time handmade with special 
settings. */
     game.scenario.handmade = TRUE;

Modified: branches/S2_6/server/savegame2.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/savegame2.c?rev=32078&r1=32077&r2=32078&view=diff
==============================================================================
--- branches/S2_6/server/savegame2.c    (original)
+++ branches/S2_6/server/savegame2.c    Thu Feb 25 10:47:08 2016
@@ -2569,6 +2569,7 @@
 static void sg_load_scenario(struct loaddata *loading)
 {
   const char *buf;
+  bool lake_flood_default;
 
   /* Check status and return if not OK (sg_success != TRUE). */
   sg_check_ret();
@@ -2620,6 +2621,18 @@
   game.scenario.prevent_new_cities
     = secfile_lookup_bool_default(loading->file, FALSE,
                                   "scenario.prevent_new_cities");
+  if (loading->version < 20599) {
+    /* Lake flooding may break some old scenarios where rivers made out of
+     * lake terrains, so play safe there */
+    lake_flood_default = FALSE;
+  } else {
+    /* If lake flooding is a problem for a newer scenario, it could explicitly
+     * disable it. */
+    lake_flood_default = TRUE;
+  }
+  game.scenario.lake_flooding
+    = secfile_lookup_bool_default(loading->file, lake_flood_default,
+                                  "scenario.lake_flooding");
   game.scenario.handmade
     = secfile_lookup_bool_default(loading->file, FALSE,
                                   "scenario.handmade");
@@ -2687,6 +2700,8 @@
     secfile_insert_bool(saving->file, game.scenario.prevent_new_cities,
                         "scenario.prevent_new_cities");
   }
+  secfile_insert_bool(saving->file, game.scenario.lake_flooding,
+                      "scenario.lake_flooding");
   if (game.scenario.handmade) {
     secfile_insert_bool(saving->file, game.scenario.handmade,
                         "scenario.handmade");


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

Reply via email to