From 10e88866f5206bd9669dcb33fd1ce13ca9dcc81e Mon Sep 17 00:00:00 2001
From: BubbaGumpShrump <joshua.p.farrell@gmail.com>
Date: Wed, 4 Dec 2024 22:41:56 -0500
Subject: [PATCH] File save updates

---
 AutoTrackR2/AutoTrackR2.csproj        |  4 +++
 AutoTrackR2/ConfigPage.xaml.cs        | 17 +++++++++---
 AutoTrackR2/KillTrackR_MainScript.ps1 |  3 +-
 AutoTrackR2/MainWindow.xaml.cs        | 40 +++++++++++++++++++--------
 AutoTrackR2/config.ini                |  8 ++++++
 AutoTrackR2/kill-log.csv              |  0
 6 files changed, 55 insertions(+), 17 deletions(-)
 create mode 100644 AutoTrackR2/config.ini
 create mode 100644 AutoTrackR2/kill-log.csv

diff --git a/AutoTrackR2/AutoTrackR2.csproj b/AutoTrackR2/AutoTrackR2.csproj
index 95c6ad6..6c6c944 100644
--- a/AutoTrackR2/AutoTrackR2.csproj
+++ b/AutoTrackR2/AutoTrackR2.csproj
@@ -17,8 +17,10 @@
     <None Remove="Assets\NW.png" />
     <None Remove="Assets\VOX.png" />
     <None Remove="Assets\WRITH.jpg" />
+    <None Remove="config.ini" />
     <None Remove="Fonts\Orbitron-Bold.ttf" />
     <None Remove="Fonts\Roboto-Regular.ttf" />
+    <None Remove="kill-log.csv" />
     <None Remove="KillTrackR_MainScript.ps1" />
   </ItemGroup>
 
@@ -45,12 +47,14 @@
     <Resource Include="Assets\WRITH.jpg">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Resource>
+    <Resource Include="config.ini" />
     <Resource Include="Fonts\Orbitron-Bold.ttf">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Resource>
     <Resource Include="Fonts\Roboto-Regular.ttf">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Resource>
+    <Resource Include="kill-log.csv" />
     <EmbeddedResource Include="KillTrackR_MainScript.ps1">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </EmbeddedResource>
diff --git a/AutoTrackR2/ConfigPage.xaml.cs b/AutoTrackR2/ConfigPage.xaml.cs
index fe6dfa4..c359ff8 100644
--- a/AutoTrackR2/ConfigPage.xaml.cs
+++ b/AutoTrackR2/ConfigPage.xaml.cs
@@ -350,11 +350,20 @@ namespace AutoTrackR2
 
         private void SaveButton_Click(object sender, RoutedEventArgs e)
         {
-            // Get the directory of the running executable
-            string exeDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
+            // Get the directory for the user's local application data
+            string appDataDirectory = Path.Combine(
+                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+                "AutoTrackR2"
+            );
 
-            // Combine the executable directory with the config file name
-            string configFilePath = Path.Combine(exeDirectory, "config.ini");
+            // Ensure the directory exists
+            if (!Directory.Exists(appDataDirectory))
+            {
+                Directory.CreateDirectory(appDataDirectory);
+            }
+
+            // Combine the app data directory with the config file name
+            string configFilePath = Path.Combine(appDataDirectory, "config.ini");
 
             using (StreamWriter writer = new StreamWriter(configFilePath))
             {
diff --git a/AutoTrackR2/KillTrackR_MainScript.ps1 b/AutoTrackR2/KillTrackR_MainScript.ps1
index 2076965..dfc6d37 100644
--- a/AutoTrackR2/KillTrackR_MainScript.ps1
+++ b/AutoTrackR2/KillTrackR_MainScript.ps1
@@ -1,7 +1,8 @@
 $TrackRver = "2.0"
 
 # Path to the config file
-$scriptFolder = Split-Path -Parent $MyInvocation.MyCommand.Path
+$appName = "AutoTrackR2"
+$scriptFolder = Join-Path -Path (Join-Path -Path $env:LOCALAPPDATA -ChildPath $appName)
 $configFile = Join-Path -Path $scriptFolder -ChildPath "config.ini"
 
 # Read the config file into a hashtable
diff --git a/AutoTrackR2/MainWindow.xaml.cs b/AutoTrackR2/MainWindow.xaml.cs
index 4623129..aa0d46c 100644
--- a/AutoTrackR2/MainWindow.xaml.cs
+++ b/AutoTrackR2/MainWindow.xaml.cs
@@ -188,8 +188,12 @@ namespace AutoTrackR2
 
         public static void LoadConfig()
         {
-            string exeDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
-            string configFilePath = Path.Combine(exeDirectory, "config.ini");
+            // Define the config file path in a writable location
+            string configDirectory = Path.Combine(
+                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+                "AutoTrackR2"
+            );
+            string configFilePath = Path.Combine(configDirectory, "config.ini");
 
             if (File.Exists(configFilePath))
             {
@@ -217,19 +221,31 @@ namespace AutoTrackR2
 
         public static void SaveConfig()
         {
-            string exeDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
-            string configFilePath = Path.Combine(exeDirectory, "config.ini");
+            // Define the config file path in a writable location
+            string configDirectory = Path.Combine(
+                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+                "YourAppName"
+            );
 
+            // Ensure the directory exists
+            if (!Directory.Exists(configDirectory))
+            {
+                Directory.CreateDirectory(configDirectory);
+            }
+
+            string configFilePath = Path.Combine(configDirectory, "config.ini");
+
+            // Write the configuration to the file
             using (StreamWriter writer = new StreamWriter(configFilePath))
             {
-                writer.WriteLine($"LogFile=\"{LogFile}\"");
-                writer.WriteLine($"ApiUrl=\"{ApiUrl}\"");
-                writer.WriteLine($"ApiKey=\"{ApiKey}\"");
-                writer.WriteLine($"VideoPath=\"{VideoPath}\"");
-                writer.WriteLine($"VisorWipe=\"{VisorWipe}\"");
-                writer.WriteLine($"VideoRecord=\"{VideoRecord}\"");
-                writer.WriteLine($"OfflineMode=\"{OfflineMode}\"");
-                writer.WriteLine($"Theme=\"{Theme}\"");
+                writer.WriteLine($"LogFile={LogFile}");
+                writer.WriteLine($"ApiUrl={ApiUrl}");
+                writer.WriteLine($"ApiKey={ApiKey}");
+                writer.WriteLine($"VideoPath={VideoPath}");
+                writer.WriteLine($"VisorWipe={VisorWipe}");
+                writer.WriteLine($"VideoRecord={VideoRecord}");
+                writer.WriteLine($"OfflineMode={OfflineMode}");
+                writer.WriteLine($"Theme={Theme}");
             }
         }
     }
diff --git a/AutoTrackR2/config.ini b/AutoTrackR2/config.ini
new file mode 100644
index 0000000..0f01f82
--- /dev/null
+++ b/AutoTrackR2/config.ini
@@ -0,0 +1,8 @@
+LogFile=
+ApiUrl=
+ApiKey=
+VideoPath=
+VisorWipe=0
+VideoRecord=0
+OfflineMode=0
+Theme=0
diff --git a/AutoTrackR2/kill-log.csv b/AutoTrackR2/kill-log.csv
new file mode 100644
index 0000000..e69de29