F4MP/tiltedcode/Code/server/Components/ModsComponent.cpp
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

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();
}