protected internal override void OnDragDrop(Gump g) { if ((g != null) && (g.GetType() == typeof(GDraggedItem))) { GDraggedItem item = (GDraggedItem)g; Client.Item item2 = item.Item; if (((GContainer)base.m_Parent).m_HitTest) { TileFlags flags = Map.m_ItemFlags[this.m_Item.ID & 0x3fff]; if (flags[TileFlag.Container]) { Network.Send(new PDropItem(item2.Serial, -1, -1, 0, this.m_Item.Serial)); Gumps.Destroy(item); } else if ((flags[TileFlag.Generic] && (item2.ID == this.m_Item.ID)) && (item2.Hue == this.m_Item.Hue)) { Point point = ((GContainer)base.m_Parent).Clip(item.Image, item.Double, base.m_Parent.PointToClient(new Point(Engine.m_xMouse - item.m_OffsetX, Engine.m_yMouse - item.m_OffsetY)), item.m_OffsetX, item.m_OffsetY); Network.Send(new PDropItem(item2.Serial, (short)point.X, (short)point.Y, 0, this.m_Item.Serial)); Gumps.Destroy(item); } else { base.m_Parent.OnDragDrop(item); } } else { base.m_Parent.OnDragDrop(item); } } }
public Gump OnBeginDrag() { int num = this.m_ID & 0x3fff; int num2 = (ushort)this.m_Amount; if (Map.m_ItemFlags[num & 0x3fff][TileFlag.Generic] && (num2 > 1)) { GDragAmount amount = new GDragAmount(this); Gumps.Desktop.Children.Add(amount); return(amount); } Network.Send(new PPickupItem(this, this.m_Amount)); GDraggedItem toAdd = new GDraggedItem(this); Gumps.Desktop.Children.Add(toAdd); return(toAdd); }
protected internal override void OnDragDrop(Client.Gump g) { if (!this.m_HitTest) { base.m_Parent.OnDragDrop(g); } else if ((g != null) && (g.GetType() == typeof(GDraggedItem))) { GDraggedItem item = (GDraggedItem)g; Point point = this.Clip(item.Image, item.Double, base.PointToClient(new Point(Engine.m_xMouse - g.m_OffsetX, Engine.m_yMouse - g.m_OffsetY)), g.m_OffsetX, g.m_OffsetY); int num = item.Item.ID & 0x3fff; if ((num >= 0x3585) && (num <= 0x358a)) { point.Y += 20; } else if ((num >= 0x358c) && (num <= 0x3591)) { point.Y += 20; } Gumps.Destroy(item); Network.Send(new PDropItem(item.Item.Serial, (short)point.X, (short)point.Y, 0, this.m_Item.Serial)); } }
protected internal override void OnDragEnter(Gump g) { if ((g != null) && (g.GetType() == typeof(GDraggedItem))) { GDraggedItem item = (GDraggedItem)g; Item item2 = item.Item; int iD = item2.ID; int hue = item2.Hue; Engine.ItemArt.Translate(ref iD, ref hue); if (Map.m_ItemFlags[iD][TileFlag.Wearable]) { if (this.m_Image != null) { Gumps.Destroy(this.m_Image); } this.m_Image = new GImage(Gumps.GetEquipGumpID(iD, this.m_Gender, ref hue), Hues.GetItemHue(iD, hue), 8, 0x13); this.m_Image.Alpha = 0.5f; int count = base.m_Children.Count; LayerComparer paperdoll = LayerComparer.Paperdoll; int num4 = paperdoll.GetValue(iD, (Layer)Map.GetQuality(iD)); for (int i = 0; i < base.m_Children.Count; i++) { Gump gump = base.m_Children[i]; if (gump.GetType() == typeof(GPaperdollItem)) { GPaperdollItem item3 = (GPaperdollItem)gump; if (paperdoll.GetValue(item3.Item.ID, (Layer)((byte)item3.Layer)) < num4) { count = i; break; } } } base.m_Children.Insert(count, this.m_Image); } } }
protected internal override void OnDragDrop(Gump g) { if ((g != null) && (g.GetType() == typeof(GDraggedItem))) { GDraggedItem item = (GDraggedItem)g; Item toEquip = item.Item; Item item3 = null; Gump[] gumpArray = base.m_Children.ToArray(); Point point = base.PointToClient(new Point(Engine.m_xMouse, Engine.m_yMouse)); for (int i = gumpArray.Length - 1; i >= 0; i--) { if ((gumpArray[i] is GPaperdollItem) && gumpArray[i].HitTest(point.X - gumpArray[i].X, point.Y - gumpArray[i].Y)) { item3 = ((GPaperdollItem)gumpArray[i]).Item; break; } } if ((item3 != null) && Map.m_ItemFlags[item3.ID & 0x3fff][TileFlag.Container]) { Network.Send(new PDropItem(toEquip.Serial, -1, -1, 0, item3.Serial)); } else if (Map.m_ItemFlags[toEquip.ID & 0x3fff][TileFlag.Wearable]) { Network.Send(new PEquipItem(toEquip, this.m_Mobile)); } else { Network.Send(new PDropItem(toEquip.Serial, -1, -1, 0, World.Serial)); } Gumps.Destroy(item); } if (this.m_Image != null) { Gumps.Destroy(this.m_Image); this.m_Image = null; } }
public Gump OnBeginDrag() { int num = this.m_ID & 0x3fff; int num2 = (ushort) this.m_Amount; if (Map.m_ItemFlags[num & 0x3fff][TileFlag.Generic] && (num2 > 1)) { GDragAmount amount = new GDragAmount(this); Gumps.Desktop.Children.Add(amount); return amount; } Network.Send(new PPickupItem(this, this.m_Amount)); GDraggedItem toAdd = new GDraggedItem(this); Gumps.Desktop.Children.Add(toAdd); return toAdd; }