public void FromString(string s) { string[] array = Regex.Split(s, "<fposA>"); for (int i = 0; i < array.Length; i++) { string[] array2 = Regex.Split(array[i], "<fposB>"); string text = array2[0]; switch (text) { case "integersArray": { string[] array3 = array2[1].Split(new char[] { '.' }); int num2 = 0; while (num2 < array3.Length && num2 < this.integers.Length) { this.integers[num2] = int.Parse(array3[num2]); num2++; } break; } case "miscBools": { int num3 = 0; while (num3 < array2[1].Length && num3 < this.miscBools.Length) { this.miscBools[num3] = (array2[1][num3] == '1'); num3++; } break; } case "significantPearls": { int num4 = 0; while (num4 < array2[1].Length && num4 < this.significantPearls.Length) { this.significantPearls[num4] = (array2[1][num4] == '1'); num4++; } break; } case "miscItemsDescribed": { int num5 = 0; while (num5 < array2[1].Length && num5 < this.miscItemsDescribed.Length) { this.miscItemsDescribed[num5] = (array2[1][num5] == '1'); num5++; } break; } case "likesPlayer": this.likesPlayer = float.Parse(array2[1]); break; case "itemsAlreadyTalkedAbout": { string[] array3 = Regex.Split(array2[1], "<fposC>"); for (int j = 0; j < array3.Length; j++) { if (array3[j].Length > 0) { this.alreadyTalkedAboutItems.Add(EntityID.FromString(array3[j])); } } break; } } } }