예제 #1
0
 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;
 }
예제 #2
0
        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());
        }
예제 #3
0
        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;
        }