Esempio n. 1
0
 private bool TryGetCurrentFormat(out LocalizedStringFormat format)
 {
     format =
         (LocalizedStringFormat)
         Enum.Parse(typeof(LocalizedStringFormat), cboType.SelectedItem.ToString(), true);
     return(true);
 }
Esempio n. 2
0
        private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, BinaryWriter writer)
        {
            if (enc == null)
            {
                enc = Encoding.Instance;
            }

            var list = new List <Pair <uint, uint> >();

            using (var stream = new MemoryStream())
                using (var memWriter = new BinaryWriter(stream))
                {
                    foreach (var kvp in strings)
                    {
                        list.Add(new Pair <uint, uint>(kvp.Key, (uint)stream.Position));
                        byte[] data = enc.GetBytes(kvp.Value);
                        switch (format)
                        {
                        case LocalizedStringFormat.Base:
                            memWriter.Write(data, 0, data.Length);
                            memWriter.Write((byte)0);
                            break;

                        case LocalizedStringFormat.DL:
                        case LocalizedStringFormat.IL:
                            memWriter.Write(data.Length + 1);
                            memWriter.Write(data, 0, data.Length);
                            memWriter.Write((byte)0);
                            break;
                        }
                    }

                    writer.Write(strings.Count);
                    writer.Write((int)stream.Length);
                    foreach (var item in list)
                    {
                        writer.Write(item.Key);
                        writer.Write(item.Value);
                    }

                    stream.Position = 0;
                    var buffer = new byte[65536];
                    var left   = (int)stream.Length;
                    while (left > 0)
                    {
                        int read  = Math.Min(left, buffer.Length);
                        int nread = stream.Read(buffer, 0, read);
                        if (nread == 0)
                        {
                            break;
                        }

                        writer.Write(buffer, 0, nread);
                        left -= nread;
                    }
                }
        }
Esempio n. 3
0
 private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, string path)
 {
     try
     {
         using (var writer = new BinaryWriter(File.Create(path))) this.SavePluginStrings(enc, format, strings, writer);
     }
     catch
     {
     }
 }
Esempio n. 4
0
        private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format,
                                                      BinaryReader reader)
        {
            if (encoding == null)
                encoding = Encoding.CP1252;
            var dict = new LocalizedStringDict();
            int length = reader.ReadInt32();
            int size = reader.ReadInt32(); // size of data section
            var list = new List<Pair<uint, uint>>();
            for (uint i = 0; i < length; ++i)
            {
                uint id = reader.ReadUInt32();
                uint off = reader.ReadUInt32();
                list.Add(new Pair<uint, uint>(id, off));
            }
            long offset = reader.BaseStream.Position;
            var data = new byte[size];
            using (var stream = new MemoryStream(data, 0, size, true, false))
            {
                var buffer = new byte[65536];
                int left = size;
                while (left > 0)
                {
                    int read = Math.Min(left, buffer.Length);
                    int nread = reader.BaseStream.Read(buffer, 0, read);
                    if (nread == 0) break;
                    stream.Write(buffer, 0, nread);
                    left -= nread;
                }
            }
            foreach (var kvp in list)
            {
                var start = (int) kvp.Value;
                int len = 0;
                switch (format)
                {
                    case LocalizedStringFormat.Base:
                        while (data[start + len] != 0) ++len;
                        break;

                    case LocalizedStringFormat.DL:
                    case LocalizedStringFormat.IL:
                        len = BitConverter.ToInt32(data, start) - 1;
                        start = start + sizeof (int);
                        if (start + len > data.Length)
                            len = data.Length - start;
                        if (len < 0) len = 0;
                        break;
                }
                string str = encoding.GetString(data, start, len);
                dict.Add(kvp.Key, str);
            }
            return dict;
        }
Esempio n. 5
0
        private LocalizedStringDict GetStringDict(Plugin plugin, LocalizedStringFormat format)
        {
            LocalizedStringDict strings = null;

            switch (format)
            {
            case LocalizedStringFormat.Base: strings = plugin.Strings; break;

            case LocalizedStringFormat.DL: strings = plugin.DLStrings; break;

            case LocalizedStringFormat.IL: strings = plugin.ILStrings; break;
            }
            return(strings);
        }
Esempio n. 6
0
        private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format, string path)
        {
            try
            {
                if (File.Exists(path))
                {
                    using (var reader = new BinaryReader(File.OpenRead(path))) return(this.LoadPluginStrings(encoding, format, reader));
                }
            }
            catch
            {
            }

            return(new LocalizedStringDict());
        }
Esempio n. 7
0
        private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format,
                                       LocalizedStringDict strings, BinaryWriter writer)
        {
            if (enc == null) enc = Encoding.CP1252;

            var list = new List<Pair<uint, uint>>();

            using (var stream = new MemoryStream())
            using (var memWriter = new BinaryWriter(stream))
            {
                foreach (KeyValuePair<uint, string> kvp in strings)
                {
                    list.Add(new Pair<uint, uint>(kvp.Key, (uint) stream.Position));
                    byte[] data = enc.GetBytes(kvp.Value);
                    switch (format)
                    {
                        case LocalizedStringFormat.Base:
                            memWriter.Write(data, 0, data.Length);
                            memWriter.Write((byte) 0);
                            break;

                        case LocalizedStringFormat.DL:
                        case LocalizedStringFormat.IL:
                            memWriter.Write(data.Length + 1);
                            memWriter.Write(data, 0, data.Length);
                            memWriter.Write((byte) 0);
                            break;
                    }
                }
                writer.Write(strings.Count);
                writer.Write((int) stream.Length);
                foreach (var item in list)
                {
                    writer.Write(item.Key);
                    writer.Write(item.Value);
                }

                stream.Position = 0;
                var buffer = new byte[65536];
                var left = (int) stream.Length;
                while (left > 0)
                {
                    int read = Math.Min(left, buffer.Length);
                    int nread = stream.Read(buffer, 0, read);
                    if (nread == 0) break;
                    writer.Write(buffer, 0, nread);
                    left -= nread;
                }
            }
        }
Esempio n. 8
0
 private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format,
                                LocalizedStringDict strings, string path)
 {
     try
     {
         using (var writer = new BinaryWriter(File.Create(path)))
             SavePluginStrings(enc, format, strings, writer);
     }
     catch
     {
     }
 }
Esempio n. 9
0
        private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format,
                                                      BinaryReader reader)
        {
            if (encoding == null)
                encoding = Encoding.CP1252;
            var dict = new LocalizedStringDict();
            int length = reader.ReadInt32();
            int size = reader.ReadInt32(); // size of data section
            var list = new List<Pair<uint, uint>>();
            for (uint i = 0; i < length; ++i)
            {
                uint id = reader.ReadUInt32();
                uint off = reader.ReadUInt32();
                list.Add(new Pair<uint, uint>(id, off));
            }
            long offset = reader.BaseStream.Position;
            var data = new byte[size];
            using (var stream = new MemoryStream(data, 0, size, true, false))
            {
                var buffer = new byte[65536];
                int left = size;
                while (left > 0)
                {
                    int read = Math.Min(left, buffer.Length);
                    int nread = reader.BaseStream.Read(buffer, 0, read);
                    if (nread == 0) break;
                    stream.Write(buffer, 0, nread);
                    left -= nread;
                }
            }
            foreach (var kvp in list)
            {
                var start = (int) kvp.Value;
                int len = 0;
                switch (format)
                {
                    case LocalizedStringFormat.Base:
                        while (data[start + len] != 0) ++len;
                        break;

                    case LocalizedStringFormat.DL:
                    case LocalizedStringFormat.IL:
                        len = BitConverter.ToInt32(data, start) - 1;
                        start = start + sizeof (int);
                        if (start + len > data.Length)
                            len = data.Length - start;
                        if (len < 0) len = 0;
                        break;
                }
                string str = encoding.GetString(data, start, len);
                dict.Add(kvp.Key, str);
            }
            return dict;
        }
Esempio n. 10
0
 private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format,
                                               string path)
 {
     try
     {
         if (File.Exists(path))
         {
             using (var reader = new BinaryReader(File.OpenRead(path)))
                 return LoadPluginStrings(encoding, format, reader);
         }
     }
     catch
     {
     }
     return new LocalizedStringDict();
 }
Esempio n. 11
0
 private bool TryGetCurrentFormat(out LocalizedStringFormat format)
 {
     format = (LocalizedStringFormat)Enum.Parse(typeof(LocalizedStringFormat), this.cboType.SelectedItem.ToString(), true);
     return true;
 }
Esempio n. 12
0
        private LocalizedStringDict GetStringDict(Plugin plugin, LocalizedStringFormat format)
        {
            LocalizedStringDict strings = null;
            switch (format)
            {
                case LocalizedStringFormat.Base:
                    strings = plugin.Strings;
                    break;
                case LocalizedStringFormat.DL:
                    strings = plugin.DLStrings;
                    break;
                case LocalizedStringFormat.IL:
                    strings = plugin.ILStrings;
                    break;
            }

            return strings;
        }