/// <summary> /// Process raw character bytes from save file /// </summary> /// <param name="rawCharacterbytes">Raw data from save file</param> private void ProcessCharacter(byte[] rawCharacterbytes) { ClearPlayerData(); CharacterEditor.Resources.Instance.ResourceSet = (string)comboBoxResourceSets.SelectedItem; playerData = new SaveReader(comboBoxResourceSets.SelectedItem.ToString()); try { playerData.Read(rawCharacterbytes); } catch (Exception ex) { new ErrorWindow("Unable to read character, most likely wrong version: " + ex.Message, true); return; } string errorString = ""; if (playerData.FailedCharacterDecoding) { errorString += "Failed character decoding\n"; } if (playerData.FailedInventoryDecoding) { errorString += "Failed inventory decoding"; } if (playerData.FailedSkillDecoding) { errorString += "Failed skill decoding"; } if (errorString.Length > 0) { ErrorWindow errorWindow = new ErrorWindow(errorString, true); } if (playerData.Inventory.FailedItemCount > 0) { new ErrorWindow(string.Format("Failed to read {0} items. These items will not be included when saving character", playerData.Inventory.FailedItemCount)); } RefreshCharacter(); RefreshInventory(); }