diff --git a/doc/ChangeLog.html b/doc/ChangeLog.html index bd36dd03f..f4ccc2bb2 100644 --- a/doc/ChangeLog.html +++ b/doc/ChangeLog.html @@ -930,6 +930,7 @@ <LI>Added initial support for game replay (from Jimmy Salmon). <LI>Fixed bug #536262: Oil icon changes colors (from Jimmy Salmon). <LI>Fixed bug #587638: Transports can carry ships (from Jimmy Salmon). + <LI>Fixed bug #577066: Restart loses custom settings (from Jimmy Salmon). <LI>+++ </UL> </UL> diff --git a/src/game/game.cpp b/src/game/game.cpp index d63eb95e5..415e2cd4d 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -152,6 +152,9 @@ local void LoadMap(const char* filename,WorldMap* map) -- Game creation ----------------------------------------------------------------------------*/ +/** +** Free for all +*/ local void GameTypeFreeForAll(void) { int i; @@ -166,6 +169,9 @@ local void GameTypeFreeForAll(void) } } +/** +** Top vs Bottom +*/ local void GameTypeTopVsBottom(void) { int i; @@ -189,6 +195,9 @@ local void GameTypeTopVsBottom(void) } } +/** +** Left vs Right +*/ local void GameTypeLeftVsRight(void) { int i; @@ -484,6 +493,12 @@ global void InitSettings(void) { int i; + if (RestartScenario) { + TheMap.NoFogOfWar = GameSettings.NoFogOfWar; + FlagRevealMap = GameSettings.RevealMap; + return; + } + for (i = 0; i < PlayerMax; i++) { GameSettings.Presets[i].Race = SettingsPresetMapDefault; GameSettings.Presets[i].Team = SettingsPresetMapDefault; diff --git a/src/include/settings.h b/src/include/settings.h index 897a2dbce..fa9e2e80c 100644 --- a/src/include/settings.h +++ b/src/include/settings.h @@ -68,6 +68,8 @@ struct _settings_ { unsigned Opponents; /// Preset # of ai-opponents unsigned Terrain; /// Terrain type (summer,winter,...) unsigned GameType; /// Game type (melee, free for all,...) + unsigned NoFogOfWar; /// No fog of war + unsigned RevealMap; /// Reveal map }; #define SettingsPresetMapDefault (~0ul) /// Special: Use pud/cm supplied diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index cc8b00789..cfb30e711 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -3780,18 +3780,26 @@ local void MultiGameFWSAction(Menuitem *mi, int i) case 0: TheMap.NoFogOfWar = 0; FlagRevealMap = 0; + GameSettings.NoFogOfWar = 0; + GameSettings.RevealMap = 0; break; case 1: TheMap.NoFogOfWar = 1; FlagRevealMap = 0; + GameSettings.NoFogOfWar = 1; + GameSettings.RevealMap = 0; break; case 2: TheMap.NoFogOfWar = 0; FlagRevealMap = 1; + GameSettings.NoFogOfWar = 0; + GameSettings.RevealMap = 1; break; case 3: TheMap.NoFogOfWar = 1; FlagRevealMap = 1; + GameSettings.NoFogOfWar = 1; + GameSettings.RevealMap = 1; break; } ServerSetupState.FwsOpt = i;