added ability to read GTA V game language
This commit is contained in:
parent
c29cc44717
commit
39f20aca9d
30 changed files with 3131 additions and 1856 deletions
286
AppEnv.cpp
286
AppEnv.cpp
|
|
@ -206,6 +206,292 @@ QUrl AppEnv::getPlayerFetchingUrl(QString crewID, int pageNumber)
|
|||
return getPlayerFetchingUrl(crewID, QString::number(pageNumber));
|
||||
}
|
||||
|
||||
// Game Stuff
|
||||
|
||||
GameVersion AppEnv::getGameVersion()
|
||||
{
|
||||
#ifdef GTA5SYNC_WIN
|
||||
QString argumentValue;
|
||||
#ifdef _WIN64
|
||||
argumentValue = "\\WOW6432Node";
|
||||
#endif
|
||||
QSettings registrySettingsSc(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\Grand Theft Auto V").arg(argumentValue), QSettings::NativeFormat);
|
||||
QString installFolderSc = registrySettingsSc.value("InstallFolder", "").toString();
|
||||
QDir installFolderScDir(installFolderSc);
|
||||
bool scVersionInstalled = false;
|
||||
if (!installFolderSc.isEmpty() && installFolderScDir.exists())
|
||||
{
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "gameVersionFoundSocialClubVersion";
|
||||
#endif
|
||||
scVersionInstalled = true;
|
||||
}
|
||||
|
||||
QSettings registrySettingsSteam(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\GTAV").arg(argumentValue), QSettings::NativeFormat);
|
||||
QString installFolderSteam = registrySettingsSteam.value("installfoldersteam", "").toString();
|
||||
if (installFolderSteam.right(5) == "\\GTAV")
|
||||
{
|
||||
installFolderSteam = installFolderSteam.remove(installFolderSteam.length() - 5, 5);
|
||||
}
|
||||
QDir installFolderSteamDir(installFolderSteam);
|
||||
bool steamVersionInstalled = false;
|
||||
if (!installFolderSteam.isEmpty() && installFolderSteamDir.exists())
|
||||
{
|
||||
#ifdef GTA5SYNC_DEBUG
|
||||
qDebug() << "gameVersionFoundSteamVersion";
|
||||
#endif
|
||||
steamVersionInstalled = true;
|
||||
}
|
||||
|
||||
if (scVersionInstalled && steamVersionInstalled)
|
||||
{
|
||||
return GameVersion::BothVersions;
|
||||
}
|
||||
else if (scVersionInstalled)
|
||||
{
|
||||
return GameVersion::SocialClubVersion;
|
||||
}
|
||||
else if (steamVersionInstalled)
|
||||
{
|
||||
return GameVersion::SteamVersion;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GameVersion::NoVersion;
|
||||
}
|
||||
#else
|
||||
return GameVersion::NoVersion;
|
||||
#endif
|
||||
}
|
||||
|
||||
GameLanguage AppEnv::getGameLanguage(GameVersion gameVersion)
|
||||
{
|
||||
if (gameVersion == GameVersion::SocialClubVersion)
|
||||
{
|
||||
#ifdef GTA5SYNC_WIN
|
||||
QString argumentValue;
|
||||
#ifdef _WIN64
|
||||
argumentValue = "\\WOW6432Node";
|
||||
#endif
|
||||
QSettings registrySettingsSc(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\Grand Theft Auto V").arg(argumentValue), QSettings::NativeFormat);
|
||||
QString languageSc = registrySettingsSc.value("Language", "").toString();
|
||||
return gameLanguageFromString(languageSc);
|
||||
#else
|
||||
return GameLanguage::Undefined;
|
||||
#endif
|
||||
}
|
||||
else if (gameVersion == GameVersion::SteamVersion)
|
||||
{
|
||||
#ifdef GTA5SYNC_WIN
|
||||
QString argumentValue;
|
||||
#ifdef _WIN64
|
||||
argumentValue = "\\WOW6432Node";
|
||||
#endif
|
||||
QSettings registrySettingsSteam(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\Grand Theft Auto V Steam").arg(argumentValue), QSettings::NativeFormat);
|
||||
QString languageSteam = registrySettingsSteam.value("Language", "").toString();
|
||||
return gameLanguageFromString(languageSteam);
|
||||
#else
|
||||
return GameLanguage::Undefined;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
return GameLanguage::Undefined;
|
||||
}
|
||||
}
|
||||
|
||||
GameLanguage AppEnv::gameLanguageFromString(QString gameLanguage)
|
||||
{
|
||||
if (gameLanguage == "en-US")
|
||||
{
|
||||
return GameLanguage::English;
|
||||
}
|
||||
else if (gameLanguage == "fr-FR")
|
||||
{
|
||||
return GameLanguage::French;
|
||||
}
|
||||
else if (gameLanguage == "it-IT")
|
||||
{
|
||||
return GameLanguage::Italian;
|
||||
}
|
||||
else if (gameLanguage == "de-DE")
|
||||
{
|
||||
return GameLanguage::German;
|
||||
}
|
||||
else if (gameLanguage == "es-ES")
|
||||
{
|
||||
return GameLanguage::Spanish;
|
||||
}
|
||||
else if (gameLanguage == "es-MX")
|
||||
{
|
||||
return GameLanguage::Mexican;
|
||||
}
|
||||
else if (gameLanguage == "pt-BR")
|
||||
{
|
||||
return GameLanguage::Brasilian;
|
||||
}
|
||||
else if (gameLanguage == "ru-RU")
|
||||
{
|
||||
return GameLanguage::Russian;
|
||||
}
|
||||
else if (gameLanguage == "pl-PL")
|
||||
{
|
||||
return GameLanguage::Polish;
|
||||
}
|
||||
else if (gameLanguage == "ja-JP")
|
||||
{
|
||||
return GameLanguage::Japanese;
|
||||
}
|
||||
else if (gameLanguage == "zh-CHS")
|
||||
{
|
||||
return GameLanguage::SChinese;
|
||||
}
|
||||
else if (gameLanguage == "zh-CHT")
|
||||
{
|
||||
return GameLanguage::TChinese;
|
||||
}
|
||||
else if (gameLanguage == "ko-KR")
|
||||
{
|
||||
return GameLanguage::Koreana;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GameLanguage::Undefined;
|
||||
}
|
||||
}
|
||||
|
||||
QString AppEnv::gameLanguageToString(GameLanguage gameLanguage)
|
||||
{
|
||||
if (gameLanguage == GameLanguage::English)
|
||||
{
|
||||
return "en-US";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::French)
|
||||
{
|
||||
return "fr-FR";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Italian)
|
||||
{
|
||||
return "it-IT";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::German)
|
||||
{
|
||||
return "de-DE";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Spanish)
|
||||
{
|
||||
return "es-ES";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Mexican)
|
||||
{
|
||||
return "es-MX";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Brasilian)
|
||||
{
|
||||
return "pt-BR";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Russian)
|
||||
{
|
||||
return "ru-RU";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Polish)
|
||||
{
|
||||
return "pl-PL";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Japanese)
|
||||
{
|
||||
return "ja-JP";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::SChinese)
|
||||
{
|
||||
return "zh-CHS";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::TChinese)
|
||||
{
|
||||
return "zh-CHT";
|
||||
}
|
||||
else if (gameLanguage == GameLanguage::Koreana)
|
||||
{
|
||||
return "ko-KR";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Undefinied";
|
||||
}
|
||||
}
|
||||
|
||||
bool AppEnv::setGameLanguage(GameVersion gameVersion, GameLanguage gameLanguage)
|
||||
{
|
||||
bool socialClubVersion = false;
|
||||
bool steamVersion = false;
|
||||
if (gameVersion == GameVersion::SocialClubVersion)
|
||||
{
|
||||
socialClubVersion = true;
|
||||
}
|
||||
else if (gameVersion == GameVersion::SteamVersion)
|
||||
{
|
||||
steamVersion = true;
|
||||
}
|
||||
else if (gameVersion == GameVersion::BothVersions)
|
||||
{
|
||||
socialClubVersion = true;
|
||||
steamVersion = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (socialClubVersion)
|
||||
{
|
||||
#ifdef GTA5SYNC_WIN
|
||||
QString argumentValue;
|
||||
#ifdef _WIN64
|
||||
argumentValue = "\\WOW6432Node";
|
||||
#endif
|
||||
QSettings registrySettingsSc(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\Grand Theft Auto V").arg(argumentValue), QSettings::NativeFormat);
|
||||
if (gameLanguage != GameLanguage::Undefined)
|
||||
{
|
||||
registrySettingsSc.setValue("Language", gameLanguageToString(gameLanguage));
|
||||
}
|
||||
else
|
||||
{
|
||||
registrySettingsSc.remove("Language");
|
||||
}
|
||||
registrySettingsSc.sync();
|
||||
if (registrySettingsSc.status() != QSettings::NoError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (steamVersion)
|
||||
{
|
||||
#ifdef GTA5SYNC_WIN
|
||||
QString argumentValue;
|
||||
#ifdef _WIN64
|
||||
argumentValue = "\\WOW6432Node";
|
||||
#endif
|
||||
QSettings registrySettingsSteam(QString("HKEY_LOCAL_MACHINE\\SOFTWARE%1\\Rockstar Games\\Grand Theft Auto V Steam").arg(argumentValue), QSettings::NativeFormat);
|
||||
if (gameLanguage != GameLanguage::Undefined)
|
||||
{
|
||||
registrySettingsSteam.setValue("Language", gameLanguageToString(gameLanguage));
|
||||
}
|
||||
else
|
||||
{
|
||||
registrySettingsSteam.remove("Language");
|
||||
}
|
||||
registrySettingsSteam.sync();
|
||||
if (registrySettingsSteam.status() != QSettings::NoError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Screen Stuff
|
||||
|
||||
qreal AppEnv::screenRatio()
|
||||
{
|
||||
#if QT_VERSION >= 0x050000
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue