From a15fc8c28a0f5fa36c0e38602730701fb108325a Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 28 Jun 2017 20:04:18 -0400 Subject: [PATCH] Fix virus manager init bug --- ShiftOS_TheReturn/VirusManager.cs | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/ShiftOS_TheReturn/VirusManager.cs b/ShiftOS_TheReturn/VirusManager.cs index 74d0e80..56767e6 100644 --- a/ShiftOS_TheReturn/VirusManager.cs +++ b/ShiftOS_TheReturn/VirusManager.cs @@ -13,24 +13,27 @@ namespace ShiftOS.Engine public static void Init() { - ActiveInfections = new List(); - if (SaveSystem.CurrentSave.ViralInfections == null) - SaveSystem.CurrentSave.ViralInfections = new List(); - foreach(var virusdata in SaveSystem.CurrentSave.ViralInfections) + Desktop.InvokeOnWorkerThread(() => { - var virus = CreateVirus(virusdata.ID, virusdata.ThreatLevel); - var existing = ActiveInfections.FirstOrDefault(x => x.GetType() == virus.GetType()); - if(existing != null) + ActiveInfections = new List(); + if (SaveSystem.CurrentSave.ViralInfections == null) + SaveSystem.CurrentSave.ViralInfections = new List(); + foreach (var virusdata in SaveSystem.CurrentSave.ViralInfections) { - var eIndex = ActiveInfections.IndexOf(existing); - ActiveInfections[eIndex] = virus; - existing.Disinfect(); + var virus = CreateVirus(virusdata.ID, virusdata.ThreatLevel); + var existing = ActiveInfections.FirstOrDefault(x => x.GetType() == virus.GetType()); + if (existing != null) + { + var eIndex = ActiveInfections.IndexOf(existing); + ActiveInfections[eIndex] = virus; + existing.Disinfect(); + } + else + { + ActiveInfections.Add(virus); + } } - else - { - ActiveInfections.Add(virus); - } - } + }); } public static void Infect(string id, int threatlevel) @@ -90,9 +93,6 @@ namespace ShiftOS.Engine } } } - { - - } throw new Exception("Cannot create virus."); }