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

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

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

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

                DialogResourceData ret = new DialogResourceData(lang, rawData);
                ret.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));
 }