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(); } } }
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(); } }
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(); } } } }
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(); } } }
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; }
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()); } } } }
internal StringReference(SC3Module module, int stringId) : base(module) { StringId = stringId; }
internal DataBlockReference(SC3Module module, Expression blockId) : base(module) { }
public CodeBlockDefinition Resove(SC3Module externalModule) => externalModule.Blocks[BlockId].AsCode();
internal Reference(SC3Module module) { Module = module; }
internal ExternalCodeBlockReference(SC3Module module, int blockId) : base(module) { BlockId = blockId; }
internal LabelReference(SC3Module module) : base(module) { }