public int Randomize() { bool ret; ret = PermuteItems(upgrades, Location.RandomizeType.Upgrade); if (!ret) { return(-1); } ret = PermuteItems(areas, Location.RandomizeType.Area); if (!ret) { return(-2); } ret = CheckValid(); if (!ret) { return(0); } /* Write into the game */ foreach (var location in locations) { if (location.Type == Location.RandomizeType.Upgrade) { mem.RandomizeUpgrade(location.Name, location.Grant); } if (location.Type == Location.RandomizeType.Area) { mem.RandomizeArea(location.Name, location.Grant); } } return(1); }