diff --git a/client/Util/ActorManager.cs b/client/Util/ActorManager.cs index f0a73f7..e51fc34 100644 --- a/client/Util/ActorManager.cs +++ b/client/Util/ActorManager.cs @@ -92,19 +92,19 @@ internal class ActorManager : IDisposable { Pointer objMan ) { foreach (var idx in manager._idx) { - Pointer ptr; - unsafe { - var obj = (BattleChara*) objMan.Value->GetObjectByIndex((ushort) idx); - if (obj == null) { - continue; - } - - ptr = obj; + var ptr = GetChara(objMan, idx); + if (ptr == null) { + continue; } - yield return ptr; + yield return ptr.Value; } } + + private static Pointer? GetChara(Pointer objMan, uint idx) { + var obj = (BattleChara*) objMan.Value->GetObjectByIndex((ushort) idx); + return obj == null ? null : obj; + } } private unsafe class SpawnAction(Message message) : BaseActorAction {