Пример #1
0
        public Storage()
        {
            PlayersLoaded = new ArrayList();
            result = Guide.BeginShowStorageDeviceSelector(PlayerIndex.One, null, null);
            Device = Guide.EndShowStorageDeviceSelector(result);

            // Open a storage container.
            StorageContainer container = Device.OpenContainer("Savegames");

            // Add the container path to our file name.
            string filename = Path.Combine(container.Path, "savegame.sav");

            // Create a new file.
            if (!File.Exists(filename))
            {
                FileStream file = File.Create(filename);
                file.Close();
            }
            // Dispose the container, to commit the data.
            container.Dispose();
        }
Пример #2
0
        /// <summary>
        /// Save the current state of the session, with the given storage device.
        /// </summary>
        /// <param name="storageDevice">The chosen storage device.</param>
        /// <param name="overwriteDescription">
        /// The description of the save game to over-write, if any.
        /// </param>
        private static void SaveSessionResult(StorageDevice storageDevice,
            SaveGameDescription overwriteDescription)
        {
            // check the parameter
            if ((storageDevice == null) || !storageDevice.IsConnected)
            {
                return;
            }

            // open the container
            using (StorageContainer storageContainer =
                storageDevice.OpenContainer(Session.SaveGameContainerName))
            {
                string filename;
                string descriptionFilename;
                // get the filenames
                if (overwriteDescription == null)
                {
                    int saveGameIndex = 0;
                    string testFilename;
                    do
                    {
                        saveGameIndex++;
                        testFilename = Path.Combine(storageContainer.Path, "SaveGame" +
                            saveGameIndex.ToString() + ".xml");
                    }
                    while (File.Exists(testFilename));
                    filename = testFilename;
                    descriptionFilename = "SaveGameDescription" +
                        saveGameIndex.ToString() + ".xml";
                }
                else
                {
                    filename = Path.Combine(storageContainer.Path,
                        overwriteDescription.FileName);
                    descriptionFilename = "SaveGameDescription" +
                        Path.GetFileNameWithoutExtension(
                        overwriteDescription.FileName).Substring(8) + ".xml";
                }
                using (FileStream stream = new FileStream(filename, FileMode.Create))
                {
                    using (XmlWriter xmlWriter = XmlWriter.Create(stream))
                    {
                        // <rolePlayingGameData>
                        xmlWriter.WriteStartElement("rolePlayingGameSaveData");

                        // write the map information
                        xmlWriter.WriteStartElement("mapData");
                        xmlWriter.WriteElementString("mapContentName",
                            TileEngine.Map.AssetName);
                        new XmlSerializer(typeof(PlayerPosition)).Serialize(
                            xmlWriter, TileEngine.PartyLeaderPosition);
                        new XmlSerializer(typeof(List<WorldEntry<Chest>>)).Serialize(
                            xmlWriter, singleton.removedMapChests);
                        new XmlSerializer(
                            typeof(List<WorldEntry<FixedCombat>>)).Serialize(
                            xmlWriter, singleton.removedMapFixedCombats);
                        new XmlSerializer(typeof(List<WorldEntry<Player>>)).Serialize(
                            xmlWriter, singleton.removedMapPlayerNpcs);
                        new XmlSerializer(typeof(List<ModifiedChestEntry>)).Serialize(
                            xmlWriter, singleton.modifiedMapChests);
                        xmlWriter.WriteEndElement();

                        // write the quest information
                        xmlWriter.WriteStartElement("questData");
                        xmlWriter.WriteElementString("questLineContentName",
                            singleton.questLine.AssetName);
                        xmlWriter.WriteElementString("currentQuestIndex",
                            singleton.currentQuestIndex.ToString());
                        new XmlSerializer(typeof(List<WorldEntry<Chest>>)).Serialize(
                            xmlWriter, singleton.removedQuestChests);
                        new XmlSerializer(
                            typeof(List<WorldEntry<FixedCombat>>)).Serialize(
                            xmlWriter, singleton.removedQuestFixedCombats);
                        new XmlSerializer(typeof(List<ModifiedChestEntry>)).Serialize(
                            xmlWriter, singleton.modifiedQuestChests);
                        xmlWriter.WriteElementString("currentQuestStage",
                            IsQuestLineComplete ?
                            Quest.QuestStage.NotStarted.ToString() :
                            singleton.quest.Stage.ToString());
                        xmlWriter.WriteEndElement();

                        // write the party data
                        new XmlSerializer(typeof(PartySaveData)).Serialize(xmlWriter,
                            new PartySaveData(singleton.party));

                        // </rolePlayingGameSaveData>
                        xmlWriter.WriteEndElement();
                    }
                }

                // create the save game description
                SaveGameDescription description = new SaveGameDescription();
                description.FileName = Path.GetFileName(filename);
                description.ChapterName = IsQuestLineComplete ? "Quest Line Complete" :
                    Quest.Name;
                description.Description = DateTime.Now.ToString();
                using (FileStream stream = new FileStream(Path.Combine(
                    storageContainer.Path, descriptionFilename), FileMode.Create))
                {
                    new XmlSerializer(typeof(SaveGameDescription)).Serialize(stream,
                        description);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Asynchronous storage-device callback for 
        /// refreshing the save-game descriptions.
        /// </summary>
        private static void RefreshSaveGameDescriptionsResult(
            StorageDevice storageDevice)
        {
            // check the parameter
            if ((storageDevice == null) || !storageDevice.IsConnected)
            {
                return;
            }

            // open the container
            using (StorageContainer storageContainer =
                storageDevice.OpenContainer(Session.SaveGameContainerName))
            {
                saveGameDescriptions = new List<SaveGameDescription>();
                // get the description list
                string[] filenames = Directory.GetFiles(storageContainer.Path,
                    "SaveGameDescription*.xml");
                // add each entry to the list
                foreach (string filename in filenames)
                {
                    SaveGameDescription saveGameDescription;

                    // check the size of the list
                    if (saveGameDescriptions.Count >= MaximumSaveGameDescriptions)
                    {
                        break;
                    }
                    // open the file stream
                    using (FileStream fileStream = File.Open(filename, FileMode.Open))
                    {
                        // deserialize the object
                        saveGameDescription =
                            saveGameDescriptionSerializer.Deserialize(fileStream)
                            as SaveGameDescription;
                        // if it's valid, add it to the list
                        if (saveGameDescription != null)
                        {
                            saveGameDescriptions.Add(saveGameDescription);
                        }
                    }
                }
            }
        }
Пример #4
0
        protected void SaveFile(StorageDevice device, string fi, string teta, string alfa)
        {
            //Массив байтов для записи в файл
            byte[] fia = new byte[fi.Length];
            byte[] tetaa = new byte[teta.Length];
            byte[] alfaa = new byte[alfa.Length];
            byte[] a = new byte[1];

            a[0] = Convert.ToByte(0);

            for (byte i = 0; i < fi.Length; i++)
            {
                fia[i] = Convert.ToByte(fi[i]);
            }
            for (byte i = 0; i < teta.Length; i++)
            {
                tetaa[i] = Convert.ToByte(teta[i]);
            }
            for (byte i = 0; i < alfa.Length; i++)
            {
                alfaa[i] = Convert.ToByte(alfa[i]);
            }

            //Открываем контейнер для хранения файлов
            //В случае с Windows-играми это - папка с соответствующим
            //именем в папке Мои документы текущего пользователя
            StorageContainer container = device.OpenContainer("Diplom");
            //Соединяем имя файла и имя контейнера
            string filename = Path.Combine(container.Path, "corner" + countnumber + ".txt");
            //Создаем новый файл
            countnumber++;
            if (!File.Exists(filename))
            {

                FileStream file = File.Create(filename);
                //Записываем в файл массив байтов, сгенерированный выше
                file.Write(fia, 0, fi.Length);
                file.Write(a, 0, 1);
                file.Write(tetaa, 0, teta.Length);
                file.Write(a, 0, 1);
                file.Write(alfaa, 0, alfa.Length);

                //закрываем файл
                file.Close();
                this.Window.Title = "Файл создан";
            }
            else
            {
                this.Window.Title = "Файл уже создан";
            }

            //Уничтожаем контейнер - только после этого файл будет
            //сохранен
            container.Dispose();
        }
Пример #5
0
        protected void LoadFile(StorageDevice device, string name)
        {
            StorageContainer container = device.OpenContainer("Diplom");
            long n = 0, m = 0;
            if (name.Length == 3)
            {
                m = Convert.ToInt64(name);
                n = Convert.ToInt64(name) / 100;
                name = Convert.ToString(m - n * 100);
            }
            if (name.Length == 6)
            {
                m = Convert.ToInt64(name);
                n = Convert.ToInt64(name) / 1000;
                name = Convert.ToString(m - n * 1000);
            }
            if (name.Length == 10)
            {
                m = Convert.ToInt64(name);
                n = Convert.ToInt64(name) / 10000;
                name = Convert.ToString(m - n * 10000);
            }

            string filename = Path.Combine(container.Path, "Trajectory" + name + ".dat");
            int k = -1;
            if (File.Exists(filename))
            {

                FileStream file = File.Open(filename, FileMode.Open);
                double[] Trajectory = new double[file.Length];
                byte[] bytes = new byte[4];
                //Выведем данные, считанные из файла, в заголовок игрового окна
                //this.Window.Title = "Содержимое файла: ";
                string s;
                int d = 14;
                double s1 = 0;
                double s2 = 0;
                double s3 = 0;
                length = (int)(file.Length / (14 * 5));
                int b;
                char c;
                for (int i = 1; i < file.Length + 1; i += d)
                {
                    s = "";

                    for (int j = 0; j < d; j++)
                    {
                        b = file.ReadByte();
                        c = Convert.ToChar(b);
                        //if (k == 1) s1 += c;
                        //if (c == 69)k=1;
                        if (c != 32) s += c;

                    }
                    this.Window.Title += s + " ";
                    string sd = s.Replace(".", ",");
                    sd = sd.Replace("D", "e");
                    k++;
                    if (k == 1)
                    {
                        s1 = Convert.ToDouble(sd);
                        d = 14;

                    }
                    if (k == 2)
                    {
                        s2 = Convert.ToDouble(sd);

                    }
                    if (k == 3)
                    {
                        s3 = Convert.ToDouble(sd);
                        d = 14;
                    }
                    if (k == 4)
                    {
                        d = 14;
                        fotonData.AddFatonDataList(s1, s2, s3);
                        k = -1;
                    }

                    //this.Window.Title += Convert.ToString(f) + "  ";

                }
                file.Close();
                ScienceMod = true;
                readfromfile = true;
            }
            else
            {
                this.Window.Title = "Отсутствует файл для чтения";
                readfromfile = false;
            }
            formCollection["LibraryMenu"]["textbox1"].Text = "";
            container.Dispose();
        }
Пример #6
0
        private void LoadData(StorageDevice storageDevice,ref int numChic, ref int chicQueue, ref int numRooster, 
            ref int roosterQueue, ref CharacterClass player, ref ChickenClass[] chickens, ref RoosterClass[] roosters,
            ref EconomicsClass eco, ref int eggCount, ref int numEgg, ref EggClass[] egg, ref int days, ref float dayTime,
            ref bool endOfDay, ref int numBoots, ref RubberBootClass[] boots, ref float bootTime, ref bool bootPresent,
            ref bool bootEquipped, ref FoxClass fox)
        {
            StorageContainer myContainer = storageDevice.OpenContainer("Chicken_Game");
            string filename = Path.Combine(myContainer.Path, "ChickenGameSave.sav");
            if (!File.Exists(filename))
                return;
            FileStream fileStream = File.Open(filename, FileMode.OpenOrCreate, FileAccess.Read);
            XmlSerializer serializer = new XmlSerializer(typeof(DataToSave));
            DataToSave dataToSave = (DataToSave)serializer.Deserialize(fileStream);
            fileStream.Close();
            myContainer.Dispose();

            //load character
            player.position = dataToSave.cPosition;
            player.rotation = dataToSave.cRotation;
            player.hitPoints = dataToSave.hitpoints;

            //load chickens
            numChic = dataToSave.numChickens;
            chicQueue = dataToSave.ChicQueue;

            //load chicken1
            if (dataToSave.chic1time != -1)
            {
                chickens[0] = new ChickenClass(Content, graphics);
                chickens[0].InitializeChicken(0);
                chickens[0].time = dataToSave.chic1time;
                chickens[0].state = dataToSave.chic1state;
                chickens[0].ground = dataToSave.chic1ground;
                chickens[0].ChickenInitNode = dataToSave.chic1InitNode;
                chickens[0].ChickenPreviousNode = dataToSave.chic1PreviousNode;
                chickens[0].ChickenCurrentNode = dataToSave.chic1CurrentNode;
                chickens[0].chickenNextNode = dataToSave.chic1NextNode;
                chickens[0].position = dataToSave.chic1Position;
                chickens[0].rotation = dataToSave.chic1Rotation;
                chickens[0].riseRun = dataToSave.chic1RiseRun;
                chickens[0].eggLaid = dataToSave.chic1EggLaid;
            }
            //load chicken2
            if (dataToSave.chic2time != -1)
            {
                chickens[1] = new ChickenClass(Content, graphics);
                chickens[1].InitializeChicken(0);
                chickens[1].time = dataToSave.chic2time;
                chickens[1].state = dataToSave.chic2state;
                chickens[1].ground = dataToSave.chic2ground;
                chickens[1].ChickenInitNode = dataToSave.chic2InitNode;
                chickens[1].ChickenPreviousNode = dataToSave.chic2PreviousNode;
                chickens[1].ChickenCurrentNode = dataToSave.chic2CurrentNode;
                chickens[1].chickenNextNode = dataToSave.chic2NextNode;
                chickens[1].position = dataToSave.chic2Position;
                chickens[1].rotation = dataToSave.chic2Rotation;
                chickens[1].riseRun = dataToSave.chic2RiseRun;
                chickens[1].eggLaid = dataToSave.chic2EggLaid;
            }
            //load chicken3
            if (dataToSave.chic3time != -1)
            {
                chickens[2] = new ChickenClass(Content, graphics);
                chickens[2].InitializeChicken(0);
                chickens[2].time = dataToSave.chic3time;
                chickens[2].state = dataToSave.chic3state;
                chickens[2].ground = dataToSave.chic3ground;
                chickens[2].ChickenInitNode = dataToSave.chic3InitNode;
                chickens[2].ChickenPreviousNode = dataToSave.chic3PreviousNode;
                chickens[2].ChickenCurrentNode = dataToSave.chic3CurrentNode;
                chickens[2].chickenNextNode = dataToSave.chic3NextNode;
                chickens[2].position = dataToSave.chic3Position;
                chickens[2].rotation = dataToSave.chic3Rotation;
                chickens[2].riseRun = dataToSave.chic3RiseRun;
                chickens[2].eggLaid = dataToSave.chic3EggLaid;
            }
            //load chicken4
            if (dataToSave.chic4time != -1)
            {
                chickens[3] = new ChickenClass(Content, graphics);
                chickens[3].InitializeChicken(0);
                chickens[3].time = dataToSave.chic4time;
                chickens[3].state = dataToSave.chic4state;
                chickens[3].ground = dataToSave.chic4ground;
                chickens[3].ChickenInitNode = dataToSave.chic4InitNode;
                chickens[3].ChickenPreviousNode = dataToSave.chic4PreviousNode;
                chickens[3].ChickenCurrentNode = dataToSave.chic4CurrentNode;
                chickens[3].chickenNextNode = dataToSave.chic4NextNode;
                chickens[3].position = dataToSave.chic4Position;
                chickens[3].rotation = dataToSave.chic4Rotation;
                chickens[3].riseRun = dataToSave.chic4RiseRun;
                chickens[3].eggLaid = dataToSave.chic4EggLaid;
            }
            //load chicken5
            if (dataToSave.chic5time != -1)
            {
                chickens[4] = new ChickenClass(Content, graphics);
                chickens[4].InitializeChicken(0);
                chickens[4].time = dataToSave.chic5time;
                chickens[4].state = dataToSave.chic5state;
                chickens[4].ground = dataToSave.chic5ground;
                chickens[4].ChickenInitNode = dataToSave.chic5InitNode;
                chickens[4].ChickenPreviousNode = dataToSave.chic5PreviousNode;
                chickens[4].ChickenCurrentNode = dataToSave.chic5CurrentNode;
                chickens[4].chickenNextNode = dataToSave.chic5NextNode;
                chickens[4].position = dataToSave.chic5Position;
                chickens[4].rotation = dataToSave.chic5Rotation;
                chickens[4].riseRun = dataToSave.chic5RiseRun;
                chickens[4].eggLaid = dataToSave.chic5EggLaid;
            }
            //load chicken6
            if (dataToSave.chic6time != -1)
            {
                chickens[5] = new ChickenClass(Content, graphics);
                chickens[5].InitializeChicken(0);
                chickens[5].time = dataToSave.chic6time;
                chickens[5].state = dataToSave.chic6state;
                chickens[5].ground = dataToSave.chic6ground;
                chickens[5].ChickenInitNode = dataToSave.chic6InitNode;
                chickens[5].ChickenPreviousNode = dataToSave.chic6PreviousNode;
                chickens[5].ChickenCurrentNode = dataToSave.chic6CurrentNode;
                chickens[5].chickenNextNode = dataToSave.chic6NextNode;
                chickens[5].position = dataToSave.chic6Position;
                chickens[5].rotation = dataToSave.chic6Rotation;
                chickens[5].riseRun = dataToSave.chic6RiseRun;
                chickens[5].eggLaid = dataToSave.chic6EggLaid;
            }
            //load chicken7
            if (dataToSave.chic7time != -1)
            {
                chickens[6] = new ChickenClass(Content, graphics);
                chickens[6].InitializeChicken(0);
                chickens[6].time = dataToSave.chic7time;
                chickens[6].state = dataToSave.chic7state;
                chickens[6].ground = dataToSave.chic7ground;
                chickens[6].ChickenInitNode = dataToSave.chic7InitNode;
                chickens[6].ChickenPreviousNode = dataToSave.chic7PreviousNode;
                chickens[6].ChickenCurrentNode = dataToSave.chic7CurrentNode;
                chickens[6].chickenNextNode = dataToSave.chic7NextNode;
                chickens[6].position = dataToSave.chic7Position;
                chickens[6].rotation = dataToSave.chic7Rotation;
                chickens[6].riseRun = dataToSave.chic7RiseRun;
                chickens[6].eggLaid = dataToSave.chic7EggLaid;
            }
            //load chicken8
            if (dataToSave.chic8time != -1)
            {
                chickens[7] = new ChickenClass(Content, graphics);
                chickens[7].InitializeChicken(0);
                chickens[7].time = dataToSave.chic8time;
                chickens[7].state = dataToSave.chic8state;
                chickens[7].ground = dataToSave.chic8ground;
                chickens[7].ChickenInitNode = dataToSave.chic8InitNode;
                chickens[7].ChickenPreviousNode = dataToSave.chic8PreviousNode;
                chickens[7].ChickenCurrentNode = dataToSave.chic8CurrentNode;
                chickens[7].chickenNextNode = dataToSave.chic8NextNode;
                chickens[7].position = dataToSave.chic8Position;
                chickens[7].rotation = dataToSave.chic8Rotation;
                chickens[7].riseRun = dataToSave.chic8RiseRun;
                chickens[7].eggLaid = dataToSave.chic8EggLaid;
            }
            //load chicken9
            if (dataToSave.chic9time != -1)
            {
                chickens[8] = new ChickenClass(Content, graphics);
                chickens[8].InitializeChicken(0);
                chickens[8].time = dataToSave.chic9time;
                chickens[8].state = dataToSave.chic9state;
                chickens[8].ground = dataToSave.chic9ground;
                chickens[8].ChickenInitNode = dataToSave.chic9InitNode;
                chickens[8].ChickenPreviousNode = dataToSave.chic9PreviousNode;
                chickens[8].ChickenCurrentNode = dataToSave.chic9CurrentNode;
                chickens[8].chickenNextNode = dataToSave.chic9NextNode;
                chickens[8].position = dataToSave.chic9Position;
                chickens[8].rotation = dataToSave.chic9Rotation;
                chickens[8].riseRun = dataToSave.chic9RiseRun;
                chickens[8].eggLaid = dataToSave.chic9EggLaid;
            }
            //load chicken1
            if (dataToSave.chic10time != -1)
            {
                chickens[9] = new ChickenClass(Content, graphics);
                chickens[9].InitializeChicken(0);
                chickens[9].time = dataToSave.chic10time;
                chickens[9].state = dataToSave.chic10state;
                chickens[9].ground = dataToSave.chic10ground;
                chickens[9].ChickenInitNode = dataToSave.chic10InitNode;
                chickens[9].ChickenPreviousNode = dataToSave.chic10PreviousNode;
                chickens[9].ChickenCurrentNode = dataToSave.chic10CurrentNode;
                chickens[9].chickenNextNode = dataToSave.chic10NextNode;
                chickens[9].position = dataToSave.chic10Position;
                chickens[9].rotation = dataToSave.chic10Rotation;
                chickens[9].riseRun = dataToSave.chic10RiseRun;
                chickens[9].eggLaid = dataToSave.chic10EggLaid;
            }

            //economics save
            eco.money = dataToSave.money;
            eco.startEggs = dataToSave.startEggs;
            eco.startChickens = dataToSave.startChickens;
            eco.startRoosters = dataToSave.startRoosters;
            eco.startmoney = dataToSave.startmoney;
            eco.eggsCollected = dataToSave.eggsCollected;
            eco.chickenBought = dataToSave.chickenBought;
            eco.roosterBought = dataToSave.roosterBought;
            eco.eggsEaten = dataToSave.eggsEaten;
            eco.eggSold = dataToSave.eggSold;
            eco.chickenSold = dataToSave.chickenSold;
            eco.roosterSold = dataToSave.roosterSold;
            eco.chickenEaten = dataToSave.chickenEaten;
            eco.roosterEaten = dataToSave.roosterEaten;
            eco.moneyAquired = dataToSave.moneyAquired;

            //load roosters
            numRooster = dataToSave.numRooster;
            roosterQueue = dataToSave.roosterQueue;

            //rooster1 load
            if (dataToSave.rooster1state != -1)
            {
                roosters[0] = new RoosterClass(Content, graphics);
                roosters[0].InitializeRooster(13);
                roosters[0].state = dataToSave.rooster1state;
                roosters[0].roosterInitNode = dataToSave.rooster1InitNode;
                roosters[0].roosterPreviousNode = dataToSave.rooster1PreviousNode;
                roosters[0].roosterCurrentNode = dataToSave.rooster1CurrentNode;
                roosters[0].roosterNextNode = dataToSave.rooster1NextNode;
                roosters[0].position = dataToSave.rooster1Position;
                roosters[0].rotation = dataToSave.rooster1Rotation;
                roosters[0].riseRun = dataToSave.rooster1RiseRun;
                roosters[0].riseRun2 = dataToSave.rooster1RiseRun2;
                roosters[0].start = dataToSave.rooster1Start;
            }

            //rooster2 load
            if (dataToSave.rooster2state != -1)
            {
                roosters[1] = new RoosterClass(Content, graphics);
                roosters[1].InitializeRooster(13);
                roosters[1].state = dataToSave.rooster2state;
                roosters[1].roosterInitNode = dataToSave.rooster2InitNode;
                roosters[1].roosterPreviousNode = dataToSave.rooster2PreviousNode;

                roosters[1].roosterCurrentNode = dataToSave.rooster2CurrentNode;
                roosters[1].roosterNextNode = dataToSave.rooster2NextNode;
                roosters[1].position = dataToSave.rooster2Position;
                roosters[1].rotation = dataToSave.rooster2Rotation;
                roosters[1].riseRun = dataToSave.rooster2RiseRun;
                roosters[1].riseRun2 = dataToSave.rooster2RiseRun2;
                roosters[1].start = dataToSave.rooster2Start;
            }

            //rooster3 load
            if (dataToSave.rooster3state != -1)
            {
                roosters[2] = new RoosterClass(Content, graphics);
                roosters[2].InitializeRooster(13);
                roosters[2].state = dataToSave.rooster3state;
                roosters[2].roosterInitNode = dataToSave.rooster3InitNode;
                roosters[2].roosterPreviousNode = dataToSave.rooster3PreviousNode;
                roosters[2].roosterCurrentNode = dataToSave.rooster3CurrentNode;
                roosters[2].roosterNextNode = dataToSave.rooster3NextNode;
                roosters[2].position = dataToSave.rooster3Position;
                roosters[2].rotation = dataToSave.rooster3Rotation;
                roosters[2].riseRun = dataToSave.rooster3RiseRun;
                roosters[2].riseRun2 = dataToSave.rooster3RiseRun2;
                roosters[2].start = dataToSave.rooster3Start;
            }

            //rooster4 load
            if (dataToSave.rooster4state != -1)
            {
                roosters[3] = new RoosterClass(Content, graphics);
                roosters[3].InitializeRooster(13);
                roosters[3].state = dataToSave.rooster4state;
                roosters[3].roosterInitNode = dataToSave.rooster4InitNode;
                roosters[3].roosterPreviousNode = dataToSave.rooster4PreviousNode;
                roosters[3].roosterCurrentNode = dataToSave.rooster4CurrentNode;
                roosters[3].roosterNextNode = dataToSave.rooster4NextNode;
                roosters[3].position = dataToSave.rooster4Position;
                roosters[3].rotation = dataToSave.rooster4Rotation;
                roosters[3].riseRun = dataToSave.rooster4RiseRun;
                roosters[3].riseRun2 = dataToSave.rooster4RiseRun2;
                roosters[3].start = dataToSave.rooster4Start;
            }

            //rooster5 load
            if (dataToSave.rooster5state != -1)
            {
                roosters[4] = new RoosterClass(Content, graphics);
                roosters[4].InitializeRooster(13);
                roosters[4].state = dataToSave.rooster5state;
                roosters[4].roosterInitNode = dataToSave.rooster5InitNode;
                roosters[4].roosterPreviousNode = dataToSave.rooster5PreviousNode;
                roosters[4].roosterCurrentNode = dataToSave.rooster5CurrentNode;
                roosters[4].roosterNextNode = dataToSave.rooster5NextNode;
                roosters[4].position = dataToSave.rooster5Position;
                roosters[4].rotation = dataToSave.rooster5Rotation;
                roosters[4].riseRun = dataToSave.rooster5RiseRun;
                roosters[4].riseRun2 = dataToSave.rooster5RiseRun2;
                roosters[4].start = dataToSave.rooster5Start;
            }

            //eggclass
            eggCount = dataToSave.eggCount;
            numEgg = dataToSave.numEgg;
            if (numEgg > 0)
            {
                egg[0].position = new Vector3();
                egg[0].position = new Vector3(dataToSave.egg1.X, dataToSave.egg1.Y, dataToSave.egg1.Z);
            }
            if (numEgg > 1)
            {
                egg[1].position = new Vector3();
                egg[1].position = new Vector3(dataToSave.egg2.X, dataToSave.egg2.Y, dataToSave.egg2.Z);
            }
            if (numEgg > 2)
            {
                egg[2].position = new Vector3();
                egg[2].position = new Vector3(dataToSave.egg3.X,dataToSave.egg3.Y,dataToSave.egg3.Z);
            }
            if (numEgg > 3)
            {
                egg[3].position = new Vector3();
                egg[3].position = new Vector3(dataToSave.egg4.X,dataToSave.egg4.Y, dataToSave.egg4.Z);
            }
            if (numEgg > 4)
            {
                egg[4].position = new Vector3();
                egg[4].position = new Vector3(dataToSave.egg5.X, dataToSave.egg5.Y, dataToSave.egg5.Z);
            }
            if (numEgg > 5)
            {
                egg[5].position = new Vector3();
                egg[5].position = new Vector3(dataToSave.egg6.X, dataToSave.egg6.Y, dataToSave.egg6.Z);
            }
            if (numEgg > 6)
            {
                egg[6].position = new Vector3();
                egg[6].position = new Vector3(dataToSave.egg7.X, dataToSave.egg7.Y, dataToSave.egg7.Z);
            }
            if (numEgg > 7)
            {
                egg[7].position = new Vector3();
                egg[7].position = new Vector3(dataToSave.egg8.X, dataToSave.egg8.Y, dataToSave.egg8.Z);
            }
            if (numEgg > 8)
            {
                egg[8].position = new Vector3();
                egg[8].position = new Vector3(dataToSave.egg9.X, dataToSave.egg9.Y, dataToSave.egg9.Z);
            }
            if (numEgg > 9)
            {
                egg[9].position = new Vector3();
                egg[9].position = new Vector3(dataToSave.egg10.X, dataToSave.egg10.Y, dataToSave.egg10.Z);
            }
            if (numEgg > 10)
            {
                egg[10].position = new Vector3();
                egg[10].position = new Vector3(dataToSave.egg11.X, dataToSave.egg11.Y, dataToSave.egg11.Z);
            }
            if (numEgg > 11)
            {
                egg[11].position = new Vector3();
                egg[11].position = new Vector3(dataToSave.egg12.X, dataToSave.egg12.Y, dataToSave.egg12.Z);
            }
            if (numEgg > 12)
            {
                egg[12].position = new Vector3();
                egg[12].position = new Vector3(dataToSave.egg13.X, dataToSave.egg13.Y, dataToSave.egg13.Z);
            }
            if (numEgg > 13)
            {
                egg[13].position = new Vector3();
                egg[13].position = new Vector3(dataToSave.egg14.X, dataToSave.egg14.Y, dataToSave.egg14.Z);
            }
            if (numEgg > 14)
            {
                egg[14].position = new Vector3();
                egg[14].position = new Vector3(dataToSave.egg15.X, dataToSave.egg15.Y, dataToSave.egg15.Z);
            }
            if (numEgg > 15)
            {
                egg[15].position = new Vector3();
                egg[15].position = new Vector3(dataToSave.egg16.X, dataToSave.egg16.Y, dataToSave.egg16.Z);
            }
            if (numEgg > 16)
            {
                egg[16].position = new Vector3();
                egg[16].position = new Vector3(dataToSave.egg17.X, dataToSave.egg17.Y, dataToSave.egg17.Z);
            }
            if (numEgg > 17)
            {
                egg[17].position = new Vector3();
                egg[17].position = new Vector3(dataToSave.egg18.X, dataToSave.egg18.Y, dataToSave.egg18.Z);
            }
            if (numEgg > 18)
            {
                egg[18].position = new Vector3();
                egg[18].position = new Vector3(dataToSave.egg19.X, dataToSave.egg19.Y, dataToSave.egg19.Z);
            }
            if (numEgg > 19)
            {
                egg[19].position = new Vector3();
                egg[19].position = new Vector3(dataToSave.egg20.X, dataToSave.egg20.Y, dataToSave.egg20.Z);
            }

            days = dataToSave.days;
            dayTime = dataToSave.dayTime;
            endOfDay = dataToSave.endOfDay;

            //boots
            numBoots = dataToSave.numBoots;
            if (numBoots > 0)
            {
                boots[0] = new RubberBootClass(Content, graphics);
                boots[0].position = dataToSave.boot1;
            }
            if (numBoots > 1)
            {
                boots[1] = new RubberBootClass(Content, graphics);
                boots[1].position = dataToSave.boot2;
            }
            bootTime = dataToSave.bootTime;
            bootPresent = dataToSave.bootPresent;
            bootEquipped = dataToSave.bootEquipped;

            //fox
            fox.wandering = dataToSave.foxWandering;
            fox.foxInitNode = dataToSave.foxInitNode;
            fox.foxPreviousNode = dataToSave.foxPreviousNode;
            fox.foxCurrentNode = dataToSave.foxCurrentNode;
            fox.foxNextNode = dataToSave.foxNextNode;
            fox.position = dataToSave.foxPosition;
            fox.positionOld = dataToSave.foxPositionOld;
            fox.rotation = dataToSave.foxRotation;
            fox.riseRun = dataToSave.foxRiseRun;
            fox.riseRun2 = dataToSave.foxRiseRun2;
            fox.chasing = dataToSave.foxChasing;
            fox.avoiding = dataToSave.foxAvoiding;
            fox.timer = dataToSave.foxTimer;
            fox.chaseTime = dataToSave.foxChaseTime;
            fox.timer2 = dataToSave.foxTimer2;
            fox.home = dataToSave.foxHome;
            fox.start = dataToSave.foxStart;
            fox.temp1 = dataToSave.foxTemp1;
        }
Пример #7
0
        private static void Save(StorageDevice storageDevice,int numChics, int chicQueue, CharacterClass player,
            int numRooster, int roosterQueue, ChickenClass[] chickens, RoosterClass[] roosters, EconomicsClass eco, 
            int eggCount, int numEgg, EggClass[] egg, int days, float dayTime, bool endOfDay, int numBoots,
            RubberBootClass[] boots,
            float bootTime, bool bootPresent, bool bootEquipped, FoxClass fox)
        {
            // Pass the information into the data objects
            DataToSave dataToSave = new DataToSave();

            //save character
            dataToSave.cPosition = player.position;
            dataToSave.cRotation = player.rotation;
            dataToSave.hitpoints = player.hitPoints;

            //save Chickens
            dataToSave.numChickens = numChics;
            dataToSave.ChicQueue = chicQueue;
            //save chicken1
            if (chickens[0].time != null)
            {
                dataToSave.chic1time = chickens[0].time;
                dataToSave.chic1state = chickens[0].state;
                dataToSave.chic1ground = chickens[0].ground;
                dataToSave.chic1InitNode = chickens[0].ChickenInitNode;
                dataToSave.chic1PreviousNode = chickens[0].ChickenPreviousNode;
                dataToSave.chic1CurrentNode = chickens[0].ChickenCurrentNode;
                dataToSave.chic1NextNode = (int)chickens[0].chickenNextNode;
                dataToSave.chic1Position = chickens[0].position;
                dataToSave.chic1Rotation = chickens[0].rotation;
                dataToSave.chic1RiseRun = chickens[0].riseRun;
                dataToSave.chic1EggLaid = chickens[0].eggLaid;
            }
            else
            {
                dataToSave.chic1time = -1;
            }
            //save chicken2
            if (chickens[1] != null)
            {
                dataToSave.chic2time = chickens[1].time;
                dataToSave.chic2state = chickens[1].state;
                dataToSave.chic2ground = chickens[1].ground;
                dataToSave.chic2InitNode = chickens[1].ChickenInitNode;
                dataToSave.chic2PreviousNode = chickens[1].ChickenPreviousNode;
                dataToSave.chic2CurrentNode = chickens[1].ChickenCurrentNode;
                dataToSave.chic2NextNode = (int)chickens[1].chickenNextNode;
                dataToSave.chic2Position = chickens[1].position;
                dataToSave.chic2Rotation = chickens[1].rotation;
                dataToSave.chic2RiseRun = chickens[1].riseRun;
                dataToSave.chic2EggLaid = chickens[1].eggLaid;
            }
            else
            {
                dataToSave.chic2time = -1;
            }
            //save chicken3
            if (chickens[2] != null)
            {
                dataToSave.chic3time = chickens[2].time;
                dataToSave.chic3state = chickens[2].state;
                dataToSave.chic3ground = chickens[2].ground;
                dataToSave.chic3InitNode = chickens[2].ChickenInitNode;
                dataToSave.chic3PreviousNode = chickens[2].ChickenPreviousNode;
                dataToSave.chic3CurrentNode = chickens[2].ChickenCurrentNode;
                dataToSave.chic3NextNode = (int)chickens[2].chickenNextNode;
                dataToSave.chic3Position = chickens[2].position;
                dataToSave.chic3Rotation = chickens[2].rotation;
                dataToSave.chic3RiseRun = chickens[2].riseRun;
                dataToSave.chic3EggLaid = chickens[2].eggLaid;
            }
            else
            {
                dataToSave.chic3time = -1;
            }
            //save chicken4
            if (chickens[3] != null)
            {
                dataToSave.chic4time = chickens[3].time;
                dataToSave.chic4state = chickens[3].state;
                dataToSave.chic4ground = chickens[3].ground;
                dataToSave.chic4InitNode = chickens[3].ChickenInitNode;
                dataToSave.chic4PreviousNode = chickens[3].ChickenPreviousNode;
                dataToSave.chic4CurrentNode = chickens[3].ChickenCurrentNode;
                dataToSave.chic4NextNode = (int)chickens[3].chickenNextNode;
                dataToSave.chic4Position = chickens[3].position;
                dataToSave.chic4Rotation = chickens[3].rotation;
                dataToSave.chic4RiseRun = chickens[3].riseRun;
                dataToSave.chic4EggLaid = chickens[3].eggLaid;
            }
            else
            {
                dataToSave.chic4time = -1;
            }
            //save chicken5
            if (chickens[4] != null)
            {
                dataToSave.chic5time = chickens[4].time;
                dataToSave.chic5state = chickens[4].state;
                dataToSave.chic5ground = chickens[4].ground;
                dataToSave.chic5InitNode = chickens[4].ChickenInitNode;
                dataToSave.chic5PreviousNode = chickens[4].ChickenPreviousNode;
                dataToSave.chic5CurrentNode = chickens[4].ChickenCurrentNode;
                dataToSave.chic5NextNode = (int)chickens[4].chickenNextNode;
                dataToSave.chic5Position = chickens[4].position;
                dataToSave.chic5Rotation = chickens[4].rotation;
                dataToSave.chic5RiseRun = chickens[4].riseRun;
                dataToSave.chic5EggLaid = chickens[4].eggLaid;
            }
            else
            {
                dataToSave.chic5time = -1;
            }
            //save chicken6
            if (chickens[5] != null)
            {
                dataToSave.chic6time = chickens[5].time;
                dataToSave.chic6state = chickens[5].state;
                dataToSave.chic6ground = chickens[5].ground;
                dataToSave.chic6InitNode = chickens[5].ChickenInitNode;
                dataToSave.chic6PreviousNode = chickens[5].ChickenPreviousNode;
                dataToSave.chic6CurrentNode = chickens[5].ChickenCurrentNode;
                dataToSave.chic6NextNode = (int)chickens[5].chickenNextNode;
                dataToSave.chic6Position = chickens[5].position;
                dataToSave.chic6Rotation = chickens[5].rotation;
                dataToSave.chic6RiseRun = chickens[5].riseRun;
                dataToSave.chic6EggLaid = chickens[5].eggLaid;
            }
            else
            {
                dataToSave.chic6time = -1;
            }
            //save chicken7
            if (chickens[6] != null)
            {
                dataToSave.chic7time = chickens[6].time;
                dataToSave.chic7state = chickens[6].state;
                dataToSave.chic7ground = chickens[6].ground;
                dataToSave.chic7InitNode = chickens[6].ChickenInitNode;
                dataToSave.chic7PreviousNode = chickens[6].ChickenPreviousNode;
                dataToSave.chic7CurrentNode = chickens[6].ChickenCurrentNode;
                dataToSave.chic7NextNode = (int)chickens[6].chickenNextNode;
                dataToSave.chic7Position = chickens[6].position;
                dataToSave.chic7Rotation = chickens[6].rotation;
                dataToSave.chic7RiseRun = chickens[6].riseRun;
                dataToSave.chic7EggLaid = chickens[6].eggLaid;
            }
            else
            {
                dataToSave.chic7time = -1;
            }
            //save chicken8
            if (chickens[7] != null)
            {
                dataToSave.chic8time = chickens[7].time;
                dataToSave.chic8state = chickens[7].state;
                dataToSave.chic8ground = chickens[7].ground;
                dataToSave.chic8InitNode = chickens[7].ChickenInitNode;
                dataToSave.chic8PreviousNode = chickens[7].ChickenPreviousNode;
                dataToSave.chic8CurrentNode = chickens[7].ChickenCurrentNode;
                dataToSave.chic8NextNode = (int)chickens[7].chickenNextNode;
                dataToSave.chic8Position = chickens[7].position;
                dataToSave.chic8Rotation = chickens[7].rotation;
                dataToSave.chic8RiseRun = chickens[7].riseRun;
                dataToSave.chic8EggLaid = chickens[7].eggLaid;
            }
            else
            {
                dataToSave.chic8time = -1;
            }
            //save chicken9
            if (chickens[8] != null)
            {
                dataToSave.chic9time = chickens[8].time;
                dataToSave.chic9state = chickens[8].state;
                dataToSave.chic9ground = chickens[8].ground;
                dataToSave.chic9InitNode = chickens[8].ChickenInitNode;
                dataToSave.chic9PreviousNode = chickens[8].ChickenPreviousNode;
                dataToSave.chic9CurrentNode = chickens[8].ChickenCurrentNode;
                dataToSave.chic9NextNode = (int)chickens[8].chickenNextNode;
                dataToSave.chic9Position = chickens[8].position;
                dataToSave.chic9Rotation = chickens[8].rotation;
                dataToSave.chic9RiseRun = chickens[8].riseRun;
                dataToSave.chic9EggLaid = chickens[8].eggLaid;
            }
            else
            {
                dataToSave.chic9time = -1;
            }
            //save chicken10
            if (chickens[9] != null)
            {
                dataToSave.chic10time = chickens[9].time;
                dataToSave.chic10state = chickens[9].state;
                dataToSave.chic10ground = chickens[9].ground;
                dataToSave.chic10InitNode = chickens[9].ChickenInitNode;
                dataToSave.chic10PreviousNode = chickens[9].ChickenPreviousNode;
                dataToSave.chic10CurrentNode = chickens[9].ChickenCurrentNode;
                dataToSave.chic10NextNode = (int)chickens[9].chickenNextNode;
                dataToSave.chic10Position = chickens[9].position;
                dataToSave.chic10Rotation = chickens[9].rotation;
                dataToSave.chic10RiseRun = chickens[9].riseRun;
                dataToSave.chic10EggLaid = chickens[9].eggLaid;
            }
            else
            {
                dataToSave.chic10time = -1;
            }

            //economics save
            dataToSave.money = eco.money;
            dataToSave.startEggs = eco.startEggs;
            dataToSave.startChickens = eco.startChickens;
            dataToSave.startRoosters = eco.startRoosters;
            dataToSave.startmoney = eco.startmoney;
            dataToSave.eggsCollected = eco.eggsCollected;
            dataToSave.chickenBought = eco.chickenBought;
            dataToSave.roosterBought = eco.roosterBought;
            dataToSave.eggsEaten = eco.eggsEaten;
            dataToSave.eggSold = eco.eggSold;
            dataToSave.chickenSold = eco.chickenSold;
            dataToSave.roosterSold = eco.roosterSold;
            dataToSave.chickenEaten = eco.chickenEaten;
            dataToSave.roosterEaten = eco.roosterEaten;
            dataToSave.moneyAquired = eco.moneyAquired;

            //rooster save
            dataToSave.numRooster = numRooster;
            dataToSave.roosterQueue = roosterQueue;

            //rooster1 save
            if (roosters[0] != null)
            {
                dataToSave.rooster1state = roosters[0].state;
                dataToSave.rooster1InitNode = roosters[0].roosterInitNode;
                dataToSave.rooster1PreviousNode = roosters[0].roosterPreviousNode;
                dataToSave.rooster1CurrentNode = roosters[0].roosterCurrentNode;
                dataToSave.rooster1NextNode = roosters[0].roosterNextNode;
                dataToSave.rooster1Position = roosters[0].position;
                dataToSave.rooster1Rotation = roosters[0].rotation;
                dataToSave.rooster1RiseRun = roosters[0].riseRun;
                dataToSave.rooster1RiseRun2 = roosters[0].riseRun2;
                dataToSave.rooster1Start = roosters[0].start;
            }
            else
            {
                dataToSave.rooster1state = -1;
            }

            //rooster2 save
            if (roosters[1] != null)
            {
                dataToSave.rooster2state = roosters[1].state;
                dataToSave.rooster2InitNode = roosters[1].roosterInitNode;
                dataToSave.rooster2PreviousNode = roosters[1].roosterPreviousNode;
                dataToSave.rooster2CurrentNode = roosters[1].roosterCurrentNode;
                dataToSave.rooster2NextNode = roosters[1].roosterNextNode;
                dataToSave.rooster2Position = roosters[1].position;
                dataToSave.rooster2Rotation = roosters[1].rotation;
                dataToSave.rooster2RiseRun = roosters[1].riseRun;
                dataToSave.rooster2RiseRun2 = roosters[1].riseRun2;
                dataToSave.rooster2Start = roosters[1].start;
            }
            else
            {
                dataToSave.rooster2state = -1;
            }

            //rooster3 save
            if (roosters[2] != null)
            {
                dataToSave.rooster3state = roosters[2].state;
                dataToSave.rooster3InitNode = roosters[2].roosterInitNode;
                dataToSave.rooster3PreviousNode = roosters[2].roosterPreviousNode;
                dataToSave.rooster3CurrentNode = roosters[2].roosterCurrentNode;
                dataToSave.rooster3NextNode = roosters[2].roosterNextNode;
                dataToSave.rooster3Position = roosters[2].position;
                dataToSave.rooster3Rotation = roosters[2].rotation;
                dataToSave.rooster3RiseRun = roosters[2].riseRun;
                dataToSave.rooster3RiseRun2 = roosters[2].riseRun2;
                dataToSave.rooster3Start = roosters[2].start;
            }
            else
            {
                dataToSave.rooster3state = -1;
            }

            //rooster4 save
            if (roosters[3] != null)
            {
                dataToSave.rooster4state = roosters[3].state;
                dataToSave.rooster4InitNode = roosters[3].roosterInitNode;
                dataToSave.rooster4PreviousNode = roosters[3].roosterPreviousNode;
                dataToSave.rooster4CurrentNode = roosters[3].roosterCurrentNode;
                dataToSave.rooster4NextNode = roosters[3].roosterNextNode;
                dataToSave.rooster4Position = roosters[3].position;
                dataToSave.rooster4Rotation = roosters[3].rotation;
                dataToSave.rooster4RiseRun = roosters[3].riseRun;
                dataToSave.rooster4RiseRun2 = roosters[3].riseRun2;
                dataToSave.rooster4Start = roosters[3].start;
            }
            else
            {
                dataToSave.rooster4state = -1;
            }

            //rooster5 save
            if (roosters[4] != null)
            {
                dataToSave.rooster5state = roosters[4].state;
                dataToSave.rooster5InitNode = roosters[4].roosterInitNode;
                dataToSave.rooster5PreviousNode = roosters[4].roosterPreviousNode;
                dataToSave.rooster5CurrentNode = roosters[4].roosterCurrentNode;
                dataToSave.rooster5NextNode = roosters[4].roosterNextNode;
                dataToSave.rooster5Position = roosters[4].position;
                dataToSave.rooster5Rotation = roosters[4].rotation;
                dataToSave.rooster5RiseRun = roosters[4].riseRun;
                dataToSave.rooster5RiseRun2 = roosters[4].riseRun2;
                dataToSave.rooster5Start = roosters[4].start;
            }
            else
            {
                dataToSave.rooster5state = -1;
            }

            //eggclass
            dataToSave.eggCount = eggCount;
            dataToSave.numEgg = numEgg;
            if (numEgg > 0)
            {
                dataToSave.egg1 = egg[0].position;
            }
            if (numEgg > 1)
            {
                dataToSave.egg2 = egg[1].position;
            }
            if (numEgg > 2)
            {
                dataToSave.egg3 = egg[2].position;
            }
            if (numEgg > 3)
            {
                dataToSave.egg4 = egg[3].position;
            }
            if (numEgg > 4)
            {
                dataToSave.egg5 = egg[4].position;
            }
            if (numEgg > 5)
            {
                dataToSave.egg6 = egg[5].position;
            }
            if (numEgg > 6)
            {
                dataToSave.egg7 = egg[6].position;
            }
            if (numEgg > 7)
            {
                dataToSave.egg8 = egg[7].position;
            }
            if (numEgg > 8)
            {
                dataToSave.egg9 = egg[8].position;
            }
            if (numEgg > 9)
            {
                dataToSave.egg10 = egg[9].position;
            }
            if (numEgg > 10)
            {
                dataToSave.egg11 = egg[10].position;
            }
            if (numEgg > 11)
            {
                dataToSave.egg12 = egg[11].position;
            }
            if (numEgg > 12)
            {
                dataToSave.egg13 = egg[12].position;
            }
            if (numEgg > 13)
            {
                dataToSave.egg14 = egg[13].position;
            }
            if (numEgg > 14)
            {
                dataToSave.egg15 = egg[14].position;
            }
            if (numEgg > 15)
            {
                dataToSave.egg16 = egg[15].position;
            }
            if (numEgg > 16)
            {
                dataToSave.egg17 = egg[16].position;
            }
            if (numEgg > 17)
            {
                dataToSave.egg18 = egg[17].position;
            }
            if (numEgg > 18)
            {
                dataToSave.egg19 = egg[18].position;
            }
            if (numEgg > 19)
            {
                dataToSave.egg20 = egg[19].position;
            }

            dataToSave.days = days;           //tracks number of total days
            dataToSave.dayTime = dayTime; //tracks number of seconds since day began
            dataToSave.endOfDay = endOfDay;

            //boots
            dataToSave.numBoots = numBoots;
            if (numBoots > 0)
            {
                dataToSave.boot1 = boots[0].position;
            }
            if (numBoots > 1)
            {
                dataToSave.boot2 = boots[1].position;
            }
            dataToSave.bootTime = bootTime;
            dataToSave.bootPresent = bootPresent;
            dataToSave.bootEquipped = bootEquipped;

            //fox
            dataToSave.foxWandering = fox.wandering;
            dataToSave.foxInitNode = fox.foxInitNode;
            dataToSave.foxPreviousNode = fox.foxPreviousNode;
            dataToSave.foxCurrentNode = fox.foxCurrentNode;
            dataToSave.foxNextNode = fox.foxNextNode;
            dataToSave.foxPosition = fox.position;
            dataToSave.foxPositionOld = fox.positionOld;
            dataToSave.foxRotation = fox.rotation;
            dataToSave.foxRiseRun = fox.riseRun;
            dataToSave.foxRiseRun2 = fox.riseRun2;
            dataToSave.foxChasing = fox.chasing;
            dataToSave.foxAvoiding = fox.avoiding;
            dataToSave.foxTimer = fox.timer;
            dataToSave.foxChaseTime = fox.chaseTime;
            dataToSave.foxTimer2 = fox.timer2;
            dataToSave.foxHome = fox.home;
            dataToSave.foxStart = fox.start;
            dataToSave.foxTemp1 = fox.temp1;

            StorageContainer myContainer = storageDevice.OpenContainer("Chicken_Game");
            // Here is the path to where you want to save your data
            string nameOfFile = Path.Combine(myContainer.Path, "ChickenGameSave.sav");
            // If the file doesn't exist, it will be created, if it does, it will be replaced
            FileStream fileStream = File.Open(nameOfFile, FileMode.Create);
            XmlSerializer serializer = new XmlSerializer(typeof(DataToSave));
            serializer.Serialize(fileStream, dataToSave);
            //close this file
            fileStream.Close();
            myContainer.Dispose();
        }
Пример #8
0
        protected override void Initialize()
        {
            IAsyncResult syncResult = Guide.BeginShowStorageDeviceSelector(null, null);
            storageDevice = Guide.EndShowStorageDeviceSelector(syncResult);
            //if (!storageDevice.IsConnected) Exit();
            container = storageDevice.OpenContainer("Minesweeper");

            skins = new Dictionary<string, Skin>();
            bestTimes = new Dictionary<Difficulty, int>(4);
            bestTimes.Add(Difficulty.Beginner, 999);
            bestTimes.Add(Difficulty.Intermediate, 999);
            bestTimes.Add(Difficulty.Expert, 999);
            bestTimes.Add(Difficulty.Zune, 999);
            GetBestTimes();

            options = new Options(true, false, "Blue");

            base.Initialize();
        }
Пример #9
0
        /// <summary>
        /// Loads the settings from the specified device.
        /// </summary>
        /// <param name="device">The device.</param>
        private void LoadSettings(StorageDevice device)
        {
            // Open a storage container.
            StorageContainer container = device.OpenContainer("Clock");

            // Get the path of the save game.
            string filename = Path.Combine(container.Path, "settings.xml");

            if (File.Exists(filename))
            {
            #if DEBUG
                if (System.Diagnostics.Debugger.IsAttached)
                {
                    using (TextReader tr = new StreamReader(filename))
                    {
                        string xml = tr.ReadToEnd();
                        System.Diagnostics.Trace.WriteLine(xml);
                    }
                }
            #endif
                try
                {
                    // Open the file
                    FileStream stream = File.Open(filename, FileMode.Open);

                    // Convert the object to XML data and put it in the stream.
                    XmlSerializer serializer = new XmlSerializer(typeof(Settings));
                    this.settings = serializer.Deserialize(stream) as Settings;

                    // Close the file.
                    stream.Close();
                }
                catch (Exception exception)
                {
                    // In some cases, XmlSerializer throws exception when loading the data. We try to fix the problem by deleting the file.
                    // Hopefully this issue should be fixed now.
                    System.Diagnostics.Trace.WriteLine(exception.ToString());

                    File.Delete(filename);

                    // As a preliminary way to signal that we didn't load the settings, for now we go into setting mode.
                    this.BeginSettingMode();
                }
            }

            // Dispose the container, to commit changes.
            container.Dispose();

            if (this.settings == null)
            {
                this.settings = new Settings();
            }
        }
Пример #10
0
        /// <summary>
        /// Saves the application settings to the specified device.
        /// </summary>
        /// <param name="device">The device to use.</param>
        private void SaveSettings(StorageDevice device)
        {
            // Open a storage container.
            StorageContainer container = device.OpenContainer("Clock");

            // Get the path of the save game.
            string filename = Path.Combine(container.Path, "settings.xml");

            // Open the file, creating it if necessary.
            FileStream stream = File.Open(filename, FileMode.Create);

            // Convert the object to XML data and put it in the stream.
            XmlSerializer serializer = new XmlSerializer(typeof(Settings));
            serializer.Serialize(stream, this.settings);

            // Close the file.
            stream.Close();

            // Dispose the container, to commit changes.
            container.Dispose();
        }
Пример #11
0
        void SaveNameData(string filename, StorageDevice storageDevice, NameWrapper nameWrapper)
        {
            using (StorageContainer storageContainer = storageDevice.OpenContainer("Content"))
            {
                string filenamePath = Path.Combine(storageContainer.Path, filename);

                using (FileStream fileStream = File.Create(filenamePath))
                {
                    BinaryWriter myBw = new BinaryWriter(fileStream);
                    try
                    {
                        myBw.Write(_nameWrapper.ToByteArray());
                    }
                    finally
                    {
                        myBw.Flush();
                        myBw.Close();
                        fileStream.Close();
                        _operationPending = false;
                        storageContainer.Dispose();
                    }
                }
            }
        }
Пример #12
0
        void LoadNameData(string filename, StorageDevice storageDevice)
        {
            using (StorageContainer storageContainer = storageDevice.OpenContainer("Content"))
            {
                string filenamePath = Path.Combine(storageContainer.Path, filename);

                try
                {
                    using (FileStream fileStream = File.OpenRead(filenamePath))
                    {
                        BinaryReader myBr = new BinaryReader(fileStream);
                        try
                        {
                            fileStream.Position = 0;
                            _nameWrapper = new NameWrapper(myBr.ReadBytes((int)fileStream.Length));
                        }
                        catch (Exception e)
                        {
                            _nameWrapper = new NameWrapper();
                        }
                        finally
                        {
                            myBr.Close();
                            fileStream.Close();
                            _operationPending = false;
                            storageContainer.Dispose();
                        }
                    }
                }
                catch (Exception e)
                {
                    _nameWrapper = new NameWrapper();
                    _operationPending = false;
                }
            }
        }
Пример #13
0
        void LoadBookletData(string filename, StorageDevice storageDevice)
        {
            using (StorageContainer storageContainer = storageDevice.OpenContainer("Content"))
            {
                string filenamePath = Path.Combine(storageContainer.Path, filename);

                using (FileStream fileStream = File.OpenRead(filenamePath))
                {
                    BinaryReader myBr = new BinaryReader(fileStream);
                    try
                    {
                        fileStream.Position = 0;
                        _currentBooklet = new Booklet(myBr.ReadBytes((int)fileStream.Length));
                    }
                    finally
                    {
                        fileStream.Close();
                        _operationPending = false;
                        storageContainer.Dispose();
                    }
                }
            }
        }
Пример #14
0
        /// <summary>
        /// Delete the save game specified by the description.
        /// </summary>
        /// <param name="storageDevice">The chosen storage device.</param>
        /// <param name="saveGameDescription">The description of the save game.</param>
        public static void DeleteSaveGameResult(StorageDevice storageDevice,
            SaveGameDescription saveGameDescription)
        {
            // check the parameters
            if (saveGameDescription == null)
            {
                throw new ArgumentNullException("saveGameDescription");
            }
            // check the parameter
            if ((storageDevice == null) || !storageDevice.IsConnected)
            {
                return;
            }

            // open the container
            using (StorageContainer storageContainer =
                storageDevice.OpenContainer(Session.SaveGameContainerName))
            {
                File.Delete(Path.Combine(storageContainer.Path,
                    saveGameDescription.FileName));
                File.Delete(Path.Combine(storageContainer.Path, "SaveGameDescription" +
                    Path.GetFileNameWithoutExtension(
                        saveGameDescription.FileName).Substring(8) +
                    ".xml"));
            }

            // refresh the save game descriptions
            Session.RefreshSaveGameDescriptions();
        }
Пример #15
0
        public void CheckWhetherExists(StorageDevice storageDevice)
        {
            StorageContainer myContainer = storageDevice.OpenContainer("Chicken_Game");

            string nameOfFile = Path.Combine(myContainer.Path, "ChickenGameSave.sav");
            if (File.Exists(nameOfFile))
            {
                //LoadData(device, ref world.myCharacter.position);
            }
            myContainer.Dispose();
        }
Пример #16
0
        /// <summary>
        /// Receives the storage device and starts a new session, 
        /// using the data in the given save game.
        /// </summary>
        /// <remarks>The new session is created in LoadSessionResult.</remarks>
        /// <param name="storageDevice">The chosen storage device.</param>
        /// <param name="saveGameDescription">The description of the save game.</param>
        public static void LoadSessionResult(StorageDevice storageDevice,
            SaveGameDescription saveGameDescription)
        {
            // check the parameters
            if (saveGameDescription == null)
            {
                throw new ArgumentNullException("saveGameDescription");
            }
            // check the parameter
            if ((storageDevice == null) || !storageDevice.IsConnected)
            {
                return;
            }

            // open the container
            using (StorageContainer storageContainer =
                storageDevice.OpenContainer(Session.SaveGameContainerName))
            {
                string filename = Path.Combine(storageContainer.Path,
                    saveGameDescription.FileName);
                using (FileStream stream = new FileStream(filename, FileMode.Open))
                {
                    using (XmlReader xmlReader = XmlReader.Create(stream))
                    {
                        // <rolePlayingGameData>
                        xmlReader.ReadStartElement("rolePlayingGameSaveData");

                        // read the map information
                        xmlReader.ReadStartElement("mapData");
                        string mapAssetName =
                            xmlReader.ReadElementString("mapContentName");
                        PlayerPosition playerPosition = new XmlSerializer(
                            typeof(PlayerPosition)).Deserialize(xmlReader)
                            as PlayerPosition;
                        singleton.removedMapChests = new XmlSerializer(
                            typeof(List<WorldEntry<Chest>>)).Deserialize(xmlReader)
                            as List<WorldEntry<Chest>>;
                        singleton.removedMapFixedCombats = new XmlSerializer(
                            typeof(List<WorldEntry<FixedCombat>>)).Deserialize(xmlReader)
                            as List<WorldEntry<FixedCombat>>;
                        singleton.removedMapPlayerNpcs = new XmlSerializer(
                            typeof(List<WorldEntry<Player>>)).Deserialize(xmlReader)
                            as List<WorldEntry<Player>>;
                        singleton.modifiedMapChests = new XmlSerializer(
                            typeof(List<ModifiedChestEntry>)).Deserialize(xmlReader)
                            as List<ModifiedChestEntry>;
                        ChangeMap(mapAssetName, null);
                        TileEngine.PartyLeaderPosition = playerPosition;
                        xmlReader.ReadEndElement();

                        // read the quest information
                        ContentManager content = Session.ScreenManager.Game.Content;
                        xmlReader.ReadStartElement("questData");
                        singleton.questLine = content.Load<QuestLine>(
                            xmlReader.ReadElementString("questLineContentName")).Clone()
                            as QuestLine;
                        singleton.currentQuestIndex = Convert.ToInt32(
                            xmlReader.ReadElementString("currentQuestIndex"));
                        for (int i = 0; i < singleton.currentQuestIndex; i++)
                        {
                            singleton.questLine.Quests[i].Stage =
                                Quest.QuestStage.Completed;
                        }
                        singleton.removedQuestChests = new XmlSerializer(
                            typeof(List<WorldEntry<Chest>>)).Deserialize(xmlReader)
                            as List<WorldEntry<Chest>>;
                        singleton.removedQuestFixedCombats = new XmlSerializer(
                            typeof(List<WorldEntry<FixedCombat>>)).Deserialize(xmlReader)
                            as List<WorldEntry<FixedCombat>>;
                        singleton.modifiedQuestChests = new XmlSerializer(
                            typeof(List<ModifiedChestEntry>)).Deserialize(xmlReader)
                            as List<ModifiedChestEntry>;
                        Quest.QuestStage questStage = (Quest.QuestStage)Enum.Parse(
                            typeof(Quest.QuestStage),
                            xmlReader.ReadElementString("currentQuestStage"), true);
                        if ((singleton.questLine != null) && !IsQuestLineComplete)
                        {
                            singleton.quest =
                                singleton.questLine.Quests[CurrentQuestIndex];
                            singleton.ModifyQuest(singleton.quest);
                            singleton.quest.Stage = questStage;
                        }
                        xmlReader.ReadEndElement();

                        // read the party data
                        singleton.party = new Party(new XmlSerializer(
                            typeof(PartySaveData)).Deserialize(xmlReader)
                            as PartySaveData, content);

                        // </rolePlayingGameSaveData>
                        xmlReader.ReadEndElement();
                    }
                }
            }
        }
Пример #17
0
        //=========================================================================================
        /// <summary>
        /// Called when a storage device is selected.
        /// </summary>
        /// <param name="result"> Result of the operation. </param>
        //=========================================================================================
        private static void OnStorageDeviceSelect( IAsyncResult result )
        {
            // This might fail:

            try
            {
                // Save the selected storage device:

                s_storage_device = Guide.EndShowStorageDeviceSelector(result);

                // Choose a storage container:

                if ( s_storage_device != null )
                {
                    // Open seasame:

                    s_storage_container = s_storage_device.OpenContainer( TITLE_NAME );
                }

            }
            catch ( Exception ){}
        }