static AlbionPalette LoadPalette(string file, AssetInfo assetInfo) { using var stream = File.Open(file, FileMode.Open); using var br = new BinaryReader(stream); using var s = new AlbionReader(br, stream.Length); return(AlbionPalette.Serdes(null, assetInfo, s)); }
void MainFrm_Load(object sender, EventArgs e) { _rootNode = fileTree.Nodes.Add("Files"); var exportedDir = Path.GetFullPath(Path.Combine(_generalConfig.BasePath, _generalConfig.ExportedXldPath)); var files = Directory.EnumerateFiles(exportedDir, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var absDir = Path.GetDirectoryName(file); var relativeDir = absDir.Substring(exportedDir.Length).TrimStart('\\').Replace("\\", "/"); if (relativeDir.Length == 0) { continue; } if (!_config.Xlds.ContainsKey(relativeDir)) { _config.Xlds.Add(relativeDir, new FullXldInfo()); } var relative = file.Substring(exportedDir.Length + 1); var xld = _config.Xlds[relativeDir]; AddToTree(relative, xld); } var commonPalette = File.ReadAllBytes(Path.Combine(_generalConfig.BasePath, _generalConfig.XldPath, "PALETTE.000")); var palettesPath = Path.Combine(exportedDir, "PALETTE0.XLD"); files = Directory.EnumerateFiles(palettesPath, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var a = file.Substring(palettesPath.Length + 1, 2); int paletteNumber = int.Parse(a); var assetConfig = _config.Xlds["PALETTE0.XLD"].Assets[paletteNumber]; var paletteName = assetConfig.Name; if (string.IsNullOrEmpty(paletteName)) { paletteName = file.Substring(exportedDir.Length + 1); } using (var stream = File.Open(file, FileMode.Open)) using (var br = new BinaryReader(stream)) { var palette = new AlbionPalette(br, (int)br.BaseStream.Length, paletteName, paletteNumber); palette.SetCommonPalette(commonPalette); chkListPalettes.Items.Add(palette); } } chkListPalettes.SelectedIndex = 0; _rootNode.Expand(); _timer.Start(); }
public static void InitialiseAssets() { Font = MultiFont.Load(FontInfoPath, FontPngPath); Font6 = Font.GetFont(6); Font10 = Font.GetFont(10); Palette1Id = UAlbion.Base.Palette.Toronto2D; var commonRaw = new uint[256]; var torontoRaw = new uint[256]; Array.Copy(RawPalette, 192, commonRaw, 192, 64); Array.Copy(RawPalette, 0, torontoRaw, 0, 255); PaletteCommon = new AlbionPalette(((PaletteId)UAlbion.Base.Palette.Common).ToUInt32(), null, commonRaw); Palette1 = new AlbionPalette(Palette1Id.ToUInt32(), Palette1Id.ToString(), torontoRaw); Tileset1 = new TestTilemap(Font6, Font10); }
public DummyPaletteManager(AlbionPalette palette) => Palette = palette;
public ReverserCore(GeneralConfig generalConfig, FullAssetConfig config) { GeneralConfig = generalConfig; Config = config; BaseExportDirectory = Path.GetFullPath(Path.Combine(GeneralConfig.BasePath, GeneralConfig.ExportedXldPath)); var files = Directory.EnumerateFiles(BaseExportDirectory, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var absDir = Path.GetDirectoryName(file) ?? ""; var relativeDir = absDir.Substring(BaseExportDirectory.Length).TrimStart('\\').Replace("\\", "/"); if (relativeDir.Length == 0) { continue; } if (!Config.Xlds.ContainsKey(relativeDir)) { Config.Xlds.Add(relativeDir, new FullXldInfo()); } var xld = Config.Xlds[relativeDir]; if (!Xlds.ContainsKey(relativeDir)) { Xlds.Add(relativeDir, xld); } var relative = file.Substring(BaseExportDirectory.Length + 1); var parts = relative.Split('\\'); string key = parts.Last(); key = Path.GetFileNameWithoutExtension(key); if (!int.TryParse(key, out var number)) { continue; } if (!xld.Assets.ContainsKey(number)) { xld.Assets[number] = new FullAssetInfo(); } FullAssetInfo asset = xld.Assets[number]; asset.Filename = relative; } var commonPalette = File.ReadAllBytes(Path.Combine(GeneralConfig.BasePath, GeneralConfig.XldPath, "PALETTE.000")); var palettesPath = Path.Combine(BaseExportDirectory, "PALETTE0.XLD"); files = Directory.EnumerateFiles(palettesPath, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var a = file.Substring(palettesPath.Length + 1, 2); ushort paletteNumber = ushort.Parse(a); var assetConfig = Config.Xlds["PALETTE0.XLD"].Assets[paletteNumber]; var paletteName = assetConfig.Name; if (string.IsNullOrEmpty(paletteName)) { paletteName = file.Substring(BaseExportDirectory.Length + 1); } using (var stream = File.Open(file, FileMode.Open)) using (var br = new BinaryReader(stream)) { var palette = new AlbionPalette(br, (int)br.BaseStream.Length, new AssetKey(AssetType.Palette, paletteNumber), paletteNumber); palette.SetCommonPalette(commonPalette); Palettes.Add(palette); } } }