private void LoadFontSheet(string stdDir) { Console.WriteLine("Loading font sheet..."); string fontSheetPath = Path.Join(stdDir, "PSP_GAME", "USRDIR", "font", "SYS_RunTime.uvr"); using (Stream stream = File.OpenRead(fontSheetPath)) { GBIX gbix = new GBIX(stream); KONTextRepacker.SetFontImage(((UVRT)gbix.Content).ToBitmap()); } }
private byte[] RewriteFile(string translationDir, string path, byte[] data) { if (_rewriteCache.ContainsKey(path)) { return(_rewriteCache[path]); } using (Stream stream = new MemoryStream(data)) { byte[] rewritten = null; if (IsFmdx(path)) { FMDX fmdx = new FMDX(stream); bool modified = false; foreach (FMDX.File file in fmdx.Files) { if (ShouldRewriteFile(translationDir, file.Path)) { file.Data = RewriteFile(translationDir, file.Path, file.Data); modified = true; } } if (modified) { using (MemoryStream outStream = new MemoryStream()) { fmdx.Write(outStream); rewritten = outStream.ToArray(); } } } else { string replacementPath = GetReplacementPath(translationDir, path); if (File.Exists(replacementPath)) { if (path.EndsWith(".uvr")) { Bitmap bitmap = new Bitmap(Image.FromFile(replacementPath)); GBIX gbix = new GBIX(stream); UVRT uvrt = (UVRT)gbix.Content; gbix.Content = new UVRT(bitmap, uvrt.Format, uvrt.Type, uvrt.MipLevels); using (MemoryStream outStream = new MemoryStream()) { gbix.Write(outStream); rewritten = outStream.ToArray(); } } else if (path.EndsWith(".tts")) { string[] lines = File.ReadAllLines(replacementPath); rewritten = KONTextRepacker.RewriteTTS(data, lines); } else { string[] lines = File.ReadAllLines(replacementPath); rewritten = KONTextRepacker.RewriteSystemText(data, lines); } } } if (rewritten != null) { _rewriteCache[path] = rewritten; } return(rewritten); } }