public static BflytFile.PatchResult PatchBntx(SARCExt.SarcData sarc, DDSEncoder.DDSLoadResult DDS, PatchTemplate targetPatch) { QuickBntx q = new QuickBntx(new BinaryDataReader(new MemoryStream(sarc.Files[@"timg/__Combined.bntx"]))); if (q.Rlt.Length != 0x80) { return(BflytFile.PatchResult.Fail); } q.ReplaceTex(targetPatch.MaintextureName, DDS); DDS = null; sarc.Files[@"timg/__Combined.bntx"] = null; sarc.Files[@"timg/__Combined.bntx"] = q.Write(); return(BflytFile.PatchResult.OK); }
public bool PatchMainBG(DDSEncoder.DDSLoadResult DDS) { var template = PatchTemplate; BflytFile BflytFromSzs(string name) => new BflytFile(sarc.Files[name]); //PatchBGLayouts BflytFile MainFile = BflytFromSzs(template.MainLayoutName); var res = MainFile.PatchBgLayout(template); if (!res) { return(res); } sarc.Files[template.MainLayoutName] = MainFile.SaveFile(); var layouts = sarc.Files.Keys.Where(x => x.StartsWith("blyt/") && x.EndsWith(".bflyt") && x != template.MainLayoutName).ToArray(); foreach (var f in layouts) { BflytFile curTarget = BflytFromSzs(f); if (curTarget.PatchTextureName(template.MaintextureName, template.SecondaryTexReplace)) { sarc.Files[f] = curTarget.SaveFile(); } } //PatchBGBntx QuickBntx q = GetBntx(); if (q.Rlt.Length != 0x80) { return(false); } q.ReplaceTex(template.MaintextureName, DDS); DDS = null; return(true); }