コード例 #1
0
ファイル: DatCmpReader.cs プロジェクト: thatswork/RomVaultX
        private static bool LoadGameFromDat(RvDat rvDat, string rootdir)
        {
            if (DatFileLoader.Next != "(")
            {
                DatUpdate.SendAndShowDat("( not found after game", DatFileLoader.Filename);
                return false;
            }
            DatFileLoader.Gn();

            string snext = DatFileLoader.Next.ToLower();

            string pathextra = "";
            if (snext == "rebuildto")
            {
                pathextra = VarFix.CleanFullFileName(DatFileLoader.Gn()); DatFileLoader.Gn();
                snext = DatFileLoader.Next.ToLower();
            }

            if (snext != "name")
            {
                DatUpdate.SendAndShowDat("Name not found as first object in ( )", DatFileLoader.Filename);
                return false;
            }

            string name = VarFix.CleanFullFileName(DatFileLoader.GnRest());

            if (!String.IsNullOrEmpty(pathextra))
                name = pathextra + "/" + name;

            DatFileLoader.Gn();

            RvGame rvGame = new RvGame();
            rvGame.Name = name;
            while (DatFileLoader.Next != ")")
            {
                switch (DatFileLoader.Next.ToLower())
                {
                    case "romof": rvGame.RomOf = VarFix.CleanFileName(DatFileLoader.GnRest()); DatFileLoader.Gn(); break;
                    case "description": rvGame.Description = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;

                    case "sourcefile": rvGame.SourceFile = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "cloneof": rvGame.CloneOf = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "sampleof": rvGame.SampleOf = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "board": rvGame.Board = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "year": rvGame.Year = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "manufacturer": rvGame.Manufacturer = DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "serial": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "rebuildto": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;

                    case "sample": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "biosset": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;

                    case "chip": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "video": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "sound": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "input": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "dipswitch": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;
                    case "driver": DatFileLoader.GnRest(); DatFileLoader.Gn(); break;

                    case "rom":
                        DatFileLoader.Gn();
                        if (!LoadRomFromDat(rvGame))
                            return false;
                        DatFileLoader.Gn();
                        break;
                    case "disk":
                        DatFileLoader.Gn();
                        if (!LoadDiskFromDat(rvGame))
                            return false;
                        DatFileLoader.Gn();
                        break;

                    case "archive":
                        DatFileLoader.Gn();
                        if (!LoadArchiveFromDat())
                            return false;
                        DatFileLoader.Gn();
                        break;

                    default:
                        DatUpdate.SendAndShowDat("Error: key word '" + DatFileLoader.Next + "' not known in game", DatFileLoader.Filename);
                        DatFileLoader.Gn();
                        break;
                }
            }
            rvDat.AddGame(rvGame);
            return true;
        }
コード例 #2
0
ファイル: DatXMLReader.cs プロジェクト: thatswork/RomVaultX
        private static void LoadGameFromDat(RvDat rvDat, XmlNode gameNode, string rootDir)
        {
            if (gameNode.Attributes == null)
                return;

            RvGame rvGame=new RvGame();
            rvGame.Name = VarFix.CleanFullFileName(gameNode.Attributes.GetNamedItem("name"));
            rvGame.RomOf = VarFix.CleanFileName(gameNode.Attributes.GetNamedItem("romof"));
            rvGame.CloneOf = VarFix.CleanFileName(gameNode.Attributes.GetNamedItem("cloneof"));
            rvGame.SampleOf = VarFix.CleanFileName(gameNode.Attributes.GetNamedItem("sampleof"));
            rvGame.Description = VarFix.String(gameNode.SelectSingleNode("description"));
            rvGame.SourceFile = VarFix.String(gameNode.Attributes.GetNamedItem("sourcefile"));
            rvGame.IsBios = VarFix.String(gameNode.Attributes.GetNamedItem("isbios"));
            rvGame.Board = VarFix.String(gameNode.Attributes.GetNamedItem("board"));
            rvGame.Year = VarFix.String(gameNode.SelectSingleNode("year"));
            rvGame.Manufacturer = VarFix.String(gameNode.SelectSingleNode("manufacturer"));

            XmlNode trurip = gameNode.SelectSingleNode("trurip");
            if (trurip != null)
            {
                rvGame.IsTrurip = true;
                rvGame.Publisher = VarFix.String(trurip.SelectSingleNode("publisher"));
                rvGame.Developer = VarFix.String(trurip.SelectSingleNode("developer"));
                rvGame.Edition = VarFix.String(trurip.SelectSingleNode("edition"));
                rvGame.Version = VarFix.String(trurip.SelectSingleNode("version"));
                rvGame.Type = VarFix.String(trurip.SelectSingleNode("type"));
                rvGame.Media = VarFix.String(trurip.SelectSingleNode("media"));
                rvGame.Language = VarFix.String(trurip.SelectSingleNode("language"));
                rvGame.Players = VarFix.String(trurip.SelectSingleNode("players"));
                rvGame.Ratings = VarFix.String(trurip.SelectSingleNode("ratings"));
                rvGame.Peripheral = VarFix.String(trurip.SelectSingleNode("peripheral"));
                rvGame.Genre = VarFix.String(trurip.SelectSingleNode("genre"));
                rvGame.MediaCatalogNumber = VarFix.String(trurip.SelectSingleNode("mediacatalognumber"));
                rvGame.BarCode = VarFix.String(trurip.SelectSingleNode("barcode"));
            }

            rvGame.Name = IO.Path.Combine(rootDir,rvGame.Name);

            rvDat.AddGame(rvGame);

            XmlNodeList romNodeList = gameNode.SelectNodes("rom");
            if (romNodeList != null)
                for (int i = 0; i < romNodeList.Count; i++)
                    LoadRomFromDat(rvGame, romNodeList[i]);

            XmlNodeList diskNodeList = gameNode.SelectNodes("disk");
            if (diskNodeList != null)
                for (int i = 0; i < diskNodeList.Count; i++)
                    LoadDiskFromDat(rvGame, diskNodeList[i]);
        }