change project extension to noggitproj

also pushed client database onto the project level
This commit is contained in:
Alister
2021-12-23 11:54:09 +00:00
parent cecee42ffc
commit bc6f62d047
2 changed files with 19 additions and 14 deletions

View File

@@ -4,6 +4,7 @@
#include <memory>
#include <blizzard-archive-library/include/CASCArchive.hpp>
#include <blizzard-archive-library/include/ClientFile.hpp>
#include <blizzard-database-library/include/BlizzardDatabase.h>
#include <noggit/application/Configuration/NoggitApplicationConfiguration.hpp>
#include <noggit/ui/windows/downloadFileDialog/DownloadFileDialog.h>
#include <QJsonDocument>
@@ -46,8 +47,8 @@ namespace Noggit::Project
{
public:
std::string ProjectName;
std::string ClientDatabaseFilePath;
ProjectVersion ProjectVersion;
std::shared_ptr<BlizzardDatabaseLib::BlizzardDatabase> ClientDatabase;
};
class ApplicationProject
@@ -76,7 +77,7 @@ namespace Noggit::Project
project.Client.ClientVersion = clientVersion;
project.Client.ClientPath = clientPath.generic_string();
auto projectConfigurationFilePath = (projectPath / (projectName + std::string(".json")));
auto projectConfigurationFilePath = (projectPath / (projectName + std::string(".noggitproj")));
auto projectConfigurationFile = QFile(QString::fromStdString(projectConfigurationFilePath.generic_string()));
projectConfigurationFile.open(QIODevice::WriteOnly);
@@ -179,7 +180,7 @@ namespace Noggit::Project
std::shared_ptr<NoggitProject> LoadProject(std::filesystem::path projectPath, std::string projectName)
{
auto projectConfigurationFilePath = (projectPath / (projectName + std::string(".json")));
auto projectConfigurationFilePath = (projectPath / (projectName + std::string(".noggitproj")));
QFile inputFile(QString::fromStdString(projectConfigurationFilePath.generic_string()));
inputFile.open(QIODevice::ReadOnly);
@@ -202,17 +203,27 @@ namespace Noggit::Project
auto clientVersion = projectClientConfiguration["ClientVersion"].toString().toStdString();
auto clientVersionEnum = Noggit::Project::ProjectVersion::WOTLK;
auto clientBuild = BlizzardDatabaseLib::Structures::Build("3.3.5.12340");
if (clientVersion == std::string("Shadowlands"))
{
clientVersionEnum = Noggit::Project::ProjectVersion::SL;
clientBuild = BlizzardDatabaseLib::Structures::Build("9.1.0.39584");
}
if (clientVersion == std::string("Wrath Of The Lich King"))
{
clientVersionEnum = Noggit::Project::ProjectVersion::WOTLK;
clientBuild = BlizzardDatabaseLib::Structures::Build("3.3.5.12340");
}
project.ProjectVersion = clientVersionEnum;
std::string dbcFileDirectory = (projectPath / "workspace" / "DBFilesClient").generic_string();
std::string dbdFileDirectory = _configuration->ApplicationDatabaseDefinitionsPath;
project.ClientDatabase = std::make_shared<BlizzardDatabaseLib::BlizzardDatabase>(dbcFileDirectory, dbdFileDirectory, clientBuild);
}
}
project.ClientDatabaseFilePath = (projectPath / "workspace" / "DBFilesClient").generic_string();
}
return std::make_shared<NoggitProject>(project);

View File

@@ -345,14 +345,8 @@ namespace Noggit::Ui
if(isShadowlands)
{
std::string dbcFileDirectory = _project->ClientDatabaseFilePath;
std::string dbdFileDirectory = _applicationConfiguration->ApplicationDatabaseDefinitionsPath;
const auto& build = BlizzardDatabaseLib::Structures::Build("9.1.0.39584");
const auto& table = std::string("map");
auto blizzardDatabase = BlizzardDatabaseLib::BlizzardDatabase(dbcFileDirectory, dbdFileDirectory, build);
auto mapTable = blizzardDatabase.LoadTable(table);
auto mapTable = _project->ClientDatabase->LoadTable(table);
auto iterator = mapTable.Records();
while (iterator.HasRecords())