#include "userextensions.hpp" #include <components/compiler/opcodes.hpp> #include <components/interpreter/context.hpp> #include <components/interpreter/interpreter.hpp> #include <components/interpreter/opcodes.hpp> #include <components/interpreter/runtime.hpp> #include "ref.hpp" namespace MWScript { /// Temporary script extensions. /// /// \attention Do not commit changes to this file to a git repository! namespace User { class OpUser1 : public Interpreter::Opcode0 { public: void execute(Interpreter::Runtime& runtime) override { runtime.getContext().report("user1: not in use"); } }; class OpUser2 : public Interpreter::Opcode0 { public: void execute(Interpreter::Runtime& runtime) override { runtime.getContext().report("user2: not in use"); } }; template <class R> class OpUser3 : public Interpreter::Opcode0 { public: void execute(Interpreter::Runtime& runtime) override { // MWWorld::Ptr ptr = R()(runtime); runtime.getContext().report("user3: not in use"); } }; template <class R> class OpUser4 : public Interpreter::Opcode0 { public: void execute(Interpreter::Runtime& runtime) override { // MWWorld::Ptr ptr = R()(runtime); runtime.getContext().report("user4: not in use"); } }; void installOpcodes(Interpreter::Interpreter& interpreter) { interpreter.installSegment5<OpUser1>(Compiler::User::opcodeUser1); interpreter.installSegment5<OpUser2>(Compiler::User::opcodeUser2); interpreter.installSegment5<OpUser3<ImplicitRef>>(Compiler::User::opcodeUser3); interpreter.installSegment5<OpUser3<ExplicitRef>>(Compiler::User::opcodeUser3Explicit); interpreter.installSegment5<OpUser4<ImplicitRef>>(Compiler::User::opcodeUser4); interpreter.installSegment5<OpUser4<ExplicitRef>>(Compiler::User::opcodeUser4Explicit); } } }