1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-27 18:41:05 +00:00
2022-09-22 21:35:26 +03:00

27 lines
845 B
C++

#include "ref.hpp"
#include <components/interpreter/runtime.hpp>
#include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp"
#include "interpretercontext.hpp"
MWWorld::Ptr MWScript::ExplicitRef::operator()(Interpreter::Runtime& runtime, bool required, bool activeOnly) const
{
std::string_view id = runtime.getStringLiteral(runtime[0].mInteger);
runtime.pop();
if (required)
return MWBase::Environment::get().getWorld()->getPtr(id, activeOnly);
else
return MWBase::Environment::get().getWorld()->searchPtr(id, activeOnly);
}
MWWorld::Ptr MWScript::ImplicitRef::operator()(Interpreter::Runtime& runtime, bool required, bool activeOnly) const
{
MWScript::InterpreterContext& context = static_cast<MWScript::InterpreterContext&>(runtime.getContext());
return context.getReference(required);
}