mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-27 08:39:40 +00:00
[Client] Record type of each InterpreterContext for later checking
This commit is contained in:
parent
d4a84ac34a
commit
63a86f145d
7 changed files with 109 additions and 0 deletions
|
@ -104,6 +104,18 @@ void OMW::Engine::executeLocalScripts()
|
||||||
End of tes3mp addition
|
End of tes3mp addition
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Mark this InterpreterContext as having a CONSOLE context,
|
||||||
|
so that packets sent by the Interpreter can have their
|
||||||
|
origin determined by serverside scripts
|
||||||
|
*/
|
||||||
|
interpreterContext.setContextType(Interpreter::Context::SCRIPT_LOCAL);
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
mEnvironment.getScriptManager()->run (script.first, interpreterContext);
|
mEnvironment.getScriptManager()->run (script.first, interpreterContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,6 +262,19 @@ namespace MWDialogue
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MWScript::InterpreterContext interpreterContext(&actor.getRefData().getLocals(), actor);
|
MWScript::InterpreterContext interpreterContext(&actor.getRefData().getLocals(), actor);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Mark this InterpreterContext as having a CONSOLE context,
|
||||||
|
so that packets sent by the Interpreter can have their
|
||||||
|
origin determined by serverside scripts
|
||||||
|
*/
|
||||||
|
interpreterContext.setContextType(Interpreter::Context::DIALOGUE);
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
Interpreter::Interpreter interpreter;
|
Interpreter::Interpreter interpreter;
|
||||||
MWScript::installOpcodes (interpreter);
|
MWScript::installOpcodes (interpreter);
|
||||||
interpreter.run (&code[0], code.size(), interpreterContext);
|
interpreter.run (&code[0], code.size(), interpreterContext);
|
||||||
|
|
|
@ -186,6 +186,19 @@ namespace MWGui
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ConsoleInterpreterContext interpreterContext (*this, mPtr);
|
ConsoleInterpreterContext interpreterContext (*this, mPtr);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Mark this InterpreterContext as having a CONSOLE context,
|
||||||
|
so that packets sent by the Interpreter can have their
|
||||||
|
origin determined by serverside scripts
|
||||||
|
*/
|
||||||
|
interpreterContext.setContextType(Interpreter::Context::CONSOLE);
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
Interpreter::Interpreter interpreter;
|
Interpreter::Interpreter interpreter;
|
||||||
MWScript::installOpcodes (interpreter, mConsoleOnlyScripts);
|
MWScript::installOpcodes (interpreter, mConsoleOnlyScripts);
|
||||||
std::vector<Interpreter::Type_Code> code;
|
std::vector<Interpreter::Type_Code> code;
|
||||||
|
|
|
@ -79,6 +79,18 @@ namespace MWScript
|
||||||
MWScript::InterpreterContext interpreterContext (
|
MWScript::InterpreterContext interpreterContext (
|
||||||
&iter->second.mLocals, MWWorld::Ptr(), iter->second.mId);
|
&iter->second.mLocals, MWWorld::Ptr(), iter->second.mId);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Mark this InterpreterContext as having a GLOBAL_SCRIPT context,
|
||||||
|
so that packets sent by the Interpreter can have their
|
||||||
|
origin determined by serverside scripts
|
||||||
|
*/
|
||||||
|
interpreterContext.setContextType(Interpreter::Context::SCRIPT_GLOBAL);
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
MWBase::Environment::get().getScriptManager()->run (iter->first, interpreterContext);
|
MWBase::Environment::get().getScriptManager()->run (iter->first, interpreterContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,24 @@ namespace MWScript
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Used for setting and checking the type of this InterpreterContext
|
||||||
|
*/
|
||||||
|
unsigned short InterpreterContext::getContextType() const
|
||||||
|
{
|
||||||
|
return mContextType;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InterpreterContext::setContextType(unsigned short contextType)
|
||||||
|
{
|
||||||
|
mContextType = contextType;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
const MWWorld::Ptr InterpreterContext::getReferenceImp (
|
const MWWorld::Ptr InterpreterContext::getReferenceImp (
|
||||||
const std::string& id, bool activeOnly, bool doThrow) const
|
const std::string& id, bool activeOnly, bool doThrow) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,6 +63,20 @@ namespace MWScript
|
||||||
End of tes3mp addition
|
End of tes3mp addition
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Used for setting and checking the type of this InterpreterContext
|
||||||
|
*/
|
||||||
|
unsigned short mContextType;
|
||||||
|
|
||||||
|
virtual unsigned short getContextType() const;
|
||||||
|
|
||||||
|
virtual void setContextType(unsigned short contextType);
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
virtual int getLocalShort (int index) const;
|
virtual int getLocalShort (int index) const;
|
||||||
|
|
||||||
virtual int getLocalLong (int index) const;
|
virtual int getLocalLong (int index) const;
|
||||||
|
|
|
@ -10,6 +10,22 @@ namespace Interpreter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Keep an enumeration of the possible context types
|
||||||
|
*/
|
||||||
|
enum CONTEXT_TYPE
|
||||||
|
{
|
||||||
|
CONSOLE = 0,
|
||||||
|
DIALOGUE = 1,
|
||||||
|
SCRIPT_LOCAL = 2,
|
||||||
|
SCRIPT_GLOBAL = 3
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
virtual ~Context() {}
|
virtual ~Context() {}
|
||||||
|
|
||||||
virtual int getLocalShort (int index) const = 0;
|
virtual int getLocalShort (int index) const = 0;
|
||||||
|
@ -110,6 +126,17 @@ namespace Interpreter
|
||||||
= 0;
|
= 0;
|
||||||
|
|
||||||
virtual std::string getTargetId() const = 0;
|
virtual std::string getTargetId() const = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Used for setting and checking the type of this Context
|
||||||
|
*/
|
||||||
|
virtual unsigned short getContextType() const = 0;
|
||||||
|
virtual void setContextType(unsigned short interpreterType) = 0;
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue