From d725ce6b5ededebe49e1254251f5edcb336f7083 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Mon, 27 Jan 2014 17:31:13 -0500 Subject: [PATCH] loading fixed --- .../mod_pocketDim/saving/DDSaveHandler.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java b/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java index c23fd20..9b6081b 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java @@ -87,7 +87,9 @@ public class DDSaveHandler public static boolean unpackDimData(HashMap packedDims) { ArrayList roots = new ArrayList(); - + ArrayList children = new ArrayList(); + ArrayList tempChildren = new ArrayList(); + //Load roots for(PackedDimData packedDim : packedDims.values()) { @@ -100,18 +102,22 @@ public class DDSaveHandler //load the children for each root for(PackedDimData packedDim : roots) { - registerChildren(packedDim, packedDims); + children.addAll(packedDim.ChildIDs); } - return true; - } - - private static void registerChildren(PackedDimData data, HashMap packedDims) - { - PocketManager.registerPackedDimData(data); - for(Integer child : data.ChildIDs) + while(!children.isEmpty()) { - registerChildren(packedDims.get(child),packedDims); + for(Integer child: children) + { + PackedDimData data = packedDims.get(child); + PocketManager.registerPackedDimData(data); + tempChildren.addAll(data.ChildIDs); + } + children.clear(); + children.addAll(tempChildren); + tempChildren.clear(); } + + return true; } public static boolean unpackLinkData(List linksToUnpack)