Browse Source

Fix: Crash beim Restart nach Quit to Main Menu

bolt_update
Laurids Jeppe 3 years ago
parent
commit
a2cd8d6966
9 changed files with 66 additions and 1 deletions
  1. +5
    -0
      Assets/GWConquest/Scripts/BoltEntityCache.cs
  2. +5
    -0
      Assets/GWConquest/Scripts/FormationCategories.cs
  3. +27
    -1
      Assets/GWConquest/Scripts/GameManager.cs
  4. +5
    -0
      Assets/GWConquest/Scripts/ItemRegistry.cs
  5. +5
    -0
      Assets/GWConquest/Scripts/Planet.cs
  6. +5
    -0
      Assets/GWConquest/Scripts/PlanetRegistry.cs
  7. +4
    -0
      Assets/GWConquest/Scripts/UI/MainMenu.cs
  8. +5
    -0
      Assets/GWConquest/Scripts/UnitClass.cs
  9. +5
    -0
      Assets/GWConquest/Scripts/Zone.cs

+ 5
- 0
Assets/GWConquest/Scripts/BoltEntityCache.cs View File

@ -47,6 +47,11 @@ namespace GWConquest
return behaviour.entity.NetworkId; return behaviour.entity.NetworkId;
} }
} }
public static void ClearCache()
{
dictionary.Clear();
}
} }

+ 5
- 0
Assets/GWConquest/Scripts/FormationCategories.cs View File

@ -16,6 +16,11 @@ namespace GWConquest {
} }
} }
public static void ClearRegistry()
{
_instance = null;
}
[System.Serializable] [System.Serializable]
public class CategoryEntry public class CategoryEntry
{ {


+ 27
- 1
Assets/GWConquest/Scripts/GameManager.cs View File

@ -1,4 +1,4 @@
using UnityEngine;
using UnityEngine;
using System.Collections; using System.Collections;
namespace GWConquest namespace GWConquest
@ -129,5 +129,31 @@ namespace GWConquest
LoadingScreen.Dismiss(); 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;
}
} }
} }

+ 5
- 0
Assets/GWConquest/Scripts/ItemRegistry.cs View File

@ -16,6 +16,11 @@ namespace GWConquest
} }
} }
public static void ClearRegistry()
{
_instance = null;
}
[System.Serializable] [System.Serializable]
public class ItemEntry { public class ItemEntry {
public string Name; public string Name;


+ 5
- 0
Assets/GWConquest/Scripts/Planet.cs View File

@ -21,6 +21,11 @@ namespace GWConquest
} }
} }
public static void ClearRegistry()
{
_allPlanets = null;
}
public GameObject textPrefab; public GameObject textPrefab;
public Zone[] spaceZones; public Zone[] spaceZones;


+ 5
- 0
Assets/GWConquest/Scripts/PlanetRegistry.cs View File

@ -50,6 +50,11 @@ namespace GWConquest
return null; return null;
} }
} }
public static void ClearRegistry()
{
planetDataMap = null;
}
public static void Load() public static void Load()
{ {


+ 4
- 0
Assets/GWConquest/Scripts/UI/MainMenu.cs View File

@ -14,6 +14,8 @@ namespace GWConquest
public void StartServer(int hostFactionIndex) public void StartServer(int hostFactionIndex)
{ {
GameManager.ClearAllCaches();
GameManager.HostFactionIndex = hostFactionIndex; GameManager.HostFactionIndex = hostFactionIndex;
LoadingScreen.Show(); LoadingScreen.Show();
@ -23,6 +25,8 @@ namespace GWConquest
public void StartClient() public void StartClient()
{ {
GameManager.ClearAllCaches();
BoltLauncher.StartClient(); BoltLauncher.StartClient();
} }


+ 5
- 0
Assets/GWConquest/Scripts/UnitClass.cs View File

@ -10,6 +10,11 @@ namespace GWConquest
{ {
private static Dictionary<string, UnitClass> classMap; private static Dictionary<string, UnitClass> classMap;
public static void ClearRegistry()
{
classMap = null;
}
public static void LoadClassMap() public static void LoadClassMap()
{ {
BoltLog.Info("Loading unit classes..."); BoltLog.Info("Loading unit classes...");


+ 5
- 0
Assets/GWConquest/Scripts/Zone.cs View File

@ -31,6 +31,11 @@ namespace GWConquest
private static Dictionary<int, Zone> zoneDict = new Dictionary<int, Zone>(); private static Dictionary<int, Zone> zoneDict = new Dictionary<int, Zone>();
public static void ClearRegistry()
{
zoneDict.Clear();
}
public static IEnumerable<Zone> AllZones public static IEnumerable<Zone> AllZones
{ {
get => zoneDict.Values; get => zoneDict.Values;


Loading…
Cancel
Save