public void load() { try { System.out.println("----- REGION_MANAGER -----"); long start = System.nanoTime(); ObjectDef.loadConfig(); File f = new File("./Data/world/map_index"); byte[] buffer = new byte[(int) f.length()]; DataInputStream dis = new DataInputStream(new FileInputStream(f)); dis.readFully(buffer); dis.close(); ByteStream in = new ByteStream(buffer); int size = in.length() / 7; regions = new Region[size]; int[] regionIds = new int[size]; int[] mapGroundFileIds = new int[size]; int[] mapObjectsFileIds = new int[size]; boolean[] isMembers = new boolean[size]; for (int i = 0; i < size; i++) { regionIds[i] = in.getUShort(); mapGroundFileIds[i] = in.getUShort(); mapObjectsFileIds[i] = in.getUShort(); isMembers[i] = in.getUByte() == 0; } for (int i = 0; i < size; i++) { regions[i] = new Region(regionIds[i], isMembers[i]); } for (int i = 0; i < size; i++) { byte[] file1 = getBuffer(new File("./Data/world/map/" + mapObjectsFileIds[i] + ".gz")); byte[] file2 = getBuffer(new File("./Data/world/map/" + mapGroundFileIds[i] + ".gz")); if (file1 == null || file2 == null) { continue; } try { loadMaps(regionIds[i], new ByteStream(file1), new ByteStream(file2)); } catch (Exception e) { System.out.println("Error loading map region: " + regionIds[i]); } } System.out.println("\tMaps loaded in " + ((System.nanoTime() - start) / 1000000) + " ms"); start = System.nanoTime(); WalkingCheck.load(); System.out.println("\tClipping loaded in " + ((System.nanoTime() - start) / 1000000) + " ms"); } catch (Exception e) { e.printStackTrace(); } }