public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if (version == 0) { bool bNull; int iNull; bNull = reader.ReadBool(); //custom hues bNull = reader.ReadBool(); //m_Blessed bNull = reader.ReadBool(); //m_Bonded bNull = reader.ReadBool(); //m_Hued iNull = reader.ReadInt(); //m_BlessedPrice iNull = reader.ReadInt(); //m_BondedPrice iNull = reader.ReadInt(); //m_HuedPrice m_AccessLevel = (AccessLevel)reader.ReadInt(); m_Currency = reader.ReadString(); m_EditMode = reader.ReadBool(); int size1 = reader.ReadInt(); ArrayList alPrice = new ArrayList( size1 ); for ( int i = 0; i < size1; ++i ) { int price = reader.ReadInt(); alPrice.Add( price ); } int size4 = reader.ReadInt(); ArrayList alNull = new ArrayList( size4 ); for ( int i = 0; i < size4; ++i ) { int hue = reader.ReadInt(); alNull.Add( hue ); } int size5 = reader.ReadInt(); ArrayList alAmount = new ArrayList( size5 ); for ( int i = 0; i < size5; ++i ) { int itemamount = reader.ReadInt(); alAmount.Add( itemamount ); } int size2 = reader.ReadInt(); ArrayList alItem = new ArrayList( size2 ); for ( int i = 0; i < size2; ++i ) { string item = reader.ReadString(); alItem.Add( item ); } int size3 = reader.ReadInt(); ArrayList alName = new ArrayList( size3 ); for ( int i = 0; i < size3; ++i ) { string gumpname = reader.ReadString(); alName.Add( gumpname ); } int size6 = reader.ReadInt(); alNull = new ArrayList( size6 ); for ( int i = 0; i < size6; ++i ) { int hueprices = reader.ReadInt(); alNull.Add( hueprices ); } //dispose of the not used arrays (bless.. bond...) alNull.Clear(); for( int i = 0; i < alName.Count; i++ ) { VSItem v = new VSItem( alItem[i].ToString(), alName[i].ToString(), (int)alPrice[i], (int)alAmount[i], false, 0, "" ); ItemList.Add( v ); } //dispose of the "old" arrays alItem.Clear(); alName.Clear(); alPrice.Clear(); alAmount.Clear(); } else switch( version ) { case 3: case 2: goto case 0; case 1: { bool blah = reader.ReadBool(); //for the usesledger goto case 0; } case 0: { m_AccessLevel = (AccessLevel)reader.ReadInt(); m_Currency = reader.ReadString(); m_EditMode = reader.ReadBool(); int size = reader.ReadInt(); m_ItemList = new ArrayList( size ); for ( int i = 0; i < size; ++i ) { VSItem vsi = new VSItem(); vsi.Deserialize( reader, version ); m_ItemList.Add( vsi ); } break; } } }