diff --git a/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp b/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp index 06c525053..1ec7364cc 100644 --- a/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp +++ b/code/ryzom/tools/client/ryzom_installer/src/configfile.cpp @@ -593,6 +593,11 @@ bool CConfigFile::areRyzomDataInstalledIn(const QString &directory) const QDir dir(directory); +#ifdef Q_OS_MAC + // under OS X, data are in Ryzom.app/Contents/Resources + if (!dir.cd("Ryzom.app") || !dir.cd("Contents") || !dir.cd("Resources")) return false; +#endif + // directory doesn't exist if (!dir.exists()) return false; @@ -643,6 +648,11 @@ bool CConfigFile::isRyzomClientInstalledIn(const QString &directory) const { // client 3.0+ +#ifdef Q_OS_MAC + // under OS X, client_default.cfg is in Ryzom.app/Contents/Resources + if (!dir.cd("Ryzom.app") || !dir.cd("Contents") || !dir.cd("Resources")) return false; +#endif + // client_default.cfg doesn't exist if (!dir.exists("client_default.cfg")) return false; diff --git a/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp b/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp index 9c84f46cf..4213bec73 100644 --- a/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp +++ b/code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp @@ -547,9 +547,16 @@ void COperationDialog::extractDownloadedData() m_currentOperation = tr("Extracting data required by server %1...").arg(server.name); + QString dest = server.getDirectory(); + +#ifdef Q_OS_MAC + // under OS X, data should be uncompressed in Ryzom.app/Contents/Resources + dest += "/Ryzom.app/Contents/Resources"; +#endif + CFilesExtractor extractor(this); extractor.setSourceFile(config->getInstallationDirectory() + "/" + server.dataDownloadFilename); - extractor.setDestinationDirectory(server.getDirectory()); + extractor.setDestinationDirectory(dest); if (extractor.exec()) {