//public bool HaveIncompatiblPlayerData() //{ // if (this.m_filename == null) // return false; // ZPackage zpackage = this.LoadPlayerDataFromDisk(); // if (zpackage == null || Version.IsPlayerVersionCompatible(zpackage.ReadInt())) // return false; // ZLog.Log((object)"Player data is not compatible, ignoring"); // return true; //} public void SavePlayerData(Player player) { ZPackage pkg = new ZPackage(); player.Save(pkg); this.m_playerData = pkg.GetArray(); }
public void Write(ZPackage pkg) { byte[] array = pkg.GetArray(); this.m_writer.Write(array.Length); this.m_writer.Write(array); }
//public void SaveLogoutPoint() //{ // if (!(bool)(UnityEngine.Object)Player.m_localPlayer || Player.m_localPlayer.IsDead() || Player.m_localPlayer.InIntro()) // return; // this.SetLogoutPoint(Player.m_localPlayer.transform.position); //} private bool SavePlayerToDisk() { string str1 = this.m_filename; string str2 = this.m_filename + ".old"; string str3 = this.m_filename + ".new"; ZPackage zpackage = new ZPackage(); zpackage.Write(Version.m_playerVersion); zpackage.Write(this.m_playerStats.m_kills); zpackage.Write(this.m_playerStats.m_deaths); zpackage.Write(this.m_playerStats.m_crafts); zpackage.Write(this.m_playerStats.m_builds); zpackage.Write(this.m_worldData.Count); foreach (KeyValuePair <long, PlayerProfile.WorldPlayerData> keyValuePair in this.m_worldData) { zpackage.Write(keyValuePair.Key); zpackage.Write(keyValuePair.Value.m_haveCustomSpawnPoint); zpackage.Write(keyValuePair.Value.m_spawnPoint); zpackage.Write(keyValuePair.Value.m_haveLogoutPoint); zpackage.Write(keyValuePair.Value.m_logoutPoint); zpackage.Write(keyValuePair.Value.m_haveDeathPoint); zpackage.Write(keyValuePair.Value.m_deathPoint); zpackage.Write(keyValuePair.Value.m_homePoint); zpackage.Write(keyValuePair.Value.m_mapData != null); if (keyValuePair.Value.m_mapData != null) { zpackage.Write(keyValuePair.Value.m_mapData); } } zpackage.Write(this.m_playerName); zpackage.Write(this.m_playerID); zpackage.Write(this.m_startSeed); if (this.m_playerData != null) { zpackage.Write(true); zpackage.Write(this.m_playerData); } else { zpackage.Write(false); } byte[] hash = zpackage.GenerateHash(); byte[] array = zpackage.GetArray(); FileStream fileStream = File.Create(str3); BinaryWriter binaryWriter = new BinaryWriter((Stream)fileStream); binaryWriter.Write(array.Length); binaryWriter.Write(array); binaryWriter.Write(hash.Length); binaryWriter.Write(hash); binaryWriter.Flush(); fileStream.Flush(true); fileStream.Close(); fileStream.Dispose(); if (File.Exists(str1)) { if (File.Exists(str2)) { File.Delete(str2); } File.Move(str1, str2); } File.Move(str3, str1); return(true); }