public void Save() {
const string tempFileName = Paths.PlayerDBFileName + ".bin.temp";
using( PlayerDB.GetReadLock() ) {
using( FileStream fs = OpenWrite( tempFileName ) ) {
BinaryWriter writer = new BinaryWriter( fs );
writer.Write( FormatVersion );
writer.Write( maxID );
writer.Write( RankManager.Ranks.Count );
foreach( Rank rank in RankManager.Ranks ) {
writer.Write( (byte)rank.Index );
writer.Write( rank.FullName );
}
int total = PlayerDB.List.Count;
writer.Write( total );
for( int i = 0; i < total; i++ ) {
SaveBinaryFormat0( PlayerDB.List[i], writer );
}
}
try {
Paths.MoveOrReplaceFile( tempFileName, Paths.PlayerDBFileName + ".bin" );
} catch( Exception ex ) {
Logger.Log( LogType.Error,
"PlayerDB.SaveBinary: An error occurred while trying to save PlayerDB: {0}", ex );
}
}
}