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