public static void ExtractA3D(string path, string acpath, a3ds a3db, divamodgen divamods = null) { Directory.CreateDirectory("a3d"); //Directory.CreateDirectory("a3d\\common"); foreach (string file in Directory.EnumerateFiles(path, "effstgpv*.farc", SearchOption.TopDirectoryOnly)) { if (!file.Contains("ptc")) { Tools.Extract(file, "a3d\\" + Path.GetFileNameWithoutExtension(file).Replace("effstgpv0", "EFFSTGPV8").ToUpper() + "\\"); var check = a3db.a3d_dbs.Any(c => c.rawrows.Any(d => d.Contains(Path.GetFileNameWithoutExtension(file).Replace("effstgpv", "EFFSTGPV").ToUpper()))); if (!check) { a3d newa3d = new a3d(0); newa3d.id = a3db.a3d_dbs.Max(c => c.id) + 1; newa3d.rawrows.Add(".value=" + Path.GetFileNameWithoutExtension(file).Replace("effstgpv", "EFFSTGPV").ToUpper()); a3db.a3d_dbs.Add(newa3d); } } } foreach (string file in Directory.EnumerateFiles("a3d\\", "*.a3da", SearchOption.AllDirectories)) { File.Move(file, Path.GetDirectoryName(file) + "\\" + Path.GetFileNameWithoutExtension(file).ToUpper().Replace("STGPV0", "STGPV8") + ".a3da"); } foreach (string file in Directory.EnumerateFiles(path, "a3d_effpv*.farc", SearchOption.TopDirectoryOnly)) { Tools.Extract(file, "a3d\\" + Path.GetFileNameWithoutExtension(file).Replace("a3d_effpv", "EFFSTGPV").ToUpper() + "\\"); var check = a3db.a3d_dbs.Any(c => c.rawrows.Any(d => d.Contains(Path.GetFileNameWithoutExtension(file).Replace("effstgpv", "EFFSTGPV").ToUpper()))); if (!check) { a3d newa3d = new a3d(0); newa3d.id = a3db.a3d_dbs.Max(c => c.id) + 1; newa3d.rawrows.Add(".value=" + Path.GetFileNameWithoutExtension(file).Replace("a3d_effpv", "EFFSTGPV").ToUpper()); a3db.a3d_dbs.Add(newa3d); } } foreach (string file in Directory.EnumerateFiles(path, "CAMPV*.farc", SearchOption.TopDirectoryOnly)) { Tools.Extract(file, "a3d\\" + Path.GetFileNameWithoutExtension(file).ToUpper() + "\\"); var check = a3db.a3d_dbs.Any(c => c.rawrows.Any(d => d.Contains(Path.GetFileNameWithoutExtension(file).ToUpper()))); if (!check) { a3d newa3d = new a3d(0); newa3d.id = a3db.a3d_dbs.Max(c => c.id) + 1; newa3d.rawrows.Add(".value=" + Path.GetFileNameWithoutExtension(file).ToUpper()); a3db.a3d_dbs.Add(newa3d); } } foreach (string file in Directory.EnumerateFiles("a3d\\", "*.a3da", SearchOption.AllDirectories)) { File.Move(file, Path.GetDirectoryName(file) + "\\" + Path.GetFileNameWithoutExtension(file).ToUpper().Replace("EFFPV", "STGPV") + ".a3da"); } }
public LootObject(a3d instance) : base(instance) { _internal = instance; }
public static a3ds CreateDBEntries(string acpath, a3ds a3db, divamodgen divamods) { foreach (string file in Directory.EnumerateFiles("a3d\\", "*.a3da", SearchOption.AllDirectories)) { string[] a3da_lines = File.ReadAllLines(file); StreamWriter outp = new StreamWriter(file, false, Encoding.ASCII); outp.NewLine = "\n"; foreach (var i in a3da_lines) { var u = i.Replace("EFFPV", "STGPV").Replace("STGPV0", "STGPV8"); outp.WriteLine(u); } outp.Close(); if ((divamods != null) && (file.Contains("STGPV"))) { int pvid = int.Parse(Path.GetFileName(file).Substring(5, 3)); if (pvid < 200) { pvid = pvid + 800; } { var check2 = divamods.Divamods.Where(c => c.pvid == pvid).FirstOrDefault(); if (check2 == null) { divamods.Divamods.Add(new pdaconversion.divamods(pvid)); Logs.WriteLine("a3da: Created new PV at id " + (pvid)); check2 = divamods.Divamods.Where(c => c.pvid == pvid).First(); } check2.a3da.Add(Path.GetFileNameWithoutExtension(file)); Logs.WriteLine("a3da: Added a3d for PV at id " + pvid + "," + Path.GetFileNameWithoutExtension(file)); } if (pvid >= 800) { if (!Path.GetFileNameWithoutExtension(file).Contains("effpv")) { var check2 = divamods.Divamods.Where(c => c.pvid == (pvid)).FirstOrDefault(); if (check2 == null) { divamods.Divamods.Add(new pdaconversion.divamods(pvid - 100)); Logs.WriteLine("a3da: Created new PV at id " + (pvid - 100)); check2 = divamods.Divamods.Where(c => c.pvid == (pvid - 100)).First(); } Logs.WriteLine("a3da: Added a3d for PV at id " + (pvid - 100) + "," + Path.GetFileNameWithoutExtension(file)); check2.a3da.Add(Path.GetFileNameWithoutExtension(file)); } } } a3dfixer a3Dfixer = new a3dfixer(); a3d newa3d = new a3d(0); newa3d.id = a3db.a3d_dbs_uid.Max(c => c.id) + 1; var lepath = Path.GetDirectoryName(file).Split('\\'); { newa3d.rawrows.Add(".category=" + lepath[lepath.Count() - 1]); newa3d.rawrows.Add(".size=" + a3Dfixer.getSize(file)); newa3d.rawrows.Add(".value=A " + Path.GetFileNameWithoutExtension(file).ToUpper()); a3db.a3d_dbs_uid.Add(newa3d); } } Logs.WriteLine("Packing farcs..."); Tools.MassPackFolders("a3d", acpath + @"\rom\auth_3d\"); return(a3db); }