protected internal override void OnDragDrop(Gump g) { if (!this.m_HitTest) { this.m_Parent.OnDragDrop(g); } else { if (g == null || !(g.GetType() == typeof(GDraggedItem))) { return; } GDraggedItem gdraggedItem = (GDraggedItem)g; Point point = this.Clip(gdraggedItem.Image, gdraggedItem.Double, this.PointToClient(new Point(Engine.m_xMouse - g.m_OffsetX, Engine.m_yMouse - g.m_OffsetY)), g.m_OffsetX, g.m_OffsetY); int num = gdraggedItem.Item.ID & 16383; if (num >= 13701 && num <= 13706) { point.Y += 20; } else if (num >= 13708 && num <= 13713) { point.Y += 20; } Gumps.Destroy((Gump)gdraggedItem); Network.Send((Packet) new PDropItem(gdraggedItem.Item.Serial, (int)(short)point.X, (int)(short)point.Y, 0, this.m_Item.Serial)); } }
protected internal override void OnDragDrop(Gump g) { if (g != null && g.GetType() == typeof(GDraggedItem)) { GDraggedItem gdraggedItem = (GDraggedItem)g; Item toEquip = gdraggedItem.Item; Item obj = (Item)null; Gump[] array = this.m_Children.ToArray(); Point client = this.PointToClient(new Point(Engine.m_xMouse, Engine.m_yMouse)); for (int index = array.Length - 1; index >= 0; --index) { if (array[index] is GPaperdollItem && array[index].HitTest(client.X - array[index].X, client.Y - array[index].Y)) { obj = ((GPaperdollItem)array[index]).Item; break; } } if (obj != null && Map.m_ItemFlags[obj.ID & 16383][(TileFlag)2097152L]) { Network.Send((Packet) new PDropItem(toEquip.Serial, -1, -1, 0, obj.Serial)); } else if (Map.m_ItemFlags[toEquip.ID & 16383][(TileFlag)4194304L]) { Network.Send((Packet) new PEquipItem(toEquip, this.m_Mobile)); } else { Network.Send((Packet) new PDropItem(toEquip.Serial, -1, -1, 0, World.Serial)); } Gumps.Destroy((Gump)gdraggedItem); } this._dragPreview = (Item)null; }
protected internal override void OnDragDrop(Gump g) { if (g == null || !(g.GetType() == typeof(GDraggedItem))) { return; } GDraggedItem gdraggedItem = (GDraggedItem)g; Item obj = gdraggedItem.Item; if (((GContainer)this.m_Parent).m_HitTest) { TileFlags tileFlags = Map.m_ItemFlags[this.m_Item.ID & 16383]; if (tileFlags[(TileFlag)2097152L]) { Network.Send((Packet) new PDropItem(obj.Serial, -1, -1, 0, this.m_Item.Serial)); Gumps.Destroy((Gump)gdraggedItem); } else if (tileFlags[(TileFlag)2048L] && obj.ID == this.m_Item.ID && (int)obj.Hue == (int)this.m_Item.Hue) { Point point = ((GContainer)this.m_Parent).Clip(gdraggedItem.Image, gdraggedItem.Double, this.m_Parent.PointToClient(new Point(Engine.m_xMouse - gdraggedItem.m_OffsetX, Engine.m_yMouse - gdraggedItem.m_OffsetY)), gdraggedItem.m_OffsetX, gdraggedItem.m_OffsetY); Network.Send((Packet) new PDropItem(obj.Serial, (int)(short)point.X, (int)(short)point.Y, 0, this.m_Item.Serial)); Gumps.Destroy((Gump)gdraggedItem); } else { this.m_Parent.OnDragDrop((Gump)gdraggedItem); } } else { this.m_Parent.OnDragDrop((Gump)gdraggedItem); } }
public Gump OnBeginDrag() { if (this.IsStackable && (int)this.amount > 1 && (Control.ModifierKeys & Keys.Shift) == Keys.None) { GDragAmount gdragAmount = new GDragAmount(this); Gumps.Desktop.Children.Add((Gump)gdragAmount); return((Gump)gdragAmount); } Player current = Player.Current; if (current != null) { current.EquipAgent.Dress.Remove(this); } Network.Send((Packet) new PPickupItem(this, (int)this.amount)); GDraggedItem gdraggedItem = new GDraggedItem(this); Gumps.Desktop.Children.Add((Gump)gdraggedItem); return((Gump)gdraggedItem); }