public static List<Actor> LoadFromString(String loadString) { char[] splitter = new char[1]; StandardObjects objectCreator = new StandardObjects(); objectCreator.Load(); List<Actor> actors = new List<Actor>(); splitter[0] = splitters[3]; String[] splitData = loadString.Split(splitter, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < splitData.Length; i++) { splitter[0] = splitters[0]; String[] parsedData = splitData[i].Split(splitter, StringSplitOptions.RemoveEmptyEntries); foreach (String rawActor in parsedData) { if (rawActor[0] == splitters[4]) { String rawLinked = rawActor.Remove(0, 1); splitter[0] = splitters[5]; String[] parsedPortalID = rawLinked.Split(splitter, StringSplitOptions.RemoveEmptyEntries); String linkID = parsedPortalID[0]; splitter[0] = splitters[6]; String[] parsedAddress = parsedPortalID[1].Split(splitter, StringSplitOptions.RemoveEmptyEntries); String address = parsedAddress[0]; splitter[0] = splitters[1]; String[] parsedActor = parsedAddress[1].Split(splitter); splitter[0] = splitters[2]; String[] parsedPosition = parsedActor[1].Split(splitter); Actor actor = objectCreator.create(int.Parse(parsedActor[0]), linkID, address); float x; float y; float.TryParse(parsedPosition[0], out x); float.TryParse(parsedPosition[1], out y); actor.PolyBody.SetMasterPosition(new Vector2(x, y)); actors.Add(actor); } else { splitter[0] = splitters[1]; String[] parsedActor = rawActor.Split(splitter); splitter[0] = splitters[2]; String[] parsedPosition = parsedActor[1].Split(splitter); Actor actor = objectCreator.create(int.Parse(parsedActor[0])); float x; float y; float.TryParse(parsedPosition[0], out x); float.TryParse(parsedPosition[1], out y); if (i == 0) actor.PolyBody.SetMasterPosition(new Vector2(x, y)); else if (i == 1) actor.PolyBody.Position = new Vector2(x, y); actors.Add(actor); } } actors.Add(null); } return actors; }