mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 23:20:53 +01:00
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
|
|
#include <Components.h>
|
|
#include <es_loader/ESLoader.h>
|
|
|
|
uint32_t ModsComponent::AddStandard(const String& acpFilename) noexcept
|
|
{
|
|
const auto itor = m_standardMods.find(acpFilename);
|
|
if (itor != std::end(m_standardMods))
|
|
{
|
|
itor.value().refCount++;
|
|
return itor->second.id;
|
|
}
|
|
|
|
const auto id = m_seed++;
|
|
m_standardMods.emplace(acpFilename, Entry{id, 1});
|
|
|
|
return id;
|
|
}
|
|
|
|
uint32_t ModsComponent::AddLite(const String& acpFilename) noexcept
|
|
{
|
|
const auto itor = m_liteMods.find(acpFilename);
|
|
if (itor != std::end(m_liteMods))
|
|
{
|
|
itor.value().refCount++;
|
|
return itor->second.id;
|
|
}
|
|
|
|
const auto id = m_seed++;
|
|
m_liteMods.emplace(acpFilename, Entry{id, 1});
|
|
|
|
return id;
|
|
}
|
|
|
|
void ModsComponent::AddServerMod(const ESLoader::PluginData& acData)
|
|
{
|
|
// kind of a hack since we want to store both, so we take the two byte value
|
|
m_serverMods.emplace(acData.m_filename, Entry{acData.m_liteId, 1});
|
|
}
|
|
|
|
bool ModsComponent::IsInstalled(const String& acpFilename) const noexcept
|
|
{
|
|
auto it = std::find_if(m_serverMods.begin(), m_serverMods.end(), [&](const TModList::value_type& aEntry) { return aEntry.first == acpFilename; });
|
|
|
|
return it != m_serverMods.end();
|
|
}
|