diff --git a/PkmnLibSharp/Battling/Pokemon.cs b/PkmnLibSharp/Battling/Pokemon.cs index 0c01a57..79b28e1 100644 --- a/PkmnLibSharp/Battling/Pokemon.cs +++ b/PkmnLibSharp/Battling/Pokemon.cs @@ -145,7 +145,7 @@ namespace PkmnLibSharp.Battling get { var ptr = Creaturelib.Generated.Creature.GetBattle(Ptr); - if (_battle != null && _battle.Ptr == ptr) return _battle; + if (_battle != null && !_battle.IsDeleted && _battle.Ptr == ptr) return _battle; if (TryResolvePointer(ptr, out _battle)) return _battle; _battle = Constructor.Active.ConstructBattle(ptr); @@ -157,7 +157,7 @@ namespace PkmnLibSharp.Battling get { var ptr = Creaturelib.Generated.Creature.GetBattleSide(Ptr); - if (_battleSide != null && _battleSide.Ptr == ptr) return _battleSide; + if (_battleSide != null && !_battleSide.IsDeleted && _battleSide.Ptr == ptr) return _battleSide; if (TryResolvePointer(ptr, out _battleSide)) return _battleSide; _battleSide = new BattleSide(ptr); diff --git a/PkmnLibSharp/Utilities/PointerWrapper.cs b/PkmnLibSharp/Utilities/PointerWrapper.cs index b4fd405..51c8207 100644 --- a/PkmnLibSharp/Utilities/PointerWrapper.cs +++ b/PkmnLibSharp/Utilities/PointerWrapper.cs @@ -21,7 +21,7 @@ namespace PkmnLibSharp.Utilities } } - protected bool IsDeleted { get; private set; } = false; + public bool IsDeleted { get; private set; } = false; private static readonly ConcurrentDictionary> Cached = new ConcurrentDictionary>();