コード例 #1
0
ファイル: FolderScanner.cs プロジェクト: SteveLever73/Budford
 /// <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('\"');
     }
 }
コード例 #2
0
ファイル: FolderScanner.cs プロジェクト: SteveLever73/Budford
        /// <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);
                        }
                    }
                }
            }
        }
コード例 #3
0
ファイル: FolderScanner.cs プロジェクト: SteveLever73/Budford
 private static bool IsContained(List <GraphicsPack> list, GraphicsPack pack)
 {
     foreach (var p in list)
     {
         if (p.Folder == pack.Folder)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
ファイル: CemuSettings.cs プロジェクト: SteveLever73/Budford
 /// <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;
             }
         }
     }
 }
コード例 #5
0
ファイル: CemuSettings.cs プロジェクト: SteveLever73/Budford
        /// <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);
                }
            }
        }
コード例 #6
0
ファイル: FolderScanner.cs プロジェクト: SteveLever73/Budford
 /// <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;
         }
     }
 }
コード例 #7
0
 public void loadPack(int code, String filename)
 {
     images[code] = new GraphicsPack(code);
     images[code].load(filename);
 }