Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            using (var input = File.OpenRead(@"C:\src\w2\compiledscripts.w2scripts"))
            {
                var test = new CompiledScriptsFile();
                test.Deserialize(input);

                for (int i = 0; i < test.TypeDefs.Length; i++)
                {
                    Console.WriteLine(i + ". " + test.TypeDefs[i]);
                    if (test.TypeDefs[i] is FileFormats.Script.ClassDefinition)
                    {
                        var classDef = test.TypeDefs[i] as FileFormats.Script.ClassDefinition;
                        foreach (var propDef in classDef.Properties)
                        {
                            Console.WriteLine("    " + propDef.Value);
                        }
                        Console.WriteLine();
                        foreach (var funcDef in classDef.Functions)
                        {
                            Console.WriteLine("    " + funcDef.Value);
                        }
                    }
                }

                Console.WriteLine("\n\nFUNCTIONS:");
                for (int index = 0; index < test.FuncDefs.Length; index++)
                {
                    var funcDef = test.FuncDefs[index];
                    Console.WriteLine(index + ". " + funcDef);
                    funcDef.DisassembleToConsole();
                }
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: Gibbed.RED.ScriptDecompiler <path to compiledscripts.w2scripts>");
                return;
            }
            var input      = File.OpenRead(args[0]);
            var scriptFile = new CompiledScriptsFile();

            scriptFile.Deserialize(input);
            input.Close();

            foreach (var typedef in scriptFile.TypeDefs)
            {
                if (typedef is ClassDefinition)
                {
                    DecompileClass((ClassDefinition)typedef, Console.Out);
                }
                else if (typedef is EnumDefinition)
                {
                    DecompileEnum((EnumDefinition)typedef, Console.Out);
                }
            }

            foreach (var func in scriptFile.FuncDefs)
            {
                if (func.ContainingClass == null)
                {
                    DecompileFunction(func, Console.Out, "");
                }
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Usage: Gibbed.RED.Diff <old.w2scripts> <new.w2scripts>");
                return;
            }
            var oldScripts = new CompiledScriptsFile();
            var newScripts = new CompiledScriptsFile();

            using (var oldInput = File.OpenRead(args[0]))
            {
                oldScripts.Deserialize(oldInput);
            }
            using (var newInput = File.OpenRead(args[1]))
            {
                newScripts.Deserialize(newInput);
            }

            var oldFunctions = new Dictionary <string, FunctionDefinition>();

            foreach (var def in oldScripts.FuncDefs)
            {
                oldFunctions[def.ToString()] = def;
            }

            foreach (var def in newScripts.FuncDefs)
            {
                if (!oldFunctions.ContainsKey(def.ToString()))
                {
                    Console.WriteLine("\n\n\nNew function: " + def);
                    def.DisassembleToConsole();
                }
                else
                {
                    var oldDef = oldFunctions[def.ToString()];
                    if (!oldDef.Equals(def))
                    {
                        Console.WriteLine("\n\n\nChanged function: " + def);
                        Console.WriteLine("Old bytecode: ");
                        oldDef.DisassembleToConsole();
                        Console.WriteLine("New bytecode: ");
                        def.DisassembleToConsole();
                    }
                }
            }
        }
Exemplo n.º 4
0
 public StringConst(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 5
0
 public FinalFunc(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 6
0
 public TypeRef(Opcode opcode, CompiledScriptsFile scripts)
 {
     _opcode = opcode;
     _scripts = scripts;
 }
Exemplo n.º 7
0
 public FinalFunc(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 8
0
 public U16S32(Opcode opcode, CompiledScriptsFile scripts)
 {
     _opcode = opcode;
     _scripts = scripts;
 }
Exemplo n.º 9
0
 public VirtualFunc(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 10
0
 public TypeMember(Opcode opcode, CompiledScriptsFile scripts)
 {
     _opcode  = opcode;
     _scripts = scripts;
 }
Exemplo n.º 11
0
 public Constructor(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 12
0
 public Constructor(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 13
0
 public U16S32(Opcode opcode, CompiledScriptsFile scripts)
 {
     _opcode  = opcode;
     _scripts = scripts;
 }
Exemplo n.º 14
0
 public StringConst(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }
Exemplo n.º 15
0
 public VirtualFunc(CompiledScriptsFile scripts)
 {
     _scripts = scripts;
 }