Changed: Add more checks for data

This commit is contained in:
kervala 2016-05-16 16:30:46 +02:00
parent f80247d891
commit 7277a9bb95

View file

@ -410,11 +410,20 @@ bool CConfigFile::areRyzomDataInstalledIn(const QString &directory) const
// directory doesn't exist
if (!dir.exists()) return false;
if (!dir.cd("data") && dir.exists()) return false;
if (!dir.cd("data") || !dir.exists()) return false;
// at least 200 BNP in data directory
if (dir.entryList(QStringList() << "*.bnp", QDir::Files).size() < 200) return false;
// fonts.bnp is required
if (!dir.exists("fonts.bnp")) return false;
// gamedev.bnp is required
if (!dir.exists("gamedev.bnp")) return false;
// interfaces.bnp is required
if (!dir.exists("interfaces.bnp")) return false;
// TODO: more checks
return true;
@ -550,17 +559,19 @@ CConfigFile::InstallationStep CConfigFile::getNextStep() const
{
// user decided to copy files
// selected directory contains Ryzom files (shouldn't fail)
if (!areRyzomDataInstalledIn(getSrcServerDirectory()))
{
return ShowWizard;
}
// data are not copied
if (!areRyzomDataInstalledIn(serverDirectory))
{
// selected directory contains Ryzom files (shouldn't fail)
if (areRyzomDataInstalledIn(getSrcServerDirectory()))
{
return CopyServerFiles;
}
else
{
return ShowWizard;
}
}
// client is not extracted from BNP
if (!isRyzomClientInstalledIn(serverDirectory))