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");
+ }
}
}