private int Callback(ulong guid, uint filter) { IntPtr pointer = _getObjectByGuid(guid, -1); if (pointer == IntPtr.Zero) { return(1); } if (_objects.ContainsKey(guid)) { _objects[guid].Pointer = pointer; } else { var obj = new WoWObject(pointer); WoWObjectType type = obj.Type; if (type.HasFlag(WoWObjectType.Player)) { _objects.Add(guid, new WoWPlayer(pointer)); } else if (type.HasFlag(WoWObjectType.Unit)) { _objects.Add(guid, new WoWUnit(pointer)); } else if (type.HasFlag(WoWObjectType.Container)) { _objects.Add(guid, new WoWContainer(pointer)); } else if (type.HasFlag(WoWObjectType.Item)) { _objects.Add(guid, new WoWItem(pointer)); } else if (type.HasFlag(WoWObjectType.Corpse)) { _objects.Add(guid, new WoWCorpse(pointer)); } else if (type.HasFlag(WoWObjectType.GameObject)) { _objects.Add(guid, new WoWGameObject(pointer)); } else if (type.HasFlag(WoWObjectType.DynamicObject)) { _objects.Add(guid, new WoWDynamicObject(pointer)); } else { _objects.Add(guid, obj); } } return(1); }
public WoWUnit(ulong guid, IntPtr pointer, WoWObjectType type) : base(guid, pointer, type) { }
public WoWObject(ulong guid, IntPtr pointer, WoWObjectType type) { Guid = guid; Pointer = pointer; Type = type; }
public ObjectEntryInfo(WoWObjectType type, WoWObjectTypes subtype) { Type = type; SubType = subtype; }
internal WoWGameObject(ulong guid, IntPtr pointer, WoWObjectType type) : base(guid, pointer, type) { }