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); } } } }
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); } } } }