1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-10 15:39:02 +00:00
OpenMW/apps/openmw/mwscript/userextensions.cpp
2022-01-27 19:18:57 +00:00

78 lines
2.3 KiB
C++

#include "userextensions.hpp"
#include <components/compiler/extensions.hpp>
#include <components/compiler/opcodes.hpp>
#include <components/interpreter/interpreter.hpp>
#include <components/interpreter/runtime.hpp>
#include <components/interpreter/opcodes.hpp>
#include <components/interpreter/context.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);
}
}
}