private bool ProcessFilesInternal(AcceptedFilesResults results, string[] files) { foreach (int bitIndex in results.AcceptedFileTypes.SetBitIndices) { var type = (AcceptedFileType)bitIndex; switch (type) { case AcceptedFileType.Bin: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessGameVariantBinFiles(files); return(true); } break; } case AcceptedFileType.GvarXml: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessGameVariantXmlFiles(files); return(true); } break; } case AcceptedFileType.Directory: { // #TODO_MGLO: Detect CTRL key to do XML->BIN? if (results.AcceptedFileTypes.Cardinality == 1) { // #TODO_MGLO //BinToGameVariantXmlInDirectories(files); throw new NotImplementedException(type.ToString()); //return true; } break; } } } return(false); }
private bool AcceptsFilesInternal(AcceptedFilesResults results, string[] files) { foreach (int bitIndex in results.AcceptedFileTypes.SetBitIndices) { var type = (AcceptedFileType)bitIndex; switch (type) { case AcceptedFileType.Bin: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "Disassemble Game Variant Bin(s)"; return(true); } break; } case AcceptedFileType.GvarXml: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "Assemble Game Variant Bins(s) from XML source"; return(true); } break; } case AcceptedFileType.Directory: { #if false // #TODO_MGLO // #TODO_MGLO: Detect CTRL key to do XML->BIN? if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "BIN->MGLOXML (in directories)"; return(true); } #endif break; } } } return(false); }
public static AcceptedFilesResults DetermineAcceptedFiles(string[] files, BitVector32 miscFlags) { var results = new AcceptedFilesResults(); if (files == null || files.Length == 0) { return(results); } results.FilesCount = files.Length; foreach (string path in files) { if (System.IO.Directory.Exists(path)) { results.AcceptedFileTypes.Set(AcceptedFileType.Directory); continue; } string ext = System.IO.Path.GetExtension(path); if (string.IsNullOrEmpty(ext)) // extension-less file { results.AcceptedFileTypes.Set(AcceptedFileType.Unaccepted); continue; } switch (ext) { case KSoft.Blam.RuntimeData.Variants.GameEngineVariant.kGameVariantBinExtension: results.AcceptedFileTypes.Set(AcceptedFileType.Bin); break; case KSoft.Blam.RuntimeData.Variants.GameEngineVariant.kGameVariantXmlExtension: results.AcceptedFileTypes.Set(AcceptedFileType.GvarXml); break; } } return(results); }
private bool ProcessFilesInternal(AcceptedFilesResults results, string[] files) { foreach (int bitIndex in results.AcceptedFileTypes.SetBitIndices) { var type = (AcceptedFileType)bitIndex; switch (type) { case AcceptedFileType.EraDef: { if (results.FilesCount == 1) { ProcessEraListing(files[0]); return(true); } break; } case AcceptedFileType.EcfDef: { if (results.FilesCount == 1) { ProcessEcfListing(files[0]); return(true); } break; } case AcceptedFileType.PkgDef: { if (results.FilesCount == 1) { // TODO //ProcessPkgListing(files[0]); return(true); } break; } case AcceptedFileType.Exe: case AcceptedFileType.Xex: { if (results.FilesCount == 1) { PatchGameExe(files[0], type); return(true); } break; } case AcceptedFileType.Era: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessEraFiles(files); return(true); } break; } case AcceptedFileType.Ecf: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessEcfFiles(files); return(true); } break; } case AcceptedFileType.Pkg: { if (results.AcceptedFileTypes.Cardinality == 1) { // TODO //ProcessPkgFiles(files); return(true); } break; } case AcceptedFileType.Xmb: { if (results.AcceptedFileTypes.Cardinality == 1) { XmbToXml(files); return(true); } break; } case AcceptedFileType.Directory: { if (results.AcceptedFileTypes.Cardinality == 1) { XmbToXmlInDirectories(files); return(true); } break; } case AcceptedFileType.BinaryDataTree: { if (results.AcceptedFileTypes.Cardinality == 1) { BinaryDataTreeBinToXml(files); return(true); } break; } case AcceptedFileType.BinaryDataTreeXml: { if (results.AcceptedFileTypes.Cardinality == 1) { // #TODO throw new NotImplementedException(type.ToString()); //return true; } break; } } } return(false); }
private bool AcceptsFilesInternal(AcceptedFilesResults results, string[] files) { foreach (int bitIndex in results.AcceptedFileTypes.SetBitIndices) { var type = (AcceptedFileType)bitIndex; switch (type) { case AcceptedFileType.EraDef: { if (results.FilesCount == 1) { ProcessFilesHelpText = "Build ERA"; return(true); } break; } case AcceptedFileType.EcfDef: { if (results.FilesCount == 1) { ProcessFilesHelpText = "Build ECF"; return(true); } break; } case AcceptedFileType.PkgDef: { if (results.FilesCount == 1) { ProcessFilesHelpText = "Build PKG"; return(true); } break; } case AcceptedFileType.Exe: case AcceptedFileType.Xex: { if (results.FilesCount == 1) { ProcessFilesHelpText = "Try to patch game EXE for modding"; return(true); } break; } case AcceptedFileType.Era: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "Expand ERA(s)"; return(true); } break; } case AcceptedFileType.Ecf: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "Expand ECF(s)"; return(true); } break; } case AcceptedFileType.Pkg: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "Expand PKG(s)"; return(true); } break; } case AcceptedFileType.Xmb: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "XMB->XML"; return(true); } break; } case AcceptedFileType.Directory: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "XMB->XML (in directories)"; return(true); } break; } case AcceptedFileType.BinaryDataTree: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "BinaryDataTree BIN->XML"; return(true); } break; } case AcceptedFileType.BinaryDataTreeXml: { if (results.AcceptedFileTypes.Cardinality == 1) { ProcessFilesHelpText = "BinaryDataTree XML->BIN"; return(true); } break; } } } return(false); }
public static AcceptedFilesResults DetermineAcceptedFiles(string[] files, BitVector32 miscFlags) { var results = new AcceptedFilesResults(); if (files == null || files.Length == 0) { return(results); } results.FilesCount = files.Length; foreach (string path in files) { if (System.IO.Directory.Exists(path)) { results.AcceptedFileTypes.Set(AcceptedFileType.Directory); continue; } string ext = System.IO.Path.GetExtension(path); if (string.IsNullOrEmpty(ext)) // extension-less file { results.AcceptedFileTypes.Set(AcceptedFileType.Unaccepted); continue; } // #HACK ECFs // Needs to come before all other file extension checks as it is a forced override if (miscFlags.Test(MiscFlags.AssumeDragAndDropFilesAreEcf)) { results.AcceptedFileTypes.Set(AcceptedFileType.Ecf); continue; } switch (ext) { case KSoft.Phoenix.Resource.EraFileUtil.kExtensionEncrypted: results.AcceptedFileTypes.Set(AcceptedFileType.Era); break; case KSoft.Phoenix.Resource.EraFileBuilder.kNameExtension: results.AcceptedFileTypes.Set(AcceptedFileType.EraDef); break; case KSoft.Phoenix.Resource.ECF.EcfFileDefinition.kFileExtension: results.AcceptedFileTypes.Set(AcceptedFileType.EcfDef); break; case KSoft.Phoenix.Resource.PKG.CaPackageFile.kFileExtension: results.AcceptedFileTypes.Set(AcceptedFileType.Pkg); break; case KSoft.Phoenix.Resource.PKG.CaPackageFileDefinition.kFileExtension: results.AcceptedFileTypes.Set(AcceptedFileType.PkgDef); break; case ".exe": results.AcceptedFileTypes.Set(AcceptedFileType.Exe); break; case ".xex": results.AcceptedFileTypes.Set(AcceptedFileType.Exe); break; case ".xmb": results.AcceptedFileTypes.Set(AcceptedFileType.Xmb); break; case KSoft.Phoenix.Xmb.BinaryDataTree.kBinaryFileExtension: results.AcceptedFileTypes.Set(AcceptedFileType.BinaryDataTree); break; case KSoft.Phoenix.Xmb.BinaryDataTree.kTextFileExtension: results.AcceptedFileTypes.Set(AcceptedFileType.BinaryDataTreeXml); break; default: if (KSoft.Phoenix.Resource.ResourceUtils.IsXmlBasedFile(path)) { results.AcceptedFileTypes.Set(AcceptedFileType.Xml); } break; } } return(results); }