public static PlayerFileData LoadPlayer(string playerPath, bool cloudSave) { PlayerFileData playerFileData = new PlayerFileData(playerPath, cloudSave); if (cloudSave && SocialAPI.Cloud == null) { return playerFileData; } if (Main.rand == null) { Main.rand = new Random((int)DateTime.Now.Ticks); } Player player = new Player(); try { RijndaelManaged rijndaelManaged = new RijndaelManaged(); rijndaelManaged.Padding = PaddingMode.None; byte[] buffer = FileUtilities.ReadAllBytes(playerPath, cloudSave); PlayerFileData result; using (MemoryStream memoryStream = new MemoryStream(buffer)) { using (CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor(Player.ENCRYPTION_KEY, Player.ENCRYPTION_KEY), CryptoStreamMode.Read)) { using (BinaryReader binaryReader = new BinaryReader(cryptoStream)) { int num = binaryReader.ReadInt32(); if (num >= 135) { playerFileData.Metadata = FileMetadata.Read(binaryReader, FileType.Player); } else { playerFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.Player); } if (num > Main.curRelease) { player.loadStatus = 1; player.name = binaryReader.ReadString(); playerFileData.Player = player; result = playerFileData; return result; } player.name = binaryReader.ReadString(); if (num >= 10) { if (num >= 17) { player.difficulty = binaryReader.ReadByte(); } else { bool flag = binaryReader.ReadBoolean(); if (flag) { player.difficulty = 2; } } } if (num >= 138) { playerFileData.SetPlayTime(new TimeSpan(binaryReader.ReadInt64())); } else { playerFileData.SetPlayTime(TimeSpan.Zero); } player.hair = binaryReader.ReadInt32(); if (num >= 82) { player.hairDye = binaryReader.ReadByte(); } if (num >= 124) { BitsByte bitsByte = binaryReader.ReadByte(); for (int i = 0; i < 8; i++) { player.hideVisual[i] = bitsByte[i]; } bitsByte = binaryReader.ReadByte(); for (int j = 0; j < 2; j++) { player.hideVisual[j + 8] = bitsByte[j]; } } else if (num >= 83) { BitsByte bitsByte2 = binaryReader.ReadByte(); for (int k = 0; k < 8; k++) { player.hideVisual[k] = bitsByte2[k]; } } if (num >= 119) { player.hideMisc = binaryReader.ReadByte(); } if (num <= 17) { if (player.hair == 5 || player.hair == 6 || player.hair == 9 || player.hair == 11) { player.Male = false; } else { player.Male = true; } } else if (num < 107) { player.Male = binaryReader.ReadBoolean(); } else { player.skinVariant = (int)binaryReader.ReadByte(); } player.statLife = binaryReader.ReadInt32(); player.statLifeMax = binaryReader.ReadInt32(); if (player.statLifeMax > 500) { player.statLifeMax = 500; } player.statMana = binaryReader.ReadInt32(); player.statManaMax = binaryReader.ReadInt32(); if (player.statManaMax > 200) { player.statManaMax = 200; } if (player.statMana > 400) { player.statMana = 400; } if (num >= 125) { player.extraAccessory = binaryReader.ReadBoolean(); } if (num >= 128) { player.taxMoney = binaryReader.ReadInt32(); } player.hairColor = binaryReader.ReadRGB(); player.skinColor = binaryReader.ReadRGB(); player.eyeColor = binaryReader.ReadRGB(); player.shirtColor = binaryReader.ReadRGB(); player.underShirtColor = binaryReader.ReadRGB(); player.pantsColor = binaryReader.ReadRGB(); player.shoeColor = binaryReader.ReadRGB(); Main.player[Main.myPlayer].shirtColor = player.shirtColor; Main.player[Main.myPlayer].pantsColor = player.pantsColor; Main.player[Main.myPlayer].hairColor = player.hairColor; if (num >= 38) { if (num < 124) { int num2 = 11; if (num >= 81) { num2 = 16; } for (int l = 0; l < num2; l++) { int num3 = l; if (num3 >= 8) { num3 += 2; } player.armor[num3].netDefaults(binaryReader.ReadInt32()); player.armor[num3].Prefix((int)binaryReader.ReadByte()); } } else { int num4 = 20; for (int m = 0; m < num4; m++) { player.armor[m].netDefaults(binaryReader.ReadInt32()); player.armor[m].Prefix((int)binaryReader.ReadByte()); } } if (num >= 47) { int num5 = 3; if (num >= 81) { num5 = 8; } if (num >= 124) { num5 = 10; } for (int n = 0; n < num5; n++) { int num6 = n; player.dye[num6].netDefaults(binaryReader.ReadInt32()); player.dye[num6].Prefix((int)binaryReader.ReadByte()); } } if (num >= 58) { for (int num7 = 0; num7 < 58; num7++) { int num8 = binaryReader.ReadInt32(); if (num8 >= 3602) { player.inventory[num7].netDefaults(0); } else { player.inventory[num7].netDefaults(num8); player.inventory[num7].stack = binaryReader.ReadInt32(); player.inventory[num7].Prefix((int)binaryReader.ReadByte()); if (num >= 114) { player.inventory[num7].favorited = binaryReader.ReadBoolean(); } } } } else { for (int num9 = 0; num9 < 48; num9++) { int num10 = binaryReader.ReadInt32(); if (num10 >= 3602) { player.inventory[num9].netDefaults(0); } else { player.inventory[num9].netDefaults(num10); player.inventory[num9].stack = binaryReader.ReadInt32(); player.inventory[num9].Prefix((int)binaryReader.ReadByte()); } } } if (num >= 117) { if (num < 136) { for (int num11 = 0; num11 < 5; num11++) { if (num11 != 1) { int num12 = binaryReader.ReadInt32(); if (num12 >= 3602) { player.miscEquips[num11].netDefaults(0); } else { player.miscEquips[num11].netDefaults(num12); player.miscEquips[num11].Prefix((int)binaryReader.ReadByte()); } num12 = binaryReader.ReadInt32(); if (num12 >= 3602) { player.miscDyes[num11].netDefaults(0); } else { player.miscDyes[num11].netDefaults(num12); player.miscDyes[num11].Prefix((int)binaryReader.ReadByte()); } } } } else { for (int num13 = 0; num13 < 5; num13++) { int num14 = binaryReader.ReadInt32(); if (num14 >= 3602) { player.miscEquips[num13].netDefaults(0); } else { player.miscEquips[num13].netDefaults(num14); player.miscEquips[num13].Prefix((int)binaryReader.ReadByte()); } num14 = binaryReader.ReadInt32(); if (num14 >= 3602) { player.miscDyes[num13].netDefaults(0); } else { player.miscDyes[num13].netDefaults(num14); player.miscDyes[num13].Prefix((int)binaryReader.ReadByte()); } } } } if (num >= 58) { for (int num15 = 0; num15 < 40; num15++) { player.bank.item[num15].netDefaults(binaryReader.ReadInt32()); player.bank.item[num15].stack = binaryReader.ReadInt32(); player.bank.item[num15].Prefix((int)binaryReader.ReadByte()); } for (int num16 = 0; num16 < 40; num16++) { player.bank2.item[num16].netDefaults(binaryReader.ReadInt32()); player.bank2.item[num16].stack = binaryReader.ReadInt32(); player.bank2.item[num16].Prefix((int)binaryReader.ReadByte()); } } else { for (int num17 = 0; num17 < 20; num17++) { player.bank.item[num17].netDefaults(binaryReader.ReadInt32()); player.bank.item[num17].stack = binaryReader.ReadInt32(); player.bank.item[num17].Prefix((int)binaryReader.ReadByte()); } for (int num18 = 0; num18 < 20; num18++) { player.bank2.item[num18].netDefaults(binaryReader.ReadInt32()); player.bank2.item[num18].stack = binaryReader.ReadInt32(); player.bank2.item[num18].Prefix((int)binaryReader.ReadByte()); } } } else { for (int num19 = 0; num19 < 8; num19++) { player.armor[num19].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[num19].Prefix((int)binaryReader.ReadByte()); } } if (num >= 6) { for (int num20 = 8; num20 < 11; num20++) { player.armor[num20].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[num20].Prefix((int)binaryReader.ReadByte()); } } } for (int num21 = 0; num21 < 44; num21++) { player.inventory[num21].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[num21].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[num21].Prefix((int)binaryReader.ReadByte()); } } if (num >= 15) { for (int num22 = 44; num22 < 48; num22++) { player.inventory[num22].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[num22].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[num22].Prefix((int)binaryReader.ReadByte()); } } } for (int num23 = 0; num23 < 20; num23++) { player.bank.item[num23].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank.item[num23].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank.item[num23].Prefix((int)binaryReader.ReadByte()); } } if (num >= 20) { for (int num24 = 0; num24 < 20; num24++) { player.bank2.item[num24].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank2.item[num24].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank2.item[num24].Prefix((int)binaryReader.ReadByte()); } } } } if (num < 58) { for (int num25 = 40; num25 < 48; num25++) { player.inventory[num25 + 10] = player.inventory[num25].Clone(); player.inventory[num25].SetDefaults(0, false); } } if (num >= 11) { int num26 = 22; if (num < 74) { num26 = 10; } for (int num27 = 0; num27 < num26; num27++) { player.buffType[num27] = binaryReader.ReadInt32(); player.buffTime[num27] = binaryReader.ReadInt32(); if (player.buffType[num27] == 0) { num27--; num26--; } } } for (int num28 = 0; num28 < 200; num28++) { int num29 = binaryReader.ReadInt32(); if (num29 == -1) { break; } player.spX[num28] = num29; player.spY[num28] = binaryReader.ReadInt32(); player.spI[num28] = binaryReader.ReadInt32(); player.spN[num28] = binaryReader.ReadString(); } if (num >= 16) { player.hbLocked = binaryReader.ReadBoolean(); } if (num >= 115) { int num30 = 13; for (int num31 = 0; num31 < num30; num31++) { player.hideInfo[num31] = binaryReader.ReadBoolean(); } } if (num >= 98) { player.anglerQuestsFinished = binaryReader.ReadInt32(); } player.skinVariant = (int)MathHelper.Clamp((float)player.skinVariant, 0f, 7f); for (int num32 = 3; num32 < 8 + player.extraAccessorySlots; num32++) { int type = player.armor[num32].type; if (type == 908) { player.lavaMax += 420; } if (type == 906) { player.lavaMax += 420; } if (player.wingsLogic == 0 && player.armor[num32].wingSlot >= 0) { player.wingsLogic = (int)player.armor[num32].wingSlot; } if (type == 158 || type == 396 || type == 1250 || type == 1251 || type == 1252) { player.noFallDmg = true; } player.lavaTime = player.lavaMax; } } } } player.PlayerFrame(); player.loadStatus = 0; playerFileData.Player = player; result = playerFileData; return result; } catch { } Player player2 = new Player(); player2.loadStatus = 2; if (player.name != "") { player2.name = player.name; } else { string[] array = playerPath.Split(new char[] { Path.DirectorySeparatorChar }); player.name = array[array.Length - 1].Split(new char[] { '.' })[0]; } playerFileData.Player = player2; return playerFileData; }
public static PlayerFileData LoadPlayer(string playerPath) { PlayerFileData playerFileDatum; PlayerFileData playerFileDatum1 = new PlayerFileData(playerPath); if (Main.rand == null) { Main.rand = new Random((int)DateTime.Now.Ticks); } Player player = new Player(); try { RijndaelManaged rijndaelManaged = new RijndaelManaged() { Padding = PaddingMode.None }; using (MemoryStream memoryStream = new MemoryStream(FileUtilities.ReadAllBytes(playerPath))) { using (CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor(Player.ENCRYPTION_KEY, Player.ENCRYPTION_KEY), CryptoStreamMode.Read)) { using (BinaryReader binaryReader = new BinaryReader(cryptoStream)) { int num = binaryReader.ReadInt32(); if (num < 135) { playerFileDatum1.Metadata = FileMetadata.FromCurrentSettings(FileType.Player); } else { playerFileDatum1.Metadata = FileMetadata.Read(binaryReader, FileType.Player); } if (num <= Main.curRelease) { player.name = binaryReader.ReadString(); if (num >= 10) { if (num >= 17) { player.difficulty = binaryReader.ReadByte(); } else if (binaryReader.ReadBoolean()) { player.difficulty = 2; } } if (num < 138) { playerFileDatum1.SetPlayTime(TimeSpan.Zero); } else { playerFileDatum1.SetPlayTime(new TimeSpan(binaryReader.ReadInt64())); } player.hair = binaryReader.ReadInt32(); if (num >= 82) { player.hairDye = binaryReader.ReadByte(); } if (num >= 124) { BitsByte bitsByte = binaryReader.ReadByte(); for (int i = 0; i < 8; i++) { player.hideVisual[i] = bitsByte[i]; } bitsByte = binaryReader.ReadByte(); for (int j = 0; j < 2; j++) { player.hideVisual[j + 8] = bitsByte[j]; } } else if (num >= 83) { BitsByte bitsByte1 = binaryReader.ReadByte(); for (int k = 0; k < 8; k++) { player.hideVisual[k] = bitsByte1[k]; } } if (num >= 119) { player.hideMisc = binaryReader.ReadByte(); } if (num <= 17) { if (player.hair == 5 || player.hair == 6 || player.hair == 9 || player.hair == 11) { player.Male = false; } else { player.Male = true; } } else if (num >= 107) { player.skinVariant = binaryReader.ReadByte(); } else { player.Male = binaryReader.ReadBoolean(); } player.statLife = binaryReader.ReadInt32(); player.statLifeMax = binaryReader.ReadInt32(); if (player.statLifeMax > 500) { player.statLifeMax = 500; } player.statMana = binaryReader.ReadInt32(); player.statManaMax = binaryReader.ReadInt32(); if (player.statManaMax > 200) { player.statManaMax = 200; } if (player.statMana > 400) { player.statMana = 400; } if (num >= 125) { player.extraAccessory = binaryReader.ReadBoolean(); } if (num >= 128) { player.taxMoney = binaryReader.ReadInt32(); } player.hairColor = binaryReader.ReadRGB(); player.skinColor = binaryReader.ReadRGB(); player.eyeColor = binaryReader.ReadRGB(); player.shirtColor = binaryReader.ReadRGB(); player.underShirtColor = binaryReader.ReadRGB(); player.pantsColor = binaryReader.ReadRGB(); player.shoeColor = binaryReader.ReadRGB(); Main.player[Main.myPlayer].shirtColor = player.shirtColor; Main.player[Main.myPlayer].pantsColor = player.pantsColor; Main.player[Main.myPlayer].hairColor = player.hairColor; if (num < 38) { for (int l = 0; l < 8; l++) { player.armor[l].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[l].Prefix((int)binaryReader.ReadByte()); } } if (num >= 6) { for (int m = 8; m < 11; m++) { player.armor[m].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[m].Prefix((int)binaryReader.ReadByte()); } } } for (int n = 0; n < 44; n++) { player.inventory[n].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[n].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[n].Prefix((int)binaryReader.ReadByte()); } } if (num >= 15) { for (int o = 44; o < 48; o++) { player.inventory[o].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[o].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[o].Prefix((int)binaryReader.ReadByte()); } } } for (int p = 0; p < 20; p++) { player.bank.item[p].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank.item[p].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank.item[p].Prefix((int)binaryReader.ReadByte()); } } if (num >= 20) { for (int q = 0; q < 20; q++) { player.bank2.item[q].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank2.item[q].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank2.item[q].Prefix((int)binaryReader.ReadByte()); } } } } else { if (num >= 124) { int num1 = 20; for (int r = 0; r < num1; r++) { player.armor[r].netDefaults(binaryReader.ReadInt32()); player.armor[r].Prefix((int)binaryReader.ReadByte()); } } else { int num2 = 11; if (num >= 81) { num2 = 16; } for (int s = 0; s < num2; s++) { int num3 = s; if (num3 >= 8) { num3 = num3 + 2; } player.armor[num3].netDefaults(binaryReader.ReadInt32()); player.armor[num3].Prefix((int)binaryReader.ReadByte()); } } if (num >= 47) { int num4 = 3; if (num >= 81) { num4 = 8; } if (num >= 124) { num4 = 10; } for (int t = 0; t < num4; t++) { int num5 = t; player.dye[num5].netDefaults(binaryReader.ReadInt32()); player.dye[num5].Prefix((int)binaryReader.ReadByte()); } } if (num < 58) { for (int u = 0; u < 48; u++) { int num6 = binaryReader.ReadInt32(); if (num6 < Main.maxItemTypes) { player.inventory[u].netDefaults(num6); player.inventory[u].stack = binaryReader.ReadInt32(); player.inventory[u].Prefix((int)binaryReader.ReadByte()); } else { player.inventory[u].netDefaults(0); } } } else { for (int v = 0; v < 58; v++) { int num7 = binaryReader.ReadInt32(); if (num7 < Main.maxItemTypes) { player.inventory[v].netDefaults(num7); player.inventory[v].stack = binaryReader.ReadInt32(); player.inventory[v].Prefix((int)binaryReader.ReadByte()); if (num >= 114) { player.inventory[v].favorited = binaryReader.ReadBoolean(); } } else { player.inventory[v].netDefaults(0); } } } if (num >= 117) { if (num >= 136) { for (int w = 0; w < 5; w++) { int num8 = binaryReader.ReadInt32(); if (num8 < Main.maxItemTypes) { player.miscEquips[w].netDefaults(num8); player.miscEquips[w].Prefix((int)binaryReader.ReadByte()); } else { player.miscEquips[w].netDefaults(0); } num8 = binaryReader.ReadInt32(); if (num8 < Main.maxItemTypes) { player.miscDyes[w].netDefaults(num8); player.miscDyes[w].Prefix((int)binaryReader.ReadByte()); } else { player.miscDyes[w].netDefaults(0); } } } else { for (int x = 0; x < 5; x++) { if (x != 1) { int num9 = binaryReader.ReadInt32(); if (num9 < Main.maxItemTypes) { player.miscEquips[x].netDefaults(num9); player.miscEquips[x].Prefix((int)binaryReader.ReadByte()); } else { player.miscEquips[x].netDefaults(0); } num9 = binaryReader.ReadInt32(); if (num9 < Main.maxItemTypes) { player.miscDyes[x].netDefaults(num9); player.miscDyes[x].Prefix((int)binaryReader.ReadByte()); } else { player.miscDyes[x].netDefaults(0); } } } } } if (num < 58) { for (int y = 0; y < 20; y++) { player.bank.item[y].netDefaults(binaryReader.ReadInt32()); player.bank.item[y].stack = binaryReader.ReadInt32(); player.bank.item[y].Prefix((int)binaryReader.ReadByte()); } for (int a = 0; a < 20; a++) { player.bank2.item[a].netDefaults(binaryReader.ReadInt32()); player.bank2.item[a].stack = binaryReader.ReadInt32(); player.bank2.item[a].Prefix((int)binaryReader.ReadByte()); } } else { for (int b = 0; b < 40; b++) { player.bank.item[b].netDefaults(binaryReader.ReadInt32()); player.bank.item[b].stack = binaryReader.ReadInt32(); player.bank.item[b].Prefix((int)binaryReader.ReadByte()); } for (int c = 0; c < 40; c++) { player.bank2.item[c].netDefaults(binaryReader.ReadInt32()); player.bank2.item[c].stack = binaryReader.ReadInt32(); player.bank2.item[c].Prefix((int)binaryReader.ReadByte()); } } } if (num < 58) { for (int d = 40; d < 48; d++) { player.inventory[d + 10] = player.inventory[d].Clone(); player.inventory[d].SetDefaults(0, false); } } if (num >= 11) { int num10 = 22; if (num < 74) { num10 = 10; } for (int e = 0; e < num10; e++) { player.buffType[e] = binaryReader.ReadInt32(); player.buffTime[e] = binaryReader.ReadInt32(); if (player.buffType[e] == 0) { e--; num10--; } } } for (int f = 0; f < 200; f++) { int num11 = binaryReader.ReadInt32(); if (num11 == -1) { break; } player.spX[f] = num11; player.spY[f] = binaryReader.ReadInt32(); player.spI[f] = binaryReader.ReadInt32(); player.spN[f] = binaryReader.ReadString(); } if (num >= 16) { player.hbLocked = binaryReader.ReadBoolean(); } if (num >= 115) { int num12 = 13; for (int g = 0; g < num12; g++) { player.hideInfo[g] = binaryReader.ReadBoolean(); } } if (num >= 98) { player.anglerQuestsFinished = binaryReader.ReadInt32(); } player.skinVariant = (int)MathHelper.Clamp((float)player.skinVariant, 0f, 7f); for (int h = 3; h < 8 + player.extraAccessorySlots; h++) { int num13 = player.armor[h].type; if (num13 == 908) { Player player1 = player; player1.lavaMax = player1.lavaMax + 420; } if (num13 == 906) { Player player2 = player; player2.lavaMax = player2.lavaMax + 420; } if (player.wingsLogic == 0 && player.armor[h].wingSlot >= 0) { player.wingsLogic = player.armor[h].wingSlot; } if (num13 == 158 || num13 == 396 || num13 == 1250 || num13 == 1251 || num13 == 1252) { player.noFallDmg = true; } player.lavaTime = player.lavaMax; } } else { player.loadStatus = 1; player.name = binaryReader.ReadString(); playerFileDatum1.Player = player; playerFileDatum = playerFileDatum1; return playerFileDatum; } } } } player.PlayerFrame(); player.loadStatus = 0; playerFileDatum1.Player = player; playerFileDatum = playerFileDatum1; } catch { Player player3 = new Player() { loadStatus = 2 }; if (player.name == "") { char[] directorySeparatorChar = new char[] { Path.DirectorySeparatorChar }; string[] strArrays = playerPath.Split(directorySeparatorChar); string str = strArrays[(int)strArrays.Length - 1]; char[] chrArray = new char[] { '.' }; player.name = str.Split(chrArray)[0]; } else { player3.name = player.name; } playerFileDatum1.Player = player3; return playerFileDatum1; } return playerFileDatum; }
public static PlayerFileData LoadPlayer(string playerPath, bool cloudSave) { PlayerFileData playerFileData = new PlayerFileData(playerPath); if (Main.rand == null) Main.rand = new Random((int)DateTime.Now.Ticks); Player player1 = new Player(); try { RijndaelManaged rijndaelManaged = new RijndaelManaged(); rijndaelManaged.Padding = PaddingMode.None; using (MemoryStream memoryStream = new MemoryStream(FileUtilities.ReadAllBytes(playerPath))) { using (CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, rijndaelManaged.CreateDecryptor(Player.ENCRYPTION_KEY, Player.ENCRYPTION_KEY), CryptoStreamMode.Read)) { using (BinaryReader binaryReader = new BinaryReader((Stream)cryptoStream)) { int release = binaryReader.ReadInt32(); if (release >= 135) playerFileData.Metadata = FileMetadata.Read(binaryReader, FileType.Player); else playerFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.Player); if (release > Main.curRelease) { player1.loadStatus = 1; player1.name = binaryReader.ReadString(); playerFileData.Player = player1; return playerFileData; } player1.name = binaryReader.ReadString(); if (release >= 10) { if (release >= 17) player1.difficulty = binaryReader.ReadByte(); else if (binaryReader.ReadBoolean()) player1.difficulty = (byte)2; } if (release >= 138) playerFileData.SetPlayTime(new TimeSpan(binaryReader.ReadInt64())); else playerFileData.SetPlayTime(TimeSpan.Zero); player1.hair = binaryReader.ReadInt32(); if (release >= 82) player1.hairDye = binaryReader.ReadByte(); if (release >= 124) { BitsByte bitsByte = (BitsByte)binaryReader.ReadByte(); for (int index = 0; index < 8; ++index) player1.hideVisual[index] = bitsByte[index]; bitsByte = (BitsByte)binaryReader.ReadByte(); for (int index = 0; index < 2; ++index) player1.hideVisual[index + 8] = bitsByte[index]; } else if (release >= 83) { BitsByte bitsByte = (BitsByte)binaryReader.ReadByte(); for (int index = 0; index < 8; ++index) player1.hideVisual[index] = bitsByte[index]; } if (release >= 119) player1.hideMisc = (BitsByte)binaryReader.ReadByte(); if (release <= 17) player1.Male = player1.hair != 5 && player1.hair != 6 && (player1.hair != 9 && player1.hair != 11); else if (release < 107) player1.Male = binaryReader.ReadBoolean(); else player1.skinVariant = (int)binaryReader.ReadByte(); player1.statLife = binaryReader.ReadInt32(); player1.statLifeMax = binaryReader.ReadInt32(); if (player1.statLifeMax > 500) player1.statLifeMax = 500; player1.statMana = binaryReader.ReadInt32(); player1.statManaMax = binaryReader.ReadInt32(); if (player1.statManaMax > 200) player1.statManaMax = 200; if (player1.statMana > 400) player1.statMana = 400; if (release >= 125) player1.extraAccessory = binaryReader.ReadBoolean(); if (release >= 128) player1.taxMoney = binaryReader.ReadInt32(); player1.hairColor = Utils.ReadRGB(binaryReader); player1.skinColor = Utils.ReadRGB(binaryReader); player1.eyeColor = Utils.ReadRGB(binaryReader); player1.shirtColor = Utils.ReadRGB(binaryReader); player1.underShirtColor = Utils.ReadRGB(binaryReader); player1.pantsColor = Utils.ReadRGB(binaryReader); player1.shoeColor = Utils.ReadRGB(binaryReader); Main.player[Main.myPlayer].shirtColor = player1.shirtColor; Main.player[Main.myPlayer].pantsColor = player1.pantsColor; Main.player[Main.myPlayer].hairColor = player1.hairColor; if (release >= 38) { if (release < 124) { int num = 11; if (release >= 81) num = 16; for (int index1 = 0; index1 < num; ++index1) { int index2 = index1; if (index2 >= 8) index2 += 2; player1.armor[index2].netDefaults(binaryReader.ReadInt32()); player1.armor[index2].Prefix((int)binaryReader.ReadByte()); } } else { int num = 20; for (int index = 0; index < num; ++index) { player1.armor[index].netDefaults(binaryReader.ReadInt32()); player1.armor[index].Prefix((int)binaryReader.ReadByte()); } } if (release >= 47) { int num = 3; if (release >= 81) num = 8; if (release >= 124) num = 10; for (int index1 = 0; index1 < num; ++index1) { int index2 = index1; player1.dye[index2].netDefaults(binaryReader.ReadInt32()); player1.dye[index2].Prefix((int)binaryReader.ReadByte()); } } if (release >= 58) { for (int index = 0; index < 58; ++index) { int type = binaryReader.ReadInt32(); if (type >= 3601) { player1.inventory[index].netDefaults(0); } else { player1.inventory[index].netDefaults(type); player1.inventory[index].stack = binaryReader.ReadInt32(); player1.inventory[index].Prefix((int)binaryReader.ReadByte()); if (release >= 114) player1.inventory[index].favorited = binaryReader.ReadBoolean(); } } } else { for (int index = 0; index < 48; ++index) { int type = binaryReader.ReadInt32(); if (type >= 3601) { player1.inventory[index].netDefaults(0); } else { player1.inventory[index].netDefaults(type); player1.inventory[index].stack = binaryReader.ReadInt32(); player1.inventory[index].Prefix((int)binaryReader.ReadByte()); } } } if (release >= 117) { if (release < 136) { for (int index = 0; index < 5; ++index) { if (index != 1) { int type1 = binaryReader.ReadInt32(); if (type1 >= 3601) { player1.miscEquips[index].netDefaults(0); } else { player1.miscEquips[index].netDefaults(type1); player1.miscEquips[index].Prefix((int)binaryReader.ReadByte()); } int type2 = binaryReader.ReadInt32(); if (type2 >= 3601) { player1.miscDyes[index].netDefaults(0); } else { player1.miscDyes[index].netDefaults(type2); player1.miscDyes[index].Prefix((int)binaryReader.ReadByte()); } } } } else { for (int index = 0; index < 5; ++index) { int type1 = binaryReader.ReadInt32(); if (type1 >= 3601) { player1.miscEquips[index].netDefaults(0); } else { player1.miscEquips[index].netDefaults(type1); player1.miscEquips[index].Prefix((int)binaryReader.ReadByte()); } int type2 = binaryReader.ReadInt32(); if (type2 >= 3601) { player1.miscDyes[index].netDefaults(0); } else { player1.miscDyes[index].netDefaults(type2); player1.miscDyes[index].Prefix((int)binaryReader.ReadByte()); } } } } if (release >= 58) { for (int index = 0; index < 40; ++index) { player1.bank.item[index].netDefaults(binaryReader.ReadInt32()); player1.bank.item[index].stack = binaryReader.ReadInt32(); player1.bank.item[index].Prefix((int)binaryReader.ReadByte()); } for (int index = 0; index < 40; ++index) { player1.bank2.item[index].netDefaults(binaryReader.ReadInt32()); player1.bank2.item[index].stack = binaryReader.ReadInt32(); player1.bank2.item[index].Prefix((int)binaryReader.ReadByte()); } } else { for (int index = 0; index < 20; ++index) { player1.bank.item[index].netDefaults(binaryReader.ReadInt32()); player1.bank.item[index].stack = binaryReader.ReadInt32(); player1.bank.item[index].Prefix((int)binaryReader.ReadByte()); } for (int index = 0; index < 20; ++index) { player1.bank2.item[index].netDefaults(binaryReader.ReadInt32()); player1.bank2.item[index].stack = binaryReader.ReadInt32(); player1.bank2.item[index].Prefix((int)binaryReader.ReadByte()); } } } else { for (int index = 0; index < 8; ++index) { player1.armor[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); if (release >= 36) player1.armor[index].Prefix((int)binaryReader.ReadByte()); } if (release >= 6) { for (int index = 8; index < 11; ++index) { player1.armor[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); if (release >= 36) player1.armor[index].Prefix((int)binaryReader.ReadByte()); } } for (int index = 0; index < 44; ++index) { player1.inventory[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); player1.inventory[index].stack = binaryReader.ReadInt32(); if (release >= 36) player1.inventory[index].Prefix((int)binaryReader.ReadByte()); } if (release >= 15) { for (int index = 44; index < 48; ++index) { player1.inventory[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); player1.inventory[index].stack = binaryReader.ReadInt32(); if (release >= 36) player1.inventory[index].Prefix((int)binaryReader.ReadByte()); } } for (int index = 0; index < 20; ++index) { player1.bank.item[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); player1.bank.item[index].stack = binaryReader.ReadInt32(); if (release >= 36) player1.bank.item[index].Prefix((int)binaryReader.ReadByte()); } if (release >= 20) { for (int index = 0; index < 20; ++index) { player1.bank2.item[index].SetDefaults(Item.VersionName(binaryReader.ReadString(), release)); player1.bank2.item[index].stack = binaryReader.ReadInt32(); if (release >= 36) player1.bank2.item[index].Prefix((int)binaryReader.ReadByte()); } } } if (release < 58) { for (int index = 40; index < 48; ++index) { player1.inventory[index + 10] = player1.inventory[index].Clone(); player1.inventory[index].SetDefaults(0, false); } } if (release >= 11) { int num = 22; if (release < 74) num = 10; for (int index = 0; index < num; ++index) { player1.buffType[index] = binaryReader.ReadInt32(); player1.buffTime[index] = binaryReader.ReadInt32(); if (player1.buffType[index] == 0) { --index; --num; } } } for (int index = 0; index < 200; ++index) { int num = binaryReader.ReadInt32(); if (num != -1) { player1.spX[index] = num; player1.spY[index] = binaryReader.ReadInt32(); player1.spI[index] = binaryReader.ReadInt32(); player1.spN[index] = binaryReader.ReadString(); } else break; } if (release >= 16) player1.hbLocked = binaryReader.ReadBoolean(); if (release >= 115) { int num = 13; for (int index = 0; index < num; ++index) player1.hideInfo[index] = binaryReader.ReadBoolean(); } if (release >= 98) player1.anglerQuestsFinished = binaryReader.ReadInt32(); player1.skinVariant = (int)MathHelper.Clamp((float)player1.skinVariant, 0.0f, 7f); for (int index = 3; index < 8 + player1.extraAccessorySlots; ++index) { int num = player1.armor[index].itemId; if (num == 908) player1.lavaMax += 420; if (num == 906) player1.lavaMax += 420; if (player1.wingsLogic == 0 && (int)player1.armor[index].wingSlot >= 0) player1.wingsLogic = (int)player1.armor[index].wingSlot; if (num == 158 || num == 396 || (num == 1250 || num == 1251) || num == 1252) player1.noFallDmg = true; player1.lavaTime = player1.lavaMax; } } } } player1.PlayerFrame(); player1.loadStatus = 0; playerFileData.Player = player1; return playerFileData; } catch { } Player player2 = new Player(); player2.loadStatus = 2; if (player1.name != "") { player2.name = player1.name; } else { string[] strArray = playerPath.Split(Path.DirectorySeparatorChar); player1.name = strArray[strArray.Length - 1].Split('.')[0]; } playerFileData.Player = player2; return playerFileData; }