aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hdb/lua-script.cpp10
-rw-r--r--engines/hdb/lua-script.h3
2 files changed, 12 insertions, 1 deletions
diff --git a/engines/hdb/lua-script.cpp b/engines/hdb/lua-script.cpp
index 66aa6dca40..5259c10932 100644
--- a/engines/hdb/lua-script.cpp
+++ b/engines/hdb/lua-script.cpp
@@ -960,4 +960,14 @@ void LuaScript::checkParameters(const char *func, int params) {
}
}
+const char *LuaScript::getStringOffStack() {
+ if (!_systemInit) {
+ return NULL;
+ }
+
+ const char *string = lua_tostring(_state, 1);
+ lua_remove(_state, 1);
+ return string;
+}
+
}
diff --git a/engines/hdb/lua-script.h b/engines/hdb/lua-script.h
index 37b8df9d73..20cd94d331 100644
--- a/engines/hdb/lua-script.h
+++ b/engines/hdb/lua-script.h
@@ -44,6 +44,8 @@ public:
bool executeFile(const Common::String &filename);
void checkParameters(const char *func, int params);
+ const char *getStringOffStack();
+
private:
lua_State *_state;
int _pcallErrorhandlerRegistryIndex;
@@ -56,7 +58,6 @@ private:
bool executeChunk(Common::String &chunk, uint chunkSize, const Common::String &chunkName) const;
void stripComments(char *chunk);
void addPatches(Common::String &chunk, const char *scriptName);
-
};
}