public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)20); // version // version 20 - Adam writer.WriteUInt32(m_NPCData); // version 19 - Adam writer.Write(m_RestartDecay); //version 18 - Adam writer.WriteUInt32((System.UInt32)m_Flags); //version 17 - Adam writer.WriteUInt32(m_UpgradeCosts); //version 16 - Adam writer.WriteUInt32(m_LockBoxData); //version 15 - Pix writer.Write(m_SecurePremises); //version 14 - TK - store bool if IDOC Announcement is running writer.Write((bool)(m_IDOC_Broadcast_TCE != null)); //version 13 - Pix. - store minutes instead of timespan writer.Write(m_DecayMinutesStored); //version 12 - Pix. - house decay variables //writer.WriteDeltaTime( StructureDecayTime ); writer.Write(m_NeverDecay); //end version 12 additions writer.Write(m_MaxLockBoxes); // use the Property to insure we have an accurate count writer.Write(LockBoxCount); writer.Write((int)m_Visits); writer.Write((int)m_Price); writer.WriteMobileList(m_Access); writer.Write(m_BuiltOn); writer.Write(m_LastTraded); writer.WriteItemList(m_Addons, true); writer.Write(m_Secures.Count); for (int i = 0; i < m_Secures.Count; ++i) ((SecureInfo)m_Secures[i]).Serialize(writer); writer.Write(m_Public); writer.Write(BanLocation); writer.Write(m_Owner); // Version 5 no longer serializes region coords /*writer.Write( (int)m_Region.Coords.Count ); foreach( Rectangle2D rect in m_Region.Coords ) { writer.Write( rect ); }*/ writer.WriteMobileList(m_CoOwners, true); writer.WriteMobileList(m_Friends, true); writer.WriteMobileList(m_Bans, true); writer.Write(m_Sign); writer.Write(m_Trash); writer.WriteItemList(m_Doors, true); writer.WriteItemList(m_LockDowns, true); //writer.WriteItemList( m_Secures, true ); writer.Write((int)m_MaxLockDowns); writer.Write((int)m_MaxSecures); /* -- Adam: This code no longer applies as you cannot lock down containers * that are not 'deco' in a public building. Furthermore, you cannot lock down * items inside of a container. // Items in locked down containers that aren't locked down themselves must decay! //6/24/04 - Pix: this functionality shouldn't happen for private houses with our // lockbox concept. if( m_Public ) { for ( int i = 0; i < m_LockDowns.Count; ++i ) { Item item = (Item)m_LockDowns[i]; if ( item is Container && !(item is BaseBoard) ) { Container cont = (Container)item; ArrayList children = cont.Items; for ( int j = 0; j < children.Count; ++j ) { Item child = (Item)children[j]; if ( child.Decays && !child.IsLockedDown && !child.IsSecure && (child.LastMoved + child.DecayTime) <= DateTime.Now ) Timer.DelayCall( TimeSpan.Zero, new TimerCallback( child.Delete ) ); } } } } */ }