1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-21 00:19:29 +02:00

IdentifierStorage is now separate handler in VLC

This commit is contained in:
Ivan Savenko
2023-08-25 22:36:00 +03:00
parent c8a6cd74cc
commit 7e27ac7073
8 changed files with 34 additions and 55 deletions

View File

@ -111,7 +111,7 @@ const IBonusTypeHandler * LibClasses::getBth() const
const CIdentifierStorage * LibClasses::identifiers() const
{
return &modh->getIdentifiers();
return identifiersHandler;
}
const spells::effects::Registry * LibClasses::spellEffects() const
@ -185,6 +185,7 @@ void LibClasses::loadModFilesystem(bool onlyEssential)
{
CStopWatch loadTime;
modh = new CModHandler();
identifiersHandler = new CIdentifierStorage();
modh->loadMods(onlyEssential);
logGlobal->info("\tMod handler: %d ms", loadTime.getDiff());
@ -212,49 +213,29 @@ void LibClasses::init(bool onlyEssential)
modh->initializeConfig();
createHandler(generaltexth, "General text", pomtime);
createHandler(bth, "Bonus type", pomtime);
createHandler(roadTypeHandler, "Road", pomtime);
createHandler(riverTypeHandler, "River", pomtime);
createHandler(terrainTypeHandler, "Terrain", pomtime);
createHandler(heroh, "Hero", pomtime);
createHandler(arth, "Artifact", pomtime);
createHandler(creh, "Creature", pomtime);
createHandler(townh, "Town", pomtime);
createHandler(objh, "Object", pomtime);
createHandler(objtypeh, "Object types information", pomtime);
createHandler(spellh, "Spell", pomtime);
createHandler(skillh, "Skill", pomtime);
createHandler(terviewh, "Terrain view pattern", pomtime);
createHandler(tplh, "Template", pomtime); //templates need already resolved identifiers (refactor?)
#if SCRIPTING_ENABLED
createHandler(scriptHandler, "Script", pomtime);
#endif
createHandler(battlefieldsHandler, "Battlefields", pomtime);
createHandler(obstacleHandler, "Obstacles", pomtime);
logGlobal->info("\tInitializing handlers: %d ms", totalTime.getDiff());
modh->load();
modh->afterLoad(onlyEssential);
//FIXME: make sure that everything is ok after game restart
//TODO: This should be done every time mod config changes
}
void LibClasses::clear()
@ -276,6 +257,7 @@ void LibClasses::clear()
#endif
delete battlefieldsHandler;
delete generaltexth;
delete identifiersHandler;
makeNull();
}
@ -298,6 +280,7 @@ void LibClasses::makeNull()
scriptHandler = nullptr;
#endif
battlefieldsHandler = nullptr;
identifiersHandler = nullptr;
}
LibClasses::LibClasses()