/* * Generate the actual pair of the high score and the player identity. * This function is called by 'HighScoreNameLinkerGroup' by the method 'generateLinks()' to * generate all at once. */ public void generateHighScoreNameLink() { int score = 0; //bool newHighScore = false; //Debug.LogWarning("generateHighScoreNameLink"); generateSaveKey(); load(); switch (highScoreSource) { case hsnSelection.valueScript: getVSscript(); score = Mathf.RoundToInt(vs.value); break; case hsnSelection.scoreCounter: score = sc.getScore(); break; default: score = 0; break; } //if the player got gameover, add a new highscore entry highScoreNamePair hsnp = new highScoreNamePair(); hsnp.highScore = score; //hsnp.valid = true; hsnp.countryName = CountryNameGenerator.instance.getCountryNameText();; //sort the highscore, depending on selection switch (highScoreSort) { case hsnSorting.lowest: hsnPairs.list.Add(hsnp); hsnPairs.list.Sort(SortByLowerScore); break; case hsnSorting.highest: hsnPairs.list.Add(hsnp); hsnPairs.list.Sort(SortByHigherScore); break; case hsnSorting.lastOnTop: //add on top, don't sort hsnPairs.list.Insert(0, hsnp); break; default: hsnPairs.list.Insert(0, hsnp); break; } int maxNumberOfEntries = 5; if (2 * highScoreFields.Length > maxNumberOfEntries) { maxNumberOfEntries = 2 * highScoreFields.Length; } if (hsnPairs.list.Count > maxNumberOfEntries) { //keep the highscore list size small hsnPairs.list = hsnPairs.list.GetRange(0, maxNumberOfEntries - 1); } save(); }