Server.StandardSaveStrategy.SaveMobiles C# (CSharp) Méthode

SaveMobiles() protected méthode

protected SaveMobiles ( SaveMetrics metrics ) : void
metrics SaveMetrics
Résultat void
        protected void SaveMobiles(SaveMetrics metrics)
        {
            Dictionary<Serial, Mobile> mobiles = World.Mobiles;

            GenericWriter idx;
            GenericWriter tdb;
            GenericWriter bin;

            if (UseSequentialWriters)
            {
                idx = new BinaryFileWriter( World.MobileIndexPath, false );
                tdb = new BinaryFileWriter( World.MobileTypesPath, false );
                bin = new BinaryFileWriter( World.MobileDataPath, true );
            } else {
                idx = new AsyncWriter( World.MobileIndexPath, false );
                tdb = new AsyncWriter( World.MobileTypesPath, false );
                bin = new AsyncWriter( World.MobileDataPath, true );
            }

            idx.Write( ( int ) mobiles.Count );
            foreach ( Mobile m in mobiles.Values ) {
                long start = bin.Position;

                idx.Write( ( int ) m.m_TypeRef );
                idx.Write( ( int ) m.Serial );
                idx.Write( ( long ) start );

                m.Serialize( bin );

                if ( metrics != null ) {
                    metrics.OnMobileSaved( ( int ) ( bin.Position - start ) );
                }

                idx.Write( ( int ) ( bin.Position - start ) );

                m.FreeCache();
            }

            tdb.Write( ( int ) World.m_MobileTypes.Count );

            for ( int i = 0; i < World.m_MobileTypes.Count; ++i )
                tdb.Write( World.m_MobileTypes[i].FullName );

            idx.Close();
            tdb.Close();
            bin.Close();
        }