diff --git a/OWTrack/Form1.cs b/OWTrack/Form1.cs index a75d396..7a628cb 100644 --- a/OWTrack/Form1.cs +++ b/OWTrack/Form1.cs @@ -50,6 +50,7 @@ namespace OWTrack tr.losses = savedTracker().losses; tr.newSR = savedTracker().newSR; tr.startSR = savedTracker().startSR; + tr.gamePath = savedTracker().gamePath; update(); } else MessageBox.Show("no save"); @@ -59,9 +60,27 @@ namespace OWTrack { try { - if (File.Exists(Directory.GetCurrentDirectory() + "/data.json")) { return true; } + if (File.Exists(Directory.GetCurrentDirectory() + "/data.json")) + { + using (StreamReader st = new StreamReader(Directory.GetCurrentDirectory() + "/data.json")) + { + string line = st.ReadLine(); + if (line.Contains("Overwatch.exe")) + { + st.Close(); + return true; + } + else + { + getGamePath(); + st.Close(); + return true; + } + } + } else { + MessageBox.Show("NO data.json"); getGamePath(); return false; } @@ -84,6 +103,7 @@ namespace OWTrack if (openFileDialog1.ShowDialog() == DialogResult.OK) { tr.gamePath = openFileDialog1.FileName; + update(); } } diff --git a/OWTrack/Tracker.cs b/OWTrack/Tracker.cs index 6d5e16f..7d3479a 100644 --- a/OWTrack/Tracker.cs +++ b/OWTrack/Tracker.cs @@ -2,15 +2,15 @@ using System.Diagnostics; using System.Linq; using System.IO; +using System.Windows.Forms; +using System.Collections.Generic; namespace OWTrack { class Tracker { public int wins, losses, startSR, newSR = 0; - public string gamePath; - - private string[] commonDir = ["C:\Program Files","D:\Program Files"]; + public string gamePath; public void Track() { } public void reset() { wins = 0; losses = 0; startSR = 0; newSR = 0; } @@ -23,7 +23,6 @@ namespace OWTrack public void setNewSR(int SR) { newSR = SR; } public int srDiff() { return newSR - startSR; } - public bool owRunning() { try @@ -39,31 +38,68 @@ namespace OWTrack } } - public void LoacteOW() + /// + /// Not Working! + /// + /// + public bool LoacteOW() { try { - string[] files = []; - for (int i = 0; i < commonDir.count; i++) + List paths = new List(); + string[] filesC = null; + string[] filesD = null; + + if (ProgramFilesExist('c')) { filesC = Directory.GetFiles("C:\\Program Files", "Overwatch.exe", SearchOption.AllDirectories); } + if (ProgramFilesExist('d')) { filesD = Directory.GetFiles("D:\\Program Files", "Overwatch.exe", SearchOption.AllDirectories); } + + if (filesC != null) { - files.append(Directory.GetFiles(commonDir[i], "Overwatch*",SearchOption.AllDirectories)); - } - if (files.contians("Overwatch.exe")) - { - foreach (string "*Overwatch.exe" in files) + for (int i = 0; i < filesC.Length; i++) { - + if (filesC[i].Contains("Overwatch.exe")) + { + paths.Add(filesC[i]); + } } } + if (filesD != null) + { + for (int i = 0; i < filesD.Length - 1; i++) + { + if (filesD[i].Contains("Overwatch.exe")) + { + paths.Add(filesD[i]); + } + } + } + + if (paths.Count > 1) + { + //TODO: ask about correct path + return true; + } + + else if (paths.Count == 1) + { + gamePath = paths[0]; + return true; + } + + else return false; + } catch (Exception e) { - MesssageBox.show(e.message); - } - - - - } + MessageBox.Show(e.Message); + return false; + } + } + + private bool ProgramFilesExist(char drive) + { + return Directory.Exists(drive+":\\Program Files"); + } } }