public unsafe void RefreshEnemy()
        {
            for (int i = 0; i < Memory.Enemy.Length; ++i)
            {
                EnemyEntry entry   = Memory.Enemy[i];
                IntPtr     pointer = Pointers.Enemy[i];

                fixed(byte *p = entry._typeMem)
                {
                    byte[] value = new byte[entry._typeMem.Length];
                    entry._typeMem.CopyTo(value, 0);

                    _processMemory.TryGetByteArrayAt(IntPtr.Add(pointer, 0x90A), 7, (IntPtr)p);

                    if (!value.Equals(entry._typeMem))
                    {
                        entry._type = BitConverter.ToInt64(entry._typeMem);
                        entry.SendUpdateEvent("IsEmpty", "Type", "Name", "DebugMessage");
                    }
                }

                if (entry.Type == EnemyEnumeration.Undead)
                {
                    entry.SetField(_processMemory, Pointers.ZombieMaxHP, ref entry._maximumHP, "IsAlive", "MaximumHP", "Percentage", "HealthMessage", "DebugMessage");
                }
                else
                {
                    entry.MaximumHP = 100;
                }

                entry.SetField(_processMemory, IntPtr.Add(pointer, 0x6C), ref entry._currentHP, "IsAlive", "CurrentHP", "DisplayHP", "Percentage", "HealthMessage", "DebugMessage");

                if (entry.Room.SetField(_processMemory, IntPtr.Add(pointer, 0x76), ref entry.Room._id, "Id"))
                {
                    entry.SendUpdateEvent("DebugMessage");
                }
            }
        }