예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }