示例#1
0
        internal static DialogResourceData TryCreate(ResourceLang lang, byte[] rawData)
        {
            if (rawData.Length < 18)
            {
                return(null);
            }

            try
            {
                var stream = new MemoryStream(rawData);
                var rdr    = new BinaryReader(stream, Encoding.Unicode);

                var isTemplateEx = true;
                ;
                byte[] templateExSignature = { 0x01, 0x00, 0xFF, 0xFF };
                for (var i = 0; i < templateExSignature.Length; i++)
                {
                    if (rawData[i] != templateExSignature[i])
                    {
                        isTemplateEx = false;
                        break;
                    }
                }

                var d = isTemplateEx ? BuildEx(rdr) : Build(rdr);

                var ret = new DialogResourceData(lang, rawData)
                {
                    Dialog = d
                };

                return(ret);
            }
            catch (IOException) { return(null); }
            catch (AnolisException) { return(null); }
        }
示例#2
0
 public override ResourceData FromResource(ResourceLang lang, byte[] data)
 {
     return(DialogResourceData.TryCreate(lang, data));
 }