diff --git a/Assets/GWConquest/Scripts/BoltEntityCache.cs b/Assets/GWConquest/Scripts/BoltEntityCache.cs index a6b9f38..4bbb121 100644 --- a/Assets/GWConquest/Scripts/BoltEntityCache.cs +++ b/Assets/GWConquest/Scripts/BoltEntityCache.cs @@ -47,6 +47,11 @@ namespace GWConquest return behaviour.entity.NetworkId; } } + + public static void ClearCache() + { + dictionary.Clear(); + } } diff --git a/Assets/GWConquest/Scripts/FormationCategories.cs b/Assets/GWConquest/Scripts/FormationCategories.cs index cae19c3..8d0c0a9 100644 --- a/Assets/GWConquest/Scripts/FormationCategories.cs +++ b/Assets/GWConquest/Scripts/FormationCategories.cs @@ -16,6 +16,11 @@ namespace GWConquest { } } + public static void ClearRegistry() + { + _instance = null; + } + [System.Serializable] public class CategoryEntry { diff --git a/Assets/GWConquest/Scripts/GameManager.cs b/Assets/GWConquest/Scripts/GameManager.cs index 553f9f7..1e806db 100644 --- a/Assets/GWConquest/Scripts/GameManager.cs +++ b/Assets/GWConquest/Scripts/GameManager.cs @@ -1,4 +1,4 @@ -using UnityEngine; +using UnityEngine; using System.Collections; namespace GWConquest @@ -129,5 +129,31 @@ namespace GWConquest LoadingScreen.Dismiss(); } + public static void ClearAllCaches() + { + _instance = null; + + HostFactionIndex = 0; + EntitiesLoaded = false; + InitialEntityCount = int.MaxValue; + + BattleLog.Instance = null; + + BoltEntityCache.ClearCache(); + District.AllDistricts.Clear(); + Formation.AllFormations.Clear(); + + FormationCategories.ClearRegistry(); + ItemRegistry.ClearRegistry(); + Planet.ClearRegistry(); + PlanetRegistry.ClearRegistry(); + UnitClass.ClearRegistry(); + Zone.ClearRegistry(); + + Player.CurrentPlayer = null; + Player.PlayerList.Clear(); + SoundEffects.Instance = null; + } + } } \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/ItemRegistry.cs b/Assets/GWConquest/Scripts/ItemRegistry.cs index 76c9f35..2e1eac9 100644 --- a/Assets/GWConquest/Scripts/ItemRegistry.cs +++ b/Assets/GWConquest/Scripts/ItemRegistry.cs @@ -16,6 +16,11 @@ namespace GWConquest } } + public static void ClearRegistry() + { + _instance = null; + } + [System.Serializable] public class ItemEntry { public string Name; diff --git a/Assets/GWConquest/Scripts/Planet.cs b/Assets/GWConquest/Scripts/Planet.cs index fe0987e..98e11eb 100644 --- a/Assets/GWConquest/Scripts/Planet.cs +++ b/Assets/GWConquest/Scripts/Planet.cs @@ -21,6 +21,11 @@ namespace GWConquest } } + public static void ClearRegistry() + { + _allPlanets = null; + } + public GameObject textPrefab; public Zone[] spaceZones; diff --git a/Assets/GWConquest/Scripts/PlanetRegistry.cs b/Assets/GWConquest/Scripts/PlanetRegistry.cs index 9bf7f8c..b8efa8e 100644 --- a/Assets/GWConquest/Scripts/PlanetRegistry.cs +++ b/Assets/GWConquest/Scripts/PlanetRegistry.cs @@ -50,6 +50,11 @@ namespace GWConquest return null; } } + + public static void ClearRegistry() + { + planetDataMap = null; + } public static void Load() { diff --git a/Assets/GWConquest/Scripts/UI/MainMenu.cs b/Assets/GWConquest/Scripts/UI/MainMenu.cs index 4761000..4ff80aa 100644 --- a/Assets/GWConquest/Scripts/UI/MainMenu.cs +++ b/Assets/GWConquest/Scripts/UI/MainMenu.cs @@ -14,6 +14,8 @@ namespace GWConquest public void StartServer(int hostFactionIndex) { + GameManager.ClearAllCaches(); + GameManager.HostFactionIndex = hostFactionIndex; LoadingScreen.Show(); @@ -23,6 +25,8 @@ namespace GWConquest public void StartClient() { + GameManager.ClearAllCaches(); + BoltLauncher.StartClient(); } diff --git a/Assets/GWConquest/Scripts/UnitClass.cs b/Assets/GWConquest/Scripts/UnitClass.cs index 491d7ee..0549675 100644 --- a/Assets/GWConquest/Scripts/UnitClass.cs +++ b/Assets/GWConquest/Scripts/UnitClass.cs @@ -10,6 +10,11 @@ namespace GWConquest { private static Dictionary classMap; + public static void ClearRegistry() + { + classMap = null; + } + public static void LoadClassMap() { BoltLog.Info("Loading unit classes..."); diff --git a/Assets/GWConquest/Scripts/Zone.cs b/Assets/GWConquest/Scripts/Zone.cs index 1439f26..e457ef9 100644 --- a/Assets/GWConquest/Scripts/Zone.cs +++ b/Assets/GWConquest/Scripts/Zone.cs @@ -31,6 +31,11 @@ namespace GWConquest private static Dictionary zoneDict = new Dictionary(); + public static void ClearRegistry() + { + zoneDict.Clear(); + } + public static IEnumerable AllZones { get => zoneDict.Values;