fix gpose and disposal of charas when losing sight

This commit is contained in:
rootdarkarchon
2023-02-22 10:28:03 +01:00
parent 6663b736df
commit b4e96a873d
5 changed files with 8 additions and 17 deletions

View File

@@ -206,7 +206,7 @@ public class CachedPlayer : MediatorSubscriberBase, IDisposable
{
if (PlayerName == null || _currentOtherChara == null
|| !string.Equals(PlayerName, _currentOtherChara.Name, StringComparison.Ordinal)
|| _currentOtherChara.Address == IntPtr.Zero)
|| _currentOtherChara.CurrentAddress == IntPtr.Zero)
{
return false;
}

View File

@@ -146,7 +146,7 @@ public class PairManager : MediatorSubscriberBase, IDisposable
if (recreate)
item.Value.RecreateCachedPlayer();
else
item.Value.Dispose();
item.Value.MarkOffline();
}
RecreateLazy();
}
@@ -214,7 +214,7 @@ public class PairManager : MediatorSubscriberBase, IDisposable
if (!pair.HasAnyConnection())
{
pair.Dispose();
pair.MarkOffline();
_allClientPairs.TryRemove(dto.User, out _);
}
@@ -229,7 +229,7 @@ public class PairManager : MediatorSubscriberBase, IDisposable
pair.UserPair = null;
if (!pair.HasAnyConnection())
{
pair.Dispose();
pair.MarkOffline();
_allClientPairs.TryRemove(dto.User, out _);
}
else
@@ -275,7 +275,7 @@ public class PairManager : MediatorSubscriberBase, IDisposable
{
if (!pair.CachedPlayerExists)
{
pair.Dispose();
pair.RecreateCachedPlayer();
}
}
}