From b235e244a465143b007daab197cdeb997a0eff9d Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 7 Nov 2015 11:27:44 +0000 Subject: [PATCH] Fetch battlefield news once per game launch. --- OpenRA.Game/Settings.cs | 1 - OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/OpenRA.Game/Settings.cs b/OpenRA.Game/Settings.cs index db3c30012e..825039b1ee 100644 --- a/OpenRA.Game/Settings.cs +++ b/OpenRA.Game/Settings.cs @@ -179,7 +179,6 @@ namespace OpenRA public bool FetchNews = true; public string NewsUrl = "http://www.openra.net/gamenews"; - public DateTime NewsFetchedDate; } public class KeySettings diff --git a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs index c64aa3a0e7..1e6422d7d3 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs @@ -28,6 +28,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly Widget newsTemplate; readonly LabelWidget newsStatus; + // Update news once per game launch + static bool fetchedNews; + [ObjectCreator.UseCtor] public MainMenuLogic(Widget widget, World world) { @@ -207,11 +210,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (newsButton != null) { - // Only query for news once per day. - var cacheValid = currentNews != null && DateTime.Today.ToUniversalTime() <= Game.Settings.Game.NewsFetchedDate; - if (!cacheValid) + if (!fetchedNews) new Download(Game.Settings.Game.NewsUrl, cacheFile, e => { }, - (e, c) => NewsDownloadComplete(e, cacheFile, currentNews, () => newsButton.AttachPanel(newsPanel))); + (e, c) => NewsDownloadComplete(e, cacheFile, currentNews, + () => newsButton.AttachPanel(newsPanel))); newsButton.OnClick = () => newsButton.AttachPanel(newsPanel); } @@ -292,6 +294,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic return; } + fetchedNews = true; var newNews = ParseNews(cacheFile); if (newNews == null) return; @@ -300,9 +303,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (oldNews == null || newNews.Any(n => !oldNews.Select(c => c.DateTime).Contains(n.DateTime))) onNewsDownloaded(); - - Game.Settings.Game.NewsFetchedDate = DateTime.Today.ToUniversalTime(); - Game.Settings.Save(); }); }