public PGumpButton(GServerGump gump, int buttonID) : base((byte)177) { this.m_Stream.Write(gump.Serial); this.m_Stream.Write(gump.DialogID); this.m_Stream.Write(buttonID); ArrayList dataStore1 = Engine.GetDataStore(); ArrayList dataStore2 = Engine.GetDataStore(); Gump[] array = gump.Children.ToArray(); for (int index = 0; index < array.Length; ++index) { if (array[index] is IRelayedSwitch) { IRelayedSwitch relayedSwitch = (IRelayedSwitch)array[index]; if (relayedSwitch.Active) { dataStore1.Add((object)relayedSwitch.RelayID); } } else if (array[index] is GServerTextBox) { dataStore2.Add((object)array[index]); } } this.m_Stream.Write(dataStore1.Count); for (int index = 0; index < dataStore1.Count; ++index) { this.m_Stream.Write((int)dataStore1[index]); } this.m_Stream.Write(dataStore2.Count); for (int index = 0; index < dataStore2.Count; ++index) { GServerTextBox gserverTextBox = (GServerTextBox)dataStore2[index]; this.m_Stream.Write((short)gserverTextBox.RelayID); this.m_Stream.Write((short)gserverTextBox.String.Length); this.m_Stream.WriteUnicode(gserverTextBox.String); } Engine.ReleaseDataStore(dataStore2); Engine.ReleaseDataStore(dataStore1); }
public PGumpButton(GServerGump gump, int buttonID) : base(0xb1, "Gump Response") { base.m_Stream.Write(gump.Serial); base.m_Stream.Write(gump.DialogID); base.m_Stream.Write(buttonID); ArrayList dataStore = Engine.GetDataStore(); ArrayList list = Engine.GetDataStore(); Gump[] gumpArray = gump.Children.ToArray(); for (int i = 0; i < gumpArray.Length; i++) { if (gumpArray[i] is IRelayedSwitch) { IRelayedSwitch switch2 = (IRelayedSwitch)gumpArray[i]; if (switch2.Active) { dataStore.Add(switch2.RelayID); } } else if (gumpArray[i] is GServerTextBox) { list.Add(gumpArray[i]); } } base.m_Stream.Write(dataStore.Count); for (int j = 0; j < dataStore.Count; j++) { base.m_Stream.Write((int)dataStore[j]); } base.m_Stream.Write(list.Count); for (int k = 0; k < list.Count; k++) { GServerTextBox box = (GServerTextBox)list[k]; base.m_Stream.Write((short)box.RelayID); base.m_Stream.Write((short)box.String.Length); base.m_Stream.WriteUnicode(box.String); } Engine.ReleaseDataStore(list); Engine.ReleaseDataStore(dataStore); }