diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 6a33f5ff5..1ffc8f54e 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -200,10 +200,13 @@ public class App implements ApplicationListener { /** * Sorted by the lastplaytime, in reverse order (index 0 is the most recent game played) */ - public static TreeMap savegameWorlds = new TreeMap<>(); - public static TreeMap savegameWorldsName = new TreeMap<>(); - public static TreeMap savegamePlayers = new TreeMap<>(); - public static TreeMap savegamePlayersName = new TreeMap<>(); + public static ArrayList sortedSavegameWorlds = new ArrayList(); + public static HashMap savegameWorlds = new HashMap<>(); // UNSORTED even with the TreeMap + public static HashMap savegameWorldsName = new HashMap<>(); + + public static ArrayList sortedPlayers = new ArrayList(); + public static HashMap savegamePlayers = new HashMap<>(); + public static HashMap savegamePlayersName = new HashMap<>(); public static void updateListOfSavegames() { AppUpdateListOfSavegames(); diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index bd3797394..94971da70 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -672,10 +672,12 @@ class Codex : KVHashMap() { } fun AppUpdateListOfSavegames() { - App.savegamePlayers.clear() - App.savegamePlayersName.clear() + App.sortedSavegameWorlds.clear() App.savegameWorlds.clear() App.savegameWorldsName.clear() + App.sortedPlayers.clear() + App.savegamePlayers.clear() + App.savegamePlayersName.clear() println("Listing saved worlds...") @@ -699,9 +701,11 @@ fun AppUpdateListOfSavegames() { val worldUUID = UUID.fromString(json.getString("worldIndex")) App.savegameWorlds[worldUUID] = it App.savegameWorldsName[worldUUID] = it.getDiskName(Common.CHARSET) + App.sortedSavegameWorlds.add(worldUUID) } + println("Listing saved players...") // create list of players @@ -724,6 +728,7 @@ fun AppUpdateListOfSavegames() { val playerUUID = UUID.fromString(json.getString("uuid")) App.savegamePlayers[playerUUID] = it App.savegamePlayersName[playerUUID] = it.getDiskName(Common.CHARSET) + App.sortedPlayers.add(playerUUID) } } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index c32131b70..37d13b08e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -168,7 +168,8 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { Thread { // read savegames var savegamesCount = 0 - App.savegameWorlds.forEach { (_, skimmer) -> + App.sortedSavegameWorlds.forEach { uuid -> + val skimmer = App.savegameWorlds[uuid]!! val x = uiX val y = titleTopGradEnd + cellInterval * savegamesCount try { @@ -182,7 +183,8 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { } savegamesCount = 0 - App.savegamePlayers.forEach { (_, skimmer) -> + App.sortedPlayers.forEach { uuid -> + val skimmer = App.savegamePlayers[uuid]!! val x = uiX val y = titleTopGradEnd + cellInterval * savegamesCount try {