public static List <MapPoint> LoadPoints(System.IO.Stream fs) { var pts = new List <MapPoint>(); var data = new byte[4]; fs.Read(data, 0, 4); int count = System.BitConverter.ToInt32(data, 0); if (count > 0) { int LENGTH = 17; GlobalMap gmap = GameMaster.realMaster.globalMap; for (int i = 0; i < count; i++) { data = new byte[LENGTH]; fs.Read(data, 0, LENGTH); int ID = System.BitConverter.ToInt32(data, 0); var mmtype = (MapPointType)data[4]; float angle = System.BitConverter.ToSingle(data, 5); float height = System.BitConverter.ToSingle(data, 9); float stability = System.BitConverter.ToSingle(data, 13); switch (mmtype) { case MapPointType.QuestMark: // awaiting break; case MapPointType.Station: case MapPointType.Wreck: case MapPointType.Island: case MapPointType.SOS: case MapPointType.Portal: case MapPointType.Colony: case MapPointType.Wiseman: case MapPointType.Wonder: case MapPointType.Resources: { var poi = new PointOfInterest(ID); // base loading poi.angle = angle; poi.height = height; poi.ringIndex = gmap.DefineRing(height); poi.type = mmtype; poi.stability = stability; // poi.Load(fs); // pts.Add(poi); break; } case MapPointType.Star: { var sp = new SunPoint(ID); // base loading sp.angle = angle; sp.height = height; sp.ringIndex = gmap.DefineRing(height); sp.type = mmtype; sp.stability = stability; // sp.LoadSunPointData(fs); // pts.Add(sp); break; } case MapPointType.MyCity: case MapPointType.Unknown: default: { var mpoint = new MapPoint(ID); // base loading mpoint.angle = angle; mpoint.height = height; mpoint.ringIndex = gmap.DefineRing(height); mpoint.type = mmtype; mpoint.stability = stability; // pts.Add(mpoint); break; } } } } data = new byte[4]; fs.Read(data, 0, 4); nextID = System.BitConverter.ToInt32(data, 0); return(pts); }