From 0178c788dd36e4d794237ea6fe1a4b79effd2fd7 Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Sun, 27 Mar 2022 06:18:35 +0300 Subject: [PATCH 18/18] Convert main AI level to supported one when loading savegame When loading savegame with the main AI level set to "Experimental" to a non-debug build, where such level is not supported, convert it to "Hard". We already did this for existing, individual, players. See osdn #44165 Signed-off-by: Marko Lindqvist --- server/savegame2.c | 6 ++++++ server/savegame3.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/server/savegame2.c b/server/savegame2.c index 6957b4a459..398d23f062 100644 --- a/server/savegame2.c +++ b/server/savegame2.c @@ -1547,6 +1547,12 @@ static void sg_load_game(struct loaddata *loading) "game.level"); if (level != NULL) { game.info.skill_level = ai_level_by_name(level, fc_strcasecmp); + + /* In builds where level "Experimental" is not supported, convert it to "Hard" */ + if (!ai_level_is_valid(game.info.skill_level) + && !fc_strcasecmp(level, "Experimental")) { + game.info.skill_level = AI_LEVEL_HARD; + } } else { game.info.skill_level = ai_level_invalid(); } diff --git a/server/savegame3.c b/server/savegame3.c index 03bc82d49d..b71180c1dd 100644 --- a/server/savegame3.c +++ b/server/savegame3.c @@ -1931,6 +1931,12 @@ static void sg_load_game(struct loaddata *loading) "game.level"); if (level != NULL) { game.info.skill_level = ai_level_by_name(level, fc_strcasecmp); + + /* In builds where level "Experimental" is not supported, convert it to "Hard" */ + if (!ai_level_is_valid(game.info.skill_level) + && !fc_strcasecmp(level, "Experimental")) { + game.info.skill_level = AI_LEVEL_HARD; + } } else { game.info.skill_level = ai_level_invalid(); } -- 2.35.1