protected internal override void OnDragStart() { if (this.m_Item != null) { base.m_IsDragging = false; Gumps.LastOver = null; Gumps.Drag = null; this.State = 0; Gump gump = this.m_Item.OnBeginDrag(); if (gump.GetType() == typeof(GDragAmount)) { ((GDragAmount)gump).ToDestroy = this; } else { this.m_Item.RestoreInfo = new RestoreInfo(this.m_Item); World.Remove(this.m_Item); gump.m_OffsetX = base.m_OffsetX; gump.m_OffsetY = base.m_OffsetY; gump.X = Engine.m_xMouse - base.m_OffsetX; gump.Y = Engine.m_yMouse - base.m_OffsetY; if (base.m_Parent is GContainer) { ((GContainer)base.m_Parent).m_Hash[this.m_Item] = null; } Gumps.Destroy(this); } } }
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); } } }
protected internal override void OnDragStart() { if (this.m_ValidDrag && (this.m_Item != null)) { base.m_IsDragging = false; Gumps.LastOver = null; Gumps.Drag = null; Gump gump = this.m_Item.OnBeginDrag(); if (gump.GetType() == typeof(GDragAmount)) { ((GDragAmount)gump).ToDestroy = this; } else { this.m_Item.RestoreInfo = new RestoreInfo(this.m_Item); World.Remove(this.m_Item); Gumps.Destroy(this); } } else { base.m_IsDragging = false; Gumps.Drag = null; Point point = base.PointToScreen(new Point(0, 0)) - base.m_Parent.PointToScreen(new Point(0, 0)); base.m_Parent.m_OffsetX = point.X + base.m_OffsetX; base.m_Parent.m_OffsetY = point.Y + base.m_OffsetY; base.m_Parent.m_IsDragging = true; Gumps.Drag = base.m_Parent; } }
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; } }
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; } }
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; 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); } } }
private static bool RecurseKeyDown(Gump g, char c) { if (!g.Visible) { return false; } Gump[] gumpArray = g.Children.ToArray(); for (int i = gumpArray.Length - 1; i >= 0; i--) { if (RecurseKeyDown(gumpArray[i], c)) { return true; } } return ((g.GetType() != typeof(GTextBox)) && g.OnKeyDown(c)); }