summaryrefslogtreecommitdiffstats
path: root/src/scripting/luascript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripting/luascript.cpp')
-rw-r--r--src/scripting/luascript.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/scripting/luascript.cpp b/src/scripting/luascript.cpp
index e45588b..36adb91 100644
--- a/src/scripting/luascript.cpp
+++ b/src/scripting/luascript.cpp
@@ -198,6 +198,15 @@ void LuaScript::assignCallback(Script::Ref &function)
function.value = luaL_ref(mRootState, LUA_REGISTRYINDEX);
}
+void LuaScript::unref(Ref &ref)
+{
+ if (ref.isValid())
+ {
+ luaL_unref(mRootState, LUA_REGISTRYINDEX, ref.value);
+ ref.value = -1;
+ }
+}
+
void LuaScript::load(const char *prog, const char *name)
{
int res = luaL_loadbuffer(mRootState, prog, std::strlen(prog), name);
@@ -262,7 +271,7 @@ void LuaScript::getQuestCallback(Character *q,
script->prepareResume(thread);
script->push(value);
- script->resume();
+ q->resumeNpcThread();
}
/**
@@ -280,7 +289,7 @@ void LuaScript::getPostCallback(Character *q,
script->prepareResume(thread);
script->push(sender);
script->push(letter);
- script->resume();
+ q->resumeNpcThread();
}