mirror of
https://github.com/vcmi/vcmi.git
synced 2025-07-03 00:46:55 +02:00
Simplify library initialization
This commit is contained in:
@ -46,20 +46,7 @@ VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
GameLibrary * LIBRARY = nullptr;
|
||||
|
||||
DLL_LINKAGE void preinitDLL(bool extractArchives)
|
||||
{
|
||||
LIBRARY = new GameLibrary();
|
||||
LIBRARY->loadFilesystem(extractArchives);
|
||||
settings.init("config/settings.json", "vcmi:settings");
|
||||
persistentStorage.init("config/persistentStorage.json", "");
|
||||
LIBRARY->loadModFilesystem();
|
||||
|
||||
}
|
||||
|
||||
DLL_LINKAGE void loadDLLClasses(bool onlyEssential)
|
||||
{
|
||||
LIBRARY->init(onlyEssential);
|
||||
}
|
||||
|
||||
const ArtifactService * GameLibrary::artifacts() const
|
||||
{
|
||||
@ -160,12 +147,21 @@ void GameLibrary::loadModFilesystem()
|
||||
logGlobal->info("\tMod filesystems: %d ms", loadTime.getDiff());
|
||||
}
|
||||
|
||||
template <class Handler> void createHandler(std::shared_ptr<Handler> & handler)
|
||||
template <class Handler>
|
||||
void createHandler(std::unique_ptr<Handler> & handler)
|
||||
{
|
||||
handler = std::make_shared<Handler>();
|
||||
handler = std::make_unique<Handler>();
|
||||
}
|
||||
|
||||
void GameLibrary::init(bool onlyEssential)
|
||||
void GameLibrary::initializeFilesystem(bool extractArchives)
|
||||
{
|
||||
loadFilesystem(extractArchives);
|
||||
settings.init("config/settings.json", "vcmi:settings");
|
||||
persistentStorage.init("config/persistentStorage.json", "");
|
||||
loadModFilesystem();
|
||||
}
|
||||
|
||||
void GameLibrary::initializeLibrary()
|
||||
{
|
||||
createHandler(settingsHandler);
|
||||
modh->initializeConfig();
|
||||
@ -194,7 +190,7 @@ void GameLibrary::init(bool onlyEssential)
|
||||
createHandler(obstacleHandler);
|
||||
|
||||
modh->load();
|
||||
modh->afterLoad(onlyEssential);
|
||||
modh->afterLoad();
|
||||
}
|
||||
|
||||
#if SCRIPTING_ENABLED
|
||||
@ -207,14 +203,4 @@ void GameLibrary::scriptsLoaded()
|
||||
GameLibrary::GameLibrary() = default;
|
||||
GameLibrary::~GameLibrary() = default;
|
||||
|
||||
std::shared_ptr<CContentHandler> GameLibrary::getContent() const
|
||||
{
|
||||
return modh->content;
|
||||
}
|
||||
|
||||
void GameLibrary::setContent(std::shared_ptr<CContentHandler> content)
|
||||
{
|
||||
modh->content = std::move(content);
|
||||
}
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
Reference in New Issue
Block a user