public string GetDecompiledText(UndertaleCode code, GlobalDecompileContext context = null) { string output = "GetDecompiledText(): " + code?.ToString(); Console.Write(output); return(output); }
public string GetDecompiledText(string codeName, GlobalDecompileContext context = null) { string output = "GetDecompiledText(): " + codeName; Console.Write(output); return(output); }
public void ReplaceTextInGML(UndertaleCode code, string keyword, string replacement, bool caseSensitive = false, bool isRegex = false, GlobalDecompileContext context = null) { EnsureDataLoaded(); string passBack = ""; string codeName = code.Name.Content; GlobalDecompileContext DECOMPILE_CONTEXT = context is null ? new(Data, false) : context; if (!Data.ToolInfo.ProfileMode) { try { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, DECOMPILE_CONTEXT) : ""), keyword, replacement, caseSensitive, isRegex); code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc.ToString()); } } else { try { string path = Path.Combine(ProfilesFolder, Data.ToolInfo.CurrentMD5, "Temp", codeName + ".gml"); if (File.Exists(path)) { passBack = GetPassBack(File.ReadAllText(path), keyword, replacement, caseSensitive, isRegex); File.WriteAllText(path, passBack); code.ReplaceGML(passBack, Data); } else { try { if (context is null) { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, new GlobalDecompileContext(Data, false)) : ""), keyword, replacement, caseSensitive, isRegex); } else { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, context) : ""), keyword, replacement, caseSensitive, isRegex); } code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc.ToString()); } } } catch (Exception exc) { throw new Exception("Error during writing of GML code to profile:\n" + exc.ToString() + "\n\nCode:\n\n" + passBack); } } }
public string GetDecompiledText(UndertaleCode code, GlobalDecompileContext context = null) { GlobalDecompileContext DECOMPILE_CONTEXT = context is null ? new(Data, false) : context; try { return(code != null?Decompiler.Decompile(code, DECOMPILE_CONTEXT) : ""); } catch (Exception e) { return("/*\nDECOMPILER FAILED!\n\n" + e.ToString() + "\n*/"); } }
/// <inheritdoc/> public void ReplaceTextInGML(UndertaleCode code, string keyword, string replacement, bool caseSensitive = false, bool isRegex = false, GlobalDecompileContext context = null) { if (code == null) { throw new ArgumentNullException(nameof(code)); } EnsureDataLoaded(); string passBack = ""; GlobalDecompileContext decompileContext = context is null ? new(Data, false) : context; if (!Data.ToolInfo.ProfileMode) { try { passBack = GetPassBack(Decompiler.Decompile(code, decompileContext), keyword, replacement, caseSensitive, isRegex); code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc); } } else if (Data.ToolInfo.ProfileMode) { try { try { if (context is null) { passBack = GetPassBack(Decompiler.Decompile(code, new GlobalDecompileContext(Data, false)), keyword, replacement, caseSensitive, isRegex); } else { passBack = GetPassBack(Decompiler.Decompile(code, context), keyword, replacement, caseSensitive, isRegex); } code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc); } } catch (Exception exc) { throw new Exception("Error during writing of GML code to profile:\n" + exc + "\n\nCode:\n\n" + passBack); } } }
public void ReplaceTextInGML(UndertaleCode code, string keyword, string replacement, bool case_sensitive = false, bool isRegex = false, GlobalDecompileContext context = null) { EnsureDataLoaded(); string passBack = ""; string codeName = code.Name.Content; GlobalDecompileContext DECOMPILE_CONTEXT = context is null ? new(Data, false) : context; if (Data.ToolInfo.ProfileMode == false || Data.GMS2_3) { try { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, DECOMPILE_CONTEXT) : ""), keyword, replacement, case_sensitive, isRegex); code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc.ToString()); } } else if (Data.ToolInfo.ProfileMode && !Data.GMS2_3) { try { try { if (context is null) { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, new GlobalDecompileContext(Data, false)) : ""), keyword, replacement, case_sensitive, isRegex); } else { passBack = GetPassBack((code != null ? Decompiler.Decompile(code, context) : ""), keyword, replacement, case_sensitive, isRegex); } code.ReplaceGML(passBack, Data); } catch (Exception exc) { throw new Exception("Error during GML code replacement:\n" + exc.ToString()); } } catch (Exception exc) { throw new Exception("Error during writing of GML code to profile:\n" + exc.ToString() + "\n\nCode:\n\n" + passBack); } } }
public void DecompileAllScripts() { GlobalDecompileContext context = new GlobalDecompileContext(data, true); Parallel.ForEach(data.Code, (code) => { //Console.WriteLine(code.Name.Content); try { Decompiler.Decompile(code, context); } catch (Exception e) { throw new Exception("Failed to decompile script " + code.Name.Content, e); } }); }
public string GetDecompiledText(string codeName, GlobalDecompileContext context = null) { return(GetDecompiledText(Data.Code.ByName(codeName), context)); }
public void ReplaceTextInGML(string codeName, string keyword, string replacement, bool case_sensitive = false, bool isRegex = false, GlobalDecompileContext context = null) { UndertaleCode code = Data.Code.ByName(codeName); if (code is null) { throw new ScriptException($"No code named \"{codeName}\" was found!"); } ReplaceTextInGML(code, keyword, replacement, case_sensitive, isRegex, context); }
public void ReplaceTextInGML(UndertaleCode code, string keyword, string replacement, bool caseSensitive = false, bool isRegex = false, GlobalDecompileContext context = null) { Console.Write("ReplaceTextInGML(): " + code.ToString() + ", " + keyword + ", " + replacement + ", " + caseSensitive.ToString() + ", " + isRegex.ToString() + ", " + context?.ToString()); }