Esempio n. 1
0
        public void SaveScripts()
        {
            var archive = ZipFile.OpenRead("Data/SteinsGateELITE.zip");

            foreach (var entry in archive.Entries)
            {
                using (var fileStream = OpenScript(entry))
                {
                    SC3Module module = null;

                    try {
                        module = SC3Module.Load(fileStream);
                    } catch {
                        Debug.WriteLine("#### open file Error : " + entry.FullName);

                        continue;
                    }

                    var modTextFile = new StreamWriter("C:/Users/jpkim/Desktop/extractTest/" + entry.FullName + ".txt");

                    foreach (var stringHandle in module.StringTable)
                    {
                        modTextFile.WriteLine(stringHandle.Resolve());
                    }

                    modTextFile.Close();
                }
            }
        }
Esempio n. 2
0
        public void ApplyMailTextModify()
        {
            using (var fileStream = OpenScript(File.Open("C:/Users/mike/Desktop/SteinsGateELITE/_mail.scx", FileMode.Open)))
            {
                SC3Module module = SC3Module.Load(fileStream);

                var modTextFile = new StreamReader("C:/dev/sg_kor_proj/sge-script/_mail.scx.txt");

                foreach (var stringHandle in module.StringTable)
                {
                    var text = modTextFile.ReadLine();

                    //Debug.WriteLine(stringHandle.Resolve());
                    //Debug.WriteLine(text);

                    if (text != null)
                    {
                        module.UpdateString(stringHandle.Id, SC3String.Deserialize("aa"));
                    }
                }

                module.ApplyPendingUpdates();

                using (var fileStream2 = File.Create("C:/Users/mike/Desktop/extractTest/_mail.scx"))
                {
                    fileStream.Seek(0, SeekOrigin.Begin);
                    fileStream.CopyTo(fileStream2);
                }

                modTextFile.Close();
            }
        }
Esempio n. 3
0
        public void DecodingStringsWorks()
        {
            var archive = ZipFile.OpenRead("Data/SteinsGateHD.zip");

            foreach (var entry in archive.Entries)
            {
                using (var fileStream = OpenScript(entry))
                {
                    SC3Module module = SC3Module.Load(fileStream);
                    foreach (var stringHandle in module.StringTable)
                    {
                        stringHandle.Resolve();
                    }
                }
            }
        }
Esempio n. 4
0
        public void ApplyTextModify()
        {
            var archive = ZipFile.OpenRead("Data/SteinsGateELITE.zip");

            foreach (var entry in archive.Entries)
            {
                using (var fileStream = OpenScript(entry))
                {
                    SC3Module module = null;

                    try {
                        module = SC3Module.Load(fileStream);
                    } catch {
                        Debug.WriteLine("#### open file Error : " + entry.FullName);

                        continue;
                    }

                    Debug.WriteLine("#### " + entry.FullName);

                    var modTextFile = new StreamReader("D:/dev/sge-script/" + entry.FullName + ".txt");

                    foreach (var stringHandle in module.StringTable)
                    {
                        var text = modTextFile.ReadLine();

                        //Debug.WriteLine("orig : " + stringHandle.Resolve());
                        //Debug.WriteLine("targ : " + text);

                        if (text != null)
                        {
                            module.UpdateString(stringHandle.Id, SC3String.Deserialize(text));
                        }
                    }

                    module.ApplyPendingUpdates();

                    using (var fileStream2 = File.Create("C:/Users/jpkim/Desktop/script_orig/" + entry.FullName))
                    {
                        fileStream.Seek(0, SeekOrigin.Begin);
                        fileStream.CopyTo(fileStream2);
                    }

                    modTextFile.Close();
                }
            }
        }
Esempio n. 5
0
        private void DecodeStrings()
        {
            var strings = new List <GameStringViewModel>();

            Module = SC3Module.Load(FilePath);
            foreach (var handle in Module.StringTable)
            {
                var sc3String = handle.Resolve();

                string characterName = sc3String.GetCharacterName().ToString(normalize: true);
                string line          = sc3String.GetDialogueLine().ToString(normalize: true);

                strings.Add(new GameStringViewModel(handle.Id, handle.Offset, characterName, line));
            }

            Strings = strings;
        }
Esempio n. 6
0
        public void DecodingStringsWorks()
        {
            var archive = ZipFile.OpenRead("Data/SteinsGateELITE.zip");

            foreach (var entry in archive.Entries)
            {
                using (var fileStream = OpenScript(entry))
                {
                    SC3Module module = SC3Module.Load(fileStream);

                    Debug.WriteLine("#### " + entry.FullName);

                    foreach (var stringHandle in module.StringTable)
                    {
                        Debug.WriteLine("## " + stringHandle.Id + " : " + stringHandle.Resolve());
                    }
                }
            }
        }
Esempio n. 7
0
 internal StringReference(SC3Module module, int stringId)
     : base(module)
 {
     StringId = stringId;
 }
Esempio n. 8
0
 internal DataBlockReference(SC3Module module, Expression blockId)
     : base(module)
 {
 }
Esempio n. 9
0
 public CodeBlockDefinition Resove(SC3Module externalModule) => externalModule.Blocks[BlockId].AsCode();
Esempio n. 10
0
 internal Reference(SC3Module module)
 {
     Module = module;
 }
Esempio n. 11
0
 internal ExternalCodeBlockReference(SC3Module module, int blockId)
     : base(module)
 {
     BlockId = blockId;
 }
Esempio n. 12
0
 internal LabelReference(SC3Module module)
     : base(module)
 {
 }