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); } }
public static Settings loadFromFile(String fileName) { Settings s = new Settings(); try { byte[] bytes = File.ReadAllBytes(fileName); ReadBuffer rb = new ReadBuffer(bytes); s.settingsPath = fileName; s.inpuPath = rb.readString(); s.outputPath = rb.readString(); s.enableVisor = rb.readBool(); s.enableBarrier = rb.readBool(); s.EMPDamage = rb.readInt(); s.addLeaderboard = rb.readBool(); s.addTouchRevive = rb.readBool(); s.addSancColors = rb.readBool(); s.useDefaultGunfireSound = rb.readBool(); s.useDefaultVisorSound = rb.readBool(); s.useDefaultBackgroundSound = rb.readBool(); s.gunforeSoundPath = new SoundFile("STORAGE", rb.readString(), null, 0, false, false, false); s.visorSound = new SoundFile("STORAGE", rb.readString(), null, 0, false, false, false); s.backgroundSound = new SoundFile("STORAGE", rb.readString(), null, 0, false, false, false); s.addTimelock = rb.readBool(); s.timeLockMessage = rb.readString(); s.timeLockRangeFrom = rb.readString(); s.timeLockRangeTo = rb.readString(); try { s.adjustHPAndWeapons = rb.readBool(); s.muteUnits = rb.readBool(); s.preferredSettings = readUnitSettings(rb); s.ignoreArmors = rb.readByteArray(130); } catch (Exception) { s.adjustHPAndWeapons = s.enableBarrier; s.muteUnits = false; } try { s.mapName = rb.readString(); s.mapDescription = rb.readString(); s.mapObjectives = rb.readString(); s.useObjectives = rb.readBool(); } catch (Exception) { s.mapName = ""; s.mapDescription = ""; s.mapObjectives = ""; s.useObjectives = false; } } catch (Exception) { return(null); } return(s); }