diff --git a/OWTrack/Form1.cs b/OWTrack/Form1.cs index a75d396..acc1e58 100644 --- a/OWTrack/Form1.cs +++ b/OWTrack/Form1.cs @@ -50,19 +50,42 @@ namespace OWTrack tr.losses = savedTracker().losses; tr.newSR = savedTracker().newSR; tr.startSR = savedTracker().startSR; + tr.gamePath = savedTracker().gamePath; update(); - } - else MessageBox.Show("no save"); + } } private bool saveExist() { 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 + { + if (!tr.LoacteOW()) + { + getGamePath(); + st.Close(); + } + return true; + } + } + } else { - getGamePath(); + if (!tr.LoacteOW()) + { + getGamePath(); + } return false; } } @@ -84,6 +107,7 @@ namespace OWTrack if (openFileDialog1.ShowDialog() == DialogResult.OK) { tr.gamePath = openFileDialog1.FileName; + update(); } } diff --git a/OWTrack/Tracker.cs b/OWTrack/Tracker.cs index 5f3ca97..7d3479a 100644 --- a/OWTrack/Tracker.cs +++ b/OWTrack/Tracker.cs @@ -2,13 +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; + public string gamePath; public void Track() { } public void reset() { wins = 0; losses = 0; startSR = 0; newSR = 0; } @@ -21,7 +23,6 @@ namespace OWTrack public void setNewSR(int SR) { newSR = SR; } public int srDiff() { return newSR - startSR; } - public bool owRunning() { try @@ -35,6 +36,70 @@ namespace OWTrack Exception ex = new Exception("Error in tracking Overwatch.exe"); throw ex; } - } + } + + /// + /// Not Working! + /// + /// + public bool LoacteOW() + { + try + { + 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) + { + 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) + { + MessageBox.Show(e.Message); + return false; + } + } + + private bool ProgramFilesExist(char drive) + { + return Directory.Exists(drive+":\\Program Files"); + } } }