diff --git a/ScriptTool/ScriptToolGui/Config.cs b/ScriptTool/ScriptToolGui/Config.cs new file mode 100644 index 0000000..931d921 --- /dev/null +++ b/ScriptTool/ScriptToolGui/Config.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; +using Newtonsoft.Json; + +namespace ScriptToolGui +{ + class Config + { + public string WorkingFolder { get; set; } + + public static Config Read(string configPath) + { + if (!File.Exists(configPath)) + return null; + + return JsonConvert.DeserializeObject(File.ReadAllText(configPath)); + } + } +} diff --git a/ScriptTool/ScriptToolGui/MainForm.cs b/ScriptTool/ScriptToolGui/MainForm.cs index a351355..7836858 100644 --- a/ScriptTool/ScriptToolGui/MainForm.cs +++ b/ScriptTool/ScriptToolGui/MainForm.cs @@ -15,8 +15,10 @@ namespace ScriptToolGui { public partial class MainForm : Form { + // Config + Config config; + // Static/const members - const string workingFolder = @"..\..\..\..\working"; static Compiler m12Compiler = new Compiler(M12ControlCode.Codes, (rom, address) => rom[address + 1] == 0xFF); static Compiler ebCompiler = new Compiler(EbControlCode.Codes, (rom, address) => rom[address] < 0x20); static readonly Game[] validGames; @@ -72,7 +74,9 @@ namespace ScriptToolGui public MainForm() { InitializeComponent(); - + + config = Config.Read("config.json"); + previewer.M12Compiler = m12Compiler; previewer.CharLookup = ebCharLookup; @@ -201,15 +205,15 @@ namespace ScriptToolGui private MainStringRef[] ImportStringRefs(string fileName) { - string jsonString = File.ReadAllText(Path.Combine(workingFolder, fileName)); + string jsonString = File.ReadAllText(Path.Combine(config.WorkingFolder, fileName)); return JsonConvert.DeserializeObject(jsonString); } private void ImportAllStrings() { - string m12FileName = Path.Combine(workingFolder, "m12-strings.txt"); - string m12EnglishFileName = Path.Combine(workingFolder, "m12-strings-english.txt"); - string ebFileName = Path.Combine(workingFolder, "eb-strings.txt"); + string m12FileName = Path.Combine(config.WorkingFolder, "m12-strings.txt"); + string m12EnglishFileName = Path.Combine(config.WorkingFolder, "m12-strings-english.txt"); + string ebFileName = Path.Combine(config.WorkingFolder, "eb-strings.txt"); m12Strings = ImportStrings(m12FileName); m12StringsEnglish = ImportStrings(m12EnglishFileName); @@ -526,7 +530,7 @@ namespace ScriptToolGui { //if (changesMade) { - using (StreamWriter sw = File.CreateText(Path.Combine(workingFolder, "m12-strings-english.txt"))) + using (StreamWriter sw = File.CreateText(Path.Combine(config.WorkingFolder, "m12-strings-english.txt"))) { foreach (string line in m12StringsEnglish) { diff --git a/ScriptTool/ScriptToolGui/ScriptToolGui.csproj b/ScriptTool/ScriptToolGui/ScriptToolGui.csproj index 91c60d5..0d97a4c 100644 --- a/ScriptTool/ScriptToolGui/ScriptToolGui.csproj +++ b/ScriptTool/ScriptToolGui/ScriptToolGui.csproj @@ -49,6 +49,7 @@ + @@ -85,6 +86,9 @@ StringPreviewer.cs + + Always + SettingsSingleFileGenerator diff --git a/ScriptTool/ScriptToolGui/config.json b/ScriptTool/ScriptToolGui/config.json new file mode 100644 index 0000000..fefac35 --- /dev/null +++ b/ScriptTool/ScriptToolGui/config.json @@ -0,0 +1,3 @@ +{ + "WorkingFolder": "..\\..\\..\\..\\working" +} \ No newline at end of file