public static void INIT() { using (MemoryStream mem = new MemoryStream(DDResource.Load(@"Etoile\G4YokoActTM\World.csv"))) using (StreamReader memReader = new StreamReader(mem, StringTools.ENCODING_SJIS)) using (CsvFileReader reader = new CsvFileReader(memReader)) { Rows = reader.ReadToEnd(); } W = ArrayTools.Largest(Rows.Select(row => row.Length), IntTools.Comp); H = Rows.Length; }
private string[] WrapScript(string[] lines) { List <string> before = new List <string>(); List <string> scriptLines = new List <string>(); List <string> after = new List <string>(); List <string> dest = before; foreach (string line in lines) { if (line == "// @encodeBgn") { dest = scriptLines; } else if (line == "// @encodeEnd") { dest = after; } else { dest.Add(line); } } string script = string.Join("\r\n", scriptLines); if (script != "") { script = ScriptToBase64(script); char m = ArrayTools.Largest((StringTools.DECIMAL + StringTools.ALPHA + StringTools.alpha) .Where(v => script[0] != v && script[script.Length - 1] != v) // 2bs .Select(v => new { c = v, n = script.Where(w => w == v).Count() }), (a, b) => a.n - b.n).c; script = string.Join("" + m, script.Split(m).Reverse()); script = "var s=\"" + script + "\",m=\"" + m + "\";" + ScriptEscape("eval(decodeURIComponent(escape(atob(s.split(m).reverse().join(m)))));"); } dest = new List <string>(); dest.AddRange(before); dest.Add(script); dest.AddRange(after); return(dest.ToArray()); }
public string Wrap(string code) { code = CodeToBase64(code); char m = ArrayTools.Largest(B64CODE_CHARS .Where(v => code[0] != v && code[code.Length - 1] != v) // 2bs .Select(v => new { c = v, n = code.Where(w => w == v).Count() }), (a, b) => a.n - b.n).c; code = string.Join("" + m, code.Split(m).Reverse()); code = "var s=\"" + code + "\",m=\"" + m + "\";" + CodeEscape("eval(decodeURIComponent(escape(atob(s.split(m).reverse().join(m)))));"); return code; }