public static void Serialize(uLink.BitStream stream, object value, params object[] codecOptions) { try { TownTradeItemInfo ttii = value as TownTradeItemInfo; stream.WriteInt32(ttii.pos.x); stream.WriteInt32(ttii.pos.y); stream.WriteInt32(ttii.csti.id); stream.WriteSingle(ttii.m_CurTime); stream.WriteSingle(ttii.m_Time); stream.WriteInt32(ttii.needItems.Count); foreach (TradeObj to in ttii.needItems) { TradeObj.Serialize(stream, to); } stream.WriteInt32(ttii.rewardItems.Count); foreach (TradeObj to in ttii.rewardItems) { TradeObj.Serialize(stream, to); } } catch (System.Exception e) { throw e; } }
public static object Deserialize(uLink.BitStream stream, params object[] codecOptions) { try { IntVector2 pos = new IntVector2(stream.ReadInt32(), stream.ReadInt32()); TownTradeItemInfo ttii = new TownTradeItemInfo(pos); ttii.csti = CSTradeInfoData.GetData(stream.ReadInt32()); ttii.m_CurTime = stream.ReadSingle(); ttii.m_Time = stream.ReadSingle(); int needItemsCount = stream.ReadInt32(); for (int m = 0; m < needItemsCount; m++) { ttii.needItems.Add((TradeObj)TradeObj.Deserialize(stream)); } int rewardItemsCount = stream.ReadInt32(); for (int m = 0; m < rewardItemsCount; m++) { ttii.rewardItems.Add((TradeObj)TradeObj.Deserialize(stream)); } return(ttii); } catch (System.Exception e) { throw e; } }