Exemple #1
0
 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);
         }
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
 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));
     }
 }
Exemple #4
0
 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);
         }
     }
 }
Exemple #5
0
 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;
     }
 }
Exemple #6
0
 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;
 }