-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.xaml.cs
81 lines (67 loc) · 2.78 KB
/
App.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System.Data;
using System.IO;
using System.Linq;
using System.Windows;
using System.Xml.Serialization;
namespace MHWRoommates
{
public partial class App : Application
{
private readonly string curDir = Directory.GetCurrentDirectory();
private NPCList npcList;
private void Application_Startup(object sender, StartupEventArgs e)
{
bool skipExeCheck = e.Args.Length > 0 && e.Args[0].Equals("skip-exe-check");
if ((!skipExeCheck && IsMonHunEXEMissing()) || IsReqdFilesMissing()) return;
LoadNPCList();
MainWindow mainWindow = new MainWindow(npcList);
EditRoomsWindow editRoomsWindow = new EditRoomsWindow(npcList);
mainWindow.Show();
editRoomsWindow.Owner = mainWindow;
editRoomsWindow.Top = mainWindow.Top + mainWindow.Height;
editRoomsWindow.Left = mainWindow.Left;
editRoomsWindow.Show();
}
private void LoadNPCList()
{
XmlSerializer serializer = new XmlSerializer(typeof(NPCList));
using (FileStream fileStream = new FileStream(RMFiles.NPCLIST, FileMode.Open))
{
npcList = (NPCList)serializer.Deserialize(fileStream);
}
npcList.setNPCIndexes();
}
private bool IsMonHunEXEMissing()
{
bool monHunEXEMissing = false;
string[] parentDirFiles = Directory.GetFiles(Directory.GetParent(curDir).FullName);
string[] parentFileNames = parentDirFiles.Select(file => Path.GetFileName(file)).ToArray();
if (!parentFileNames.Contains("MonsterHunterWorld.exe"))
{
monHunEXEMissing = true;
const string errorMessage = "\"MonsterHunterWorld.exe\" not found in parent directory!";
MessageBox.Show(errorMessage, "MonHun EXE Missing!", MessageBoxButton.OK, MessageBoxImage.Error);
}
return monHunEXEMissing;
}
private bool IsReqdFilesMissing()
{
bool isMissingFile = false;
string missingFile = "";
if (!File.Exists(RMFiles.FSM)) { missingFile = RMFiles.FSM; }
else
if (!File.Exists(RMFiles.SOBJ)) { missingFile = RMFiles.SOBJ; }
else
if (!File.Exists(RMFiles.SOBJL)) { missingFile = RMFiles.SOBJL; }
else
if (!File.Exists(RMFiles.NPCLIST)) { missingFile = RMFiles.NPCLIST; }
if (!missingFile.Equals(""))
{
isMissingFile = true;
MessageBox.Show($"\"{missingFile}\" not found!", "Important File Missing!",
MessageBoxButton.OK, MessageBoxImage.Error);
}
return isMissingFile;
}
}
}