Author: cazfi Date: Mon Jul 4 10:51:46 2016 New Revision: 33157 URL: http://svn.gna.org/viewcvs/freeciv?rev=33157&view=rev Log: Store phase_mode by name to savegame3.c saves
See patch #7369 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=33157&r1=33156&r2=33157&view=diff ============================================================================== --- trunk/server/savecompat.c (original) +++ trunk/server/savecompat.c Mon Jul 4 10:51:46 2016 @@ -1346,6 +1346,7 @@ #ifdef FREECIV_DEV_SAVE_COMPAT_3_0 bool randsaved; size_t diplstate_type_size; + struct entry *convert_entry; int num_settings; #endif /* FREECIV_DEV_SAVE_COMPAT_3_0 */ @@ -1636,6 +1637,26 @@ "settings.set%d.gamestart", num_settings); num_settings++; } + + convert_entry = secfile_entry_lookup(loading->file, "game.phase_mode"); + if (convert_entry != NULL && entry_type(convert_entry) == ENTRY_INT) { + int nval; + + entry_int_get(convert_entry, &nval); + + secfile_replace_str(loading->file, phase_mode_type_name(nval), + "game.phase_mode"); + } + convert_entry = secfile_entry_lookup(loading->file, "game.phase_mode_stored"); + if (convert_entry != NULL && entry_type(convert_entry) == ENTRY_INT) { + int nval; + + entry_int_get(convert_entry, &nval); + + secfile_replace_str(loading->file, phase_mode_type_name(nval), + "game.phase_mode_stored"); + } + secfile_replace_int(loading->file, num_settings, "settings.set_count"); Modified: trunk/server/savegame3.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/savegame3.c?rev=33157&r1=33156&r2=33157&view=diff ============================================================================== --- trunk/server/savegame3.c (original) +++ trunk/server/savegame3.c Mon Jul 4 10:51:46 2016 @@ -1859,12 +1859,29 @@ game.info.skill_level = ai_level_convert(GAME_HARDCODED_DEFAULT_SKILL_LEVEL); } - game.info.phase_mode - = secfile_lookup_int_default(loading->file, GAME_DEFAULT_PHASE_MODE, - "game.phase_mode"); - game.server.phase_mode_stored - = secfile_lookup_int_default(loading->file, GAME_DEFAULT_PHASE_MODE, - "game.phase_mode_stored"); + str = secfile_lookup_str_default(loading->file, NULL, + "game.phase_mode"); + if (str != NULL) { + game.info.phase_mode = phase_mode_type_by_name(str, fc_strcasecmp); + if (!phase_mode_type_is_valid(game.info.phase_mode)) { + log_error("Illegal phase mode \"%s\"", str); + game.info.phase_mode = GAME_DEFAULT_PHASE_MODE; + } + } else { + log_error("Phase mode missing"); + } + + str = secfile_lookup_str_default(loading->file, NULL, + "game.phase_mode_stored"); + if (str != NULL) { + game.server.phase_mode_stored = phase_mode_type_by_name(str, fc_strcasecmp); + if (!phase_mode_type_is_valid(game.server.phase_mode_stored)) { + log_error("Illegal stored phase mode \"%s\"", str); + game.server.phase_mode_stored = GAME_DEFAULT_PHASE_MODE; + } + } else { + log_error("Stored phase mode missing"); + } game.info.phase = secfile_lookup_int_default(loading->file, 0, "game.phase"); @@ -1992,9 +2009,11 @@ secfile_insert_str(saving->file, ai_level_name(game.info.skill_level), "game.level"); - secfile_insert_int(saving->file, game.info.phase_mode, + secfile_insert_str(saving->file, + phase_mode_type_name(game.info.phase_mode), "game.phase_mode"); - secfile_insert_int(saving->file, game.server.phase_mode_stored, + secfile_insert_str(saving->file, + phase_mode_type_name(game.server.phase_mode_stored), "game.phase_mode_stored"); secfile_insert_int(saving->file, game.info.phase, "game.phase"); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits