/// <summary> /// clean the death sections in the ini file that have no remaining keys. the death section that is empty is "shifted" and all other sections replace it down the line. /// </summary> private void ShiftDeleteDeathSection(string DeathSection, int DeathSectionNumber) { bool DeathKeysExist = false; for (int i = 0; i < InventoryItems.Length; i++) //iterate through all inventory items { if (ini.ReadValue(DeathSection, InventoryItems[i].ItemID, 0) >= 1) // if the object value is nonzero { DeathKeysExist = true; //at least one death key is 1 or above } } if (!DeathKeysExist) { ini.SectionDelete(DeathSection); // delete the section if none of the death keys are 1 or greater for (; ini.IsSectionExists("Death" + ((DeathSectionNumber + 1).ToString())); DeathSectionNumber++) //iterate through the remaining sections, re-writing previous ones { //write level ini.WriteValue(DeathSection, "Level", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "Level", "Default")); //write X and Y Values ini.WriteValue(DeathSection, "x", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "x", 0.0f)); ini.WriteValue(DeathSection, "y", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "y", 0.0f)); for (int i = 0; i < InventoryItems.Length; i++) { if (ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), InventoryItems[i].ItemID, 0) >= 1) { ini.WriteValue(DeathSection, InventoryItems[i].ItemID, ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), InventoryItems[i].ItemID, 0)); //write the a death key for each inventory item found } } ini.SectionDelete("Death" + ((DeathSectionNumber + 1).ToString())); //delete remaining section } ini.SectionDelete("Death" + ((DeathSectionNumber).ToString())); } }
public void SaveCities() { numberOfCities = 0; if (!encrypted) { INIParser ini = new INIParser(); File.Delete(Application.dataPath + "/SAVES/" + saveName + ".SAV"); ini.Open(Application.dataPath + "/SAVES/" + saveName + ".SAV"); ini.SectionDelete("NUMBER_OF_CITIES"); foreach (GameObject g in StaticCitiesList.Cities) { numberOfCities += 1; City cityInfo = g.GetComponent <City>(); //print(cityInfo._Y); ini.WriteValue("City" + numberOfCities, "CityName", cityInfo._CityName); //City ints ini.WriteValue("City" + numberOfCities, "XPos", cityInfo._X * 10000f); ini.WriteValue("City" + numberOfCities, "YPos", cityInfo._Y * 10000f); ini.WriteValue("City" + numberOfCities, "ZPos", cityInfo._Z * 10000f); ini.WriteValue("City" + numberOfCities, "Castle", cityInfo._Castle); ini.WriteValue("City" + numberOfCities, "KnightsCastle", cityInfo._KnightsCastle); ini.WriteValue("City" + numberOfCities, "Wall", cityInfo._Wall); ini.WriteValue("City" + numberOfCities, "SecondWall", cityInfo._SecondWall); ini.WriteValue("City" + numberOfCities, "ThirdWall", cityInfo._ThirdWall); ini.WriteValue("City" + numberOfCities, "GuardTowers", cityInfo._GuardTowers); ini.WriteValue("City" + numberOfCities, "Barracks", cityInfo._Barracks); ini.WriteValue("City" + numberOfCities, "PatrollCentre", cityInfo._PatrollCentre); ini.WriteValue("City" + numberOfCities, "Blacksmith", cityInfo._Blacksmith); ini.WriteValue("City" + numberOfCities, "Housing", cityInfo._Housing); ini.WriteValue("City" + numberOfCities, "Aphothecary", cityInfo._Aphothecary); ini.WriteValue("City" + numberOfCities, "Treasurery", cityInfo._Treasurery); ini.WriteValue("City" + numberOfCities, "Granary", cityInfo._Granary); ini.WriteValue("City" + numberOfCities, "StorageHouse", cityInfo._StorageHouse); ini.WriteValue("City" + numberOfCities, "TradingGuild", cityInfo._TradingGuild); ini.WriteValue("City" + numberOfCities, "School", cityInfo._School); ini.WriteValue("City" + numberOfCities, "Mill", cityInfo._Mill); ini.WriteValue("City" + numberOfCities, "GoldMine", cityInfo._GoldMine); ini.WriteValue("City" + numberOfCities, "IronMine", cityInfo._IronMine); ini.WriteValue("City" + numberOfCities, "CoalMine", cityInfo._CoalMine); ini.WriteValue("City" + numberOfCities, "WoodcuttersCamp", cityInfo._WoodcuttersCamp); ini.WriteValue("City" + numberOfCities, "WoodMill", cityInfo._WoodMill); ini.WriteValue("City" + numberOfCities, "Plains", cityInfo._Plains); } ini.WriteValue("NUMBER_OF_CITIES", "ammount", numberOfCities); ini.Close(); } else { SaveCityData saveCityData = new SaveCityData(); BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(Application.dataPath + "/SAVES/save.SAV"); foreach (GameObject g in StaticCitiesList.Cities) { numberOfCities += 1; City cityInfo = g.GetComponent <City>(); saveCityData.CityName = cityInfo._CityName; //City ints saveCityData.castle = cityInfo._Castle; saveCityData.knightsCastle = cityInfo._KnightsCastle; saveCityData.wall = cityInfo._Wall; saveCityData.secondWall = cityInfo._SecondWall; saveCityData.thirdWall = cityInfo._ThirdWall; saveCityData.guardTowers = cityInfo._GuardTowers; saveCityData.barracks = cityInfo._Barracks; saveCityData.patrollCentre = cityInfo._PatrollCentre; saveCityData.blacksmith = cityInfo._Blacksmith; saveCityData.housing = cityInfo._Housing; saveCityData.aphothecary = cityInfo._Aphothecary; saveCityData.treasurery = cityInfo._Treasurery; saveCityData.granary = cityInfo._Granary; saveCityData.storageHouse = cityInfo._StorageHouse; saveCityData.tradingGuild = cityInfo._TradingGuild; saveCityData.school = cityInfo._School; saveCityData.mill = cityInfo._Mill; saveCityData.goldMine = cityInfo._GoldMine; saveCityData.ironMine = cityInfo._IronMine; saveCityData.coalMine = cityInfo._CoalMine; saveCityData.woodcuttersCamp = cityInfo._WoodcuttersCamp; saveCityData.woodMill = cityInfo._WoodMill; saveCityData.plains = cityInfo._Plains; bf.Serialize(file, saveCityData); } CityCount cityCount = new CityCount(); cityCount.cities = numberOfCities; bf.Serialize(file, cityCount); file.Close(); } }