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); } }
public override ResourceData FromResource(ResourceLang lang, byte[] data) { return(DialogResourceData.TryCreate(lang, data)); }