diff --git a/apps/openmw/mwlua/luabindings.cpp b/apps/openmw/mwlua/luabindings.cpp index a204287b88..5918095707 100644 --- a/apps/openmw/mwlua/luabindings.cpp +++ b/apps/openmw/mwlua/luabindings.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include "../mwbase/environment.hpp" #include "../mwbase/statemanager.hpp" @@ -157,15 +158,16 @@ namespace MWLua }; // TODO: deprecate this and provide access to the store instead - sol::table skill(context.mLua->sol(), sol::create); - api["SKILL"] = LuaUtil::makeStrictReadOnly(skill); + sol::table skills(context.mLua->sol(), sol::create); + api["SKILL"] = LuaUtil::makeStrictReadOnly(skills); for (int i = 0; i < ESM::Skill::Length; ++i) { - std::string id = ESM::Skill::indexToRefId(i).serializeText(); - std::string key = id; + ESM::RefId skill = ESM::Skill::indexToRefId(i); + std::string id = skill.serializeText(); + std::string key = Misc::StringUtils::lowerCase(skill.getRefIdString()); // force first character to uppercase for backwards compatability key[0] += 'A' - 'a'; - skill[key] = id; + skills[key] = id; } sol::table attribute(context.mLua->sol(), sol::create); diff --git a/apps/openmw/mwlua/magicbindings.cpp b/apps/openmw/mwlua/magicbindings.cpp index 6247fc6216..586c50be6d 100644 --- a/apps/openmw/mwlua/magicbindings.cpp +++ b/apps/openmw/mwlua/magicbindings.cpp @@ -622,7 +622,7 @@ namespace MWLua if (rec->mData.mFlags & ESM::MagicEffect::TargetSkill) { - ESM::RefId skill = ESM::RefId::stringRefId(argStr.value()); + ESM::RefId skill = ESM::RefId::deserializeText(argStr.value()); key = MWMechanics::EffectKey(id, ESM::Skill::refIdToIndex(skill)); } } diff --git a/apps/openmw/mwlua/types/book.cpp b/apps/openmw/mwlua/types/book.cpp index 97e51059d0..4b40837604 100644 --- a/apps/openmw/mwlua/types/book.cpp +++ b/apps/openmw/mwlua/types/book.cpp @@ -41,7 +41,7 @@ namespace book.mData.mValue = rec["value"]; book.mData.mIsScroll = rec["isScroll"]; - ESM::RefId skill = ESM::RefId::stringRefId(rec["skill"].get()); + ESM::RefId skill = ESM::RefId::deserializeText(rec["skill"].get()); book.mData.mSkillId = -1; if (!skill.empty())