1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-21 00:39:58 +00:00

Merge branch 'lua_mwscript_nilvar' into 'master'

#7791: Require local variables to exist for lua mwscript local variables

Closes #7791

See merge request OpenMW/openmw!3811
This commit is contained in:
Alexei Kotov 2024-01-27 13:57:26 +00:00
commit 093d86353f

View File

@ -104,8 +104,12 @@ namespace MWLua
});
mwscript["player"] = sol::readonly_property(
[](const MWScriptRef&) { return GObject(MWBase::Environment::get().getWorld()->getPlayerPtr()); });
mwscriptVars[sol::meta_function::index] = [](MWScriptVariables& s, std::string_view var) {
return s.mRef.getLocals().getVarAsDouble(s.mRef.mId, Misc::StringUtils::lowerCase(var));
mwscriptVars[sol::meta_function::index]
= [](MWScriptVariables& s, std::string_view var) -> sol::optional<double> {
if (s.mRef.getLocals().hasVar(s.mRef.mId, var))
return s.mRef.getLocals().getVarAsDouble(s.mRef.mId, Misc::StringUtils::lowerCase(var));
else
return sol::nullopt;
};
mwscriptVars[sol::meta_function::new_index] = [](MWScriptVariables& s, std::string_view var, double val) {
MWScript::Locals& locals = s.mRef.getLocals();