public void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     foreach (var value in _values)
     {
         value.ResolveStringLiterals(lookupTable);
     }
 }
示例#2
0
 public void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     foreach (var pair in _map)
     {
         pair.Key.Resolve(lookupTable);
         pair.Value.ResolveStringLiterals(lookupTable);
     }
 }
示例#3
0
        private static void DecompileFile(FileInfo file)
        {
            string fileName   = string.Format("{0}.xml", Path.GetFileName(file.Name));
            string outputName = Path.Combine(file.DirectoryName, fileName);

            using (FileStream input = new FileStream(file.FullName, FileMode.Open))
                using (FileStream output = new FileStream(outputName, FileMode.Create))
                {
                    try
                    {
                        FoxLookupTable lookupTable = new FoxLookupTable(GlobalHashNameDictionary);
                        var            foxFile     = FoxFile.ReadFoxFile(input, lookupTable);
                        FoxConverter.DecompileFox(foxFile, output);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error decompiling {0}: {1}", file.FullName, e);
                    }
                }
        }
示例#4
0
        public void Import(Stream input, string path)
        {
            var lookupTable = new FoxLookupTable(GlobalHashNameDictionary);
            var foxFile     = FoxFile.ReadFoxFile(input, lookupTable);

            IEntityReferenceResolver referenceResolver = new EntityReferenceResolver();

            Framework.Tpp.Classes.DataSet dataSet = null;

            // Load each Entity.
            ICollection <Entity> entities = new List <Entity>();

            foreach (var entry in foxFile.Entities)
            {
                var entity = EntityFactory.MakeEntity(entry, entityTypes, unimplementedTypeTable, commandDispatcher, referenceResolver);

                if (entity != null)
                {
                    entities.Add(entity);
                }

                if (!(entity is Framework.Tpp.Classes.DataSet))
                {
                    continue;
                }
                dataSet = entity as Framework.Tpp.Classes.DataSet;
                dataSet.SetPath(path);
            }

            // Call OnLoaded() on the new Entities.
            var autoResetEvent = commandDispatcher.DispatchCommand(new InitializeEntities(dataSet, entities));

            autoResetEvent.WaitOne();

            // Generate new Entity classes.
            foreach (var unimplementedType in unimplementedTypeTable)
            {
                Debug.Log("Generating C# class for type " + unimplementedType.Key);
                EntityClassGenerator.GenerateEntityClass(unimplementedType.Value);
            }
        }
示例#5
0
 public void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
 }
示例#6
0
 public override void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
 }
示例#7
0
 public override void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     throw new NotImplementedException();
 }
 public abstract void ResolveStringLiterals(FoxLookupTable lookupTable);
示例#9
0
 public override void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     PackagePathLiteral.Resolve(lookupTable);
     ArchivePathLiteral.Resolve(lookupTable);
     NameInArchiveLiteral.Resolve(lookupTable);
 }
示例#10
0
 public abstract void ResolveStringLiterals(FoxLookupTable lookupTable);
示例#11
0
 public void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     StringLiteral.Resolve(lookupTable);
 }
示例#12
0
 public override void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     throw new NotImplementedException();
 }
示例#13
0
 public override void ResolveStringLiterals(FoxLookupTable lookupTable)
 {
     PackagePathLiteral.Resolve(lookupTable);
     ArchivePathLiteral.Resolve(lookupTable);
     NameInArchiveLiteral.Resolve(lookupTable);
 }