/// <summary> /// /// </summary> /// <param name="pack"></param> /// <param name="line"></param> private static void ExtractName(GraphicsPack pack, string line) { string[] toks = line.Split('='); if (toks.Length > 0) { pack.Title = toks[1].Trim().TrimEnd('\"').TrimStart('\"'); } }
/// <summary> /// /// </summary> /// <param name="file"></param> /// <param name="graphicsPacks"></param> static void ParseGraphicsPack(FileInfo file, Dictionary <string, List <GraphicsPack> > graphicsPacks) { if (file.Name != "rules.txt") { return; } using (StreamReader sr = new StreamReader(file.FullName)) { GraphicsPack pack = new GraphicsPack { File = file.FullName }; string[] ids = null; foreach (string line in sr.ReadToEnd().Split('\n')) { if (line.Contains("titleIds")) { ids = ExtractTitleIds(ids, line); } if (line.Contains("name = ")) { ExtractName(pack, line); } } if (ids != null) { foreach (string i in ids) { string id = i.ToUpper(); if (id.Length == 15) { id = "0" + id; } if (file.DirectoryName != null) { pack.Folder = file.DirectoryName.Substring(1 + file.DirectoryName.LastIndexOf(Path.DirectorySeparatorChar)); } if (!graphicsPacks.ContainsKey(id)) { graphicsPacks.Add(id, new List <GraphicsPack>()); } if (!IsContained(graphicsPacks[id], pack)) { graphicsPacks[id].Add(pack); } } } } }
private static bool IsContained(List <GraphicsPack> list, GraphicsPack pack) { foreach (var p in list) { if (p.Folder == pack.Folder) { return(true); } } return(false); }
/// <summary> /// /// </summary> void EnableDefaultGraphicsPack() { resolutionPack = null; foreach (var pack in settings.graphicsPacks) { if (IsResolutionPack(pack.Title)) { if (pack.Title.Contains(model.Settings.DefaultResolution.Replace("p", ""))) { resolutionPack = new GraphicsPack() { Active = true, File = pack.File, Folder = pack.Folder, Title = pack.Title, }; break; } } } }
/// <summary> /// /// </summary> /// <param name="gfxPackStartOffset"></param> /// <param name="pack"></param> /// <param name="folder"></param> void AppendGraphicsPack(string folder, int gfxPackStartOffset, GraphicsPack pack) { if (resolutionPack != null) { if (pack.Title != resolutionPack.Title) { if (IsResolutionPack(pack.Title)) { return; } } } using (FileStream fn = new FileStream(Path.Combine(folder, "settings.bin"), FileMode.Open, FileAccess.ReadWrite)) { if (pack.Active) { fn.Seek(gfxPackStartOffset + (packIndex++ *9), SeekOrigin.Begin); string gui = GraphicsPack.GraphicPackHashes[pack.PackId][1]; fn.Write(StringToByteArray(gui), 0, 8); fn.WriteByte(1); } } }
/// <summary> /// /// </summary> /// <param name="game"></param> /// <param name="pack"></param> /// <returns></returns> private static void AddGraphicsPack(KeyValuePair <string, GameInformation> game, GraphicsPack pack) { if (!PackAdded(game.Value, pack.Folder)) { if (!game.Value.GameSetting.GraphicsPacksFolders.Contains(pack.Folder)) { game.Value.GameSetting.GraphicsPacksFolders.Add(pack.Folder); game.Value.GameSetting.graphicsPacks.Add(pack); game.Value.GraphicsPacksCount = game.Value.GameSetting.graphicsPacks.Count; } } }
public void loadPack(int code, String filename) { images[code] = new GraphicsPack(code); images[code].load(filename); }