private static Settings loadVersioned(byte[] bytes, String fileName) { Settings s = new Settings(); s.settingsPath = fileName; try { ReadBuffer rb = new ReadBuffer(bytes); String ver = rb.readString(defaultEncoding); if (ver == "version") { int verNumber = rb.readInt(); if (verNumber == 1) { s.inpuPath = rb.readString(defaultEncoding); s.outputPath = rb.readString(defaultEncoding); s.langauges = rb.readStringArray(defaultEncoding); s.encodings = rb.readStringArray(defaultEncoding); s.strings = rb.readStringArrayArray(s.encodings); s.useCondition = rb.readInt(); s.lastKnownMapping = rb.readIntArray(rb.readInt()); s.originalEncoding = rb.readString(defaultEncoding); s.originalStrings = rb.readStringArray(s.originalEncoding); s.repack = rb.readBool(); } } else // Load vanilla settings and generate rest { rb = new ReadBuffer(bytes); String encoding = "EUC-KR"; s.inpuPath = rb.readString(encoding); s.outputPath = rb.readString(encoding); s.langauges = rb.readStringArray(encoding); s.encodings = new string[s.langauges.Length]; for (int i = 0; i < s.encodings.Length; i++) { s.encodings[i] = encoding; } s.strings = rb.readStringArrayArray(s.encodings); s.useCondition = rb.readInt(); s.lastKnownMapping = rb.readIntArray(rb.readInt()); s.originalEncoding = encoding; s.originalStrings = rb.readStringArray(s.originalEncoding); } // New ver try { s.repack = rb.readBool(); } catch (Exception) { } return(s); } catch (Exception) { return(null); } }