| Line 130... |
Line 130... |
| 130 |
_lRemoveDirs->pushBack(_packages->getGameRunExe((*itr)->str.toString()), (*itr)->data);
|
130 |
_lRemoveDirs->pushBack(_packages->getGameRunExe((*itr)->str.toString()), (*itr)->data);
|
| 131 |
}
|
131 |
}
|
| 132 |
|
132 |
|
| 133 |
// find other dirs
|
133 |
// find other dirs
|
| 134 |
System::String ^progfile = Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles);
|
134 |
System::String ^progfile = Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles);
|
| 135 |
Utils::CStringList gameDirs;
|
135 |
Utils::WStringList gameDirs;
|
| 136 |
gameDirs.pushBack("HKCU\\Software\\Deepsilver\\X2 The Threat", "INSTALL_DIR");
|
136 |
gameDirs.pushBack(L"HKCU\\Software\\Deepsilver\\X2 The Threat", L"INSTALL_DIR");
|
| 137 |
gameDirs.pushBack("HKCU\\Software\\Deepsilver\\X3 Reunion", "INSTALL_DIR");
|
137 |
gameDirs.pushBack(L"HKCU\\Software\\Deepsilver\\X3 Reunion", L"INSTALL_DIR");
|
| 138 |
gameDirs.pushBack("HKCU\\Software\\Egosoft\\X3TC", "INSTALL_DIR");
|
138 |
gameDirs.pushBack(L"HKCU\\Software\\Egosoft\\X3TC", L"INSTALL_DIR");
|
| 139 |
gameDirs.pushBack("Steam\\x2 - the threat");
|
139 |
gameDirs.pushBack(L"Steam\\x2 - the threat");
|
| 140 |
gameDirs.pushBack("Steam\\x3 - reunion");
|
140 |
gameDirs.pushBack(L"Steam\\x3 - reunion");
|
| 141 |
gameDirs.pushBack("Steam\\x3 terran conflict");
|
141 |
gameDirs.pushBack(L"Steam\\x3 terran conflict");
|
| 142 |
// some custom directories to look for
|
142 |
// some custom directories to look for
|
| 143 |
gameDirs.pushBack("%PROGRAMFILES%\\Egosoft\\X2 The Threat");
|
143 |
gameDirs.pushBack(L"%PROGRAMFILES%\\Egosoft\\X2 The Threat");
|
| 144 |
gameDirs.pushBack("%PROGRAMFILES%\\Egosoft\\X3 Reunion");
|
144 |
gameDirs.pushBack(L"%PROGRAMFILES%\\Egosoft\\X3 Reunion");
|
| 145 |
gameDirs.pushBack("%PROGRAMFILES%\\Egosoft\\X3 Terran Conflict");
|
145 |
gameDirs.pushBack(L"%PROGRAMFILES%\\Egosoft\\X3 Terran Conflict");
|
| 146 |
gameDirs.pushBack("C:\\Games\\X2");
|
146 |
gameDirs.pushBack(L"C:\\Games\\X2");
|
| 147 |
gameDirs.pushBack("C:\\Games\\X3");
|
147 |
gameDirs.pushBack(L"C:\\Games\\X3");
|
| 148 |
gameDirs.pushBack("C:\\Games\\X3TC");
|
148 |
gameDirs.pushBack(L"C:\\Games\\X3TC");
|
| 149 |
gameDirs.pushBack("D:\\Games\\X2");
|
149 |
gameDirs.pushBack(L"D:\\Games\\X2");
|
| 150 |
gameDirs.pushBack("D:\\Games\\X3");
|
150 |
gameDirs.pushBack(L"D:\\Games\\X3");
|
| 151 |
gameDirs.pushBack("D:\\Games\\X3TC");
|
151 |
gameDirs.pushBack(L"D:\\Games\\X3TC");
|
| 152 |
for (Utils::SStringList *strNode = gameDirs.first(); strNode; strNode = gameDirs.next())
|
152 |
for (Utils::WStringNode *strNode = gameDirs.first(); strNode; strNode = gameDirs.next())
|
| 153 |
{
|
153 |
{
|
| 154 |
Utils::String sFirst = strNode->str.token("\\", 1);
|
154 |
Utils::WString sFirst = strNode->str.token(L"\\", 1);
|
| 155 |
Utils::String sRest = strNode->str.tokens("\\", 2);
|
155 |
Utils::WString sRest = strNode->str.tokens(L"\\", 2);
|
| 156 |
|
156 |
|
| 157 |
if (sFirst.Compare("HKCU") || sFirst.Compare("HKLM"))
|
157 |
if (sFirst.Compare(L"HKCU") || sFirst.Compare(L"HKLM"))
|
| 158 |
{
|
158 |
{
|
| 159 |
RegistryKey ^searchKey = nullptr;
|
159 |
RegistryKey ^searchKey = nullptr;
|
| 160 |
if (sFirst.Compare("HKCU"))
|
160 |
if (sFirst.Compare(L"HKCU"))
|
| 161 |
searchKey = Registry::CurrentUser->OpenSubKey(_US(sRest));
|
161 |
searchKey = Registry::CurrentUser->OpenSubKey(_US(sRest));
|
| 162 |
else if (sFirst.Compare("HKLM"))
|
162 |
else if (sFirst.Compare(L"HKLM"))
|
| 163 |
searchKey = Registry::LocalMachine->OpenSubKey(_US(sRest));
|
163 |
searchKey = Registry::LocalMachine->OpenSubKey(_US(sRest));
|
| 164 |
|
164 |
|
| 165 |
if (searchKey)
|
165 |
if (searchKey)
|
| 166 |
{
|
166 |
{
|
| 167 |
System::String ^regRead = System::Convert::ToString(searchKey->GetValue(_US(strNode->data)));
|
167 |
System::String ^regRead = System::Convert::ToString(searchKey->GetValue(_US(strNode->data)));
|
| Line 178... |
Line 178... |
| 178 |
if (regRead)
|
178 |
if (regRead)
|
| 179 |
{
|
179 |
{
|
| 180 |
Utils::WString steamDir = _WS(regRead);
|
180 |
Utils::WString steamDir = _WS(regRead);
|
| 181 |
if (!steamDir.empty())
|
181 |
if (!steamDir.empty())
|
| 182 |
{
|
182 |
{
|
| 183 |
Utils::WString dir = steamDir + L"\\steamapps\\common\\" + sRest.toWString();
|
183 |
Utils::WString dir = steamDir + L"\\steamapps\\common\\" + sRest;
|
| 184 |
AddFoundDir(_packages->GetGameExe()->gameRunExe(dir.findReplace(L"\\", L"/").findReplace(L"//", L"/")));
|
184 |
AddFoundDir(_packages->GetGameExe()->gameRunExe(dir.findReplace(L"\\", L"/").findReplace(L"//", L"/")));
|
| 185 |
}
|
185 |
}
|
| 186 |
}
|
186 |
}
|
| 187 |
}
|
187 |
}
|
| 188 |
}
|
188 |
}
|