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;
            }
            }
        }
    }