Example #1
0
 private static void RecurseProcessItemGumps(Gump g, int x, int y, bool isItemGump)
 {
     if (isItemGump)
     {
         IItemGump itemGump = (IItemGump)g;
         Item      obj      = itemGump.Item;
         obj.MessageX     = x + itemGump.xOffset;
         obj.MessageY     = y + itemGump.yOffset;
         obj.BottomY      = y + itemGump.yBottom;
         obj.MessageFrame = Renderer.m_ActFrames;
         Gump     desktop  = Gumps.Desktop;
         GumpList children = desktop.Children;
         Gump     Child    = g;
         while (Child.Parent != desktop)
         {
             Child = Child.Parent;
         }
         int num = children.IndexOf(Child);
         for (int index1 = 0; index1 < MessageManager.m_Messages.Count; ++index1)
         {
             if (MessageManager.m_Messages[index1] is GDynamicMessage && ((GDynamicMessage)MessageManager.m_Messages[index1]).Owner == obj)
             {
                 int index2 = children.IndexOf((Gump)MessageManager.m_Messages[index1]);
                 if (index2 < num && index2 >= 0)
                 {
                     children.RemoveAt(index2);
                     num = children.IndexOf(Child);
                     children.Insert(num + 1, (Gump)MessageManager.m_Messages[index1]);
                 }
             }
         }
     }
     else
     {
         foreach (Gump g1 in g.Children.ToArray())
         {
             if (g1 is IItemGump)
             {
                 MessageManager.RecurseProcessItemGumps(g1, x + g1.X, y + g1.Y, true);
             }
             else if (g1.Children.Count > 0)
             {
                 MessageManager.RecurseProcessItemGumps(g1, x + g1.X, y + g1.Y, false);
             }
         }
     }
 }
Example #2
0
 private static void RecurseProcessItemGumps(Gump g, int x, int y, bool isItemGump)
 {
     if (isItemGump)
     {
         IItemGump gump = (IItemGump)g;
         Item      item = gump.Item;
         item.MessageX     = x + gump.xOffset;
         item.MessageY     = y + gump.yOffset;
         item.BottomY      = y + gump.yBottom;
         item.MessageFrame = Renderer.m_ActFrames;
         Gump     desktop  = Gumps.Desktop;
         GumpList children = desktop.Children;
         Gump     child    = g;
         while (child.Parent != desktop)
         {
             child = child.Parent;
         }
         int index = children.IndexOf(child);
         for (int i = 0; i < m_Messages.Count; i++)
         {
             if ((m_Messages[i] is GDynamicMessage) && (((GDynamicMessage)m_Messages[i]).Owner == item))
             {
                 int num3 = children.IndexOf((Gump)m_Messages[i]);
                 if ((num3 < index) && (num3 >= 0))
                 {
                     children.RemoveAt(num3);
                     index = children.IndexOf(child);
                     children.Insert(index + 1, (Gump)m_Messages[i]);
                 }
             }
         }
     }
     else
     {
         foreach (Gump gump4 in g.Children.ToArray())
         {
             if (gump4 is IItemGump)
             {
                 RecurseProcessItemGumps(gump4, x + gump4.X, y + gump4.Y, true);
             }
             else if (gump4.Children.Count > 0)
             {
                 RecurseProcessItemGumps(gump4, x + gump4.X, y + gump4.Y, false);
             }
         }
     }
 }