#ifndef GAME_MWSCRIPT_REF_H #define GAME_MWSCRIPT_REF_H #include #include #include "../mwbase/environment.hpp" #include "../mwbase/world.hpp" #include "../mwworld/ptr.hpp" #include "interpretercontext.hpp" namespace MWScript { struct ExplicitRef { MWWorld::Ptr operator() (Interpreter::Runtime& runtime) const { std::string id = runtime.getStringLiteral (runtime[0].mInteger); runtime.pop(); return MWBase::Environment::get().getWorld()->getPtr (id, false); } }; struct ImplicitRef { MWWorld::Ptr operator() (Interpreter::Runtime& runtime) const { MWScript::InterpreterContext& context = static_cast (runtime.getContext()); return context.getReference(); } }; } #endif