Пример #1
0
        public void Save(BinaryWriter writer)
        {
            GameSave.WriteVector3(writer, Camera.CameraPos);
            writer.Write(Camera.Rotation);

            writer.Write(ExitRoom.X);
            writer.Write(ExitRoom.Y);
            int xsize = Visited.GetLength(0);
            int ysize = Visited.GetLength(1);

            writer.Write(xsize);
            writer.Write(ysize);
            for (int i = 0; i < xsize; i++)
            {
                for (int j = 0; j < ysize; j++)
                {
                    writer.Write(Visited[i, j]);
                    for (int k = 0; k < 4; k++)
                    {
                        writer.Write(CorridorLayout[i, j, k]);
                    }

                    Collectible.Type?type = Collectibles[i, j];
                    writer.Write(type == null ? -1 : (int)type.Value);
                }
            }

            writer.Write(zones.Count);
            foreach (Zone zone in zones)
            {
                zone.Save(writer);
            }

            writer.Write(gameObjects.Count);
            foreach (GameObject gameObject in gameObjects)
            {
                gameObject.Save(writer);
            }

            obstacles.Save(writer);
        }