1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-27 03:35:27 +00:00

Map by service name

This commit is contained in:
Zackhasacat 2023-09-02 14:23:57 -05:00
parent 44303ed8ca
commit 9c4ffa8256

View File

@ -17,9 +17,9 @@ namespace MWLua
template <class T>
void addActorServicesBindings(sol::usertype<T>& record, const Context& context)
{
record["servicesOffered"] = sol::readonly_property([](const T& rec) -> std::vector<std::string> {
std::vector<std::string> providedServices;
std::map<int, std::string> serviceNames = { { ESM::NPC::Spells, "Spells" },
record["servicesOffered"] = sol::readonly_property([](const T& rec) -> std::map<std::string, bool> {
std::map<std::string, bool> providedServices;
const static std::map<int, std::string> serviceNames = { { ESM::NPC::Spells, "Spells" },
{ ESM::NPC::Spellmaking, "Spellmaking" }, { ESM::NPC::Enchanting, "Enchanting" },
{ ESM::NPC::Training, "Training" }, { ESM::NPC::Repair, "Repair" }, { ESM::NPC::AllItems, "Barter" },
{ ESM::NPC::Weapon, "Weapon" }, { ESM::NPC::Armor, "Armor" }, { ESM::NPC::Clothing, "Clothing" },
@ -41,12 +41,9 @@ namespace MWLua
}
for (const auto& [flag, name] : serviceNames)
{
if (services & flag)
providedServices.push_back(name);
providedServices[name] = (services & flag) != 0;
}
if (!rec.getTransport().empty())
providedServices.push_back("Travel");
providedServices["Travel"] = !rec.getTransport().empty();
return providedServices;
});
}