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