private static void PropertyListContent(PacketReader pvSrc) { int num = pvSrc.ReadUInt16(); int serial = pvSrc.ReadInt32(); int num3 = pvSrc.ReadByte(); int num4 = pvSrc.ReadByte(); int number = pvSrc.ReadInt32(); if (((num != 1) || (num3 != 0)) || (num4 != 0)) { pvSrc.Trace(); } ArrayList dataStore = Engine.GetDataStore(); while (true) { int num6 = pvSrc.ReadInt32(); if (num6 == 0) { break; } int length = pvSrc.ReadUInt16(); string arguments = Encoding.Unicode.GetString(pvSrc.ReadBytes(length)); dataStore.Add(new ObjectProperty(num6, arguments)); } ObjectPropertyList list2 = new ObjectPropertyList(serial, number, (ObjectProperty[]) dataStore.ToArray(typeof(ObjectProperty))); Engine.ReleaseDataStore(dataStore); Item item = World.FindItem(serial); if (item != null) { item.PropertyID = number; } Mobile mobile = World.FindMobile(serial); if (mobile != null) { mobile.PropertyID = number; } if (item != null) { object parent = item; bool flag = false; while (parent != null) { if (!(parent is Item)) { break; } Item item2 = (Item) parent; if (((item2.Container != null) && (item2.Container.Gump is GContainer)) && ((GContainer) item2.Container.Gump).m_TradeContainer) { flag = true; } if (flag) { break; } parent = item2.Parent; } if (flag && (parent is Item)) { Item item3 = (Item) parent; if ((item3.Container != null) && (item3.Container.Gump.Tooltip is ItemTooltip)) { GObjectProperties gump = ((ItemTooltip) item3.Container.Gump.Tooltip).Gump as GObjectProperties; if (gump != null) { gump.SetList(0xf9060 + (item3.ID & 0x3fff), item3.PropertyList); } } } } }
private static string BulletinBoard_ReadString(PacketReader pvSrc) { int length = pvSrc.ReadByte(); byte[] bytes = pvSrc.ReadBytes(length); for (int i = 0; i < length; i++) { if (bytes[i] == 0) { length = i; break; } } return Encoding.UTF8.GetString(bytes, 0, length); }
private static void CustomizedHouseContent(PacketReader pvSrc) { int compressionType = pvSrc.ReadByte(); int num2 = pvSrc.ReadByte(); int serial = pvSrc.ReadInt32(); int revision = pvSrc.ReadInt32(); int num5 = pvSrc.ReadUInt16(); int length = pvSrc.ReadUInt16(); byte[] buffer = pvSrc.ReadBytes(length); Item item = World.FindItem(serial); if (((item != null) && (item.Multi != null)) && item.IsMulti) { CustomMultiLoader.SetCustomMulti(serial, revision, item.Multi, compressionType, buffer); } }